[00:00] Tobsn: http://github.com/bentomas/node-mime
[00:00] daleharvey: code so far is http://pastebin.me/99d3058c21c5e90b6e80ddb65c6ea518
[00:01] Tobsn: i think i saw a mime type file in one of the frameworks
[00:01] Tobsn: maybe even connect
[00:01] mattly has joined the channel
[00:01] Tobsn: at the end - all you need is http://github.com/bentomas/node-mime/blob/master/mime.js
[00:02] stride: the static provider in connect uses some mime stuff that determines mime type by filename iirc
[00:02] AAA_awright has joined the channel
[00:03] sztanphet has joined the channel
[00:03] matt_c has joined the channel
[00:05] freshtonic has joined the channel
[00:06] tmpvar: connect is awesome, using it for the first time.. and its one hell of a time saver
[00:07] steadicat has joined the channel
[00:10] dgathright_ has joined the channel
[00:14] nrstott has joined the channel
[00:17] mjr_: This CouchDB data loss bug hit me bigtime: http://couchdb.apache.org/notice/1.0.1.html
[00:17] TrisMcC has joined the channel
[00:17] mjr_: do note it if you are running CouchDB 1.0.0 with delayed_commits
[00:19] joshbuddy has joined the channel
[00:20] tmpvar: yikes
[00:20] mjr_: Yeah, it's really bad.
[00:21] joshbuddy has joined the channel
[00:22] cardona507 has joined the channel
[00:22] AAA_awright: Has there been any attempt to create a Wave client?
[00:23] AAA_awright: And on a similar note, is it possible to use the async DNS/file/stat functions in a C/C++ interface? How tightly integrated is the Javascript API to those async implementations?
[00:23] nrstott: Wave is going away
[00:23] matt_c has joined the channel
[00:23] mjr_: The service is going away, but the technology is still there.
[00:24] nrstott: oh?
[00:24] nrstott: what does that mean practically to those of us whoare bummed because we use Wave everyday
[00:24] mjr_: A big thing with Wave is that the source code is open and the protocol federated so you can run your own service.
[00:24] AAA_awright: Right, it just needs a new client
[00:24] rauchg_ has joined the channel
[00:24] mjr_: Wait, you used Wave every day?
[00:24] mjr_: You are the one?
[00:24] daleharvey: lol
[00:24] nrstott: hehe, i made my employees use it
[00:24] nrstott: and some customers too!
[00:24] AAA_awright: I've used it quite a bit
[00:24] mjr_: man
[00:24] nrstott: we used it all the time
[00:25] daleharvey: got my first test app up
[00:25] mjr_: How did you ever figure it out?
[00:25] nrstott: we still do... we're really bummed
[00:25] daleharvey: http://dropup.net/
[00:25] AAA_awright: Great for brainstorming and tabletop gaming
[00:25] daleharvey: it only works in firefox for the moment
[00:25] nrstott: the key is to force people to use it until they like it
[00:25] amerine has joined the channel
[00:25] tmpvar: daleharvey, 502
[00:25] _announcer: Twitter: "really good introduction to first steps with #nodejs: http://bit.ly/9zRbCO join the revolution! #webdev #web" -- Dominik Guzei. http://twitter.com/DominikGuzei/status/20666064563
[00:25] mjr_: Wave's general idea: brilliant, UI treatment: similar to flying a 747.
[00:26] nrstott: the UI seemed fine to me
[00:26] nrstott: the biggest barrier is just getting non-technical people to use it
[00:26] nrstott: imo there's basically 0 learning curve; however, any new technology meets massive resistance from non-technical people
[00:26] nrstott: If it doesn't look like Outlook, 95% of people will be extremley resistant to using it
[00:26] mjr_: I like how they maxed out the realtime and pushed the web browser interface beyond what many thought possible.
[00:27] daleharvey: tmpvar, cheers, looking at the shell
[00:27] daleharvey: from the sounds of it, guessing someone sent a head request?
[00:27] mjr_: But even though I love realtime stuff, I just found the UI confusing.
[00:27] daleharvey: throw new Error("This type of response MUST NOT have a body.");
[00:27] nrstott: mjr_, what was confusing? I thought it was orgonized quite well
[00:27] _announcer: Twitter: "Can't wait till Heroku officially starts supporting node.js..." -- shu uesugi | 上杉周作. http://twitter.com/shu_uesugi/status/20666184911
[00:28] evadne has joined the channel
[00:29] mjr_: nrstott: I kept getting confused about how to "catch up" on what I'd missed. I wasn't sure what I was supposed to do unless I was actively working on something with somebody.
[00:29] nrstott: mjr_, yes I can see that part as having needed work
[00:29] evadne: Help: I get an “npm@0.1.23 not compatible with node@0.1.92” when building (dev) isaacs/npm/master running on ry-node/master.
[00:29] nrstott: id often find myself simply rereading from top to bottom
[00:30] isaacs: evadne: make sure you pull from ry with --tags
[00:30] AAA_awright: It says my browser (Chrome) isn't supported
[00:30] isaacs: evadne: git pull --rebase --tags ry master
[00:30] AAA_awright: Com eon
[00:30] evadne: trying, thanks a lot
[00:30] nrstott: evadne, why in the world do you need help with that unless the problem is you're not really running node 0.1.92
[00:30] nrstott: oh ;0 i see
[00:30] nrstott: nevermind
[00:30] nrstott: you're running master
[00:30] isaacs: nrstott: if you don't pull the tags, then when you build, you don't get the new version reported.
[00:30] isaacs: npm trusts node :)
[00:31] evadne: npm does not build. node is on master, freshly cloned
[00:31] mjr_: I think they should get rid of git pull. It's so misleading.
[00:31] nrstott: isaacs, ah i see.
[00:31] isaacs: evadne: gist?
[00:31] isaacs: mjr_: yeah, i usually do the fetch and merge/rebase mysefl
[00:31] mjr_: git fetch followed by merge / rebase is almost always less confuing.
[00:32] mjr_: Also, I'm glad to see that the node-based mind-reading patch landed.
[00:32] isaacs: of course, i have my own bash function that does all that, and was originally just an alias for git pull
[00:32] evadne: isaacs: http://gist.github.com/514743
[00:32] isaacs: evadne: did you rebuild node completely after pulling with the tags? ie, re-do the ./configure && make distclean install
[00:33] tjgillies has joined the channel
[00:33] danielzilla has joined the channel
[00:33] evadne: let me do that again and see
[00:33] isaacs: evadne: you wanna make sure that "node -v" reports the accurate version.
[00:33] isaacs: evadne: you could also get nave and just use that to install node, if you don't feel like juggling code.
[00:33] evadne: node -v is correct
[00:34] isaacs: evadne: well... the node that is executing npm is (or thinks it is) version 0.1.92
[00:34] isaacs: so something's up
[00:35] matt_c has joined the channel
[00:36] evadne: re-building node, so far so good
[00:36] justin_: what do you guys think the lightest weight web framework is for node?
[00:36] justin_: all i'm really looking for is templates and routing
[00:36] isaacs: justin_: node ;P
[00:36] justin_: haha
[00:36] justin_: good point
[00:36] justin_: maybe i should just do that
[00:37] SubStack: who needs web frameworks when you've got sockets?
[00:37] isaacs: justin_: it's not as hard as you'd think
[00:37] isaacs: justin_: unless you want stuff like cookie support, etc.
[00:37] isaacs: justin_: uploads, too, handling that by hand kinda sucks
[00:37] justin_: eh, i can probably get by without that
[00:37] justin_: i should just do it myself
[00:38] justin_: 1st class http support in node is awesome
[00:38] justin_: that's mostly what i rely on frameworks for in other languages
[00:38] daleharvey: node.routes.js seemed mostly fine
[00:38] daleharvey: very basic, just a list of functions and regexes
[00:39] evadne: isaacs: works. ;)
[00:39] isaacs: evadne: awesome :)
[00:39] evadne: happened that I forgot to make distclean
[00:41] andrewhampton has joined the channel
[00:41] isaacs: mde: you around?
[00:44] davidwalsh has joined the channel
[00:47] TS_ has joined the channel
[00:48] mizerydearia has joined the channel
[00:52] scoates has left the channel
[00:53] jwcooper has joined the channel
[00:54] isaacs: evadne: yeah, that's the thing about fast-moving projects...
[00:54] isaacs: they work starting from a blank slate, and they work starting from the version just prior, but if you're 4 versions back or something, it's anybody's guess.
[00:54] evadne: I see
[00:55] isaacs: oh, and actually, i think the tags thing is not valid info any mre...
[00:55] isaacs: i'm not sure exactly how that's working now, but the version isn't the git-describe output
[00:56] amerine has joined the channel
[01:03] jimt_ has joined the channel
[01:04] steadicat has joined the channel
[01:07] TS__ has joined the channel
[01:10] daleharvey: ok, shouldnt die so easily now - http://dropup.net/
[01:10] daleharvey: firefox only still though
[01:10] geojeff has joined the channel
[01:13] Omni5cience has joined the channel
[01:15] daleharvey: ok, it does :(, has anyone had problems with "This type of response MUST NOT have a body."
[01:15] nano`` has joined the channel
[01:15] mikeal has joined the channel
[01:17] blowery: what's the response code?
[01:18] daleharvey: having a hard time finding out, I cant reproduce it
[01:19] daleharvey: I have a try {} catch around my entire main loop and it still seems to kill the server
[01:19] Tim_Smart: daleharvey: It is usually caused by a HEAD request.
[01:19] daleharvey: http://github.com/daleharvey/dropup/blob/master/node.dropup.js is the code
[01:20] daleharvey: Tim_Smart: yeh that was my guess, cheers
[01:20] jimt has joined the channel
[01:21] mattly_ has joined the channel
[01:24] mau2 has joined the channel
[01:28] daleharvey: ok, can reproduce the error, and its easily fixable, but confused at why it is crashing the server
[01:29] softdrink has joined the channel
[01:29] daleharvey: sending a head request causes http://pastebin.me/7e1c2a5209877746de28277bd1bb5bb8
[01:29] jimt_ has joined the channel
[01:29] daleharvey: the top is the callback function used to start the server, nothing else goes on outside of it, and it has a try {} catch around everything
[01:30] marshall_law has joined the channel
[01:30] ditesh|cassini has joined the channel
[01:32] scoates has joined the channel
[01:32] Tim_Smart: daleharvey: Must be happening outside the 'scope' of the try catch.
[01:33] Tim_Smart: One way around it is to overwrite the response.write and response.end function on a HEAD request
[01:33] daleharvey: Tim_Smart: thats why I am confused, it very definitely isnt
[01:34] daleharvey: that try catch wraps everything, the entire code is http://github.com/daleharvey/dropup/blob/master/node.dropup.js
[01:35] Tim_Smart: daleharvey: serve503 sends a body ;)
[01:35] scoates: is reading an offset of a buffer destructive, somehow?
[01:36] pengwynn has joined the channel
[01:36] daleharvey: heh I was just about to write that, the error stack gives me at /home/dale/lib/dropup/node.dropup.js:109:19
[01:37] daleharvey: which isnt server503, the only function that can be called outside of the try {}
[01:37] daleharvey: and I took the body out of 503, no help
[01:37] scoates: I have this: http://paste.roguecoders.com/p/4800a62bf4895ad2a2f954ad4e85b975.txt the "up" key stopped working. If I comment out the case 27 block, it works again. This makes me wonder if reading b[1] and b[2] is somehow destructive. ?
[01:38] Tim_Smart: daleharvey: Where is routes defined?
[01:38] daleharvey: routes = require('./node.routes'),
[01:38] Tim_Smart: Yeah, but the code for it.
[01:38] daleharvey: http://github.com/daleharvey/dropup/blob/master/node.routes.js
[01:40] Tim_Smart: daleharvey: Yeah it is outside of the try catch scope.
[01:40] scoates: ahhhh.. = vs == my fault.
[01:40] Tim_Smart: Well it isn't really scope as such, but as soon as you jump into a async function, the try catch can't pick up errors inside of it.
[01:40] scoates: phew! (-:
[01:41] Tim_Smart: Because the code continues to execute while the file read call is waiting for an event
[01:42] daleharvey: ahh, that makes sense
[01:44] daleharvey: hmm, I cant think of anyway to make a clean "if anything dies, just send a 403" thne
[01:44] daleharvey: *503
[01:45] isaacs: daleharvey: http://gist.github.com/514806
[01:45] Tim_Smart: daleharvey: You don't want to send a 503 to a HEAD request though.
[01:45] isaacs: daleharvey: process.on("unhandledException", function () { send503() })
[01:45] daleharvey: Tim_Smart: yeh I am not worried about the head request, thats easy fixed
[01:45] scoates has left the channel
[01:46] isaacs: of course, you have to then keep track of who to send the 503 to
[01:46] isaacs: or you could wrap every handler function in a try/catch when it's eventually called, but in general, that sucks a lot.
[01:46] Tim_Smart: isaacs: Another problem is that the error might not be thrown in the routing logic.
[01:46] isaacs: exactly
[01:46] isaacs: the routed function could do fs.readFile("/etc/passwd", function () { throw "BOOM!" })
[01:47] isaacs: so even if IT was in a try/catch, it'd jump out
[01:47] isaacs: in general, when dealing wiht async code, you must Never Ever Throw
[01:47] _announcer: Twitter: "Geddy web framework for Node.js http://bit.ly/dBz9M8 <- Cool, but surely there are other ideas in the framework space besides Rails." -- Jeremy Day. http://twitter.com/jeremyday/status/20671265672
[01:47] isaacs: throwing errors is for syntax errors and other severely hideous problems.
[01:47] Tim_Smart: isaacs: Well at the highest level it is fine (In a development environment)
[01:48] isaacs: right, but code rarely stays "at the highest level"
[01:48] bradleymeck has joined the channel
[01:48] isaacs: in my experience, you always end up reusing it somewhere else.
[01:48] Tim_Smart: Yeah logging is the way to go.
[01:48] isaacs: or have functions take a cb function, and call that cb with an error if there was one.
[01:49] isaacs: cb(new Error("something bad happened")) or cb(null, someResponseData)
[01:49] Tim_Smart: The the err, result callback style always works pretty well.
[01:49] Tim_Smart: ^^
[01:49] isaacs: thenhave a process.on("unhandledException") handler that logs it
[01:49] isaacs: yeah
[01:49] isaacs: npm uses the heck out of that pattern.
[01:49] daleharvey: sorry, new to node.js, cant quite get my head around how onunhandled exception would work
[01:49] isaacs: it's nice, too, because then you can chain together various functions.
[01:49] isaacs: daleharvey: it's like window.onexception in the browser world.
[01:50] isaacs: daleharvey: if you have a handler there, then it won't crash the process, and will call your func instead.
[01:50] Tim_Smart: daleharvey: Every error thrown that hasn't been caught gets passed to it.
[01:50] isaacs: er, window.onerror, rather
[01:50] Tim_Smart: Well actually, ignore the 'hasn't been caught' bit.
[01:51] Tim_Smart: Or maybe not.
[01:51] Tim_Smart: I'm confusing myself.
[01:51] daleharvey: so yeh, that would require the exceptions to notify the client to send to, pretty sure that cant be handled at a higher level right? I obviously cant just store responce objects as they come in
[01:52] Tim_Smart: No. So you might want to re-think your error handling. Something all new node.js users end up doing at some point.
[01:53] Tim_Smart: (No was aimed at the storing response objects bit)
[01:54] daleharvey: well I just like to ensure if anything goes wrong in "userland", the server doesnt die and just responds 503
[01:55] daleharvey: I mean I could restart the server, but that seems a bit nuts
[01:55] Tim_Smart: Unfortunately it isn't just as simple as wrapping your code in try...catch's.
[01:55] daleharvey: and doesnt help clients
[01:55] _announcer: Twitter: "open source Sunday: started Node.js binding for Kyoto Cabinet. design is still sketch and impl. is not even compiling. heh" -- Don Park. http://twitter.com/donpark/status/20671799699
[01:56] Tim_Smart: But then again, it isn't very hard either.
[01:56] _announcer: Twitter: "@bob_hancock real time for me is pubsubhubbub, friendfeed or node.js... and to certain extent Twitter (when it's up) ;)" -- Jorge Escobar. http://twitter.com/jungleG/status/20671847524
[01:57] streampunk has joined the channel
[01:58] daleharvey: heh right now I am trying to think how its even possible (without silly code at every async point)
[02:00] meso has joined the channel
[02:00] daleharvey has left the channel
[02:01] daleharvey has joined the channel
[02:03] bradleymeck has left the channel
[02:04] maxsilver has left the channel
[02:06] justin_ has joined the channel
[02:15] daleharvey: so yeh dont think this 301 is possible :(
[02:15] daleharvey: whats the code for unhandledexception again?, sorry, I cant find it in the docs anywhere
[02:17] mjr_: http://nodejs.org/api.html#process-46
[02:18] mjr_: uncaughtException
[02:18] daleharvey: heh just found it cheers, was looking for unhandled not uncaught
[02:19] isaacs: ryah: wut? ?
[02:19] isaacs: d408de87fc2490c0e083ad438ac2cffbe8b56280
[02:21] evadne has joined the channel
[02:28] technoweenie has joined the channel
[02:28] Aria has joined the channel
[02:33] sh1mmer has joined the channel
[02:37] ryah: isaacs: easier
[02:37] isaacs: i guess...
[02:37] isaacs: makes node.js huge, though.
[02:39] _announcer: Twitter: "Let's give the Obon holiday node.js" [ja] -- Hidenari Nozaki. http://twitter.com/ghiden_jp/status/20674629956
[02:39] sh1m has joined the channel
[02:39] ryah: 800 lines is hardly huge :)
[02:41] _announcer: Twitter: "Nice one, @kenny_shen with a new node.js article (http://is.gd/e9q6v)" -- Dylan Clendenin. http://twitter.com/deepthawtz/status/20674812241
[02:42] isaacs: i guess, if you're used to C ;P
[02:42] isaacs: imo, 200 lines is pushing it.
[02:42] isaacs: if you can't do it in 100 lines, something's probably wrong.
[02:42] ryah: wc -l deps/v8/src/runtime.cc
[02:42] ryah: 10608 deps/v8/src/runtime.cc
[02:45] isaacs: yikes
[02:45] konobi: *yawn* office--
[02:46] _announcer: Twitter: "You can now "sudo npm install geddy" -- stoked to have Geddy published to NPM. #nodejs #node.js" -- Matthew Eernisse. http://twitter.com/mde/status/20675121638
[02:46] cataska has joined the channel
[02:47] matt_c has joined the channel
[02:49] konobi: ryah: chancing an arm here, but updated my node repo based on your comments
[02:51] konobi: ACTION ducks
[02:52] aniero: man, no one handles the 'error' callback on net.Stream in client libraries :(
[02:55] x_or has joined the channel
[02:55] aniero: and postgres-pure uses a closure to hide the connection object away from direct meddling!
[02:59] nano` has joined the channel
[03:01] mattly has joined the channel
[03:05] PyroPeter has joined the channel
[03:08] joshbuddy has joined the channel
[03:08] Tobsn has joined the channel
[03:11] zapnap has joined the channel
[03:11] polotek: ryah: ping
[03:12] x_or has joined the channel
[03:13] _announcer: Twitter: "A node.js web framework and Rush? Hell yes. http://geddyjs.org/" -- Nick Quaranto. http://twitter.com/qrush/status/20676862973
[03:22] _announcer: Twitter: "I don't get whats up with the whole NodeJS hype, it's still fugly javascript, ; http://bit.ly/90UFPV http://bit.ly/cmMWLq" -- Seivan Heidari. http://twitter.com/Seivanheidari/status/20677464719
[03:23] SubStack: fools!
[03:24] dnolen has joined the channel
[03:24] mjr_: There's no accounting for taste.
[03:25] polotek: that guy probably likes ruby
[03:25] polotek: show him coffeescript and he'd be in like flynn
[03:26] jesusabdullah: Probably got tainted by all the shitty javascript "add some bling 2 ur site" tutorials
[03:26] Aria: Or thinks Ruby is functional.
[03:26] Aria: At all
[03:27] ashleydev has joined the channel
[03:28] jesusabdullah: oh I'm sure ruby has SOME functional bits and pieces
[03:29] SubStack: I write very functional ruby code
[03:29] polotek: ruby does functional. it's just awkward and unwieldy
[03:29] SubStack: the people I worked with didn't understand it
[03:30] SubStack: polotek: there are some tricks though
[03:30] SubStack: like &:+
[03:30] polotek: exactly
[03:30] polotek: awkward
[03:30] SubStack: and the methodchains gem
[03:30] SubStack: nah
[03:30] SubStack: makes perfect sense if you do haskell
[03:30] polotek: just cause you get used to something doesn't make it a good idea ;)
[03:31] _announcer: Twitter: "Think it's time to start looking into node.js in earnest. Lots of cool stuff happening there." -- Will Green. http://twitter.com/hotgazpacho/status/20678036713
[03:32] polotek: mikeal: you around?
[03:32] mikeal: yup
[03:32] mikeal: just watching british investigative drama
[03:32] mikeal: :)
[03:33] daleharvey: ok I started this yesterday and forgot about it
[03:33] polotek: oh, I hate to pull you way
[03:33] mikeal: hehe
[03:33] polotek: but can you take a look at this
[03:33] mikeal: it's Sherlock
[03:33] polotek: http://gist.github.com/514868
[03:33] mikeal: modern Holmes and Watson in London
[03:33] polotek: the old dude or the one with the punk kid?
[03:33] mikeal: Tim from the office plays watson
[03:33] daleharvey: what would be the best way to determine the type of a file ( I am testing for png / jpg) when given the binary
[03:33] mikeal: this has only aired 3 episodes so far
[03:34] daleharvey: should I read the binary manually, ffi the file function
[03:34] dgathright_ has joined the channel
[03:34] mikeal: polotek: you're exposing the threadpool limits?
[03:34] polotek: mikeal: yes. maxIOThreads can be changed at runtime
[03:34] polotek: it's something ry wants
[03:35] polotek: came up randomly in a mailing list thread one day
[03:35] polotek: anyway, there are several issues I'm not sure about here
[03:36] polotek: mikeal: first off, this method of setting the accessor functions isn't strictly normal
[03:36] polotek: when you inspect process it doesn't say that maxIOThreads is a "[Getter/Setter]"
[03:37] polotek: it just gives you the value, always
[03:37] _announcer: Twitter: "@hotgazpacho Checkout Express and Geddy for Sinatra and Rails type of frameworks in node.js Very cool" -- Hernan Garcia. http://twitter.com/theprogrammer/status/20678386956
[03:37] polotek: and __lookupGetter__ returns nothing
[03:37] mikeal: i'm certainly not an expert on how the v8 bindings work
[03:37] polotek: so doing it this way is like having a hidden accessor
[03:37] polotek: mikeal: I'm pretty sure I can do it so it's more conventional
[03:37] mikeal: i think that's fine
[03:38] jesusabdullah: Man I kinda wanna watch L&O now
[03:38] polotek: but I don't know if it's worth it
[03:38] mikeal: you actually want it to be same from people meddling with it
[03:38] jesusabdullah: Actually, I want Castle to come back
[03:38] jesusabdullah: I lurve castle
[03:38] polotek: safe*
[03:38] polotek: maybe, it's safe either way
[03:38] jesusabdullah: Oh, polotek, I fixed dates in my blolg
[03:39] jesusabdullah: PRAISE ME
[03:39] jesusabdullah: \o/
[03:39] mikeal: I don't think it's worth it
[03:39] mikeal: but at the end of the day it's up to ry
[03:39] polotek: jesusabdullah: what's the text symbol for a high five?
[03:39] SubStack: \o
[03:39] polotek: Okay so the other possibly real issue is how setting the max threads work
[03:40] polotek: and this is coming straight from libeio
[03:40] polotek: there are the two functions, set_min and set_max
[03:40] polotek: but they both pivot around the same internal number
[03:40] polotek: I'm not sure why it works like this
[03:40] polotek: So I'm not sure if the way I'm doing it makes any sense
[03:40] mikeal: wait
[03:40] jesusabdullah: polotek: ^5?
[03:41] SubStack: ⁵
[03:41] jesusabdullah: Oh, \o works too
[03:41] mikeal: does it make sure it always has the min threads open or does it actually average between that the max for some reason?
[03:41] polotek: jesusabdullah: o/*\o
[03:41] polotek: that totally works
[03:41] SubStack: o/⁵\o
[03:41] polotek: SubStack: booyah! nice
[03:42] polotek: you should copyright that
[03:42] SubStack: k
[03:42] jesusabdullah: huh?
[03:42] _announcer: Twitter: "Cooking node.js support for Webbynode Rapid Apps deployment engine. Love it so far! http://wbno.de/yIFT70" -- Felipe Coury. http://twitter.com/fcoury/status/20678737383
[03:42] polotek: mikeal: it has a separate number for max number of idle threads
[03:42] polotek: this is only max possible threads
[03:43] polotek: but
[03:43] mikeal: wtf
[03:43] polotek: I know right?
[03:43] polotek: but
[03:43] mikeal: wait, it has min and max and then another min for idle?
[03:43] polotek: if you reset the max threads to lower than it currently is
[03:43] _announcer: Twitter: "@hotgazpacho Ryan's video on node.js at jsconf Europe last year.http://jsconf.eu/2009/video_nodejs_by_ryan_dahl.html" -- Hernan Garcia. http://twitter.com/theprogrammer/status/20678783701
[03:43] polotek: it does actually kill threads until it's down to that number
[03:43] mikeal: proactively or lazily?
[03:43] polotek: gracefully
[03:44] polotek: it waits until the enough pending ones finish
[03:44] polotek: before accepting more
[03:44] mikeal: does it remove idle ones when the max changes or does it just wait
[03:45] polotek: if it needs to remove them then idles also get killed
[03:45] polotek: if the max goes up
[03:45] polotek: it doesn't do anything
[03:46] polotek: it's fairly graceful like I said
[03:46] polotek: I think this is okay
[03:46] polotek: the only thing I can foresee is
[03:46] polotek: if you have some long running jobs on a few threads
[03:46] polotek: and then you lower the max
[03:46] polotek: it'll wait to free up some threads
[03:47] polotek: so you start getting queued up jobs
[03:47] polotek: you would see some stalling, increased latency
[03:47] polotek: until it caught up
[03:48] mikeal: that's expected tho
[03:48] polotek: yeah
[03:48] polotek: so I've also got a patch that surfaces the thread info
[03:48] mikeal: if that was a concern the user would need to decrease the timeout
[03:48] polotek: pending, active, total
[03:48] polotek: similar to memoryUsage()
[03:48] polotek: let's you inspect things
[03:49] polotek: but it can't actually go in because I had to modify libeio
[03:49] softdrink has joined the channel
[03:49] polotek: and ry doesn't want to maintain a fork
[03:49] polotek: he mentioned trying to push it upstream
[03:49] softdrink has joined the channel
[03:50] _announcer: Twitter: "@tjholowaychuk I'm not hammering on NodeJS, I am just saying Rails is Rails because of Ruby, JS (imho) is buttugly. Rails is sufficent." -- Seivan Heidari. http://twitter.com/Seivanheidari/status/20679231730
[03:54] sonnym has joined the channel
[03:54] _announcer: Twitter: "@Seivanheidari The nodejs hype is about more than server side js. It's about 30,000+ connections with one process." -- Marco Rogers. http://twitter.com/polotek/status/20679449707
[03:54] daleharvey: sorry to repeat, but what would be the best way to determine the type of a file ( I am testing for png / jpg) when given the binary
[03:55] polotek: mikeal: anyway, I'm throwing this on the mailing list for discussion. gotta fix some formatting first
[03:55] polotek: daleharvey: you need a mimetype sniffer
[03:55] polotek: I haven't seen one for node
[03:56] malkomalko has joined the channel
[03:57] daleharvey: yeh I figured there wouldnt be one natively, not sure if writing from scratch or linking in the file function or what would be the best way
[03:57] daleharvey: *file command
[03:59] polotek: I would look for a good one in C and write a nifty addon
[03:59] polotek: daleharvey ^
[04:02] mjr_: polotek: re: 30,000 connections, in my testing I've been setting up 60,000 HTTP connections, and node only uses 190MB.
[04:02] mjr_: pretty impressive
[04:03] jesusabdullah: :o
[04:04] daleharvey: cool cheers polotek
[04:05] SubStack: oh yeah? well I just tested my app with 3 (three) concurrent users
[04:05] SubStack: and node only used 13M of memory
[04:05] polotek: mjr_: we can't all be as cool as you
[04:06] polotek: well, actually I can, I just don't wanna
[04:06] tyfighter has joined the channel
[04:06] _announcer: Twitter: "Very much looking fwd. to the prospect of JavaScript being used as a server lang. Worth supporting projects like nodejs makes it a reality" -- k2g. http://twitter.com/kkganesan/status/20680207319
[04:08] isaacs has joined the channel
[04:11] malkomalko: anybody here use caolan's forms with express?
[04:16] trentm has joined the channel
[04:20] mjr_: polotek: you can easily be as cool as me.
[04:20] jesusabdullah: but you'd have to wear your sunglasses at night
[04:20] jesusabdullah: NOT WORTH IT
[04:20] mjr_: yeah, hard to see. Who needs that
[04:21] mjr_: I mean, other than Corey Hart.
[04:21] polotek: wow
[04:21] ajsie has joined the channel
[04:21] polotek: did you look up that name of the dude who sung that song?
[04:21] polotek: or did you just know
[04:21] polotek: either way, I'm worried
[04:21] ajsie has left the channel
[04:22] jesusabdullah: ahaha
[04:22] polotek: malkomalko: no
[04:22] polotek: but we could maybe help with specific issues
[04:23] mjr_: I'm old. I listened to Sunglasses at Night on my original Sony Walkman FM. Stereophonic gimmickry at its finest.
[04:24] jesusabdullah: My first car had a tape deck
[04:24] jesusabdullah: I had two tapes: AC/DC, and Devo
[04:25] jesusabdullah: :(
[04:25] polotek: that's not so old
[04:25] polotek: I had a walkman and a crappy car tape deck
[04:25] polotek: what I did not have is Corey Hart
[04:25] jesusabdullah: Dammit I have sunglasses stuck in my head now
[04:25] jesusabdullah: NOT my fault
[04:25] jesusabdullah: >_<
[04:25] dgathright_ has joined the channel
[04:25] nano` has joined the channel
[04:26] joshbuddy has joined the channel
[04:26] dgathright__ has joined the channel
[04:27] ryah: polotek: pong
[04:27] polotek: ryah: had a chat with mikeal about this patch
[04:27] polotek: http://gist.github.com/514868
[04:27] polotek: surfaces process.maxIOThreads
[04:28] polotek: getter/setter
[04:28] polotek: there are a few issues
[04:29] ryah: what are the isssues?
[04:30] polotek: you can scroll back to about 11:35pm est for my chat with mikeal
[04:30] polotek: but in a nutshell
[04:30] sonnym has joined the channel
[04:30] polotek: I don't understand why there are set_min and set_max functions
[04:30] polotek: they both pivot around one value
[04:31] polotek: I used them both, in my setter but not sure if there's any issue with the way I'm doing it
[04:31] sonnym has joined the channel
[04:32] ryah: polotek: the number of eio threads expands and contracts depending on load
[04:32] ryah: typically the min will be 1
[04:33] polotek: right, I see that
[04:33] tjgillies has joined the channel
[04:33] ryah: process.threadPoolMaxThreads = 10
[04:33] ryah: process.threadPoolMinThreads = 2
[04:33] polotek: it'll gracefully kill off the threads
[04:33] polotek: I saw that too
[04:34] polotek: the only issue I saw
[04:34] polotek: was if you lowered the max
[04:34] polotek: and you had some long running threads
[04:34] polotek: the pending queue would back up
[04:34] polotek: until they finished
[04:35] polotek: but that's what's supposed to happen I think
[04:35] polotek: so a non-issue
[04:35] _announcer: Twitter: "I think node.js needs another web framework." -- Eric Florenzano. http://twitter.com/ericflo/status/20681851328
[04:36] sztanpet has joined the channel
[04:37] _announcer: Twitter: "Starting Monday going to try out a combo integration of rails 3, node.js, sammy.js and couchdb for some app ideas I have. Could be awesome." -- Nick Ricketts. http://twitter.com/nightshade427/status/20681966355
[04:37] dgathright__ has joined the channel
[04:38] crazzy has joined the channel
[04:39] davidwalsh has joined the channel
[04:39] crazzy: Hello fellas, I'm having a problem getting nodejs to work at all. Configure and compilation went without any errors at all. But when I try to run any of the example apps from the site I get this: http://pastebin.com/gyUBvJdj
[04:40] crazzy: Doesn't matter which example app I try. Nothing works.
[04:40] crazzy: Debian Lenny 32bit if that helps
[04:41] dgathright has joined the channel
[04:41] polotek: is test.node your js example code?
[04:42] crazzy: yep
[04:42] polotek: change the .node extension to .js
[04:42] polotek: .node is for C addons
[04:42] polotek: it's trying to load your code as a dynamic C module
[04:42] polotek: that's what that error means
[04:43] polotek: ryah: still there?
[04:44] crazzy: polotek: THanks, thought it was me being stupid :P
[04:45] dnolen has joined the channel
[04:47] dgathright has joined the channel
[04:53] benburkert has joined the channel
[04:56] emmanueloga has joined the channel
[04:57] amerine has joined the channel
[05:02] Neil__ has joined the channel
[05:03] ryah: polotek: yeah sorry
[05:03] ryah: polotek: test.node?
[05:05] polotek: ryah: that was a different conversation
[05:06] polotek: ryah: here's all my info in a post
[05:06] polotek: http://groups.google.com/group/nodejs/browse_thread/thread/3e80c87d833b835e
[05:06] polotek: sorry, it's long windged
[05:06] polotek: winded*
[05:06] polotek: there's also the patch I had you look at before. that has the ioThreadUsage() function
[05:07] polotek: I gotta get some sleep, but feedback is much appreciated.
[05:08] polotek: I can update naming and formatting too. could probably use some tweaking
[05:09] CrabDude has joined the channel
[05:11] polotek: later all
[05:11] polotek has left the channel
[05:19] pdelgallego has joined the channel
[05:22] hansek has joined the channel
[05:23] nodster has joined the channel
[05:23] joshbuddy has joined the channel
[05:23] ewdafa has joined the channel
[05:25] _announcer: Twitter: "Shoutbox with Grasshopper and CouchDB. http://howtonode.org/grasshopper-shoutbox #grasshopperjs #nodejs" -- Chandra Sekar. http://twitter.com/tuxychandru/status/20684486136
[05:26] keeto has joined the channel
[05:27] pdelgallego has joined the channel
[05:31] sztanpet has joined the channel
[05:36] elliottcable: does anybody know if node-inspector works with recent nodes?
[05:36] elliottcable: I’m trying to set it up, I keep having the inspector process crashing with “Error: ECONNREFUSED, Connection refused”
[05:37] jesusabdullah: I read it as CONFUSED but with a NRE shoved in there
[05:43] ashleydev_ has joined the channel
[05:44] elliottcable: jesusabdullah 3↼ :D “Error: ERRCONFUSED, No idea what's going on”
[05:45] jesusabdullah: elliottcable: NO idea. Never used node-inspector
[05:45] jesusabdullah: Also, I suck @ node truth be told
[05:48] Neil___ has joined the channel
[05:52] tisba has joined the channel
[05:53] _announcer: Twitter: "#Node.js: #Javascript on the Server - #Google Tech Talk by Ryan Dahl : http://bit.ly/c3qCEg" -- Tuhin Paul. http://twitter.com/cupid4u/status/20685836946
[05:55] SamuraiJack has joined the channel
[05:57] elliottcable: jesusabdullah 3↼ lolwut
[05:58] elliottcable: anyway srsly this is awesome. Debugging my code with node_g, node-inspector, and the WebKit WebInspector… is impossibly awesome. :O http://drp.ly/1ve26I
[05:59] jesusabdullah: Cool!
[06:06] ph^ has joined the channel
[06:06] mape: !translate Japanese:English これは不公平だな日本と中国は、多くのつぶやきで書くことができます。それは気の利いたことができる限りを書くことができるようになる!天候は曇り、今日のコーヒーはおいしい。私はスウェーデンに伝えることができていなかった!
[06:08] _announcer: Twitter: "@kylefox Not really. I think a node.js framework should completely blur the lines between server & client, or else why not just use Python?" -- Eric Florenzano. http://twitter.com/ericflo/status/20686530839
[06:08] sztanphet has joined the channel
[06:10] sveimac has joined the channel
[06:10] justin__ has joined the channel
[06:29] _announcer: Twitter: "YUI someone to run out in the ... node.js Ngi probe is easily parse the page The เนี่ Â I do not have to write a RegEx and tired." [th] -- AMp. http://twitter.com/chettapong/status/20687491079
[06:32] _announcer: Twitter: "@bmavity I sent a mail in June requesting access to @heroku's node.js beta, as I have an app in development that depends on it, but nada yet" -- Peter Haza. http://twitter.com/phaza/status/20687647506
[06:33] jesusabdullah: nyoro~n
[06:40] aliem has joined the channel
[06:41] alecmuffett has joined the channel
[06:44] Tobsn: nada yet
[06:45] jspiros has joined the channel
[06:52] joshbuddy has joined the channel
[06:55] keyvan has joined the channel
[06:57] matt_c has joined the channel
[06:59] _announcer: Twitter: "@hotgazpacho I think some selling points of node.js are supposed to be the evented I/O, the speed, and the use of JS on client and server." -- Cliff Pruitt. http://twitter.com/cpruitt/status/20688786263
[07:00] joshbuddy has joined the channel
[07:02] hellp has joined the channel
[07:13] nano` has joined the channel
[07:15] micheil has joined the channel
[07:25] sveimac has joined the channel
[07:28] tk: ohh yet another shining example of failed translations
[07:28] jesusabdullah: huh?
[07:28] tk: although... the "and tired' bit almost makes it seem like it was written that way intentionally (_announcer)
[07:29] tk: was earlier (still on my screen from .... 1hr 10mins ago
[07:29] everton has joined the channel
[07:31] jesusabdullah: hah
[07:31] jesusabdullah: ahaha
[07:31] jesusabdullah: awesome
[07:31] tk: cant say I've seen any translated tweets from _announcer that made sense yet :P
[07:31] zomgbie has joined the channel
[07:35] keyvan has joined the channel
[07:36] sveimac has joined the channel
[07:40] Neil has joined the channel
[07:43] sveimac has joined the channel
[07:49] _announcer: Twitter: "expressjs have several Twitter accounts, but nodejs article .. but there's no nothing;" [ko] -- Jeong-won Ko. http://twitter.com/Highgarden/status/20690927972
[07:51] jesusabdullah: ahaha
[07:51] jesusabdullah: win
[07:51] tk: lol
[07:52] sztanpet has joined the channel
[07:52] ph^_ has joined the channel
[07:53] rauchg_ has joined the channel
[07:54] Tim_Smart has joined the channel
[07:57] _announcer: Twitter: "Just tested the qxoo a bit more, even events and single value binding is working on node.js... Wooohhooooo!" -- Martin Wittemann. http://twitter.com/wittemann/status/20691232203
[07:57] ph^ has joined the channel
[07:59] beanie___ has joined the channel
[08:03] Tim_Smart has joined the channel
[08:05] tisba has joined the channel
[08:05] keyvan has joined the channel
[08:06] Neil__ has joined the channel
[08:10] TomY has joined the channel
[08:12] _announcer: Twitter: "What would be possible, they would rebuild on Piwik NodeJS or event http://www.golem.de/1008/77059.html Machine ..." [de] -- ziromr. http://twitter.com/ziromr/status/20691878784
[08:12] blackdog_ has joined the channel
[08:14] tisba_ has joined the channel
[08:17] zomgbie has joined the channel
[08:18] rnewson has joined the channel
[08:20] slaskis has joined the channel
[08:31] mAritz has joined the channel
[08:33] x_or has joined the channel
[08:38] sideshowcoder has joined the channel
[08:39] jblanche has joined the channel
[08:40] omarkj has joined the channel
[08:43] joshbuddy has joined the channel
[08:44] ntelford has joined the channel
[08:52] MrTopf has joined the channel
[08:58] jetienne has joined the channel
[09:06] femtoo has joined the channel
[09:09] claudiu__ has joined the channel
[09:15] _announcer: Twitter: "installing latest #nodejs release" -- Sascha Depold. http://twitter.com/sdepold/status/20694491836
[09:16] jetienne: how can i define a global ? GLOBAL.foo = "bar"; doesnt seem to work
[09:18] omarkj: global.foo = 'bar' should do it, works here.
[09:18] jetienne: omarkj: hmm ok
[09:19] omarkj: You sure you've assigned to the variable when you're trying to use it ?
[09:20] jetienne: omarkj: im not able to focus. it is likely the error is elsewhere. but cant see it
[09:20] SvenDowideit has joined the channel
[09:22] markwubben has joined the channel
[09:22] sztanphet has joined the channel
[09:22] omarkj: Ah. Good luck hunting.
[09:24] geojeff has joined the channel
[09:26] teemow has joined the channel
[09:28] hellp has joined the channel
[09:35] ntelford has joined the channel
[09:35] _announcer: Twitter: "http://bit.ly/9Pg6JI pretty fascinating that joyent(node.js supporter) uses opensolaris for its custom vps solution" -- Bryan. http://twitter.com/bryanwb/status/20695370887
[09:36] mAritz: wow, working with callbacks all the time can be quite a pain in the ass. some of my functions call callbacks that call callbacks that call callbacks x10 oO
[09:37] keyvan has joined the channel
[09:39] siedrix has joined the channel
[09:40] shockie has joined the channel
[09:40] micheil has joined the channel
[09:50] Tim_Smart: mape: Ping
[09:55] MattJ has joined the channel
[09:55] rsms has joined the channel
[10:02] mape: Tim_Smart: pong
[10:02] Tim_Smart: mape: Have you still got the svg for that world map
[10:02] mape: Isn't it in the source?
[10:02] Tim_Smart: I probably have it somewhere on my ubuntu partition, but I'm in Mac atm
[10:02] Tim_Smart: mape: I'm playing with Illustrator atm
[10:03] Tim_Smart: Want to play with path optimisation.
[10:03] mape: Hmm k dmitry already optimized mine but yeah, it should be i the source
[10:03] Tim_Smart: OK
[10:04] Tim_Smart: I might boot into Ubuntu :)
[10:05] mape: why?
[10:05] mape: http://wargamez.mape.me/
[10:05] mape:
[10:06] Tim_Smart has joined the channel
[10:06] mape: http://wargamez.mape.me/js/map.js?v0.7
[10:06] mape: then i assume you just copypaste the paths into file.svg
[10:08] jetienne: _announcer_: x
[10:08] jetienne: mape: it is offline ?
[10:09] mape: what?
[10:10] jetienne: mape: your map is not updating with current messages
[10:11] mape: hmm
[10:11] mape: true
[10:11] omarkj: Hm, I think node really needs a good AMQP module. I'll try to make my homebrew stuff 'shippable'..
[10:11] WarBot has joined the channel
[10:11] mape: hmm
[10:11] mape: there
[10:11] mape: pulled the plug
[10:13] stagas has joined the channel
[10:20] davidc_ has joined the channel
[10:23] jkreeftmeijer has joined the channel
[10:24] keeto has joined the channel
[10:25] karboh has joined the channel
[10:26] SvenDowideit has joined the channel
[10:35] mscdex has joined the channel
[10:40] fermion has joined the channel
[10:47] chakrit has joined the channel
[10:50] BryanWB has joined the channel
[10:51] SvenDowideit has joined the channel
[10:52] BryanWB: anybody know if the function connect.createServer( function call, func call, func call) blocks until all the function calls complete?
[10:57] rauchg_: BryanWB: it doesn't
[10:57] rauchg_: well, it really depends on what blocks
[10:58] BryanWB: rauchg_, interesting
[10:58] rauchg_: it'll "block" until those functions return
[10:58] BryanWB: rauchg_, so it does block?
[10:58] rauchg_: i wouldn't call it block
[10:58] rauchg_: jsut normal javascript expression evaluation
[11:00] rauchg_: the only way it could not block is if it setTimeout() going through the `arguments`
[11:00] rauchg_: but i don't see why it would do that
[11:01] shockie has joined the channel
[11:02] rnewson has joined the channel
[11:02] rnewson has joined the channel
[11:03] everton has left the channel
[11:10] stride: createServer is only called once to set up the instance, so why would that matter anyway?
[11:11] BryanWB: is ciaran jessup around?
[11:16] micheil: was that mape?
[11:16] mape: ?
[11:16] micheil: I guess not
[11:16] micheil: see the post by BryanWB
[11:17] SvenDowideit has joined the channel
[11:17] sideshowcoder has joined the channel
[11:18] mape: oh k, nah my name is MA-thias PE-ttersson, mape.
[11:22] d0k has joined the channel
[11:22] sideshowcoder has joined the channel
[11:23] SvenDowideit has joined the channel
[11:27] micheil: yeah, alright mate
[11:28] micheil: ACTION is bad with names
[11:29] sztanphet has joined the channel
[11:33] SvenDowideit has joined the channel
[11:37] SvenDowideit has joined the channel
[11:45] BryanWB: erm, does require('foo'); return the exports object, w/ all the properties attached to the exports object in the main js file for that directory?
[11:45] BryanWB: and how does require know which file returns the "exports" object?
[11:47] sztanpet has joined the channel
[11:47] stride: http://nodejs.org/api.html > Modules
[11:50] BryanWB: stride, so i am mostly right. require either looks for foo.js or 'foo/index.js' somewhere on the require paths
[11:50] sztanphet has joined the channel
[11:51] stride: yep
[11:53] sztanpet has joined the channel
[11:56] BryanWB: stride, that fixes my problem nicely
[12:01] riottaba has joined the channel
[12:03] benoitc has joined the channel
[12:03] pdelgallego has joined the channel
[12:04] dnolen has joined the channel
[12:07] sveimac has joined the channel
[12:14] sztanpet has joined the channel
[12:17] sztanphet has joined the channel
[12:18] ajpiano has joined the channel
[12:22] ditesh|cassini has joined the channel
[12:28] kevm_ has joined the channel
[12:36] mscdex: node.js rules!
[12:39] SubStack: fact
[12:44] virtuo has joined the channel
[12:45] nodev has joined the channel
[12:46] b_erb has joined the channel
[12:47] pufuwozu has joined the channel
[12:47] benoitc has joined the channel
[12:50] benoitc has joined the channel
[12:54] jamescarr: mscdex, nice
[12:57] benoitc has joined the channel
[12:58] victorstan has joined the channel
[13:00] pengwynn has joined the channel
[13:01] chrischris has joined the channel
[13:01] astrolin has joined the channel
[13:02] wattz: Good morning
[13:02] satori_: heya
[13:02] ceej has joined the channel
[13:02] BryanWB has joined the channel
[13:04] dylang has joined the channel
[13:06] ben_alman has joined the channel
[13:07] ben_alman has joined the channel
[13:07] ben_alman has joined the channel
[13:08] ben_alman has joined the channel
[13:09] ben_alman has joined the channel
[13:09] ben_alman has joined the channel
[13:10] ben_alman has joined the channel
[13:10] ctp has joined the channel
[13:10] ben_alman has joined the channel
[13:11] ben_alman has joined the channel
[13:12] ben_alman has joined the channel
[13:12] kriszyp has joined the channel
[13:12] ben_alman has joined the channel
[13:13] ben_alman has joined the channel
[13:13] ben_alman has joined the channel
[13:14] ben_alman has joined the channel
[13:15] ben_alman has joined the channel
[13:15] jherdman has joined the channel
[13:15] ben_alman has joined the channel
[13:16] daleharvey has joined the channel
[13:18] jtsnow has joined the channel
[13:22] daniellindsley has joined the channel
[13:23] mscdex: ben_alman: you should invest in a dam
[13:26] phiggins: something
[13:28] cnu has joined the channel
[13:28] [[zz]] has joined the channel
[13:30] volve has joined the channel
[13:30] dylang_ has joined the channel
[13:31] cnu: {html: 'text/html'}[extension] || 'application/octet-stream'; with extension='constructor', this gives "function Object() { [native code] }". is there some way to avoid this?
[13:33] chakrit: ({}).hasOwnProperty('constructor') === false
[13:33] cnu: thank you!
[13:33] chakrit: ({html:'test'}).hasOwnProperty('html') === true
[13:33] chakrit: not sure if that's the safest way though
[13:34] bbttxu has joined the channel
[13:36] Gruni has joined the channel
[13:38] kevm_ has joined the channel
[13:40] ntelford has joined the channel
[13:42] dnolen has joined the channel
[13:43] Tim_Smart has joined the channel
[13:44] steadicat has joined the channel
[13:44] x_or has joined the channel
[13:45] kevm__ has joined the channel
[13:46] zemanel has joined the channel
[13:50] dylang_: \nick dylang
[13:53] dylang has joined the channel
[13:53] behmann has joined the channel
[13:55] gf3 has joined the channel
[13:55] Blink7_ has joined the channel
[13:56] davidwalsh has joined the channel
[14:02] wattz: any C++ guys around this morning?
[14:03] tisba_ has joined the channel
[14:04] dylang has joined the channel
[14:04] dylang: I've npm installed express (and uninstalled/reinstalled) and always get this error, any idea? Error: Cannot find module './../lib/node/.npm/expresso/0.6.1/package/bin/expresso'
[14:05] mape: how do you require it?
[14:05] dylang: mape: running in bash
[14:05] mape: and how?
[14:06] ajpiano has joined the channel
[14:06] dylang: either just expresso or expresso test/workhorse.js
[14:07] BryanWB: dylang, have you tried $ npm install expresso?
[14:07] everton has joined the channel
[14:07] BryanWB: i guess the test suite for express requires expresso
[14:07] dylang: BryanWB: that's how i installed it. i also uninstalled and re-installed. and installed the newest npm too.
[14:08] mape: dylang: on osx?
[14:08] BryanWB: dylang, but did u install "expresso" in addition to express?
[14:08] dylang: mape: yes osx
[14:08] satori_: wattz: Still headbutting v8?
[14:08] dylang: BryanWB: yes express/connect/expresso
[14:08] mape: dylang: Ive had issues with bins not being linked
[14:08] mape: how about sudo expresso?
[14:09] dylang: mape: same issue with sudo expresso
[14:09] mape: hmm k
[14:09] BryanWB: dylang, is expresso there in that path?
[14:09] everton has left the channel
[14:10] isaacs has joined the channel
[14:10] dylang: BryanWB: remind me where .npm lives? the path in the error is a relative path.
[14:10] BryanWB: dylang, should be /usr/local/lib/node/.npm
[14:11] isaacs: dylang: it lives under $(npm config get root)
[14:11] guybrush: dylang: npm config get root
[14:11] BryanWB: glad there are smarter folks than me here ;)
[14:12] dylang: BryanWB: hmm no expresso there. but it is in /usr/local/bin/
[14:12] guybrush: its not about being smart, its about reading the docs :p
[14:13] BryanWB: dylang, where is your root dir for npm?
[14:13] dylang: isaacs && guybrush: thanks, was always wondering how to see config settings.
[14:13] mw_ has joined the channel
[14:13] BryanWB: guybrush, i am bad at that too ;)
[14:13] isaacs: dylang: also: npm config ls
[14:13] isaacs: dylang: and also: npm help config
[14:13] dylang: BryanWB: /usr/local/lib/node
[14:14] BryanWB: dylang, in the same dir, do u see .npm?
[14:14] geojeff has joined the channel
[14:15] dylang: BryanWB: oh yeah, silly me. it's in .npm. expresso/0.6.1 and active pointing to that. files are there.
[14:16] dylang: BryanWB: and the expresso binary is in the bin directory.
[14:16] BryanWB: dylang, but the express test suite doesn't see it?
[14:16] isaacs: dylang: sorry, what's the error?
[14:17] matt_c has joined the channel
[14:17] BryanWB: dylang, isaacs has a great suggestion in his intro slides $ sudo chown -R $USER /usr/local/lib
[14:17] dylang: isaacs: "Error: Cannot find module './../lib/node/.npm/expresso/0.6.1/package/bin/expresso'"
[14:17] dylang: i think i see the preoblem
[14:17] BryanWB: dylang, and then run npm and other node cmds w/out sudo, should be more secure and have fewer path problems
[14:17] isaacs: dylang: yeah, but i mean, when do you see that?
[14:17] isaacs: BryanWB: the path problems should be non-sudo-related any more. npm doesn't do any more path-magic based on sudoness.
[14:18] dylang: in /usr/local/bin/expresso the script uses relative paths
[14:18] isaacs: BryanWB: it's all strictly config-based. it does sniff the default root/binroot based on where node lives, though.
[14:18] isaacs: dylang: so, you're running "expresso" and it's throwing the error?
[14:18] astrolin has joined the channel
[14:18] dylang: isaacs
[14:18] dylang: isaacs: correct
[14:19] isaacs: hm... what does this say? which expresso
[14:20] dylang: isaacs: /usr/local/bin/expresso
[14:20] hansek has joined the channel
[14:20] evadne has joined the channel
[14:21] dylang: expresso works when i run "/usr/local/lib/node/.npm/expresso/active/package/bin/expresso"
[14:21] dylang: that's why i think the relative paths in the /usr/local/bin/expresso could be breaking things
[14:22] isaacs: are either of those things symlinks somewhere else?
[14:24] loincloth has joined the channel
[14:24] sveimac has joined the channel
[14:25] abienz has joined the channel
[14:26] abienz: Can someone here help me with building node.js? I can't get it up and running, make fails
[14:26] dylang: isaacs: /usr/local/bin/expresso -> ./expresso-0.6.1*
[14:26] BryanWB: dylang, if u type $ whereis expresso , does it show where it is
[14:27] isaacs: dylang: i meant, are either of those folders symbolic links or something
[14:27] dylang: isaacs && bryanwb: no
[14:28] BryanWB: dylang, is /usr/local/bin in your path? $ echo $PATH
[14:28] jesusabdullah: abienz: You have some kinda output to share? A gist or a pastie or something?
[14:28] abienz: jesusabdullah: I'll get a pastie for you, thanks
[14:28] jesusabdullah: abienz: I probably won't be able to help, but without some kinda hintage I don't think anyone can :)
[14:29] dylang: BryanWB: yup, i don't think node would work otherwise
[14:29] jesusabdullah: abienz: and, I mean, I'm willing to kick the tires and comment on how that thing's got a hemi alright
[14:29] abienz: Here is the terminal output when make fails with node.js http://pastie.org/1081796 can someone give me some tips?
[14:29] BryanWB: dylang, it still could if your PATH var is funky enough
[14:29] knuckolls has joined the channel
[14:30] dylang: BryanWB: echo $PATH
[14:30] dylang: whoops
[14:30] BryanWB: wrong terminal ;)
[14:30] jesusabdullah: abienz: What OS are you running?
[14:30] dylang: echo $PATH \n /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/android-sdk/tools
[14:30] abienz: jesusabdullah: OS X Snow Leopard
[14:30] jesusabdullah: hmm
[14:31] abienz: just trying to get it up and running
[14:31] mikeal has joined the channel
[14:31] jesusabdullah: hmm
[14:31] dylang: BryanWB: which you do which expresso - which one do you get?
[14:31] abienz: is there anything you need to get started with node.js on OS X?
[14:32] BryanWB: dylang, $ whereis expresso
[14:32] BryanWB: expresso: /usr/local/bin/expresso
[14:32] BryanWB: dylang, i don't use os X, so not sure of the differences b/w it and linux
[14:32] isaacs: abienz: you need nodejs :)
[14:32] isaacs: ACTION uses a mac
[14:32] jesusabdullah: I run linux, and tbh I'm clueless
[14:32] abienz: yup, I'm running this in the cloned node/js folder
[14:32] isaacs: abienz: you might have to install XCode if you don't already compile stuff all the time
[14:33] jesusabdullah: but isaacs is really smart!
[14:33] abienz: I have XCode installed
[14:33] dylang: BryanWB || isaacs: if you cat /usr/local/bin/expressso do you see how it's path building?
[14:33] isaacs: kewl
[14:33] singalong has joined the channel
[14:33] singalong: hi all
[14:33] jesusabdullah: Did you see the pastie, isaacs?
[14:33] singalong: where do i find the doc for the serveFile function?
[14:33] isaacs: ah, i see
[14:33] isaacs: abienz: what are the errors that came before that?
[14:34] abienz: I'll post the whole thing
[14:34] BryanWB: dylang, yes
[14:34] jesusabdullah: there's a serveFile function?
[14:34] isaacs: abienz: i guarantee there was something more helpful on the lines above
[14:34] abienz: do you want my ./configure output also?
[14:34] isaacs: abienz: sure.
[14:34] isaacs: abienz: ./configure && make 2>&1 | pbcopy
[14:34] jesusabdullah: :o
[14:34] isaacs: abienz: that'll copy the whole thing in one fell swoop
[14:34] isaacs: pbcopy/pbpaste are *awesome*
[14:35] singalong: jesusabdullah: I just googled on how to serve static files via node and found someone's snippet on SO using that function
[14:35] isaacs: singalong: they might be using node-static
[14:35] abienz: isaacs: Here's a pasiie link, I already put togethe http://pastie.org/1081808
[14:35] femtooo has joined the channel
[14:35] jesusabdullah: Yeah, sounds like a module function
[14:36] jesusabdullah: node-static sounds like a good candidate
[14:36] isaacs: abienz: i see. so configure thinks you have openssl, but it looks like you don't actually have it
[14:36] isaacs: that's odd
[14:36] abienz: oh
[14:36] SubStack: have there been any node webframeworks that fundamentally blur the lines between the server and the client yet?
[14:36] micheil: if anyone's interested, there's the latest episode of The Changelog podcast up, in which we talked about WebSockets and related technologies
[14:36] SubStack: because I am planning on building one of those
[14:36] jesusabdullah: SubStack: dnode? :v
[14:36] singalong: jesusabdullah: oh so there's no function is node itself to do that?
[14:37] sveisvei has joined the channel
[14:37] SubStack: jesusabdullah: quiet you, you already know of my nefarious plans
[14:37] bradleymeck has joined the channel
[14:37] isaacs: ACTION can't for the life of him remember how he installed openssl on this mac...
[14:37] jesusabdullah: singalong: I don't believe so!
[14:38] dylang: micheil: syncing now, and thanks for making them downloadable via rss again.
[14:38] jesusabdullah: singalong: http://nodejs.org/api.html pretty much spells it out
[14:38] isaacs: abienz: ther'es a port for it, if you use macports
[14:38] abienz: isaacs: when I type openssl into terminal it runs
[14:38] micheil: dylang: no worries, tell us what you think of the episode
[14:38] abienz: isaacs: it looks like I already have it
[14:38] [[zz]] has joined the channel
[14:38] isaacs: abienz: right, but you don't have the header file
[14:38] bradleymeck: sudo port install openssl?
[14:38] isaacs: openssl-dev is what you need.
[14:38] jesusabdullah: singalong: http://wiki.github.com/ry/node/modules lists a lot (but not all!) of the good stuff out there for Node
[14:40] bradleymeck: yea, looks like the mac-ports install has dev in it on glance
[14:40] BryanWB: dylang, does your root user have the same path as your regulare user? $ su -c "echo $PATH"
[14:41] abienz: Ok, I'm building openssl through macports
[14:41] daleharvey has joined the channel
[14:42] abienz: bradleymeck: isaacs: ok openssl from macports has been installd
[14:43] dylang: BryanWB: that command not working for me, might be a mac thing. sudo $PATH shows the same path.
[14:43] ThePub has joined the channel
[14:43] abienz: and it performed make this time
[14:43] BryanWB: dylang, argh then i don't know, sorry :(
[14:44] bronson has joined the channel
[14:44] daniellindsley has joined the channel
[14:44] abienz: baddabing! thanks isaacs bradleymeck and jesusabdullah
[14:44] jesusabdullah: Awww :3
[14:45] jesusabdullah: ACTION didn't do anything
[14:45] isaacs: abienz: :)
[14:45] bradleymeck: anytime i can help :D
[14:45] dylang: BryanWB: thanks for your help. i just noticed i can't run express on the command line either (same error), which leads me back to an npm config issue.
[14:46] isaacs: dylang: yeah, something is screwey
[14:46] BryanWB_ has joined the channel
[14:46] isaacs: i mean, that relative path should work fine.
[14:46] steadicat has joined the channel
[14:47] BryanWB_ has joined the channel
[14:47] isaacs: what's this say? ls -laF /usr/local/bin/./../lib/node/.npm/express/1.0.0rc/package/bin/express
[14:48] DozyPieman has joined the channel
[14:50] softdrink has joined the channel
[14:51] dylang: isaacs: -rwxr-xr-x 1 dylan staff 3.7K Jul 30 13:15 /usr/local/bin/./../lib/node/.npm/express/1.0.0rc/package/bin/express*
[14:53] isaacs: dylang: oh! what version of node?
[14:53] dylang: isaacs: v0.1.101
[14:54] dipser has joined the channel
[14:54] dylang: isaacs: i'll upgrade to see if that helps.
[14:54] Yuffster has joined the channel
[14:55] jesusabdullah: Ooh! You'll get the baleet button on the repl!
[14:55] jesusabdullah: i think?
[14:55] jesusabdullah: That was a pretty awesome addition
[14:56] volve_ has joined the channel
[14:57] evadne has joined the channel
[14:57] dylang: building node the old fashion way. npm install node isn't possible, right?
[14:58] jesusabdullah: ACTION doesn't think so
[14:58] jesusabdullah: That'd be pretty boss
[14:58] bradleymeck: when was that ever the way?
[14:58] jesusabdullah: I think I tried it once, not thinking
[14:58] jesusabdullah: :)
[14:58] jesusabdullah: was like, "orite"
[14:59] knuckolls has joined the channel
[14:59] isaacs: dylang: no, but you can do npm install nave, and then "nave usemain 0.1.103"
[14:59] isaacs: or nave use 0.1.103 to use it in a subshell
[14:59] bradleymeck: lol if someone goes and puts node as a fork of nave that has an install script of that
[15:01] isaacs: bradleymeck: it'd be easy. {
[15:01] isaacs: "
[15:02] bradleymeck: yup
[15:02] bradleymeck: circular updates @_@, now if we can just bundle an npm binary lol
[15:02] isaacs: {"name":"node", "version":"0.1.103", "scripts":{"install":"nave usemain $npm_package_version"},"dependencies":{"nave":"*"}}
[15:02] dylang: isaacs: upgrading to 0.1.103 has fixed all and i am all the wiser. thanks very much for the help.
[15:02] isaacs: dylang: no problem.
[15:03] isaacs: i think proper relative path handling landed in 102, when node started caching modules based on their real file path
[15:03] isaacs: maybe 101
[15:03] khug has joined the channel
[15:04] jakehow has joined the channel
[15:04] isaacs: weird thing is that "npm test express" works fine in 0.1.98
[15:04] dylang: now i'm starting to wonder if other issues i had last week were related to the pathing problem.
[15:04] jetienne: i want a .profile or main()!
[15:04] isaacs: jetienne: ?
[15:04] bradleymeck: for the repl?
[15:05] dylang: could expresso "require" node 1.0.102 or 103?
[15:05] jetienne: for node itself. like "if such a file is found, prerun it"
[15:05] isaacs: dylang: sure. { "engines":{"node":">=0.1.102"}}
[15:06] quirkey has joined the channel
[15:07] dylang: adding an issue in github so future warriors are warned.
[15:08] geojeff has joined the channel
[15:08] bradleymeck: jetienne, not sure i understand
[15:09] bradleymeck: seems more like something you would include in your project to project use than as a whole
[15:10] b_erb has joined the channel
[15:11] jetienne: bradleymeck: you know .profile? every time you login you run this file if present. i want nodejs to do the same. every time node is launched, it run the .node_profile or something
[15:11] softdrink: Wow, the speed disparity between assignment and accessors is insane. http://jsperf.com/assignment-vs-invocation/5
[15:12] jetienne: bradleymeck: or something similar. maybe something with a env var. NODEJS_PROFILE="mysuperfile" node
[15:13] bradleymeck: yes, but why would that be in it always? is there a good use case beyond setting up common requires? it would slow down startup some :/, the env var would be far less taxing i would think, mmm
[15:13] iaurynn has joined the channel
[15:14] amerine has joined the channel
[15:15] bradleymeck: softdrink, yea, but you have to remember, an accessor is a lookup, call, lookup & assignment.
[15:16] stride: heh http://www.youtube.com/watch?v=zV0OgsRK0Bc&feature=player_embedded nice way to apply for a job :-D
[15:18] nano` has joined the channel
[15:18] softdrink: right, but a difference of 66M is significantly larger than i would have expected
[15:19] aurynn has joined the channel
[15:19] softdrink: (at least in the current chrome dev build)
[15:22] bradleymeck: im seeing 10x slowdown here
[15:22] dmcquay has joined the channel
[15:25] jamescarr: hey, who has a good example of using npm's "scripts" feature?
[15:26] jamescarr: nvm
[15:26] jamescarr: npm does
[15:26] jamescarr: :)
[15:26] isaacs: jamescarr: there's a pretty thorough documentation of what it does in "npm help scripts", too
[15:26] ashleydev has joined the channel
[15:27] ashleydev_ has joined the channel
[15:32] hoodow has joined the channel
[15:34] chrischris has joined the channel
[15:34] BryanWB has joined the channel
[15:35] streampunk has joined the channel
[15:41] dnolen has joined the channel
[15:43] astrolin has joined the channel
[15:45] heycarsten has joined the channel
[15:46] notfound has joined the channel
[15:47] rwaldron_ has joined the channel
[15:47] EyePulp has joined the channel
[15:47] matt_c has joined the channel
[15:48] matt_c has joined the channel
[15:49] jkreeftmeijer: Node.js, web sockets and talking mice -> http://jeffkreeftmeijer.com/2010/node-js-web-sockets-and-talking-mice/
[15:49] jkreeftmeijer: the last in the web socket mouse cursor series :)
[15:50] mscdex: anyone here ever do much with RTP streaming?
[15:51] mjr_: Not with node yet
[15:51] mjr_: But we do have UDP now.
[15:51] jesusabdullah: What's RTP?
[15:52] BryanWB: mscdex, u mean rtmp? the adobe protocol?
[15:53] mscdex: no, rtp
[15:53] mscdex: it's used for streaming audio
[15:53] mscdex: like g.711 and stuff
[15:53] mjr_: VoIP payloads
[15:53] BryanWB: mscdex, i thought i saw a tweet for rtm?p on nodejs.se w/ a link to source code
[15:53] mscdex: ?
[15:54] mscdex: :S
[15:54] mscdex: vlc kinda works, but it doesn't send g.711 audio in 160 byte/20ms packets
[15:54] BryanWB: mscdex, use regex shorthand ;), may or may not have been an "m" in the tweet i saw
[15:54] jesusabdullah: jkreeftmeijer: fun
[15:54] jkreeftmeijer: thanks! :)
[15:57] mjr_: mscdex: what do you need it for?
[15:58] mjr_: I plan on needing it in a month or so, so I'm sort of hoping that someone will do it by then.
[15:58] stride: jkreeftmeijer: yeah, neat as always :)
[15:58] tjholowaychuk has joined the channel
[15:59] jkreeftmeijer: stride: thank you :)
[16:00] mscdex: mjr_: need to send a stream to a cisco phone
[16:00] mscdex: preferrably from node
[16:00] mscdex: i'm looking at making a binding to oRTP
[16:01] mscdex: since it doesn't seem there's any easy way
[16:01] mscdex: like a neat command-line client or something heh
[16:01] bradleymeck: did node's new pathing on require break mongodb-native for anyone else?
[16:02] visnup has joined the channel
[16:02] sh1mmer has joined the channel
[16:03] blowery has joined the channel
[16:03] visnup: 7 more spots open for node knockout
[16:04] visnup: (from others not being able to make it)
[16:05] bradleymeck: and 2 spots on my team it seems lol
[16:06] steadicat has joined the channel
[16:07] mscdex: bradleymeck: what happened to frankie?
[16:07] bradleymeck: my home inet went le boom
[16:08] bradleymeck: and the damn cable company is coming out this week to fix it
[16:08] mscdex: oh
[16:09] bradleymeck: but i got a new version of him ready as a treat, now with the ability to code your own triggers
[16:10] technoweenie has joined the channel
[16:10] slaskis_ has joined the channel
[16:11] stride: the irc bot?
[16:11] bradleymeck: yea
[16:15] ashleydev has joined the channel
[16:15] AAA_awright: Is there any framework for writing an IRC bot with Node?
[16:16] bradleymeck: node-irc works pretty easy
[16:17] mscdex: ^ yep
[16:17] mscdex: mjr_: i lucked out. there's a test program that comes with the ortp library that sends a file to an ip
[16:18] mscdex: mjr_: it played fine on my phone
[16:18] mjr_: nice
[16:18] omarkj: Has anyone here worked with AMQP in Node?
[16:18] mjr_: Otherwise you could certainly use asterisk or freeswitch
[16:18] omarkj: I'm having problems getting data from exchanges..
[16:19] mscdex: mjr_: well, this is data that isn't coming from a pbx
[16:19] AAA_awright: This one? http://github.com/martynsmith/node-irc
[16:19] mscdex: AAA_awright: yes
[16:20] mjr_: mscdex: I'm not sure what you are doing exactly, but you can use asterisk to do all kinds of format conversion, play local files, etc.
[16:21] onar has joined the channel
[16:21] mjr_: I used to be a big asterisk / voip person, and then I realized that I hate telephony.
[16:21] mscdex: mjr_: basically just integrating customer phones with our services
[16:22] mscdex: mjr_: so they can access data from their cisco phone and stuff over the network
[16:22] mscdex: on the lovely monochrome screen
[16:22] mjr_: And their limited XML-based browser
[16:22] mscdex: yeah, i want to shoot myself for having to deal with their xml api crap
[16:23] mscdex: probably the worst "corporate" api docs i've ever seen
[16:23] mscdex: well, public-facing anyway heh
[16:23] mjr_: node is a great system for building a better PBX or whatever you want to call it when you connect telephony through a computer.
[16:23] mjr_: Yeah, its awful. The Polycom one isn't that much better either.
[16:24] mjr_: At least Polycom use good analog hardware, so it sounds good.
[16:24] mjr_: Argh, I'm thinking about voip again. Must stop.
[16:24] AAA_awright: mscdex: It seems to support everything except PASS
[16:24] fod has joined the channel
[16:25] mscdex: heh
[16:25] mscdex: mjr_: i deal with this type of stuff on a fairly regular basis, but i'm getting paid for it so i don't have much of a choice :p
[16:25] AAA_awright: Ah no it's just not documented
[16:26] mjr_: Time for a chilly morning ride in the SF summer.
[16:28] dgathright has joined the channel
[16:29] jamescarr: hmmm... in rhino I keep enjoying the destructuring capabilities... is it possible it might wind up in V8 one day?
[16:31] tjholowaychuk: jamescarr: is it even es5? i like it too
[16:31] tjholowaychuk: but might be a while
[16:32] ThePub: should it be considered a bug if child_process.spawn calls toString for each program argument?
[16:35] jamescarr: tjholowaychuk, iirc, it's ES Harmony
[16:35] jamescarr: but not ES5
[16:35] chanux has joined the channel
[16:35] tjholowaychuk: jamescarr: ah :)
[16:36] charlesjolley- has joined the channel
[16:37] jamescarr: of course, there's a lot of insanity with it to. Like the let keyword ;)
[16:38] sh1mmer has joined the channel
[16:38] tjholowaychuk: i like the idea of let
[16:38] tjholowaychuk: shall be handy
[16:42] BryanWB has joined the channel
[16:45] dgathright_ has joined the channel
[16:46] V1 has joined the channel
[16:47] bryanl has joined the channel
[16:48] knuckolls has joined the channel
[16:51] V1: ryah: ping.
[16:53] mjr_ has joined the channel
[16:54] joshbuddy has joined the channel
[16:55] siculars has joined the channel
[16:56] ryah: V1: pong
[16:56] V1: ryah: See pm ;P
[16:56] slaskis has joined the channel
[16:57] sh1mmer has joined the channel
[16:58] creationix has joined the channel
[16:59] trentm has joined the channel
[17:03] matclayton has joined the channel
[17:03] evadne has joined the channel
[17:04] evadne has joined the channel
[17:05] [[zz]] has joined the channel
[17:05] stephenlb has joined the channel
[17:06] jamescarr: cloudhead, hey you there?
[17:09] tjgillies has joined the channel
[17:10] jamescarr: nvm
[17:10] jamescarr: everytime I ask a question on irc, I always figure it out as I ask :)
[17:11] ThePub: sometimes the ball needs to bounce, even if against a phantom :)
[17:11] creationix: jamescarr: :)
[17:11] derferman has joined the channel
[17:12] pgriess has joined the channel
[17:12] sideshowcoder has joined the channel
[17:14] ryah: http://github.com/bcantrill/node-dtrace/commit/2d01583cf20690d6ec58cffd62a099bc3186e741
[17:14] ryah: ^_^
[17:14] JAAulde has joined the channel
[17:14] JAAulde: wow, whoever maintains the FreeBSD buildbot port sure hosed up
[17:15] JAAulde: I think I got mine straightened out though
[17:15] matt_c: JAAulde: Have you looked at Hudson?
[17:15] creationix: ryah: it has begun...
[17:15] V1: Sweet dtrace
[17:15] JAAulde: matt_c: what?
[17:15] jesusabdullah: ryah: What is that?
[17:16] matt_c: JAAulde: http://hudson-ci.org/ (does a lot of the same things that buildbot does but is generally more pleasant to administer)
[17:16] mjr_: ryah: it begins!
[17:16] JAAulde: matt_c: ahh, no I have not. I don't do much with any of those sort of things...I run buildbot for the node.js automated testing: http://buildbot.nodejs.org:8010/
[17:16] ryah: solaris only for the moment
[17:18] matt_c: JAAulde: Cool. I had used buildbot for a couple of years and moved to Hudson a few months back.
[17:18] JAAulde: i see
[17:19] jesusabdullah: man lotta failing buildbots I see there :/
[17:24] sideshowcoder has joined the channel
[17:26] mscdex: woot. ortp has a nonblocking mode
[17:26] jesusabdullah: What's ortp?
[17:26] mscdex: that makes things easy :-D
[17:26] mscdex: jesusabdullah: rtp streaming library
[17:26] jesusabdullah: ah
[17:27] jesusabdullah: good thing I already asked what rtp was!
[17:27] mscdex: :p
[17:27] JAAulde has left the channel
[17:27] mscdex: it's used with sip
[17:27] jesusabdullah: sip?
[17:27] mscdex: heh
[17:28] mscdex: sip is generally what soft phones use
[17:28] jesusabdullah: voip?
[17:28] jesusabdullah: Ah
[17:28] mscdex: voip stuff yeah
[17:28] jesusabdullah: What's your goal, if you don't mind me asking?
[17:28] mscdex: sending and receiving audio to/from cisco ip phones :-\
[17:30] ph^ has joined the channel
[17:31] jesusabdullah: cisco :C
[17:31] wattz: argh.... waf why do you hate me
[17:31] pgriess has joined the channel
[17:32] huyhong has joined the channel
[17:33] huyhong has left the channel
[17:33] dgathright has joined the channel
[17:36] benburkert has joined the channel
[17:41] creationix: wattz: using waf for node is like using applescript to build deb packages ;)
[17:42] creationix: serious conflict of interest
[17:42] bradleymeck: as long as there is an easy way to build things that never need me to do more than 2 lines im pretty darn happy though
[17:42] creationix: (good thing software doesn't really have emotions)
[17:43] nefD: creationix: If it did, vim would constantly have a smug, pretentious attitude
[17:43] admc has joined the channel
[17:43] creationix: emacs would be Stallman incarnate
[17:44] nefD: what would notepad be?
[17:44] ThePub: Gates at his best?
[17:45] ThePub: guess I shouldn't say that, it was my first programming editor on windows 2.0, hehe
[17:47] creationix: Actually I thought the q-basic and quick-c ide was pretty good
[17:47] creationix: I liked Microsoft back then (didn't know better)
[17:47] ThePub: They've always made good tools
[17:47] nefD: agreed, qbasic had a decent ide for what it was
[17:48] stride: the prof. version anyway
[17:48] creationix: We should make a qbasic style ide for node using ncurses
[17:48] creationix: that would be rad
[17:48] stride: there's a binding for ncurses already, isn't it?
[17:48] creationix: yep
[17:49] nefD: gtk+ bindings, too :)
[17:50] stride: uh ;)
[17:50] wattz: creationix: im actually not using it for node, node just turned me on it
[17:51] creationix: ahh
[17:51] wattz: bought to see if i can just do it with jake :D
[17:54] everton has joined the channel
[17:54] everton has left the channel
[17:55] loincloth has joined the channel
[17:55] tyfighter has joined the channel
[17:56] streampunk has joined the channel
[17:59] pufuwozu has joined the channel
[18:02] dylang has joined the channel
[18:02] ashleydev has joined the channel
[18:03] matclayton has left the channel
[18:04] orlandov has joined the channel
[18:04] jakehow has joined the channel
[18:05] jpld has joined the channel
[18:06] brianleroux has joined the channel
[18:09] danielzilla has joined the channel
[18:11] zomgbie has joined the channel
[18:12] tjgillies has joined the channel
[18:17] astrolin_ has joined the channel
[18:19] V1: Never thought that a javascript hashing algorithm could run faster than a openssl algorithm
[18:19] stalled has joined the channel
[18:20] creationix: V1: amazing
[18:20] V1: ._. yup.
[18:20] steadicat has joined the channel
[18:20] creationix: here's a fun one for JS language enthusiast
[18:20] creationix: Object.prototype.isPrototypeOf(Object.create(null))
[18:20] creationix: what object is not an object
[18:21] creationix: one that inherits from nothing
[18:22] wattz: creationix: tree falling in the woods...
[18:22] wattz: lol
[18:22] wattz: where the hell is mde, is jake is all kinda goofy
[18:22] astrolin has joined the channel
[18:22] creationix: wattz: I'm guessing at work, he is at a startup after all
[18:23] wattz: Yammer!
[18:23] wattz: :D
[18:23] wattz: i hate build systems.
[18:23] wattz: node-waf is fine for node specific stuff
[18:25] wattz: waf would be cool if it could actually follow the directions i gave it and include what i wanted it too.
[18:25] wattz: Makefile is ok but annoying to edit
[18:25] jamescarr: everytime I ask a question on irc, I always figure it out as I ask :)
[18:25] jamescarr: bah
[18:25] wattz: Rake.... is ruby.
[18:25] jamescarr: accidentally switched to irc instead of the terminal
[18:26] omarkj: jamescarr: Be careful with 'sudo' on irc.
[18:26] omarkj: I've made that mistake..too often.
[18:26] jamescarr: lol
[18:26] wattz: i do that with dirty IMs and /msgs :(
[18:29] maushu has joined the channel
[18:31] BryanWB has joined the channel
[18:31] _announcer has joined the channel
[18:31] maushu: Hmmm, something happened to my server. Totally weird.
[18:31] dylang has joined the channel
[18:32] maushu: And upstart didn't restart the services...
[18:33] BryanWB: tjholowaychuk, does latest version of express require a newer version of node than v0.1.102
[18:33] BryanWB: ?
[18:34] tjholowaychuk: BryanWB: hmm nope that should be fine i think
[18:35] bradleymeck has joined the channel
[18:36] bradleymeck: im getting an "object has no method find" error in node-mongodb-native, anyone know about this?
[18:36] tjholowaychuk: BryanWB: what problem are you having?
[18:36] BryanWB: tjholowaychuk, here is what I get when I try to run the session example http://pastebin.org/462599
[18:37] BryanWB: tjholowaychuk, does it depend on the latest connect? perhaps i haven't updated that
[18:37] ghiu has joined the channel
[18:37] tjholowaychuk: BryanWB: ya thats the problem
[18:37] ghiu: hi, has any of you used jade? i have a question to ask
[18:37] BryanWB: tjholowaychuk, ok
[18:38] tjholowaychuk: BryanWB: its because now you can do express.bodyDecoder() etc instead of requiring connect
[18:38] tjholowaychuk: just a little shortcut
[18:38] tjholowaychuk: ghiu: yup
[18:38] FransWillem has joined the channel
[18:38] BryanWB: tjholowaychuk, and the latest connect isn't in the npm repo?
[18:39] BryanWB: tjholowaychuk, also u wouldn't happen to know if ciaranj is on vacation this week, would you?
[18:39] creationix: ghiu: tjholowaychuk is the creator of jade
[18:39] Ponder- has joined the channel
[18:39] tjholowaychuk: BryanWB: not yet no, express HEAD / connect HEAD are paired
[18:39] BryanWB: tjholowaychuk, i see
[18:39] programble has joined the channel
[18:39] tjholowaychuk: this is why PM sucks atm
[18:39] tjholowaychuk: its somewhat useless
[18:40] mscdex: ACTION hugs _announcer
[18:40] ghiu: oh, wow, cool, i'm lucky then :D
[18:40] creationix: tjholowaychuk: agreed
[18:40] JimBastard has joined the channel
[18:40] isaacs: tjholowaychuk: pm = private message or pakage manager?
[18:40] creationix: though npm is getting better
[18:40] tjholowaychuk: its nothing against npm at all
[18:40] tjholowaychuk: just the state of libraries right now
[18:40] JimBastard: ahahaha , you can totally put the word "nigger" for the messed up part of a captcha and it lets you in
[18:40] ghiu: i'm just starting to experiment with node.js and jade as well. i've never used haml, also, so maybe my question is naive, but here http://pastebin.com/dzjb48pq is the simples test i'm trying to run, and the error message i get
[18:40] JimBastard: <3 4chan
[18:41] isaacs: tjholowaychuk: nono, don't get me wrong. i'm not getting offended, i'm searching for feedback :)
[18:42] tjholowaychuk: ghiu: you need to pass { locals: { title: 'foo' }}
[18:42] creationix: isaacs: well you know my feedback, till packages slow down, any sort of central repository that's an additional step in releasing stuff is going to get in the way
[18:42] isaacs: tjholowaychuk: also, in my experience, the problems are actually *easier* when everythings new
[18:42] isaacs: creationix: but the same could be said for version control, or documentation, or tests or anything else.
[18:43] isaacs: i mean, "process" is just "the stuff you do". of course, "more process" means "more stuff you do", which means you have more to o.
[18:43] isaacs: *do
[18:43] tjholowaychuk: ghiu: the object is just an options object but locals: {} are the variables available to the template
[18:43] creationix: isaacs: exactely
[18:43] ghiu: tjholowaychuk: and it works... can you explain me this or point me out to where this is documented, please?
[18:43] tjholowaychuk: ghiu: the readme so suffice i think
[18:43] isaacs: creationix: but, if those steps are valuable, then they're worthwhile.
[18:43] ghiu: oh, i see
[18:44] ghiu: thank you then
[18:44] tjholowaychuk: np :D
[18:44] ghiu: so i can also omit the option and declare title within then function?
[18:44] creationix: isaacs: sure, but what's the point in spending extra time to make my releases easier to grab if I'm just going to obsolete it in a matter of hours
[18:44] creationix: git already has a great way to manage this
[18:45] creationix: I'd rather spend my time getting it stable first
[18:45] creationix: plus npm is still too hard for a new person to setup
[18:45] creationix: they need a compiler, install node manually, and then install npm
[18:46] bradleymeck: npm needs a curl address your saying creationix?
[18:46] creationix: bradleymeck: no, npm is easy once you have node
[18:47] JimBastard: creationix is talking about people who are downloading node as a compiled binary
[18:47] creationix: but it requires node
[18:47] JimBastard: which i think is a mistake
[18:47] BryanWB: creationix, i can't speak for mac users, but that is super easy on any linux distro and speaking as a professional sysadmin npm makes setting up node apps much more approachable
[18:47] JimBastard: ohhh
[18:47] JimBastard: i see
[18:47] JimBastard: nm
[18:47] creationix: and making a pre-compiled node that works with npm is very hard
[18:47] JimBastard: well i think kiwi was based entirely on bash script
[18:47] mscdex: why?
[18:47] creationix: mscdex: why to which part?
[18:48] mscdex: what you just said
[18:48] tjholowaychuk: JimBastard: yeah kiwi was just bash
[18:48] creationix: well, it's one thing to provide several binaries of "node"
[18:48] brianmario has joined the channel
[18:48] JimBastard: i could see that getting problematic though
[18:48] tjholowaychuk: not as portable as it could have been
[18:48] creationix: but many npm packages expect node-waf and the entire headers too
[18:48] tjholowaychuk: i dont think i supported both wget and curl transparently etc
[18:49] isaacs: creationix: it's not so hard now.
[18:49] creationix: and people who install a binary node don't want to have to compile packages either
[18:49] isaacs: also, packages that expect node-waf are not any *harder* with npm
[18:49] mscdex: creationix: oh, i thought you meant things like packages and stuff
[18:49] creationix: compiling node is easy once you have a compiler
[18:49] John9e9 has joined the channel
[18:49] creationix: npm doesn't support binary packages as far as I know
[18:49] isaacs: imo, compiling is a pretty reasonable expectation. you can't install most php extensions without compiling, either.
[18:49] mscdex: no i mean precompiled node packages
[18:49] isaacs: creationix: what do you mean "support binary packages"?
[18:50] isaacs: creationix: if you compile it, and put a package.json there, npm doesn't care what's inside.
[18:50] mscdex: isaacs: wha? depends on your distro i guess
[18:50] isaacs: mscdex: oh, i guess i'm talking about php extensions, not pear modules.
[18:50] creationix: isaacs: allow module authors to provide binaries for specified platforms and versions of node
[18:50] isaacs: but pear modules are mostly absurdly slow anyhow.
[18:50] creationix: but node changes too fast to make it fesable
[18:50] mscdex: isaacs: i'm talking about php extensions too...
[18:50] tjholowaychuk: setting up php sucks.. my friend is doing a small site and i recommended node just because its way easier to deploy
[18:50] mscdex: isaacs: unless you have some really oddball extension, lots of distros have them precompiled
[18:50] tjholowaychuk: specially with ndistro ;) haha
[18:51] isaacs: creationix: no. it's trivial to do with a preinstall script, and i don't believe that "i want node and don't have a compiler" is a real use case.
[18:51] trentm_ has joined the channel
[18:51] JimBastard: tjholowaychuk: thats kinda mean lol
[18:51] tjholowaychuk: but yeah fuck, no apache, no mysql crap blah blah
[18:51] JimBastard: tjholowaychuk: wait till he figures out its not sync
[18:51] tjholowaychuk: JimBastard: no worries its super basic
[18:51] ghiu has joined the channel
[18:51] isaacs: JimBastard: who is this?
[18:51] JimBastard: im not worried, he's your friend lol
[18:51] mscdex: i prefer ultra basic over super basic
[18:51] JimBastard: isaacs: one of tj's minions
[18:52] creationix: isaacs: howtonode.org gets thousands of visitors from osx machines, sometimes in a single day, may of them are front-end developers who have never used a compiler
[18:52] JimBastard: all hail king neptune and his water breathers
[18:52] isaacs: creationix: so? if they're using node, they can learn. it's not hard.
[18:52] creationix: it's takes a long time on a slow connection to download and set up XCode just to compile node
[18:52] mscdex: king neptune is on unemployment benefits
[18:52] justin_ has joined the channel
[18:52] isaacs: creationix: but it's a one-time cost. and they can install it from the osx cd.
[18:52] creationix: but once you have node, you're writing js, not a compiled language
[18:52] jblanche has joined the channel
[18:53] isaacs: creationix: unless you want to use threads, or tie into some other C lib.
[18:53] isaacs: creationix: but anyway, npm doesn't require you to have a compiler.
[18:53] JimBastard: isaacs: well thats only for pure js packages right?
[18:53] isaacs: and doing arch-sniffing is WAY outside npm's scope at the moment. if you wanna do that in your package, that's totally up to you.
[18:53] JimBastard: isaacs: you can install node c addons from npm?
[18:53] isaacs: JimBastard: you could write an npm package that installs ubuntu.
[18:53] tjholowaychuk: i agree that if your doing any serious dev you should have a compiler anyways
[18:53] creationix: isaacs: I'm not complaining
[18:53] tjholowaychuk: but it is kindof a PITA
[18:53] creationix: just saying it's not feasable
[18:53] isaacs: { "scripts" : { "install" : "install ubuntu" }}
[18:54] mscdex: wait what? lol
[18:54] BryanWB: but new developers in Asia, don't run Macs, if they're in to web dev they run linux. using npm will be easy for them
[18:54] BryanWB: macs are too expensive for much of the world
[18:55] creationix: I on several occasions have personally spent the better part of a day getting node installed on friends and family's macs just so they could run node programs I made for them
[18:55] isaacs: imo, it's WAY too early to try to solve the "i don't have a compiler" problem.
[18:55] mscdex: apt-get install ubuntu
[18:55] creationix: it's a real use case
[18:55] mscdex: :p
[18:55] tisba has joined the channel
[18:55] isaacs: mscdex: sure.
[18:55] JimBastard: im pretty linux retarded and when i installed node it was pretty use
[18:55] JimBastard: easy
[18:55] isaacs: mscdex: "install ubuntu" is a placeholder :)
[18:55] derferman has joined the channel
[18:55] technoweenie has joined the channel
[18:56] mscdex: i figured so, unless there is a way to boot to npm from a floppy to install ubuntu
[18:56] BryanWB: it is easy to think all devs use macs jsut because a large portion of webdevs in US and Europe do
[18:56] mscdex: :o
[18:56] vircuser has joined the channel
[18:56] isaacs: i'd be ok with using a linux machine full time if the osx hardware and ui weren't so damn sexy
[18:56] mscdex: BryanWB: i have to be paid to develop on a mac
[18:56] mscdex: :p
[18:57] JimBastard: the window manager on ubuntu gives me seizures
[18:57] jblanche: Hi folks, I'm trying to use socket.io-node, but I get the following error : http://gist.github.com/515912
[18:57] BryanWB: mscdex, i would like someone to buy me a mac, otherwise i am too cheap
[18:57] jblanche: does that ring a bell to anyone ?
[18:57] isaacs: ACTION actually owns his mac. has been jobless too much not to.
[18:57] mrHalodri has joined the channel
[18:57] chanux has left the channel
[18:58] JimBastard: jblanche: not really. you could always open up an issue, that project is fairly well supported. are you 100% up to date on node and socket.io ? as of today?
[18:58] mscdex: i was sent a mac to do debugging on because safari 5 on windows is not the same as safari 5 on mac
[18:58] creationix: isaacs: you do understand what I'm saying right? or do you think I'm crazy?
[18:58] mscdex: kinda silly if you ask me
[18:58] isaacs: creationix: not crazy, just honestly mistaken. i mean, look at the development of any mature pm/distro. they start with source deployments, and only move to binaries later.
[18:59] creationix: isaacs: sure, because binaries are harder
[18:59] isaacs: creationix: i think you're trying to solve problem 2 when problem 1 is still there.
[18:59] vircuser: jblanche: I'm trying to use it myself, I didn't get that error but right now the latest socket.io (client+server) is not working for me
[18:59] isaacs: whereas, solving problem 1 makes problem 2 much much easier
[18:59] isaacs: i'm all about making the problems easier before i solve them
[18:59] chanons: jblanche: I'm trying to use it myself, I didn't get that error but right now the latest socket.io (client+server) is not working for me either
[18:59] creationix: isaacs: and that is problem 1?
[18:59] creationix: I'm in no way saying npm should support binary packages, that would be insane
[19:00] creationix: for the record ^
[19:00] isaacs: creationix: problem 1 is having a really robust source-based pm story
[19:00] jblanche: yes, I'm using the latest version of each project (I git cloned both of them), I'll try with the latest stable version of socket.io-node
[19:00] creationix: no, that's a solution, what's the real problem
[19:00] isaacs: creationix: problem 1 is that the entire node ecosystem is moving faster than anyone can reasonably keep up with.
[19:00] chanons: jblanche: hmm, yeah I git cloned both of them too ... guess maybe should revert back to stable
[19:01] isaacs: creationix: and it gets fixed by achieving stability and slowing down
[19:01] JimBastard: its way too early to be thinking about compiled binary releases of node
[19:01] creationix: isaacs: but what is "keep up" moving fast isn't a problem
[19:01] JimBastard: before 1.0 is kinda a mistake
[19:01] jblanche: I'll try that, thanks for your help
[19:01] mscdex: JimBastard: too late!
[19:01] chanons: here's the issue posted http://github.com/LearnBoost/Socket.IO/issues#issue/23
[19:01] creationix: isaacs: my point is that the whole idea of a package manager might not be the solution
[19:01] isaacs: creationix: also, npm *does* support binary packages
[19:02] knuckolls has joined the channel
[19:02] isaacs: creationix: it just doesn't sniff the architecture for you.
[19:02] chanons: also, beware for socket.io, I found this issue ... you can crash node server from publicly available url: http://github.com/LearnBoost/Socket.IO-node/issues#issue/32
[19:02] chanons: unless both me and the guy who opened the issue is doing something wrong
[19:02] isaacs: { "main" : "./foo.node", "scripts" : { "preinstall" : { "ln -s ./archs/foo-$(uname).node ./foo.node" }}
[19:02] _announcer: Twitter: "@akahn node.js" -- Chris Ricca. http://twitter.com/ChrisRicca/status/20729870465
[19:03] creationix: isaacs: I'm not sure I'd call allowing arbitrary scripting "supporting" a feature, but yes, it does allow it
[19:03] isaacs: the pm should be agnostic about package contents.
[19:03] isaacs: they are opaque blobs with specified entry points.
[19:04] isaacs: Another thing: you know what they say about sufficiently advanced technology being indistinguishable from magic?
[19:04] isaacs: a sufficiently advanced package manager is indistinguishable from an operating system.
[19:04] creationix: ACTION thinks magic is shiny
[19:04] isaacs: hehe
[19:04] stride: isaacs: no that's what they say about crap that apple produces
[19:05] JimBastard: whats the problem we are trying to fix right now?
[19:05] isaacs: JimBastard: our boredom
[19:05] isaacs: JimBastard: (it's working!)
[19:05] jetienne: isaacs: man soon npm will be emacs...
[19:06] JimBastard: just checkking
[19:06] creationix: isaacs: so here is one of my use cases, I have program A that I want to built and distribute to 5 friends (who are not developers)
[19:06] isaacs: jetienne: i just started work on "npm check-email"...
[19:06] chanons: to all: anyone know why my browser isn't caching resources served through staticProvider?
[19:06] JimBastard: this seems to be like the gems / bundler problem
[19:06] creationix: for npm to help me, I have to download and install a compiler, install npm, package my stuff as npm modules, and then use npm to install it
[19:06] creationix: on each machine
[19:06] isaacs: creationix: npm can still help you if they don't have it.
[19:07] ghiu has joined the channel
[19:07] chanons: it looks like Connect staticProvider is not looking at the If-Modified-Since request header
[19:07] creationix: the main blocker is XCode, not package complexity
[19:07] creationix: chanons: correct
[19:07] ghiu: tjholowaychuk: jade doesn't support partials, does it?
[19:07] chanons: so it always returns the full results instead of a 304 not modified
[19:07] stride: chanons: there is another middleware for that
[19:07] isaacs: creationix: npm install --root my-program/deps ; tar czf my-program.js my-program
[19:07] chanons: what's the name?
[19:07] isaacs: then send them the tarball
[19:07] creationix: chanons: the conditionalGet() one does that
[19:07] chanons: oh ok thanks!
[19:08] isaacs: creationix: i mean, what kind of program is this?
[19:08] creationix: isaacs: utility scripts, local game servers
[19:08] creationix: nothing fancy
[19:08] isaacs: ok
[19:08] isaacs: so you give it to them, and then run some script or something?
[19:09] creationix: isaacs: but npm isn't solving the hard problem, it's solving the easy problem
[19:09] huyhong has joined the channel
[19:09] isaacs: creationix: what's the hard problem?
[19:09] tilgovi has joined the channel
[19:09] chanons: thanks guys, I see how conditionalGet is separated into another middleware ... pretty cool
[19:09] creationix: the hard problem is getting node
[19:09] isaacs: creationix: that's not npm's purpose, though
[19:09] isaacs: creationix: npm runs on top of node.
[19:09] huyhong has left the channel
[19:09] creationix: exactely
[19:09] isaacs: it assumes you already have it
[19:10] isaacs: from npm's pov, node is the platform, not the package.
[19:10] creationix: I never said there was a fault with npm, just that it doesn't solve my problem
[19:10] creationix: but something that does solve my problem breaks npm
[19:10] isaacs: creationix: ok... but... who cares about that problem? i mean, seriously. your friends want to run a game server, but don't have a compiler? i don't get it.
[19:10] isaacs: creationix: what solves your problem and how does it break npm?
[19:11] creationix: ivy solves my problem
[19:11] isaacs: i mean, how does the solution break npm?
[19:11] isaacs: if you have node working *somehow*, then npm works, right?
[19:11] creationix: I think npm may work inside it now, but it goes against the grain of ivy and any package that uses node-waf will fail
[19:12] ewdafa has joined the channel
[19:12] isaacs: creationix: well, but you just said that as long as ther eare packages depending on node-waf, they'll fail in your use case.
[19:12] isaacs: how does npm go "against the grain" of ivy?
[19:13] creationix: right, again it's not npm's fault about the packages depending on a compiler, but it does make using those packages and thus npm not viable
[19:13] _announcer: Twitter: "http://tinyurl.com/2ck68cu billyshipp: Sharethrough is looking for an awesome engineer: Ruby on Rails, MongoDB, node.js - know someone? h..." -- Christine Parrott. http://twitter.com/seeparrott/status/20730446889
[19:13] aho has joined the channel
[19:13] creationix: as far as against the grain, that's another story
[19:13] isaacs: creationix: i don't grok how "there are some packages that don't work" means "npm doesn't work"
[19:13] fermion has joined the channel
[19:14] creationix: isaacs: npm is a means to an end, if I can't achieve my end, who cares which part is at fault
[19:14] rauchg_ has joined the channel
[19:14] isaacs: creationix: it sounds like the issue is this: ivy is a way to deliver a compiled node. it makes certain assumptions, and requires things to be just so. npm lets things not be just so.
[19:14] isaacs: creationix: what about this: chop ivy back to being JUST a node delivery mechanism, and have it include npm. let ivy defer the package management business to npm. problem solved.
[19:14] creationix: not in the slightest
[19:14] figital has joined the channel
[19:15] creationix: we're already assuming people don't have a compiler
[19:15] isaacs: creationix: i care, because i manage one of those parts, and really want it to work.
[19:15] isaacs: creationix: but, again, npm *doesn't require a compiler*
[19:15] isaacs: npm is 100% pure JS
[19:15] isaacs: it just requires node, that's it
[19:15] creationix: no matter how ivy solves delivering node, npm can't install packages that require a compiler without a compiler
[19:15] isaacs: creationix: right, butneither can ivy
[19:15] isaacs: creationix: so who cares? you can't compile node_postgres either way.
[19:16] creationix: with ivy I just fork the project, include a compiled binary and it just works
[19:16] isaacs: ivy *could* deliver node-waf, scons, python, and g++, of course.
[19:16] creationix: heh, now that's an idea :)
[19:16] isaacs: sure
[19:16] isaacs: it'd be big, but it'd fit on a CD
[19:16] creationix: not sure how much work that would be though
[19:17] creationix: cross-platform stuff is nasty
[19:17] isaacs: super nasty
[19:17] jetienne: to have git but no compiler is not a frequent case
[19:17] isaacs: that's why i just expect people to have a compiler. again, it's really not a very unusual request.
[19:17] creationix: jetienne: correct, but downloading a pre-compiled git is pretty easy
[19:18] creationix: just because npm isn't the ideal tool for most my use cases doesn't mean npm is bad, it means my use cases are strange
[19:18] isaacs: creationix: super strange.
[19:18] mjr_: isaacs: are you at your new job now?
[19:19] creationix: and since I personally have no real use case for npm it's hard for me to spend time publishing stuff to it
[19:19] isaacs: creationix: the use case is "i have some node program, and a bunch of other people want to use it."
[19:19] isaacs: creationix: your'e right, doesn't sound like you at all ;P
[19:19] creationix: if only it were that simple
[19:19] isaacs: mjr_: not till sep 6
[19:20] bradleymeck: maybe i should just make a generic git tag hook to publish the damn things
[19:20] creationix: isaacs: I still think a place to point github commit hooks to would be super
[19:20] isaacs: creationix: sure, go build that. patch accepted.
[19:20] chanons: to all: anyone know of a scalable distributed pub sub system (allows browser-clients connected to multiple node servers to communicate) that supports flashsockets fallback for client browsers?
[19:20] isaacs: my issue with using git for pm is that it's not designed for that. it's a content tracker, not a deployment tool.
[19:20] creationix: isaacs: even better if I could omit package.json and simple push git tags
[19:21] creationix: somewhere on my account npm would know my preferences and assume structure about my apps
[19:21] isaacs: creationix: omitting package.json doesn't buy as much complexity as it costs.
[19:21] isaacs: creationix: that's ruby talk.
[19:21] creationix: isaacs: how about a per-author default package.json
[19:22] isaacs: creationix: how about "npm init"?
[19:22] isaacs: is it really that hard to put a single file in your package?
[19:22] creationix: the problem is I don't want to have to remember to update some file every time I want to release
[19:22] creationix: creating the file isn't the problem, it's keeping it in sync
[19:22] isaacs: creationix: well, right now, we're still dealing with plumbing on a lot of these things.
[19:23] isaacs: creationix: some folks WANT the explicit step. (like me, for instance.)
[19:23] jblanche: Thanks again for those who helped by earlier, Socket.io-node works fine with the 0.5.3 tag
[19:23] capndiesel has joined the channel
[19:23] neytema has joined the channel
[19:23] mw_ has joined the channel
[19:23] creationix: isaacs: sure, what about some external service
[19:23] isaacs: creationix: that'd be pretty badass.
[19:23] isaacs: but it doesn't belong in the PM itself.
[19:23] creationix: it tracks projects like mine and tjs and forks them, creates and updates package files and pushes it to the repo
[19:23] chanons: jblanche: good to know! thanks. I'll try it out
[19:23] isaacs: that'd be neat.
[19:23] creationix: isaacs: that I would use
[19:23] bradleymeck: give me a min, daily updates?
[19:24] isaacs: creationix: now you have a user! go build it!
[19:24] bradleymeck: or service hooks
[19:24] isaacs: :)
[19:24] bradleymeck: uggg github service hooks are in ruby
[19:24] isaacs: two users!
[19:24] creationix: yeah, github service hooks suck
[19:24] isaacs: bradleymeck: github is in ruby
[19:24] creationix: I like how I have howtonode.org setup
[19:24] mscdex: # ruby github.rb
[19:24] mscdex: :p
[19:25] bradleymeck: me and ruby are not bedfellows
[19:25] creationix: the repo on github isn't the primary one
[19:25] creationix: it's just automatically pushed to by my real repo
[19:25] creationix: that I privatly host
[19:25] isaacs: creationix: you could probably do that in a commit hook on your repo easily enough
[19:25] creationix: I might do that
[19:25] isaacs: creationix: even as a node.js program
[19:25] creationix: I do want to support npm
[19:25] creationix: just don't want extra steps in my already busy workflow
[19:25] isaacs: you keep using that word "support"
[19:26] isaacs: trust me, you don't want to support npm. it's a lot of emails and bug reports.
[19:26] creationix: "support" as in use it and push my stuff to it
[19:26] creationix: not fix tickets
[19:26] isaacs: hehe
[19:26] creationix: ACTION shudders
[19:26] tpryme has joined the channel
[19:26] isaacs: nono, it's nice.
[19:26] isaacs: people are generally very helpful and considerate in posting bugs. i really do appreciate it.
[19:27] creationix: in fact there are a lot of things I don't like about github
[19:27] isaacs: i really like supporting developers. way better than supporting any other kinds of users.
[19:27] creationix: it's a shame I don't have time to make it better or build an alternative
[19:27] JimBastard: just take the time to bikeshed it :-)
[19:29] bradleymeck: github doesnt seem to have a way to detect if its a tag update for hooking
[19:29] creationix: JimBastard: I'd like a layer of sealant and a good thick lacquer
[19:29] creationix: no paint please ;)
[19:30] creationix: bradleymeck: I used to just have an http endpoint listining for updates and parsed it all remotely
[19:31] bradleymeck: yea, im writing a simple npm hook to bundle on tags, but having trouble detecting when a tag occurs
[19:31] isaacs: bradleymeck: do you not even get the tag info in the commit info?
[19:32] bradleymeck: doesnt seem so, i can try to roundtrip for the info
[19:32] cardona507 has joined the channel
[19:32] isaacs: what about checking `git describe --tags` to see if there's a -##-sha
[19:33] bradleymeck: well github hooks just pump data to a server you dont get the whole repo at the time
[19:33] isaacs: my issue is that i usually tag, untag, fix something, ok seriously this time, tag, push, oh shit, fix that bug, untag, delete remote tag, tag again, push, publish
[19:33] isaacs: (ohshit, unpublish, fix, untag, retag, push, publish again)
[19:34] jamescarr: ohshit ;)
[19:34] creationix: bradleymeck: I researched this a while back when developing wheat, I remember something about git reflog
[19:34] creationix: but pulling automatically can sometimes fail
[19:34] isaacs: also, i rebase like crazy
[19:34] mau has joined the channel
[19:34] creationix: yep, that will do it
[19:35] isaacs: almost every commit has at least 2 fixups jammed into it
[19:36] tjholowaychuk: ghiu: back sorry, but no that is handled by something like express, not within jade itself
[19:36] bradleymeck: ok, i think i got how to do it
[19:37] _announcer: Twitter: "Fun, a programming language for the realtime web (HN: http://bit.ly/d7UxBX). Built on node.js, redis, js.io & peg.js." -- Marcus Westin. http://twitter.com/marcuswestin/status/20731854751
[19:38] mw_ has joined the channel
[19:39] DTrejo__ has joined the channel
[19:40] jetienne: What if you could build realtime web apps with the same ease as you build static web pages in PHP today? <- find the bug :)
[19:42] creationix: anyone want to help me attempt to staticly compile ssl into the node binary?
[19:42] creationix: ryah: ^ ?
[19:42] bradleymeck: they arent static?
[19:42] creationix: everything except ssl is
[19:42] bradleymeck: was for jetienne
[19:42] jetienne: bradleymeck: yep :)
[19:43] _announcer: Twitter: "Fun, a programming language for the real time web based on node.js and Redis, http://marcuswest.in/read/fun-intro/" -- Salvatore Sanfilippo. http://twitter.com/antirez/status/20732190516
[19:44] creationix: jetienne: I want someone to make my hard job just as easy some simple tool makes a simple job easy
[19:44] hpoydar has joined the channel
[19:44] jetienne: creationix: parse error
[19:45] jetienne: my day is over since 15m. brain dead
[19:45] creationix: typical cryptic error message
[19:45] bradleymeck: isaacs only real problem i see is you would need to add the service as a contributor to all the packages
[19:45] isaacs: bradleymeck: that's easy
[19:46] isaacs: npm owner add teh-service-or-whatever pkg
[19:46] bradleymeck: yea i guess
[19:46] chanons: anyone know why socket.io is working on port 8080 but not port 80 ?
[19:46] creationix: chanons: running as root?
[19:47] chanons: yes, sudo ... the express webserver is working, but socket.io is not connecting to chrome (firefox flashsocket is ok)
[19:48] isaacs: fun actually looks pretty cool.
[19:48] isaacs: it'll be interesting to see if it catches on
[19:49] bradleymeck: isaacs could we get a post recieve hook on npm, where when a package is updated it will ping w/e urls are set up to get the hooks
[19:49] dylang has joined the channel
[19:53] caolanm has joined the channel
[19:53] towski has joined the channel
[19:54] zomgbie has joined the channel
[19:54] caolanm: tjholowaychuk: sweet, expresso has a serial option now?
[19:54] caolanm: are you explicitly ending tests then?
[19:54] tjholowaychuk: caolanm: it does, but it was just a quick hack for something i needed, i will implement it better later
[19:55] slaskis has joined the channel
[19:55] tjholowaychuk: caolanm: yeah the sig changes to (assert, done), so you have to explicitly done() to move on to the next test
[19:55] tjholowaychuk: slows shit down a bunch but sometimes necessary
[19:55] caolanm: like when writing unit tests ;)
[19:55] caolanm: seriously though, that would be cool
[19:56] caolanm: can we also get an expects function? or something similar?
[19:56] tjholowaychuk: possibly
[19:56] huyhong has joined the channel
[19:56] huyhong has left the channel
[19:56] tjholowaychuk: expects would be nice because we could ditch done() and just continue on when n assertions have finished
[19:56] caolanm: agh, no... don't do that
[19:57] caolanm: :)
[19:57] tjholowaychuk: haha well its really no different
[19:57] caolanm: but will you still be able to catch over-assertions
[19:57] caolanm: if you see what I mean?
[19:57] caolanm: I suppose so...
[19:57] tjholowaychuk: im not sure i even want serial stuff in expresso, but ATM i need it
[19:57] siculars has joined the channel
[19:58] caolanm: tjholowaychuk: this is of interest to me becuase supporting this stuff would make nodeunit fairly obsolete
[19:58] caolanm: which would be good
[19:58] isaacs: bradleymeck: cool.
[19:59] tjholowaychuk: im somewhat interested in it, but before I go all out with serial stuff and reporting blah blah id like to move expresso into ./lib and refactor a bit
[20:00] jakehow has joined the channel
[20:00] caolanm: cool, I'll keep tabs on it then
[20:00] jimmybaker has joined the channel
[20:00] jimmybaker: greetings
[20:00] tjholowaychuk: caolanm: sounds good
[20:00] tjholowaychuk: we can do fancy reporting that way too, but i want things to stay parallel for the most part
[20:02] jimmybaker: I'm new to node. I'm trying to run something but I get "Error: Cannot find module 'net'"
[20:02] mscdex: expresso = fast espresso
[20:02] jimmybaker: is net a common library? how do I get it?
[20:02] mscdex: jimmybaker: gist your code
[20:02] tjholowaychuk: expresso = fast expresso?
[20:03] jimmybaker: it's not my code. it's this: github.com/andregoncalves/twitter-nodejs-websocket.git
[20:03] siculars_ has joined the channel
[20:04] mscdex: jimmybaker: what version of node are you using? :S
[20:05] jimmybaker: 0.1.26
[20:05] mscdex: whoa
[20:05] caolanm: O_O
[20:05] mscdex: update time
[20:05] mscdex: :>
[20:05] jimmybaker: umm..
[20:05] mscdex: jimmybaker: the latest stable version is 0.1.103
[20:05] jimmybaker: i pulled this directly from the git repo
[20:05] rwaldron_ has joined the channel
[20:06] mscdex: jimmybaker: you need a newer version of node
[20:06] jimmybaker: mscdex: cool. i cloned the git repoistory at git://github.com/ry/node.git
[20:06] jimmybaker: then I did git checkout origin/stable
[20:07] mscdex: wrong branch
[20:07] mscdex: master
[20:07] caolanm: I had to pull off a nasty hack to get streaming uploads to couchdb working recently... anyone had this working using sys.pump?
[20:07] mjr_: what is the nasty hack?
[20:08] isaacs: caolanm: i don't use sys.pump, but npm does upload files to couchdb a lot
[20:08] caolanm: the file stream sometimes emits the end event twice
[20:08] isaacs: that sounds like a bug
[20:08] caolanm: yeah
[20:08] caolanm: I'm not sure what's causing it
[20:08] caolanm: sometimes it happens, sometimes it doesn't... race condition I assume
[20:08] ryah: isaacs: did you see that bug for query string?
[20:09] ryah: http://github.com/ry/node/issuesearch?state=open&q=querystring#issue/234
[20:09] jamescarr: hmmm
[20:09] isaacs: ryah: not sure, just a sec...
[20:09] ryah: do you think that's valid?
[20:09] jamescarr: i think cradle might be broke :(
[20:09] caolanm: so my hack is to count the 'end' events
[20:09] _announcer: Twitter: "Geddy - A modular web framework for node.js http://bit.ly/9Idbd5" -- Justin Vincent. http://twitter.com/justinvincent/status/20733669148
[20:09] caolanm: if there is > 1, then I just ignore it
[20:09] caolanm: seems to work fine
[20:09] caolanm: but is still a nasty hack
[20:09] wattz: Does V8 have a hook to test for type in C++ anyone? :D
[20:10] isaacs: ryah: that dot-stuff was added after me, i believe
[20:10] isaacs: ryah: i vote for following ruby, python, php, and perl in this regard.
[20:10] isaacs: ie, no dot-magic
[20:10] mscdex: geddyyyyyyyyyy
[20:11] caolanm: after 'end' gets emitted twice its always followed by a bad file descriptor error, but this is after sys.pump has finished its stuff
[20:11] wattz: mde's jake is borked
[20:11] caolanm: also, I kind of assumed I wouldn't need to wait for the stream 'open' event before passing it to sys.pump
[20:12] caolanm: that gave me "TypeError: Bad argument" in fs:173 sometimes
[20:12] chanons: anyone have an idea why websockets isn't working on my ubuntu server on port 80 ?
[20:12] chanons: anyone have an idea why websockets isn't working on my ubuntu server on port 80 ? <- for chrome, safari
[20:12] mscdex: chanons: sudo?
[20:12] chanons: yup did that
[20:12] caolanm: is it behind apache or nginx?
[20:12] chanons: I tried using both your lib (grappler) and socket.io
[20:13] chanons: no
[20:13] mscdex: chanons: websockets work fine for me on ubuntu
[20:13] jamescarr: fck
[20:13] caolanm: jamescarr: ?
[20:13] chanons: for both grappler and socket.io, if I change the port in the examples from 8080 to port 80 it will stop working on chrome
[20:14] mscdex: stop working how?
[20:14] chanons: it will show that there is a connection
[20:14] chanons: (the server) but it won't receieve any messages
[20:14] chanons: socket.io shows a disconnect event after a few seconds
[20:14] chanons: flashsocket on firefox works fine though
[20:15] mscdex: what version of chrome?
[20:15] chanons: 5.0.375.125
[20:16] mscdex: i'm guessing that's draft 75
[20:16] mscdex: which is the same as safari 5
[20:18] chanons: not sure if something's wrong with my setup
[20:18] mscdex: what about something newer that uses draft 76 out of curiousity?
[20:18] mscdex: like the latest chromium or latest firefox 4 beta?
[20:19] sudoer has joined the channel
[20:19] chanons: hmm don't have those ... but right now even using flashsocket transport is not working in chrome ... it is only working on firefox
[20:20] MrTopf has joined the channel
[20:20] chanons: (this is for port 80, port 8080 works fine)
[20:20] voxpelli-laptop has joined the channel
[20:21] Guest77031: http://wireupdate.com/wires/8494/russian-man-jailed-for-assaulting-fortune-teller-who-predicted-he-would-go-to-jail/
[20:21] mscdex: don't know off the top of my head. i'd have to fire it up on a vm
[20:24] chanons: hmm I'll keep trying .. thanks :)
[20:29] jamescarr: crap... I haven't updated paynode for far too long... need to devote some hours to it tonight
[20:29] jamescarr: last thing I want is for it to die off
[20:30] benburkert has joined the channel
[20:30] _announcer: Twitter: "@aral well, one of the speakers on event-based ruby said he was porting to node.js #javascriptisthenewborg" -- Kevin Marks. http://twitter.com/kevinmarks/status/20734877490
[20:30] wink_ has joined the channel
[20:32] dgathright has joined the channel
[20:32] wink_: ryah: are you around? <3
[20:34] phiggins has joined the channel
[20:39] richcollins has joined the channel
[20:42] aurynn has joined the channel
[20:43] bradleymeck: ok, i think i got the post recieve hook set up
[20:44] isaacs: oh? that was fast.
[20:45] bradleymeck: i need to test it a bunch
[20:45] bradleymeck: im pretty sure we got some race conditions, bad ones too
[20:50] steadicat has joined the channel
[20:50] creationix: last change to RSVP for the node meetup tomorrow night!
[20:51] isaacs: is there a guestlist?
[20:51] creationix: no, but space is limited
[20:51] creationix: I'm about to send an email with a list of everyone who's said they would come
[20:51] isaacs: too bad davglass is back in illinois. he'd make a good bouncer :)
[20:51] cardona507: creatonix - me and deepthawtz and ashleydev are going to attend
[20:51] lifo has joined the channel
[20:51] cardona507: we met you at google
[20:51] lifo has left the channel
[20:51] cardona507: we are from santa cruz -
[20:52] creationix: cardona507: cool, real names ?
[20:52] daleharvey has joined the channel
[20:52] cardona507: cgcardona = Carlos Cardona, deepthawtz = Dylan Clendinin, Ashleydev = Ian Brown - thanks :)
[20:52] stride: meh, I live on the wrong continent :)
[20:52] creationix: cardona507: thanks
[20:52] cardona507: thank you
[20:53] creationix: wow, that's 17 confirmed so far
[20:53] creationix: this will be fun
[20:53] cardona507: yeah - I am looking forward to it
[20:54] creationix: there will be four speakers: Ryan, Isaac, Jed, and myself
[20:54] cardona507: nice
[20:54] creationix: and lots of mingling time
[20:54] stride: there won't be a livestream, right? :)
[20:55] voodootikigod has joined the channel
[20:55] creationix: stride: not that I'm handling, my boss doesn't want to bother with it
[20:55] stride: oki
[20:56] bradleymeck has joined the channel
[20:56] _announcer: Twitter: "NodeGame - Asteroids written with Node.js and WebSockets http://ff.im/-oZeNa" -- Jeff McLamb. http://twitter.com/jeffmclamb/status/20736412834
[20:57] mjr_: creationix: are you guys going to have room for everybody?
[20:58] mjijackson has joined the channel
[20:58] megan__ has joined the channel
[20:59] megan__: for(var x in document.write) document.write(x);
[20:59] megan__: mwahaha I have weeded out all the ie users
[20:59] mjr_: Sounds like Bryan Cantrill is coming tomorrow as well. Cool.
[20:59] megan__: what is happening tomorrow mjr??
[21:00] mjr_: megan__: node meetup at Sencha in Palo Alto, CA.
[21:00] megan__: that sounds exciting.
[21:00] _announcer: Twitter: "Excellent review of the CSS/JS aggregation difficulties in #drupal: http://drupal.org/node/769226#comment-3306406 Drupal8 will rawk! ;-)" -- Damien McKenna. http://twitter.com/DamienMcKenna/status/20736629182
[21:00] megan__: I wish I knew earlier
[21:00] megan__: what are they going to talk about?
[21:01] mscdex: creationix: you're recording this again right? ;-)
[21:01] mjr_: mscdex: get in your Crockford Files car and drive out here.
[21:02] cardona507: creationix: can you add Chinua Ford? He was also with us at Google and wants to attend tomorrow night.
[21:02] mscdex: mjr_: too far :-\
[21:03] megan__: are you going to talk about development patterns with nodejs? I still haven't figured out a good way to structure my applications yet. What is everyone else doing?
[21:03] Aria has joined the channel
[21:03] sudoer has joined the channel
[21:04] mscdex: mjr_: i'm lucky there's a javascript meetup group nearby, but it's small. like < 10 people small
[21:04] Egbert9e9 has joined the channel
[21:04] mscdex: heh
[21:04] d3x7r0 has joined the channel
[21:04] creationix: mjr_: I sure hope we'll have room
[21:04] creationix: I think so, we just need to clear space
[21:05] creationix: that's why I asking for RSVPs so much
[21:05] _announcer: Twitter: "Real-time programming is becoming more accessible with innovations like node.js and 'Fun' http://bit.ly/9IdXPS - excited for future." -- Nicolae Rusan. http://twitter.com/NicolaeRusan/status/20736911913
[21:05] kwe has joined the channel
[21:06] creationix: megan__: for the most part, we're all still figuring it out
[21:06] megan__: creationix do you use any tools for your nodejs development? All I have is putty and notepad++
[21:06] creationix: cardona507: ok, thanks
[21:06] megan__: and I keep killing and restarting the service when I make changes
[21:06] creationix: megan__ that's what I do too, but there are some libs to do it automatically
[21:06] d3x7r0: do you need anything other than vim and a good shell underneat? :)
[21:06] mjr_: megan__: I'm still experimenting with different things myself. I haven't quite settled on something that I really like yet either.
[21:07] creationix: megan__: I use textmate + terminal, but same thing
[21:07] cardona507: megan__: VIM FTW! :)
[21:07] mjr_: megan__: Surely there are many better editors than notepad. But you do have to restart node after you change the source code to your program.
[21:07] megan__: well VIM is great, but my i key won't last forever
[21:07] tjholowaychuk: megan__: ditto term / textmate. although if you have a strong test suite you should not need to actually kill the process much at all
[21:07] dylang has joined the channel
[21:07] d3x7r0: megan__, then use the insert one :P
[21:07] cardona507: actually I use VIM, MacVIM and TextMate
[21:08] megan__: what do you do your tdd with?
[21:08] stride: ACTION uses edit, in dosbox
[21:08] megan__: :P
[21:08] tjholowaychuk: megan__: i use expresso
[21:08] mscdex: i use notepad++ on windows, gedit on linux
[21:08] megan__: <3 notepad++
[21:08] d3x7r0: ok, to tell the truth I've been using a mix of Vim/GVim, GEdit with a few plugins and Nano depending on the task at hand
[21:08] mscdex: :>
[21:08] megan__: the ftp plugin is great
[21:08] ryah: isaacs: so you want to alias resume with start?
[21:09] isaacs: ryah: yeah, that'd be cool.
[21:09] d3x7r0: That and git, don't forget to use a VCS :P
[21:09] mscdex: i just wish notepad++ didn't randomly crash on 64-bit
[21:09] tpryme has joined the channel
[21:09] mscdex: :\
[21:09] isaacs: ryah: actually, the more i think about it, start/stop make a lot more sense than pause/resume
[21:09] ryah: yeah, i think it's okay
[21:09] mscdex: xp64 anyway
[21:09] megan__: it seems okay in windows 7 mscdex
[21:09] megan__: when I try and sneak in node programming at work :P
[21:09] mscdex: hehe
[21:09] ryah: isaacs: this patch still leaves pause/resume around?
[21:09] jimmybaker has joined the channel
[21:09] tpryme: creationix: When/where is the meetup tomorrow again? And is there some place I should rsvp?
[21:09] mscdex: i get to do node programming FOR work :p
[21:10] cardona507: mscdex: me 2 :)
[21:10] creationix: tpryme: Palo Alto 7pm
[21:10] megan__: pfff, that's not fair
[21:10] isaacs: ryah: yeah, it just adds "start" for the stdio
[21:10] d3x7r0: some people have all the luck hum? :P
[21:10] mscdex: i just sneak it in ;-)
[21:10] megan__: yeah
[21:10] ryah: isaacs: ah, okay
[21:10] megan__: can I has your job?
[21:10] creationix: tpryme: just message me somehow if you're coming
[21:10] isaacs: ryah: just a dumb little alias on that one object, not on the Stream api in general
[21:10] mscdex: you can has cheezburger
[21:10] isaacs: ryah: changing it in general is a much huger task
[21:10] mscdex: :-D
[21:10] megan__: mscdex, what do you do?
[21:10] ryah: i think i'm going to take your stdio module
[21:10] ryah: unless anyone has some objections
[21:11] mscdex: megan__: a lot of telephony-related type stuff
[21:11] megan__: mscdex, what is node doing on the telephone?
[21:11] ryah: i really wanted these to hang off process, but i see that it's nicer in a module
[21:11] creationix: ryah: I'm fine with a module
[21:11] mscdex: megan__: it's not on the telephone itself, but i am currently working on using node to interoperate with cisco ip phones
[21:12] megan__: ohh
[21:12] isaacs: yeah, it's nice to have the process/child_process symmetry, but process has too much stuff already.
[21:12] megan__: so, not web dev?
[21:12] mscdex: yes, web dev stuff too
[21:12] megan__: oh okay
[21:12] mscdex: i wrote a live backup monitoring server
[21:12] mscdex: you start a backup, and watch the progress
[21:12] mscdex: burn it to dvd
[21:12] mscdex: etc
[21:13] megan__: node can do that?
[21:13] ghiu has joined the channel
[21:13] joshbuddy has joined the channel
[21:13] mscdex: megan__: yeah. it's just a bunch of calls to underlying console utilities like tar, gzip, growisofs, dvd+rw-mediainfo, etc
[21:13] megan__: so can I make node launch mplayer?
[21:13] mscdex: if you really wanted to....
[21:14] d3x7r0: megan__, you can theoreticaly launch anything you want to from any (or most) programming languages
[21:14] mscdex: yep
[21:14] megan__: okay good
[21:14] daleharvey has joined the channel
[21:14] d3x7r0: now controlling them is an issue that varies on an app-to-app basis
[21:15] mscdex: brb
[21:18] pterk has joined the channel
[21:18] megan__: mscdex, well I wouldn't if there were a way to make a browser play xvid video, or a way to turn xvid to mp4 without destroying video quality :P
[21:20] saikat has joined the channel
[21:20] jamescarr: hmmm... why would you guys say node.js has gained popularity as opposed to jaxer or rhino?
[21:20] jamescarr: a random question a friend asked
[21:21] megan__: what is rhino?
[21:21] creationix: jamescarr: because it did something noew
[21:21] creationix: *new
[21:21] megan__: sounds like a mock repository api?
[21:21] creationix: rhino is a java powered js engine
[21:21] jamescarr: megan, you are confused with rhinomocks
[21:21] pterk: Hi, I use 'return scope.Close(Uint32::New(retval))' yet when I sys.puts the value in js it prints as though they are signed ints (-333453000 iso 3961514296). Am I doing it wrong?
[21:21] jamescarr: :)
[21:21] megan__: oh
[21:21] megan__: what did nodejs do new?
[21:21] tjholowaychuk: speed
[21:21] tjholowaychuk: lol
[21:22] creationix: non-blocking
[21:22] creationix: on the server
[21:22] tjholowaychuk: non suckage
[21:22] megan__: lol
[21:22] megan__: oh
[21:22] tav has joined the channel
[21:22] creationix: the same model as the browser
[21:22] megan__: so rhino was crap
[21:22] nefD has joined the channel
[21:22] creationix: rhino is very powerful
[21:22] megan__: is it js?
[21:22] creationix: it's a js intrepterer written in java
[21:22] megan__: oh....
[21:22] creationix: so it has access to java libraries
[21:23] Aria: It's just stuck in Java's garden
[21:23] Blackguard has joined the channel
[21:23] jb55: and the latest js version which is nice
[21:23] creationix: but it's blocking and threaded like the rest of java land
[21:23] d3x7r0: node appealed to me because it had a different take on the flow of the application. You respond to events instead of just running code from start to finish, this takes some getting used to but allows for some awesome stuff
[21:23] Aria: And doesn't do anything novel.
[21:23] megan__: well, for some reason when I think Java I think clunky and slow
[21:23] _announcer: Twitter: "Getting started with Node.js on Ubuntu 9.10 in about 5 minutes « Giant Flying Saucer http://ff.im/-oZifz" -- Jeff McLamb. http://twitter.com/jeffmclamb/status/20737984665
[21:23] megan__: d3x7r0 really? I took to it right away since I already do stuff with microsoft mvc
[21:24] d3x7r0: megan__, I came from the land of php and learned java at college...
[21:24] megan__: classes with actions that get executed and return a rendered view.
[21:24] creationix: megan__: node has the same model as the browser
[21:24] d3x7r0: so you can see what it was like for me :P
[21:24] creationix: so some people have a much easier time with it
[21:24] megan__: pff d3x7r0 I used to do php too before getting stuck in microsoft world
[21:25] megan__: I will have to help you :)
[21:25] bryanl has joined the channel
[21:25] megan__: what do you mean by model creationix?
[21:25] d3x7r0: I don't know what's worse... php-land or ms-land... :P
[21:26] creationix: megan__: not model as is MVC's model
[21:26] tjholowaychuk: megan__: concepts
[21:26] _announcer: Twitter: "Node.js: JavaScript on the Server http://ff.im/-oZiDp" -- Jeff McLamb. http://twitter.com/jeffmclamb/status/20738137717
[21:26] creationix: megan__: but model as in paradigm
[21:26] creationix: node is single-threaded, single-stack, event and callback based
[21:27] isaacs: i just broke the npm registry. hold on a sec.
[21:27] isaacs: not broke, just temporarily took off line somewhat accidentally :)
[21:27] isaacs: the data's still in there.
[21:29] creationix: isaacs: relax, it replicates...
[21:32] megan__: Hi Isaacs
[21:32] megan__: how was your weekend?
[21:33] tjholowaychuk: creationix: does nstore's clear() not accept a callback?
[21:34] creationix: tjholowaychuk: no
[21:34] tjholowaychuk: oh fuck lol k that explains my problem nvm
[21:34] creationix: tjholowaychuk: the effect is immediete to the program in ram, it syncs to disk fairly quickly
[21:34] tjholowaychuk: creationix: aight cool
[21:35] _announcer: Twitter: "@jcoglan is talking about Faye (Evented Server-Side App With Node.js) http://bit.ly/9ywCsw James is a JS mutant ninja zombie. Don't miss it!" -- Joseph Wilk. http://twitter.com/josephwilk/status/20738675396
[21:35] jamescarr: JS mutant ninja zombie
[21:36] bronson has joined the channel
[21:37] creationix: sh1mmer: are you coming to the meetup tomorrow?
[21:37] bradleymeck: ugg, how to cd and git pull async from inside node w/o a race condition is hard
[21:37] sh1mmer: creationix: no. I forgot, Tuesdays I have improv
[21:38] tjholowaychuk: bradleymeck: good luck :D lol for our CI stuff I had no choice but to block
[21:38] creationix: sh1mmer: alright, but next time we'll be up that way
[21:38] tjholowaychuk: bradleymeck: for a bunch of shell stuff, unless you have separate clones etc
[21:38] tjholowaychuk: but thats lame
[21:38] sh1mmer: creationix: I would come, I'm in the valley during the day anyway
[21:38] bradleymeck: yea
[21:38] sh1mmer: but I just have an existing thing
[21:38] sh1mmer: so I can't
[21:38] zaach has joined the channel
[21:38] sh1mmer: otherwise I would totally have been there
[21:39] creationix: sh1mmer: you know, that's why I asked what days were good for everyone :P
[21:39] sh1mmer: creationix: I know
[21:39] sh1mmer: creationix: my bad
[21:39] bradleymeck: think i have to queue it which is ugly as f
[21:39] sh1mmer: I've been a bit abscent since my wife got back from vacation
[21:39] sh1mmer: spending time with her instead of a screen
[21:39] creationix: sh1mmer: good idea
[21:39] tjholowaychuk: bradleymeck: yeah thats what i did :(
[21:39] mtodd has joined the channel
[21:40] creationix: bradleymeck: you don't need to cd first
[21:40] creationix: well, I'm pretty sure
[21:40] bradleymeck: how do i pull a diff directory than .?
[21:40] tjholowaychuk: sh1mmer: life first man! :) I think developers are just extra prone to obsession or something
[21:40] tjholowaychuk: i know im like that
[21:40] tjholowaychuk: muuuust code
[21:40] creationix: git has commands for overriding the working directory and the git dorectory
[21:40] sh1mmer: when my wife was away it was easy to code a lot
[21:41] sh1mmer: but when she's back I have some other priorities too :)
[21:41] tjholowaychuk: i never get away with it, instant rage if i work past 5:30
[21:42] creationix: bradleymeck: http://github.com/creationix/node-git/blob/master/lib/git.js#L45
[21:42] creationix: bradleymeck: I know it works with some commands, I haven't tried pull yet
[21:42] d3x7r0: ACTION is trying to work up the corage to work with this heat
[21:42] jesusabdullah: From where do you hail, d3x7r0
[21:42] jamescarr: hmmm... if I have a dependency in a node module that is, say, 0.0.1 but I already have version 0.2.5 of the module installed, how can I make that one app use 0.0.1?
[21:42] jesusabdullah: ?
[21:43] jamescarr: require('foo-0.0.1') ?
[21:43] d3x7r0: jesusabdullah, Portugal. It's almost 11pm and temps are above 24ºC for sure...
[21:43] jesusabdullah: jamescarr: github.com/isaacs/nave ?
[21:44] jesusabdullah: d3x7r0: Ah! That sounds pretty warm for 11pm! I have a better feel for farhenheit, unfortunately
[21:44] quirkey has joined the channel
[21:44] creationix: it's 22C here in California
[21:44] creationix: I consider that pretty cold personally
[21:45] jamescarr: better than the midwest
[21:45] jamescarr: it's fucking hot here!
[21:45] d3x7r0: it is, but it was up to 39ºC during the day and I still haven't recovered
[21:45] satori_ has joined the channel
[21:45] jesusabdullah: 63 F here
[21:45] cardona507: its 67 F here in santa cruz
[21:45] creationix: d3x7r0: ok, that is warm
[21:45] jesusabdullah: (17 C)
[21:46] jesusabdullah: I was imagining, like, 40 C weather XD
[21:46] d3x7r0: and my computer is over 50ºC so it isn't helping.... Blast them machines!
[21:46] jamescarr: weather.com: 93�F - Feels Like: 109�
[21:46] jesusabdullah: Feels Like: it's Too Frickin' Hot
[21:46] creationix: heh, I moved from Texas just in time (mid may)
[21:47] d3x7r0: uh, according to weather.com it's 90ºF here... Somehow I believe that better than my guestimate: "90°F, Feels Like: 89°"
[21:47] jesusabdullah: :C
[21:48] satori_: well i just woke up and it's 50F and raining :(
[21:48] jesusabdullah: Nice!
[21:48] d3x7r0: There should be some law somwhere stating that no matter where you are or what the weather's like it'll always feel like crap to people :P
[21:49] satori_: heh
[21:49] grahamalot has joined the channel
[21:51] sideshowcoder has joined the channel
[21:52] sideshowcoder has joined the channel
[21:53] ashleydev has joined the channel
[21:54] bradleymeck: im still amazed austin has only hit 100f once this summer
[21:54] wink_: wow, that is pretty surprising, nashville has been a damn oven...
[21:55] d3x7r0: I wonder if anyone can help me with this: I want to have a code that will check if something exists on a local couchdb instance, if not ping an external website for the info, save it on the couchdb instance and then reply with the info.
[21:57] creationix: d3x7r0: write three async functions
[21:57] creationix: and then write the logic using step
[21:58] creationix: and wrap is all in a larger composed function with a callback
[21:58] d3x7r0: step? sorry lost me there
[21:58] wink_: <3 step
[21:58] creationix: d3x7r0: Step is a library I wrote that makes chaining async stuff easy
[21:58] d3x7r0: oh... must check it out then
[21:59] creationix: d3x7r0: let me know if you need help
[21:59] satori_: step is awesome. use it.
[21:59] d3x7r0: will do :)
[22:00] satori_: I use step for in-browser js a fair bit too.
[22:01] isaacs: jamescarr it looks like you're asking about a dependency hell situation?
[22:01] jamescarr: yeah :(
[22:01] isaacs: jamescarr: you know, with npm, you can have multiple versions, and just list what your app wants as a dependency
[22:01] isaacs: jamescarr: and then require("foo")
[22:01] isaacs: jamescarr: that's npm's core feature
[22:02] jamescarr: yeah, thats my question. so it already knows to use foo-.0.0.1 if I have defined that as it's dependency?
[22:04] creationix: isaacs: that only works if your code is required by something else right?
[22:04] isaacs: jamescarr: exactly
[22:04] isaacs: creationix: yeah. you can use the npm activate command to define which version is used generally
[22:04] isaacs: creationix: ie, by the repl
[22:04] creationix: neat
[22:04] bradleymeck: isaacs let me know when registry is up again
[22:05] bmavity has joined the channel
[22:05] isaacs: bradleymeck: it's close. got 1.0.0 working, just gotta get ubuntu to be aware of it in case my machine restarts.
[22:08] ryah: creationix: ping me if you need help with the ssl static linking
[22:08] ryah: i dont want to do it, but i'll guide you through it :)
[22:08] creationix: ryah: sweet
[22:08] creationix: so basically just hack away at the waf stuff
[22:08] creationix: ?
[22:09] d3x7r0: hum... I wonder if I'm right to even consider that this might happen but consider this: I want to do only one request to the outside service, how would I make sure of this?
[22:09] ryah: creationix: yeah - you should add a flag in the configure step
[22:09] ryah: --static-ssl or something
[22:09] keeto has joined the channel
[22:09] ryah: --static-ssl=/path/to/libssl.a
[22:09] creationix: ryah: I'm willing to try, but I'll admit, it's all way over my head
[22:09] ryah: or, maybe you can try to auto-discover where that is
[22:10] ryah: creationix: basically you just need to add /path/to/libssl.a to the link command at the end
[22:10] ryah: the last command is like "gcc a.o b.o c.o -lfoo -lbar"
[22:10] creationix: ryah: assuming the .a file exists right
[22:10] ryah: you just need to modify it so waf calls
[22:11] ryah: instead: "gcc a.o b.o c.o -lfoo -lbar /path/to/libssl.a"
[22:11] creationix: d3x7r0: one request at a time or one ever
[22:11] creationix: ryah: thanks, that's a little less daunting
[22:11] d3x7r0: one for each unique id
[22:11] creationix: d3x7r0: ok, just a sec
[22:12] ryah: creationix: good opertunity to explore waf insanity
[22:12] creationix: ryah: sad thing is I was a python developer for a short time
[22:12] teemow has joined the channel
[22:12] d3x7r0: the only thing that came to mind os the tipical concurrency stuff (mutexes and alike) and I guess that's not right :P
[22:13] ryah: d3x7r0: ?
[22:13] ryah: d3x7r0: what are you doing?
[22:13] d3x7r0: I want to do only one request to the outside service, how would I make sure of this? (unique by id)
[22:13] ryah: ?
[22:14] ryah: need more contex
[22:14] ryah: t
[22:14] _announcer: Twitter: "Just RSVPd for the nodejs meetup at sencha labs tomorrow. Thanks @creationix for putting that together." -- Jonas Huckestein. http://twitter.com/jonashuckestein/status/20740757905
[22:14] tjholowaychuk: creationix: maybe we should get a fork patched with that stuff, myself and dvv need it too
[22:15] d3x7r0: I'm caching locally info I get from a remote server so if two users ask for the same thing at the same time I don't want to make two queries to the remote host. Maybe I'm overthinking the problem though...
[22:15] creationix: ryah: you would take a patch if it was clean right?
[22:15] creationix: d3x7r0: yeah, I know what you mean, I do that all the time
[22:15] bradleymeck: isaacs is there a less lengthy way to get the versions of a package than the whole registry page?
[22:15] satori_: d3x7r0: node is single threaded, so you can just cache with an object.
[22:15] ryah: creationix: for static ssl, sure
[22:15] ryah: ACTION loves static linking
[22:15] _announcer: Twitter: "Getting ready for an awesome #nodejs meetup tomorrow at my office http://bit.ly/bQdpFZ" -- Tim Caswell. http://twitter.com/creationix/status/20741060567
[22:16] isaacs: bradleymeck: registry.npmjs.org/pkg
[22:16] d3x7r0: satori_, I need a more permanent cache on this (storing the objects in CouchDB for now)
[22:16] bradleymeck: bad gateway on that
[22:16] isaacs: bradleymeck: yeah, that's cuz it's down atm :)
[22:16] newb has joined the channel
[22:16] jesusabdullah: ACTION predicts that creationix's office is going to be a bit cramped!
[22:16] satori_: d3x7r0: shouldn't make any dif. No two things can happen simultaneously in a single node process
[22:16] creationix: jesusabdullah: hah
[22:17] ryah: d3x7r0: yeah, you'll need some sort of "lock"
[22:17] ryah: usually this is done having an array of callbacks
[22:17] ryah: each person who wants that resource has a callback
[22:18] ryah: when the resource comes back you call each of the callbacks
[22:18] jesusabdullah: ACTION learns!
[22:18] d3x7r0: satori_, I was wondering the time between making the request and receiving it, or between querying and storing it in my database
[22:18] richcollins has joined the channel
[22:18] figital has joined the channel
[22:18] sh1mmer has joined the channel
[22:18] geojeff has joined the channel
[22:18] freshtonic has joined the channel
[22:18] frode has joined the channel
[22:18] fearphage has joined the channel
[22:18] drudge has joined the channel
[22:18] SubStack has joined the channel
[22:18] elliottcable has joined the channel
[22:18] creationix: d3x7r0: so here is the one I use for wheat (the engine behind howtonode) http://github.com/creationix/node-git/blob/master/lib/git.js#L57
[22:18] creationix: d3x7r0: and I have a more general one somewhere, but can't find it
[22:19] d3x7r0: creationix, I'll take a look then ;)
[22:19] newb: I would like to use fs.rename and do something once the file is moved but the callback only contains an error if there is one. any ideas on a work around?
[22:19] blaines has joined the channel
[22:19] newb: namely add the new path to a database.
[22:20] dylang has joined the channel
[22:20] elliottcable has joined the channel
[22:20] creationix: d3x7r0: basically you want to do two things
[22:21] creationix: first you don't want two instances of the same "query" running as the same time ever they will get the same result
[22:21] blaines has joined the channel
[22:21] creationix: "query" is defined as an async function which when given the same parameters will always give the same result
[22:21] jsilver_ has joined the channel
[22:21] creationix: and so on the first one, you fire the real async function and start a result array
[22:21] technoweenie: my chain-gang lib does that too: http://techno-weenie.net/2010/7/13/in-process-node-queues/
[22:21] mjijackson has joined the channel
[22:22] _announcer: Twitter: "Fun: a programming language for the realtime web http://bit.ly/9IdXPS #redis #nodejs #jsio #php" -- Régis Gaidot. http://twitter.com/rgaidot/status/20741465306
[22:23] creationix: d3x7r0: yeah, it's basically what ryan said
[22:23] d3x7r0: creationix, so let me see if I got this straight: on the first request I do it normally, on the following ones I add them to a queue. When the async request is done fire all registered callbacks then :)
[22:23] ceej: technoweenie: I see you wrote it in coffee
[22:23] creationix: d3x7r0: you need to handle concurrent requests for the same resource and queue them, and then give them all the result when it's known
[22:23] technoweenie: yea, but it comes w/ js code too
[22:24] creationix: d3x7r0: and once it's known, cache it and use the cache after that
[22:24] d3x7r0: creationix, yes since that was my initial goal :)
[22:24] ceej: technoweenie: you know it was just updated to 0.9 which completely changed the syntax
[22:24] creationix: d3x7r0: correct, that's the queue variable in my code
[22:24] technoweenie: ceej: yup
[22:24] creationix: and cache is where I store the results
[22:24] ceej: k :)
[22:25] technoweenie: ceej: im still unpacking my stuff from my cross-state move, am a single dad, have a full time job, and just bought starcraft 2. it'll be a little bit :)
[22:25] technoweenie: it shouldnt be too bad though, just change some foo: bar to foo = bar
[22:25] ceej: technoweenie: ha I know all about starcraft 2 :)
[22:26] creationix: technoweenie: probably shouldn't have bought startcraft till the boxes were unpacked
[22:26] technoweenie: you be quiet
[22:26] ceej: technoweenie: Just forked it, I can update it when i get a sec
[22:26] isaacs: bradleymeck: ok, so... i have couchdb back up and running, and it starts up *fine* if i do it directly, but when i try to start it with the init.d script it comes with, it fails.
[22:26] isaacs: or rather, it seems like it's working, but there's nothing on 5984
[22:26] technoweenie: creationix: they're mostly unpacked anyway :)
[22:26] creationix: ACTION still has an apartment full of boxes
[22:27] technoweenie: all i have left are clothes and dvd shit
[22:27] ceej: ACTION is going to be moving in a month too
[22:27] creationix: ceej: far?
[22:27] creationix: or the house?
[22:27] ceej: nope few miles away to "the house" :)
[22:27] creationix: ceej: exciting!
[22:28] ceej: creationix: yep, can't wait. Our 45 pound 5month old puppy has just got too big for this apartment LOL!
[22:29] isaacs: ceej: http://www.padmapper.com/!
[22:29] isaacs: ceej: omg i'm loving this site
[22:30] zaach has left the channel
[22:30] purr: ACTION
[22:30] creationix: isaacs: and like normal there is a huge hole in the map where I live
[22:31] creationix: it's so hard to find anything here at any price
[22:31] mikeal has left the channel
[22:31] isaacs: yeah, it moves around
[22:32] creationix: isaacs: yikes, median rent for apartments like mine: $2625/month
[22:33] ehaas has joined the channel
[22:33] creationix: I guess I shouldn't complain about my $1950 then
[22:33] zemanel has joined the channel
[22:33] tjholowaychuk: holy lol i pay 800
[22:34] bradleymeck: ok, live tests starting, ya, 800 all the way
[22:34] ehaas: is there any way to control how an object is printed in the REPL
[22:34] satori_: creationix: What city?
[22:34] CIA-77: node: 03Brian 07master * r3aa5cfd 10/ doc/api.markdown : Misc. corrections and consistency changes to documentation. - http://bit.ly/9AVbnA
[22:34] CIA-77: node: 03Rasmus Andersson 07master * re07f568 10/ .gitignore : ignore test/fixtures/hello.txt created by some test(s) - http://bit.ly/chWNgP
[22:34] CIA-77: node: 03Ryan Dahl 07master * rf4f05a8 10/ src/node_child_process.cc : Unset CLOEXEC on spawn's customFds - http://bit.ly/chQ2Ey
[22:34] creationix: Downtown Palo Alto, CA
[22:34] creationix: I walk to work
[22:34] bradleymeck: toString?
[22:34] ehaas: how do things get serialized after eval though
[22:34] ehaas: it doesn't appear to be toString
[22:35] creationix: ehaas: It's sys.inspect
[22:35] creationix: custom node code
[22:35] purr: creationix 3↼ :O daaaaamn that’s a lot
[22:35] bradleymeck: prolly sys.inspect if its an object and not a string/array
[22:35] ehaas: awesome, thanks
[22:35] creationix: ehaas: but if you put an inspect method on it that will be called instead
[22:35] creationix: Buffer.prototype does that
[22:35] ehaas: that's exactly what i was looking for, thanks
[22:35] purr: ehaas 3↼ make sure to make it non-enumerable D:
[22:36] ehaas: purr: not sure what you mean
[22:36] purr: erm
[22:36] dylang has joined the channel
[22:36] ehaas: oh
[22:36] ehaas: hah
[22:36] ehaas: sorry
[22:36] ehaas: yes dont want to blow the stack
[22:36] elliottcable: yeah, was gonna say… do you know, erm, JavaScript? hahaha
[22:36] tjholowaychuk: creationix: hope your making more than me with hefty bills like that! thats somewhat why its pointless to move to cali though its really expensive there
[22:37] elliottcable: I use:
[22:37] elliottcable: define = function(prototype, property, value){ var propertyAlreadyExists = prototype.hasOwnProperty(property) if (!propertyAlreadyExists) Object.defineProperty(prototype, property, { value:value, enumerable:false }) }
[22:37] elliottcable: grrr irssi concatenated the two lines into one
[22:37] elliottcable: s/if/; if/
[22:38] cardona507: creationix: can we also add Mary Zhu for tomorrow? thanks :)
[22:39] ehaas: elliottcable: thanks
[22:41] d3x7r0: creationix, I'm trying to figure out where do you get the call back from in that safe function (and also what fn is) [new in js here]
[22:42] satori_: wow. Javascript is 2nd most popular lang on github after ruby
[22:42] CIA-77: node: 03Bert Belder 07master * r7d4e8a9 10/ lib/child_process.js :
[22:42] CIA-77: node: If no options are given to child_process.spawn, env should default to process.env
[22:42] CIA-77: node: Regression. - http://bit.ly/cake0W
[22:42] satori_: thanks to node?
[22:42] jesusabdullah: satori_: Also, jquery
[22:42] satori_: ahh of course
[22:42] satori_: http://www.r-chart.com/2010/08/github-stats-on-programming-languages.html
[22:43] d3x7r0: So much perl... :|
[22:43] isaacs: wow, looks like crock likes nodejs: http://www.meetup.com/BayJax/calendar/14371278/
[22:43] satori_: big claim
[22:44] jesusabdullah: who?
[22:44] creationix: d3x7r0: don't feel bad, it's pretty crazy stuff
[22:44] satori_: Douglas Crockford
[22:44] creationix: it's a "decorator" to use python terms
[22:45] creationix: var myquery = safe(function myquery(arg1, arg2, callback) {...});
[22:45] jesusabdullah: d3x7r0: I agree with creationix--it's pretty mind-bending, at first
[22:45] ajpiano has joined the channel
[22:45] creationix: d3x7r0: so that you can call your function as often as you want, but the real function will only get called once per unique paramters
[22:46] d3x7r0: so it checks if the parameters change in any way... that's indeed some mind-bending stuff
[22:46] creationix: d3x7r0: but mine is specilized to work with wheat
[22:46] creationix: d3x7r0: well, the parameter changing part is easy, you just generate your cache key based on the parameters passed in
[22:46] _announcer: Twitter: "@fcoury I saw you talking about Node.js the other day. Does @webbynode have plans to do something with it? :)" -- Jeff Kreeftmeijer. http://twitter.com/jkreeftmeijer/status/20742997677
[22:46] creationix: param1 + ":" + param2
[22:46] creationix: d3x7r0: depends on your logic
[22:47] quirkey has joined the channel
[22:47] d3x7r0: creationix, true. Got to get my logic down on paper or something...
[22:47] Dmitry1 has joined the channel
[22:47] creationix: d3x7r0: actually, looking at this one, it works with variable number of parameters and just assumes the last one is a callback
[22:47] d3x7r0: (I've been looking for a small whiteboard for myself for this kinds of stuff... :P)
[22:48] _announcer: Twitter: "@jkreeftmeijer I am currently making Rapp work with node.js and we'll release a beta soon..." -- Felipe Coury. http://twitter.com/fcoury/status/20743078922
[22:48] creationix: my home office had lots of whiteboards
[22:48] jmar777 has joined the channel
[22:48] Dmitry1 has joined the channel
[22:49] _announcer: Twitter: "BigInt support in node.js and how to use export/import http://groups.google.com/group/nodejs/msg/5f93ca768d128682" -- Hernan Garcia. http://twitter.com/theprogrammer/status/20743173648
[22:50] maryz has joined the channel
[22:51] maryz: creationix: Would love to RSVP myself, Mary Z, for the meetup tomorrow night, Thanks! :)
[22:52] creationix: maryz: ok, got it!
[22:52] teemow has joined the channel
[22:54] d3x7r0: damn, my mind... it is blown... I still haven't understood how you use your safe function creationix
[22:55] creationix: d3x7r0: ok, so basically it returns a proxy function
[22:55] creationix: d3x7r0: and the proxy has all the logic to queue or return from cache
[22:56] creationix: it has to serialize the paramters into a string to key the queue and memoize cache
[22:56] d3x7r0: yes, I got that... but what do you pass as the fn argument then?
[22:56] creationix: d3x7r0: the original function
[22:56] d3x7r0: (I somehow feel like this is too awesome not to know :P)
[22:56] creationix: safe is a utility
[22:56] creationix: it can be used on any function
[22:56] creationix: well any async function that fits it's assumptions
[22:57] creationix: btw, you don't want to cache error responses usually
[22:57] d3x7r0: so fn is what's run once per id then, the proxy is run on each call and the callback is passed as an argument to the original function?
[22:57] creationix: and async function should follow the node norm of callback(err, result)
[22:57] creationix: safe if called once
[22:57] creationix: it returns a function
[22:58] creationix: the generated proxy function is called many times
[22:58] chbrown has joined the channel
[22:58] creationix: the real original function (the one passed to safe) is only called once per unqique query
[22:59] creationix: var getUser = safe(function getUser(id, callback) {...});
[22:59] d3x7r0: and afterwards you make getuser(...)?
[22:59] creationix: yep
[23:00] _announcer: Twitter: "http://bit.ly/9OQU05 ◊ Socket.IO = # HTML5 websocket / flash client-side & server-side NodeJS" [lv] -- François-G. Ribreau. http://twitter.com/FGRibreau/status/20743860784
[23:00] _announcer: Twitter: "Still too cool for me to care about: Node.js" -- Brad Kellett. http://twitter.com/bck/status/20743884893
[23:01] creationix: d3x7r0: https://gist.github.com/44403d23fc057973da86
[23:01] stride: can I get that last tweet on a t-shirt please? :-D
[23:02] d3x7r0: creationix, so I should add an exports.getUser = safe(... so I can keep a constant list of what's running no?
[23:02] creationix: sure if that's how you want to expose it
[23:03] d3x7r0: a var doesn't seem to make much sense to me since I want to use it in distinct requests
[23:03] creationix: what do you mean "distinct requests"
[23:03] stride: what's that safe() function? part of step?
[23:04] d3x7r0: my original problem, chaining several async requests but making sure I don't do the same query twice to the external service
[23:04] creationix: no, I haven't put it in a library yet
[23:04] creationix: it's not quite general enough
[23:05] creationix: d3x7r0: I find it nice to not try to do everything at once
[23:05] stride: ah ok
[23:05] stride: just curious :)
[23:05] _announcer: Twitter: "Douglas Crockford's "Loopage" (why you should be excited about Node.js) coming to August Bayjax at Yahoo: http://bit.ly/dx6O7m" -- YUI Library. http://twitter.com/yuilibrary/status/20744220550
[23:05] creationix: chaining is one thing, Step is good at that, restricting functions to only happen once is another problem, safe works great for that
[23:05] mscdex: The Crockford Files!
[23:05] creationix: mscdex: and putting stuff on exports is another task, I like to do that seperatly and last
[23:06] mscdex: huh?
[23:06] creationix: module.exports = {foo:foo,bar:bar...}
[23:06] d3x7r0: creationix, but I've got both issues. CouchDB cache and external service
[23:06] mscdex: i think that was meant for d3x7r0? heh
[23:07] creationix: mscdex: correct, no clue how you ended up with that
[23:07] jesusabdullah: creationix: safe?
[23:07] mscdex: i can't wait until _frankie comes back so i can tweet back to people
[23:07] creationix: jesusabdullah: http://github.com/creationix/node-git/blob/master/lib/git.js#L57
[23:07] d3x7r0: creationix, do you mind if I borrow that particular safe function?
[23:07] creationix: d3x7r0: sure, but strip out the git specific stuff
[23:08] d3x7r0: obviously :)
[23:08] creationix: d3x7r0: the version variable for example
[23:08] d3x7r0: there's no need to be any arguments on the query function is there?
[23:08] creationix: d3x7r0: oh, and the timeout is a nice simple way to expire cache values
[23:08] creationix: d3x7r0: only if your function has parameters
[23:09] creationix: if not, then it's simpler
[23:10] creationix: d3x7r0: ok, so what is your task?
[23:10] creationix: 3 things right?
[23:10] d3x7r0: query couchdb: is it there? if so return, if not query outside service. When outside service responds save in couchdb and return.
[23:10] lachlanhardy has joined the channel
[23:11] d3x7r0: the catch is that I only want to query the outside service once per unique ID
[23:11] creationix: ok, so I see 4 non-blocking operations
[23:11] creationix: right, but that's easy with safe
[23:11] d3x7r0: yhep, got that down :D
[23:11] tmpvar has joined the channel
[23:11] d3x7r0: The other 4 should be doable with step no?
[23:11] malkomalko has joined the channel
[23:11] creationix: do you have async functions written (at least the api)
[23:11] tmpvar: hello
[23:12] d3x7r0: I have a way too large function and no couchdb cache yet (that's just HTTP requests)
[23:12] creationix: they should follow the callback-is-last-and-expects-error-first pattern
[23:12] d3x7r0: but yeah, I've got the function that queries the external service down
[23:13] creationix: ok, to use step, your callbacks need to be function (err, result)
[23:13] d3x7r0: Yhep, I've got that down but let me just write down the safe function
[23:13] satori_: I find thats thats a good habit to get into anyway for callbacks.
[23:13] mscdex: hola temporary variable
[23:14] d3x7r0: I'm still getting int the whole making callbacks instead of having blocking operations... I end up with wayyyy too many function() in my code...
[23:15] mscdex: d3x7r0: functions are pretty cheap in V8 I believe
[23:15] satori_: yeah functions are too cheap to worry about
[23:16] d3x7r0: I've also got another question: how do you guys deal with the response and request variables qhen working with http.server?
[23:16] d3x7r0: when*
[23:16] richcollins has joined the channel
[23:16] malkomalko: can any express/connect users take a look at this gist really quick? https://gist.github.com/0c6d5b9516ced2d7ecda I'm wonder if this module.exports.. of your js files/libraries ends up slowing down requests.. I noticed that if you inspect a req, or res that the app var will go along with it. I haven't noticed any slow down yet, but just wondering
[23:16] lifo has joined the channel
[23:16] tjholowaychuk: d3x7r0: if you abstract your logic you dont really need these flow control things
[23:16] tjholowaychuk: malkomalko: ill check it out in a minute
[23:17] knuckolls has joined the channel
[23:17] malkomalko: thanks tj
[23:17] malkomalko: also thanks for the dynamicHelpers upgrade the other day
[23:17] malkomalko: worked like a charm
[23:17] sh1mmer: did you all see the bayjax announcement?
[23:17] tjholowaychuk: np!
[23:17] sh1mmer: Doug's talk blurb
[23:18] creationix: d3x7r0: https://gist.github.com/dc99fe03c885789dd7ca
[23:18] sh1mmer: "Software development is hampered by a specific set of design mistakes that were made in the first programming languages and repeated in everything that has been done since. And, somewhat miraculously, JavaScript is going to make it right, radically transforming the way we write applications."
[23:18] sh1mmer: "Again. In the Loop of History, it has all happened before, but it has never happened like this. This is why you should care about the emergence of server-side JavaScript and the excitement around projects like Node.js -- not because they're at the sharp end of a trend, but because they're paving the road toward the next big revolution in software."
[23:18] satori_: yeah. big claim huh?
[23:18] tjholowaychuk: malkomalko: howcome your re-exporting all of those libraries? but no req.app etc should not slow things down
[23:18] creationix: sh1mmer: any way you could get him to come to the meetup tomorrow?
[23:18] malkomalko: I have a lot of models with mongoose
[23:18] malkomalko: that's just an example
[23:19] sh1mmer: creationix: er... invite him
[23:19] malkomalko: I can't figure out the best way to get global access to certain libraries I use everywhere
[23:19] sh1mmer: I'll see if he's at his desk and ask
[23:19] malkomalko: this is the best system I've come up with
[23:19] creationix: sh1mmer: sure, got an address?
[23:19] malkomalko: I break out controllers into separate files, helpers, etc
[23:19] d3x7r0: creationix, that's about it but actually the couchdb insert doesn't need to be there since we the request doesn't need it. :)
[23:19] stride has joined the channel
[23:20] tjholowaychuk: malkomalko: should do var app = exports = module.exports = express.createServer() so you can just do exports.foo after
[23:20] creationix: d3x7r0: sure, but you get the idea
[23:20] tjholowaychuk: malkomalko: but yet export the app AS the module
[23:20] d3x7r0: creationix, yhep, I'm just a bit slow to start (and with this damn heat even slower)
[23:20] d3x7r0: Thanks to everyone for the help :D
[23:20] sh1mmer: creationix: he's not at his desk
[23:21] malkomalko: hmm that's interesting tj
[23:21] mscdex: he's watching reruns of the Crockford Files! :-D
[23:21] malkomalko: so that's the preferred way at this point?
[23:21] creationix: tjholowaychuk: why bother with "exports" and "app" they are the same thing
[23:21] mscdex: pew pew pew
[23:21] sh1mmer: creationix: douglas@crockford.com
[23:21] creationix: malkomalko: I something kinda like that
[23:21] creationix: sh1mmer: thanks
[23:21] tjholowaychuk: creationix: because then you still have the whole concept of exporting things, it just happens to be an app
[23:22] d3x7r0: creationix, btw there's one thing I don't quite get in there. The finnal function returns success?
[23:22] tjholowaychuk: creationix: and you can do app.set('foo', 'bar') etc, so exports.set('foo',. ..) reads funky
[23:22] mscdex: aw man... oRTP is licensed under LGPL
[23:22] mscdex: does that mean no good for node or what?
[23:22] tjholowaychuk: creationix: exports.get('/path', ...) isnt right lol
[23:22] mscdex: ACTION is not an expert on license compatibility
[23:22] malkomalko: I'm going to try that suggestion
[23:22] creationix: tjholowaychuk: exactely, I do "var Server = Connect.createServer(...)" and then at the bottom to "module.exports = Server"
[23:22] satori_: mscdex: legaleese makes me fall asleep
[23:22] creationix: no confusion
[23:23] mscdex: :S
[23:23] creationix: Server (or App) is the only place to put exports
[23:23] frekw has joined the channel
[23:23] ben_alman has joined the channel
[23:23] mscdex: i'd like to use oRTP since it seems really simple to use
[23:23] stride: mscdex: why not? lgpl ist just gpl without the incorporation clause last time I checked
[23:23] mscdex: i dunno
[23:23] tjholowaychuk: creationix: yeah, depending on the library though you may want to change, so app.foo as an export may not always be the right choice
[23:23] malkomalko: I think if you have that app.js as your entry point and you have a lot of js files where you want to access a lot of your libraries, this will work nicely
[23:23] ben_alman has joined the channel
[23:23] malkomalko: agreed
[23:23] tjholowaychuk: personally I prefer to set it all up on that line, and then if i want to prevent exports later or change the obj i can
[23:24] ben_alman has joined the channel
[23:24] creationix: preferences
[23:24] tjholowaychuk: yup, nothing crazy
[23:24] malkomalko: yah, well thanks for confirming that it won't mess up the requests.. I was a little worried :)
[23:24] malkomalko: easy sailing now!
[23:24] ben_alman has joined the channel
[23:25] malkomalko: would you mind if I released a starter app using express/connect and some other packages to get people setup quickly?
[23:25] evadne has joined the channel
[23:25] tjholowaychuk: malkomalko: ya dont worry about that, references are not heavy at all, but it gives express some reflection capabilities
[23:25] tjholowaychuk: malkomalko: go nuts. I just have stuff setup with ndistro for that. $ ndistro visionmedia express
[23:25] tjholowaychuk: for example
[23:25] tjholowaychuk: since express(1) can generate apps
[23:26] _announcer: Twitter: "jbasis is becoming crossplatform (browser, node.js, ringojs, wsh)" -- Alexander. http://twitter.com/bga_/status/20745619546
[23:27] malkomalko: interesting, I'll take a look at ndistro, that must've slipped through the cracks
[23:28] malkomalko: from your readme "...simple configuration file, without dependencies large programs." pretty sure that reads wrong at the end
[23:28] tjholowaychuk: malkomalko: haha yikes, yeah
[23:29] jesusabdullah: D:
[23:30] malkomalko: does nDistro handle submodules for git projects?
[23:30] malkomalko: like if you add a module that requires other modules
[23:30] tjholowaychuk: malkomalko: it works from downloading the github tarballs, which includes the submodules
[23:30] malkomalko: perfect
[23:31] tjholowaychuk: so as long as they actually submodule them its all good
[23:31] panzi has joined the channel
[23:31] Ryan has joined the channel
[23:31] tjholowaychuk: most that i have tried seem to be fine so far. and you can have a github account named .ndistro with your distros like mine http://github.com/visionmedia/.ndistro
[23:31] tjholowaychuk: malkomalko: and then install via $ ndistro install express
[23:31] tjholowaychuk: etc
[23:31] malkomalko: yah that's pretty bad ass
[23:32] tjholowaychuk: support wget/curl
[23:32] malkomalko: solid cakes
[23:33] [[zz]] has joined the channel
[23:35] d3x7r0: ACTION is off to bed. Better finish this tomorrow with a fresh mind...
[23:36] tjholowaychuk: malkomalko: works great for deploying, everything consolidated into one package with your node binary
[23:37] malkomalko: I'm going to play around with it with my current setup
[23:37] malkomalko: it'd be great to have an easy checkout/deploy solution
[23:38] tjholowaychuk: works great for me, fresh deploy in ~30 seconds
[23:38] mscdex: sounds like a claim a pizza chain would make
[23:38] mscdex: ;-)
[23:39] malkomalko: an app I'm releasing in a few weeks was built in flex (yuck), and I'm redoing the whole thing in a few weeks with express/connect
[23:39] mscdex: yes!
[23:39] _announcer: Twitter: "nosql e node.js - the hype vs. a "experiência" http://bit.ly/anRvNc e http://bit.ly/avDVTC" [sk] -- Dirceu. http://twitter.com/dirs/status/20746498023
[23:39] malkomalko: my productivity increase is nothing short of outstanding
[23:40] tjholowaychuk: mscdex: haha fresh pizza in 30 seconds! maybe at little caesars
[23:40] mscdex: :p
[23:40] tjholowaychuk: mscdex: but really it is fast :) git submodules are pretty slow, but since this is just tarballs its wicked
[23:41] mscdex: yeah it'd be nice to have github pull in submodules when grabbing a tarball
[23:41] sonnym1 has joined the channel
[23:41] jtsnow_ has joined the channel
[23:41] panzi: I've written an optimizing brainf*** interpreter in JavaScript. in case anyone is interested here is the blog post: http://twoday.tuwien.ac.at/pub/stories/339772/
[23:41] panzi: More importantly for this I've written a pretty neat command line option parser (because everything I found was limited/ugly/not to my liking): http://bitbucket.org/panzi/javascript-brainf/src/tip/getopt.js
[23:41] panzi: I think it might be worth adding to node.js
[23:42] panzi: teh option parser, that is. not the brainf*** interpreter :)
[23:42] mscdex: le gasp! no github repo for it?! :o
[23:42] MX80 has joined the channel
[23:43] malkomalko: aight, putting this ndistro to the test right now!
[23:43] panzi: I'm a hg guy. but git is my 2nd choice (not really technical choice). and then after a gap of a few light years there is svn
[23:44] tjholowaychuk: malkomalko: its really new so let me know if you come across anything weird
[23:44] malkomalko: I will totally do that
[23:44] malkomalko: if you have node/modules installed already, does it keep everything self contained in the app and use those first?
[23:44] mscdex: linus convinced me on git after i watched the talk he gave at google a few years back
[23:45] tjholowaychuk: malkomalko: it will use whatever is in require.paths first, which i believe ../../lib/node/* take precedence over others, so in short the ndistro libs will take precedence
[23:45] tjholowaychuk: malkomalko: which is ideal though
[23:46] malkomalko: exactly
[23:46] malkomalko: that's what you'd expect I hope
[23:46] maushu has joined the channel
[23:46] mscdex: it's lib/node then ~/.node_libraries right?
[23:46] creationix: mscdex: other wat I think
[23:46] creationix: just do require.paths on a repl
[23:46] mscdex: oh
[23:47] mscdex: ACTION charges up his putty terminal
[23:47] mscdex: yep
[23:47] chbrown: I need to process a bunch of rows from a mongodb query in parallel -- can anyone give a quick pointer on how to do that? The ordering doesn't matter, and I imagine it would be faster if it's not done in series.
[23:47] mscdex: that seems kind of surprising
[23:47] mscdex: maybe not... i dunno
[23:48] tjholowaychuk: makes sense IMO, that stuff should take precedence
[23:50] tjholowaychuk: malkomalko: i have an express textmate bundle, think I should add it to the repo?
[23:50] creationix: I'm still not sure that there are many multi-user systems with node yet
[23:51] DTrejo__ has joined the channel
[23:51] malkomalko: I always say yes
[23:51] ajsie has joined the channel
[23:51] malkomalko: I do a lot of textmate bundles
[23:51] _announcer: Twitter: "Starting some work with Node.JS and WebSockets. This looks like it could be very interesting." -- James Coleman. http://twitter.com/jt_coleman/status/20747307876
[23:51] malkomalko: I've been putting together my own actually, and was thinking of putting it out as well
[23:51] ajsie has joined the channel
[23:51] tjholowaychuk: maybe we should keep them separate and just link then
[23:51] malkomalko: I don't cover the whole api, just the more widely used functions
[23:51] malkomalko: and some helpers
[23:51] tjholowaychuk: mine is pretty small
[23:51] tjholowaychuk: yeah same
[23:52] derferman has joined the channel
[23:52] malkomalko: I did all this crazy code completion shit for cappuccino and stuff but it gave me a headache
[23:52] DTrejo__: ACTION likes textmate bundles
[23:52] davidwalsh has joined the channel
[23:52] _announcer: Twitter: "scratching a personal itch, easiest way to quickly share images with people http://dropup.net/ fun with node.js + html5, firefox only :(" -- Dale Harvey. http://twitter.com/daleharvey/status/20747414919
[23:52] autoedification has joined the channel
[23:52] DTrejo__: ACTION likes the javascript tools textmate bundle
[23:53] DTrejo__: there's way to many versions tho I have no idea which is the most recent
[23:54] DTrejo__: *too
[23:54] nex3 has joined the channel
[23:54] Ryan has joined the channel
[23:55] nex3: What's the standard way to autogenerate docs for node.js code?
[23:55] creationix: nex3: for your code?
[23:55] nex3: Yes
[23:55] creationix: nothing standard
[23:56] _announcer: Twitter: "@nerded did you ask in #nodejs ? Try @izs specifically" -- Paul Barry. http://twitter.com/pjb3/status/20747648766
[23:56] creationix: tjholowaychuk has something he uses
[23:56] tjholowaychuk: nex3: there is no standard but might want to look at http://github.com/visionmedia/dox
[23:57] _announcer: Twitter: "@ @ Nerded pjb3 that's # node.js on irc btw" [fil] -- Tim Caswell. http://twitter.com/creationix/status/20747734025
[23:57] tjholowaychuk: nex3: outputs this http://visionmedia.github.com/dox/
[23:57] nex3: tjholowaychuk: I'll check that out
[23:58] nex3: Error: Cannot find module '/home/nweiz/lib/node/.npm/dox/0.0.3/package/bin/dox'
[23:58] ashleydev_ has joined the channel
[23:58] isaacs: nex3: what version of node are you on?
[23:58] jesusabdullah: tjholowaychuk: Reminds me of Docco
[23:59] tjholowaychuk: nex3: npm seems to be breaking lots lately, ive seen rhat with others too just install from git
[23:59] tjholowaychuk: jesusabdullah: ya its based on that but didnt work like I wanted
[23:59] nex3: isaacs: 1.0.101
[23:59] nex3: Er
[23:59] nex3: 0.1.101
[23:59] jesusabdullah: I see!
[23:59] isaacs: nex3: try upgrading.
[23:59] jesusabdullah: upgraaaade
[23:59] jesusabdullah: 1.0.101 is SOO last week
[23:59] tjholowaychuk: hehe :D