[00:05] polotek has joined the channel [00:05] mnutt_ has joined the channel [00:07] mscdex: yey! ncurses input is working :-D [00:07] pandark_ has joined the channel [00:13] brianarn has joined the channel [00:14] polotek: having serious problems with JSON.parse when reading json data from a file [00:14] polotek: anyone else run into this? [00:14] brianarn: Anybody using Express that could help me figure out what seems like a simple thing with its Haml parsing? [00:15] brianarn: If I indent *anything* like it should be, I get warnings about unexpected indents, and struggling to find useful Google results [00:16] polo has joined the channel [00:16] polotek: hmmm, apparently it's encoded improperly. passing in "utf8" seems to handle it [00:18] siculars has joined the channel [00:19] KungFuHamster has joined the channel [00:23] mnutt has joined the channel [00:25] polotek: found the problem [00:25] polotek: _ry: if there's no encoding passed into readFile it passes back the raw buffer instead of a string [00:26] polotek: don't know if that's intentional or when it was introduced [00:26] polotek: but definitely non-intuitive [00:26] brianarn: Anyone using Express and getting an "Unexpected Indent" error with the simplest of examples like http://pastebin.com/vydRY8qC ? [00:26] brianarn: Rather, with the simplest of templates. If that's a template I try to render, it throws an unexpected indent on that second line. [00:28] polotek: list is dead today [00:30] polotek: apparently it is on purpose. http://github.com/ry/node/commit/c07c601c3b8132104b86c770ea751ddc8a1b0355 [00:38] elliottcable has joined the channel [00:50] polotek: Anyone know if the loading of addons is broken? [00:55] bpot has joined the channel [00:55] polotek: brianarn: it's just you and me bro. slugging it out on a saturday evening [00:55] brianarn: I guess so. :/ [00:55] brianarn: It's killing me. I don't understand why this super simple example is breaking. [00:55] polotek: I would try to help you with your express issue but I can't get my node env set up on this new comp [00:56] brianarn: That stinks. I'm still new enough to node that I'm not sure how to go about fixing up your issue. :/ [00:58] polotek: yeah the last release seems to have had some serious changes [00:58] mnutt has joined the channel [00:58] polotek: I'm trying to roll back to 0.1.93 to see if that makes a difference [00:58] polotek: using nvm http://github.com/creationix/nvm [00:58] polotek: I recommend it for maintaining multiple versions [00:59] polotek: things still change pretty often so running off HEAD can be harrowing [00:59] brianarn: It seems that if I use Express via kiwi, all is fine. If I use express via straight git clone (and update to submodules per the github page), it breaks [01:00] polotek: yeah [01:00] polotek: some submodules might be busted with the latest version [01:02] brianarn: well, maybe I'm even wrong there. Agh. [01:04] polotek: rolling back to previous version did not help [01:05] towski has joined the channel [01:06] robrighter has joined the channel [01:12] alexiskander has joined the channel [01:14] mnutt: brianarn: I had the same problem with express and haml a few days ago [01:14] mnutt: I was also using it via git clone, and not kiwi [01:14] brianarn: Any solution or suggestion? [01:14] mnutt: alas, I don't have a solution [01:14] brianarn: Turns out, even if I use the kiwi one it's still breaking on me :/ [01:15] brianarn: The sample howtonode demo runs just fine off of kiwi on the same system. Drivin' me nuts. [01:16] mnutt: my app also takes a huge performance hit when using express so I haven't pursued it much further [01:17] siculars has joined the channel [01:20] polotek: brianarn: I've got things set u pnow [01:20] brianarn: Well, I figured it out -- that's *immensely* annoying [01:20] polotek: what's your issue again? [01:20] brianarn: I found my problem [01:20] polotek: ah [01:20] brianarn: TextMate was saving files with a CRLF line ending [01:20] brianarn: Changing it to be LF only worked just fine [01:20] brianarn: *stops tearing hair out* [01:21] mnutt: ouch, that's annoying [01:21] brianarn: So weird that that'd hose it, but it does. [01:21] bmizerany has joined the channel [01:23] charlesjolley has joined the channel [01:23] polotek: when you read files as straight uft8 it doesn't recognize CRLF [01:23] polotek: only the LF [01:24] polotek: so you get the CR as data [01:24] polotek: hence, hosed [01:24] brianarn: I guess so. Just, such a weird thing. [01:24] brianarn: I mean, understandable [01:24] brianarn: but still [01:24] Tim_Smart has joined the channel [01:25] brianarn: but, at least it means I can go on with my life [01:27] pointlessjon has joined the channel [01:33] AndChat- has joined the channel [01:36] mrjjwright has joined the channel [01:44] Tim_Smart has joined the channel [01:45] mscdex-mobile has joined the channel [01:55] jbrantly1 has joined the channel [01:58] bpot has joined the channel [02:01] mscdex-mobile has joined the channel [02:05] mscdex-mobile: We need node.js for android :-D [02:05] technoweenie has joined the channel [02:12] charlesjolley has joined the channel [02:22] jedschmidt has joined the channel [02:29] teemow has joined the channel [02:31] BryanWB has joined the channel [02:34] Tim_Smart has joined the channel [02:40] mjijackson has joined the channel [02:42] cerberos has joined the channel [02:43] joshr: hiya [02:43] bmizerany has joined the channel [02:44] joshr has joined the channel [02:45] jedschmidt has joined the channel [02:48] Aria has joined the channel [02:54] mrjjwright has joined the channel [02:55] charlesjolley has joined the channel [02:57] joshr: so with regard to the last email to the list ... [02:57] joshr: an eio_custom callback runs in a thread? [02:57] joshr: is that correct? [02:58] _ry: mscdex: cool [02:58] _ry: joshr: you call it from the main thread - it allows a function to run in the thread pool [02:59] joshr: right, so if i hand eio_custom a callback in my binding code [02:59] joshr: eio runs that callback in a thread in the pool [02:59] _ry: yes [03:00] joshr: ok great [03:00] _ry: the main thing you have to know: you can't touch v8 from inside the thread pool [03:00] joshr: right, makes sense [03:04] Tim_Smart has joined the channel [03:04] joshr: this might come in handy for my project [03:04] _ry: what's your porjecT? [03:04] joshr: partially internal at the moment [03:05] joshr: but i'm working on a gearman binding for nodejs that is on github [03:05] joshr: (not sure if you are familiar with gearman) [03:07] _ry: not really but looking at the page [03:08] PyroPete1 has joined the channel [03:10] _ry: joshr: would not a more general queue server work? (rabbitmq?) [03:10] joshr: yeah definitely, but we've already got some infrastructure [03:11] joshr: baby steps, i work for a bit of a dinosaur [03:11] Yuffster has joined the channel [03:12] _ry: joshr: fair enough [03:12] _ry: looks like the c api is synchronous [03:12] _ry: oh - nevermind. just saw the concurrent client interface [03:12] joshr: yeah [03:13] _ry: gearman_client_run_tasks() is sync though [03:13] _ry: hence the eio_custom [03:13] _ry: okay [03:16] jbrantly has joined the channel [03:17] CIA-75: node: 03rentzsch 07master * ra5b132a 10/ src/node.cc : [03:17] CIA-75: node: fs.Stats.size V8::Integer => V8::Number. [03:17] CIA-75: node: While VM::Integer::Value() offers an int64_t, V8::Integer::New() only [03:17] CIA-75: node: accepts an int32_t, truncating fs.Stat's size in BuildStatsObject(). [03:17] CIA-75: node: I consider this a bug in V8, and we should move back to V8::Integer [03:17] CIA-75: node: when it gets a ctr that allows a int64_t. Until then, this work-around [03:17] CIA-75: node: should hold. - http://bit.ly/bs5FSn [03:24] charlesjolley has joined the channel [03:29] _ry: micheil: btw - your array of clients [03:30] _ry: micheil: that'd be a good place for a linked list [03:30] _ry: micheil: removing element from arary = hard [03:52] technoweenie has joined the channel [03:54] cloudhead: does node just always default to chunked encoding on http responses? [03:57] _ry: cloudhead: unless you specify a content lenght [04:00] cloudhead: _ry: ah cool, I was gonna ask if chunked needs a content-length, that settles that. [04:03] joshr: oh, nice [04:03] joshr: node-memcache uses eio_custom [04:09] charlesjolley has joined the channel [04:32] fernmicro has joined the channel [04:53] polotek has joined the channel [04:57] micheil: _ry: this is actuallt an object, but should be a list [04:57] micheil: _ry: any good docs on linked lists about? [04:58] _ry: micheil: not that i know of [04:58] _ry: micheil: http://en.wikipedia.org/wiki/Doubly-linked_list :) [04:58] micheil: hmm. [04:59] micheil: 'so what, implement a datatype myself? [04:59] _ry: sure [05:00] micheil: because what the list of clients is for is so that I can send a message down their stream, or interact with them [05:00] micheil: using something like forEach(function(client){}) [05:00] micheil: where is... it.. [05:00] micheil: ncz. [05:01] micheil: http://www.nczonline.net/blog/2009/04/21/computer-science-in-javascript-doubly-linked-lists/ [05:02] ditesh|cassini has joined the channel [05:06] micheil: _ry: wouldn't a doubly linked list take up more possible memory? [05:07] micheil: being it makes several references to node [05:09] micheil: _ry: I'll think about this more, for now I think I'm good almost to tag a new version on the new codebase [05:12] _ry: micheil: insignificantly [05:14] CIA-75: node: 03Ryan Dahl 07master * r264e540 10/ (2 files in 2 dirs): [05:14] CIA-75: node: Fix error reporting in child_process callbacks [05:14] CIA-75: node: Issue 120, test case by Nathan Ostgard - http://bit.ly/cCxQb3 [05:16] cerberos has joined the channel [05:21] micheil: hmm.. okay [05:21] boaz_ has joined the channel [05:21] micheil: I suppose on the other hand being the way v8 handles the same references [05:21] micheil: you'd just need to be careful of not modifying in some way the _tail or _head nodes [05:22] jedschmidt has joined the channel [05:24] nsm has joined the channel [05:25] technoweenie has joined the channel [05:26] micheil: I thinked it'd be possible and possibly better to write it using an Object.create style thing vs the constructor/prototype [05:26] micheil: hey jedschmidt, nsm, & technoweenie [05:26] technoweenie: hey [05:26] micheil: almost ready for another version, included the routing stuff [05:28] micheil: doing some no-so-scientific benchmarks I got up to 1000 clients connected (no messages), each client connecting at a 10ms interval [05:28] nsm: micheil: hello [05:29] jedschmidt: hey micheil. [05:29] micheil: jedschmidt: how well could (Fab) play with websockets? [05:30] jedschmidt: micheil: haven't thought about it, to be honest. [05:30] jedschmidt: micheil: might not be the right paradigm, since (fab) is mostly about ask+answer. [05:31] micheil: hmm.. true [05:31] micheil: food for thought then ;P [05:31] jedschmidt: micheil: ha, indeed. [05:31] micheil: ACTION is playing with an early RC for the next version of his websocket server [05:35] BryanWB has joined the channel [05:40] dandean has joined the channel [05:44] micheil: I think my websocket server is either dropping the first message written or it's faster then chrome. [05:44] nsm has joined the channel [05:48] siculars has joined the channel [05:51] smtlaissezfaire has joined the channel [05:53] BryanWB has joined the channel [06:00] nsm has joined the channel [06:08] jpld has joined the channel [06:13] dekz_ has joined the channel [06:24] micheil: _ry: is there any way to debug at the network level as to whether a server is writing data properly? [06:27] _ry: micheil: tcpdump? [06:27] micheil: hmm.. [06:27] micheil: currently compiling wireshark to try that [06:28] inimino: wireshark is awesome [06:28] micheil: I'm pretty sure my server is writing the data, it's just the client isn't receiving [06:28] CIA-75: node: 03Ryan Dahl 07master * rd7762df 10/ test/fixtures/child_process_should_emit_error.js : Forgot to add child_process_should_emit_error.js - http://bit.ly/cOS8AO [06:28] CIA-75: node: 03Ryan Dahl 07master * rd38d96e 10/ lib/child_process.js : Don't emit 'exit' twice from child process - http://bit.ly/dvxOgt [06:28] micheil: er... [06:28] micheil: wireshark from homebrew doesn't install the gui :( [06:30] BryanWB has joined the channel [06:33] _ry: micheil: i like ngrep - easy interface [06:34] kjeldahl has joined the channel [06:42] micheil: hmm.. I couldn't get either of ngrep working (to long any output) or wireshark (failure of x11) [06:43] _ry: micheil: sudo ngrep -lx -d lo0 port 8000 [06:45] micheil: no output [06:45] nsm has joined the channel [06:45] micheil: oh. wait. it's not logging them to stdout [06:49] BryanWB has joined the channel [06:51] micheil: this is so very odd [06:51] micheil: node is definitely sending the message. [06:54] steadicat has joined the channel [06:56] mikeal has joined the channel [07:02] micheil: testing with telnet and I get the first packet. so it's a chrome issue. [07:05] Phazm: anybody have an opinion on the best (read:fastest) db that supports full-text searching? I'm using redis as my primary db, but I need to allow searching by title/description on items, and it doesn't appear that redis has a way of doing that [07:11] nsm has joined the channel [07:12] SamuraiJack has joined the channel [07:22] DracoBlue has joined the channel [07:31] polotek: Phazm: use postgres [07:33] admc has joined the channel [07:34] qFox has joined the channel [07:35] polotek: Phazm: could also use mongodb. don't know how good the indexes are for arbitrary text searching though [07:35] polotek has left the channel [07:38] sveisvei: Phazm: no idea, but just saw this in the modules page http://github.com/gsf/node-solr [07:52] TobiasFar has joined the channel [08:05] riottaba has joined the channel [08:11] micheil: okay, it's definitely a chrome issue.. so I've added a monkey fix. [08:16] aho has joined the channel [08:24] TobiasFar has joined the channel [08:30] micheil: wtf. it suddenly started working. [08:32] admc_ has joined the channel [09:03] keyvan has joined the channel [09:11] micheil: I should've really tagged more versions on my websocket server, but I didn't. [09:11] micheil: just released v1.0.0, which isn't backwards compatible with previous tags. [09:20] franksalim: micheil, i am curious if you wiresharked the traffic between your server and chrome, if you saw anything unusual or unexpected [09:22] _ry: micheil: hey [09:22] _ry: micheil: you should really add some simple docs [09:22] _ry: micheil: it helps so much [09:23] micheil: yeah [09:23] _ry: micheil: just in the readme like http://github.com/ry/node-amqp [09:23] micheil: franksalim: well, I know the server was sending, because I did a telnet and got it [09:23] micheil: I'll work on adding some documentation after dinner [09:23] micheil: & dr who. [09:24] _ry: cool [09:24] micheil: just really glad that I worked out the last of the bugs [09:24] franksalim: micheil, wireshark could tell you which bytes went in which packet, so you could see if chome was having some issues related to packets or timing [09:24] micheil: in the end I didn't end up making the server inherit from http, just create an instance.. and I think I've forgotten something. [09:24] micheil: franksalim: wireshark wouldn't boot [09:25] franksalim: that's all i was wondering. i've never seen what you described, myself [09:25] franksalim: ah [09:25] micheil: shite. [09:25] micheil: forgot something: request event [09:32] micheil: fixed. [09:32] micheil: v1.0.1 [09:32] javajunky has joined the channel [09:32] jedschmidt has joined the channel [09:33] markwubben has joined the channel [09:33] mape: morning morning [09:46] MattJ has joined the channel [09:46] kjeldahl has joined the channel [09:52] sveisvei has joined the channel [09:54] pdelgallego has joined the channel [10:13] micheil: hmm.. when did we add upgrade events? [10:25] sveimac has joined the channel [10:26] N` has joined the channel [10:29] TobiasFar has joined the channel [10:35] micheil: _ry: I'll love you when you figure out that thing with event emitters not throwing errors. [10:35] micheil: biggest PITA sometimes [10:35] charlesjolley has joined the channel [10:36] markwubben has joined the channel [10:49] mscdex has joined the channel [10:50] olegp has joined the channel [10:53] derbumi has joined the channel [11:01] maushu has joined the channel [11:08] dgathright has joined the channel [11:13] hellp has joined the channel [11:14] micheil: _ry: how's this for documentation? http://github.com/miksago/node-websocket-server/ [11:21] TobiasFar_ has joined the channel [11:29] maushu: This sandbox pool business is being harder than I thought. [11:34] DracoBlue: in what problems do you run? [11:34] markwubben_ has joined the channel [11:43] dekz has joined the channel [11:43] teemow has joined the channel [12:07] mfeiri has joined the channel [12:10] xla has joined the channel [12:26] charlesjolley has joined the channel [12:27] mjijackson has joined the channel [12:31] riottaba_ has joined the channel [12:34] siculars has joined the channel [12:34] Tim_Smart has joined the channel [12:35] malkomalko has joined the channel [12:36] siculars_ has joined the channel [12:36] dgathright has joined the channel [13:15] mau has joined the channel [13:58] cerberos has joined the channel [14:00] joshowens has joined the channel [14:10] riottaba has joined the channel [14:15] charlesjolley has joined the channel [14:20] felixge has joined the channel [14:20] felixge has joined the channel [14:20] s has joined the channel [14:21] aaab has joined the channel [14:29] Guest22628 has left the channel [14:29] derbumi has joined the channel [14:36] pascalo has joined the channel [14:36] pascalo: hello [14:38] pascalo: anyone here got a sec, I have a question about the HTTPClinet? [14:38] pascalo: Client [14:39] pascalo: and what happens when the host refuses the connection [14:39] pascalo: Error: ECONNREFUSED, Connection refused [14:39] pascalo: at IOWatcher.callback (net:757:22) [14:39] pascalo: at node.js:176:9 [14:39] pascalo: is what I get atm [14:43] micheil: I'm not sure how node currently handles that [14:43] micheil: I think it throws, iirc. [14:44] gf3 has joined the channel [14:44] pascalo: yeah, but try/catch doesn't do anything ... therefore the app just dies [14:44] pascalo: :( [14:45] pascalo: Ahh, found some google groups comment on it: [14:45] pascalo: http://groups.google.co.uk/group/nodejs/browse_thread/thread/502cc18ad694e635/971d9bab3e03eee8?hl=en&q=ECONNREFUSED+node.js#971d9bab3e03eee8 [14:50] jazgot has joined the channel [14:55] mjijackson has joined the channel [14:55] sveisvei has joined the channel [14:58] derbumi has joined the channel [15:00] mrjjwright has joined the channel [15:05] kennon has joined the channel [15:06] polotek has joined the channel [15:15] marktlang has joined the channel [15:15] Gruni has joined the channel [15:27] siculars has joined the channel [15:29] jazgot: hi, im writing node addon and want to emit event. Is EventEmitter::Emit the only function i have to use, or its more complicated? [15:29] drostie has joined the channel [15:30] smtlaissezfaire has joined the channel [15:32] polotek: jazgot: I'm not sure how this works on the C side of things. I've only had to use them in js. [15:32] polotek: But I know Emit has to be tied to an object, it's not a standalone function [15:33] jazgot: yes, my module inherits form EventEmitter like in postgres example [15:33] polotek: okay. then that's probably all you really need [15:34] alexiskander has joined the channel [15:39] micheil: jazgot: okay, on minute. I'll try and help [15:40] micheil: jazgot: is your source code on github? [15:40] jazgot: micheil: not yet [15:40] micheil: could you push? [15:41] micheil: that way I can see what you've got and suggest ways to move forward [15:42] jazgot: ok, but you probably you wont be able to try it (needs gadu gadu account) [15:43] micheil: doesn't matter [15:43] micheil: I'm just reading the C code [15:44] Gruni has joined the channel [15:45] micheil: okay, first thing I notice is that the C class needs to extend from EventEmitter, like: [15:46] micheil: class GaduGadu : public node::EventEmitter { [15:46] micheil: then inside the Initialize void, you need to call: [15:47] micheil: t->Inherit(node::EventEmitter::constructor_template); [15:47] micheil: where t is the Local [15:47] jazgot: wait, i will just push what i have [15:48] micheil: then, when you wish to emit, it's simply Emit( Name, Argument_Count, Arguments...); [15:48] micheil: okay [15:48] polotek: micheil: looks like you are much better equipped to help [15:48] micheil: ACTION knows some C, and some of the node internals [15:50] derRichard: so, when i add listener in js i cann trigger it with Emit()? [15:50] micheil: derRichard: no. [15:51] micheil: Emit is for C [15:51] micheil: derRichard: for javascript, you use events.EventEmitter.call(this); within your constructor [15:52] micheil: then after your constructor, you do: sys.inherits(ConstructorName, events.EventEmitter); [15:52] micheil: after that, it's done by using this.emit(event, data...); [15:52] derRichard: sorry, i meant triggering a javascript listener from c++ with Emit(). [15:52] micheil: yes [15:52] micheil: not sure about C++ though, for C, that's it [15:53] derRichard: isn't node pure c++? [15:53] micheil: no, [15:53] javajunky has joined the channel [15:53] jazgot: micheil: sorry it took so long, http://github.com/Eyjafjallajokull/node-gg [15:53] micheil: node is mainly JavaScript, with minimal C bindings to various libraries [15:54] micheil: jazgot: that username looks like a volcano. [15:54] jazgot: micheil: it is :) [15:54] jazgot: micheil: i based on postgress example [15:54] micheil: ;p [15:54] micheil: okay [15:54] derRichard: micheil: it uses c libraries but node is c++. (there are a lot of classes and templates in node) [15:55] jazgot: micheil: right now it throws seg fault on Emit in connect [15:55] micheil: jazgot: okay, rather then using PSymbol, try doing: String::New("connect") [15:57] pascalo: hey there ... I am still trying to figure what to do about the client behaviour ... [15:57] micheil: although, PSymbol should work [15:57] micheil: pascalo: there's that thread on the mailing list, beyond that, I couldn't help you. [15:58] pascalo: yeah [15:58] pascalo: http://pastie.org/952546 [15:58] pascalo: here's the pastie for it ... I wonder where I should report to? [15:59] pascalo: is there a bug report email or so? [15:59] micheil: jazgot: also try this for reference: http://github.com/orlandov/node-mongodb/blob/master/src/mongo.cc [16:00] teemow has joined the channel [16:00] micheil: it might help you more, as it's dealing with a socket level communication, which I'm pretty sure gadu gadu would need [16:00] mjijackson: pascalo: http://github.com/ry/node/issues [16:00] DracoBlue has joined the channel [16:01] micheil: jazgot: any reason as to not write this in javascript, anyway? [16:01] jazgot: libgadu withc im trying to use has 2k lines of code [16:01] micheil: ah [16:02] jazgot: i mean only header file :) [16:02] jazgot: so writing it in pure js would be a bit more work, although i only need basic functionality [16:03] jazgot: ok, i will red now mongo code [16:03] jazgot: read* [16:04] micheil: hmm.. [16:04] polotek: jazgot: you could write a small addition to your c binding in js [16:04] polotek: then you could write your emitter functions in javascript [16:05] polotek: example of how I'm doing this. http://github.com/polotek/libxmljs/blob/leak_stop/src/libxmljs.cc [16:05] polotek: check out ExecuteNativeJS [16:06] smtlaissezfaire has joined the channel [16:08] micheil: jazgot: I guess one way to debug would be to debug by removing things [16:08] micheil: eg, comment out the call to gg_login, comment out the printf's etc [16:08] micheil: until the library just emits or whatever [16:09] jazgot: hmm ok [16:09] micheil: that way you can track down what is actually breaking it [16:09] micheil: because it all looks right [16:14] jazgot: even when everything is commented except Emit, it throws seg fault [16:15] jazgot: and when i comment Emit it passes [16:15] micheil: :/ [16:15] micheil: jazgot: shoot an email to the mailing list, maybe _ry will be able to lend tips when he's about? [16:17] jazgot: i will fight with this a bit more, and if that fails i will try list :) [16:18] micheil: okay [16:18] ditesh|cassini has joined the channel [16:19] polotek: jazgot: so it looks like Emit just wraps an internal function called ReallyEmit [16:19] polotek: and the only difference is that takes a hande to "self" [16:19] micheil: that's correct [16:19] polotek: or the object that is emitting [16:19] micheil: although, it's never a good idea to use internals like that [16:19] micheil: it's generally better to use Emit [16:20] polotek: but I can't find where that self handle is set [16:20] polotek: in the node code [16:21] micheil: yeah, I wouldn't recommend trying to figure out the exact internals of ReallyEmit [16:21] micheil: it could get messy ;P [16:21] polotek: I'm saying that might be the source of the issue [16:21] polotek: if that handle isn't set to the emitter object you get segfaults when you try to access it [16:22] joshr: NoForRealsEmit [16:22] polotek: jazgot: try running your script through gdb to see where it actually craps out [16:24] SamuraiJack_ has joined the channel [16:32] polotek: I think setting up emitters in C is more complicated than it looks [16:33] polotek: jazgot: check out node_signal_watcher.cc [16:33] micheil: polotek: possibly [16:33] polotek: lots of wrapping and setting up references [16:33] polotek: which may or may not be related to Emit and other functions working correctly [16:33] micheil: polotek: now you're really digging into the guts of event emitters.. [16:34] xla has joined the channel [16:36] polotek: micheil: not anymore :) My head hurts [16:36] smtlaissezfaire has joined the channel [16:36] micheil: polotek: told you it could get messy ;P [16:36] micheil: I tried it a while back, didn't come back with much [16:36] micheil: I did slay one or two dragons, before running out of lives [16:37] micheil: oh. wait. sorry, wrong thing there. [16:37] micheil: but yeah, it does get messy, unless you have really good C / JavaScript / V8 knowledge [16:38] polotek: I've been battling with garbage collection in libxmljs [16:44] siculars_ has joined the channel [16:44] charlesjolley has joined the channel [16:45] mrjjwright has joined the channel [16:48] jazgot: polotek: node_signal_watcher seems to be simple event example, but its hard to read, i think i can get somethinf from it [16:49] jazgot: seems like setting up ev_io_set and ev_io_start is nessesary [16:49] jazgot: still cant find what are Ref() and Unref() doing [16:53] riottaba_ has joined the channel [16:53] jan____ has joined the channel [16:56] polotek: jazgot: good luck. if you can cat _ry on here I'm sure he'll be able to help [16:59] robinduckett has joined the channel [16:59] robinduckett: Good evening :) [16:59] micheil: oh, help us. :P [16:59] robinduckett: hey now, am I that bad? :( [16:59] micheil: yeah, totally. [16:59] micheil: :P [16:59] robinduckett: ;o; [17:09] brianmario has joined the channel [17:16] robinduckett: Meanies. [17:20] _Fuxx has joined the channel [17:20] derbumi has joined the channel [17:20] Fuxx_ has joined the channel [17:30] DracoBlue has joined the channel [17:31] thotypous has joined the channel [17:33] Aria has joined the channel [17:42] hellp has joined the channel [17:56] cij has joined the channel [18:10] saikat has joined the channel [18:12] charlesjolley has joined the channel [18:12] steadicat has joined the channel [18:14] teemow has joined the channel [18:14] marktlang has joined the channel [18:15] dekroning has joined the channel [18:27] dgathright has joined the channel [18:27] dgathright_ has joined the channel [18:29] javajunky has joined the channel [18:29] thotypous has joined the channel [18:29] thotypous has joined the channel [18:30] bpot has joined the channel [18:33] felixge has joined the channel [18:33] felixge has joined the channel [18:36] felixge: so _ry, how are you related to mr. lennon? :) [18:37] felixge: I mean you can't deny it after the evidence presented by jed :) [18:37] teemow has joined the channel [18:38] jan____: haha nice [18:39] derRichard: does node run on microsoft windows? [18:39] micheil: not yet [18:40] jan____: is there any other windows? :) [18:41] Aria: X-Windows, OpenWindows [18:41] micheil: yeah, glass ones. [18:41] jan____: hehe, I stand corrected [18:41] jan____: I have CloseWindows. it's getting cold here [18:45] cloudhead has joined the channel [18:48] V11 has joined the channel [18:54] kjeldahl has joined the channel [18:55] _ry: felixge: heh- i think that's a really ugly photo [18:55] technoweenie has joined the channel [18:56] colincampbell has joined the channel [18:57] mape: Just need to let the hair go a little more [18:58] mape: http://www.flickr.com/photos/jsconf/4587442058/sizes/l/in/photostream/ better photo though [19:00] V11: looks like something eat your shirt :$ [19:08] bpot has joined the channel [19:09] kjeldahl has joined the channel [19:10] brianmario has joined the channel [19:11] CIA-75: node: 03Ryan Dahl 07master * r1d28cfc 10/ lib/net.js : [19:11] CIA-75: node: Better logic for testing if an argument is a port [19:11] CIA-75: node: If you did server.listen('123') it would open a socket in the current [19:11] CIA-75: node: directory called 123. Now it will interpret it as a port. - http://bit.ly/cHvUiL [19:11] _ry: V11: yeah - i never buy new things [19:13] mape: Isn't that pre torn? Otherwise the neck line wouldn't be jaggy [19:16] Yuffster has joined the channel [19:17] _ry: pre-torn? like fake torn? [19:17] _ry: no [19:18] _ry: authentic crappy clothes :) [19:18] V11: Fashion statements, before you know it everbody at JSConf eu wears it ;) [19:19] mape: hehe [19:19] mape: Yeah, kinda looks like that. With the military jacket it feels all out fashion rebel [19:20] V11: As for upgrading node, another install would just be sufficient ? [19:20] _ry: V11: yes [19:26] V11: lets see if i can reproduce creating parse errors when using HTTP client on our website o_o [19:27] V2: Someone stole my V1 ;( [19:29] V2: If you do a "make" without doing a ./configure first it prompts me with ( run 'waf configure' first ) Shouldn't that be ./configure instead of waf configure [19:30] micheil: V2: it's due to make proxying to waf [19:31] robinduckett: @V1 why didn't you register your nick? :P [19:31] V2: it is o_o [19:31] V2: (notice) V1 has been ghosted. [19:31] V2: but i cant do /nick V1 [19:31] V2: adium tells me V1 is taken [19:31] robinduckett: yeah he's got auto retake name on [19:31] robinduckett: hang on [19:31] robinduckett: ghost it again [19:32] V2: its really annoying :p [19:32] robinduckett: try again [19:32] robinduckett: try again [19:32] robinduckett: try again [19:32] robinduckett: try again [19:32] robinduckett: try again [19:32] robinduckett: oops [19:32] robinduckett: lol [19:32] V1: Finally i'm me again. [19:33] robindu has joined the channel [19:33] robindu: That almost worked :D [19:33] V1: thanks robinduck :p [19:33] robinduckett: whee [19:33] V1: Maybe i should get a decent IRC client in the future ;) [19:33] robinduckett: NickServs should really stop auto-retaking [19:34] V1: indeed [19:34] robinduckett: bbiab [19:35] _ry: mscdex: ping [19:35] _ry: mscdex: how's ncurses? [19:35] robinduckett: _ry: in the photo you posted earlier, are the holes in your tshirt supposed to be there? [19:35] robinduckett: Is that like, some designer feature? I get that from spilling battery acid on my clothes. [19:36] V1: Bullet holes, _ry is a terminator from the future to bring us async server so we can build skynet [19:36] maushu has joined the channel [19:36] robinduckett: Same with paint splotches on stuff, why does tommy hillfiger think my shirt's going to look better if he douses it in house paint? [19:37] robinduckett: anyway I'm late to go take some drugs. Peace. [19:39] mape: So who else is grabbing nodejs.td domains before squaters get them? [19:40] industrial has joined the channel [19:40] micheil: mape: nodejs.com for 60$+US [19:40] mape: That isn't bad [19:41] mape: I just got .se so it can be used for the greater good sometime down the line [19:42] mape: Feels like the .com is a good thing to have later down the line? [19:43] micheil: ACTION wants some millionaire company to buy the .js gTLD [19:43] dks has joined the channel [19:44] micheil: mape: here we go, for exactly 60$US you should get it. [19:44] dks: is anyone using v0.1.94 [19:45] mape: micheil: you'r sellin? :P [19:45] V1: I just upgraded. [19:45] V1: Why? [19:45] dks: I'm seeing incompleted HTML responses [19:45] micheil: mape: no, I just tried to buy. [19:45] mape: for 60? [19:45] micheil: yeah [19:45] micheil: need an account + credit card though [19:45] V1: http server or client [19:45] dks: http server [19:46] mape: Is Sedo shady? [19:46] mape: Like steal my cash kinda shady? [19:46] dks: the content length is ok, but the actual returned number of bytes is less [19:46] V1: Mine is working fine, got a reproducible testcase? [19:47] micheil: mape: I don't think so [19:47] rolfb has joined the channel [19:47] dks: Not yet (it is a big project). [19:47] micheil: mape: but then again, I'll only buy domains through namecheap these days. [19:47] dks: But I'll try to make one. [19:47] dks: I'm using req.end(body,"utf8") [19:47] mape: Hmm I shouldn't get more domains, have 28 of them and I only use 3 :/ [19:47] boaz_ has joined the channel [19:48] dks: res.end ofcourse and not req.end [19:49] DracoBlue: Hey, I tried to update to nodejs 0.1.94 (from 0.1.93) and expiriencing issues with delivering static files. [19:49] DracoBlue: It seems like it reads only half of them (some times). [19:50] dks: DracoBlue: that is the same problem as I have [19:51] DracoBlue: http://gist.github.com/395365 this is my testcode [19:51] arlolra has joined the channel [19:51] DracoBlue: great dks ;) [19:52] DracoBlue: it seems like readFile does not load the entire file, though. [19:53] dks: with me the problem really is the response back to the browser [19:53] micheil: night chaps. 6am [19:53] mape: micheil: Guess well see if I get it now :) [19:53] micheil: heh [19:53] joshbuddy has joined the channel [19:53] joshbuddy has joined the channel [19:54] micheil: I'm looking to sell theboringneue.com for 15$ [19:54] micheil: or 10$US [19:54] mape: isn't that like the registration fee? [19:54] micheil: pretty much [19:54] micheil: I registered it, then realised I don't need it [19:55] micheil: better it go to someone who can find a use for it. [19:55] mape: hehe tends to be like that, just got mdma.se [19:55] micheil: or, I keep it. [19:55] mape: Not sure what I would need that for [19:55] micheil: well, it was going to be an app, but then I released the gap for the app was filled, no need to make the app then [19:55] micheil: I might use it later. [19:55] DracoBlue: dks: I noticed that too, the content is the correct thing. [19:55] micheil: anyway, night' [19:56] mape: nn [19:56] micheil: also, <3 isaacs for the package.json [19:56] micheil: that'll come tomorrow. [19:56] polotek has joined the channel [19:57] keyvan has joined the channel [19:58] technoweenie has joined the channel [20:05] dgathright has joined the channel [20:07] joshbuddy_ has joined the channel [20:10] smtlaissezfaire has joined the channel [20:12] Tim_Smart has joined the channel [20:16] felixge: _ry: I'm hacking on this solaris issue [20:16] felixge: _ry: but it seems like GCC 3.4.6 doesn't have a __builtin_signbit function [20:16] felixge: _ry: do you think it will take a newer gcc version to fix this? [20:19] felixge_ has joined the channel [20:19] felixge_ has joined the channel [20:22] xla: quit [20:23] polotek: anyone know why loading modules from relative paths stopped working? [20:26] dks: polotek: for me it still works (v0.1.94) [20:26] dks: i'm using require("./lib/somefile") [20:28] polotek: I get this. TypeError: Cannot call method 'lastIndexOf' of null [20:28] technoweenie: are you sure thats from reloading the file [20:28] technoweenie: or from running the file [20:28] technoweenie: maybe lib/somefile.js is busted [20:28] polotek: module loader [20:28] polotek: nah, works fine when it's on the path [20:29] technoweenie: oh, works for me [20:29] technoweenie: is there a stack trace? [20:29] polotek: technoweenie: are you running on a stable branch too? [20:29] polotek: or HEAD? [20:29] polotek: I'll switch over to stable and try [20:29] technoweenie: stable but mya be old [20:29] technoweenie: maybe [20:30] DracoBlue: http://gist.github.com/395385 anyone an idea, why the b) does not work in 0.1.94 anymore? Worked in 0.1.93, though. a) looks really not like the way to go ;). [20:31] siculars has joined the channel [20:31] dks: DracoBlue I just posted a message on google groups with a test case [20:32] polotek: nope 0.1.94 busted too [20:32] dks: Now just waiting for the moderator [20:33] polotek: gist: http://gist.github.com/395387 [20:33] polotek: of traceback [20:34] polotek: apparently only happens in the repl [20:34] polotek: fun [20:34] DracoBlue: dks: what was the title of the message? [20:36] dks: something like incomplete responses (forgot exact title) [20:36] siculars_ has joined the channel [20:36] dks: But I build a simple test case, that can reproduce the error (if you use something like ab) [20:38] dks: http://gist.github.com/395388 [20:39] polotek: module loading in repl is known issue. http://github.com/ry/node/issues/#issue/86 [20:39] polotek: but apparently hasn't been addressed by _ry yet [20:45] k3yvn has joined the channel [20:45] polotek: dks have you tried setting the encoding to "utf8"? [20:45] polotek: it's binary by default [20:46] polotek: also your example gist isn't actually writing anything [20:47] polotek: maybe I actually missed what your problem was :) if so, my apologies [20:47] DracoBlue: dks: it looks like this is the same issue, isn't it? http://groups.google.com/group/nodejs/browse_thread/thread/6ae71a0a6741533b/c171f82bba9b3d35?hl=en&lnk=gst&q=utf8#c171f82bba9b3d35 [20:47] DracoBlue has left the channel [20:47] DracoBlue has joined the channel [20:50] DracoBlue: polotek: I even tried to readFile with utf8 encoding and write it with utf8 encoding again [20:50] DracoBlue: still the same issue :( [20:51] saikat has joined the channel [20:51] mau has joined the channel [20:53] technoweenie: hey does anyone know of an example of a basic makefile that just runs all *_test.js files in a test dir [20:54] polotek: ah [20:54] polotek: DracoBlue: you don't pass the body to res.end() [20:55] polotek: you do res.write(body) [20:55] polotek: then res.end() [20:55] polotek: no args [20:55] polotek: your example works fine for me with that change [20:55] DracoBlue: yes [20:55] DracoBlue: you mean a) ? [20:55] DracoBlue: or what? [20:56] polotek: oh no sorry. the second gist, sent by dks [20:56] polotek: http://gist.github.com/395388 [20:57] sveisvei has joined the channel [20:58] keyvan has joined the channel [20:58] siculars has joined the channel [20:59] CIA-75: node: 03Ryan Dahl 07master * rab068db 10/ (6 files in 5 dirs): [20:59] CIA-75: node: Improve error reporting [20:59] CIA-75: node: - No more single line "node.js:176:9" errors [20:59] CIA-75: node: - No more strange output when error happens on first line due to [20:59] CIA-75: node: module wrapper function. [20:59] CIA-75: node: - A few tests to check these things - http://bit.ly/92Ji4m [20:59] polotek: "No more single line "node.js:176:9" errors" woot! [21:00] _ry: technoweenie: http://github.com/ry/nginx-ey-balancer/blob/467df3fd200ecc49a815ea1dcbbf18bba3cae7e0/Makefile#L22-29 [21:02] Aria: Yay! [21:03] dks: polotek: I though res.write causes chunked output ? [21:03] polotek: dks: nope, has nothing to do with res.write [21:03] mikeal: only if you don't set content-length [21:03] polotek: chunked output happens whenever content-length [21:03] polotek: yeah what he said [21:03] polotek: you can res.write as often as you like [21:04] polotek: if you're in chunked mode it gets streamed [21:04] dks: Ok, thanks. I'll try it again then. [21:04] polotek: if not then it gets buffered until you call res.end() [21:04] mikeal: it's not buffered [21:04] mikeal: it's just written differently [21:05] polotek: mikeal: different how? [21:05] mikeal: it writes it to the socket, it just doesn't do http chunking on the writes [21:05] polotek: you mean it could still start showing up to the client before res.end? [21:05] dks: mikeal, doesn't this cause many tcp/ip packets ? [21:05] mikeal: definitely [21:06] mikeal: this is how it works [21:06] mikeal: if you set content-length [21:06] charlesjolley has joined the channel [21:06] mikeal: and you do res.write(chunk) [21:06] mikeal: that chunk is written to the socket, untouched [21:06] mikeal: unless pause gets called on the stream and the client can't accept any more [21:06] mikeal: when you don't set content-length [21:07] mikeal: and you call res.write(chunk) [21:07] mikeal: a line gets written with the length of the chunk, then the chunk [21:07] mikeal: that's how http chunked encoding needs to look [21:07] mikeal: for it to be parsed properly [21:08] Guest41772: Ah, chunked http. How so beautifully complicated. [21:08] mscdex: _ry: it's coming along, slowly but surely [21:08] mikeal: also, i don't know if res.write(chunk) will always match the exact size of the chunk [21:08] dbfury has joined the channel [21:08] mikeal: there might be some buffering involved in node [21:09] mikeal: same in the server, the chunk emitted for the data event [21:09] polotek: hmmm, thanks for the info [21:09] mikeal: isn't the exact chunk over http [21:09] _ry: mscdex: got any code up? [21:09] mscdex: not yet [21:10] mscdex: i will soon though [21:10] jan____: _ry: the photo is not ugly at all :) [21:11] mikeal: we should get some glossy press shots of _ry for conference speaker photos :) [21:11] alexiskander has joined the channel [21:11] _ry: jan____: aw thanks :) [21:12] pointlessjon has joined the channel [21:13] polotek: later all [21:13] polotek has left the channel [21:20] bmizerany has joined the channel [21:25] jpld has joined the channel [21:28] dks: rewriting to res.write makes no difference. Still receiving less bytes than should. [21:30] JimBastard has joined the channel [21:31] JimBastard: hey cloudhead do you have that link to the addWatcher stuff? [21:31] maushu: dks, is it a power of two number? [21:31] maushu: Like, sending 168kb and only receiving 128kb? [21:32] dks: That I cannot tell. Since it happens under load and I can only see the aggregate [21:32] _ry: dks: how are you testing? [21:32] dks: _ry: i'm using ab [21:32] polo has joined the channel [21:32] gwoo has joined the channel [21:33] _ry: dks: curl -s http://nodejs.org:9090/ | wc -c [21:34] _ry: ^-- your script [21:34] dks: I'll give it a try [21:36] DracoBlue: _ry: I have the same issue, curl -s http://staging.spludo.com/static/mootools-1.2.3.js | wc -c [21:36] gJ|Alex has joined the channel [21:36] DracoBlue: always something between 28000 and 31000 no fixed value [21:37] _ry: DracoBlue: hmm [21:37] DracoBlue: But should be 66611. curl -s http://spludo.com/static/mootools-1.2.3.js | wc -c [21:37] DracoBlue: is the 0.1.93 version [21:38] cloudhead: JimBastard: https://gist.github.com/fa2db53f4817fcf977a0 [21:38] dks: _ry: I just ab your demo (small load) and this also gives the wrong result [21:38] dks: TML transferred: 10198500 bytes [21:38] DracoBlue: Looks like the connection is closed (.destroy()?) to early or something like this. [21:38] DracoBlue: But got to get some sleep now. Good luck guys! [21:39] dks: should be 1000*11835 [21:39] JimBastard: so something like fn.create.addWatcher('before', function (obj) {log('about to create ' + inspect(obj));}); ? [21:39] JimBastard: i think that would be pretty sweet [21:39] _ry: dks: maybe that includes the header? [21:40] JimBastard: yo _ry , you got anything to say about doing a watchers api? [21:40] dks: No, ab makes distinction between html and other [21:41] JimBastard: maybe make it part of the EventEmitter? [21:41] _ry: JimBastard: ? [21:41] cloudhead: JimBastard: yea, I think that's best [21:41] JimBastard: addWatcher() removeWatcher() [21:41] JimBastard: these would be like aspects [21:41] JimBastard: aop [21:42] cloudhead: I'm not sure they'd have as much use in core node though [21:42] JimBastard: before would fire "before" the addListener events fired [21:42] JimBastard: i dunno about core either, but id like some input :-) [21:42] cloudhead: yeh [21:43] _ry: dks: okay i see what you mean now [21:44] _ry: Document Length: 11835 bytes [21:44] _ry: Complete requests: 1000 [21:44] _ry: HTML transferred: 10174168 bytes [21:46] dks: _ry: I also witness the behavior in normal browsers. [21:46] Tim_Smart: _ry: Hows the 2.0 milestone coming? [21:47] _ry: Tim_Smart: 0.2 [21:47] Tim_Smart: duh, yeah [21:47] Tim_Smart: I'm thinking in reverse >.> [21:47] _ry: Tim_Smart: just trying to clean up bugs [21:47] _ry: probably a few weeks off still [21:47] atmos: is anyone on the heroku node.js beta ? [21:48] mape: atmos: creationix is [21:48] Tim_Smart: Cool cool. Has performance for large requests got any better lately? [21:49] atmos: mape: k, i got my beta account but don't seem to have access to the stack [21:49] atmos: wanted to see if anyone else was actually using it right now [21:50] plhw_ has joined the channel [21:51] dks: Once I got my head around how to deal with "true asynchronous" programming, I really start enjoying working with node. [21:52] jazgot: im writing node C++ module, can anyone explain what is "ev_io" structure used for? [21:53] towski has joined the channel [21:59] _ry: jazgot: for being notified when a socket fd is readable or writable [21:59] teemow has joined the channel [22:00] _ry: Tim_Smart: using buffer for large responses improves performance drastically [22:00] _ry: Tim_Smart: writing out large strings sucks [22:00] _ry: Tim_Smart: writing out large buffers can be done a higher throughput than nginx [22:00] _ry: so - static files should be served from buffers [22:01] _ry: small strings are quite fast [22:01] _ry: but it's something that needs to be dealt with, for sure [22:01] _ry: Tim_Smart: you should checkout my jsconf slides... http://nodejs.org/jsconf2010.pdf [22:01] _ry: it discusses these thigns [22:02] dks: _ry: I did some testing with 10k response and strings where faster than buffers (xml to string versus xml to buffer and then output) [22:03] aho has joined the channel [22:03] Tim_Smart: Will do. Has someone made a static file server with buffers yet? [22:03] _ry: Tim_Smart: wheat does that [22:03] _ry: in HEAD fs.readFile defualts to outputing buffers [22:03] Tim_Smart: brilliant [22:08] TobiasFar has joined the channel [22:09] keyvan has joined the channel [22:09] CIA-75: node: 03Ryan Dahl 07master * r1ecb11f 10/ test/simple/test-http-full-response.js : [22:09] CIA-75: node: Add failing test - http responses not all complete [22:09] CIA-75: node: Report and test by soderblom.peter@gmail.com - http://bit.ly/dnEbGg [22:09] _ry: dks: okay here is an automated test for it [22:11] _ry: bbiab [22:12] dks: _ry: that is quick. [22:12] jan____: mikeal: this is uncanny: http://gist.github.com/392906#comments [22:14] darkf has joined the channel [22:15] mikeal: haha [22:15] mikeal: i was talking to jchris about it [22:15] jan____: I need it for couch.io [22:15] mikeal: because i was screaming about the html editor in tumblr that isn't an html editor ans still changes your markup [22:16] jan____: yup [22:16] mikeal: http://mikeal.couchone.com/_utils/database.html?test [22:16] jan____: exacyly [22:16] jan____: yeah, saw it :) [22:16] jan____: I'll port that to much [22:16] jan____: so eveybody can use tumblr, byt we can use pure markdown [22:16] mikeal: so, the API will only give us the last 50 articles [22:16] mikeal: and we have 49 [22:16] jan____: so you got em all out? [22:16] jan____: close call :) [22:16] mikeal: so we'll need to keep this db around to get the last couple :) [22:16] siculars has joined the channel [22:17] mikeal: once we add a few more [22:17] jan____: yea [22:17] jan____: please keep the db [22:17] mikeal: i love how the tumble "JSON" API is only JSONP [22:17] mikeal: i have to strip out a bunch of stuff to get it to parse [22:17] mikeal: i will [22:18] dks: _ry: doesn't seem to get pass -n 100 (I don't get -n 1000) [22:18] jan____: mikeal: you sure it is just jsonp? [22:18] mikeal: yup [22:18] jan____: hm [22:18] mikeal: i read through the API docs [22:19] mikeal: it's predictable enough to parse out [22:19] jan____: ah, right, they force feed you a function [22:19] mikeal: you can tell they just favor xml [22:19] jan____: eyah [22:19] jan____: *yeah [22:19] mikeal: like /api is xml and /api/json is jsonp [22:19] jan____: the blog on couch.io uses the JSON api [22:19] jan____: I read thorugh the docs, too :) [22:19] jan____: I didn't get why they like XML better [22:20] jan____: "here is how you do it [convoluted example] and here is how you can do it with JSON [simple straightforward way]" [22:20] mikeal: it's a generational thing :) [22:20] jan____: :) [22:20] mikeal: their developers are probably like 5 years older than us [22:20] mikeal: which is like 20 in web years [22:20] dks has left the channel [22:20] jedschmidt has joined the channel [22:20] jpld has joined the channel [22:21] jan____: at least! [22:26] mnutt has joined the channel [22:27] V1 has joined the channel [22:40] cloudhead: do http responses require a \r\n after the body? [22:40] cloudhead: in other words, should they be terminated by \r\n [22:41] atmos: hehe [22:42] atmos: cloudhead: i would imagine so, don't know offhand [22:43] cloudhead: atmos: hmm [22:43] atmos: cloudhead: it doesn't appear to require it [22:43] atmos: http://www.ietf.org/rfc/rfc2616.txt search for '6 Response' [22:43] mikeal: cloudhead: yes and no [22:44] mikeal: for chunked encoding the default EOL is \r\n but the header can change that to something non-default [22:44] mikeal: the transmission is typically ended with 0\r\n as well [22:44] atmos: ls [22:44] atmos: yay, wrong shell [22:45] cloudhead: mikeal: hmm, cause when I curl to it, It doesn't add a \r\n, whereas if I curl to couchdb for instance, it does [22:45] mikeal: is this with a fixed content-length [22:46] mikeal: or with chunked encoding? [22:48] isaacs has joined the channel [22:48] isaacs: _ry: hey, you around? [22:52] cloudhead: mikeal: both [22:54] bpot has joined the channel [22:56] charlesjolley has joined the channel [22:58] Azeroth has joined the channel [23:00] Azeroth-Working has joined the channel [23:00] mnutt has joined the channel [23:00] _ry: isaacs: hey [23:00] isaacs: hey [23:01] isaacs: so, i have a patch to fix that perennial "require is broken in the repl" issue [23:01] isaacs: also, proper scoping with Script.runInNewContext [23:01] _ry: isaacs: okay [23:01] isaacs: however... it'll mean removing the ReportException in node_script.cc [23:01] isaacs: otherwise the repl is pretty obnoxious [23:02] _ry: hm [23:02] isaacs: basically, that means that syntax errors are catchable, but they have the wrong line/char [23:03] isaacs: process.compile still does the "crash the whole process" thing for syntax errors [23:04] _ry: maybe we should ask herby [23:04] isaacs: okie dokie. [23:04] isaacs: i'm failing one of the repl tests atm, so i'll figure that out, and then send it to you two to decide on. [23:05] isaacs: i could just fix the require thing adn leave evalcx stuff out of it, but it sure makes it a simpler issue if the repl isn't trying to pretend to be scoped when it's really no [23:05] isaacs: t [23:06] polo7 has joined the channel [23:14] Aria: Woo! Node on Solaris was easy to get going. [23:15] Aria: Just had to handle bzero ->memset [23:18] maushu has joined the channel [23:20] _ry: Aria: patch? [23:20] _ry: isaacs: cool [23:21] mscdex: me thinketh it's time to use the ncurses c++ binding instead hehe [23:21] Aria: Oh, it's easy, _ry -- change string.h to strings.h in node.cc [23:21] Aria: (bzero is in strings.h according to POSIX.1) [23:21] Aria: (And Solaris takes it to the letter.) [23:22] riottaba has joined the channel [23:29] CIA-75: node: 03Ryan Dahl 07master * rb785082 10/ src/node.cc : Change string.h to strings.h compile on solaris - http://bit.ly/bOrMlF [23:44] pkrumins: _ry, there are several annoying things that should be fixed. since api is changing from relesae to release anyway, it should be fixed - 1) The port, host thing. The port for some reason is the first argument. It's more reasonable to have host, port pair, and not port, host. 2) server.listen(port), if port is string it listens on a socket, even if the string is "9000" - annoying. Perhaps add server.listenSocket(socket_path), and make server.listen(port [23:45] _ry: 1) no, i like it that way 2) fixed today http://github.com/ry/node/commit/1d28cfcfb9ad48e03a0b6c48eda97b5c91a5e3ae [23:46] pkrumins: why do you like 1)? [23:46] pkrumins: everyone is doing host:port [23:46] pkrumins: and you're doing port:host [23:46] _ry: because there is a reasonable default for host [23:47] pkrumins: but it's only useful for beginners to have localhost as default [23:48] pkrumins: _ry hooray for 2) [23:48] pkrumins: but now what if i have a socket named '5000' :) [23:48] pkrumins: i should use './5000' or '/path/to/5000' [23:48] pkrumins: and what about 3)? [23:48] pkrumins: 3) [23:48] pkrumins: process.argv doesn't start until the 3rd element - annoying. It could start at 1st element. [23:49] _ry: yes, that's a problem [23:49] _ry: i just haven't got around to it yet [23:49] pkrumins: oh okay [23:51] JimBastard: anyone have any code kicking around for returning files and directories as JSON recursively?