[00:00] isaacs: ngw: or, make uninstall install-stable
[00:00] dnolen has joined the channel
[00:02] isaacs: creationix: yeah, send to the list, with my blessing.
[00:03] ngw: still nothing isaacs
[00:03] ngw: crazy
[00:03] isaacs: ngw: gist?
[00:03] ngw: I'm on 103
[00:03] ngw: exactly the same of before
[00:03] malkomalko has joined the channel
[00:04] isaacs: ngw: i mean, gist the output from the "make uninstall" and the "make"
[00:05] isaacs: ngw: it won't be the same as before, i promise.
[00:05] ngw: oh, of node ?
[00:05] isaacs: nono, of npm
[00:05] isaacs: get the npm code, make uninstall install-stable
[00:06] ngw: oh ok
[00:10] ngw: ok isaacs, with the source it works :)
[00:10] ngw: thanks a lot
[00:10] isaacs: ngw: no problem. wonder why that didn't work originally.
[00:11] creationix: isaacs I just thought of a great compromise in the asi debate
[00:11] isaacs: oh? "don't use semicolons"?
[00:11] creationix: make a version of jslint that only complains if you neglect to put a semi before a line starting with ( or [
[00:11] creationix: but allow you to put it anywhere
[00:12] creationix: even at the end of the line before
[00:12] creationix: so people using both styles are kept safe
[00:12] isaacs: creationix: what about someVeryLongFunctionName\n\t(arg, arg, arg)
[00:12] ngw: oh, and logging works !
[00:12] ngw: :p
[00:12] creationix: isaacs: don't do that
[00:12] sztanphet has joined the channel
[00:12] isaacs: creationix: i do that a lot.
[00:12] creationix: isaacs: you probably wouldn't use the lint tool anyway
[00:12] jimt has joined the channel
[00:13] ngw: isaacs, I might have messed up between kiwi, npm, git, other noob idiocies
[00:13] creationix: people with semis first can see it visually
[00:13] isaacs: creationix: http://github.com/isaacs/npm/blob/master/lib/link.js#L30-31
[00:13] creationix: isaacs: and besides, you can probably make the lint tool smart enough for that use case
[00:14] creationix: oh, I see, not defining the function, calling it
[00:14] isaacs: creationix: the thing i've found is that npm-style is very easy to explain in text to humans, and very easy to visually scan, but very tricky to express programmatically
[00:14] creationix: well, you always indent then right?
[00:14] isaacs: yes.
[00:14] isaacs: i suppose it could see if the indent-level goes up
[00:14] creationix: then you're fine
[00:14] teemow has joined the channel
[00:15] creationix: anyway, just an idea
[00:15] isaacs: yeah, not too shabby.
[00:15] creationix: I don't have time to write the linter
[00:15] isaacs: me neither.
[00:15] isaacs: that's another issue.
[00:15] creationix: lol
[00:15] _announcer: Twitter: "Sharethrough is looking for an awesome engineer: Ruby on Rails, MongoDB, node.js - know someone? http://bit.ly/9QsvfA" -- Billy Shipp. http://twitter.com/billyshipp/status/20423670692
[00:16] creationix has left the channel
[00:16] eggie5: the node programming paradigm confused me....
[00:18] isaacs: confused him a lot, i gues...
[00:19] SubStack: node makes far too much sense to my haskell-addled brain
[00:19] astrolin has joined the channel
[00:20] jamescarr: thats awesome
[00:20] evilhackerdude: is there a decent ~/.npmrc i can use so that packages are installed in my homedir rather than nodes lib dir? i think the problem is node doesnt find them at first
[00:21] evilhackerdude: my main problem is that every node update via homebrew basically kills npm and all my packages
[00:21] isaacs: evilhackerdude: quit using homebrew. keep one git pull at ry/master, and use nave for release versions.
[00:21] isaacs: evilhackerdude: i mean, quit using homebrew for node/npm
[00:22] kevm_ has joined the channel
[00:22] SubStack: isaacs: also that rebuild thing I made an issue for
[00:22] isaacs: SubStack: yeah?
[00:23] jimt has joined the channel
[00:23] SubStack: I mean to say that part of evilhackerdude's complaint would be solved by such a feature.
[00:23] isaacs: oh... well.. not reallyt
[00:24] SubStack: k
[00:24] isaacs: actually, nave would be the same kind of problem
[00:24] isaacs: the issue is that every time you update node, it puts npm in a different place, and makes all the symlinks no longer point to a valid location.
[00:24] isaacs: because npm doesn't take into account that you may be putting the node executable somewhere outside of the $PATH, or that it might be called via a shell script into some wonky weird place.
[00:25] isaacs: npm@0.1.23 will have some better tools for something like homebrew to take advantage of, though
[00:25] evilhackerdude: what exactly? looking forward to solve that problem
[00:25] softdrink has joined the channel
[00:26] evilhackerdude: env vars?
[00:29] mikeal1 has joined the channel
[00:36] isaacs: evilhackerdude: yeah, env vars, and cascading configs.
[00:36] evilhackerdude: nice
[00:36] isaacs: evilhackerdude: so, it'll go: cli, env, userconfig (~/.npmrc), global config (prefix/etc/npmrc), defaults (builtin)
[00:36] evilhackerdude: sounds perfect
[00:36] evilhackerdude: really looking forward
[00:36] zapnap has joined the channel
[00:36] isaacs: what's more, you can do: npm --userconfig /some/path dosomething
[00:37] isaacs: or npm_config_globalconfig=/some/other/path npm dosomething
[00:37] isaacs: SUPER handy for testing npm itself.
[00:37] isaacs: i totally fell in love with the feature before it was even working right.
[00:38] evilhackerdude: :) so there'll be NPM_ROOT and NPM_BINROOT?
[00:38] evilhackerdude: and nave will set those depending on the node version being selected
[00:39] evilhackerdude: clearly i'm only rephrasing what rvm does
[00:40] isaacs: evilhackerdude: sorta.
[00:40] isaacs: evilhackerdude: but it's npm_config_root
[00:40] isaacs: and case-insensitive
[00:41] isaacs: since i'm the only one in the world that likes lower-case env vars :)
[00:41] evilhackerdude: ah, didn't realize that was an env var in your prveious message - sorry
[00:41] evilhackerdude: haha, that's fine
[00:41] isaacs: yeah, in sh, if you do: FOO=bar echo "$FOO"
[00:41] isaacs: it sets the env var for that one command.
[00:42] isaacs: you can use that with node, for instance: NODE_PATH=$PWD node foo.js
[00:42] evilhackerdude: right
[00:42] evilhackerdude: awesome, loving it
[00:43] ngw: how are normally deployed node apps ?
[00:43] evilhackerdude: no more tears after i update node/coffee-script to realize i just packages and npm, too ;)
[00:43] ngw: like, behind nginx
[00:43] ngw: ?
[00:44] ngw: I've seen a capistrano script in hummingbird
[00:44] evilhackerdude: i think putting nginx in front of node is the recommended thing to do
[00:44] ngw: and node under monit ?
[00:44] evilhackerdude: you mean to monitor node with monit?
[00:45] admc has joined the channel
[00:46] isaacs: ngw: i think there's an article about that on howtonode.org
[00:48] _announcer: Twitter: "Has anyone written a kick-ass Web app framework built ground-up around heavy Ajax/client-side interactivity, offline storage, maybe node.js?" -- David Feldman. http://twitter.com/dfeldman/status/20425912249
[00:50] zomgbie has joined the channel
[00:50] cardona507 has joined the channel
[00:51] isaacs: if you ever find yourself needing to sort a bunch of versions in bash, here's a neat trick:
[00:51] isaacs: sort -k 1,1n -k 2,2n -k 3,3n -t .
[00:53] joshbuddy_ has joined the channel
[00:54] joshbuddy_ has joined the channel
[00:54] ehaas has joined the channel
[00:57] ehaas: is there a reason that http client drops every set-cookie header after the first?
[00:58] ehaas: i notice that some headers get concatenated with a comma in the presence of duplicates but set-cookie isn't one of them so you only get the first one
[00:58] isaacs: ehaas: i think you can set headers using an array of arrays, too
[00:58] isaacs: ehaas: that might have gone away, though
[00:59] ehaas: not for sending cookies
[00:59] ehaas: i send a client request, server replies with a number of 'set-cookie' headers, but i can only get the first one
[01:00] isaacs: oh, ok
[01:00] isaacs: yeah, that sucks a lot
[01:00] ehaas: in lib/http.js it seems like set-cookie just needs to be added to the list of concaten-able headers
[01:01] isaacs: ehaas: make the change, test it out, git format-patch ry/master, email the patch file to the list and to ry@tinyclouds.org
[01:01] Bruker_ has joined the channel
[01:01] ehaas: cool
[01:01] ehaas: will do
[01:01] isaacs: add a test, too. there's a bunch for http-server/client in test/simple/
[01:01] isaacs: expect an asplosion of bikeshedding.
[01:01] ehaas: ok
[01:01] ehaas: hah
[01:02] isaacs: *everyone* has an opinion about headers and cookies.
[01:02] isaacs: actually, i think this is a case where joining with a comma actually isn't valid, for some weird reason.
[01:02] isaacs: long ago, i'd explored providing an actual array for multiple headers of the same name, but it was lost to the winds of time.
[01:03] ehaas: rfc2109 seems to allow it
[01:03] pquerna: well, its why repersenting headers as a dict/object is wrong
[01:03] pquerna: it needs to be ana rray
[01:03] ehaas: section 4.2.2
[01:03] pquerna: but it is a pain for users of the interface
[01:03] isaacs: AND SO THE BIKESHEDDING BEGINS!!!
[01:03] ehaas: lol
[01:03] pquerna: sorry, just fullfilling the role of an http dude who like blue bikesheds best.
[01:03] isaacs: pquerna: i think an object is ok, but the value should be an array.
[01:03] isaacs: pquerna: i know, i know. node needs more like you.
[01:04] pquerna: isaacs: well, right, but then you are passing on complexity to the consumer of the interface...
[01:04] isaacs: 7.
[01:04] pquerna: :)
[01:04] isaacs: 7 more.
[01:04] isaacs: 8 would be too many, i think.
[01:04] isaacs: pquerna: that was the issue last time, too. no one wants to have to do [0] every time.
[01:05] isaacs: pquerna: my argument was that an array of strings will toString properly if you cast it anyway.
[01:05] konobi: anyone who does web development should know how this stuff works at the protocol level
[01:05] pquerna: but they don't
[01:05] pquerna: they like php and rails
[01:06] pquerna: and thats the way it is
[01:06] Bruker_: if you're in the middle of a discussion, ignore this, but I'm looking at the source code, and trying to figure out where the handler for incoming connections is. There seems to be a linked list of connection sockets, but where does it come from? :)
[01:06] isaacs: pquerna: an array of tuples (whether [[key,val],[key,val]] or [{key:val}, {key:val}]) is putting even more complexity on the user.
[01:06] isaacs: pquerna: lookups get hard.
[01:06] pquerna: yes, its why the http client needs to be split into two or more apis
[01:06] brianmario has joined the channel
[01:06] pquerna: low level let me know everything, repersent it as tuples
[01:06] pquerna: and high level i'm a dude who wants a response
[01:07] pquerna: and the pooling all goes up high probally too
[01:07] pquerna: but anyways
[01:07] isaacs: i like how the high level api gets the hip teenager slang.
[01:07] Tobsn: isaacs, you fixed your nodejs thing? :P
[01:07] isaacs: Tobsn: which one?
[01:07] tekky has joined the channel
[01:07] Tobsn: the core
[01:07] Tobsn: so its fast
[01:07] Tobsn: :D
[01:07] steadicat has joined the channel
[01:08] konobi: headers.add('set-cookie')... var cookies = headers.get('set-cookie'); cookies = cookies instanceof Array ? cookies[0] : cookies;
[01:08] isaacs: Tobsn: i have no idea what you're talking about.
[01:08] Tobsn: #lighttpd
[01:08] guybrush: isaacs, can u tell me a usecase where nave is better as nvm? as far as I understand subshells its just another childprocess like any other process - isnt it?
[01:08] Tobsn: was just a joke
[01:08] konobi: always specifying [0] at the end actually saves you code
[01:08] isaacs: Tobsn: oh, that, right :)
[01:08] guybrush: *than
[01:08] isaacs: guybrush: you don't have to put nave in your bash profile.
[01:09] isaacs: guybrush: so you can do "npm install nave" and then start using it.
[01:09] isaacs: guybrush: also, i <3 subshells. they're neato.
[01:09] guybrush: ah ok, nice
[01:09] guybrush: with subshells its possible to do stuff in parallel?
[01:09] ehaas: well for now i'm just going to do the comma-concatenation thing...let me know what you guys decide
[01:09] isaacs: guybrush: well, i mean, not especially.
[01:10] isaacs: ehaas: go nuts on that. send to the list, and it'll spark some talk. at the very least, that'd be a workaround for you for the moment.
[01:10] ehaas: yep
[01:10] isaacs: konobi: i agree. if it's an array *always*, then you can also just pretend it's a string, and it'll do the right thing m ost of the time.
[01:11] konobi: yar
[01:11] isaacs: konobi: so you could just do var cookies = headers["set-cookie"]; console.log(cookies)
[01:11] isaacs: konobi: but yeah, just making it always an array would be lovely
[01:12] isaacs: konobi: the issue there is that some http headers *can't* be repeated. but even then, you could just always reset it to [val] rather than doing .push
[01:12] robotarmy has joined the channel
[01:12] konobi: i also don't think you should play down to teh dummies either... but that's just me
[01:12] isaacs: konobi: i agree with that statement so hard it hurt a little.
[01:13] konobi: well, all http _can_ be repeated... some things will just take the first instance of that header, others will take the last one... it's unspecified behaviour really
[01:13] isaacs: konobi: right, exactly
[01:13] isaacs: konobi: the client can repeat them. but "semantically" some of them only SHOULD respect the first or last
[01:13] isaacs: that whole "loose in what you accept" rule is HARD.
[01:14] manveru: you think it's a good rule?
[01:15] isaacs: manveru: yeah, definitely.
[01:15] isaacs: it's just difficult.
[01:15] manveru: heh
[01:21] wilmoore has joined the channel
[01:24] ruf has joined the channel
[01:26] skampler has joined the channel
[01:28] n3v3le has joined the channel
[01:30] mjr_ has joined the channel
[01:31] softdrink has joined the channel
[01:33] _announcer: Twitter: "Node.js night." -- Chirag Davé. http://twitter.com/ChiragRules/status/20429093037
[01:36] fod has joined the channel
[01:36] sh1mmer has joined the channel
[01:36] dannycoates has joined the channel
[01:39] mikeal has joined the channel
[01:40] jwcooper has joined the channel
[01:41] _announcer: Twitter: "Blog post: my baby 42-lin "Twitter-style" web app, written in Node.JS, Connect, Mongoose (MongoDB) and Underscore: http://bit.ly/aqvV50" -- Ivar Vong. http://twitter.com/ivong/status/20429644746
[01:41] ehaas: isaacs: patch sent
[01:43] tmpvar has joined the channel
[01:43] tmpvar: JimBastard, yo
[01:46] jan247 has joined the channel
[01:50] _announcer: Twitter: "gm, my GraphicsMagick library for node is featured on dailyjs! http://bit.ly/bVIXgC #nodejs" -- Aaron Heckmann. http://twitter.com/aaronheckmann/status/20430331686
[01:51] Tim_Smart has joined the channel
[01:54] mscdex: so why does __dirname not work in the repl? :s
[02:00] sztanphet has joined the channel
[02:00] dipser_ has joined the channel
[02:01] meso_ has joined the channel
[02:03] ehaas: mscdex: you probably want process.cwd()
[02:04] malkomalko: I just ran into that as well mscdex
[02:05] davidwalsh has joined the channel
[02:07] pgriess has joined the channel
[02:09] isaacs has joined the channel
[02:10] malkomalko has joined the channel
[02:13] ditesh|cassini has joined the channel
[02:17] quirkey has joined the channel
[02:18] x_or has joined the channel
[02:18] charlesjolley- has joined the channel
[02:25] _announcer: Twitter: "@kenny_shen good post. You should contribute a copy to also be posted on http://howtonode.org. #nodejs" -- Marco Rogers. http://twitter.com/polotek/status/20432853072
[02:30] mikeal has joined the channel
[02:39] jchris1 has joined the channel
[02:40] _announcer: Twitter: "Writing some node.js for 8th Light U." -- Eric Smith. http://twitter.com/paytonrules/status/20433916197
[02:42] _announcer: Twitter: "Watching a presentation on couchdb and node.js" -- Josh Nielsen. http://twitter.com/joshontheweb/status/20434077863
[02:43] _announcer: Twitter: "Starting off hearing about CouchDB + node.js at Socal.js from @mikeal" -- Ron Evans. http://twitter.com/deadprogram/status/20434163198
[02:49] maxsilver has joined the channel
[02:49] mattly has joined the channel
[02:49] quirkey has joined the channel
[02:55] isaacs: wtf, bash
[02:58] isaacs: can anyone tell me why this is? http://gist.github.com/510764
[03:00] maxsilver has joined the channel
[03:00] dnolen has joined the channel
[03:03] ehaas: isaacs: the pipe is launching a subshell
[03:03] isaacs: ehaas: so... it inherits, but doesn't export back up?
[03:03] joshbuddy has joined the channel
[03:07] ehaas: i don't think it inherits
[03:07] isaacs: ehaas: no, it totally does.
[03:07] guybrush: isaacs: im currently reading http://wiki.bash-hackers.org/scripting/processtree - which explains exactly that behavior
[03:07] isaacs: ehaas: i can set i to something else
[03:08] ehaas: ah you're right it does
[03:08] x_or has joined the channel
[03:09] ehaas: but yea, no exporting back up
[03:10] isaacs: laaaaaame
[03:10] isaacs: the guys in #bash are very helpful.
[03:10] isaacs: pointed me to this: http://mywiki.wooledge.org/BashFAQ/024
[03:10] isaacs: apparently ksh does this right
[03:10] guybrush: #bash is (very) nice
[03:13] PyroPeter has joined the channel
[03:15] _announcer: Twitter: "@paytonrules hello from node.js!" -- Colin Jones. http://twitter.com/trptcolin/status/20436555757
[03:19] zapnap has joined the channel
[03:20] sh1mmer has joined the channel
[03:20] mjijackson has joined the channel
[03:22] knuckolls has joined the channel
[03:22] fod has joined the channel
[03:24] _announcer: Twitter: "@jethrocarr It would need to be node.js to scale but a more efficient server could be written later." -- Matthew Holloway. http://twitter.com/hollowaynz/status/20437211644
[03:24] quirkey has joined the channel
[03:33] knuckolls has joined the channel
[03:33] mattly has joined the channel
[03:33] mattly has joined the channel
[03:36] tpryme has joined the channel
[03:38] skampler has joined the channel
[03:41] derferman has joined the channel
[03:42] derferman has joined the channel
[03:50] x_or has joined the channel
[03:57] mattly has joined the channel
[04:04] dnolen has joined the channel
[04:07] twoism has joined the channel
[04:14] teemow has joined the channel
[04:16] _announcer: Twitter: "nave 0.0.5 released. ls-remote, help, and usemain commands. #nodejs http://github.com/isaacs/nave /thanks @tjholowaychuk" -- Ⓘⓢⓐⓐⓒ. http://twitter.com/izs/status/20440563693
[04:16] donspaulding has joined the channel
[04:20] jakehow has joined the channel
[04:28] bpot has joined the channel
[04:31] isaacs: dude... "nave use latest"
[04:32] isaacs: this is handy
[04:32] mape: for?
[04:34] hij1nx has joined the channel
[04:35] joshbuddy has joined the channel
[04:35] matt_c has joined the channel
[04:36] bmizerany has joined the channel
[04:43] qFox has joined the channel
[04:43] isaacs: mape: just released a new nave. you can use "latest" as a version string to get the latest node release.
[04:43] isaacs: don't know why i ddint' do this WAY earlier.
[04:44] mape: like a npm install node@latest kinda deal?
[04:44] isaacs: also, tj convinced me to add a "usemain" command to install it in your default root
[04:44] isaacs: mape: yeah, sorta :) except npm can't install node
[04:44] mape: yeaj
[04:44] mape: *h
[04:46] _announcer: Twitter: "heatmap using html5 with node.js http://www.coffeepowered.net/2010/08/03/click-mapping-with-html5-and-node-js/# nice!" -- Roman Pickl. http://twitter.com/RomPic/status/20442334594
[04:54] ngw has joined the channel
[04:57] ngw: hi *
[04:58] isaacs: ello
[05:00] twoism has joined the channel
[05:00] isaacs has joined the channel
[05:06] skampler has joined the channel
[05:06] hansek has joined the channel
[05:08] ajpiano has joined the channel
[05:11] sztanpet has joined the channel
[05:12] ngw: I'm looking at vows, I still have to try (I will tomorrow), but I don't see any example about checking the content of an html file with a regexp or something like that
[05:13] silentrob has joined the channel
[05:13] mattly has joined the channel
[05:14] malkomalko has joined the channel
[05:18] hansek has joined the channel
[05:18] jchris has joined the channel
[05:18] ngw: ok, found
[05:19] ngw: seems very cool
[05:20] _announcer: Twitter: "@trptcolin Are you tweeting exclusively from your node.js app now?" -- Eric Smith. http://twitter.com/paytonrules/status/20444227459
[05:21] amerine has joined the channel
[05:21] sveisvei has joined the channel
[05:29] lejoe has joined the channel
[05:30] deepthawtz has joined the channel
[05:47] _announcer: Twitter: "playing around with node.js and couchdb + cradle. Liking it" -- rbreve. http://twitter.com/rbreve/status/20445595071
[05:48] shreekavi has joined the channel
[05:53] tyfighter has joined the channel
[05:57] ryah: hi
[06:01] unices has joined the channel
[06:05] hober has joined the channel
[06:06] joshbuddy has joined the channel
[06:06] mape: Welcome to node.js
[06:06] mape: May I take your order?
[06:08] SubStack: I would like 3 nested continutions with a side of even loop please.
[06:08] mape: Sorry we are out of those, may I offer a fruity loop instead?
[06:09] SubStack: that sounds too syntactically sugary for my tastes
[06:09] mape: But it is low on bloat
[06:09] mape: It is good for you!
[06:10] jesusabdullah: hah
[06:12] jesusabdullah: I'm not so hot at fruity loops myself
[06:12] jesusabdullah: Not musically inclined enough
[06:15] zemanel has joined the channel
[06:21] mscdex: jesusabdullah: oonts oonts oonts oonts
[06:23] _announcer: Twitter: "good video on Node JS http://www.yuiblog.com/blog/2010/05/20/video-dahl/" [de] -- Rakesh Aggarwal. http://twitter.com/rakeshag/status/20447335884
[06:23] mape: mscdex: untz untz untz
[06:24] [[zzz]] has joined the channel
[06:24] WALoeIII has joined the channel
[06:24] jan247 has joined the channel
[06:26] keeto has joined the channel
[06:26] jkreeftmeijer has joined the channel
[06:27] javajunky has joined the channel
[06:30] tahu has joined the channel
[06:31] zemanel has joined the channel
[06:32] siculars has joined the channel
[06:33] _announcer: Twitter: "Loving nodejs. Hating lack of user docs. API docs are nice but you can't stop there. Took forever to learn how to install a module globally." -- Michael Mathews. http://twitter.com/micmath/status/20447823957
[06:36] benburkert has joined the channel
[06:36] SamuraiJack has joined the channel
[06:36] SubStack: install a module globally?
[06:37] SubStack: that should be hard to do and hidden
[06:37] SubStack: to keep people from doing it
[06:37] SubStack: oh wait, unless he means package installation >_<
[06:40] _announcer: Twitter: "BTW, Nodejs Package Manager is one way to do it. http://j.mp/cU7Bcm" [fil] -- Michael Mathews. http://twitter.com/micmath/status/20448130045
[06:41] mscdex: !tweet @micmath irc.freenode.net #Node.js for any questions/problems :-)
[06:41] mscdex: ha
[06:41] mscdex: timing
[06:41] ryah: need better docs. yes
[06:43] SubStack: illustrated
[06:46] ryah: what's this calle:
[06:46] ryah: [a,b]= [1,2];
[06:46] mape: swapping?
[06:46] SubStack: pattern matching?
[06:46] SubStack: list assignment?
[06:46] ryah: multile assignment
[06:47] mape: oh nm
[06:47] ryah: ?
[06:48] ryah: Destructuring assignment, i think
[06:48] SubStack: depends on the language I think
[06:49] cloudhead has joined the channel
[06:49] SubStack: rhino can do that I think
[06:50] SubStack: or not rhino, but whatever moz uses
[06:50] cloudhead: is there a way to know what the current request object was, when an uncaughtException event is captured?
[06:50] cloudhead: I can't seem to find a solution
[06:51] cloudhead: I'm creating a listener on uncaughtException on each request, and removing them when the request ends, but when there's an error, they all fire, and there's no way to know which belongs to which
[06:56] mscdex: PHP has something like that with list()
[06:56] steadicat has joined the channel
[06:56] mscdex: list(foo, bar) = array('fooval', 'barval');
[06:57] slaskis has joined the channel
[06:59] SubStack: mscdex: but still, that doesn't mean the idea is entirely worthless
[06:59] Gruni has joined the channel
[07:00] mscdex: huh? i was just mentioning that :S
[07:01] teemow has joined the channel
[07:01] SubStack: ACTION was making a subtle jab at php, implying that anything todo with it is hopeless
[07:03] mscdex: meh
[07:03] sooli has left the channel
[07:03] jetienne has joined the channel
[07:05] jetienne: hi
[07:06] peutetre has joined the channel
[07:09] lejoe has joined the channel
[07:12] ph^ has joined the channel
[07:12] [[zzz]] has joined the channel
[07:13] twoism has joined the channel
[07:16] mscdex: hola
[07:16] voxpelli has joined the channel
[07:16] jpld has joined the channel
[07:16] _announcer: Twitter: "Node.js http://nodejs.org/ package manager http://npmjs.org/ mmm, tasty # javascript" [fi] -- Peter Edwards. http://twitter.com/drakpete/status/20449741268
[07:19] Gruni has joined the channel
[07:20] sechrist has joined the channel
[07:22] marshall_law has joined the channel
[07:23] sveimac has joined the channel
[07:23] benburkert has joined the channel
[07:24] gwoo has joined the channel
[07:25] TomY has joined the channel
[07:27] jetienne: anybody on ubuntu willing to test my nodejs .deb package ? it works during my tests on fresh installed VM... but i would prefere at least another tester before publishing
[07:30] keeto has joined the channel
[07:30] shockie has joined the channel
[07:30] shockie has left the channel
[07:31] marshall_law has joined the channel
[07:33] marshall_law has joined the channel
[07:33] shreekavi: jetienne: I can try out
[07:34] jetienne: shreekavi: http://blog.jetienne.com/2010/08/nodejs-deb-package-on-ubuntu-repository.html
[07:34] shreekavi: ok
[07:36] FransWillem has joined the channel
[07:36] shreekavi: jetienne: Works like a charm
[07:36] shreekavi: no issues as such
[07:37] jetienne: shreekavi: cool, thanks
[07:37] shreekavi: it upgraded my nodejs v101 source install to v103
[07:38] pquerna: ryah: http://matt-welsh.blogspot.com/2010/07/retrospective-on-seda.html
[07:40] pdelgallego has joined the channel
[07:41] shreekavi has joined the channel
[07:43] marshall_law has joined the channel
[07:43] DoNaLd`: tam je aj video
[07:45] javajunky has joined the channel
[07:48] unices has joined the channel
[07:49] sechrist has joined the channel
[07:56] rnewson has joined the channel
[07:56] rnewson has joined the channel
[07:57] virtuo has joined the channel
[07:59] paulwe has joined the channel
[08:01] lejoe has left the channel
[08:05] sh1mmer has joined the channel
[08:08] _announcer: Twitter: "Interesting stuff at http://nodejs.org/" -- Maurizio Turatti. http://twitter.com/mkj6/status/20451933175
[08:08] _announcer: Twitter: "@w3avenue node.js simple, self-refreshing templates nTPL http://tinyurl.com/253w8pv @indutny please RT" -- Fedor Indutny. http://twitter.com/indutny/status/20451942118
[08:11] FransWillem has joined the channel
[08:11] amerine has joined the channel
[08:16] b_erb has joined the channel
[08:22] _announcer: Twitter: "Looking at http://nodejs.org/ as a simple way to write scalable applications" -- Maurizio Turatti. http://twitter.com/mkj6/status/20452545571
[08:28] _announcer: Twitter: "@rauchg thanks for the RT. P.S. I liked node.dbslayer.js well enough to fork it :-) http://github.com/rentzsch/node.dbslayer.js" -- rentzsch. http://twitter.com/rentzsch/status/20452786368
[08:28] robb1e has joined the channel
[08:31] _announcer: Twitter: "Big Link "Node.js, is this the next big thing?" by cfelde http://dzone.com/qeHf" -- DZone. http://twitter.com/DZone/status/20452904492
[08:31] marshall_law has joined the channel
[08:32] marshall_law has joined the channel
[08:33] zemanel has joined the channel
[08:34] hellp has joined the channel
[08:38] rnewson has joined the channel
[08:39] rnewson has joined the channel
[08:42] robb1e has joined the channel
[08:48] astrolin has joined the channel
[08:49] mAritz has joined the channel
[08:49] ako has joined the channel
[08:52] zomgbie has joined the channel
[08:55] dipser has joined the channel
[08:55] tahu has joined the channel
[08:58] shockie has joined the channel
[08:59] n3v3le has joined the channel
[08:59] shockie: hello, question is there a oauth server middleware module for connect available?
[09:01] marshall_law_ has joined the channel
[09:01] ewdafa has joined the channel
[09:02] robb1e has joined the channel
[09:05] slaskis has joined the channel
[09:06] omarkj has joined the channel
[09:06] beanie___ has joined the channel
[09:06] beanie___ has joined the channel
[09:07] jetienne: shockie: dunno any, but github got 2 oauth stuff.
[09:07] jetienne: http://github.com/mediacoder/node-oauth
[09:07] jetienne: http://github.com/ciaranj/node-oauth
[09:07] javajunky: shockie: not sure, I did some oauth client middleware, there was an oauth producer for express, not sure if it was ported.
[09:08] javajunky: yeah node-oauth is mine
[09:08] javajunky: http://github.com/ciaranj/connect-auth integrates it as oauth clients.
[09:08] javajunky: oauth servers are a PITA because you need persistence, and there's no real common solution atm
[09:09] jetienne: javajunky: connect got dependancies on their keyval stuff ? maybe this could be used
[09:10] elliottkember has joined the channel
[09:10] javajunky: jetienne: oh yeah I'm sure it could be, I'd be happy to help someone create an oauth provider around my node-oauth stuff I guess, but the need for an oauth server is much less than the client I guess.
[09:11] marshall_law has joined the channel
[09:11] _announcer: Twitter: "http://ping.fm/VIi3H Node.js deb package on ubuntu repository" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/20454595505
[09:11] PyroPeter has joined the channel
[09:12] maushu has joined the channel
[09:12] omarkj: Hey good day.
[09:13] jetienne: javajunky: true true
[09:13] shockie: well i'm willing to build a connect middleware
[09:14] femtoo has joined the channel
[09:14] shockie: i think i'm not the only one who needs a oauth server:)
[09:14] _announcer: Twitter: "@nprasanna Check this, Node.js: JavaScript on the Server http://goo.gl/FADH" -- Rajasankar. http://twitter.com/rajasankar/status/20454747672
[09:15] marshall_law_ has joined the channel
[09:16] shockie: save the data in memory and write back to a log (like redis does)
[09:16] javajunky: shockie: oh no, thats true, but there are a *lot* more people who just want to talk to existing oauth producers.. the strength of oauth lies in trust, i.e. are people going to trust that your server is well behaved etc. … not saying it won't be, just that that is where the strength of oauth lies.
[09:17] shockie: sure, true twitter is a good provider but what if you don't trust 'twitter' , like internal apps for companies
[09:17] shockie: then it's a handy if a oauth server middleware is available
[09:17] jetienne: shockie: go, oauth + nstore. nstore is from sencha too, so easier for connect to depends on it
[09:17] _announcer: Twitter: "[Almondbread] http://bit.ly/b9WVCs Marc Rummel - Super fast node.js" [de] -- Jörg W Mittag. http://twitter.com/jwmittag/status/20454896764
[09:18] marshall_law has joined the channel
[09:18] javajunky: shockie: http://github.com/christkv/node-express-oauth-plugin
[09:18] javajunky: is what I was referring to previously.. might be a good starting place.
[09:19] javajunky: *obviously* I'd suggest working with my node-oauth as your backing code because I"m biased, but your mileage may vary
[09:19] jetienne: code sharing is good to make it robust
[09:19] shockie: ah ok:) thx:)
[09:20] shockie: it's time to give something back to the internet:)
[09:20] javajunky: jetienne: yeah definitely, more eyes is better
[09:21] mscdex: sounds like something a zombie might say
[09:21] jetienne: :)
[09:21] javajunky: ;)
[09:24] tahu has joined the channel
[09:26] unices: I'm trying to use a ssl client connection with node v.0.1.103 and crypto.createCredentials() errs with TypeError: Bad parameter. Any ideas?
[09:26] jetienne: pquerna: once we talked about compiling a whole project in a single exe, to ease deployment. have you looked at ndistro ? it seems close
[09:27] tahu has joined the channel
[09:27] zomgbie has joined the channel
[09:27] mscdex: unices: well, what argument did you give it? ;-)
[09:28] tahu1 has joined the channel
[09:29] unices: mscdex: a hash with the keys: key, ca and cert. the values for each were a pem loaded via fs.readFileSync, that contains the private key and the cert
[09:29] mscdex: unices: what exactly are you setting as the values for those hash keys?
[09:30] mscdex: unices: you may need to .toString() the result from readFileSync is what i'm getting at
[09:30] jetienne: http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/ <- i got it from a search
[09:30] unices: jetienne: that does not work for me for it also bails out with the TypeError
[09:31] jetienne: unices: oh
[09:31] jetienne: unices: and it worked with previous version ?
[09:31] unices: mscdex: var mycert fs.readFileSync('cert.pem'); crypto.createCredentials({ca:mycert, key:mycert, cert:mycert});
[09:32] unices: jetienne: I'm new to node.js and have not tried with a previous version
[09:32] mscdex: why are you setting your key, cert, and ca to the same thing?
[09:33] mscdex: unices: try mycert.toString()
[09:33] mscdex: for those values
[09:33] mscdex: a buffer is being returned since you didn't explicity specify an encoding when you read the file
[09:33] unices: mscdex: the cert contains both the key and the cert
[09:34] jetienne: unices: ? key != cet
[09:34] jetienne: cert = signed public key
[09:34] jetienne: key = private key
[09:34] unices: jetienne: I know, but a pem file may contain a private key and a certificate
[09:35] markwubben has joined the channel
[09:35] unices: mscdex: toString() seems to work, will try with setting the encoding directly
[09:37] marshall_law has joined the channel
[09:37] mscdex: ACTION shakes a fist at checkinstall and rpmbuild
[09:39] marshall_law_ has joined the channel
[09:39] jetienne: http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/ this one fails for me too.
[09:39] jetienne: TypeError: Bad parameter
[09:39] jetienne: at Object.createCredentials (crypto:3617:27)
[09:40] mscdex: jetienne: toString() ;-)
[09:41] mscdex: jetienne: or specify an encoding in readFileSync
[09:42] jetienne: mscdex: it did the job :)
[09:44] jetienne: unices: http://gist.github.com/511109 the fixed version working for me
[09:44] unices_ has joined the channel
[09:45] jetienne: ok i was ultra late :)
[09:47] hellp has joined the channel
[09:50] unices: mscdex: It works. Thank you very much for your help!
[09:51] mscdex: unices: no problem
[09:51] unices: jetienne: With toString() added to the readFileSync() calls the sampe at http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/ works
[09:52] jetienne: unices: even with key: cert?
[09:52] unices: mscdex: have been banging my head over it last night, so I do appreciate you helping me to relieve my headache ;)
[09:53] unices: jetienne: Yes
[09:58] marshall_law has joined the channel
[09:59] marshall_law has joined the channel
[10:17] trochala has joined the channel
[10:18] astrolin has joined the channel
[10:20] aho has joined the channel
[10:22] tyler-bounce has joined the channel
[10:23] zemanel has joined the channel
[10:25] robinduckett has joined the channel
[10:29] MattJ has joined the channel
[10:32] shimondoodkin has joined the channel
[10:36] fermion has joined the channel
[10:37] _announcer: Twitter: "Doing some Node.JS Twitter streaming. Fun times!" -- Elliott Kember. http://twitter.com/elliottkember/status/20458357532
[10:38] shimondoodkin: is anybody knows an example of how to call a web service or a pool of webservice calls?
[10:38] mscdex: man, this is driving me up a wall. i can build rpms just fine when usind sudo, but running the same script through upstart results in an error about not finding %_topdir
[10:39] mscdex: s/usind/using
[10:39] shimondoodkin: mscdex: is it for me?
[10:40] mscdex: huh?
[10:40] shimondoodkin: did you said "man, this is driving me up a wall. i can build rpms just fine when usind sudo, but running the same script through upstart results in an error about not finding %_topdir" to me?
[10:40] tjgillies has joined the channel
[10:41] mscdex: no, just venting :/
[10:42] shimondoodkin: http://github.com/shimondoodkin/nodejs-autorestart - this one works for me
[10:43] shimondoodkin: i have a newer version ill update now
[10:46] mscdex: i mean, upstart works fine, it's just rpmbuild being stupid
[10:46] mscdex: and building debs works fine
[10:46] shimondoodkin: maybe you neeed to do cd %topdir
[10:47] marshall_law has joined the channel
[10:47] shimondoodkin: ahh or define it
[10:48] shimondoodkin: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=%25_topdir
[10:51] marshall_law has joined the channel
[10:53] marshall_law has joined the channel
[10:58] shimondoodkin has joined the channel
[11:03] shimondoodkin: mscdex: you might do it in a bash script sometimes it helps
[11:03] omarkj has joined the channel
[11:04] charlesjolley- has joined the channel
[11:05] marshall_law has joined the channel
[11:07] marshall_law_ has joined the channel
[11:11] marshall_law has joined the channel
[11:11] b_erb has joined the channel
[11:17] mscdex: finally. rpms and debs of node are now autogenerated
[11:17] b_erb: haha: http://sonspring.com/journal/javascript-inception
[11:20] shimondoodkin: how to call a web service
[11:20] Blink7_ has joined the channel
[11:20] mape: with node?
[11:20] shimondoodkin: yes the http client staff
[11:20] b_erb: what is it? soap via http?
[11:21] shimondoodkin: i think soap
[11:22] shimondoodkin: it posts xml
[11:23] shimondoodkin: is ther a node program that already does that?
[11:23] b_erb: shimondoodkin: doing what? create clients out of WSDL?
[11:23] shimondoodkin: yes
[11:23] shimondoodkin: no
[11:23] shimondoodkin: post tha exml wait for responce
[11:24] shimondoodkin: * post the xml
[11:24] b_erb: i thought you are acting as a client
[11:24] shimondoodkin: yes as a client
[11:24] b_erb: you could use on of the xml libraries
[11:25] shimondoodkin: ok i probably need it
[11:26] shimondoodkin: does an xml library has an http client for that?
[11:26] b_erb: that are two different things
[11:26] b_erb: you should use the xml lib for creating the entity
[11:26] b_erb: that you post the entity with the http client
[11:27] shimondoodkin: i am looking for an example to do the http client post
[11:28] b_erb: http://nodejs.org/api.html#http-client-183
[11:29] b_erb: then use request.write() to add your xml stuff
[11:29] d0k has joined the channel
[11:30] rsms has joined the channel
[11:30] rsms has joined the channel
[11:31] shimondoodkin: ok
[11:31] shimondoodkin: thanks
[11:40] Gruni has joined the channel
[11:47] fermion has joined the channel
[11:50] blackdog_ has joined the channel
[11:52] rednul has joined the channel
[11:54] jetienne: mscdex: copier :)
[11:54] mscdex: eh?
[11:55] marshall_law_ has joined the channel
[11:55] jetienne: mscdex: or maybe im just paranoid :) did you get the idea to release the precompiled versions after reading my nodejs on ubuntu repo email ?
[11:55] mscdex: no?
[11:55] mscdex: oh that
[11:55] jetienne: so im paranoid :)
[11:56] marshall_law_ has joined the channel
[11:56] mscdex: i've had nodebuilder for awhile now, look at the original post date for the thread i started :p
[11:56] rednul has joined the channel
[11:56] mscdex: i just don't have a proper repo set up
[11:57] jetienne: mscdex: oh this is me the copier then :)
[11:57] jetienne: mscdex: in my case i needed this because i release some of my tools in nodejs on ubuntu10.04
[11:57] mscdex: maybe somewhere down the road i'll have a real repo
[11:57] jetienne: and nodejs isnt yet on ubuntu 10.04
[11:58] stride: you're using ubuntu on your servers? :)
[11:58] jetienne: i do
[11:58] mscdex: jetienne: nodejs is in debian's repo, but they can't keep them as up to date as i do automatically ;-)
[11:59] mscdex: stride: yeah
[11:59] jetienne: it will be in the next ubuntu too. i asked them to put that on current version as backport... but they dont move fast
[12:00] stride: jetienne: we're running CentOS/RHEL mostly, compared to their repos ubuntu always feels like it's lightyears ahead
[12:01] ryan[WIN]: http://pilot.ryanbroomfield.com:8030/icorn.html
[12:01] ryan[WIN]: can someone log into that and type a few things then close the browser
[12:01] marshall_law has joined the channel
[12:01] mscdex: i used to build and package node manually, but nodebuilder polls github every 5 minutes for new commits and automatically builds and packages for me
[12:01] jetienne: stride: yep they dont have the same goal. rh is about enterprise and stability. ubuntu has to handle desktop too
[12:02] mscdex: so whenever i need to update, i can just dpkg -i the latest commit
[12:02] mscdex: :>
[12:02] stride: ryan[WIN]: closed
[12:02] ryan[WIN]: sweet thanks
[12:02] stride: ryan[WIN]: chrome on a windows box btw if that matters
[12:02] ryan[WIN]: nah
[12:02] ryan[WIN]: i'm just testing my node thingy
[12:03] stride: jetienne: I know but sometimes it just gives me a headache :)
[12:05] marshall_law has joined the channel
[12:06] mscdex: stride: yeah i agree
[12:07] rednul has joined the channel
[12:16] ben_alman has joined the channel
[12:16] kevm_ has joined the channel
[12:20] _announcer: Twitter: "How NodeJS saved my web application - rfw.posterous.com: http://rfw.posterous.com/how-nodejs-saved-my-web-application http://bit.ly/aVhplw" -- Matthew Hammond. http://twitter.com/emptyhammond/status/20463857793
[12:20] CarbonicMan has joined the channel
[12:21] bryanl has joined the channel
[12:26] dnolen has joined the channel
[12:26] rsms_ has joined the channel
[12:27] aheckmann has joined the channel
[12:28] romainhuet has joined the channel
[12:32] kriszyp has joined the channel
[12:38] fermion has joined the channel
[12:40] _announcer: Twitter: "@sniiffit @brianritchie sounds like a project to build using websockets, and node.js" -- sweemeng. http://twitter.com/sweemeng/status/20465146791
[12:42] dnolen has joined the channel
[12:45] jan247 has joined the channel
[12:46] hellp has joined the channel
[12:58] rsms has joined the channel
[13:00] Sudhirj has joined the channel
[13:00] _announcer: Twitter: "Experimenting with Node.js - Jeff Kreeftmeijer: http://bit.ly/cDTMyE <- ask some friends to visit the site at the same time" -- Hernan Garcia. http://twitter.com/theprogrammer/status/20466494499
[13:01] pgriess has joined the channel
[13:01] FransWillem: Anyone here ?
[13:02] _announcer: Twitter: "Thinking of moving my blog to Wheat (http://github.com/creationix/wheat) as I love the concept. Just need a node.js host..?" -- Steve Mason. http://twitter.com/spmason/status/20466597913
[13:04] pengwynn has joined the channel
[13:07] mw_ has joined the channel
[13:08] kevm_: Looks like no. I just like to lurk.
[13:11] _announcer: Twitter: "My node.js node-gif module -- http://bit.ly/bvAkmH -- can now do Animated GIFs. Check out this gifcast: http://i.imgur.com/FALEa.gif" -- Peteris Krumins. http://twitter.com/pkrumins/status/20467226445
[13:11] _announcer: Twitter: "events to the max http://github.com/sustainablecode/ringo-evented/blob/master/examples/stupid.js (it's ringo, looks like node) /v @polgfred" -- simon oberhammer. http://twitter.com/oberhamsi/status/20467227750
[13:12] bpot has joined the channel
[13:12] jherdman has joined the channel
[13:14] stride: FransWillem: yeah, what's up? :)
[13:16] FransWillem: Want some input on a module I'm working on, up for that ?
[13:16] stride: sure
[13:17] stride: I'll do pretty much everything that keeps me away from my thesis for a few minutes these days, you should see my kitchen.. cleaner than ever ;)
[13:17] FransWillem: Basically a WebSocket (and other) server API,
[13:17] FransWillem: I figured it has a "request" event like http.Server
[13:17] FransWillem: which gets a request and response
[13:17] FransWillem: request being a WebSocketRequest, with all properties of http.ServerRequest, and an extra protocol property
[13:18] FransWillem: and a WebSocketResponse, which should allow to either respond as HTTP, or to accept it as a socket
[13:18] paul___ has joined the channel
[13:18] FransWillem: My current implementation is that WebSocketResponse implements the Stream interface, closed by default
[13:19] FransWillem: With all http.ServerResponse properties too
[13:19] FransWillem: Then if you call writeHead, it'll turn into writeOnly, and allow you to write HTTP data
[13:19] FransWillem: but if instead you call .accept, it'll accept the WebSocket Upgrade request, and it'll turn into a full-fledged net.Stream implementation
[13:20] FransWillem: (first turns into .readystate="opening", then fires "connect", then readystate="open")
[13:20] chrischris has joined the channel
[13:21] FransWillem: Does that sound ok, or should it be more like you call respondHttp on the responseObject to get a http.ServerResponse to do HTTP data, or you call respondSocket and you get a Stream object back ?
[13:22] wattz: Good morning!
[13:22] stride: sounds fine for me but I like the low-level nature of most node modules, I figure that, for someone new, it migth sound a little hard to understand at first
[13:22] stride: but nothing that a few good examples wouldn't fix :)
[13:22] stride: morning wattz
[13:22] wattz: hey, anyone embed node (C++) in their app, make node related calls?
[13:22] wattz: yo stride how you liven?
[13:23] wattz: thinking of publishing my mysql (blocking, I KNOW...) driver for node
[13:23] stride: except of a pile of scientific papers next to me, everything fine, you? :)
[13:23] wattz: before i start thinking of ways to make it async
[13:23] wattz: stride: coding my brains off
[13:23] davidsklar has joined the channel
[13:24] FransWillem: stride: Yeah, my goal is to keep it as close to low-level Node as possible, tbut I'm not sure if a frankenstein-interface-mix between net.Stream and http.ServerResponse is adequate :/
[13:24] stride: FransWillem: are there mixed use-cases where you want to support http and stream in one implementation?
[13:24] stride: FransWillem: the regular http module does that mix, too, so what? :)
[13:24] stride: FransWillem: at least it encapsulates the stream, too
[13:25] FransWillem: stride: Basically, if you do not wish to accept a WebSocket connection, I figured it's nicest to send a simple HTTP 400 or HTTP 500 reply, seeing as the orginal connection request was HTTP too. At least it's nicer than accepting the connection and immediatly closing it
[13:26] wattz: im thinking of building an application server in C++ and wanted to embed node and use it's underpinnings
[13:26] stride: FransWillem: yeah, sounds reasonable. for that use-case I'd think a function that turns your stream into a http response would be adequate. if your main use-case is still raw tcp you'd bloat up your API for a few error responses imho
[13:26] jetienne has joined the channel
[13:27] BryanWB has joined the channel
[13:27] ctp has joined the channel
[13:27] volve has joined the channel
[13:28] maushu: FransWillem: Using a 500 makes more sense.
[13:29] dylang has joined the channel
[13:29] stride: FransWillem: okay, that sounded confusing, my point is, you might not want the full HTTP stack (parser, response wrapper, ...) everytime you get a connection when all you want to do is answering with an error message in case the client's websocket request begins with {method} {url} {protocol}
[13:29] maushu: Since the error is from the server side, not client side.
[13:30] maushu: Someday I will use 402.
[13:30] stride: 501 would be most appropriate I guess
[13:30] _announcer: Twitter: "Nodeload replaces the ruby git archive download server #nodejs http://digs.by/9xfZwW" -- Sam Shull. http://twitter.com/samshull/status/20468587838
[13:30] FransWillem: stride: A websocket connection request will first have to pass through the http.Server, which in turn spits it out with an "upgrade" event, so I won't have to do any parsing. All I'd do is implement an interface which looks and feels like a http.ServerResponse :)
[13:32] _announcer: Twitter: "dreamt about two hot gingers oil wrestling last night… one with node.js, the other lighttpd… ah Cancun, sharpies, and Tequila" -- Use My Computer. http://twitter.com/usemycomputer/status/20468754080
[13:35] stride: FransWillem: oh, sorry for the misunderstanding :) in which event are you currently making the stream/http determination? in your websocket request event?
[13:37] FransWillem: stride: in the request you get a WebSocketResponse object. If you call .writeHead on that, it'll look and behave like a http.ServerResponse, if you call .accept on it, it'll look and behave like a net.Stream (as if you had just gotten it from a net.Server "connection" event) and it'll turn read/writeable after the "connect" even
[13:37] FransWillem: t
[13:39] RedMike has joined the channel
[13:39] BryanWB: can anybody tell me what the main difference b/w createServer and createApp calls in connect?
[13:39] BryanWB: is createApp just createServer w/ default settings?
[13:39] BryanWB: ah, i found the code comments
[13:40] micheil has joined the channel
[13:40] stride: FransWillem: only thing that comes to my mind is the state when using writeHead (for accept() that sounds fine). writeHead is expected to write something, while the thing you're writing into is still closed (if I understood you correctly)
[13:40] mscdex: FransWillem: fyi, websocket requests are not HTTP, even though they may look like it
[13:41] RedMike has left the channel
[13:41] FransWillem: mscdex: Yes, but declining a WebSocket upgrade request should be done with a HTTP response, right ?
[13:42] ben_alman has joined the channel
[13:44] knuckolls has joined the channel
[13:46] stride: just reading the ws specs.. var socket = new WebSocket('ws://game.example.com:12010/updates'); if you have a second clear my mind please: how is the "/updates" part sent to the server?
[13:46] FransWillem: stride: GET
[13:46] FransWillem: It's just a GET request with a few headers to tell the server that it should upgrade to a websocket connection
[13:47] FransWillem: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76#section-1.3
[13:49] stride: ahh :) didn't know that, sorry. in that case your implementation sounds very reasonable imho
[13:49] cce: ACTION is curious -- does websocket let you know if a user navigates away from a webpage or clicks cancel button?
[13:50] FransWillem: cce: Connection is just closed
[13:50] mape: FransWillem: so what is your crazy idea of an implementation?
[13:50] davidwalsh has joined the channel
[13:51] cce: FransWillem: ok, so you have to rely upon tcp timeout? so websocket doesn't help with this?
[13:51] mape: socket.io but more cuddly to node?
[13:51] FransWillem: cce: WebSocket after the initial handshake is pretty much the same as a TCP connection, which is just closed gracefully once the browser leaves the page.
[13:51] rudebwoy has joined the channel
[13:51] mape: FransWillem: It doesn't on Firefox4 beta :/
[13:51] FransWillem: mape: Yes, pretty much, and on the client-side more cuddly to the WebSocket API
[13:52] stride: handleUnload is called by the browsers before they close anything, isn't it? you could try sending a quit-msg there I guess
[13:52] mape: Firefox4 just bails
[13:52] steadicat has joined the channel
[13:52] charlenopires has joined the channel
[13:52] stride: how rude :)
[13:52] cce: ACTION thinks the inability to signal a closed connection is a serious problem for webservers, hence epoll over poll, etc.
[13:52] FransWillem: mape: Do you mean it doesn't send the WebSocket draft74 end packet (FF packet with length 0), or does it just completely abandon the TCP connection?
[13:53] FransWillem: mape: I find it highly unlickely that they wouldn't just call close on the socket :/
[13:53] mape: FransWillem: Well I don't know the inner workings, but using micheils implementation the Firefox4 beta doesn't emit disconnect when closing
[13:53] mape: When everyone else does
[13:54] FransWillem: mape: Does Firefox4 beta even implement WebSocket ? or are you using some kind of fallback layer that fakes the websocket API ?
[13:54] mape: FransWillem: No it is native in FF4 beta
[13:54] mape: you should try/test it out :)
[13:54] zapnap has joined the channel
[13:54] mape: And report back if I'm wrong
[13:54] mape: But that is my experience at least
[13:55] FransWillem: Meh, not sure, but I'd signal that as a bug tbh :/
[13:55] stride: ACTION just realized that he is way behind on websockets.. have to try doing something with them next week
[13:55] mape: stride: I'm working on a pretty cool analytics tool/user testing thingy using webkit
[13:56] dylang: has anyone seen a script that will copy modules from .npm to your project for pushing to servers that don't have npm or shell access like heroku ?
[13:56] mape: Like a real time screencast of the user using the site but remote, and broadcasted
[13:56] mape: So site owners can get a list of all their current users (with websocket support) and open a session to see exactly what the user is doing
[13:56] stride: mape: great idea, that sounds awesome
[13:57] mape: Pretty simple, like 400 lines of code serverside
[13:57] stride: that multiple mouse demo with a live-heatmap view for site owners would be nice for analytics imho :)
[13:57] mape: opens a popup, shows the mouse cursor, resizes the popup based on user window size, shows clicks and scroll
[13:57] mape: issues are triggering actions on the viewers side
[13:58] stride: mape: so it's monitoring one user at a time?
[13:58] mape: stride: well the server is broadcasting all
[13:58] stride: ah ok
[13:58] mape: but it only sends info back to the ones being viewed
[13:58] matt_c has joined the channel
[13:58] mape: so 100 users send data to the server that is dumped, but if I enter a session with a user that is broadcasted
[13:59] mape: so hopefully it scales pretty ok
[13:59] hpoydar has joined the channel
[13:59] mape: has some checkes for public/private keys that might slow it down but don't think it will be to bad (so only authorized users can view users based on a specific sites script inclusion)
[14:00] mape: But yeah, the issues are still user specific stuff, since my implementation just iframes the url the user is on it borks if the logged in user has different content
[14:00] mape: or if the browser rendering is all off, since the cursor is just sending an offset from the top left corner
[14:01] stride: sounds great to do usability testing
[14:01] mape: Yeah, that is the idea, expensive to do inhouse user testing, better to just use the actual users
[14:01] wattz: anyone know a C++ project that embeds node?
[14:01] stride: are you using websockets directly / socket.io / DNode with socket.io?
[14:02] mape: stride: Right now just micheils websocket server, and no fallback, want the clientside script to be really really light, so the only thing the owner of the site has to do is include the script and forget about it
[14:02] mape: And I'm using my asset manager so everything that doesn't support websockets just get an empty file
[14:03] stride: ah ok
[14:03] mape: So you are only getting like 20-30% of the user base that has support but that should be enough if you have a decent site with enough traffic
[14:03] mape: and since firefox will implement it it should scale over time
[14:03] mape: not sure about ie9 though
[14:04] mape: So I guess it messes the tests up a little, you won't be able to test the IE6 users without making their experience horrid
[14:04] hij1nx has joined the channel
[14:04] mape: doing an xhr req for each mouse move will kill them
[14:05] wattz: so all node really is, is an event/epoll manager, that loads js to do everything else ( oh and socket/thread handling)
[14:05] wink- has joined the channel
[14:06] FransWillem: wattz: That plus a high performance http parser, a DNS library, and a solid set of JS standard libraries
[14:06] mape: wattz: it does what js does, and some extra things to make that ever nicer
[14:06] _announcer: Twitter: "http://bit.ly/cuaP8W nodejs and mongo seems a perfect match" -- Ifnu Bima. http://twitter.com/ifnubima/status/20471362811
[14:06] wattz: FransWillem: but that all looks to be written in JJS
[14:06] wattz: JS
[14:06] mape: Plus it has a really nice community
[14:06] FransWillem: wattz: http parser + dns library have quite a bit of C++ code too
[14:06] wattz: mape: oh, don't get me wrong, I love node man
[14:06] wattz: writing a bunch of addons for it
[14:07] wattz: but i was looking to see if it was embeddable in a C++ program
[14:07] mape: wattz: Hehe no worrys, just felt it needs to be mentioned, hard to find a community that is as chill as the node.js one :)
[14:07] loincloth has joined the channel
[14:07] wattz: mape: until you tell them your mysql driver is blocking as of right now ;)
[14:07] wattz: lol
[14:08] _announcer: Twitter: "#Node.js is this the next big thing? - http://bit.ly/cr6nJN <- cool :)" -- Marko E P. Acosta. http://twitter.com/mark_xDDD/status/20471500020
[14:08] mape: Well it is still young, and why use mySql anyway.. ;)
[14:08] daniellindsley has joined the channel
[14:08] wattz: mape: why not?
[14:08] wattz: ACTION lights the fuse.
[14:08] jetienne: anybody saw ryah on the channle recently ?
[14:09] mape: wattz: It aint a buzz word, so you can't use it
[14:09] wattz: mape: haha
[14:09] mape: Those are the rules of physics, obey them
[14:09] wattz: honestly i like couch too, but mysql has never given me any problems :P
[14:10] jetienne: wattz: v8 is made to be ultra easy to embed in c++, so node may be
[14:10] wattz: jetienne: yeah, except the modules are written in js so it's not just a matter of include the lib and header
[14:10] jetienne: wattz: additionnaly a project who did v8 in ruby just released a node in ruby, you may look at it
[14:10] jetienne: trying to remember the name
[14:11] davidwalsh has joined the channel
[14:11] wattz: jetienne: well im thinking of writing a nice web only application server in C++
[14:11] jetienne: http://github.com/cowboyd/therubyracer those guys
[14:11] gf3 has joined the channel
[14:11] mscdex: yuck :P
[14:11] wattz: Node is really well written and love to flex on it
[14:11] wattz: mscdex: specific uses man.. specific needs..
[14:12] mscdex: heh... i guess...
[14:12] wattz: don't heh me young man!
[14:13] wattz: what Im doing though, is writing all the C++ i need for this project using node so perhaps i can swing that we only use node
[14:14] wattz: mscdex: you don't think a nice "Tomcat" for js would be nice?
[14:14] wattz: lol
[14:15] _announcer: Twitter: "@trptcolin you've got a node.js app for twitter? Can I help test? I'm exiled to Windows land and need a decent client! Tweetdeck blows..." -- Scott Pfister. http://twitter.com/goneflyin/status/20472024021
[14:17] tahu has joined the channel
[14:18] _announcer: Twitter: "LakTEK – Real-time Collaborative Editing with Web Sockets, Node.js & Redis - http://goo.gl/V9by" -- Peter Hoffmann. http://twitter.com/peterhoffmann/status/20472267218
[14:20] timmywil has joined the channel
[14:23] FransWillem: Ok, everyone, how ugly is this: http://pastebin.com/5PinuVpn ?
[14:24] ajpiano has joined the channel
[14:24] bpot has joined the channel
[14:24] mape: FransWillem: shouldn't use delete
[14:24] FransWillem: mape: Why not ?
[14:25] FransWillem: mape: And is that honestly the most hackish and ugly you could find in there :p?
[14:25] mape: Cuss everyone says so, not really sure why though... Supposetly that throws v8 into slow mode
[14:26] mape: Doubt it would cause crazy performance decrease though
[14:26] _announcer: Twitter: "Thingler - A really simplified collaborative todo list written entirely in JavaScript using node.js and... http://tumblr.com/xm5f3hf6y" -- Leon Weidauer. http://twitter.com/techpriester/status/20472877362
[14:26] mape: And isn't callee going away?
[14:26] FransWillem: Well, for now, I'd rather make sure that the constructor of http.ServerResponse has a clean slate to work on.
[14:26] softdrink has joined the channel
[14:26] FransWillem: why should it ? arguments.callee is independent from the object or the prototype.
[14:27] mape: guess it will work though, unless you throw "use strict" in there
[14:28] podman has joined the channel
[14:28] mape: FransWillem: Access to arguments.caller and arguments.callee now throw an exception. Thus any anonymous functions that you want to reference will need to be named
[14:28] mape: in ecmascript 5 strict mode
[14:28] FransWillem: ...? wtf? why did they remove that?!
[14:29] mape: It is slow?
[14:29] mape: Using arguments has always been slow
[14:29] mape: Guess they just don't enjoy it
[14:31] bradleymeck_ has joined the channel
[14:31] bradleymeck_: which db would you guys recommend for full text searching (do any of the key/value stores even have that)?
[14:31] FransWillem: Hmm, could probably remove that check, seeing as it removes all own properties and changes the prototype
[14:31] FransWillem: but still
[14:32] FransWillem: guess if (this.writeHead===WebSocketResponse.prototype.writeHead) { would be better
[14:32] FransWillem: although not as foolproof
[14:34] dnolen has joined the channel
[14:34] streampunk has joined the channel
[14:35] wattz: decisions decisions
[14:36] ditesh|cassini has joined the channel
[14:36] FransWillem: Hmmm
[14:36] mscdex: mape: where did you see that?
[14:36] FransWillem: I could also do return http.ServerResponse.prototype.writeHead() instead of this.writeHead which would completely elevate the problem :p
[14:36] mape: mscdex: what?
[14:37] mscdex: about arguments.callee throwing an exception
[14:37] mape: http://www.google.se/search?source=hp&q=ecmascript%20strict%20mode%20callee
[14:37] mscdex: oh, strict mode
[14:38] mape: jup
[14:39] mscdex: wow... strict mode also doesn't let you define new variables when using eval
[14:39] jakehow has joined the channel
[14:39] mape: mscdex: ever used eval to define new variables?
[14:40] cloudhead has joined the channel
[14:40] mscdex: i don't use eval, but i could see where it might be useful
[14:40] mape: like?
[14:40] mape: (not being an ass, want to know)
[14:41] FransWillem: http://webreflection.blogspot.com/2009/05/ecmascript-5-do-not-remove.html :)
[14:41] mape: Only thing I've seen using eval in a long time is ejs using eval
[14:41] mape: FransWillem: Start a web petition, those seem to work? ;)
[14:42] mape: With standard bodies it seems either you are a part of them or you follow their rules, sadly
[14:42] mape: Just look at how shitty css is
[14:43] mape: But yeah, isn't the arguments.callee thingy based on the fact that using arguments at all is slow?
[14:43] knuckolls has joined the channel
[14:44] maushu: mape: less?
[14:44] mape: maushu: wha?
[14:44] maushu: http://lesscss.org/
[14:45] mape: maushu: yeah?
[14:45] rwaldron_ has joined the channel
[14:46] knuckolls has joined the channel
[14:47] mape: maushu: what is the question/idea/thought?
[14:47] maushu: No idea.
[14:47] mape: Then I agree
[14:47] maushu: You said css is shitty, I think.
[14:47] mape: Oh yeah
[14:47] maushu: Then I was "of course it is shitty, here try less".
[14:47] mape: less isn't css
[14:48] wattz: things like less, haml all don't make sense to me
[14:48] mape: maushu: How do I center a dynamic height div in a container box with less in the y axis?
[14:48] maushu: Then I linked to less and you replied with "wha?" probably wondering what the hell I was talking about.
[14:48] wattz: you put one more element of processing in your cycle
[14:48] maushu: You asked then what was the thought about it and I had no idea.
[14:48] jetienne: lets talk about this for 30min... it worths it :)
[14:49] mape: wattz: ie not css?
[14:49] wattz: yeah
[14:49] wattz: and not html
[14:49] mape: So yeah, css sucks
[14:49] wattz: why use haml?
[14:49] wattz: just because it "looks" better or what?
[14:49] maushu: You agreed to my reasoning and I affirmed that css was shitty and you agreed to my reasoning.
[14:49] wattz: Im not downing them, don't get me wrong
[14:49] wattz: I just don't get it is all
[14:49] jetienne: wattz: the algo is simple: the syntax is clearer so easier to write
[14:49] wattz: jetienne: but you have to learn it
[14:50] maushu: Then I replied that then- then- then- Error: stack overflow.
[14:50] jetienne: wattz: yep, it is only a matter of priority in your work
[14:50] mape: maushu: Ah I thought you meant less would solve the issues of css
[14:50] wattz: i have been doing web dev (among other things) for so long that html/css are just second nature
[14:50] jetienne: wattz: some put "clear syntax" higher than other
[14:50] mape: wattz: Well it isn't, still, how do you center somthing on the y-axis that is dynamic?
[14:50] maushu: mape: It should solve plenty of them. Specially vars and organization.
[14:50] wattz:
:D
[14:50] wattz: hahaha
[14:51] wattz: ACTION is kidding
[14:51] wattz: mape: for say a div?
[14:51] mape: And why did on earth did they not default to box-sizing
[14:51] jetienne: sugar syntax for html or js i dont get
[14:51] mape: wattz: does it matter?
[14:51] jetienne: but i get it for css
[14:51] wattz: mape: depends on the designer
[14:51] mape: maushu: Well vars and organization isn't the issue
[14:51] wattz: for me at least
[14:51] Sudhirj has joined the channel
[14:51] wattz: doesn't css3 support vars?
[14:52] mape: wattz: Not at all, a generic image that is dynamic in height withing a div container
[14:52] maushu: I think its the implementation. I wonder how difficult it would be to implement a vertical-align on every block?
[14:52] ceej has joined the channel
[14:52] FransWillem: Btw, does anyone know of a way to call a constructor with variable list arguments ?, e.g. Buffer.apply(...,[]); ?
[14:52] mape: the whole calc thing might solve it but it won't be used since IE shit is still in the pipeline
[14:52] wattz: mape: jetienne: the clear syntax makes sense
[14:52] wattz: mape: i guess
[14:52] wattz: mape: maybe i just need to try it out one day
[14:52] mape: wattz: is the current default box model more clear then using box-sizing?
[14:53] mape: For me it is only causing issues
[14:53] wattz: lol, is that a trick question or just a loaded one
[14:53] jetienne: wattz: you have to learn it, and you are in trouble if the maintainer of the compiler stop
[14:53] MrNibbles: hey guys
[14:53] jetienne: wattz: so i dont use them either :)
[14:53] wattz: jetienne: ahh
[14:53] marshall_law has left the channel
[14:53] MrNibbles: could you check out my js1k demo?
[14:53] MrNibbles: http://www.webnibbles.co.uk/dropbox/
[14:53] MrNibbles: let me know if its really jerky on your box
[14:54] mape: wattz: What? The box-sizing one? How is that a trick question?
[14:54] wattz: to mean it seems like 'writing a templating language for php'
[14:54] MrNibbles: click to randomise
[14:54] wattz: when php is a templating language.
[14:54] wattz: mape: im just pulling your chain
[14:54] MrNibbles: p.s works best in safari/chrome
[14:54] jetienne: MrNibbles: very slow on my netbook/chrome
[14:54] wattz: mape: just avoiding the rabbit hole, lol
[14:54] MrNibbles: jetienne: :(
[14:54] jetienne: MrNibbles: make it faster. reduce resolution or something
[14:55] MrNibbles: its not really designed for people with netbooks :P
[14:55] bjartek has joined the channel
[14:55] shimondoodkin: maushu: is there such thing in javascript ?
[14:55] shimondoodkin: less
[14:55] jbrantly: MrNibbles: it's pretty slow for me too (not a netbook, 3 year old laptop)
[14:55] MrNibbles: jetienne: thanks for the heads up though :)
[14:55] mape: wattz: Yeah, so width: 100%; padding: 20px; should be impossible right?
[14:55] jetienne: MrNibbles: well it will be slow anyway, because 1 web page is using only 1 processor
[14:56] wattz: mape: aye, because that would increase the width over the 100%
[14:56] wattz: shou.d
[14:56] MrNibbles: jbrantly: what browser?
[14:56] jbrantly: MrNibbles: chrome
[14:56] MrNibbles: do you have safari?
[14:56] jbrantly: yea
[14:56] jetienne: MrNibbles: make it run at 20fps on your box
[14:56] jetienne: MrNibbles: no matter the resolution
[14:56] MrNibbles: jetienne: its running at 130fps on mine :S
[14:56] mape: wattz: well have you ever used it in that sence? or do you just want the element to be 100% and have 20px padding within that?
[14:57] jetienne: MrNibbles: ah
[14:57] wattz: i rarely use 100%
[14:57] wattz: tbh
[14:57] MrNibbles: jbrantly: any better in safari?
[14:57] MrNibbles: if not im going to dump the resolution down a bit
[14:57] wattz: and i will admit css/html isn't my strongest, i just do it to try to get through it as fast as possible
[14:57] wattz: lol
[14:58] jbrantly: MrNibbles: better. rough guesses are 1-2 fps in chrome, 5-6 fps in safari
[14:58] MrNibbles: ouch, what spec is your machine?
[14:58] nefD: i use tables for any sizing
[14:58] nefD: and the blink tag for important stuff
[14:58] jetienne: MrNibbles: so you need to multiple by 4 the default speed :)
[14:58] Gruni has joined the channel
[14:58] MrNibbles: jetienne: yep :S
[14:59] MrNibbles: glad i asked you guys before i submitted it now!
[14:59] mape: nefD: you should use marquee on the body to add some spice
[14:59] jbrantly: AMD dual core, although I think it's running stepped down right now
[14:59] nefD: mape: ooooh, good call!
[14:59] MrNibbles: oh your on windows?
[14:59] jbrantly: MrNibbles: yes
[14:59] MrNibbles: ok, i might check with a few others to see if its some weird windows issue
[15:00] MrNibbles: jetienne: are you on windows too?
[15:00] nefD: MrNibbles: what are we looking at? im on linux if you want a third set of results for comparison
[15:00] MrNibbles: nefD: http://www.webnibbles.co.uk/dropbox/
[15:00] MrNibbles: nefD: click to randomise
[15:01] MrNibbles: hows the performance?
[15:01] jbrantly: MrNibbles: you should add an fps counter so people arent guessing :)
[15:01] Yuffster has joined the channel
[15:01] MrNibbles: jbrantly: that is a damn good idea :P
[15:02] nefD: MrNibbles: chrome 6.0.4.472.22 dev, ubuntu 10.04, dual core 2.8ghz, averaging about 4-5 fps
[15:03] nefD: cpu usage is not at 100% like i would have suspected, though
[15:03] MrNibbles: damn, somethings wrong here
[15:03] wattz: i need to find a good embeddable webserver, don't feel like writing a thread manager and request handler
[15:03] MrNibbles: its >100fps on my box
[15:03] nefD: floating around 90% though
[15:03] shockie has left the channel
[15:03] jbrantly: MrNibbles: hardware acceleration?
[15:04] MrNibbles: jbrantly: shouldnt be, not under chrome anyway
[15:04] MrNibbles: im on os x
[15:04] MrNibbles: i do have 8core 3.2ghz though...
[15:04] jpld has joined the channel
[15:04] mape: If only IE9 forced update and had a chrome frame kinda deal for IE6
[15:04] nefD: ran a profile on the script in chrome, but the results are probably what you would expect anyway
[15:04] mape: No intranet breakage and still had users update
[15:05] mape: and somehow infest those xp pirates with ie6 to update
[15:06] MrNibbles: ok, update 1: http://www.webnibbles.co.uk/dropbox/
[15:06] MrNibbles: removed an implied eval (cant believe i missed that!)
[15:06] MrNibbles: and dropped the res down
[15:06] MrNibbles: any faster guys?
[15:07] nefD: MrNibbles: almost twice as fast for me.. 8-10 fps maybe? would be nice to have some kind of fps counter :)
[15:07] jbrantly: same
[15:07] jetienne: MrNibbles: make 4 time less pixels
[15:07] MrNibbles: haha
[15:07] jbrantly: it's "usable" at this point for me in safari
[15:07] MrNibbles: good start though, thank you everyone for your help
[15:08] MrNibbles: i might hack an fps counter in there
[15:08] MrNibbles: it will impact performance annoyingly
[15:08] nefD: dont make a constantly updating one
[15:08] jbrantly: ^
[15:08] jetienne: MrNibbles: Do you use a lib behind?
[15:08] nefD: maybe act on a keypress or click or something, then update an fps display
[15:08] MrNibbles: jetienne: no, its 860bytes compressed :)
[15:09] ajpiano has joined the channel
[15:09] fod has joined the channel
[15:11] jetienne: :)
[15:11] daniellindsley has joined the channel
[15:11] jbrantly: MrNibbles: unless I'm missing something, you draw on a timeout of at least 40 ms. Meaning a max fps of 25
[15:12] MrNibbles: jbrantly: you can do var ti=0 in console
[15:12] MrNibbles: to remove the limit
[15:12] jbrantly: MrNibbles: ah ok :) just wondering how you got your crazy fps
[15:12] MrNibbles: :)
[15:12] MrNibbles: without a timeout things get a bit hairy :S
[15:13] jbrantly: sure
[15:13] _announcer: Twitter: "like @ryah said in his Node.js presentation, (paraphrased) "be careful creating abstractions, you might have to use them."" -- Jonas Galvez. http://twitter.com/galvez/status/20476296266
[15:13] MrNibbles: jbrantly: actually, can you try that in console
[15:13] voxpelli has left the channel
[15:13] MrNibbles: let me know how much better the performance is
[15:13] MrNibbles: sorry, if your busy just ignore me :P
[15:14] jbrantly: no change
[15:14] MrNibbles: good, thats what i thought :)
[15:14] jchris has joined the channel
[15:14] SamuraiJack_ has joined the channel
[15:15] charlenopires has joined the channel
[15:16] sechrist has joined the channel
[15:19] ashleydev has joined the channel
[15:21] bradleymeck_: mape, arguments is not slow, it is always declared in the c++ side, always :P, and using eval, i cant compile myself a new function by generating the source at compile time, makes me a sad panda
[15:22] mape: bradleymeck_: huh? c++ ? I thought this was the js side?
[15:22] bradleymeck_: the js side just maps a name to a pointer to the c++ arguments object in virtually all js engines (jscript cough*)
[15:23] bradleymeck_: jscript is painful doing almost anything soo i ignore it however
[15:23] hansek has joined the channel
[15:23] ashleydev_ has joined the channel
[15:23] alecmuffett has joined the channel
[15:24] bradleymeck_: on a side note strict mode breaks jade
[15:24] khug has joined the channel
[15:24] mape: Well how does that have any bearing to those using pure js?
[15:24] mape: And well, strict mode doesn't break anything
[15:24] mape: unless you throw it into strict mode
[15:26] bradleymeck_: strict mode makes it sound like it is taking out faulty features, and as for pure js, eval is historic, arguments.caller is useful, and that functions can force strict mode on other functions seems wrong
[15:26] bradleymeck_: ACTION also sometimes uses eval
[15:26] bradleymeck_: all those are pure js?
[15:28] mape: bradleymeck_: well since the parent scope is always the one enforcing it how is it wrong?
[15:28] mape: Make sure those kids aren't running crazy
[15:28] mape: If they are grown up, let them
[15:29] mape: But if you are a grand parent trying to force grown ups to do certain things, then either find better children or accept it
[15:30] bradleymeck_: how many corporate ppl will want "strict" mode adherence, even if you know what you are doing? also how many kids are going nuts w/ arguments or eval? i havent seen almost anyone use eval that either is completely new to js or is using it w/ purpose
[15:30] bradleymeck_: i dont want to be forced to act like a baby because joe smoe says eval is scary
[15:31] mape: bradleymeck_: Then don't use strict :)
[15:31] mape: Want a crazy party?
[15:31] bradleymeck_: i have to if i write a lib
[15:31] mape: Or want a strict one?
[15:31] bradleymeck_: how many ppl will bitch at me about my lib not being strict if i want it to be used?
[15:31] mape: Then just state this is a crazy party module
[15:32] nefD: did someone say.. crazy party?!
[15:32] bradleymeck_: i can emulate eval, thats ok, but arguments.caller?!
[15:32] _announcer: Twitter: "@kuvos nTPL: node.js fast and self-refreshing template system http://ur.ly/j05Y RT Please!" -- Fedor Indutny. http://twitter.com/indutny/status/20477753621
[15:32] FransWillem: Is there a quick way to see if the total length of an array of strings is more than 10, without actually looping through all elements if (for example) the first two are already more than 10 ?
[15:32] FransWillem: something like .reduce ?
[15:33] bradleymeck_: mape, mainly i just dont want what i know is going to happen. ppl are going to complain about non-strict modules, and rather than js allowing you to check if a func is strict compliant they made an entire mode
[15:34] mape: bradleymeck_: For sure, deal with it.
[15:34] bradleymeck_: FransWillem Array.prototype.every
[15:34] bradleymeck_: i will deal w/ it but i will bitch
[15:34] mape: bradleymeck_: Thems are teh rules of teh internetz
[15:34] mape: But standards usually pick up
[15:35] bradleymeck_: standards sometimes hurt me, like css :(, and the fact that ecmascript has almost no opponents to their ruling body doesnt make them always thinks well
[15:36] bronson has joined the channel
[15:36] bradleymeck_: i argue w/ them a lot, they tend to just say thems the rules as well, without listening to alternative solutions or commenting on them
[15:36] nefD: dont hate the playa, hate the game
[15:37] bradleymeck_: i do hate the game, but the player wont play w/ anything but himself
[15:37] _announcer: Twitter: "I was not aware that #nodejs wasn't #commonjs compliant http://hns.github.com/2010/07/30/modules.html" -- Matthew Taylor. http://twitter.com/rhyolight/status/20478075098
[15:37] nefD: hahahaha
[15:37] bradleymeck_: its not that im against a "pure" subset, im against a Mode
[15:37] nefD: if only that player would quit playing with himself, he might get something done
[15:38] mape: bradleymeck_: like I said, css is shit, and standard bodies are funny. Either you are in them, or you follow them
[15:38] mape: Of you go crazy and do a parser and make things as good as they can
[15:38] bradleymeck_: or you go off and are ignored ;p
[15:38] jetienne: websocket is possible on google appengine?
[15:38] mape: And with things like css that is like shit....
[15:38] bradleymeck_: i make things, not parsers since i wont beat their speed, jetienne, no
[15:39] mape: bradleymeck_: parsers can be fast enough, if you cache
[15:39] mape: but it still won't fix things that deeply shitty in the lang
[15:39] mape: expressions in css is awsome
[15:39] bradleymeck_: the lexing, hell yea, the code gen, hells bells
[15:39] jetienne: bradleymeck_: ?
[15:39] mape: unless they are implemented like a crack whore
[15:39] bradleymeck_: the deadline on appengine doesnt let you
[15:40] jetienne: bradleymeck_: ok
[15:40] mape: deadline?
[15:40] bradleymeck_: deadline for requests, after given time requests must end depending on what occurs
[15:40] mape: timeout?
[15:41] bradleymeck_: nope, app engine will kill it before then
[15:41] jetienne: socket.io is supposed to fallback on seomthing sensible in this case, correct ?
[15:41] bradleymeck_: you can even be streaming out data when it does it :(
[15:42] robinduckett: @jetienne flash
[15:42] bradleymeck_: i have no clue jetienne, the problem is more your server will kill the stream than the client holding onto it, could have really short long polls
[15:42] robinduckett: sensible
[15:43] bradleymeck_: id suggest a second server honestly to push/pull data to gae if you can
[15:43] tjholowaychuk has joined the channel
[15:43] jetienne: ko
[15:44] jetienne: ok
[15:44] jakehow has joined the channel
[15:45] [[zz]] has joined the channel
[15:51] khug has joined the channel
[15:59] joshbuddy has joined the channel
[16:00] _announcer: Twitter: "@polotek Do you have any thoughts on #nodejs vs #ringojs? I guess if you're on the JVM, ringo is the best SSJS option for CommonJS, eh?" -- Matthew Taylor. http://twitter.com/rhyolight/status/20479775446
[16:02] keeto has joined the channel
[16:04] _announcer: Twitter: "@rhyolight They are very different. #nodejs is raw and needs a framework on top. #ringojs is full stack and stable." -- Marco Rogers. http://twitter.com/polotek/status/20480083604
[16:05] _announcer: Twitter: "@rhyolight Plus #nodejs is all about non-blocking io. everywhere, not just the request level. It lends itself to certain use cases." -- Marco Rogers. http://twitter.com/polotek/status/20480138527
[16:08] hij1nx has joined the channel
[16:08] sechrist: is pkgbackup the only good cydia restore thing?
[16:08] _announcer: Twitter: "Writing async code on top of libeio and exposing it as evented io by node.js feels good man. #node.js" -- Bill Casarin. http://twitter.com/jb55/status/20480359854
[16:08] JimBastard has joined the channel
[16:09] sechrist: err
[16:09] sechrist: wrong chan
[16:10] jetienne: weird dialect
[16:10] jetienne: http://cydia.saurik.com/package/com.pragmatixconsulting.packagebackup got its origin!
[16:11] hij1nx_ has joined the channel
[16:11] sooli has joined the channel
[16:11] sooli: Hi All
[16:11] JimBastard: stupid fucking contractors getting me sick
[16:11] JimBastard: sup sooli
[16:12] sooli: I'm playing with the TCP server
[16:12] sooli: But I have a strange behavior
[16:12] JimBastard: yeah i have the same problem, minus the tcp server part
[16:12] JimBastard: whats the issue?
[16:12] sooli: well; my client is well connected
[16:13] sooli: but wen I do a tcp.write("something")
[16:13] sooli: I have a 4s delay
[16:13] JimBastard: gist?
[16:13] sooli: I'm using Titanium Titanium.Network.TCPSocket
[16:13] JimBastard: can you isolate that the issue is with node?
[16:13] sooli: node.js for the server
[16:13] sooli: Titanium.Network.TCPSocket for the client
[16:14] JimBastard: i'd suggest setting up a simple client using another node script
[16:14] JimBastard: yo hij1nx perfect timing
[16:15] JimBastard: but yeah sooli , i'd setup a simple script to test the connection
[16:15] JimBastard: then i'd gist your code here
[16:15] nefD: wait, jimbastard, wtf are you doing helping people?
[16:15] nefD: i feel like i dont even know you anymore
[16:15] JimBastard: nefD: i help people all the time
[16:15] nefD: LIES
[16:16] nefD: L135
[16:16] JimBastard: i do, you are just not here all the time
[16:16] sooli: JimBastard: http://pastie.org/1079880
[16:16] JimBastard: you know im the most active person in the room
[16:16] JimBastard: http://stats.nodejs.se/
[16:16] JimBastard: also, can anyone explain this, http://github.com/aungkyawsan53
[16:16] nefD: im just joshin' ya <3 <3 ---^--{@
[16:17] JimBastard: why did that guy join github 3 minutes ago to comment on my commit?
[16:17] JimBastard: and say aaaaaaaa
[16:17] JimBastard: yeah sooli i have no idea what Titanium.Network.createTCPSocket("localhost", 8124); is
[16:17] stagas_ has joined the channel
[16:18] sooli: it's a Appcelerator application
[16:18] sooli: but I will try something else
[16:18] JimBastard: sooli: i'd isolate the problem first
[16:19] JimBastard: also hij1nx might be able to help you if he appears / has time. he committed a bunch to the titanium project
[16:20] [[zz]] has joined the channel
[16:20] jesusabdullah: What's the Titanium project?
[16:21] sooli: jesusabdullah: http://www.appcelerator.com/
[16:21] charlenopires has joined the channel
[16:21] jesusabdullah: thx bro!
[16:21] jesusabdullah: :v
[16:21] sooli: this allow you to create webapps for Desktop but mobile devices too
[16:21] matt_c has joined the channel
[16:22] sooli: but the Titanium.Network.TCPSocket don't seems to work well
[16:22] jesusabdullah: MOBILE?! >:O
[16:22] jesusabdullah: ACTION pooh-poos iphones because he doesn't have one
[16:22] sooli: http://pastie.org/1079880 << here my node.js basic server
[16:23] sooli: then I do : tcp = Titanium.Network.createTCPSocket("localhost", 8124); tcp.connect();
[16:23] sooli: then tcp.write("something")
[16:23] BrianTheCoder has joined the channel
[16:23] sooli: my node.js display "something" after few seconds
[16:24] sooli: if the I do cp.write("something2")
[16:24] JimBastard: sooli: for the third time, you have to isolate the issue
[16:24] JimBastard: create a basic tcp socket server / client without titanium
[16:24] sooli: my node;js server display me "2" after few seconds
[16:24] sooli: weird
[16:24] tjholowaychuk: creationix: you here?
[16:25] creation1x: sup tjholowaychuk
[16:25] creation1x: ACTION sees what i did there
[16:25] tjholowaychuk: did this fjakobs guy sign the cla? did you see those patches?
[16:26] eggie5 has joined the channel
[16:27] dmcquay has joined the channel
[16:28] bradleymeck_: in dojo is there just a vertical list widget? im not seeing one in the docs, closest i can see is doing it myself w/ appends
[16:29] JimBastard: phiggins:
[16:29] eggie5: good morning
[16:29] tjholowaychuk: creationix: how goes the game
[16:30] phiggins: JimBastard:
[16:30] JimBastard: in dojo is there just a vertical list widget? im not seeing one in the docs, closest i can see is doing it myself w/ appends
[16:31] sooli: ok It's the Titanium TCPSocket who just sucks
[16:32] JimBastard: there you go
[16:32] JimBastard: now go yell at them
[16:32] twoism has joined the channel
[16:32] sooli: :)
[16:33] joshbuddy_ has joined the channel
[16:33] MrNibbles: whaye
[16:33] MrNibbles: think im ready to submit this :)
[16:33] MrNibbles: http://www.webnibbles.co.uk/dropbox/
[16:33] MrNibbles: click it to randomise!
[16:35] jesusabdullah: MrNibbles: How'd you do that? :o
[16:35] MrNibbles: its based on some c i found a while back, although its very different now!
[16:36] jesusabdullah: Oh, so that's canvas
[16:36] MrNibbles: yeah
[16:36] dgathright has joined the channel
[16:36] jesusabdullah: I didn't know you could bust out the rasters like that
[16:36] jamescarr: cool stuff
[16:36] jesusabdullah: Yeah, way awesome
[16:36] slaskis has joined the channel
[16:36] jesusabdullah: I thought it was a gif at first
[16:36] jesusabdullah: You might be able to get some speed like that, if you can stream a gif
[16:36] jetienne: MrNibbles: find a normal box and look at it. then decide. this is my advice. i think you need to see what most people will see. most people have computers significantly slower than yours :)
[16:36] bradleymeck_: if rasters are done right, they can be fast
[16:37] bradleymeck_: im on a 2 year old comp and its going fine in chrome
[16:37] jesusabdullah: Well, this computer is a netbook
[16:37] jesusabdullah: so almost all client-side rendering of ANY sort is sketchy
[16:37] jamescarr: bradleymeck_, heh, I'm on a 4 year old computer and its running fine
[16:38] jetienne: http://www.chromeexperiments.com/ jesusabdullah look at that, they do fine
[16:38] bradleymeck_: stretch it to fullscreen w/ css inspector!
[16:38] jesusabdullah: Holy shit, the sketchpad actually works
[16:38] jesusabdullah: like, really well
[16:38] jesusabdullah: that's BA
[16:39] MrNibbles: jetienne: thanks, your right, but the peopole testing have decent spec machines :)
[16:39] MrNibbles: so im going to leave it at this
[16:39] MrNibbles: i would have to sacrifice a lot if i was going to get it running a lot better
[16:40] bradleymeck_: stretching to 100% height/width shows slowdown from the scaling
[16:40] jchris has joined the channel
[16:42] jesusabdullah: A "turbo" button for your browser could be useful
[16:44] silentrob has joined the channel
[16:44] astrolin has joined the channel
[16:47] Rixius has joined the channel
[16:47] brianleroux has joined the channel
[16:47] Rixius: anyone know about a YUI compressor or YUI compressor like module for node?
[16:49] aho: jsmin would work
[16:49] aho: it's available as c#, java, js, perl, python... whatever
[16:49] aho: it's the least effective minifier out there though
[16:51] bradleymeck_: i tend to just throw things at the closure compiler's restful api and cache them
[16:55] Rixius: ok thanks for the tips.
[16:55] amerine has joined the channel
[16:56] twoism has joined the channel
[16:56] ceej has joined the channel
[16:57] mattly has joined the channel
[16:58] romainhuet has joined the channel
[16:58] dipser: hi i am trying to serve a json object to one or all clients after it got changed from someone (through button-clicks e.g.), is there an easy way or a tutorial to learn from?
[16:58] deepthawtz has joined the channel
[16:59] cardona507 has joined the channel
[17:00] Rixius: look up long polling or WEb Sockets
[17:00] dipser: i want to "push" the json object... dont know how
[17:01] Rixius: dipser: web sockets are great for modern browsers, gives a socket feel, but Long Polling works all around.
[17:01] dipser: yes i have a long polling, but how can i react to it in node.js?
[17:02] dipser: i tried to modify a script, but it wont work, how i want to
[17:03] dipser: i do a longpoll to /stream an check if the pathname is /stream. so now i can deliver a json object if it is changed
[17:03] dipser: what to do if it is not?
[17:03] mjr_ has joined the channel
[17:03] _announcer: Twitter: "8LU @jsuchy on node.js 2/3: testing - LIVE at http://bambuser.com/v/936352" -- Doug Bradbury. http://twitter.com/dougbradbury/status/20484189805
[17:03] Rixius: you wait on the request untill the object has been fired. you can use the Event Emitter http://nodejs.org/api.html#eventemitter-13 to handle waiting untill it's been changed and firing when it is
[17:04] astrolin has joined the channel
[17:04] technoweenie has joined the channel
[17:06] knuckolls has joined the channel
[17:07] jan247 has joined the channel
[17:07] dipser: Rixius: tried that: http://nopaste.info/914a4df386.html
[17:07] dipser: could you take a look at it? pls
[17:08] rauchg_ has joined the channel
[17:10] Rixius: dipser: i assume you're grabbing http, and url higher in the script?
[17:10] dgathright has joined the channel
[17:11] _announcer: Twitter: "@strangeloop_stl if possible, I'd LOVE to flex my node.js+couchdb muscles for it ;)" -- jamescarr. http://twitter.com/jamescarr/status/20484710661
[17:11] dipser: yes no error - http://nopaste.info/723e060cd9.html
[17:12] tyfighter has joined the channel
[17:13] bradleymeck_: rixius i know socket.io has a flash and longpolling fallback
[17:14] Rixius: dipser maybe you should look into socket.io then
[17:15] Rixius: bradleymeck_: I haven't had a chance to look into socket.io yet >.>
[17:15] bradleymeck_: i just say that cause longpolling has some drawbacks :/ and flash has a slow startup
[17:16] dipser: Rixius: i will look out for it - thx
[17:16] MrTopf has joined the channel
[17:16] rsms has joined the channel
[17:17] jakehow has joined the channel
[17:17] qFox has joined the channel
[17:17] dipser: i just thought it would be better not to use websocket
[17:18] dipser: if i want to reach some more ppl
[17:18] dipser: and flash... urgs
[17:19] jesusabdullah: socket.io!
[17:20] eggie5 has joined the channel
[17:20] caolanm has joined the channel
[17:21] Blink7 has joined the channel
[17:22] megan has joined the channel
[17:23] megan: hi friends
[17:23] WALoeIII has joined the channel
[17:23] silentrob: Hi Megan
[17:23] megan: hi silentrob
[17:23] megan: do you use express? :)
[17:23] silentrob: nope
[17:23] hij1nx: JimBastard: whats up bastard ===)
[17:23] megan: ejs?
[17:24] silentrob: yes
[17:24] Rixius has left the channel
[17:24] megan: mines keeps trying to parse a file called layout.ejs o_O
[17:24] mAritz: megan: express uses layout files
[17:24] tjholowaychuk: megan: thats the view engine in express..
[17:25] ashleydev: megan it assumes you have a template for your header & footer type thing
[17:25] ashleydev: but you can turn it off
[17:25] megan: ohya?
[17:25] tjholowaychuk: megan: if you dont want to use layouts ever (or infrequently) set app.set('view options', { layout: false });
[17:25] tjholowaychuk: which can be further overridden at the render() level as well
[17:25] _frankie has joined the channel
[17:25] ashleydev: express FTW
[17:25] megan: hey thanks! I had a file called layout.css, so I was really confused
[17:26] tjholowaychuk: layout.css??
[17:26] tjholowaychuk: hm
[17:26] megan: yeah, and I thought it was trying to load that or something
[17:26] tjholowaychuk: nope
[17:26] ashleydev: megan: if you see how a default express project works (by just typing `express default`) then you'll see how the layouts work
[17:26] megan: Thanks Ashley
[17:26] ashleydev: megan search for 'body'
[17:27] megan: type it in where?
[17:27] tjholowaychuk: i should probably add some options for the app generation
[17:27] tjholowaychuk: megan: in the terminal, $ express foo
[17:27] ashleydev: megan how did you get express?
[17:27] tjholowaychuk: will create an app at ./foo
[17:27] megan: npm
[17:27] rauchg_: how did you get npm ?
[17:27] ashleydev: then you should have `express` in your path
[17:27] megan: compiled from source
[17:27] ashleydev: do you?
[17:27] tjholowaychuk: so $ express foo && cd foo && node app.js
[17:27] rauchg_: how did you get the source?
[17:27] ashleydev: :P
[17:27] megan: wget
[17:27] _announcer: Twitter: "More upbeat thought. Much non-work fun to be had with various v8 based tools http://github.com/philogb/v8-gl and http://nodejs.org/" -- stuntprogrammer. http://twitter.com/stuntprogrammer/status/20485800895
[17:28] megan: ;D
[17:28] rauchg_: story checks out.
[17:28] megan: lol
[17:28] rauchg_: haha
[17:28] rauchg_: :P
[17:28] ashleydev: did you find the express script?
[17:28] megan: yeah, so I can copy that and have a project template?
[17:28] ashleydev: no
[17:28] ashleydev: run it
[17:28] ashleydev: and give it the name of your project
[17:29] ashleydev: `express `
[17:29] megan: ohhh. it made all those files in my folder
[17:29] ashleydev: yes
[17:29] ashleydev: now you can run app.js
[17:29] megan: I didn't even realize it made a mess
[17:29] tjholowaychuk: lol
[17:29] ashleydev: and you can search for body under there and see how templating works
[17:29] megan: this is good stuff
[17:29] ashleydev: ok afk...
[17:30] ashleydev: have fun
[17:30] twoism has joined the channel
[17:30] mattly has joined the channel
[17:30] rauchg_: tjholowaychuk: fully agree with your bodydecoder comments
[17:30] megan: so................... now to figure out how the routing works
[17:30] pengwynn has joined the channel
[17:30] rauchg_: if we do buffering there, we pretty much give no power to routes to access the streams
[17:31] tjholowaychuk: yeah exactly
[17:31] rauchg_: and that's the best thing about node right there :P
[17:31] tjholowaychuk: I had some wine in me, well a lot but pretty sure it made sense lol
[17:31] skampler has joined the channel
[17:31] gf3 has joined the channel
[17:31] zemanel has joined the channel
[17:31] sveisvei: tjholowaychuk: Do you know if anyone has started a "admin"-module for express?
[17:32] femtoo has joined the channel
[17:32] nefD: autocompletion popups in vim = rad
[17:32] sveisvei: tjholowaychuk: or you have plans for it :P
[17:32] tjholowaychuk: sveisvei: not sure, I dont think anything open source
[17:32] astrolin has joined the channel
[17:32] tjholowaychuk: perhaps
[17:32] tjholowaychuk: lol
[17:35] saikat has joined the channel
[17:36] ryah: tjholowaychuk: can you rebase your patches
[17:36] ryah: they're not applying cleanly
[17:37] megan: ugh, it's still trying to load layout.ejs. There's no stopping this thing
[17:38] bradleymeck_: is there a way to hook onto http server a callback when http parsing fails and you get the buffered stream (if it is buffered) (make it act like a net.Server on error?)
[17:39] tjholowaychuk: ryah: will do, i think felix snuck one in there first
[17:39] tjholowaychuk: megan: and you have app.set('view options', { layout: false }) ?
[17:40] megan: correct
[17:40] tjholowaychuk: megan: hm, let me verify, I have that tested but I will double check
[17:41] megan: it seems like pastebin is extra slow today
[17:41] megan: http://pastebin.com/eP1Szspg
[17:41] megan: .com works
[17:42] megan: is this part of express or ejs?
[17:43] paul___ has joined the channel
[17:43] pgriess has joined the channel
[17:43] tjholowaychuk: megan: express. im just fixing some node patches but i will get to you right away
[17:43] megan: that's so kewl :D
[17:44] megan: take that Microsoft
[17:47] grahamalot has joined the channel
[17:47] tk: great, water heater is busted/dying
[17:48] davidc_ has joined the channel
[17:48] davidc_: Ahh hey all ;)
[17:48] b_erb has joined the channel
[17:48] tjholowaychuk: ryah: should be ok now i think http://github.com/visionmedia/node/commits/console
[17:48] davidc_: Is there a way to load an external script from within a node?
[17:48] davidc_: say like I'd do with
[17:49] sveisvei: Yes, but why :P
[17:50] tjholowaychuk: megan: what is this :file you are rendering?..
[17:50] tjholowaychuk: megan: render is strictly for template engines, not css or things like that
[17:50] nrstott has joined the channel
[17:50] nrstott has joined the channel
[17:50] sveisvei: http://nodejs.org/api.html#script-97
[17:51] davidc_: sveisvei, is that for me?
[17:51] jesusabdullah: davidc_: Looks like it
[17:51] dmcquay has joined the channel
[17:52] davidc_: grand job, time to look into that and try it :)
[17:52] davidc_: cheers
[17:52] megan: ya
[17:52] megan: sorry tj
[17:53] megan: :file would be index.ejs
[17:53] megan: I just was doing something generic
[17:53] megan: to play around :)
[17:53] astrolin_ has joined the channel
[17:53] davidc_: jesusabdullah, sveisvei and you reckon I could load a remote file over http?
[17:54] davidc_: say I'd like to try using the google ajax apis through node.js
[17:54] megan: tjholowaychuk:
[17:54] tjholowaychuk: megan: typically you would do something like app.get('/, ...) with a res.render('index.ejs, ...), but i will verify in a second that layout: false should work
[17:54] tjholowaychuk: globally
[17:54] davidc_: Might be completely off base but I'm looking in the possibilities..
[17:54] tjholowaychuk: megan: hm yah it does work for me
[17:55] tjholowaychuk: megan: line 379 of ./test/view.test.js
[17:55] jesusabdullah: davidc_: Maybe. I'm not really familiar with thise. What do you mean? Is this a library or a service?
[17:55] megan: it works for you?
[17:56] davidc_: Just say, I want to load a remote javascript file, I'm looking if I could do new Script('...', 'http://remote.com/file.js');
[17:56] tjholowaychuk: megan: yup
[17:56] davidc_: sounds quite far-fetched tbh
[17:56] jesusabdullah: I don't think so. I'd think you would have to download the file first, probably through an http request
[17:56] megan: tjholowaychuk: http://pastebin.com/DqnRxe7y
[17:57] davidc_: yeah but they load a bunch of other files through some random xhr calls
[17:57] davidc_: hmm
[17:57] megan: can you look at this? it's just a basic example
[17:57] jpld has joined the channel
[17:57] megan: it's still trying to load layout.ejs
[17:57] jesusabdullah: davidc_: Look into github.com/tempvar/jsdom
[17:57] jesusabdullah: davidc_: A lot of client-side code assumes you have the DOM
[17:57] cardona507 has joined the channel
[17:57] megan: did I spell something wrong maybe?
[17:58] davidc_: jesusabdullah, yeah good point... client side js...
[17:58] devtime has joined the channel
[17:59] tjholowaychuk: megan: you dont need the self-calling setup func, but try moving the server.set() calls above the route, shouldnt matter but maybe
[17:59] megan: nope, nothing
[17:59] jesusabdullah: davidc_: I once looked into running raphael on the server side. Let's just say it didn't work out. :)
[18:00] davidc_: hahaha
[18:00] megan: maybe I am out of date?
[18:00] davidc_: I can imagine this being quite the bitch alright :)
[18:00] davidc_: Especially rafael
[18:00] mjr_: The node channel is so popular now. If I walk away from my computer, I pretty much don't bother reading the scrollback.
[18:00] jesusabdullah: Yeah XD
[18:00] megan: express-1.0.0rc
[18:00] sveisvei: mjr_: blasphemy!
[18:00] jesusabdullah: mjr_: Same here. Though, I'm sure I'm a significant part of that scrollback
[18:00] megan: tjholowaychuk what do you have against namespaces? 8)
[18:00] sveisvei: mjr_: Read. Every. Word.
[18:00] mcarter has joined the channel
[18:01] ajpiano has joined the channel
[18:01] tjholowaychuk: megan: you dont need them with the module system
[18:01] megan: LoL, but I want to grow
[18:01] mjr_: I'm guilty of contributing big chunks of text myself, but I used to read everything, and I just noticed that I don't.
[18:01] jesusabdullah: Do you guys know about a good xml-rpc implementation for node?
[18:01] eggie5_ has joined the channel
[18:01] jesusabdullah: I'm thinking about trying to do rpcs with matlab
[18:01] devtime: I've just installed express with "sudo npm install express" but "express" isn't found anywhere on my path - what did i do wrong?
[18:01] jesusabdullah: devtime: Did the logs say anything interesting?
[18:01] tjholowaychuk: megan: i dont know man, I changed the ./examples/ejs/app.js example to have the global layout: false and it works fine
[18:02] jesusabdullah: devtime: pastie that shit
[18:02] tjholowaychuk: devtime: shouldnt need to sudo
[18:02] megan: I guess I am just a bad person tj :(
[18:02] _announcer: Twitter: "Research tonight: Finding out if I can interact with google jsapi from #node.js" -- David Coallier. http://twitter.com/davidcoallier/status/20487992267
[18:02] tjholowaychuk: megan: not sure what is going on there :s it looks fine at a glance
[18:02] sveisvei: devtime: require('express') fails?
[18:02] tjholowaychuk: megan: maybe try picking one of the examples and work from that
[18:02] davidc_: jaysus that bot freaked me out
[18:02] jesusabdullah: devtime, tjholowaychuk: I've been installing as sudo, outta habit
[18:02] tjholowaychuk: ADSFasdfkjsdf
[18:02] tjholowaychuk: lol
[18:02] jesusabdullah: haha!
[18:02] megan: my computer doesn't do sudo :(
[18:02] hansek has joined the channel
[18:03] brianmario has joined the channel
[18:03] kriskowal has joined the channel
[18:03] megan: she's not smart enough
[18:03] jesusabdullah: by sudo I mean su -c''
[18:03] kriskowal has joined the channel
[18:03] jesusabdullah: what sorta setup you got megan?
[18:03] jesusabdullah: <--fedora 12
[18:03] megan: debian something
[18:03] devtime: so, all npm packages should be installed without sudo?
[18:03] jesusabdullah: ah :D
[18:03] megan: none of this ubuntu nonsense the kids are toying with
[18:04] jesusabdullah: devtime: You *can* install with sudo, but you don't *have* to, and if you're the only one that needs the node stuff there isn't a particularly good reason to use sudo.
[18:04] devtime: ok, i'm gonna do it all over again, then
[18:04] jesusabdullah: devtime: Chances are, sudo isn't your problem. THOUGH, I have had that issue in the past with cabal installs (haskell pm)
[18:04] megan: maybe you have the wrong time set for your system?
[18:04] jesusabdullah: devtime: Definitely copy-paste lolgs
[18:04] megan: devtme
[18:04] megan: what does date say?
[18:05] devtime: k. will paste anyway
[18:05] devtime: date.. lets see
[18:05] devtime: Fri Aug 6 19:05:12 WEST 2010
[18:05] megan: looks good to me ;D
[18:05] megan: well I'm out of ideas
[18:05] devtime: :)
[18:05] megan: I installed mines as root
[18:05] devtime: i'll paste logs
[18:06] jesusabdullah: devtime: isaacs is AWESOME about dealing with npm-related issues, so y'know.
[18:07] megan: yeah, isaacs saved my life
[18:07] megan: he told me to fix my date
[18:07] jesusabdullah: hah :D
[18:07] megan: that was my problem with npm :P
[18:07] devtime: jesusabdullah: by log, you mean the output on the shell console?
[18:07] devtime: or some other log .. file?
[18:08] jesusabdullah: devtime: The shell output
[18:08] devtime: k
[18:08] jesusabdullah: the npm OK! stuff
[18:09] megan: in purple and red
[18:09] megan: where did you get npm?
[18:09] devtime: http://gist.github.com/511712
[18:10] megan: so you compiled it?
[18:10] devtime: hmm, strangely enough the last line " ok " sth it not on the iTerm window anymore, but npm returned "ok"
[18:11] devtime: npm, let's see.. cant remember!
[18:11] mjr_: We need to clone isaacs, or at least get somebody else who deeply understands npm so we don't have a single point of support.
[18:11] devtime: it was some weeks ago
[18:11] megan: rm -rf isaacs
[18:11] megan: err
[18:11] megan: I meant cp
[18:11] megan: sorry :)
[18:12] megan: he's gone
[18:12] devtime: npm was installed with this: curl http://npmjs.org/install.sh | sudo sh
[18:12] nano` has joined the channel
[18:12] devtime: :D
[18:13] nano`: is node the right thing for building a plain http web app? also, what's used for persistence/database?
[18:13] derferman has joined the channel
[18:13] nrstott: nano`, it is if you're adventurous :)
[18:14] mjr_: or if you are awesome
[18:14] nrstott: you can use couchdb, mongo, mysql, postgres... as long as it doesn't have to be production quality today, youve got lots of choices
[18:14] joshbuddy has joined the channel
[18:14] devtime: without the "sudo" part, I got a permission error, so..
[18:14] nano`: which of those db's is the best fit for node?
[18:15] voxpelli has joined the channel
[18:15] omarkj: It's more what kind of DB is the best fit for your project.
[18:15] astrolin has joined the channel
[18:15] aurynn: some projects work great with document stores. others require a rdbms
[18:16] nano`: indeed, I was just wondering if there's one that fits the node philisophy the closest
[18:16] omarkj: Not really, not, but the libs are of different quality.
[18:17] devtime: jesusabdullah: any clues?
[18:17] jesusabdullah: devtime: Sorry, I missed it
[18:17] jesusabdullah: devtime: I'm working!
[18:17] devtime: k
[18:17] omarkj: I'm quite happy with Mongo for this app I'm working on. But that because it's a fit for the data. :)
[18:17] devtime: no problem. i think i'll reinstall everything again, without sudo
[18:18] mjr_: nano`: I find that CouchDB works in a very node-like way because you talk to CouchDB only with HTTP.
[18:18] jesusabdullah: Huh--no eventual "ok"
[18:18] devtime: jesusabdullah: ah, sorry. i tought u meant u didnt find anything unusual
[18:18] jesusabdullah: devtime: Nothing obvious on my end
[18:18] programble has joined the channel
[18:19] jesusabdullah: devtime: though I thought npm would've thrown out an "OK things installed" message
[18:19] mjr_: nano`: there are node libraries for talking to many databases, including couch, but with couchdb you don't even need a library if you want.
[18:19] nano`: I see
[18:19] devtime: jesusabdullah: oddly enough, iTerm didnt have the last part of the output, but there was the last "ok" - I remember that
[18:19] siculars has joined the channel
[18:20] mjr_: nano`: what are you going to build?
[18:20] jesusabdullah: devtime: Huh! Weird
[18:20] omarkj: mjr_: Then you could just as well use Couch for the whole shebang.
[18:20] omarkj: :)
[18:20] jesusabdullah: devtime: Maybe it just fell outta your path somehow. Can you use other things that you installed with npm?
[18:20] trentm has joined the channel
[18:21] mjr_: omarkj: indeed you can use couch for a lot of things that typically would require writing "middleware".
[18:21] _announcer: Twitter: "i wish node.js got rid of the new operator" -- skim. http://twitter.com/skim/status/20489134832
[18:21] omarkj: It's kind of interesting. I haven't looked at it much.
[18:21] devtime: jesusabdullah: i'll try without sudo, see what happens..
[18:21] jesusabdullah: devtime: Alright, gluck!
[18:21] tk: wouldnt that be V8's job since its what implements the JS part of Node?
[18:21] devtime: jesusabdullah: thx :)
[18:21] mjr_: nano`: for a super simple, purely node-based way to store data, you can use nStore.
[18:23] omarkj: mjr_: Thanks, I didn't event know that existed.
[18:23] nano`: mjr_ I'm a fan of JS and I wanted to try making a http web app with node
[18:25] devtime: jesusabdullah: dont know if u understood me.. but, before, when u said u "missed it", i thought u meant u didnt find any clues.. sorry, i'm not a native english speaker myself. k, back to installing :)
[18:25] jesusabdullah: devtime: Oh! Well, I guess that's true too ;)
[18:25] jesusabdullah: devtime: Where are you from?
[18:25] silentrob has joined the channel
[18:25] devtime: Portugal - know where it is? ;)
[18:26] jesusabdullah: Yeah >:P My geography isn't THAT bad XD
[18:26] devtime: :D
[18:26] omarkj: I'm tempted to make an Arrested Development quote.
[18:26] jesusabdullah: Go for it imo
[18:26] devtime: it's a small country, so.. eh eh
[18:27] jesusabdullah: On the other hand, look at portugal's effect on South America
[18:27] mjr_: nano`: you have a lot of choices for how to do things. You can use some frameworks like geddy or express, or you can just code things up yourself.
[18:27] jesusabdullah: Brazil speaks portuguese, after all
[18:27] devtime: yes, our brothers :)
[18:27] _announcer: Twitter: "Impressed with the quality of code being written for node.js. Here's a GraphicsMagick library: http://aheckmann.github.com/gm/" -- Ben Aτkin. http://twitter.com/benatkin/status/20489541613
[18:27] technoweenie: dont tempt us with arrested development quotes
[18:27] technoweenie: just spit it out damnit
[18:28] nano`: mjr_ how stable is node as a http server? I'm used to web server and cgi being separate concerns
[18:28] omarkj: Hm. Portugal. So he's going to South America!
[18:28] omarkj: It found it hilarious.
[18:29] mjr_: nano`: node provides a very low level interface. It is generally very fast and stable, but because it is low level, it can be difficult to get started with.
[18:29] devtime: omarkj; u mean me? no, quite happy near the sea.. 5 min from the beach.. 30 mins from Lisbon :)
[18:30] mjr_: node's bare interface is a lot more like writing, say, an Apache module than writing a PHP program.
[18:30] jesusabdullah: Ah, the beach!
[18:30] devtime: :)
[18:30] devtime: pity the summer isn't what it used to be
[18:30] jesusabdullah: I live hundreds of miles from anything resembling a beach
[18:30] omarkj: That's lovely. I live near to a beach as well. We heat it up with hot water.
[18:31] jesusabdullah: most of the seashores even relatively nearby are cold and rocky
[18:31] omarkj: It's still in the sea. We just pump hundreds of liters of hot water in it a day.
[18:31] jesusabdullah: THOUGH apparently my dad found some wooly mammoth fossils on the beach near Kotzebue
[18:31] devtime: omarkj: for real?
[18:31] omarkj: devtime: Yup, yup.
[18:31] jesusabdullah: omarkj: Where is this?
[18:31] devtime: jesusabdullah: that's cool
[18:32] omarkj: jesusabdullah: Reykjavík, Iceland.
[18:32] jesusabdullah: ACTION pretends "hot water" means "crude oil"
[18:32] omarkj: Haha.
[18:32] jesusabdullah: That's how WE roll
[18:32] aurynn: I keep wanting to live in Reykjavik.
[18:32] nano`: mjr_ cool, that sound exciting. I think you've convinced me to give this a try :) I've read about Connect, what does it do exactly? what is meant by "middleware" here?
[18:32] omarkj: aurynn: Lots of cheap housing!
[18:32] omarkj: If you're willing to be in suburbia that is. I'm not.
[18:33] webben: nano`: FWIW Ryan (lead dev on node) recommends not relying on it to be stable yet.
[18:33] aurynn: omarkj, I prefer to live in the middle of the city
[18:33] mjr_: nano`: it's something in the middle between code you want to write and the rest of node. Like a higher level interface.
[18:33] webben: certainly the api seems to change frequently.
[18:33] webben: nano`: But you could put a bunch of node instances behind a (stable) nginx server
[18:33] webben: nano`: citation: http://www.yuiblog.com/blog/2010/05/20/video-dahl/
[18:33] mjr_: Yeah, ryah has said many times that node is not stable and it probably has bugs and security holes. That said, many of us run it live on port 80.
[18:34] ngw has joined the channel
[18:35] astrolin has joined the channel
[18:38] joshbuddy_ has joined the channel
[18:39] voxpelli-laptop has joined the channel
[18:39] podman: i run it live on port 80 :(
[18:39] podman: so far it's only crashed once
[18:39] podman: yay.
[18:40] dgathright has joined the channel
[18:40] Omni5cience has joined the channel
[18:42] jchris has joined the channel
[18:42] devtime: if I uninstall npm, do the packages get uninstalled too?
[18:43] eczarny has joined the channel
[18:43] sh1mmer has joined the channel
[18:44] eczarny has left the channel
[18:45] Tobsn has joined the channel
[18:48] tjholowaychuk: ryah: let me know if those console patches for some reason dont apply properly, they seem fine against HEAD now after the rebase
[18:48] ashleydev has joined the channel
[18:48] ewdafa has joined the channel
[18:49] _announcer: Twitter: "Node.js on the train. :) http://moby.to/mbur3m" -- Jeff Kreeftmeijer. http://twitter.com/jkreeftmeijer/status/20490839865
[18:51] Omni5cience has joined the channel
[18:51] John9e9 has joined the channel
[18:52] devtime: ah, damnit.. now npm doesn't uninstall connect! log: http://gist.github.com/511779
[18:53] huyhong has joined the channel
[18:53] nano`: mjr_ webben thanks a lot for the help and advice, I think you'll be seeing more of me in this channel soon :)
[18:53] rnewson has joined the channel
[18:53] rnewson has joined the channel
[18:53] huyhong has left the channel
[18:53] devtime: ..no more packages to uninstall, except npm itself
[18:53] devtime: already uninstalled express
[18:53] devtime: ..but npm keeps saying it's there!
[18:54] jesusabdullah: :S
[18:54] tjholowaychuk: lol
[18:54] teemow has joined the channel
[18:54] devtime: yeah, some weird stuff happening..
[18:54] tjholowaychuk: you might want to rm -fr ~/.node_libraries or something, npm seems to not play nice with manual installs or something sometimes
[18:54] dylang has joined the channel
[18:55] devtime: tjholowaychuk: thx, gonna try that
[18:55] wattz: go go go repo!
[18:55] wattz: technoweenie: you around?
[18:55] technoweenie: yea
[18:55] wattz: sup dude
[18:55] jchris has joined the channel
[18:56] dylang has joined the channel
[18:58] technoweenie: not much
[18:59] devtime: tjholowaychuk: ~/.node_libraries is gone. anything more to uninstall npm?
[18:59] wattz: technoweenie: are you @technoweenie on twitter?
[18:59] technoweenie: yea
[18:59] devtime: ..besides: sudo npm uninstall npm ?
[18:59] astrolin has joined the channel
[18:59] tilgovi has joined the channel
[19:00] bradleymeck_: dont forget his evil twin weenietechno, i hear hes a great singer
[19:00] _announcer: Twitter: "Node.js, is this the next big thing? http://bit.ly/clMNyj <- I really think that js-everywhere could be "one" future" -- Hernan Garcia. http://twitter.com/theprogrammer/status/20491533040
[19:01] devtime: eh, "sudo npm uninstall npm" won't work :
[19:01] wattz: technoweenie: i threw you a follow, we have a common thread.. do you work with github or just know kyle?
[19:01] technoweenie: both, do you know kyle too?
[19:01] wattz: yeah, i talked to him a bit
[19:01] wattz: Mike Rundle is friends with him, and mike and I are really good friends
[19:02] wattz: talked to kyle a bit about a github app i was writing using the apis
[19:02] technoweenie: i dont know mike
[19:02] technoweenie: cool
[19:02] JimBastard has joined the channel
[19:02] khug has joined the channel
[19:03] technoweenie: if you need anything w/ the api, http://support.github.com/discussions/api it could use a fair amount of work :)
[19:03] JimBastard: hrmm no npm package for wheat
[19:03] JimBastard: and its repo is missing the install.sh file
[19:04] wattz: technoweenie: gotcha
[19:05] wattz: i was just going to hook in a small os x app for the issues and updates using growl
[19:06] trentm has left the channel
[19:06] trentm has joined the channel
[19:06] kevm__ has joined the channel
[19:06] hansek has joined the channel
[19:07] khug has left the channel
[19:07] devinus: who's doing work on console.* ?
[19:07] wattz: ok, mde..
[19:08] wattz: i put the early EARLY source for Cargo (mysql driver for node) on github... HAPPY?!
[19:08] wattz: anyone who wants to make fun of me or rip me appart, you can visit http://github.com/wess/Cargo
[19:08] bradleymeck_: mmmm, is there an easy way to sandbox a repl? i could just pass global and then eval a script that will clean up the globals to hide i guess
[19:08] maushu has joined the channel
[19:08] wattz: not a lot there right now, and will add some nice docs eventually
[19:09] devinus: is anybody working on a better node REPL with autocomlete etc?
[19:10] bradleymeck_: devinus, not to my knowledge, no autocomplete
[19:10] bradleymeck_: wed need a full on js parser in it, which while we have, idk if it is suited for partials
[19:10] devinus: bradleymeck_: wait what!? where's a full on js parser ?
[19:11] bradleymeck_: pegjs
[19:11] devinus: bradleymeck_: nah...doesnt parse JS well yet :(
[19:11] bradleymeck_: we had someone write a full js to coffeescript in it, id say thats good enough
[19:11] devinus: doesnt parse jquery
[19:11] bradleymeck_: forget who that was
[19:11] trentm has joined the channel
[19:11] mjr_: devinus: how would you get the list of symbols for autocomplete?
[19:12] bradleymeck_: jquery, what do you mean, jquery is just JS?
[19:12] mjr_: How does the WebKit inspector console thing do it?
[19:12] devinus: mjr_: i'd just have a simple list myself
[19:12] devinus: of JS and node keywords
[19:12] devinus: bradleymeck_: it's sort of the golden standard for JS parsers
[19:12] bradleymeck_: it backtracks to start of symbol and then runs a completer
[19:12] bradleymeck_: jquery isnt a parser
[19:12] mjr_: Yeah, I guess that'd be a good start, but not the thing that'd be most useful.
[19:12] devinus: standard test*
[19:12] devinus: bradleymeck_: i meant test
[19:13] devinus: sorry
[19:13] devinus: also
[19:13] bradleymeck_: im not understanding still, it grabs the full ast of it to my knowledge
[19:13] devinus: indentation
[19:13] devinus: auto brackets
[19:13] creationix has joined the channel
[19:13] devinus: stuff like that
[19:13] mjr_: bradleymeck_: what does "runs a completer" mean? How do you get a list of symbols in the current scope?
[19:14] devinus: bradleymeck_: it can't parse jQuery is all im sayin
[19:14] bradleymeck_: i think we are talking about diff stuff dev, completer just chains keys together, and its using global scope to my knowledge (window in browser)
[19:14] bradleymeck_: devinus, it gives you a full parse tree
[19:14] bradleymeck_: it doesnt execute it
[19:14] devinus: right
[19:14] devinus: i understand that
[19:15] bradleymeck_: so it does parse it
[19:15] bradleymeck_: just doesnt exec it
[19:15] devinus: some JS i'm sure it can parse
[19:15] devinus: just not jquery source
[19:15] devinus: in particular, this http://code.jquery.com/jquery-1.4.2.js
[19:16] bradleymeck_: if you tell me what the parse tree is missing i might be able to help then
[19:16] devinus: mjr_ as in fs.[TAB] gives a list of all the exports in fs?
[19:16] devinus: that'd be cool
[19:16] mjr_: I see how that could work
[19:16] ryah: tjholowaychuk: i'm going to leave out the group and time ones
[19:16] devinus: bradleymeck_: i'll give you the exception
[19:17] ryah: tjholowaychuk: i don't want this console thing getting too huge...
[19:17] ryah: tjholowaychuk: i'd really like it to properly parse the %s stuff
[19:17] astrolin has joined the channel
[19:17] trentm: devinus: I'd be willing to help on autocomplete for the repl
[19:18] mjr_: devinus: I also see how to complete global names, but if you have "var abcd = 1;" and then start do ab, you'd expect it to auto-complete that local variable abcd.
[19:18] ryah: tjholowaychuk: i'd also like to move console into an external lib/console.js (or something)
[19:18] ryah: tjholowaychuk: and just define a getter in src/node.js
[19:18] devinus: mjr_: doesnt sound to hard, huh? :)
[19:18] creationix: ryah: shouldn't we move most everything into it's own module
[19:18] creationix: keep node.js small
[19:18] creationix: I mean src/node.js
[19:18] ryah: i think module.js should be moved back into src/node.js
[19:19] ryah: doesn't seem to make sense having it out there
[19:19] creationix: yeah, that one is kinda special
[19:19] bradleymeck_: if you do wanna grab locals there is a hack to do it i posted a long time back using the v8 debug api
[19:19] creationix: ryah: or keep it in a seperate file, but in the src folder, not as a module
[19:19] ryah: we desperately need a better benchmark system
[19:20] ryah: so we can actually measure startup time
[19:22] creationix: ryah: why does startup time matter. Not that I'm complaining, just wondering
[19:22] trentm: devinus: do you the mechanism for handling that you would use? I'm no expert on readline
[19:22] creationix: do people want to use node CGI style?
[19:22] devinus: i'd prolly use libedit
[19:22] JRCARR2 has joined the channel
[19:22] devinus: and just expose a few functions to JS and just use JS for the real stuff
[19:22] JRCARR2: heh... theres a few people idling in #nodejs on accident ;)
[19:22] rnewson has joined the channel
[19:23] trentm: yah, absolutely do all the introspection in js
[19:23] trentm: it's the libedit hookup that I'd have difficult getting setup
[19:23] trentm: after that I think it'd be smooth sailing (relatively)
[19:23] devinus: yeah i'm slow in C/C++ since i stopped programming everyday in them a few years back
[19:23] devinus: too much context switching
[19:24] coobr has joined the channel
[19:24] devinus: alright...let's think of a name...
[19:24] devtime: ok, installing npm the "simple" way, I get a permissions error -- do I have to change the default /usr/local permissions on MacOSX for npm's install to work? log here: http://gist.github.com/511835
[19:24] trentm: in python-land a popular super-repl is called "ipython"
[19:24] trentm: not sure "inode" is a great name :)
[19:25] devinus: ACTION comes from python too :P
[19:25] JRCARR2: out of curiosity, anyone have any luck installing node.js on windows yet?
[19:25] knuckolls has joined the channel
[19:25] JRCARR2: I tried to on cygwin and have failed utterly
[19:25] devinus: trentm: that would have shitty googlability, inodes are used all over the place for filesystems
[19:26] trentm: exactly
[19:26] bradleymeck_: mmmm, do websocket requests not give out cookies?
[19:26] devinus: trentm: oh oops lol read your sentence wrong
[19:27] trentm: node-repl2 is boring
[19:27] devinus: i'm naming it nippl
[19:27] jesusabdullah: ipython is pretty sweet
[19:27] jesusabdullah: but it's honestly a bit OP
[19:28] bradleymeck_: how can i do session sharing w/ basic http over websockets, chrome doesnt seem to send the cookies?
[19:28] mikeal has joined the channel
[19:28] trentm: heh
[19:28] jesusabdullah: They're aiming to make something that can take the place of matlab's interface, imo
[19:28] jesusabdullah: which is cool, but I don't really need built-in interactive parallelization tools, for example
[19:28] ryah: ACTION is moving moulde.js back into src/node.js
[19:28] trentm: jesusabdullah: yup, agreed
[19:28] devinus: jesusabdullah: yeah, i have no fucking clue why they went where they;re going now
[19:29] ryah: creationix: web apps aren't the only use-case
[19:29] jesusabdullah: I think I get it
[19:29] ryah: start up time is important
[19:29] ryah: e.g. cli things
[19:29] creationix: ryah: ok, so for quick utilities
[19:29] creationix: that makes sense
[19:29] jesusabdullah: It's just not really the way I like to think about things
[19:29] jesusabdullah: (that said, I still use ipython)
[19:29] trentm: devinus: is that going to be here: http://github.com/devinus ?
[19:30] devinus: trentm: yeh
[19:31] devinus: node.js interactive, pretty printing loop
[19:31] devinus: nippl
[19:31] sveimac has joined the channel
[19:32] jesusabdullah: hah
[19:32] V1_ has joined the channel
[19:32] jesusabdullah: cute :D
[19:32] JimBastard: devinus: double rainbow?
[19:32] devtime: what permissions do you guys have on /usr/local ?
[19:32] devinus: ACTION enjoys naming things that make developers sound like schoolboys around management
[19:33] JimBastard: http://maraksquires.com/doublerainbow/
[19:33] jesusabdullah: The killer feature with ipython for me is the quick docstring help
[19:33] devinus: jesusabdullah: mine too
[19:33] devinus: i like doing fs.readFileSync?? and seeing it's code
[19:34] jesusabdullah: Yeah
[19:34] jesusabdullah: Definitely cool stuff there
[19:34] jesusabdullah: hehe, zhe double rainbow
[19:34] pkrumins: check this out guys -- http://i.imgur.com/FALEa.gif -- a gif-cast (like screencast) that I made with node-gif library (AnimatedGif class).
[19:34] devtime: gotta run. bbl
[19:34] CIA-77: node: 03Tj Holowaychuk 07master * re15221a 10/ src/node.js : (log message trimmed)
[19:34] CIA-77: node: console formatter appends extra arguments
[19:34] CIA-77: node: This makes the console methods more "browser-like",
[19:34] CIA-77: node: for example:
[19:34] CIA-77: node: console.log("foo", "bar", "baz");
[19:34] CIA-77: node: // foo bar baz
[19:34] CIA-77: node: but still works with formatting
[19:34] CIA-77: node: 03Tj Holowaychuk 07master * ra8e1e8d 10/ src/node.js : Added console.{time,timeEnd}() - http://bit.ly/cURVtd
[19:34] CIA-77: node: 03Tj Holowaychuk 07master * re8795ce 10/ src/node.js : Added console.trace() - http://bit.ly/aESoN4
[19:34] CIA-77: node: 03Ryan Dahl 07master * rd408de8 10/ (4 files in 3 dirs): Remove module.js - put code into src/node.js - http://bit.ly/dl1YoX
[19:35] JimBastard: pkrumins: thats bad ass
[19:35] JimBastard: do you have the demo code you used?
[19:35] V1_: Did anyone of you ever see node emit the following error : " self.fd = socket(self.type); Error: EMFILE, Too many open files" , I receive this message when i AB my server
[19:35] dgathright has joined the channel
[19:35] JimBastard: V1_: hrmmm, maybe you have too many open files?
[19:36] nefD: pkrumins: That is pretty boss.
[19:36] V1_: ACTION does a drumm roll.
[19:36] V1_: JimBastard: Not really :p
[19:36] ashleydev has joined the channel
[19:36] cardona507 has joined the channel
[19:36] JimBastard: V1_: are you opening files?
[19:36] V1_: Nope
[19:36] JimBastard: you sure
[19:37] JimBastard: i dunno if i believe you
[19:37] V1_: What i'm doing is create a TCP connection to a memcached server, write a command, and check the returned value
[19:37] stagas has joined the channel
[19:37] V1_: No writing happing what so ever.
[19:37] bradleymeck_: mikeal ping
[19:37] JimBastard: i have no clue V1_
[19:37] rauchg_: V1_:
[19:37] rauchg_: you should use a client pool maybe
[19:37] V1: I have
[19:37] rauchg_: or change your limits.conf
[19:38] dannycoates has joined the channel
[19:38] nefD: pkrumins: Checking out that node-gif module.. are animated gifs made via the DynamicGifStack or somesuch?
[19:38] mikeal: bradleymeck_: pong
[19:38] V1: http://github.com/3rd-Eden/node-memcached/blob/master/lib/connection.js <-- my connection pool
[19:38] JRCARR2 has joined the channel
[19:38] pkrumins: nefD: via AnimatedGif
[19:38] bradleymeck_: any clue why websockets arent sending cookies?
[19:39] nefD: pkrumins: Ahh ok, didnt see that in the readme on github.. very cool!
[19:39] pkrumins: JimBastard: will check in the code in a few hours
[19:39] mikeal: absolutely no idea
[19:39] pkrumins: nefD: didn't add that to readme yet
[19:39] pkrumins: only got it working earlier today
[19:39] pkrumins: all for stackvm!
[19:39] pkrumins: nefD: check out stackvm.com
[19:39] JimBastard: function ping( host, callback ){ var pong = Spawn( 'ping', [ host ]);
[19:39] JimBastard: you opening up a child process for every request?
[19:40] nefD: pkrumins: thats pretty badass, man. how are you passing the image buffer data for the vm through to node, out of curiosity?
[19:40] nefD: stackvm looks pretty sweet
[19:41] benburkert has joined the channel
[19:41] saikat has joined the channel
[19:41] EyePulp has joined the channel
[19:41] JRCARR2: JimBastard, I'm late to the discussion, but spawning a process for every request... seems dangerous if there's a thousand requests :S
[19:41] pkrumins: nefD: with the help of node-bufferlist + dnode + node-rfb modules.
[19:42] JimBastard: JRCARR2 aye
[19:42] astrolin has joined the channel
[19:42] JRCARR2: kinda like that webservice call I came across at work where a single request can spawn up to 10 threads ;)
[19:42] JRCARR2: given that there's over 500 concurrent users of the service ... disasterous results await! :)
[19:42] JRCARR2: and that's only 500 :)
[19:43] JimBastard: oopa!
[19:43] nefD: pkrumins: Very nice indeed.. playing with that gif module now
[19:44] jesusabdullah: Hah! Sounds pretty deadly <_>
[19:44] jesusabdullah: JRCARR2: What kinda service was that? :o
[19:44] JRCARR2: jesusabdullah, a bad one. :)
[19:45] jesusabdullah: What was it *supposed* to do?
[19:45] JRCARR2: jesusabdullah, a SOAP service that spawns off 10 threads that call data access objects
[19:45] jesusabdullah: I bet it was reporting
[19:45] JRCARR2: jesusabdullah, yep!
[19:45] JRCARR2: it was your run of the mill webservice that just gets data from a database and returns it in a report like format
[19:45] jesusabdullah: Accounting statements?
[19:45] JRCARR2: nah, cant speak about the specifics ;)
[19:46] JRCARR2: but in the JEE enterprise world, it's a common thing to come across
[19:46] jesusabdullah: And yet it took 15 minutes to print 10 lines and a n ascii "IT WORKED"
[19:46] JRCARR2: the enterprise world has a hard on for SOAP service galore. It's not uncommon to come across a SOAP service that calls 10 other services
[19:46] jesusabdullah: At my old job as office bitch for my college's department office, I had to do stuff with an oracle database
[19:46] _announcer: Twitter: "just blogged: links for 2010-08-06: pragmatism: The beauty of node.js ... http://bit.ly/9OlBc4" -- Joerg Moellenkamp. http://twitter.com/c0t0d0s0/status/20494211253
[19:46] jesusabdullah: and I'd have similar thing when I went to print out a list of students
[19:47] Tobsn: fyi - if you get a hulu plus invite today - dont sign up - not worth it.
[19:47] creationix: mikeal: you guys have hilarious commercials
[19:47] _announcer: Twitter: "Will there be flying unicorns in the sky after I connect #nodejs to #couchdb?" -- Leon Weidauer. http://twitter.com/techpriester/status/20494255982
[19:47] jesusabdullah: !tweet @techpriester Yes.
[19:48] mikeal: yup
[19:48] mikeal: my favorite part
[19:48] mikeal: is that we feature it on the jobs page
[19:48] mikeal: just so anyone applying knows what they are getting in to
[19:48] creationix: good idea
[19:48] jesusabdullah: mikeal: Link?
[19:49] jesusabdullah: !tweet @techpriester Do you know about http://github.com/cloudhead/cradle ?
[19:49] mikeal: couch.io/jobs
[19:49] jesusabdullah: oh, I saw those
[19:49] jesusabdullah: Scared me. I am NOT that leet
[19:50] jesusabdullah: Oh, didn't see the movie though! Just the yob descriptions
[19:50] Tobsn: you really think thats funny?
[19:50] Tobsn: :P
[19:50] creationix: mikeal: where is the node.js expert position :P
[19:50] matt_c: jesusabdullah: are you on a VM by any chance? I've seen weirdly configured vms do crazy stuff with clock tick before, I wonder if your TCP issues could be a similar thing.
[19:51] jesusabdullah: matt_c: Huh?
[19:51] mikeal: that position is filled :)
[19:51] tjholowaychuk has joined the channel
[19:51] jesusabdullah: matt_c: Do you mean with my bot? It was running on my work computer at the university
[19:51] jesusabdullah: mikeal: Couchdb video is funny.
[19:51] matt_c: jesusabdullah: ahh okay. I was just reading the scrollback and thought you were the same person that was having really odd TCP delays earlier today.
[19:52] mikeal: hehe
[19:52] JRCARR2: mikeal, what about the trainer position? I currently do training / conference speaking and would enjoy sessions with couchdb
[19:52] jesusabdullah: matt_c: Don't think so! Though, I do have an irc bot that loooooves to time out :C
[19:52] JRCARR2: I was considering offering a NoSQL course myself
[19:52] mikeal: go ahead and send your info to jobs@
[19:52] matt_c: jesusabdullah: Cool. i guess I shouldn't be suprised about multiple people having strange TCP problems 'round these parts.
[19:52] tjholowaychuk: devinus: tahts me working on console
[19:53] Tobsn: http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs123.ash2/39488_412052816862_733566862_5225546_3420793_n.jpg
[19:53] Tobsn: got a package today :)
[19:54] devinus: tjholowaychuk: ah...well, browsers allow e.g. console.log('Hey, check this object', obj), but node's just takes one argument it seems
[19:54] tjholowaychuk: devinus: my patch fixes taht
[19:54] devinus: tjholowaychuk: where's your patch?
[19:54] tjholowaychuk: ryah: sounds good
[19:55] jesusabdullah: never heard of leaderpromos.com
[19:55] mikeal: tethering is awesome
[19:55] mikeal: that is all
[19:56] _announcer: Twitter: "@ Soryu2 want even a little bit and play with couchdb nodejs. so in size. for many it should." [de] -- j m. http://twitter.com/feuervogel83/status/20494772188
[19:56] JRCARR2: tjholowaychuk, isnt there a script to generate a skeleton express project?
[19:56] jesusabdullah: Haha! The couchdb jingle is great!
[19:56] V1: I'm really starting to dislike the Node Stream and build in buffering / chunking of data
[19:56] tjholowaychuk: JRCARR2: yup, express(1)
[19:57] JRCARR2: ;)
[19:57] _announcer: Twitter: "@techpriester I imagine that there'll be lots, in parallel, but moving so quick you won't be able to see them #couchdb #nodejs" -- Neil Robbins. http://twitter.com/NeilRobbins/status/20494807788
[19:57] ryah: V1: why
[19:57] JRCARR2: thanks... I been creating them using my own node script ;)
[19:57] V1: If a response is to long, it just it cuts at complete random places.
[19:57] ryah: V1: yeah
[19:57] ryah: V1: that's the reality of the internet
[19:58] JRCARR2: tjholowaychuk, btw, I've noticed you and creationx suggesting using jade (or was it ejs?) over haml.js?
[19:58] JRCARR2: why is that?
[19:58] V1: But it does suck, because i got to write buffer for the buffer.
[19:59] tjholowaychuk: JRCARR2: haml.js is just not written as well as jade, ejs is entirely different but if you like that style its fine
[19:59] V1: But at least, good to know. But I think it should be documented better
[19:59] JRCARR2: tjholowaychuk, yeah, I saw the style. Never was a fan of erb to be honest ;)
[19:59] tjholowaychuk: me neither
[19:59] jesusabdullah: embedded ruby?
[20:00] jesusabdullah: huh!
[20:00] ryah: V1: yeah
[20:00] ryah: V1: help appriciated on that front :)
[20:02] benburkert has joined the channel
[20:05] fredsa has joined the channel
[20:06] astrolin has joined the channel
[20:06] fredsa: hi guys, are there any unit testing frameworks that hook nicely into node.js?
[20:06] kriszyp has joined the channel
[20:06] JimBastard: fredsa: VOWWSSS
[20:06] JimBastard: http://vowsjs.org
[20:06] tjholowaychuk: fredsa: expresso :p
[20:06] tjholowaychuk: haha
[20:06] jamescarr_ has joined the channel
[20:06] JimBastard: dont listen to tjholowaychuk hes a troll
[20:06] tjholowaychuk: haha
[20:06] jesusabdullah: pffsht
[20:06] tjholowaychuk: ass
[20:06] tjholowaychuk: :
[20:07] JimBastard: ahahahaha
[20:07] joshbuddy has joined the channel
[20:07] JimBastard: naaah im just kidding you're alright
[20:07] podman: why not both?
[20:07] podman: double coverage!
[20:07] jesusabdullah: fredsa: They're both nice.
[20:07] JimBastard: BDD versus TDD?
[20:07] pkrumins: nefD: i am making it async now
[20:07] fredsa: thanks, I'll check them out
[20:07] huyhong1 has joined the channel
[20:08] tjholowaychuk: haha ya there you go, both :D haha
[20:08] nefD: pkrumins: Nice! :D
[20:08] jamescarr_: JimBastard, honestly, BDD is "doing TDD right" imho
[20:08] javajunky has joined the channel
[20:08] jamescarr_: altough the BDD camp has added a few things to the process that make it different
[20:08] JimBastard: tests are for code that fails
[20:08] jamescarr_: specifically, BDD isnt just about tests
[20:08] jamescarr_: BDD isnt just about code either ;)
[20:09] JimBastard: i guess
[20:09] huyhong1 has left the channel
[20:09] jamescarr_: some of BDD involved Real Options, customer collaboration, etc
[20:09] _announcer: Twitter: "Want to write asynchronous C++ node.js modules in notime? Check out my node-async example repository! http://github.com/pkrumins/node-async" -- Peteris Krumins. http://twitter.com/pkrumins/status/20495503265
[20:10] jamescarr_: of course, I just prefer the term BDD to keep developers from thinking in terms of "testing their code"
[20:10] JimBastard: yeah jamescarr_ we are thinking of building a BDD project management tool on top of vows
[20:10] fredsa: bdd is...?
[20:10] JimBastard: behavior driven dev
[20:11] JimBastard: write the behaviors first
[20:11] JimBastard: then maken the code act like that
[20:11] JimBastard: http://vowsjs.org
[20:11] fredsa: oh yeah
[20:11] jamescarr_: yeah.. the way I described it at my BDD with jspec talk was using examples to drive your development
[20:11] jamescarr_: it went well even with the anti-TDD crowd
[20:12] jamescarr_: because it makes sense... even people who think TDD is a crock of shit and don't do it still sketch out how their api works sometimes before they code
[20:12] JimBastard: yeah
[20:12] JimBastard: sometimes the whole process can be a huge waste of time though
[20:12] jamescarr_: so telling them it's just sketching out the API and then having a way to know when you're done went over better with them :)
[20:12] JimBastard: if you have a clear understanding of the domain problem and you write functional programming like code, you can kinda skip it all
[20:12] fredsa: yeah, I like it from the perspective of proving to your client that the software does meet the spec
[20:13] JimBastard: yeah testing meh
[20:13] jamescarr_: plus I find the tests/specs written by devs in a BDD mindset come out better... when they view it as "testing" ...
[20:13] jamescarr_: they'll write shitty tests because "it's just test code"
[20:13] jamescarr_: 100+ line test methods with 30 asserts scattered all over
[20:13] jamescarr_: that stuff drives me nuts! :)
[20:14] jamescarr_: enough ranting... whats a good couchdb module available via npm? npm list couch only returns "couchdb-0.0.1"
[20:14] fredsa: I still like to write my tests after I've written the code. I refactor so much that I think writing tests first would be a bit pointless
[20:14] jesusabdullah: There was a project I was kinda-sorta working on (kinda) where the biggest effort was being put in nailing down the api (imo)--like, the actual implementation would be pretty easy
[20:14] jesusabdullah: Thought BDD would fit it really well
[20:14] jesusabdullah: but it wasn't really my project, so
[20:15] mjr_: Don't forget to write tests for your tests. It's the only way to know if you are testing the right things.
[20:16] jchris has joined the channel
[20:16] jesusabdullah: mjr_: tests all the way down? :)
[20:16] mjr_: until it gets to turtles.
[20:17] jesusabdullah: c/,,\
[20:18] nano`: :/
[20:19] JimBastard: must....not....buy.....starcraft
[20:20] technoweenie: starcraft sucks
[20:20] jamescarr_: the tests for your tests argument is such bullshit. Of course it is worse when people actually DO write tests for test fixtures
[20:20] technoweenie: stay away
[20:20] nano`: is BDD the new buzz word?
[20:20] technoweenie: nano`: only in javascript
[20:22] joshbuddy_ has joined the channel
[20:22] jamescarr_: hasnt the term BDD been around since 2004?
[20:22] jamescarr_: or 2006, I cant remember
[20:23] jamescarr_: of course, everything is "the new buzzword" these days. Just yesterday I read some article somewhere calling "Dependency Injection" the new buzzword
[20:25] mattly has joined the channel
[20:25] Tobsn: you really dont get the client ip from client side javascript right? thats crazy...
[20:26] JimBastard: Tobsn: huh
[20:27] mjr_: Tobsn: XHR is a really terrible interface for networking, but hey, at least there's something.
[20:28] pkrumins: JimBastard: here? i remembered i had an example code that produces an animated gif
[20:28] JimBastard: yto
[20:28] pkrumins: JimBastard: clone node-gif and go to tests/animated-gif
[20:28] JimBastard: cool will do
[20:28] JimBastard: thanks
[20:28] pkrumins: JimBastard: extract frames.tgz and run `node animated-gif.js`
[20:29] pkrumins: starts with full frame, and then every next frame is just update
[20:29] pkrumins: so it's damn cheap.
[20:29] knuckolls has joined the channel
[20:30] astrolin has joined the channel
[20:31] creationix: hey, what's the name of the node html parser + dom thing
[20:31] creationix: named after the ruby lib
[20:31] trentm: apricot
[20:31] creationix: thanks
[20:31] trentm: hpricot I think
[20:31] tjholowaychuk: nokogiri is better
[20:32] JimBastard: gtfo rails fags
[20:33] tjholowaychuk: lol that has nothing to do with rails
[20:34] streampunk: JimBastard: I think you're just insecure about something. :-P
[20:34] mattly has joined the channel
[20:35] bradleymeck_: jim can i get a nodejitsu slot sometime for the new _frankie, hes like 1/3 done being reanimated
[20:37] _announcer: Twitter: "Started to learn node.js. Amazing!" [ru] -- paul. http://twitter.com/b0n3Zs/status/20497096115
[20:38] benburkert has joined the channel
[20:39] JimBastard: bradleymeck_: yeah i can do that, just get the repo good to go
[20:39] JimBastard: we are gonna try to push new version this weekend, but i can get him up as a temp for now, will take 5 minutes
[20:39] bradleymeck_: nah, ill wait on rewrite then
[20:39] JimBastard: ?
[20:39] bradleymeck_: the twitter trigger is being redone right now
[20:39] JimBastard: im ready to deploy whenever
[20:39] tjholowaychuk has joined the channel
[20:40] _announcer: Twitter: "@techpriester Have you tried cradle? http://github.com/cloudhead/cradle #nodejs #couchdb" -- Tunde Ashafa. http://twitter.com/ashafa/status/20497224719
[20:42] sechrist has joined the channel
[20:42] _announcer: Twitter: "Node.js, JavaScript on the Server # (# # Google Tech Talks) - http://bit.ly/duc6I5" [nl] -- Mehdi Mousavi. http://twitter.com/mehdi_mousavi/status/20497360900
[20:43] softdrink has joined the channel
[20:43] CIA-77: node: 03Bert Belder 07master * r9491413 10/ (8 files in 4 dirs):
[20:43] CIA-77: node: New api for child_process.spawn; ability to set cwd for spawn()ed process
[20:43] CIA-77: node: Tests for child_process.spawn() use new API
[20:43] CIA-77: node: Test for deprecated child_process.spawn() API - http://bit.ly/9gfSnS
[20:43] CIA-77: node: 03Bert Belder 07master * raaa1f45 10/ (3 files in 3 dirs): Expose cwd option to child_process.exec() - http://bit.ly/cfmvmM
[20:45] wink-: ryah: are you around and have a second to field a quick question?
[20:45] JimBastard: not very cool wattz
[20:45] ryah: wink-: sure
[20:47] wink-: so im playing around with your postgres driver, and im trying to get .query to allow me to pass in varargs (after the query/callback) and im failing miserably :)
[20:48] siedrix has joined the channel
[20:48] wink-: im not far off but my elementary javascript is letting me down, let me get a pastebin up with my changes
[20:48] siedrix: hi, how can i get the time stamp on node?
[20:48] nex3 has left the channel
[20:48] ryah: siedrix: new Date()
[20:48] trobrock has joined the channel
[20:48] siedrix: thx ryah
[20:49] wink-: ryah: http://pastebin.com/qvgTyWCL
[20:49] wink-: im surely doing something horribly naive, but im too naive to see it :D
[20:50] wink-: thats the 2 snippets from the binding i've modified
[20:50] trobrock: need some help translating a mongo query to use in nodejs, I have a group call that returns correctly in mongo, but running in node.js only returns one result
[20:50] benburkert has joined the channel
[20:51] ryah: wink-: hmm..
[20:52] astrolin_ has joined the channel
[20:52] ryah: wink-: i haven't looked at the postgres binding for a while, i'm not sure
[20:52] wink-: that may be a completely backward way of trying to do it, but it seems like it should work (to my newbie eyes)
[20:52] ryah: wink-: you might need to turn arguments into an array
[20:52] V1: ryah: Is there a away to mark net.Stream response ended? Because the buffer can queue up the net.Stream responses, making it almost impossible to detect the end of a response.
[20:53] wink-: my understanding of it is that result listener is where the callback passed into .query gets called
[20:53] ryah: String.prototype.slice.apply(arguments, 0) (or something?)
[20:53] _announcer: Twitter: "@max4f @11nc @justinlilly Hummingbird, written in Node.js by Gilt: http://mnutt.github.com/hummingbird/" -- James Dennis. http://twitter.com/j2labs/status/20497964827
[20:53] wink-: Array.prototype.slice.call(arguments) should do it
[20:53] V1: The net.Stream sometimes combines the response of 2 commands in to one buffer.
[20:53] brianleroux has joined the channel
[20:54] wink-: i can see my modified arguments object all the way up to the .apply() call, then in my callback it gets lost
[20:54] bryanl has joined the channel
[20:54] ryah: V1: the "end" event
[20:55] V1: Really? That simple? o_o?
[20:55] sechrist_alt has joined the channel
[20:55] ryah: V1: well, that's how you know whwere it ends
[20:55] wink-: im not sure if im violating something or what, but right before the .apply my extra arguments are in the arguments object that is about to get .apply() called on it
[20:55] ryah: wink-: it'd be easier to see a diff
[20:55] wink-: k
[20:55] wink-: 1 sec
[20:55] creationix: V1: are you looking for the end of the stream or the end of the chunk?
[20:56] creationix: you can't trust chunks to come out the same way you put them in
[20:56] creationix: it's a common networking problem
[20:56] ryah: right - tcp doesn't have framing
[20:56] ryah: you can trust that they come in the same order though
[20:56] creationix: thanksfully
[20:56] ryah: :)
[20:57] eggie5_: creationix: hi; question on your posgtres lib... what's the proper function to call to close the connection??
[20:57] ryah: tcp <)
[20:57] creationix: eggie5_: good question, let me check
[20:57] creationix: ryah: perhaps someone should maintain a proper postgres library ;)
[20:57] V1: I'm glad it comes in the same order, atleast it gives me something to check agains.
[20:57] wink-: ryah: http://pastebin.com/s7qH2Crw
[20:57] eggie5_: creationix: it seems to change from examples I see you posted in the past... and in the code there's a few methods...
[20:58] V1: I guess i will hack along :)!
[20:58] jspiros has joined the channel
[20:58] bradleymeck_: is there a catchall event emitter?
[20:58] creationix: V1: basically you need to implement faming manually, you only know that the bytes will come out the same order, but in arbitrary sized chunks
[20:59] V1: Ok,
[20:59] creationix: eggie5_: call end() on the connection object
[20:59] creationix: eggie5_: http://github.com/creationix/postgres-js/blob/master/lib/postgres-pure.js#L443
[21:01] wink-: ryah: sorry if thats too messy :p
[21:01] ryah: creationix: yes
[21:02] eggie5_: creationix: pg gives this unexpected EOF on client connection so I guess that means it's closed?? right?
[21:02] _announcer: Twitter: "Ugh, is there no file copy functionality in Node.js?" -- Robert Boyce. http://twitter.com/rboyce/status/20498453537
[21:02] ryah: i'm totally willing to defer dev to my binding
[21:02] creationix: eggie5_: I think so, it's been a while
[21:02] creationix: ryah: well if I make one it will be pure js
[21:02] creationix: I just found out that I need to implement a connection pool to route error messages to the proper queries
[21:03] ryah: creationix: btw did you know felix is working on a mysql driver?
[21:03] sechrist has joined the channel
[21:03] creationix: yes, I tried to find him funding
[21:04] ryah: ACTION succeeded :)
[21:04] creationix: awesome
[21:04] wattz: haha, ryah Im working on one too :P
[21:04] ryah: http://github.com/felixge/node-mysql
[21:04] ryah: it looks pretty good
[21:04] ryah: wattz: maybe you should work with felix
[21:04] creationix: too bad I can't stand mysql
[21:04] wattz: i JUST started mine
[21:05] creationix: felixe's is pure js right?
[21:05] creationix: ACTION believes that node should make it feasible for db protocols to be written in pure js and be performant.
[21:05] ryah: yeah
[21:05] wattz: mine is C++ based, trying to find the best approach to handle graceful removal of blocking
[21:05] ryah: his parser looks good
[21:06] wattz: ryah: i actually wanted to ask you a question about node directly
[21:06] tyfighter has joined the channel
[21:06] wattz: just pick your brain
[21:06] ryah: wattz: sure
[21:06] creationix: maybe someone can try postgres again based on felixe's mysql
[21:06] ryah: wink-: i'm not sure...
[21:06] wattz: embedding node into C++?
[21:06] joshbuddy_ has joined the channel
[21:06] creationix: wattz: dbslayer style?
[21:06] wattz: creationix: you mean for mysql or embedding?
[21:07] wink-: ryah: i'll keep flailing at it then, i was hoping it'd be easy to spot :>
[21:07] creationix: I mean having a standalone http interface o mysql
[21:07] creationix: so node doesn't need a fancy driver
[21:07] wattz: creationix: naa, the mysql thing is completely different then the embedding question
[21:07] creationix: I think implementing the actual tcp protocol in js is the best solution for mysql
[21:07] wattz: why?
[21:08] wattz: can that really be faster than a compiled component/addon?
[21:08] creationix: it depends on how much overhead the thread pool causes
[21:08] creationix: mysql's header files are blocking
[21:08] creationix: node is pretty fast
[21:08] wattz: creationix: seperate my embed question from my mysql driver
[21:08] wattz: lol
[21:09] creationix: nevermind then :P
[21:09] wattz: the embed question for was for another use
[21:09] mikeal has joined the channel
[21:09] creationix: I see
[21:09] creationix: wattz: do you need node or just V8?
[21:10] wattz: well, i love now node is built and want to build that into an app we are writing at work
[21:10] creationix: ahh
[21:10] wattz: but i need to wrap a bunch of other code around it
[21:10] creationix: write you app as a module
[21:11] wattz: thought of that, but they are weird about using open source... cause I a sad.
[21:11] wattz: unless we embed.
[21:11] wattz: -_-
[21:12] brianmario: ryah: is there global VM lock in node/V8 and if so any way to release it temporarily?
[21:12] wattz: (mysql) any reason i couldn't use C++ threading to overcome the blocking... sort of a hack though
[21:12] ryah: brianmario: eh- what do you mean?
[21:13] brianmario: like in ruby 1.9, you can wrap blocking C calls with a call to rb_thread_blocking_region, which releases the GVL while that blocking method is running so other ruby code can continue
[21:13] brianmario: I'm still learning about V8...
[21:13] ryah: brianmario: oh right - but there's no threads
[21:13] ryah: brianmario: so there is no concept like that
[21:13] brianmario: ah
[21:13] creationix: wattz: wait, how is emedding mit code ok, but not using mit binaries?
[21:13] creationix: that seems really backwards
[21:14] aurynn has joined the channel
[21:14] brianmario: I took advantage of that for mysql2, to make as much "non-blocking" as possible
[21:14] ryah: brianmario: the interal threads are not allowed to touch v8
[21:14] brianmario: if there were some way to do something like that in V8...
[21:14] brianmario: oh ok
[21:14] satori_ has joined the channel
[21:14] ryah: right you can do nonblocking queries but not non-blocking ocnnection, is that correct?
[21:15] ryah: which is 90% of the problem
[21:15] wattz: creationix: "we" stuill think that Websphere and db2 are the best thing ever...
[21:15] wattz: -_-
[21:15] brianmario: right
[21:15] wattz: whoa, people still use BitchX :D
[21:15] trentm_ has joined the channel
[21:15] creationix: wattz: sure, just wrap those as node modules
[21:16] brianmario: although, the mysql protocol doesn't seem *that* complex
[21:16] admc has joined the channel
[21:16] brianmario: any libdrizzle bindings for node yet?
[21:16] brianmario: it's entire API is non-blocking afaik
[21:16] brianmario: and speaks mysql
[21:16] wattz: brianmario: i can take a look, shouldn't be to hard
[21:17] brianmario: yeah
[21:17] creationix: wattz: though I'm pretty sure embedding node is a fair amount of work, but ryah would know best
[21:17] brianmario: I actually wrote mysql2 as a learning experience so I could implement a mysql driver for node :P
[21:17] wattz: curious question mainly, i have plenty of work arounds
[21:17] brianmario: which I have yet to start...
[21:17] aurynn: ryah, in the pg driver, I can't figure out a way to do non-blocking queries on the wire, especially if you're doing multipart messages.
[21:17] wattz: brianmario: http://github.com/wess/Cargo << first addon for me, great learning experience
[21:18] wattz: and still working on it
[21:18] brianmario: I've seriously considered writing my own non-blocking C lib for mysql using libev - would plug in nicely to node I think?
[21:18] astrolin has joined the channel
[21:18] brianmario: the protocol doesn't look *that* insane
[21:18] brianmario: heh
[21:18] wattz: lol
[21:18] ngw: http://gist.github.com/512023 some has any idea why this test hangs vows ?
[21:18] ngw: someone, not some
[21:18] ngw: no error messages
[21:19] wattz: brianmario: i was actually think about using threads to over come blocking, but that's sort of a hack
[21:19] brianmario: yeah...
[21:19] devinus: has anybody written up a tutorial for a conventional way of making node C/C++ drivers ?
[21:19] wattz: then they have to be managed
[21:19] TobiasFar has joined the channel
[21:19] tjholowaychuk: ngw: if your dealing with http id suggest expresso, vows is kinda meh with that
[21:19] satori_: use eio_custom() from libeio to run blocking calls
[21:20] satori_: it's pretty easy and lightweight.
[21:20] stagas has joined the channel
[21:20] ngw: well, actually it's only a test on a parameter inside an object
[21:22] daleharvey has joined the channel
[21:23] daleharvey has joined the channel
[21:23] daleharvey: ah this is better
[21:24] daleharvey: perhaps someone could mention this room on the website, and in #nodejs :P
[21:24] moqq has left the channel
[21:26] wattz: dlib is sucking bad
[21:29] trentm: anybody with jade experience?
[21:29] trentm: ... and know if there is a way to have the emitted HTML not have all whitespace collapsed?
[21:29] tjholowaychuk: trentm: yup
[21:30] tjholowaychuk: nope
[21:30] tjholowaychuk: not ATM
[21:30] trentm: k, thanks
[21:30] tjholowaychuk: its in the issue queue i believe
[21:30] daleharvey: right, building an app to do file uploads, is http://github.com/isaacs/multipart-js/ still the best way?
[21:30] ctp has joined the channel
[21:30] tjholowaychuk: daleharvey: node-formidable
[21:30] tjholowaychuk: works great
[21:32] daleharvey: thank tjholowaychuk
[21:39] daleharvey: hrm, any ideas on how to install node-formidable? :P
[21:39] V1: npm?
[21:39] _announcer: Twitter: "@ I lucabastos to test for some time, but I think it would be good to Node.js that your project!" [pt] -- Fabio Covolo Mazzo. http://twitter.com/fabiocovolo/status/20500553322
[21:40] _announcer: Twitter: "@lucabastos http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/" -- Fabio Covolo Mazzo. http://twitter.com/fabiocovolo/status/20500586306
[21:40] astrolin has joined the channel
[21:41] bradleymeck_: do eventemitters hold onto listeners even if the listener is up for GC?
[21:41] creationix: bradleymeck_: yes
[21:41] bradleymeck_: :(
[21:41] creationix: why ?
[21:41] charlesjolley- has joined the channel
[21:42] bradleymeck_: eph tables are becoming like crack to me, setting up a long running rpc api to my bot, dont want listeners to leak
[21:42] stride: how's the listener up for GC when it's still referenced in the emitter?
[21:42] creationix: correct, I think bradleymeck_ wants a weak reference
[21:42] bradleymeck_: stride, if it was a weak reference it would be up if no other reference to the listener existed
[21:43] nefD: eph table? wassat?
[21:43] eggie5_: creationix: what do you think. i'm tyring to do someting really simple. just query the database and a webrequest w/ node. SHould I open the DB connection when the server starts or when the request comes?
[21:43] creationix: eggie5_: I'd do it at server start
[21:43] Tobsn: connect on start and ping on request
[21:43] Tobsn: thats the safe way
[21:43] stride: bradleymeck_: ah, okay
[21:44] daleharvey: ok that seems to work better, cheers
[21:44] eggie5_: well the the question comes.... I keep getting FATAL: sorry, too many clients already errors....
[21:44] bradleymeck_: nefD its a proposal in ES Harmony that turned into WeakMap, node-overload has the api/use of it
[21:44] Tobsn: than youre opening too many connections
[21:44] Tobsn: i guess
[21:44] creationix: eggie5_: sounds like you're connecting once per request and not closing
[21:45] eggie5_: creationix: so then i need to close the conneciton when the request ends? that means I need to start it when the request starts too... right?
[21:45] Tobsn: no you dont need to
[21:45] Tobsn: you just connect once
[21:45] Tobsn: and check if the connection is still alive
[21:45] Tobsn: if not you reconnect
[21:45] eggie5_: Tobsn: does a query count as a connection? I'm only connecting whent he app starts...
[21:45] Tobsn: well connect() mostly counts as connect
[21:45] creationix: eggie5_: are you sure
[21:45] creationix: query doesn't make a new connection
[21:45] ryah: aurynn: pg driver?
[21:46] Tobsn: which DB which library?
[21:46] ryah: aurynn: postgres?
[21:46] eggie5_: Tobsn: posgres-pure
[21:46] creationix: aurynn: I thought you were busy fixing mine for me ;)
[21:46] Tobsn: you sur ethats the name?
[21:47] nefD: hm. eph tables look neat
[21:47] creationix: Tobsn: it also goes by postgres-js
[21:47] foca: http://github.com/foca/node-marshmallow << ok, first node.js project, please let me know how much my code sucks :D
[21:47] Tobsn: ah there ya go
[21:47] aurynn: creationix, I am
[21:47] Tobsn: creationix, just say "look into my github repositories" next time :P
[21:47] creationix: foca: like a dyson ;)
[21:47] aurynn: creationix, if only because escaping strings is such a bad idea. :)
[21:47] creationix: aurynn: agreed
[21:48] Tobsn: well why am i answering then... you wrote that thing - help him! :P
[21:48] creationix: aurynn: though it's not too hard to do mostly right with postgres
[21:48] creationix: Tobsn: don't worry, we've all been working together for a few days now
[21:48] _announcer: Twitter: "Fixed the first logged of #nMemcached, memcached storage for node.js http://is.gd/e6zaU getting closer to alpha release :)!" -- Arnout Kazemier. http://twitter.com/3rdEden/status/20501054493
[21:48] Tobsn: hu?
[21:49] CIA-77: node: 03Trent Mick 07master * re8c2453 10/ (ChangeLog doc/api.markdown): spelling correction - http://bit.ly/abBF1A
[21:49] jesusabdullah: foca: Neat idea!
[21:49] foca: creationix: I don't follow :)
[21:49] creationix: If I say anything that doesn't make sense it's because I'm hiding underneath a blanket with a high fever
[21:49] Tobsn: there ya go...nMemcache who wrote that?
[21:49] creationix: foca: sorry, just a joke
[21:49] foca: ah
[21:49] foca: :)
[21:49] foca: well get better, fevers suck
[21:50] Tobsn: dont be a pansy! get your ass up and take a walk :P
[21:50] creationix: foca: you do know what a Dyson is right?
[21:50] V1: Managed to get around the net.Stream chopped responses, without framing. Saves allot of overhead code :)
[21:50] Tobsn: (thats actually what my mom tells me and shes a doc)
[21:50] trentm: what, if anything, do people use for getting a node server to auto-restart for any file changes?
[21:50] Tobsn: *tells me when im sick
[21:50] creationix: Tobsn: meh, did that yesterday, almost fell in the street a few times
[21:50] eggie5_: creationix: can you see why this would get too many client errors:: http://gist.github.com/512065
[21:50] Tobsn: V1 is that yours?
[21:50] V1: nMemcached? yes
[21:51] Tobsn: good kid
[21:51] foca: creationix: ah, the vacuum cleaners
[21:51] foca: damn it
[21:51] Tobsn: i told you that i need pooling! :P
[21:51] foca: I just got it
[21:51] creationix: foca: and the very best at that ;)
[21:51] creationix: well, at least the most expensive
[21:51] daleharvey: trentm: I was about to ask exactly the same question :P
[21:51] Tobsn: V1, fallback is build in right?
[21:52] V1: :p the connection pooling inst really needed. I just needed to stop closing down the tcp connection eachtime i did get on my test case :P
[21:52] creationix: foca: my brain is too fried to help much, but why " var marshmallow = require("marshmallow").marshmallow;
[21:52] creationix: "
[21:52] V1: Failback will be supported in inital release yes,
[21:52] creationix: foca: are there other properties on the exports?
[21:52] Tobsn: well what you need now is a constant to define the number of redundant servers
[21:52] daleharvey: how do people deal with reloading files, restartign the server is getting boring very quickly
[21:52] trentm: I'm looking at http://github.com/shimondoodkin/nodejs-autorestart but it seems a bit heavy/hacky. Perhaps I'm just a whiner tho. :)
[21:52] creationix: foca: if not, just use module.exports in the module
[21:52] Tobsn: so you can actually add 20 servers and write over 10
[21:53] V1: Tobsn: In the constructor you can supply failover server, for when a server "dies"
[21:53] Tobsn: well when a server dies the data is on the second redundant server
[21:53] Tobsn: cause you should build in redundancy
[21:53] ngw: tjholowaychuk: I can't install expresso using npm
[21:53] tjholowaychuk: ngw: why not? what happens?
[21:54] devinus: ryah: node> Buffer("\x1b[0G") // this bombs node
[21:54] ngw: http://github.com/isaacs/npm/issues/issue/162
[21:54] dgathright has joined the channel
[21:54] creationix: eggie5_: looks good to me, put a log around var db = .. to see if express is doing anything funky
[21:54] creationix: you shoud only see it once
[21:54] Tobsn: var nm = new nMemcache( {server1,server2,server3}); nm.redundancy = 2;
[21:54] Tobsn: ;)
[21:54] _announcer: Twitter: "first nodejs patch: http://github.com/ry/node/commit/e8c2453f6d5cbed581cc83d697a661135653418c not exactly deep technical stuff yet :)" -- trentmick. http://twitter.com/trentmick/status/20501397822
[21:54] tjholowaychuk: ngw: just clone / make install
[21:54] tjholowaychuk: rages at npm
[21:54] tjholowaychuk: lol
[21:54] V1: Tobsn: Good point, its not included yet. But should be fairly easy to incorporate, will add it to my todo list :)
[21:54] Blackguard has joined the channel
[21:55] Tobsn: V1, if you include that - youre basically done with the features
[21:55] wattz: peace out til later guys!
[21:55] Tobsn: cause thats all you need with memcache and clusters
[21:55] Tobsn: a way to save redundant
[21:55] maxsilver has joined the channel
[21:55] V1: Tobsn: Still need to fix my compression and handling of binary buffers :p
[21:55] Tobsn: cant memcached handle that?
[21:55] V1: When i send a binary buffer over memcached, some bytes will change.
[21:55] _announcer: Twitter: "Node.js The idea is good but somewhat difficult for me @ fabiocovolo I filter data in memory for one or two minutes using Java." [pt] -- lucabastos. http://twitter.com/lucabastos/status/20501482792
[21:56] V1: Nope, it all needs to be included in the client.
[21:56] cardona507 has joined the channel
[21:56] hansek has joined the channel
[21:56] V1: The memcached as a fixed size limit of 1mb for values, so if you want to store more than that, the client needs to compress it.
[21:56] Tobsn: V1, http://php.net/manual/en/memcache.ini.php
[21:56] V1: The memcached server has*
[21:58] Tobsn: also read up on http://repcached.lab.klab.org/
[21:58] ryah: devinus: new Buffer
[21:58] ryah: devinus: but yes, that should be handled more gracefully
[21:58] devinus: ryah: okay, cool. just pointing it out
[21:58] devinus: thought maybe the api was like String
[21:59] devinus: e.g. String(1)
[21:59] devinus: or something
[21:59] V1: Tobsn: Thanks for the info, will read through them.
[21:59] Tobsn: :)
[21:59] Tobsn: well there is one detailed about the implemented redundancy
[21:59] Tobsn: http://svn.php.net/viewvc/pecl/memcache/tags/RELEASE_3_0_4/memcache_pool.c?view=markup
[21:59] Tobsn: somewhere
[21:59] Tobsn: but i cant find it
[21:59] creationix: ryah: did you not like my ENOENT patch for module.js?
[22:01] V1: Gives a nice peice of work for the weekend :)
[22:01] V1: piece*
[22:01] Tobsn: V1, also interesting for you: http://static.zend.com/topics/session_clustering.pdf
[22:02] Tobsn: the beauty with memcache and php is that you can just witch the internal session handling to memcache and give it like 10 servers
[22:02] astrolin has joined the channel
[22:02] Tobsn: and than define memcache.session_redundancy = 2 - so if one box goes down - its pretty sure on another box - ergo you dont lose sessions
[22:02] Tobsn: which is super helpful because its all take care of internal
[22:02] V1: That does sounds cool, but losing a session isn't that bad ussually.
[22:03] V1: As they can be recreated easily
[22:03] jakehow has joined the channel
[22:03] V1: But it seems like a use full read indeed
[22:04] Tobsn: it depends what youre talking about - think about a big page that has multi page sign ups
[22:04] Tobsn: or similar... thats all session data
[22:04] Tobsn: if you accidently log someone out
[22:05] devinus: ryah: making a JS version of linenoise for a new node REPL
[22:05] Tobsn: who cares... but saving data over multi steps and having to start over can earn you money or let you lose money as community/page owner
[22:05] ryah: devinus: i did that already though :)
[22:05] ryah: devinus: that's what readline.js is
[22:06] Tobsn: well that gives you enough to read i guess
[22:06] Tobsn: ;)
[22:06] devinus: ryah: damn you! hrm, so the shell just needs to be extended to support autocompletion then
[22:06] Tobsn: oh btw. keep in mind - memcache servers can be tcp and udp
[22:06] ryah: devinus: yeah
[22:06] V1: All data loss is bad, so you do have a good point and i think redundancy is something that needs to be supported at its initial release. But it should be incorporated in the hashring i'm using not the nMemcached client it self. So I think i'm just going the phase my hashRing out of the library and create a separate project of that :p
[22:06] Tobsn: but i guess net.Stream takes care of that
[22:06] Tobsn: V1, no it has to be in the same project
[22:07] ryah: devinus: please add tab here: http://github.com/ry/node/blob/e8c2453f6d5cbed581cc83d697a661135653418c/lib/readline.js#L156
[22:07] Tobsn: its part of the memcache cluster strategy
[22:07] V1: Yeah, the net.Stream checks the responses
[22:07] Tobsn: without it you can just remove the whole cluster/pooling part
[22:07] jspiros has joined the channel
[22:07] V1: Tobsn: True
[22:07] trentm: devinus: you'll have to save "rippl" for something else :)
[22:07] Tobsn: you know what i mean? do it right or dont do it at all
[22:07] Tobsn: ;)
[22:08] V1: Yeah, i know, that why i still have bought a "stable" release.
[22:08] Tobsn: either way you did a good job so far... the whole redundancy, failover, hash strategy stuff is just messing around and takes the least time i guess
[22:09] Tobsn: http://php.net/manual/en/memcache.ini.php - look at those ini settings - it tells you a lot about how it should work by default - also read the comments:
[22:09] Tobsn: memcache.session_redundancy
[22:09] Tobsn: The default seems to be "2", and it is supposed to influence how many copies of a particular session object that Memcache will store for failover purposes (so with a redundancy of 2, it will store a session on 2 different shards).
[22:09] _announcer: Twitter: "@JohnMacIntyre I also saw something about doing JS debugging of node.js using a real debugger too...but I didn't read that either. :(" -- Sheldon McGee. http://twitter.com/tooshel/status/20502253933
[22:09] Tobsn: its yet missing in the docu on php.net but its old in the implementation
[22:09] V1: Well incorporating the commands was allot faster than creating the whole core for the server, it literally just took me minutes to have a working command after I created a good rocksolid base.
[22:10] Tobsn: i know... the memcache protocol is super easy
[22:10] JimBastard: hey i have a dumb question, can you do htaccess like auth using node.js? where you get that popup window in the browser asking for user name and password
[22:10] JimBastard: and also provide the auth using request headers
[22:10] Tobsn: i wrote a little wrapper for mongodb - so you can interface with mongodb over a memcache client
[22:10] Tobsn: JimBastard, thats just a AUTH header and the browser complies
[22:10] _announcer: Twitter: "are eager to Labba bit with node.js" [sv] -- Jonas Gulle. http://twitter.com/jonasgulle/status/20502327517
[22:10] Tobsn: http://php.net/manual/en/features.http-auth.php
[22:10] Tobsn: there just copy that
[22:11] JimBastard: awesome
[22:11] JimBastard: thanks
[22:11] Tobsn: np
[22:11] Tobsn: (guess thats easier than you though :P)
[22:11] ngw: tjholowaychuk: how can I run the suite just once and have some kind of output ?
[22:11] tjholowaychuk: ngw: $ expresso
[22:12] V1: Tobsn: sounds cool :)
[22:12] ngw: if I run it with -w when I ctrl-c it says 100% 2 tests (I wrote only 1)
[22:12] Tobsn: :)
[22:12] ngw: the same with only expresso
[22:12] tjholowaychuk: ngw: dont use -w
[22:12] tjholowaychuk: lol
[22:12] tjholowaychuk: thats to watch.. which has to hang
[22:13] ngw: of course, also without it it only hangs, same output when I stop it
[22:13] Tobsn: well if you need help let me know, that stuff is not too hard to implement ;)
[22:13] Tobsn: brb, food.
[22:13] tjholowaychuk: ngw: lets see your tests
[22:13] ngw: k
[22:13] tjholowaychuk: ngw: sounds like you have something you didnt clean up that keeps the loop going
[22:14] bradleymeck_: wth, did someone just ping me? or is colloquy screwy
[22:15] ngw: tjholowaychuk: http://gist.github.com/512105
[22:16] tjholowaychuk: ngw: are you calling listen() in your app?
[22:16] ngw: yes
[22:16] tjholowaychuk: thats why
[22:16] tjholowaychuk: it hangs
[22:16] ngw: oh !
[22:17] ngw: so how do I test it ?
[22:18] tjholowaychuk: dont listen(), thats what assert.response() handles
[22:18] ngw: if I have to test the behaviour of the app I don't mind if it starts or not, but of course when I go in production it has to start :p
[22:18] tjholowaychuk: of course
[22:18] devtime has joined the channel
[22:18] devinus: ryah: question: do you support v8 adding more mozilla extensions like list comps and generators?
[22:18] tjholowaychuk: but you can do require('./app').listen()
[22:18] tjholowaychuk: or if (!module.parent) app.listen()
[22:18] ngw: oh
[22:18] ngw: I will try
[22:19] ngw: you mean in the test ?
[22:19] joshdulac has joined the channel
[22:21] charlesjolley- has joined the channel
[22:21] jchris has joined the channel
[22:25] sh1mmer has joined the channel
[22:25] ryah: devinus: no
[22:26] ryah: i'm fine with es5 forever
[22:26] astrolin has joined the channel
[22:27] devinus: ryah: another question, what about syntax highlighing ANSI color coded on the fly while you type?
[22:28] devinus: ryah: would you support that in the REPL?
[22:29] necrodearia has joined the channel
[22:29] ryah: devinus: *shrug*
[22:29] ryah: sounds hard
[22:30] devinus: ryah: http://github.com/visionmedia/koala.js
[22:30] devinus: :-)
[22:30] tjholowaychuk: uhh
[22:30] devinus: already done
[22:30] tjholowaychuk: koala does not do ansi
[22:30] tjholowaychuk: lol
[22:30] tjholowaychuk: no escape sequences there :p
[22:30] devinus: tjholowaychuk: yeah, but id just have to write a formatter that does
[22:30] devinus: easy peezy
[22:31] devinus: just wraps the keywords in ansi color start/ansi color end instead of s
[22:31] tjholowaychuk: for incomplete js??
[22:31] devinus: tjholowaychuk: sure, it seems koala handles it fine
[22:31] trobrock has joined the channel
[22:31] devinus: (testing it now)
[22:31] tjholowaychuk: theres no way koala would get in node it was a quick hack
[22:31] devinus: tjholowaychuk: dont be so modest, it works nicely
[22:31] tjholowaychuk: i wrote it lol
[22:32] devinus: tjholowaychuk: that why im saying dont be so modest
[22:32] devinus: tjholowaychuk: it's nice, we could just rename it
[22:32] tjholowaychuk: yeah but its not robust at all
[22:32] javajunky has joined the channel
[22:32] tjholowaychuk: and way to high level for node
[22:32] trobrock: I'm having trouble converting a mongo query into something useable in Mongo... It is just summing things up instead of grouping.... http://stackoverflow.com/questions/3428246/executing-mongodb-query-in-node-js
[22:32] tjholowaychuk: but ya the name sucks haha
[22:32] ben_alman_ has joined the channel
[22:33] devinus: well look, the feature is nice and i think people would like to see that and it would look pretty
[22:33] devinus: it's super fast
[22:33] tjholowaychuk: id personally be into seeing it, might be interesting, but not in core node
[22:33] devinus: eh, that's fine
[22:33] tjholowaychuk: but i mean ill check it out of you get it working
[22:34] _announcer: Twitter: "If the last tweet is true, #NodeJS is faster than #Python. #CoffeeScript makes #JavaScript fun, with python/ocaml-like syntax. Time to move?" -- Phillip B Oldham. http://twitter.com/digitala/status/20503747762
[22:34] devinus: it's make a tool everyone ends up using and node's default REPL misses out again
[22:34] devinus: that blows, imo
[22:35] tjholowaychuk: maybe just make the repl pluggable in some way for stuff like this
[22:36] trentm: +1, python supports a PYTHONSTARTUP env var to point to a file of (python) code that is run at repl startup
[22:37] trentm: perhaps something like that
[22:38] trentm: devinus: are you looking at adding support to readline.js now?
[22:38] devinus: trentm: well now im considering nippl again
[22:38] ngw: tjholowaychuk: I've changed it using environments, still no luck: http://gist.github.com/512105
[22:38] ngw: I'm starting expresso with CONNECT_ENV='test' expresso
[22:39] trentm: tab-completion in the core would be very nice. But you mean nippl for the ANSI coloring and perhaps other things?
[22:39] tjholowaychuk: ngw: i cant keep helping sorry man, reference how express does testing n stuff
[22:39] devinus: trentm: yes
[22:39] devinus: trentm: maybe if nippl takes off people will improve the default REPL with code from nippl or just steal ideas
[22:40] devinus: but it looks like i'll have to prove my ideas outside of node for now
[22:41] ajpiano has joined the channel
[22:41] daleharvey: ok, looking for a way to check the type of a file
[22:41] daleharvey: basically just want to make sure if something is an image or not, anyone know / recommend any libs?
[22:43] devinus: daleharvey: node-imagemagick ?
[22:44] devinus: although that's alittle heavy
[22:44] devinus: daleharvey: actually i meant gm
[22:45] devinus: daleharvey: or maybe just open up the first 20 bytes of the file and read for image signature
[22:45] devinus: that'd be pretty quick
[22:45] daleharvey: yeh I think ill just read it manually, cheers
[22:46] devinus: daleharvey: http://www.libpng.org/pub/png/book/chapter08.html
[22:46] devinus: 8 bytes for PNG sig
[22:47] tmpvar has joined the channel
[22:48] sh1mmer has joined the channel
[22:48] sveisvei has joined the channel
[22:50] softdrink: does anyone know of a good alternative to haml?
[22:50] trentm: daleharvey: look in /usr/share/magic for the signatures that `file` uses for image magic numbers
[22:50] daleharvey: both awesome help, thanks
[22:51] trobrock: Can anyone help out with converting a mongo group statement to something that will work in node?
[22:52] tjholowaychuk: softdrink: http://jade-lang.com
[22:52] qFxo has joined the channel
[22:54] softdrink: i looked at jade… the only thing that bugs me about it is having to prefix each line under a filter with a pipe
[22:54] tjholowaychuk: well that is only for text
[22:54] tjholowaychuk: if your stuff is really non dynamic dont use a template engine at all, or something more basic
[22:54] astrolin has joined the channel
[22:55] softdrink: (otherwise, jade is totally awesome :) )
[22:55] tjholowaychuk: its a tradeoff but i prefer to have tags easier to work with
[22:55] tjholowaychuk: since i dont use inline text much
[22:56] tjholowaychuk: but even then i find the margins frame it better
[22:56] softdrink: *nod*
[22:56] softdrink: it's just that with the current project i'm working on, i'm delivering html/css/js all in one file to a different group :(
[22:56] tjholowaychuk: ah
[22:58] JimBastard: 8=======D
[22:58] bradleymeck_: why must emit of "error" throw :(
[22:59] JimBastard: '##::: ##::'#######::'########::'########::::::::::::'##::'######::
[22:59] JimBastard: ###:: ##:'##.... ##: ##.... ##: ##.....::::::::::::: ##:'##... ##:
[22:59] JimBastard: ####: ##: ##:::: ##: ##:::: ##: ##:::::::::::::::::: ##: ##:::..::
[22:59] JimBastard: ## ## ##: ##:::: ##: ##:::: ##: ######:::::::::::::: ##:. ######::
[22:59] JimBastard: ##. ####: ##:::: ##: ##:::: ##: ##...:::::::::'##::: ##::..... ##:
[22:59] JimBastard: ##:. ###: ##:::: ##: ##:::: ##: ##:::::::'###: ##::: ##:'##::: ##:
[22:59] JimBastard: ##::. ##:. #######:: ########:: ########: ###:. ######::. ######::
[22:59] JimBastard: ..::::..:::.......:::........:::........::...:::......::::......:::
[22:59] aniero: lol
[22:59] JimBastard: leeet hax
[23:01] JimBastard: _ ___ ____ _ _ ____ ___ ____ ___ _ _ _ ____
[23:01] JimBastard: | | [__ |\ | | | | \ |___ | | |\/| |___
[23:01] JimBastard: | | ___] | \| |__| |__/ |___ | | | | |___
[23:02] JimBastard: <3 http://asciimo.com/
[23:04] _announcer: Twitter: "is really rather liking #node.js. and is wondering why nobody seems to have done this in #lisp." -- martin dransfield. http://twitter.com/dransfim/status/20505432276
[23:04] chrischris has joined the channel
[23:04] maushu has joined the channel
[23:05] maushu has joined the channel
[23:07] nano`: node in lisp? god the horror
[23:09] pengwynn has joined the channel
[23:13] sechrist has joined the channel
[23:13] sechrist: ugh
[23:14] _announcer: Twitter: "I demand myself to make time for coffeescript and node.js this weekend." -- Matt Sears. http://twitter.com/mattsears/status/20506126233
[23:18] tmpvar: yo
[23:20] zapnap has joined the channel
[23:20] nano`: coffeescript ... pretty cool
[23:24] cardona507: haven't checked it out yet
[23:25] cardona507: guess it's about time to do that
[23:25] maushu: I don't know, I've heard bad things about coffeescript.
[23:25] cardona507: I heard love and hate at my office
[23:26] paul___ has joined the channel
[23:29] jimt has joined the channel
[23:30] astrolin has joined the channel
[23:34] dnolen has joined the channel
[23:37] amerine has joined the channel
[23:37] devinus: what does coffeescript add to JS other than a new syntax?
[23:38] devinus: (curious)
[23:38] devinus: daleharvey: http://www.garykessler.net/library/file_sigs.html
[23:38] mikeal has joined the channel
[23:38] ryan[WIN]: devinus what does C add to asm other than a new syntax?
[23:39] tmpvar: js isnt that low level though lol
[23:39] ryan[WIN]: that's not the point
[23:40] ryah: ryan[WIN]: protability
[23:40] ryan[WIN]: PROTABILITY sounds like a word that should exist
[23:41] ryah: portability
[23:41] tmpvar: ryah, is joyent looking for more devs? :P
[23:41] ryan[WIN]: yes C adds that to asm
[23:42] ryan[WIN]: besides portability then
[23:42] devinus: compiler optimizations that beat hand written asm most times?
[23:42] ryan[WIN]: you can write if() { } instead of a bunch of cmp/jmp conditionals
[23:42] devinus: my only contribution
[23:42] ryan[WIN]: quickly see blocks of code and functions as grouped code
[23:43] tmpvar: less cognitive overhead
[23:43] ryan[WIN]: those kinds of things
[23:43] ryan[WIN]: coffeescript just makes it easier to write/maintain specific types of js code
[23:43] devinus: i wish coffeescript was it's own jitted language instead of compiled down to JS
[23:43] devinus: b/c i like the way it looks
[23:44] tmpvar: however, both are compiled.. whereas running js does not need a compilation step
[23:44] ryan[WIN]: js can be compiled - there's no reason it can't be
[23:44] rudebwoy has joined the channel
[23:45] tmpvar: sure it could be, but should it be?
[23:45] ivan: I wish more Node people used Closure Compiler, it has some really great static analysis
[23:46] joshdulac: and so the language wars continue..
[23:46] ryan[WIN]: tmpvar, not really no - a jit will outperform a static compiler
[23:46] ryan[WIN]: when it comes to dynamic typing crap
[23:46] devinus: i see no reason why languages shouldn't be compiled *and* jitted
[23:47] devinus: but i'm also a dumbass
[23:47] tmpvar: like .net?
[23:47] ryan[WIN]: devinus, llvm <3
[23:47] _announcer: Twitter: "@heroku are you still doing experimental node.js support? i sent in an email about a month ago and never even got a confirmation email :)" -- Brian Mavity. http://twitter.com/bmavity/status/20508126212
[23:47] devinus: tmpvar: no, native code
[23:48] devinus: hotspots jitted
[23:48] tmpvar: yeah, thats llvm heh
[23:52] softdrink has joined the channel
[23:56] astrolin has joined the channel
[23:57] stagas has joined the channel