[00:00] PeterPeterPeter has joined the channel [00:00] isaacs: tjholowaychuk: where's "app"? [00:00] isaacs: tjholowaychuk: req.app? [00:00] robertfw has joined the channel [00:00] ryah_: mikeal: i dont think its getting emitted on the agent [00:00] tjholowaychuk: yeah you can get at it that way i guess, that's more for internals but whatever [00:00] mikeal: https://github.com/joyent/node/blob/master/lib/http.js#L1239 [00:01] mikeal: there is a test for it [00:01] mikeal: and it's documented that way [00:01] pifantastic has joined the channel [00:01] mikeal: http://nodejs.org/api/http.html#event_upgrade_ [00:03] mikeal: that event is for websockets right? [00:03] dshaw_ has joined the channel [00:04] beriberikix: isaacs: is there a .bat in the works for NPM? :) [00:04] isaacs: beriberikix: yeah, haven't figured that out yet :) [00:06] beriberikix: isaacs: might be easier to do it in something like AutoIt and spit out as an exe [00:06] tshpaper has joined the channel [00:06] ryah_: mikeal: yeah - im not sure why i did that [00:06] jtsnow has joined the channel [00:06] mikeal: i'm talking to guillermo about it a bit [00:07] mikeal: once you upgrade a connection it needs to get removed from pooling [00:07] beriberikix: isaacs: reviewing the .sh to see what you actually to there... [00:07] creationix: I need help with the event loop [00:07] creationix: libev and v8 scare me [00:07] ryah_: creationix: ok [00:07] ryah_: what's up? [00:07] creationix: ryah_: for my node-sdl bindings [00:08] creationix: SDL expects the app to make their own event loop, but I want to integrate it into node's event loop somehow [00:08] creationix: so it should be easier than integrating with glib or something that has it's own [00:08] creationix: but I'm still at a loss [00:08] creationix: http://www.libsdl.org/intro.en/usingevents.html [00:09] donaldpcook has joined the channel [00:10] ryah_: creationix: have you seen https://github.com/deanm/plask [00:10] isaacs: beriberikix: the general issue is that bin files are implemented using symlinks in npm right now [00:10] isaacs: beriberikix: that has to be done with .bat files instead. bootstrapping is comparatively easy [00:10] Reginald_T_B has joined the channel [00:10] beriberikix: isaacs: via mklink? [00:11] creationix: ryah_: that looks cool. Though I specifically need SDL so it will also work for webOS apps [00:11] isaacs: beriberikix: no, via fs.symlink [00:11] isaacs: beriberikix: in node [00:11] rchavik has joined the channel [00:11] beriberikix: oh, got it [00:11] isaacs: beriberikix: npm doesn't work on node 0.5 yet. [00:11] creationix: ryah_: maybe I can peek at the event loop code there? [00:11] isaacs: beriberikix: and doesn't work with the native windows port yet. [00:11] ryah_: creationix: can you point me to the docs? [00:11] isaacs: beriberikix: that'll come in a few months. [00:12] pen has joined the channel [00:12] creationix: ryah_: http://www.libsdl.org/intro.en/usingevents.html [00:13] beriberikix: isaacs: I figured, 0.5.1 is mark unstabled anyway. But you know node w/o npm is like cereal w/o milk :P [00:13] indexzero has joined the channel [00:13] Bonuspunkt has joined the channel [00:13] ryah_: creationix: i think you'll need to have another thread [00:13] Reginald_T_B: Hi everyone - can I ask some noob questions? [00:14] creationix: ryah_: so I won't have to poll constantly? [00:14] Nexxy: Reginald_T_B, never ask to ask [00:14] rook2pawn has joined the channel [00:14] Reginald_T_B: lol - okay. here goes: [00:14] creationix: ryah_: ok, so assuming I have another thread working, how do I send events to v8 in the main thread? [00:14] Nexxy: THE ANSWER IS NO! [00:14] ryah_: creationix: actually.. i think we should look at plask [00:14] ryah_: i think it has the answer [00:15] Lightdork has joined the channel [00:15] Reginald_T_B: So I was trying to do an install of wheat and ran into some dependency issues [00:15] creationix: ryah_: the good news is that I'm learning a lot of C++ in the process :) [00:15] Reginald_T_B: said i needed the creationix module - I can npm that ? [00:15] creationix: Reginald_T_B: indeed [00:16] Nexxy: you can install creationix via npm? [00:16] bnoordhuis: creationix: you'll have to put the sdl event loop in another thread [00:16] creationix: Reginald_T_B: you should just be able to npm install wheat and be done [00:16] Nexxy: that's kinda like javascript transubstantiation [00:16] bnoordhuis: creationix: you can communicate from that thread with the main thread through a pipe [00:17] Reginald_T_B: that's what I thought. Which file in wheat serves as "index' ? [00:17] bnoordhuis: creationix: simple solution is to put your events in a mutex-locked structure [00:17] bnoordhuis: creationix: then write a byte to the pipe so the main thread wakes up [00:17] Reginald_T_B: couldn't find an "index.js" [00:17] bnoordhuis: creationix: then have the main thread pull off the events from said structure [00:17] ryah_: creationix: https://github.com/deanm/plask/blob/master/main.mm#L50-95 [00:20] iMiksu has joined the channel [00:20] creationix: hmmm Objective C [00:21] [[zz]] has joined the channel [00:21] jklabo has joined the channel [00:21] creationix: I have a working solution now just doing simple polling on a JS setInterval, but it's terribly heavy on the CPU [00:22] hybsch has joined the channel [00:22] hybsch has left the channel [00:23] creationix: ryah_: not sure what I can use from that plask code, I don't have kqueue [00:24] rook2pawn: where the stdout data event kept misfiring for me [00:24] creationix: bnoordhuis: what if there are events coming in faster than the main thread can consume them? [00:24] Reginald_T_B_ has joined the channel [00:24] creationix: bnoordhuis: will the event thread just block on the mutex? [00:25] bnoordhuis: creationix: pushing and pulling things should be very fast, just work with pointers [00:25] ryah_: creationix: but it's the same for epol [00:25] k1ttty has joined the channel [00:25] bnoordhuis: creationix: if events come in faster than the main thread can consume them... well, drop them [00:25] ryah_: https://github.com/deanm/plask/blob/master/main.mm#L35-41 [00:25] creationix: bnoordhuis: but I don't want to drop them. Many of my events are rpc calls [00:25] creationix: not just mouse coordinate updates [00:25] bnoordhuis: creationix: then make sure the main thread keeps up :) [00:26] alnewkirk2 has joined the channel [00:26] creationix: bnoordhuis: or block the event thread or queue the events [00:26] bnoordhuis: creationix: yep [00:26] bnoordhuis: creationix: if you're worried about contention [00:27] bnoordhuis: creationix: have two lists referenced by pointer [00:27] Kami_ has joined the channel [00:27] bnoordhuis: creationix: and swap them when the main thread has time [00:27] bnoordhuis: creationix: but keep it simple for now - just a simple thread-safe fifo [00:27] Remoun has joined the channel [00:27] ryah_: Has anyone tried the node.exe file yet? [00:27] ryah_: :) [00:28] CIA-107: node: 03Henry Rawas 07master * re70702c 10/ (Makefile lib/net_uv.js): connect-buffer play back queued write and end - http://bit.ly/r20L6v [00:28] admc has joined the channel [00:29] zackattack has joined the channel [00:29] azeroth__ has joined the channel [00:30] creationix: bnoordhuis: I'm fine with blocking the event thread [00:30] Swimming_bird has joined the channel [00:33] stephenallred has joined the channel [00:34] Reginald_T_B has joined the channel [00:34] christophsturm has joined the channel [00:34] creationix: ryah_: isn't there some node or ev related call to emit a new event in the main thread? [00:35] creationix: event source [00:35] ryah_: creationix: ? [00:36] creationix: so, first, is there anything like what bnoordhuis recommended built-in? [00:36] creationix: or is that what you mean by the kqueue/epoll stuff? [00:38] CIA-107: libuv: 03Bert Belder 07master * r7b46073 10/ src/uv-win.c : uv_win: uv_pipe_connect should return -1 on error - http://bit.ly/mVZUQi [00:39] fraserkillip has left the channel [00:39] andi_ has joined the channel [00:40] neoesque has joined the channel [00:40] bnoordhuis: that should've been my commit >:( [00:40] towski has joined the channel [00:40] jerrysv: ryah_: for some reason the node.exe file doesn't work on my mac [00:41] BulletBob has joined the channel [00:41] ryah_: hm, i wonder why:) [00:42] isaacs: jerrysv: yeah, it doesn't work on linux, either. [00:42] isaacs: DOA [00:43] jerrysv: isaacs: is there some compatibility mode we can go into in order to use the new version of node? [00:44] isaacs: jerrysv: i think npm might actually let you use node 0.5, but it'll break here and there. [00:44] joshthecoder has joined the channel [00:45] mikeal: ok, this looks good now [00:45] mikeal: https://github.com/mikeal/node/commit/ac8ff99997db3140c18a48e1956d167aa6074dfe [00:45] bnoordhuis: creationix: i think ev_async_*() may do what you want [00:45] bnoordhuis: creationix: not the thread-safe fifo though [00:45] mr: any idea why (depracated) createClient and request detects server breaks, but http.request doesnt ? [00:47] ryah_: mikeal: where's your http client branch? [00:48] ryah_: https://github.com/mikeal/node/commits/agentfixes [00:48] ryah_: ? [00:48] Kuntau has joined the channel [00:49] mikeal: no [00:49] mikeal: https://github.com/mikeal/node/tree/v0.4-http-fix [00:49] CIA-107: libuv: 03Henry Rawas 07master * rd540872 10/ src/uv-win.c : uv-win: allow listen on unbound tcp handle - http://bit.ly/oaEqQ7 [00:49] samsonjs has joined the channel [00:50] mikeal: i just pushed fixes for "upgrade" [00:50] mikeal: we're much smarter now and remove sockets from the pool once they've been upgraded, and make sure not to try and keep the socket open even if keepAlive is set [00:50] mikeal: just sent an email to the list about it [00:54] madzak has joined the channel [00:57] charleyd has joined the channel [00:58] jtsnow has joined the channel [01:02] kriszyp has joined the channel [01:03] mraleph has joined the channel [01:05] creationix: bnoordhuis: actually, my problem isn't that bad [01:05] creationix: bnoordhuis: the main thread can pull the data off the sdl event loop on it's own [01:05] creationix: bnoordhuis: I just need a way for the sdl polling thread to tell the main thread when there is data to grab [01:05] creationix: like a custom event source in glib [01:06] creationix: using a pipe seems overkill within the same process [01:07] tonymilne has joined the channel [01:07] creationix: ryah_: ^ do you understand? I just need a way for another thread to trigger a function to be executed sometime in the main thread. The multi-threaded equivalent to process.nextTick [01:07] shanez has joined the channel [01:08] ryah_: creationix: yeah - ev_async + some mutex locked queue is how i guess i'd do it [01:08] ryah_: creationix: but in plask they do it all in one thread [01:08] ryah_: they just let the GUI event loop drive node [01:09] bnoordhuis: creationix: using a pipe to talk to yourself is an age-old unix trick [01:09] creationix: ryah_: I see [01:09] ryah_: doing it in one thread has a lot of benifits [01:09] creationix: I just need a way to schedule a function to be executed in the main thread [01:09] creationix: no data or arguments needed [01:10] creationix: having trouble finding docs on ev_async_* [01:11] WarriorSl_ has joined the channel [01:11] guybrush: ACTION is downloading node.EXE [01:11] cjm has joined the channel [01:11] bnoordhuis: creationix: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_async_code_how_to_wake_up_an [01:11] guybrush: niice [01:13] creationix: bnoordhuis: thanks, that looks promising [01:13] creationix: now if only I could remember how to use pthreads. I seem to remember it was pretty simple [01:14] bnoordhuis: creationix: man pthread_mutex_init :) [01:14] dannycoates has left the channel [01:14] creationix: No manual entry for pthread_mutex_init [01:14] creationix: :( [01:14] creationix: don't worry, I'm sure I can find the man page online [01:15] samsonjs has joined the channel [01:15] bnoordhuis: creationix: it's easy - create a mutex, then wrap all access to your fifo in a pthread_mutex_lock() and pthread_mutex_unlock() [01:15] bnoordhuis: creationix: if you want to go spiffy, you can use a pthread_rwlock_t instead of a pthread_mutex_t [01:15] bnoordhuis: creationix: but start out simple [01:16] creationix: I don't have any data to sync between the threads [01:16] creationix: just the fact that the main thread needs to go and get data [01:16] bnoordhuis: oh, that's easy [01:16] bnoordhuis: you don't need pthreads then [01:16] bnoordhuis: only ev_async [01:16] creationix: I just need a thread to execute the blocking SDL_WaitEvent() call [01:17] creationix: and when it comes back, wake up my main thread [01:17] creationix: so, I can av_async the waitevent call? [01:18] creationix: while(true) { SDL_WaitEvent(); WAKE_UP_MAIN_THREAD; } [01:18] bnoordhuis: creationix: yep [01:19] creationix: cool, just can't figure out exactely how to use the av_async api [01:19] TooTallNate: ryah_: ping [01:19] ryah_: TooTallNate: pong [01:19] abraxas has joined the channel [01:19] TooTallNate: hey so while you guys are on the subject of the event loop... [01:20] ryah_: TooTallNate: :) [01:20] galaxywatcher has joined the channel [01:20] TooTallNate: I was wondering what kind of ideas you had toward a JS event loop API [01:20] ryah_: TooTallNate: what would that be? [01:20] TooTallNate: I'm working on an ObjC interpreter for node... [01:20] sp_ has joined the channel [01:20] TooTallNate: and in order to write a GUI app, NSApplicationMain() needs to be called on the main thread [01:21] TooTallNate: it blocks forever [01:21] TooTallNate: I'm just trying to think of a way to make this work [01:21] ryah_: TooTallNate: yeah... [01:21] mynyml has joined the channel [01:22] creationix: ohh, can I use ASYNC_CALL(fn, callback) from my extension? [01:22] ryah_: no [01:22] softdrink has joined the channel [01:22] creationix: what if I just copy the define for it? [01:22] zeade1 has joined the channel [01:22] creationix: or inline what's in ASYNC_CALL [01:23] creationix: oh, I see, it depends on the After definition [01:24] bnoordhuis: TooTallNate: why does it need to be called from the main thread? [01:24] TooTallNate: bnoordhuis: ask apple :p [01:25] ryah_: creationix: eio_custom() is the call for the event loop [01:25] Melkor_ has joined the channel [01:25] TooTallNate: bnoordhuis: "You must call this function from the main thread of your application, and you typically call it only once from your application’s main function, which is usually generated automatically by Xcode." [01:25] bnoordhuis: TooTallNate: and what happens if you call it from a thread? [01:26] TooTallNate: bnoordhuis: can't say I've tried [01:26] TooTallNate: i'm trying to find any references saying if it's possible [01:26] ryah_: i wodner if we could do a libev backend for NSApplicationMain() [01:27] creationix: ryah_: wow, is it really that easy "eio_custom(SDL_WaitEvent, OnEvent)" [01:27] e6nian has joined the channel [01:27] TooTallNate: ryah_: NSApplicationMain internally uses NSRunLoop, so I think that's what we would need to integrate with [01:27] rwaldron has joined the channel [01:27] ryah_: creationix - something like that [01:27] creationix: cool, thanks [01:28] creationix: I'll find types when I try to compile it I guess [01:28] rhdoenges has joined the channel [01:28] ryah_: TooTallNate: we have a similar problem with window's run loop [01:28] ryah_: i think we probably have to call it in a thread [01:29] piscisaureus: that's okay but you'd have to all windows management (e.g. creating, destroying etc) in the same thread [01:29] tjholowaychuk: creationix: https://github.com/LearnBoost/node-canvas/blob/master/src/Canvas.cc#L200 [01:29] tjholowaychuk: is an example [01:29] TooTallNate: uv doesn't integrate with window's event loop? [01:29] bnoordhuis: piscisaureus: you're in bed [01:29] piscisaureus: not with the gui event loop [01:29] piscisaureus: ye [01:29] piscisaureus: s [01:29] creationix: tjholowaychuk: thanks [01:29] piscisaureus: approximatgely [01:29] bnoordhuis: piscisaureus: keep those hands above the sheets [01:29] jasong_at_apache has joined the channel [01:31] nerdfiles has joined the channel [01:32] ditesh|cassini has joined the channel [01:32] jasong_at_apache: ping [01:32] nerdfiles has left the channel [01:32] jasong_at_apache: does anyone know of any good client side js/template packagers? [01:33] TheJH: I can pong, but I don't know an answer [01:33] jasong_at_apache: something similar to say Jammit but keeping it JS [01:34] TooTallNate: ryah_: what would it take to integrate ev with NSRunLoop? [01:34] cccaldas has joined the channel [01:34] jslatts has joined the channel [01:35] zivester has joined the channel [01:35] jerrysv has joined the channel [01:35] mandric has joined the channel [01:35] ryah_: TooTallNate: looking at it [01:38] kawaz has joined the channel [01:40] piscisaureus: looks like it is very much the same problem as integrating the windows gui message pump [01:40] creationix: tjholowaychuk: what goes in "closure" [01:40] creationix: any object? [01:40] tjholowaychuk: creationix: yeah anything you want, void * [01:40] tjholowaychuk: just have to cast it back [01:41] creationix: ok, so NULL is fine too [01:41] creationix: it's just a data parameter [01:41] TooTallNate: creationix: indeed [01:41] ryah_: i think we might be able to use NSRunLoop as the main event loop and use the kqueue fd as a sub event loop [01:42] ryah_: not sure yet.. [01:42] creationix: ryah_: making cocoa apps? [01:42] ryah_: i'm not but TooTallNate wants to [01:42] k1ttty has joined the channel [01:42] creationix: fun, the more GUI libraries, the better [01:43] TooTallNate: creationix: well i'm just trying to get a generic ObjectiveC interpreter for node [01:43] TooTallNate: like JSCocoa, or PyObjC, but for node [01:43] creationix: I don't know those very well. I've used macruby though [01:43] mike5w3c has joined the channel [01:43] TooTallNate: same concept [01:43] creationix: but that's a new ruby vm implemented in objective-c [01:44] TooTallNate: oh maybe not the same concept then :p [01:44] creationix: it's not a bridge, but native ruby interpreter on top of the runtime [01:44] TooTallNate: there's RubyCocoa, that's probably more like it [01:45] jbwiv__ has joined the channel [01:45] wali has joined the channel [01:46] jbwiv__: guys, in there a full-stack framework based on node yet? I'm looking to develop a new app completely in javascript (in olden days, I would've used rails). are there any good options? [01:46] TooTallNate: jbwiv__: express is a good place to start [01:46] blkcat: express is fabulous [01:46] jbwiv__: TooTallNate, ok, thanks. I'll check it out. have either of you used rails? [01:47] creationix: indeed, express isn't at bloated as rails [01:47] creationix: but it's the most mature we have so far [01:47] creationix: the author or express has done a ton of ruby in the past [01:47] gde33 has joined the channel [01:47] creationix: it started out as a sinatra style framework [01:47] zivester has joined the channel [01:47] jbwiv__: creationix, ok, thank you. I'll check it out [01:47] creationix: tjholowaychuk: is that correct, or am I blowing steam? [01:48] yokoaway has joined the channel [01:48] tjholowaychuk: yup that's what it was originally [01:48] creationix: tjholowaychuk: so for this void* data thing, can I just pass through the callback function? [01:49] creationix: I don't need any data [01:49] jbwiv__: you guys know if it can be used with: a. coffeescript, and b. postgresql? and yes, I'm going to lmgtfy is a valid response ;-) [01:49] tjholowaychuk: jbwiv__: express? yeah [01:49] tjholowaychuk: anything [01:49] TooTallNate: creationix: ya pass a Persistent handle to the callback [01:49] RC1140 has joined the channel [01:49] tjholowaychuk: creationix: yeah you could [01:50] jbwiv__: tjholowaychuk, cool. thanks. [01:50] creationix: jbwiv__: heh, coffescript and postgres, I wrote the first versions of both of those for node [01:50] creationix: and don't maintain either anymore [01:50] bnoordhuis: creationix: wrap the handle in a struct that you malloc() [01:50] jbwiv__: creationix, don't maintain as in abandoned, or just that others maintain? [01:50] creationix: well, coffeescript is quite maintained by the original author, I just wrote the initial pass of the compiler in js [01:51] creationix: not sure what's out there for postgres these days [01:51] jbwiv__: creationix, ok, thx [01:51] creationix: bnoordhuis: hmm, is the persistent handle not enough? [01:52] ap3mantus has joined the channel [01:52] tjholowaychuk: creationix: a struct isn't any larger [01:52] tjholowaychuk: just hints for the compiler [01:52] bnoordhuis: creationix: it doesn't necessarily have to fit in a void* [01:52] bnoordhuis: it does now but that can change [01:52] tjholowaychuk: struct { void *foo; } is no larger than void * [01:52] creationix: well, it's just that I don't know how to make the struct [01:52] creationix: ACTION is not C++ expert [01:52] tjholowaychuk: like that :D [01:53] tjholowaychuk: struct name { fields }; [01:53] TooTallNate: and then malloc [01:53] tjholowaychuk: or typedef struct { fields } typename; [01:53] brianseeders has joined the channel [01:53] TooTallNate: and free in the "after" function [01:53] tjholowaychuk: gotta run [01:53] AvianFlu has joined the channel [01:53] creationix: so make a struct with a single member that's the persistent function handle? [01:53] brianseeders has joined the channel [01:54] creationix: typedef callback { Persistent fn } ? [01:54] bnoordhuis: creationix: make that -> typedef struct { Persistent fn; } callback_t; [01:54] bnoordhuis: creationix: you could new() the handle directly [01:55] bnoordhuis: creationix: but this way you're covered if you want to add more properties in the future [01:55] meso has joined the channel [01:55] infynyxx has joined the channel [01:55] creationix: what's callback_t, my new custom type? [01:55] bnoordhuis: yep [01:55] TooTallNate: bnoordhuis: but is a struct required in this case? Why wouldn't just passing the Persistent work? [01:56] creationix: and to malloc it "callback_t *callback = (callback_t*) malloc(sizeof(callback_t));" ? [01:56] infynyxx has left the channel [01:56] bnoordhuis: creationix: yep [01:56] TooTallNate: creationix: yep. [01:56] creationix: well, I guess the advantage of the struct is that I can add more data later if wanted [01:57] bnoordhuis: TooTallNate: req->data = (void*) handle is bad style [01:57] bnoordhuis: TooTallNate: even if it works now because a handle is nothing but a wrapper around a pointer atm [01:57] bnoordhuis: but that can break if the v8 api changes [01:58] creationix: ok, now how do I put args[0] into the struct I just malloc'ed [01:58] bnoordhuis: creationix: what is args[0]? [01:58] TooTallNate: bnoordhuis: oh ok. I was just assuming that it was a pointer anyways, my bad [01:58] creationix: const Arguments& args [01:58] zivester has joined the channel [01:58] creationix: and that's v8::Arguments [01:58] TooTallNate: creationix: what data type? [01:58] bnoordhuis: creationix: right, you wrap it in a Persistent<> and put it in your struct [01:59] creationix: v8::Function [01:59] TooTallNate: Persistent callback = Persistent::New(args[0]->ToFunction()) [01:59] creationix: callback.fn = Persistent::New(Handle::Cast(args[0])) ? [01:59] allanca has joined the channel [02:00] creationix: or that, if there is a ToFunction(), it didn't seem to work the last time I tried [02:00] TooTallNate: Ya I think Cast works too [02:00] allanca has left the channel [02:00] TooTallNate: creationix: oh you're right, no ToFunction() [02:01] TooTallNate: creationix: ok, ya I use Cast in my code [02:01] bnoordhuis: yep, Cast is what you need [02:01] creationix: getting closer! [02:01] jslatts has joined the channel [02:02] creationix: is "ev_ref(EV_DEFAULT_UC);" needed? [02:02] allanca has joined the channel [02:02] creationix: saw it in tj's code [02:02] bnoordhuis: creationix: it stops the event loop from, err.. stopping [02:02] TooTallNate: creationix: that prevents node from exiting the event loop [02:02] TooTallNate: lol ben keep beating me [02:02] TooTallNate: gotta run anyways. later yall [02:02] CStumph has joined the channel [02:03] creationix: bnoordhuis: ahh, that's useful [02:04] creationix: maybe I'll write a howtonode article or two for this once I figure it all out [02:04] EyePulp has joined the channel [02:04] bnoordhuis: creationix: good idea, these questions come up often [02:05] bnoordhuis: okay, off to bed [02:05] bnoordhuis: sleep tight everyone [02:05] Wa has joined the channel [02:07] ank has joined the channel [02:07] Kuntau has joined the channel [02:08] creationix: compiles!!!, now to see if it actually works [02:09] chjj: smoke test ;) [02:09] ank has joined the channel [02:10] TheFuzzball has joined the channel [02:11] tomatoNuts has joined the channel [02:11] jbwiv__: you guys know of anyone using expressjs in a production application? [02:12] kbni has joined the channel [02:12] tomatoNuts: hello everyone, i got a quick question for you folks [02:13] vipaca has joined the channel [02:13] vipaca has joined the channel [02:15] tomatoNuts: hi everyone again. i'm trying http.request with the options={ host : 'mtgox.com', path : '/code/data/ticker.php' } and is not working. the socket hang up issue shows up, but using the google sample on the tutorials work!!! [02:15] Mrfloyd has joined the channel [02:15] danmactough has joined the channel [02:15] ank has left the channel [02:17] ank has joined the channel [02:18] _sorensen_ has joined the channel [02:19] jakehow has joined the channel [02:19] ank has joined the channel [02:20] tomatoNuts: uau, this channel is dead [02:20] ank has joined the channel [02:20] Reginald_T_B: oops sorry. I am not helpful. Super noden00b here [02:21] creationix: Success! https://github.com/creationix/node-sdl/blob/master/src/node-sdl.cpp#L339-374 [02:22] creationix: now off to bind more sync functions so that it's usable [02:23] mnaser has joined the channel [02:24] rhdoenges: sorry, I'm jumping in here, but [02:24] rhdoenges: why are you using a single-member struct? [02:25] tomatoNuts has joined the channel [02:25] strcK has joined the channel [02:26] TheFuzzball has joined the channel [02:26] creationix: rhdoenges: because bnoordhuis told me to [02:26] creationix: something about best practices and not breaking in the future [02:26] creationix: you can't assume persistent handles will be void* compatable [02:27] rhdoenges: yeah, I guessed it had something to do with the casting [02:29] charlie_ has joined the channel [02:29] jbwiv__: anyone know where the postgresql support for expressjs is documented? doesn't seem to be on the main site [02:30] caiges has joined the channel [02:30] tomatoNuts: hi everyone i got a issue. I'm using http.request({host : 'mtgox.com', path : '/code/data/ticker.php'}, function .... but it keeps giving the socket hang up issue. I've tried the standard google example and it works. If I go on http://mtgox/code/data/ticker.php on my browser it works. pls help [02:31] zivester has joined the channel [02:31] jasong_at_apache: 'npm install pg' ? [02:32] eggsby has joined the channel [02:32] jasong_at_apache: http://search.npmjs.org/#/pg [02:32] eggsby: could I ask a jade question here? [02:33] EyePulp has joined the channel [02:33] d0k has joined the channel [02:33] jbwiv__: jasong_at_apache, ah, ok. thanks. So there is no orm for expressjs/nodejs/postgresql? [02:33] eggsby: there are plenty of postgres orms for node [02:33] TheFuzzball has joined the channel [02:33] eggsby: how could I make the following code in a jade template? http://pastie.org/2215733 [02:34] Lorentz: jbwiv__: There's no standard one as part of nodejs, if that's what you're asking. There are many to choose from. [02:34] jasong_at_apache: express isn't a full stack like say django [02:34] jbwiv__: Lorentz, eggsby: ok, so where is the best place to look, and is any one of them the most full-featured/popular/stable/etc? [02:34] Emmanuel_ has joined the channel [02:35] mikeal has joined the channel [02:35] indexzero has joined the channel [02:35] Lorentz: jbwiv__: Install npm and search for it. Sadly I can't help you on which being the best/stable/etc [02:35] jasong_at_apache: what he said [02:35] eggsby: also on my question: nvm i'm a dum dum [02:35] jasong_at_apache: i always do 'npm search blahblah' and that gets me a starting point to investigate [02:35] eggsby: not just a search, the node wiki lists them [02:36] eggsby: https://github.com/joyent/node/wiki/modules#database [02:36] jasong_at_apache: i dont' think the node wiki has eeeeverything [02:36] eggsby: i'm sure you're right jasong_at_apache :) [02:36] boehm has joined the channel [02:36] jasong_at_apache: not to say that there isn't crap out on npm too :-P [02:36] jbwiv__: ok, thanks guys [02:37] jasong_at_apache: if your server blows up it was eggsby's fault [02:37] jasong_at_apache: ;-) [02:37] eggsby: :D [02:38] rurufufuss has joined the channel [02:42] montylounge has joined the channel [02:45] ceej has joined the channel [02:45] tonymilne has left the channel [02:45] stracK has joined the channel [02:45] BulletBob has joined the channel [02:46] cccaldas has joined the channel [02:47] AvianFlu has joined the channel [02:48] kriszyp has joined the channel [02:50] zivester has joined the channel [02:51] ngs has joined the channel [02:54] CrypticSwarm has joined the channel [02:54] AvianFlu has joined the channel [02:56] mandric has joined the channel [02:56] ryah_ has joined the channel [02:58] rwaldron has joined the channel [03:00] seawise has joined the channel [03:01] e6nian has joined the channel [03:02] clarkfischer: In 0.5.0 is there any way to write a UInt64 to a Buffer? [03:05] AvianFlu has joined the channel [03:05] mnaser has joined the channel [03:05] ryanfitz has joined the channel [03:07] e6nian1 has joined the channel [03:08] mnaser has joined the channel [03:10] willwhite has joined the channel [03:10] chjj: clarkfischer: dont think so, but you could always do it by hand ;) [03:10] Raj has joined the channel [03:11] Xano has joined the channel [03:12] Raj: Hello nodejs contributors & fans.. I am having a problem with "tar: Unexpected EOF in archive" with cygwin. Have tried everything in forums (have latest npm, nodejs 0.4.9 (for compatibility with latest express)) [03:12] Raj: can someone please help [03:13] seivan has joined the channel [03:13] chjj: what were you trying to untar? [03:15] Raj: i am try to use npm to install express (expressjs) [03:15] chjj: ah [03:16] Raj: the following commands: "npm install express" or "npm install formidable" - both of them fail [03:16] chjj: you could try to download the tarball directly and see what happens [03:16] leandroo has joined the channel [03:17] Raj: did that...(tried getting the gz and later zip files, pointed them directly, and also exploded the archives), but none of these helped. npm also has an option to directly point to the url for the gz file... even that didnt work [03:17] mamund: ok, i'm stumped on an expressjs routing problem. is this a place to look for help? [03:17] Aria has joined the channel [03:17] mamund: or is there a channel for expressjs for node?\ [03:17] stracK has joined the channel [03:18] Aria: #express [03:18] mamund: ahh thanks [03:18] chjj: Raj, uhh, try cloning the express repo i guess [03:19] mynyml has joined the channel [03:19] leandroo has left the channel [03:19] Raj: will try that. (tried that for a different package, but that didn't help, let me try cloning expressjs)... [03:19] mikeal has joined the channel [03:19] chjj: why didnt it work? [03:20] mscdex: keyvan: cool, glad to hear it worked for you too :-) [03:20] keyvan: mscdex: yes, you are a god amongst men. really appreciated the quick fix [03:21] Alien__ has joined the channel [03:22] ap3mantus has joined the channel [03:22] Raj: the clone + make worked, but eventually when i tried to install the build with npm, it failed with the same reason [03:23] Corren has joined the channel [03:24] seivan has joined the channel [03:24] chjj: npm is infamous for not working well under cygwin [03:24] clarkfischer: chjj, any advice you could give me on that? I haven't a clue how any of that works. [03:24] chjj: you can install all modules by hand if necessary [03:24] mscdex: keyvan: oh and fwiw that patch made it into node 0.5.1 today just in time ;-) [03:24] Raj: many other packages got installed properly, just these... [03:25] chjj: hmm [03:25] keyvan: mscdex: ah v nice [03:25] Raj: will try that chjj... seems like the only option. thanks for your help, will ping back based on my success rate :) [03:25] clarkfischer: I understand that a int64 is about twice as long as an int32, and I know that I can write to the buffer directly using buffer[index], but I don't know anything about endian/network ordering or encoding or any of that [03:26] chjj: clarkfischer: well it would be about 8 lines of code, do you want it big or little endian? [03:26] clarkfischer: Big endian, I need to write a Uint64 at offset 0, then two Uint32s at 1 and 2 [03:27] chjj: k, so it would be like... [03:27] caiges_ has joined the channel [03:27] chjj: buff[i++] = (unit64 >> 56) & 0xFF; buff[i++] = (unit64 >> 48) & 0xFF; etc... [03:27] chjj: keep decreasing the right shifts [03:27] chjj: by 8 bits [03:28] clarkfischer: until 0? [03:28] chjj: and i is incremented each time [03:28] chjj: yeah [03:28] chjj: just to num & 0xFF [03:28] hermanjunge has joined the channel [03:28] chjj: for the last byte [03:28] clarkfischer: Could this be automated by a for loop? [03:28] chjj: i dont see why not [03:29] beriberikix: anyone playing with the windows port? [03:29] chjj: its only a couple lines though [03:29] chjj: just make a function for it [03:29] clarkfischer: Yeah, but I'm going to have to be packing a lot of this kind of data (bittorrent protocol) [03:29] necrodearia has joined the channel [03:30] clarkfischer: Where does the number 56 come from? [03:30] hermanjunge has joined the channel [03:30] chjj: 64 - 56 = 8, the "first" byte on the left [03:30] clarkfischer: ah [03:31] clarkfischer: and then to write subsequent integers to this buffer [03:31] fraserkillip has joined the channel [03:31] clarkfischer: can I just use Buffer.prototype.writeUInt32? [03:31] mandric has joined the channel [03:31] chjj: that would write a uint 32, yeah [03:33] Raisdead has joined the channel [03:33] clarkfischer: so big endian just means you write to the left-hand side of a buffer? [03:34] chjj: little endian would start with the right-most byte on the int youre writing, so `int & 0xff` [03:35] clarkfischer: god, bitwise stuff is complex. [03:35] yogurt_truck has joined the channel [03:35] Spion has joined the channel [03:35] chjj: after a while you just start picturing the bits in your head and it becomes simple [03:36] chjj: just need to remember what each operator does, i guess that is the hard part [03:36] systemfault: DataView is made for dealing with endianess... [03:36] systemfault: Not sure if node supports it. [03:36] chjj: shifts are easy to remember because theyre pretty apparent what they do [03:37] __class__ has joined the channel [03:37] clarkfischer: Yeah [03:38] Raisdead: But be carefull with the signed/unsigned shifts! [03:38] dguttman has joined the channel [03:38] clarkfischer: Is there a way in JS to see if an int is an int32 or an int64? [03:38] chjj: no, numbers arent treated that way in js [03:39] chjj: you could check to see if a number *required* 32 bits i guess [03:41] clarkfischer: hm, ok [03:42] brettgoulder has joined the channel [03:42] Raisdead has joined the channel [03:45] rwaldron has joined the channel [03:47] kevwil has joined the channel [03:47] sandstrom has joined the channel [03:47] sandstrom has joined the channel [03:48] perlmonkey2 has joined the channel [03:48] perlmonkey2 has left the channel [03:48] perlmonkey2 has joined the channel [03:48] cccaldas has joined the channel [03:48] Kuntau has joined the channel [03:49] Corren has joined the channel [03:52] sublim21 has joined the channel [03:54] ditesh|cassini has joined the channel [03:55] skm has joined the channel [03:56] Alien__ has joined the channel [03:57] Alien__: When did the webpage become brown? [03:59] begriffsschrift has joined the channel [03:59] brainproxy: how long does it usually take before a version bumped tarball is avail on nodejs.org/dist ? [04:01] heavysixer has joined the channel [04:02] jasong_at_apache: should be immediate [04:03] jasong_at_apache: when 0.5 was out i saw it lickidy split [04:03] ryanfitz has joined the channel [04:03] begriffsschrift: I'm new to node, and wondering what the highest priority features/bugs/tests are for a new contributor to work on? There is a lot of development going on and it's hard to see the big picture. [04:03] mikeal: build issues [04:03] mikeal: i can't build master [04:03] mikeal: https://gist.github.com/1084039 [04:04] mikeal: nm [04:04] mikeal: finally got it working [04:07] Emmanuel has joined the channel [04:17] shanez has joined the channel [04:20] chrischris has joined the channel [04:20] alnewkirk has joined the channel [04:23] CoinOpeBoy has joined the channel [04:23] amerine has joined the channel [04:26] Emmanuel: \o/ http://tikibooth.com/blog/socketstream-fun.html \o/ [04:27] Skola has joined the channel [04:28] richcollins has joined the channel [04:31] dexter_e has joined the channel [04:32] isaacs has joined the channel [04:32] turtlespin has joined the channel [04:33] richcollins: Hrm [04:33] richcollins: mongo.BSONNative.ObjectID() [04:33] richcollins: Assertion failed: (handle->InternalFieldCount() > 0), function Wrap, file /usr/local/Cellar/node/0.4.9/include/node/node_object_wrap.h, line 61. [04:33] brainproxy: ah, i see, so from now on the tar.gz and .exe for a any given version will be in a subdir of /dist [04:33] fairwinds_ has joined the channel [04:33] brainproxy: is that the idea? [04:35] erobit has joined the channel [04:37] zackattack has joined the channel [04:40] zivester has joined the channel [04:41] richcollins: Any mongodb users here? [04:41] iWang has joined the channel [04:43] iWang: scons: *** [obj/release/snapshot.cc] Error -4 [04:43] iWang: scons: building terminated because of errors. [04:43] iWang: Build failed: -> task failed (err #2): [04:43] iWang: {task: libv8.a SConstruct -> libv8.a} [04:43] iWang: make: *** [program] Error 1 [04:43] iWang: error: Bad exit status from /var/tmp/rpm-tmp.uXN56V (%build) [04:43] iWang: how to solve this error ??? [04:44] iWang: somebody help [04:46] iWang: help [04:50] kriszyp has joined the channel [04:51] unlink has joined the channel [04:51] unlink has joined the channel [04:58] caiges has joined the channel [04:59] rhdoenges has joined the channel [05:00] rhdoenges: so I'm reading the node source, right? and I saw node_cares.{h,cc} and was all "oh that's adorable is it some kind of charitable easter egg" [05:00] rhdoenges: turns out it is for c-ares [05:01] rhdoenges: :'( [05:01] zmbmartin has joined the channel [05:02] onr has joined the channel [05:02] fraserkillip: lol [05:02] onr: does that windows executable use iocp? [05:04] rhdoenges: onr: I believe so [05:06] rhdoenges: yes, definitely [05:07] mattcodes has joined the channel [05:07] Kuntau has joined the channel [05:08] eggsby has left the channel [05:10] adam- has joined the channel [05:11] iWang has left the channel [05:12] syst3mw0rm has joined the channel [05:17] blueadept: should i take up coffeescript? [05:18] blueadept: i'm beginning to read everywhere that this is the best option to go for [05:18] tbranyen: what why [05:18] tbranyen: best bet to go for if you hate C derived languages i suppose [05:18] blueadept: i dont hate anything haha [05:19] rhdoenges: how do you feel about braces? [05:19] rhdoenges: you know, { } [05:19] blueadept: but just perhaps it will become the prefered way of compiling [05:19] blueadept: i personally dont care [05:19] tbranyen: blueadept: why bother? [05:19] tbranyen: its just an extra step [05:19] rhdoenges: coffeescript is a pain to develop with. [05:19] rhdoenges: it's all the convenience of a compiled language with the speed of an interpreted one [05:19] blueadept: well if more and more teams are choosing coffee then i dont want to be the oddman out having to learn it once it starts to get going and becomes more popular [05:19] rhdoenges: I'm being really harsh. [05:20] rhdoenges: coffee's easy to learn, don't worry about it. [05:20] rhdoenges: have you ever written ruby or python? [05:20] blueadept: sure [05:20] blueadept: i see your point [05:21] rhdoenges: coffeescript is a lot like ruby. [05:22] mnbvasd has joined the channel [05:22] onr: coffeescript takes 90 seconds to learn for a js developer [05:22] paulwe has joined the channel [05:22] kawaz_home has joined the channel [05:23] azeroth_ has joined the channel [05:25] robhawkes has joined the channel [05:26] levi501d has joined the channel [05:28] alnewkirk2 has joined the channel [05:29] sourcode has joined the channel [05:31] anatoo has joined the channel [05:31] k1ttty has joined the channel [05:37] andree has joined the channel [05:37] cosmincx has joined the channel [05:37] ambroff has joined the channel [05:38] tayy has joined the channel [05:39] mattcodes has joined the channel [05:39] towski has joined the channel [05:44] amerine has joined the channel [05:47] Guest56752 has joined the channel [05:48] CStumph has joined the channel [05:48] Guest56752 has joined the channel [05:49] seivan has joined the channel [05:50] amerine has joined the channel [05:50] meso has joined the channel [05:52] tuhoojabotti: HaXe! :D [05:52] tuhoojabotti: ACTION hides [05:52] rhdoenges: huh? [05:55] jesusabdullah: You take that back [05:58] kbni has joined the channel [05:58] tomatoNuts has joined the channel [05:58] stephank has joined the channel [05:58] dexter_e has joined the channel [05:59] harthur has joined the channel [05:59] confoocious has joined the channel [06:00] seivan has joined the channel [06:01] andree_ has joined the channel [06:01] Kuntau has joined the channel [06:03] traph has joined the channel [06:05] tilgovi_ has joined the channel [06:05] tilgovi_ has joined the channel [06:06] gavin_huang has joined the channel [06:07] chjj has joined the channel [06:07] steffkes has joined the channel [06:09] dexter_e has joined the channel [06:10] mattcodes has joined the channel [06:15] corytheboyd has left the channel [06:15] Nizam has joined the channel [06:15] jklabo has joined the channel [06:16] nroot7 has joined the channel [06:18] aguynamedben_ has joined the channel [06:19] Allen_ has joined the channel [06:19] svenlito has joined the channel [06:20] criswell has joined the channel [06:21] sgimeno has joined the channel [06:22] dingomanatee has joined the channel [06:23] dannycoates has joined the channel [06:23] allanca has joined the channel [06:23] nroot7: With node.exe released for windows, how can I install npm on windows ? [06:23] nroot7 has left the channel [06:24] nroot7 has joined the channel [06:24] nroot7: With node.exe released for windows, how can I install npm on windows ? [06:25] jesusabdullah: nroot7: I have no idea, but repeating your question probably won't help [06:25] jesusabdullah: nroot7: I would imagine that npm hasn't been made to work on windows yet [06:27] fraserkillip: is node 0.5.1 released? [06:27] mikey_p: npm specifics would probably amount to being served adequately by cygwin [06:28] admc has joined the channel [06:29] Bonuspunkt: fraserkillip yes it is [06:30] Bonuspunkt: nroot7 http://node-js.prcn.co.cc/ should give a starting point, havent tried yet, no time must go 2 work :( [06:33] christkv has joined the channel [06:33] zackattack has joined the channel [06:33] tdegrunt has joined the channel [06:33] andrewfff has joined the channel [06:33] fraserkillip: yusss time to update [06:35] `3rdEden has joined the channel [06:36] fraserkillip: node 0.5.1 is flagged as unstable, worth updating from 0.4.9? [06:37] mattcodes: fraserkillip, no. unless you have critical issues, wait until 0.6 and until your dependencies have migrated to 0.6 [06:37] muhqu has joined the channel [06:37] shapeshed has joined the channel [06:38] fraserkillip: okay, makes my life easier, i hate installing node lol [06:39] langworthy has joined the channel [06:39] SamuraiJack has joined the channel [06:40] mikedeboer has joined the channel [06:42] ditesh|cassini has joined the channel [06:42] mikeal has joined the channel [06:44] edspencer has joined the channel [06:45] user_ has left the channel [06:46] tk has joined the channel [06:46] Swizec has joined the channel [06:47] christkv has joined the channel [06:48] felixge has joined the channel [06:48] felixge has joined the channel [06:49] Wizek has joined the channel [06:49] groom has joined the channel [06:52] Guest50188 has joined the channel [06:54] stagas has joined the channel [06:54] pigmej has joined the channel [06:54] mendel_ has joined the channel [06:54] petrjanda has joined the channel [06:55] e6nian has joined the channel [06:59] e6nian has joined the channel [06:59] sreeix has joined the channel [06:59] e6nian has joined the channel [07:03] kbni has joined the channel [07:03] jbpros has joined the channel [07:04] mraleph has joined the channel [07:04] TomY has joined the channel [07:05] Mrfloyd has joined the channel [07:05] meso has joined the channel [07:05] kmox83 has joined the channel [07:05] sandstrom has joined the channel [07:05] sandstrom has joined the channel [07:07] mendel_ has joined the channel [07:09] mendel__ has joined the channel [07:09] dnjaramba has joined the channel [07:09] mehlah has joined the channel [07:11] dnjaramba has joined the channel [07:11] mendel__ has joined the channel [07:11] nerdfiles has joined the channel [07:12] tomatoNuts has joined the channel [07:13] mikedeboer has joined the channel [07:13] dnjaramba has joined the channel [07:14] stonebranch has joined the channel [07:14] hwinkel has joined the channel [07:15] topaxi has joined the channel [07:15] dnjaramba has joined the channel [07:16] hassox has joined the channel [07:16] andrewfff has joined the channel [07:18] pomodoro has joined the channel [07:19] sw8sw8 has joined the channel [07:19] seawise has joined the channel [07:20] adelgado has joined the channel [07:24] catphive has joined the channel [07:27] blueadept: http://pastie.org/private/vlsknzbh1nhbrenznxxrg how can i throw a sort in here, i keep getting an error no matter what i try [07:28] tuhoojabotti: Anyone want to try my Chrome extension? [07:28] blueadept: trying to just do a sort by date descending [07:28] Prometheus: tuhoojabotti: what's it do [07:28] tuhoojabotti: Prometheus: Shorturl :D [07:28] Prometheus: :o [07:29] tuhoojabotti: It's like goo.gl extension, but I like mine better :P [07:29] Prometheus: fi.fi? [07:29] tuhoojabotti: https://github.com/tuhoojabotti/Chromerly-URL-shortener [07:29] tuhoojabotti: No it's urly.fi :e [07:29] Prometheus: :/ [07:29] tuhoojabotti: I might add yx.fi :D [07:29] Prometheus: meh.fi [07:29] Prometheus: would rule [07:29] dans_ has joined the channel [07:29] tuhoojabotti: tuh.is ":D" [07:30] tuhoojabotti: tuhis is my nicks nick that is. [07:30] Prometheus: .is domains are expensive :/ [07:30] tuhoojabotti: Yes! [07:30] tuhoojabotti: Just doubled price :/ [07:30] tuhoojabotti: That's why I don't have it. [07:30] Prometheus: mothereffin' [07:31] Prometheus: yeah, I wanted to get an .is till I realized how much it'd cost me =P [07:31] Nexxy: wow language [07:31] Prometheus: Nexxy: language police in town? [07:31] tuhoojabotti: Nexxy: No wow-speech here, thanks. [07:31] tuhoojabotti: kekekek [07:31] Nexxy: ACTION shows badge [07:31] Prometheus: :o [07:31] Prometheus: I had a funny incident happen to me tonight [07:31] tuhoojabotti: ACTION takes the badge and eats it. [07:31] Nexxy: tuhoojabotti, read as, "wow... language!" [07:31] __doc__ has joined the channel [07:32] Prometheus: a site I'm working on went live on a groupon-like site =) [07:32] Prometheus: needless to say, the site is not ready to accept registrations, yet.. [07:32] Nexxy: uh oh [07:32] Bj_o_rn has joined the channel [07:32] Prometheus: fun times to be had :) [07:32] tuhoojabotti: :D [07:32] Bj_o_rn has left the channel [07:32] Nexxy: get ready for staggering losses and demanding customers that are impossible to satisfy! [07:32] Prometheus: luckily the cuban coffee place opens up in 1,5 hours [07:32] Prometheus: Nexxy: not my service :) [07:32] tuhoojabotti: What's a credit memo? [07:32] Nexxy: oh well then, get ready for lulz... [07:32] tuhoojabotti: I'm trying to figure out how to translate it. [07:32] Prometheus: oh I will =) [07:33] Prometheus: credit memo? [07:33] Prometheus: luotto muistutus? [07:33] Prometheus: :o [07:33] Prometheus: Idk [07:33] tuhoojabotti: mm [07:33] Prometheus: ACTION is Finnish [07:33] tuhoojabotti: ACTION is too [07:33] Prometheus: ACTION knows this [07:33] svenlito has joined the channel [07:33] tuhoojabotti: joinaas muute #Node.js ircnetis :D [07:33] butu5 has joined the channel [07:33] Prometheus: nope [07:33] tuhoojabotti: :/ [07:33] Prometheus: I only do freenode =) [07:33] tuhoojabotti: lolz nub [07:33] tuhoojabotti: ;) [07:34] Prometheus: :/ [07:34] industrial: Why is this: https://gist.github.com/ff04c83878e298f50d75 [07:34] industrial: I do the exact same thing, or not? [07:34] butu5: I downloaded node.exe (0.5.1) pls let me know how to make npm work? [07:34] chjj: it doesnt work with windows [07:34] industrial: google.com/search?q=npm+on+windows [07:34] [AD]Turbo has joined the channel [07:34] chjj: or 0.5.1 at all i dont think [07:34] Nexxy: industrial, at least link them to lmgtfy.com [07:34] tuhoojabotti: Yeah [07:35] [AD]Turbo: hi there [07:35] tuhoojabotti: Prometheus: I just did that shortener, because I promised the urly guy, because he made the api I needed for my irc bot :D [07:35] Prometheus: I see [07:35] industrial: Why would my mongodb not spit out the row with findOne() when it does with find() ? [07:36] Prometheus: tuhoojabotti: yeah I've wanted a .fi domain for a while, but can't think of a good enough name to register =) [07:36] industrial: sci.fi [07:36] tuhoojabotti: I'm fine with tuhoojabotti.com :D [07:36] Prometheus: already taken, I'm sure ;) [07:36] industrial: :p [07:36] industrial: its parked, actually [07:36] tuhoojabotti: sci.fi not found [07:36] tuhoojabotti: ye [07:36] dans_: can you clever folks give me some book recommendations? [07:36] Prometheus: sy.fi =P [07:37] Prometheus: dans_: there are none :/ [07:37] industrial: syence fiction? [07:37] Prometheus: dans_: maybe nodebeginner.com(.net?) [07:37] Prometheus: industrial: it's syfy nowadays [07:37] Prometheus: the channel :) [07:37] dans_: not just for node.js [07:37] dans_: for anything :) [07:37] industrial: syence fyction? [07:37] tdegrunt has joined the channel [07:37] Prometheus: dans_: oh, I've got plenty of those.. [07:37] tuhoojabotti: dans_: Books are always outdated, irc is not. :P [07:37] Prometheus: but the wishlist is private :/ [07:37] industrial: None here with MongoDB experience? [07:37] Prometheus: dans_: what are you interested in? [07:38] Prometheus: industrial: tbh, as far as I can tell, your query should be fine :o [07:38] blueadept: anyone know how i sort this query properly? everything i'm trying is not working: http://pastie.org/private/vlsknzbh1nhbrenznxxrg [07:38] Prometheus: though I've never used mongo, but... [07:38] Nexxy: actually, there haven't been any major improvements to the irc protocol since the 80's or something [07:38] dans_: programming, the web, china, start-ups, physical health [07:38] Nexxy: unless you count ircx [07:38] tuhoojabotti: Nexxy: I wasn't talking about the protocol. [07:38] Prometheus: Nexxy: yeah, us finns don't update our protocols very often.. :P [07:38] Nexxy: tuhoojabotti, I know ;< [07:39] tuhoojabotti: Books have been same for how many years? [07:39] tuhoojabotti: :D [07:39] Nexxy: when did kindle come out again? [07:39] Prometheus: dans_: any languages in particular? [07:39] Prometheus: Nexxy: something like 2007? [07:39] tuhoojabotti: e-books are just irc ripoff :D [07:39] Nexxy: so since then... [07:39] dans_: probably english [07:39] dans_: unless its learning languages [07:39] Prometheus: :/ [07:39] dans_: im interested in russian and chinese [07:39] Prometheus: I mean, programming languages [07:39] dans_: aaah [07:39] tuhoojabotti: :D [07:40] tuhoojabotti: the web [07:40] tuhoojabotti: JS and JS [07:40] tuhoojabotti: :D [07:40] Prometheus: :/ [07:40] Prometheus: I'll be in .fi in a few weeks :) [07:40] Prometheus: s/in/at [07:40] dans_: erm,not really, unless its really obscure im keen on imrpoving skills in all areas [07:40] tuhoojabotti: php :e [07:40] Prometheus: dans_: so you just want to learn everything? [07:40] industrial: Prometheus: yeah it was the contents that was wrong [07:40] gozala has joined the channel [07:40] dmetcalf has joined the channel [07:40] Prometheus: industrial: I would've never guessed :) [07:41] dans_: yeah Prometheus [07:41] dans_: if there was a node book id read it [07:41] tuhoojabotti: There is few I think [07:41] Prometheus: there's a bunch [07:41] Prometheus: mostly online [07:41] tuhoojabotti: oh a bunch. [07:41] Prometheus: dans_: nodebeginner.org [07:41] Prometheus: start with that [07:41] dans_: i read the hands on node one [07:42] Prometheus: have you watched nodetuts too? :) [07:42] tuhoojabotti: dans_: Better yet, write your own book, that's the way to learn. :D [07:42] dans_: i would like something that goes a bit deeper, waiting for the oreilly one [07:42] Prometheus: hmm [07:42] Prometheus: dans_: problem is, node evolves quite fast [07:42] dans_: tuhoojabotti: not a bad idea [07:43] dans_: Prometheus: yep, i know [07:43] Prometheus: you'll learn best by doing things :) [07:43] Prometheus: dans_: read javascript the good parts, though [07:43] tuhoojabotti: I just looked at the http demo and made my server :D [07:43] dans_: i've started looking at functional programming which is completely new [07:43] dans_: trying a bit of clojure at the moment [07:43] Prometheus: that ought to be fun [07:43] Prometheus: I can't get over the syntax though [07:44] SubStack: ACTION doesn't like books [07:44] tuhoojabotti: My friend is all into HaXe [07:44] Prometheus: SubStack: don't think you need them either :P [07:44] tuhoojabotti: ACTION agrees with SubStack  [07:44] tuhoojabotti: But documentation helps ;D [07:45] Prometheus: use the source luke =P [07:45] SubStack: just write programs [07:45] SubStack: and read some code but not too much [07:45] tuhoojabotti: example codes ftw. :D [07:45] SubStack: and form opinions about what you like and what you don't like [07:45] tuhoojabotti: copy-pasta code [07:45] admc has joined the channel [07:45] dans_: if i was at a computer i would...but im going to the beach this weekend with my kindle, internet wont be necessarily available [07:45] RC1140 has left the channel [07:46] tuhoojabotti: Luckily it's raining here in finland [07:46] Prometheus: dans_: I'm sure your kindle can run an interpreter, if you try hard enough ;) [07:46] dans_: and if you read any good books about anything, even fiction [07:46] dans_: im asking about that as well [07:46] tuhoojabotti: :P [07:46] Prometheus: tuhoojabotti: luckily? [07:46] Prometheus: it better not flipping rain in oh, 8 days [07:46] Prometheus: or I'm turning back from the airport :/ [07:46] tuhoojabotti: :D [07:46] tuhoojabotti: Where are you now? [07:46] Prometheus: MIA, FL [07:47] tuhoojabotti: Sounds bad. [07:47] Prometheus: not too bad [07:47] tuhoojabotti: WTF anyways. [07:47] tuhoojabotti: (Welcome to Finland that is) [07:47] Prometheus: :P [07:47] radiodario has joined the channel [07:47] Prometheus: yeah, it'll be interesting [07:47] tuhoojabotti: It'll prolly rain yeah and cold. [07:47] tuhoojabotti: :D [07:48] tuhoojabotti: Perfect weather for programming [07:48] dgathright has joined the channel [07:48] Yoric has joined the channel [07:48] jvduf has joined the channel [07:48] Prometheus: hmm [07:48] NetRoY has joined the channel [07:48] bergie has joined the channel [07:48] Prometheus: well, given that rest of the summer will be in the high 90s and so forth, I think I can live with some 60s and 70s =P [07:48] Prometheus: (fahrenheit obviously) [07:49] tuhoojabotti: eww [07:49] Prometheus: here's a comparison for you: http://d.pr/wzTp [07:50] Prometheus: from left to right, me usually, me now, you. [07:50] Prometheus: =P [07:50] dnjaramba has joined the channel [07:50] tuhoojabotti: wut [07:50] Prometheus: granted, they are fahrenheits, so it makes no sense [07:50] tuhoojabotti: ah [07:50] tuhoojabotti: I can read you know. [07:51] Prometheus: either way, quite cold [07:51] tuhoojabotti: 20C is ~best [07:51] tuhoojabotti: :D [07:51] Prometheus: :/ [07:51] Kuntau has joined the channel [07:51] tuhoojabotti: Not too hot [07:51] dnjaramba has joined the channel [07:51] Prometheus: 30 is nice, 40 is a bit too much [07:51] Prometheus: 20 is a bit cold [07:52] tuhoojabotti: ACTION thinks Prometheus is not really a finn. [07:52] Prometheus: ACTION is too. [07:52] tuhoojabotti: na'aa [07:52] Prometheus: ACTION has a passport to prove it. [07:52] tuhoojabotti: ACTION wants picproof. [07:53] tuhoojabotti: :D [07:53] Prometheus: how about this, if you are in Hki area, I'll even meet you =P [07:53] tomatoNuts has joined the channel [07:53] tuhoojabotti: Assembly Summer [07:53] tuhoojabotti: :D [07:53] Prometheus: I don't do asm [07:54] dnjaramba has joined the channel [07:54] tuhoojabotti: Me neither. [07:54] tuhoojabotti: But I enjoy the party. [07:54] baudehlo has joined the channel [07:55] dans_: anyone read any good books on the chinese language / history? [07:55] Prometheus: dans_: I would imagine the library can help you with that better =) [07:55] Pierrot has joined the channel [07:56] ccare has joined the channel [07:56] dnjaramba has joined the channel [07:56] dans_: nah, dont have a library [07:56] Kuntau has joined the channel [07:57] mikedeboer has joined the channel [07:57] dans_: i live in the third world [07:57] sfoster has joined the channel [07:57] syst3mw0rm has joined the channel [07:58] dnjaramba has joined the channel [07:58] royh: dans_: wikipedia and there's tons of free stuff on google [07:58] royh: free as in foss [07:59] dans_: i know, but it helps if i know what im looking for [07:59] royh: dans_: you know what you're looking for. [07:59] tuhoojabotti: :D [07:59] dans_: im looking for some inspirational ideas [07:59] dans_: i dont [08:00] jklabo has joined the channel [08:00] Druide_ has joined the channel [08:00] dnjaramba has joined the channel [08:00] dans_: you might say you read this really interesting book on lemurs [08:01] carmony_ has joined the channel [08:01] uchuff has joined the channel [08:01] donaldpcook has joined the channel [08:02] slaskis_: it lacks alot of good stuff i agree` x `[23~pC [08:02] slaskis_: }> [08:02] slaskis_:  [08:02] dnjaramba has joined the channel [08:03] tuhoojabotti: Ok. [08:03] seivan has joined the channel [08:03] blueadept: anyone know how i sort this query properly? everything i'm trying is not working: http://pastie.org/private/vlsknzbh1nhbrenznxxrg [08:03] blueadept: trying to do by date [08:03] industrial: I have a problem with cloud9 from NPM; I can't switch colorschemes or show line numbers. Selecting the options from the menu simply does nothing. [08:03] dnjaramba has joined the channel [08:05] dnjaramba has joined the channel [08:05] zemanel_ has joined the channel [08:05] Kuntau has joined the channel [08:06] dnjaramba has joined the channel [08:06] herbySk has joined the channel [08:07] dnjaramba has joined the channel [08:07] seivan has joined the channel [08:08] dnjaramba has joined the channel [08:09] dnjaramba has joined the channel [08:11] dnjaramba has joined the channel [08:11] alexhq has joined the channel [08:12] navlelo has joined the channel [08:12] dnjaramba has joined the channel [08:13] tbassetto has joined the channel [08:13] e6nian has joined the channel [08:13] dnjaramba has joined the channel [08:14] dnjaramba has joined the channel [08:18] dnjaramba has joined the channel [08:19] dnjaramba has joined the channel [08:20] alexhq: Playing with 20 lines http proxy http://www.catonmat.net/http-proxy-in-nodejs/ is it possible to get real transfered data size (in and out)? Probably I should bind to socket events, right? [08:20] xerox: alexhq: also look at http://blog.nodejitsu.com/http-proxy-intro [08:21] tsenga_ has joined the channel [08:31] JKarsrud1 has joined the channel [08:31] realz has joined the channel [08:31] realz: ahoy [08:31] tuhoojabotti: Hoia [08:31] realz: I am writing a javascript class library [08:31] tuhoojabotti: *facepalm* [08:32] realz: is there a document on "standard" way of doing that? [08:32] tuhoojabotti: standard classes in JS? [08:32] tuhoojabotti: Use HaXe. [08:32] tuhoojabotti: :P [08:32] realz: hehe [08:32] realz: can't really [08:32] realz: well [08:32] realz: I am integrating closely with v8-bounded classes [08:32] tuhoojabotti: I use functions that have methods. [08:32] tuhoojabotti: close enough [08:32] tuhoojabotti: :P [08:33] realz: yeah, but there are too many ways to do one thing [08:33] realz: I need a "best practices" [08:33] tuhoojabotti: function plaa () {this.method = function(){};} :D [08:33] AAA_awright has joined the channel [08:34] industrial: Using Mongolian with this code; users.update({'_id': new Database.ObjectId(req.params.user)}, req.params.body); I get the error TypeError: Object.keys called on non-object at Function.keys (native) [08:35] industrial: I know it's not safe code but I'm testing/trying to use the API. I wonder what function it's trying to .keys, as I'm not supplying one. [08:36] fyskij has joined the channel [08:37] aliem has joined the channel [08:38] Nomon: industrial: did you mean req.body ? [08:38] industrial: yea, my bad [08:39] unlink has joined the channel [08:39] unlink has joined the channel [08:39] saurabhverma has joined the channel [08:41] sveisvei has joined the channel [08:41] ivan has left the channel [08:42] eldios has joined the channel [08:42] eldios: tuhoojabotti, I did the photo yesterday [08:43] eldios: now it's my boss' phone.. will have in the next hrs on my pc [08:43] tuhoojabotti: Yes I was waiting for you to show up. :D [08:43] knuthy has joined the channel [08:43] eldios: ;) [08:43] tuhoojabotti: lol [08:43] eldios: anyway I suppose he is an european representative [08:43] eldios: as I did a lil' search online [08:43] tuhoojabotti: You creep [08:43] tuhoojabotti: :D [08:43] eldios: and he is definitely not one of the "big guy" behind joyent [08:44] eldios: :P [08:44] bpwnr has joined the channel [08:44] edspencer has joined the channel [08:44] kulor-uk has joined the channel [08:44] tuhoojabotti: https://github.com/tuhoojabotti/Chromerly-URL-shortener Added preview .crx :D [08:46] phpnode has joined the channel [08:47] mc_greeny has joined the channel [08:48] Skola has joined the channel [08:48] jetienne: tuhoojabotti: you can avoid the qrcode loading. generate it in javascript. less latency to the user, less bw to your server [08:48] micheil has joined the channel [08:49] tuhoojabotti: jetienne: I know I could, but google's chart api works fine too. :D [08:49] jetienne: jquery qrcode too :) [08:49] tuhoojabotti: jetienne: Pull requests are welcome too. : [08:49] tuhoojabotti: :)* [08:50] edspencer_ has joined the channel [08:50] blueadept: what's the best way of sorting two distinct collections and combining them? [08:50] blueadept: sort by date, for instance [08:50] yozgrahame has joined the channel [08:51] blueadept: sort each by date through the database, then combine them in node and sort again by date? [08:52] Nizam has joined the channel [08:52] bzinger has joined the channel [08:55] dnjaramba has joined the channel [08:55] Nizam has joined the channel [08:55] gma has joined the channel [08:57] dnjaramba has joined the channel [08:57] shapeshed has joined the channel [08:58] dnjaramba has joined the channel [08:59] Jippi has joined the channel [09:00] dnjaramba has joined the channel [09:00] cosmincx has joined the channel [09:02] Kuntau has joined the channel [09:02] dnjaramba has joined the channel [09:04] k0ral has joined the channel [09:05] Nizam has joined the channel [09:05] margle has joined the channel [09:09] Kuntau has joined the channel [09:10] ivan has joined the channel [09:12] shapeshe1 has joined the channel [09:15] Jippi has joined the channel [09:16] toabi has left the channel [09:17] seivan has joined the channel [09:18] meso has joined the channel [09:19] Kuntau has joined the channel [09:20] stagas: blueadept: I think that combining first and then sorting is the best way [09:23] seivan has joined the channel [09:25] hwinkel has joined the channel [09:26] markwubben has joined the channel [09:26] Nizam has joined the channel [09:26] blup has joined the channel [09:27] JKarsrud1 has joined the channel [09:27] JKarsrud1 has left the channel [09:29] socketio\test\27 has joined the channel [09:30] seivan has joined the channel [09:32] tayy has joined the channel [09:32] Nuck has joined the channel [09:32] niftylettuce: stagas: :) [09:33] svnlto_ has joined the channel [09:33] andrewfff has joined the channel [09:33] piscisaureus_ has joined the channel [09:33] stagas: niftylettuce: what's up? [09:34] syst3mw0rm has joined the channel [09:35] Kuntau has joined the channel [09:36] adrianmg has joined the channel [09:38] robi42 has joined the channel [09:38] eldios: how do I print the actual content of an object? [09:38] eldios: intead of [object Object] [09:38] SubStack: console.dir [09:38] eldios: tnx [09:38] SubStack: or JSON.stringify [09:38] SubStack: or util.inspect [09:38] SubStack: or one of the pretty-printers on npm [09:38] tuhoojabotti: console.dir :O [09:39] SubStack: lots of ways [09:39] eldios: .dir looks like it's not working [09:39] eldios: maybe stringify [09:40] tuhoojabotti: eldios: Still no pic? :e [09:40] eldios: tuhoojabotti, nope :( [09:40] eldios: my boss definitely have too many meetings :P [09:40] tuhoojabotti: :P [09:42] seivan has left the channel [09:43] niftylettuce: SubStack: supstack [09:43] tuhoojabotti: Can I create a folder and file online on github? [09:45] yozgrahame has joined the channel [09:45] Kuntau has joined the channel [09:47] whitman has joined the channel [09:48] slajax has joined the channel [09:48] tuhoojabotti: Anyone? [09:49] tuhoojabotti: :D [09:49] tuhoojabotti: I'd add a translation, and don't want to install git on the work computer. [09:51] chjj: not installing software on your work computer is the reason ie is still around [09:51] chjj: stick it to the man [09:53] tuhoojabotti: :e [09:54] mczerkawski has joined the channel [09:56] edspencer has joined the channel [09:56] louissmit has joined the channel [09:57] jomoho has joined the channel [09:59] christophsturm has joined the channel [10:00] eldios: XD [10:01] eldios: tuhoojabotti, what do you mean with "may I create a folder on github"? [10:01] tuhoojabotti: I want to add a folder called hu and a file messages.json [10:01] tuhoojabotti: for hungarian translations [10:01] eldios: ok [10:01] eldios: ah.. you want to do that via web? [10:02] raymorgan has joined the channel [10:03] SubStack: ACTION nibbles on niftylettuce [10:03] eldios: guys anyone have a nice tut, site, whatever on how to manage auth? like sessions, cookies and all the rest [10:04] eldios: if it is nodejs-targeted it's better [10:04] eldios: if it's based on express it's even better [10:04] eldios: if anyone is willing to speak with me about that in query it would be even more better :P [10:05] niftylettuce: eldios: https://github.com/search?q=node-oauth&type=Everything&repo=&langOverride=&start_value=1 [10:05] SubStack: eldios: well here is a way to do sessions: http://substack.net/posts/f5680b [10:05] eldios: will read both [10:05] tuhoojabotti: eldios: Yes, I don't want to bother installing anything on this piece of crap. [10:05] eldios: thatnk you [10:05] SubStack: there's also a session thing built into express [10:05] saurabhverma has joined the channel [10:05] tuhoojabotti: Window XP :e [10:05] amaudy has joined the channel [10:06] eldios: yes.. it's only that I feel like I lack the "theory" and I'm reainventing the wheel over and over [10:06] eldios: tuhoojabotti, not afaik.. but you can always use cloud9ide [10:06] eldios: and create them from there [10:06] tuhoojabotti: Yeah [10:06] tuhoojabotti: I had that in mind [10:07] mczerkawski has joined the channel [10:07] tuhoojabotti: But I guess I have 2 accounts there and I only remember the second and the first is already linked to my github :D [10:07] overra has joined the channel [10:08] eldios: =) [10:09] tuhoojabotti: Yay [10:09] tuhoojabotti: got my headphones working [10:12] ivan has joined the channel [10:13] mike5w3c has joined the channel [10:14] Ramosa has joined the channel [10:18] Ramosa: node.exe woo i've been waiting for this day [10:20] kbni has joined the channel [10:20] fermion has joined the channel [10:22] gma has left the channel [10:22] Ramosa: im guessing its the actual app, not an installer [10:23] pablocubico has joined the channel [10:24] pomodoro has joined the channel [10:24] romanm has joined the channel [10:24] indexzero has joined the channel [10:26] tuhoojabotti: Damn [10:26] tuhoojabotti: I removed the cloud9 from github, but it still whines about some account linked to my github. :/ [10:27] iFire` has joined the channel [10:27] tuhoojabotti: oh wait [10:27] tuhoojabotti: I can login WITH gtihub :D [10:28] tuhoojabotti: Too complicated [10:28] tuhoojabotti: ACTION is going to delete some accounts now [10:29] herbySk has joined the channel [10:29] tuhoojabotti: username tuhoojabotti_1 :E [10:34] jelveh has joined the channel [10:35] ryanfitz has joined the channel [10:37] tuhoojabotti: hmm [10:38] tuhoojabotti: Do I use the console to commit my changes to git on cloud9? [10:38] sreeix has joined the channel [10:40] welly has joined the channel [10:41] tuhoojabotti: Anyone alive here? :D [10:42] fly-away has joined the channel [10:43] guidocalvano has joined the channel [10:43] guidocalvano: rrrrrrrrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrggggghhhhh [10:44] guidocalvano: I've been trying to get stuff to compile for my project [10:44] guidocalvano: and its FRUSTRATING!!!! [10:44] guidocalvano: I need 32bit architecture [10:45] guidocalvano: and I can't get my node module to compile into 32bits [10:45] guidocalvano: what option do I have to set? [10:46] jschoolcraft has joined the channel [10:48] sourcode has joined the channel [10:48] eldios: guido I suppose you're on a 64bit system [10:49] eldios: if so, you should have a multilib toolchain [10:49] eldios: and depending on which linux you are it could be a big/little pita [10:49] tuhoojabotti: aaa [10:49] tuhoojabotti: Works :P [10:49] tuhoojabotti: cloud9<3 [10:49] eldios: tuhoojabotti, ;) [10:50] tuhoojabotti: still tuhoojabotti_1 :E [10:50] tuhoojabotti: Sent spammail about it. :) [10:50] robhawkes has joined the channel [10:52] benjaminRRR has joined the channel [10:53] malkomalko has joined the channel [10:55] guidocalvano: I'm on mac [10:55] fraserkillip: ^mac is amazing [10:56] guidocalvano: untill I offended the great Steve by using ogre in the wrong architecture [10:56] guidocalvano: His highness Jobs is mad at me now [10:56] guidocalvano: I'm afraid [10:57] guidocalvano: He'll hurt me... [10:57] guidocalvano: I've got everything to compile in 32 bit architecture [10:57] guidocalvano: I compiled node in 32 bit architecture [10:57] guidocalvano: long story why, first I thought Ogre wasn't the problem [10:58] guidocalvano: but right now if I can just compile my node module in 32bits... I'm done... [10:58] eldios: guidocalvano, simpliest method could be to create a 32bit VM [10:58] eldios: and compile everything in there [10:58] jschoolcraft has left the channel [10:58] eldios: at the xpense of some CPU power [10:58] eldios: but if you're not going to spend hours compiling that would be a minor issue [10:59] eldios: virtualbox is the way to go, IMO [10:59] eldios: dunno if it works well enought in MacOSX, though [10:59] guidocalvano: I just need to get node-waf to compile my final node lib to 32bit [10:59] guidocalvano: I need to know the flag to pass [10:59] guidocalvano: but waf is terribly documented [11:00] mehtryx has joined the channel [11:00] guidocalvano: I just need to know: what command does node-waf use to do the actual compiling of objects and shared libs [11:00] guidocalvano: and how do I put a flag in there [11:02] pickels has joined the channel [11:05] bosphorus has joined the channel [11:07] dnjaramba has joined the channel [11:07] Aiden has joined the channel [11:09] dnjaramba has joined the channel [11:11] bnoordhuis has joined the channel [11:12] [AD]Turbo has joined the channel [11:14] jbpros has joined the channel [11:16] eee_c has joined the channel [11:17] dexter_e has joined the channel [11:18] sreeix has joined the channel [11:20] onr: anyone succeed to install npm for windows wxecutable of node? [11:20] SamuraiJack has joined the channel [11:20] herbySk has joined the channel [11:20] Kuntau has joined the channel [11:22] gozala has joined the channel [11:22] Jippi has joined the channel [11:22] Kaco has joined the channel [11:22] Kaco has left the channel [11:23] Ramosa: onr, i was just about to ask that :p [11:23] Kuntau has joined the channel [11:25] paulwe has joined the channel [11:27] necrodearia has joined the channel [11:27] Ramosa: node.exe wont get us far without npm [11:27] guidocalvano: what is a flat namespace? [11:28] industrial: Ramosa: you can still download and install every package manually .. [11:28] Ramosa: yes and I could build node.exe myself before, but never succeeded doing so [11:28] syst3mw0rm has joined the channel [11:28] industrial: (or use a stable OS for production, stabstab xD) [11:29] Ramosa: we need a windows node channel, where we wont get stabbed asking questions :) [11:29] Ramosa: im not using node for production [11:29] azeroth__ has joined the channel [11:31] brianseeders has joined the channel [11:33] seawise_ has joined the channel [11:35] Ramosa: guess i could setup a virtualbox with something to run node.js on.. coz seems this .exe is just the beginning [11:36] kriszyp has joined the channel [11:36] Country has joined the channel [11:37] unlink has joined the channel [11:38] christophsturm has joined the channel [11:38] rphillips has joined the channel [11:39] klovadis has joined the channel [11:39] kulor-uk has joined the channel [11:40] Nizam has joined the channel [11:40] klovadis: Does anyone know an alternative to NPM to comfortably download modules and their dependencies? [11:40] klovadis: just the downloading / installing part - I don't care about publishing etc [11:40] kulor-uk has joined the channel [11:41] dmetcalf has joined the channel [11:41] klovadis: oh and it should work on windows too -.- [11:41] adnam: klovadis: you don't need to publish to the npm repo to use npm [11:41] klovadis: yes I know that [11:41] klovadis: I just cannot get npm to run properly under windows [11:41] klovadis: with node 0.5.1 there is an official node.exe [11:42] klovadis: but without npm [11:42] pyrotechnick has joined the channel [11:42] pyrotechnick: haha [11:42] pyrotechnick: SubStack: you dig my shit? [11:42] adnam: okay, i have no experience with node+windows [11:43] tdegrunt: surely npm for windows will follow soon [11:43] klovadis: I just need something to download the modules and their dependencies and extract them to a common folder :*) [11:43] klovadis: it's just way too much work to do it manually [11:44] klovadis: until now I used a cygwin port to windows where an old version of npm did work [11:44] klovadis: but I'd rather use the recent version [11:44] SubStack: pyrotechnick: indeed! [11:44] fairwinds has joined the channel [11:45] SubStack: just subbed on youtube after stumbling upon your channel [11:45] tdegrunt: klovadis: maybe nmod? [11:45] SubStack: pyrotechnick: that is some crazy neat 3d dnode browserify hotness [11:46] klovadis: tdegrunt: thank you! i will give it a try [11:46] tdegrunt: no idea whether it works though ... [11:47] sveisvei_ has joined the channel [11:47] pyrotechnick: SubStack: couldn't have done it without the libs mate [11:47] pyrotechnick: need comrades :( tired of coding alone [11:47] pyrotechnick: on this at least [11:48] pyrotechnick: nobody equipped enough in 3D to help me here [11:48] eee_c has joined the channel [11:48] threedaymonk has joined the channel [11:48] Kuntau has joined the channel [11:48] staykov has joined the channel [11:49] btipling has joined the channel [11:50] Gregor has joined the channel [11:52] klovadis: tdegrunt: seemingly the new node.exe does not recognize fs.mkdir() [11:52] industrial: How do I use express route middleware with express-resource? [11:53] industrial: in the app.resource() call? [11:53] klovadis: meh I'll just have to wait until npm gets ported to windows fully :-/ [11:53] rworth has joined the channel [11:53] tdegrunt: klovadis: that's probably your best bet [11:53] tdegrunt: 0.5.1 is only here for like 4 hours ? [11:55] pigmej: tdegrunt: 0.5.1 is released? [11:55] klovadis: tdegrunt: I really, really want to use the most recent version of node ^^ [11:55] tdegrunt: pigmej: http://blog.nodejs.org/2011/07/14/node-v0-5-1/ [11:56] pigmej: ah.. [11:56] pigmej: website still not updated [11:57] tdegrunt: klovadis: can't blame you :) [11:57] mapleman has joined the channel [11:58] unomi has joined the channel [12:03] dexter_e has joined the channel [12:04] random123 has joined the channel [12:05] random123: did TJ develop EJS or borrow code from http://embeddedjs.com/ ? [12:06] mapleman has joined the channel [12:09] janne has joined the channel [12:10] blup has joined the channel [12:12] jasong_at_apache has joined the channel [12:13] igl1 has joined the channel [12:13] DoNaLd`: vanilora:nave donald$ nave use latest [12:13] DoNaLd`: already fetched 0.5.1 [12:13] DoNaLd`: /usr/local/bin/nave: line 179: ./configure: No such file or directory [12:13] DoNaLd`: Failed to configure 0.5.1 [12:13] DoNaLd`: fail [12:13] DoNaLd`: vanilora:nave donald$ [12:13] DoNaLd`: some help ? [12:14] pigmej: DoNaLd`: did you entered the node directory/ [12:14] pigmej: ? [12:14] pigmej: ok seems to [12:14] DoNaLd`: you mean path to node ? [12:14] jasong_at_apache: nave should have just installed it [12:14] pigmej: exactly.. [12:14] pigmej: if you're using nave it should intsall it automaticaly for you [12:15] pigmej: ./configure is for manual install [12:15] DoNaLd`: vanilora:nave donald$ node --version [12:15] DoNaLd`: v0.5.0 [12:16] jomoho has joined the channel [12:16] guidocalvano: how can I see whether a lib is in flat namespace [12:16] jasong_at_apache: yeah nave and node 0.5.1 is borked [12:17] adnam: "flat namespace"? [12:17] DoNaLd`: jasong_at_apache: borked ? [12:18] jasong_at_apache: screwed [12:18] hwinkel has joined the channel [12:18] herbySk has joined the channel [12:18] jasong_at_apache: https://github.com/isaacs/nave/issues/19 [12:19] DoNaLd`: omg [12:19] DoNaLd`: so .. npm not working with 0.5.x .. so now also nave not working wirh node 0.5.x .. great ! [12:20] jasong_at_apache: well, this is expected :-P, node is a moving target [12:20] knuthy: how to setup authentication in haibu? I've created an auth.json in the config dir, still not working :/ [12:21] jasong_at_apache: nice, i never saw haibu b4 [12:21] DoNaLd`: jasong_at_apache: thnx :) but how can i test it now ? :> [12:22] aheckmann has joined the channel [12:22] jasong_at_apache: what are you talking about with auth? [12:22] knuthy: jasong_at_apache: it's a nice deployment server, but still not able to add auth :( [12:22] jasong_at_apache: it has it's own auth capability? [12:23] knuthy: hope so, as there is an auth.json.example in the config, it means that it should handle it [12:23] Nizam has joined the channel [12:23] knuthy: and in the readme they didn't mention it [12:24] boehm has joined the channel [12:24] jasong_at_apache: check the tests [12:24] mehtryx has joined the channel [12:24] knuthy: yup, the helpers.js contains a reference to authentication [12:25] jasong_at_apache: you getting an error or something? [12:26] knuthy: nop, I can deploy an app from anywhere [12:26] knuthy: anyone can deploy :p [12:27] jasong_at_apache: ok so helpers creates the auth object [12:28] knuthy: and it's used in tar and zip tests [12:28] knuthy: I guess that they didn't implement them yet :/ [12:29] DoNaLd`: so .. nave is fixed [12:29] DoNaLd`: just replace this 2 rows in nave.sh script [12:29] DoNaLd`: 125 local url="http://nodejs.org/dist/v$version/node-v$version.tar.gz" [12:29] DoNaLd`: 126 local url2="http://nodejs.org/dist/v$version/node-$version.tar.gz" [12:29] knuthy: found it : // TODO (indexzero): Setup token-based auth for Drone API servers [12:30] jasong_at_apache: where was that comment? [12:30] knuthy: lib/haibu/drone/service.js [12:31] sw8sw81 has joined the channel [12:31] jasong_at_apache: there ya go! [12:32] knuthy: I'll make it local deployment only for the moment until they write it down [12:33] rfay has joined the channel [12:34] malkomalko has joined the channel [12:34] cccaldas has joined the channel [12:35] xandrews has joined the channel [12:37] [[zz]] has joined the channel [12:37] dexter_e has joined the channel [12:39] xastey has joined the channel [12:40] random123 has joined the channel [12:43] Chunk has joined the channel [12:44] Chunk has left the channel [12:44] hybsch has joined the channel [12:45] javajunky has joined the channel [12:45] javajunky: afternoon [12:45] sreeix has joined the channel [12:46] javajunky: has anyone tried installing npm ontopof the new 'official' node.exe for windows yet ? [12:49] cryptix has joined the channel [12:49] Kuntau has joined the channel [12:49] unomi has joined the channel [12:51] D3Vito has joined the channel [12:52] tuhoojabotti: What gituhb repo had the harry potter pic? [12:52] akiva_ has joined the channel [12:52] tuhoojabotti: I can't remember [12:56] rwaldron has joined the channel [12:56] javajunky has left the channel [12:56] jetienne has left the channel [12:57] pHcF has joined the channel [12:57] jasong_at_apache: javejunky, _when_ i have to use windows, I go cygwin [12:58] Kuntau has joined the channel [12:58] jasong_at_apache: and i've had zero issues thus far, zero [12:58] bosphorus has joined the channel [12:59] jasong_at_apache: ppl don't hang around here long do they [12:59] tuhoojabotti: node-browserify :P [12:59] tuhoojabotti: SubStack: I'm copying your idea. :P [12:59] madzak has joined the channel [12:59] hehh has joined the channel [13:00] AaronMT has joined the channel [13:00] riven` has joined the channel [13:01] patrickstokes has joined the channel [13:01] davidsklar has joined the channel [13:03] dans has joined the channel [13:04] riven has joined the channel [13:05] christkv_ has joined the channel [13:05] thomblake has joined the channel [13:07] Kuntau has joined the channel [13:09] blup has joined the channel [13:09] gozala has joined the channel [13:09] kmiyashiro has joined the channel [13:09] kulor-uk has joined the channel [13:11] kulor-uk has joined the channel [13:12] Kuntau has joined the channel [13:12] maru_cc_ has joined the channel [13:12] cjm has joined the channel [13:13] tmedema has joined the channel [13:14] weezle has joined the channel [13:14] e6nian has joined the channel [13:15] kmiyashiro: I notice a lot of modules use two spaces... can I use four? [13:15] tuhoojabotti: Wut [13:15] tuhoojabotti: kmiyashiro: Four spaces are nice, but you have to remember that in Node the number of indentation levels can explode. :D [13:16] kmiyashiro: I haven't had a problem yet [13:16] kmiyashiro: I only inline callbacks if they're small [13:16] tuhoojabotti: Yeah, that's what I do. [13:17] tuhoojabotti: But if it's your project you can use what ever you want. :D [13:17] davidbanham has joined the channel [13:17] Nizam has joined the channel [13:18] kmiyashiro: well, I'm going to make a module [13:18] mikegerwitz: kmiyashiro: There's nothing wrong with four. I use four spaces and I have a strict limit of 80 chars per line. Never had a problem. [13:18] kmiyashiro: ok [13:19] kmiyashiro: thanks [13:19] Renegade001 has joined the channel [13:20] ritch has joined the channel [13:20] Wizek has joined the channel [13:20] ritch has left the channel [13:20] frankbolero has joined the channel [13:21] Jippi has joined the channel [13:21] HeikkiV_ has joined the channel [13:24] jbroman has joined the channel [13:24] jbroman has left the channel [13:26] Kuntau has joined the channel [13:26] Poetro_ has joined the channel [13:26] Poetro_ has joined the channel [13:26] tahu has joined the channel [13:27] tbassetto has joined the channel [13:27] Nizam has joined the channel [13:28] bibabot has joined the channel [13:28] ap3mantus has joined the channel [13:29] c4milo has joined the channel [13:30] garrus has joined the channel [13:30] mnaser has joined the channel [13:31] micheil has joined the channel [13:31] futuredarrell has joined the channel [13:32] dtan has joined the channel [13:32] patrickjst has joined the channel [13:33] liquidproof has joined the channel [13:34] Poetro__ has joined the channel [13:36] mapleman has joined the channel [13:37] bosphorus has joined the channel [13:37] blueadept: anyone use https://github.com/didit-tech/FastLegS in production? [13:37] malkomalko: we do [13:37] malkomalko: we made it [13:38] malkomalko: we should be able to add some more support to it soon, we've been pretty busy [13:38] Wizek-other has joined the channel [13:39] blueadept: ah cool [13:39] TheJH: how do I do multi-inheritance-like stuff in js? just copy all functions from one prototype to another and prepend the constructor of the prototype to the constructor of the inheriting class? [13:39] blueadept: looking to implement it here today [13:39] mraleph has joined the channel [13:40] raymorgan has joined the channel [13:40] TheJH: obviously, "instanceof" wouldn't work with that, but that's not really important for me [13:40] guidocalvano: how do I do something as basic as linking an object in waf/wscript [13:40] guidocalvano: ? [13:40] guidocalvano: I've searched the documentation, but its not very explicit about it [13:42] pifantastic has joined the channel [13:43] lukegalea: Hey, any learnboost folks around? [13:44] lukegalea: Time zone difference is working against me I think :( [13:44] `3rdEden: lukegalea depends on who you need, I see a couple of them here in irc [13:44] brolin has joined the channel [13:45] CIA-107: libuv: 03Shigeki Ohtsu 07master * r1be48f1 10/ src/eio/config_linux.h : ev: define HAVE_SYNC_FILE_RANGE if kernel >= 2.6.17 *and* glibc version >= 2.6 - http://bit.ly/ra2cPY [13:45] CIA-107: node: 03Shigeki Ohtsu 07master * r3c733c5 10/ deps/uv/src/eio/config_linux.h : ev: define HAVE_SYNC_FILE_RANGE if kernel >= 2.6.17 *and* glibc version >= 2.6 - http://bit.ly/p59SoY [13:45] xtianw has joined the channel [13:45] lukegalea: `3rdEden: Ideally Damian Suarez. Not sure his IRC nick. [13:46] `3rdEden: lukegalea me neither :$ [13:46] lukegalea: I'm trying to figure out how learnboost is rendering their pie charts server side. having issues using the drawback library to do it. [13:46] `3rdEden: I do spot a rauchg and a aheckmann ;) [13:47] lukegalea: good call. thanks. rauchg: Good morning. Do you know off hand how learnboost is doing pie chart rendering server side? drawback & flot & flot-pie is a no go. Do you use rgraph to side step this? Or is there some way of working around the flot issues? [13:47] rwaldron has joined the channel [13:48] guidocalvano has joined the channel [13:48] dmetcalf has joined the channel [13:48] lukegalea: I logged drawback's first git issue :) https://github.com/LearnBoost/drawback/issues/1 [13:49] yhahn has joined the channel [13:50] kulor-uk has joined the channel [13:50] Swimming_bird has joined the channel [13:51] EyePulp has joined the channel [13:52] ryanfitz has joined the channel [13:54] postwait has joined the channel [13:54] brianloveswords has joined the channel [13:55] rfay has joined the channel [13:55] caleb_ has joined the channel [13:56] ksheurs has joined the channel [13:57] baudehlo: lukegalea: I wouldn't be surprised if they were using tjholowaychuks' canvas.js [13:59] danmactough has joined the channel [13:59] lukegalea: baudehlo: they are, but they aren't using jsdom with it, just raw node-canvas. But a lot of the graphing plugins try and modify the DOM as well, which is where the problem comes in. [13:59] lukegalea: It's nice and simple for line and bar graphs but pie charts are being a pain. I'd just start hacking the plugins if I didn't clearly see pie charts on learnboost.com, so I know they've got it figured out ;) [14:00] brianc has joined the channel [14:00] baudehlo: I guess the trick is to find a pie chart library that doesn't need the dom :) [14:00] lukegalea: yep :) [14:01] baudehlo: or write your own. [14:01] baudehlo: I wrote one in SVG once [14:01] Jippi has joined the channel [14:01] kmiyashiro: or don't use pie charts [14:02] kmiyashiro: *cringe* [14:02] Drake_ has joined the channel [14:02] lukegalea: hehe ;) that's not a bad idea... hmm.. maybe I shouldn't use a pie chart at all. will mull that over. [14:02] kmiyashiro: unless the pie chart is only showing two values, it's probably a bad idea [14:03] TroyMG has joined the channel [14:03] jasong_at_apache: http://mbostock.github.com/protovis/ex/pie.html [14:03] jasong_at_apache: http://protovis-js.googlecode.com/svn/trunk/examples/pie.html [14:03] pjacobs has joined the channel [14:03] kmiyashiro: protovis is oldschool, new hotness is D3 http://mbostock.github.com/d3/ [14:03] jasong_at_apache: yeah that is hotter [14:03] lukegalea: woah. d3 looks sweet. [14:03] jasong_at_apache: so why not use that? [14:03] squeese has joined the channel [14:04] jasong_at_apache: leave it to the client [14:04] jasong_at_apache: why bother the server? [14:04] kmiyashiro: yeah... graphics on the server for charts usually don't make much sense [14:05] baudehlo: unless you want to right-click and download them [14:05] jasong_at_apache: maybe baaaaaaack in the day when ppl were writing perl servers and all you had was mosaic.. [14:05] lukegalea: this is primarily a mobile app, so I can't rely on the device to do any heavy work. Pie charts are simple enough that I could break my rule here, but much of the other charts are way too much for a phone to render. [14:05] kmiyashiro: download an image? [14:06] lukegalea: ya, that's how it works now. [14:06] lukegalea: node-canvas renders a png [14:06] lukegalea: for the exact size of the mobile device. [14:06] jasong_at_apache: for pie charts d3 will work!! [14:06] baudehlo: yeah to be fair if I try and render my mail server graphs on my phone it takes forever and often just fails. [14:06] kmiyashiro: there's probably a lib out there that takes a screengrab of a div or something for you [14:06] jasong_at_apache: (on mobile) [14:06] christkv has joined the channel [14:06] iaincarsberg: Does anyone know if its possible to skip a test when using node-jasmine's executeSpecsInFolder function ? [14:07] kmiyashiro: how do you guys handle tests when writing a module? include them or not? [14:07] kmiyashiro: for distribution I mean [14:08] tshpaper has joined the channel [14:09] pyrotechnick has joined the channel [14:10] lukegalea: kmiyashiro: I think I'm just going to use raw css and do a stacked horizontal bar instead of pie. Better given small mobile screens too. [14:10] kmiyashiro: that's a good way to go for one offs [14:11] skm has joined the channel [14:11] ioerror__ has joined the channel [14:11] d0k has joined the channel [14:12] iaincarsberg has joined the channel [14:12] bradwright has joined the channel [14:12] Leonidas has joined the channel [14:12] chrischris has left the channel [14:12] ioerror__: hi. noob question: I want to call a function every 2 secs till receiving SIGTERM for example. how do I do that? [14:12] zined has joined the channel [14:13] Hosh has joined the channel [14:13] terite has joined the channel [14:13] sriley has joined the channel [14:13] kaarlo has joined the channel [14:13] TheJH: ioerror__, by "till receiving SIGTERM for example", you mean "till the VM gets killed", right? [14:13] HeikkiV_ has joined the channel [14:13] christkv has joined the channel [14:14] beriberikix has joined the channel [14:14] ioerror__: TheJH: if VM is node, yes. [14:15] TheJH: ioerror__, just do "setInterval(function(){...}, 2000)" [14:15] smtlaissezfaire has joined the channel [14:15] tswicegood has joined the channel [14:16] weezle has joined the channel [14:16] guidocalvano: I've been trying to get a simple bloody object to link in node-waf [14:16] guidocalvano: I am gettin so tired of this [14:17] guidocalvano: I've been at it for about 4 hours now [14:17] mczerkawski has joined the channel [14:17] brianc: node.exe! [14:17] TheJH: brianc, what? [14:17] guidocalvano: how the f$ck1ng h3ll does this waf format work [14:17] brianc: TheJH: node build for windows! [14:17] sivy has joined the channel [14:18] TheJH: brianc, does it work? is it possible to easily install npm, too? [14:19] brianc: TheJH: so far no luck with npm...but on my "cmd.exe" I type "node --version" and it works [14:19] brianc: BOOOOOOOOM [14:19] jasong_at_apache: i don't see how you could install npm on windows yet, am i wrong? [14:19] messju has joined the channel [14:19] brianc: jasong_at_apache: you're right. i cannot get npm to install [14:19] roidrage has joined the channel [14:19] jasong_at_apache: there would be tons of libs you'd have to link to and goodness knows where windows would point to.. [14:19] jasong_at_apache: i think atm node.exe will do raw core [14:19] brianc: does npm require compilation to work? [14:20] brianc: I don't think so [14:20] ioerror__: TheJH: I've found setInterval already - testing it in a single file actually works. So, there's another problem with my code. thx. [14:20] Nomon has joined the channel [14:20] xerox: hi [14:20] xerox: is there a terminal emulator for the browser? [14:20] tuhoojabotti: Hello xerox! [14:20] baudehlo: it doesn't require compilation, but it's known that it doesn't work on windows. [14:20] xerox: to which one can pump bytes from a node instance? [14:20] tuhoojabotti: xerox: Haven't find a good one, if you find one let me know. :D [14:20] brianc: yeah i didn't think it would [14:21] xerox: tuhoojabotti: o k [14:21] infynyxx has joined the channel [14:21] TheJH: xerox, a terminal emulator that includes linux? or a js shell? or just a raw terminal whose I/O goes to a JS script in the page? [14:21] tuhoojabotti: Need web-based ssh :D [14:21] infynyxx has left the channel [14:21] xerox: TheJH: the most basic [14:21] TheJH: xerox, do you know jslinux? [14:21] Leonidas has joined the channel [14:21] xerox: oh right I saw that [14:21] xerox: hmm! [14:21] tuhoojabotti: I want to use irssi via browser :D [14:22] Kai` has joined the channel [14:22] kaarlo has joined the channel [14:22] nayrb has joined the channel [14:22] mattly has joined the channel [14:22] jasong_at_apache has left the channel [14:22] TheJH: xerox, maybe http://www.masswerk.at/termlib/ is what you need [14:22] xerox: cool thanks let me check that out [14:23] adrianmg has joined the channel [14:23] jasong_at_apache has joined the channel [14:23] TheJH: tuhoojabotti, you just have to bug Fabrice Bellard until he includes networking support :D [14:23] jelveh has joined the channel [14:23] stalled has joined the channel [14:23] TheJH: actually, jslinux already does have a special device for communication with the browser [14:24] xerox: :o [14:24] messju: hi, when bulding nodejs v0.5.1 on arch linux i get an error: node-v0.5.1/deps/v8/src/builtins.cc: In function 'v8::internal::MaybeObject* v8::internal::HandleApiCallAsFunctionOrConstructor(v8::internal::Isolate*, bool, v8::internal::{anonymous}::BuiltinArguments<(v8::internal::BuiltinExtraArguments)0u>)' [14:24] nibblebot has joined the channel [14:24] shanez has joined the channel [14:24] messju: any idea how to fix this? [14:24] messju: node-v0.5.1/deps/v8/src/builtins.cc:1205:18: error: variable 'receiver' set but not used [-Werror=unused-but-set-variable] [14:25] tyrion-mx has joined the channel [14:25] willwhite has joined the channel [14:25] shanez has joined the channel [14:26] xerox: TheJH: this might indeed be it [14:26] xerox: I shall try and report back :D [14:26] mczerkaw_ has joined the channel [14:26] tuhoojabotti: TheJH: I can write the io myself [14:26] tuhoojabotti: If I can just use that for emulating :D [14:26] iaincarsberg has joined the channel [14:26] bradwright has joined the channel [14:26] xerox: tuhoojabotti: I wonder if I can couple this with socket.io [14:27] tuhoojabotti: Exactly my thought. :d [14:27] xerox: and just pump bytes from a childProcess [14:27] tuhoojabotti: xerox: Tell me what you find! [14:27] xerox: to and from, of course [14:27] tuhoojabotti: :D [14:27] tuhoojabotti: I hate downloading putty to all computers I lend [14:27] brianc: awesome [14:27] brianc: got connect working on windows [14:28] dnjaramba has joined the channel [14:28] TheJH: tuhoojabotti, sounds like you need a certain firewire device (assuming that those windows pcs have firewire) [14:29] tuhoojabotti: No. [14:29] TheJH: tuhoojabotti, they don't? [14:29] tuhoojabotti: Yes. [14:29] wbw72 has joined the channel [14:30] messju: maybe gcc 4.6.1 is my problem? [14:30] TheJH: oh, that's sad. auto-installing programs and altering the settings in-memory is such a beautiful thing [14:30] xerox: tuhoojabotti: :o [14:30] xerox: http://www.masswerk.at/termlib/sample_remote_terminal.html [14:30] TheJH: someone should write an antivirus program based on that [14:30] mandric has joined the channel [14:31] Poetro_ has joined the channel [14:31] tuhoojabotti: My question is that is the emulator good enough for irssi :D [14:31] xerox: I think so [14:31] xerox: I just wonder what is the least painful solution to write the termhandler [14:32] tuhoojabotti: lol [14:32] tuhoojabotti: I can't type space it scrolls down :D [14:32] ioerror__ has left the channel [14:33] xerox: :P [14:33] matbee has joined the channel [14:34] wink_ has joined the channel [14:35] tmedema: Anyone is experienced with AAC codec licensing? [14:36] brianc: sweet. sockiet.io working on windows too. [14:36] danmactough: brianc: Connect on Windows?! Howdya do that? [14:37] brianc: Connect & socket.io on windows w/ node v0.5.1 [14:37] stracK has joined the channel [14:38] temp02 has joined the channel [14:38] danmactough: brianc: Any NoSQL yet? [14:38] brianc: i dunno...i don't currently use NoSQL [14:38] aheckmann_ has joined the channel [14:38] swistak has joined the channel [14:38] stracK has joined the channel [14:39] brianc: danmactough: are you trolling me? [14:39] Poetro_ has joined the channel [14:39] Poetro_ has joined the channel [14:39] danmactough: brianc: It will be very exciting to see a full stack on Windows. :) [14:40] xerox: tuhoojabotti: are you trying anything? [14:40] tuhoojabotti: xerox: I'm trying to be less bored at work :e [14:40] pyrotechnick: redis run on windows? [14:40] jtsnow has joined the channel [14:41] softdrink has joined the channel [14:41] bnoordhuis: messju: yes - try gcc 4.5.x [14:41] bnoordhuis: or disable -Werror [14:41] bnoordhuis: mraleph: ^^ [14:42] christkv has joined the channel [14:43] dmcquay has joined the channel [14:43] Poetro_ has joined the channel [14:43] Poetro_ has joined the channel [14:44] Poetro_ has joined the channel [14:44] samsonjs has joined the channel [14:44] mraleph: yep known problem [14:45] stracK has joined the channel [14:47] azeroth_ has joined the channel [14:47] stracK has joined the channel [14:47] donaldpcook has joined the channel [14:48] sub_pop has joined the channel [14:48] RORgasm has joined the channel [14:49] Poetro has joined the channel [14:49] Poetro has joined the channel [14:49] bnoordhuis: duke nukem forever out [14:49] bnoordhuis: gnu/hurd about to be released [14:49] bnoordhuis: the end of times really is near [14:49] bnoordhuis: someone hold me [14:50] cesutherland has joined the channel [14:50] cognominal_ has joined the channel [14:50] jslatts has joined the channel [14:50] jakehow has joined the channel [14:51] TheJH: bnoordhuis, what? hurd is about to be released? [14:51] context: hurd ? [14:52] bnoordhuis: TheJH: http://www.h-online.com/open/news/item/Hurd-Progresses-Debian-GNU-Hurd-by-end-of-2012-1279253.html [14:52] knuthy: yay!! apache+ispconfig3+node+haibu+node-http-proxy everything runs well, deployed node.js apps are detected and run correctly within their domains [14:52] kmurph79 has joined the channel [14:53] context: "The Hurd is the GNU project's replacement for UNIX, a popular operating system kernel." [14:53] context: linux isn't good enough ? [14:54] bnoordhuis: context: it's a long story [14:54] knuthy: FSF guys used Linux just as a replacement kernel until they get their Hurd up and runing [14:55] bnoordhuis: hurd's been in development since before linux existed [14:55] context: yeah [14:55] context: bnoordhuis: it must be good. sounds enterprisey [14:55] justicefries has joined the channel [14:56] bnoordhuis: context: academics-y rather, i suspect [14:56] knuthy: indeed [14:57] TheJH: context, HURD is "things done the right way" and linux is "the goal is that it works" [14:57] bnoordhuis: and let's not forget about monolithic vs micro-kernels [14:57] context: "Mach is a so-called first generation microkernel. It is the microkernel currently used by the Hurd." [14:57] context: so the hurd is NOT its own kernel [14:58] context: thejh: 'do now, fix later' generally works better than 'make perfect, then use' [14:59] TheJH: context, true [14:59] cognominal_ has joined the channel [15:00] jtrudeau has joined the channel [15:00] BillyBreen has joined the channel [15:00] necrodearia has joined the channel [15:01] tjholowaychuk has joined the channel [15:01] sivy has joined the channel [15:01] justicefries has joined the channel [15:03] gazumps has joined the channel [15:03] briznad has joined the channel [15:03] pastak has joined the channel [15:11] guidocalvano: bnoordhuis: hurd is going to get a release!? [15:11] guidocalvano: bnoordhuis: when? [15:11] baudehlo: christmas. [15:11] baudehlo: they don't say which christmas. [15:13] blup has joined the channel [15:13] mendel_ has joined the channel [15:13] tjholowaychuk has joined the channel [15:13] guidocalvano: http://www.gnu.org/software/hurd/news/2011-04-01.html [15:13] guidocalvano: he he he [15:13] guidocalvano: ;) [15:14] pyrotechnick has joined the channel [15:14] admc has joined the channel [15:14] Frippe has joined the channel [15:14] Frippe has joined the channel [15:15] JJMalina has joined the channel [15:16] messju: bnoordhuis: thanks :) [15:17] guidocalvano: http://www.gnu.org/software/hurd/news/2011-q2.html [15:17] guidocalvano: so now I'm confused [15:18] _sorensen_ has joined the channel [15:18] Corren has joined the channel [15:21] mertimor has joined the channel [15:21] jj0hns0n has joined the channel [15:21] mcavage has joined the channel [15:21] theShoveller has joined the channel [15:22] MotownBoy has joined the channel [15:22] MotownBoy: Yo yo yo, this is the 313 and Detroit-Boy be bringin' down yo house. [15:22] MotownBoy: DEVIL'S NIGHT. Our swag is sick and our gems are gold in the Motor City. [15:22] guidocalvano: iai [15:23] arnee has joined the channel [15:23] MotownBoy: Is Rhino dead? [15:24] bradleymeck has joined the channel [15:25] bibabot has joined the channel [15:27] sreeix has joined the channel [15:27] wookiehangover has joined the channel [15:27] liam__ has joined the channel [15:27] butu5 has joined the channel [15:28] sreeix_ has joined the channel [15:28] blueadept: anybody got an xp with https://github.com/sdepold/sequelize ? [15:29] keyvan: mscdex: hi mscdex, just wanted to let you know something weird as i've been working w/ your ncurses extension. nc.keys.BACKSPACE is 263, however, the actual code on Mac OS X seems to be 127 for me [15:29] keyvan: mscdex: as a result, the irc example doesnt backspace, but its easy enough to just check for both codes [15:29] mandric has joined the channel [15:30] keyvan: mscdex: these huge long key map lists suck :P [15:30] ekryski has joined the channel [15:31] butu5 has left the channel [15:32] butu5 has joined the channel [15:32] gxdssoft has joined the channel [15:34] Raisdead has joined the channel [15:34] dexter_e has joined the channel [15:37] azeroth___ has joined the channel [15:38] adrianmg has left the channel [15:39] caolanm has joined the channel [15:39] davidcoallier has joined the channel [15:39] fostah has joined the channel [15:39] jerrysv has joined the channel [15:42] dail has joined the channel [15:42] dail: hello everybody [15:42] m00p has joined the channel [15:42] dail: guys, is there a statistical module? [15:43] dail: i mean mathematical formulas ecc ecc [15:43] dail: to calculate standard deviation an other things [15:43] stephank has joined the channel [15:43] raidfive has joined the channel [15:44] puffpio has joined the channel [15:44] McMAGIC--Copy has joined the channel [15:44] Raisdead: What about using just a plain old javascript Statistical package? [15:45] context: raisdead: uhh, is that not what he asked for? [15:45] jerrysv: there was a new one released this last week, but it has a funny name and thus i cannot remember it [15:46] davidcoallier has joined the channel [15:47] dail: yes, do you know any statistical package? [15:47] Raisdead: jStat? [15:47] dail: i see [15:47] butu5 has joined the channel [15:48] Raisdead: dail: http://www.jstat.org/ [15:48] dail: yes i'm seeing at this [15:48] dail: API documentation [15:48] dail: The jStat API documentation is still being compiled. [15:48] dail: shit [15:48] dail: :( [15:48] dail: there aren't the API [15:49] mapleman has joined the channel [15:50] Yuffster_work has joined the channel [15:50] intelekshual has joined the channel [15:52] seb_m has joined the channel [15:53] jayfresh has joined the channel [15:53] sveisvei has joined the channel [15:53] pyrotechnick has joined the channel [15:54] bradleymeck: is there a way to prevent a connection from holding node open? [15:54] dnjaramba has joined the channel [15:56] bnoordhuis: bradleymeck: `setTimeout(process.exit, ms)`? [15:57] bradleymeck: bnoordhuis, i mean more along the lines of having a watcher that can respond to hearbeats but doesnt prevent node from dying [15:57] TheJH: bradleymeck, I don't think so [15:57] bradleymeck: well its off to reading c++ code then [15:58] bnoordhuis: bradleymeck: ev_unref() :) [15:58] bradleymeck: bnoordhuis, yea trying to find the exact way to use that properly on a server though so much reading [15:59] futuredarrell has joined the channel [15:59] arnee has joined the channel [16:00] bnoordhuis: bradleymeck: if you're registering your listener from c++ land, you don't need to ev_unref() [16:00] futuredarrell: scraping the facebook graph with node is such a pleasure [16:00] bnoordhuis: bradleymeck: if you're registering a listener from JS land, you can cheat and have a c++ callback that just calls ev_unref() [16:00] skapism has joined the channel [16:01] bnoordhuis: bradleymeck: s/callback/function/ [16:01] bnoordhuis: or binding [16:01] dshaw_ has joined the channel [16:01] skapism: Any reason that this piece of code returns always 0 for me? https://gist.github.com/487331 [16:01] azeroth_ has joined the channel [16:02] skapism: other than I believe his using the toString method is superfluous [16:02] robertfw has joined the channel [16:02] slloyd has left the channel [16:03] TheJH: skapism, ehm... you never set the "ver" variable? [16:03] confoocious has joined the channel [16:03] skapism: TheJH: ignore that, consider it 'verified', it's probably a typo [16:03] tj has joined the channel [16:03] jakehow has joined the channel [16:04] slloyd has joined the channel [16:04] figital has joined the channel [16:05] fly-away has joined the channel [16:06] butu5 has joined the channel [16:07] dgathright has joined the channel [16:08] Bonuspunkt: can anyone confirm that [AltGr]+* does not work under windows when u just start node.exe (v0.5.1)? [16:10] isaacs has joined the channel [16:11] jtsnow has joined the channel [16:11] mscdex: keyvan: sounds like a terminal setting issue [16:12] TheFuzzball has joined the channel [16:12] keyvan: mscdex: ok. i just let my case nc.keys.BACKSPACE fall through to 127 where the actual code is... so thats fine [16:12] keyvan: mscdex: thanks [16:12] Yoric has joined the channel [16:16] arnee has joined the channel [16:16] eventual| has joined the channel [16:16] galaxywatcher has joined the channel [16:16] smolyn has joined the channel [16:17] brettgoulder has joined the channel [16:18] TooTallNate has joined the channel [16:20] temp01 has joined the channel [16:20] harthur has joined the channel [16:20] Sorella has joined the channel [16:21] mapleman has joined the channel [16:22] skapism: For some reason, it works when I create a self-signed ssl certificate [16:23] Aiden has joined the channel [16:23] piscisaureus has joined the channel [16:23] mnaser has joined the channel [16:24] jacobolus has joined the channel [16:26] rworth has joined the channel [16:29] jelveh has joined the channel [16:31] pickels has joined the channel [16:31] mundanity has joined the channel [16:32] slajax has joined the channel [16:32] edude03 has joined the channel [16:32] corytheboyd has joined the channel [16:32] corytheboyd has left the channel [16:33] skapism: has anyone here used crypto.createSign and crypt.createVerify with local rsa keys? [16:33] theCole has joined the channel [16:36] Draggor: The http://nodejs.org/logos/ URL still references the 0.5.0 API, not 0.5.1 [16:39] jtrally: tj: How do you run the tests on connect? [16:39] mjr_ has joined the channel [16:40] theCole_ has joined the channel [16:40] arnee has joined the channel [16:40] Guest58490: jtrally should just be able to $ npm install and then $ make [16:40] Guest58490: pretty sure i have it in the docs [16:40] Guest58490: grr nick [16:41] cccaldas has joined the channel [16:41] broofa has joined the channel [16:41] jtrally: I saw it somewhere but whereever it is I've lost it [16:42] wadey has joined the channel [16:42] butu5 has joined the channel [16:42] jtrally: does it just run everything in test/ automatically? [16:42] mczerkawski has joined the channel [16:42] slaskis_: i have an interesting issue, not entirely node specific but something i've come across while writing a tumblr api reader in node [16:42] samsonjs has joined the channel [16:43] malkomalko has joined the channel [16:43] slaskis_: calling `curl 'http://:wosocialmedia@wolffolinsblog.com/api/read/json?filter=none&num=50&start=0' -I` on my no.de server gives me a broken 302 redirect while that same command on other computers does not... [16:46] TheJH: slaskis_, empty username? [16:47] TheJH: that works? [16:47] cafesofie has joined the channel [16:47] slaskis_: TheJH: yeah, that's their api.. [16:48] TheJH: slaskis_, did you just post a password on IRC? [16:48] kmiyashiro: why does module.exports = function(config) {} works, but doing var exports = module.exports = function(config) {} doesn't? [16:48] jameson has joined the channel [16:48] robhawkes has joined the channel [16:48] slaskis_: haha yeah [16:49] Spion has joined the channel [16:49] pHcF has joined the channel [16:49] skohorn has joined the channel [16:49] slaskis_: meh, it's public anyway [16:49] tbranyen: kmiyashiro: http://sharefilewith.me/u/492d71.png << looks like it should owrk? [16:49] tbranyen: what do you mean it doesn't work? [16:50] fattytuna has joined the channel [16:50] xerox: what was that way to take two streams [16:50] xerox: and pipe them together [16:50] tbranyen: util.pump? [16:50] heavysixer has joined the channel [16:50] pdonald has joined the channel [16:50] xerox: so that the .on(data) on one goes into the other [16:50] dtan_ has joined the channel [16:50] mikeal: util.pump is gone [16:50] xerox: dang [16:50] mikeal: Stream.pipe() is what you use [16:51] xerox: Stream.pipe ok [16:51] xerox: ACTION looks [16:51] tbranyen: oh right [16:51] jbpros has joined the channel [16:51] Poetro has joined the channel [16:52] xerox: can one use a socket.io as a destination writable stream? :D [16:52] tbranyen: mikeal: gone in what sense? just looked at docs for 0.4.9 and util.pump is still there [16:52] kmiyashiro: tbranyen: I tried requiring the module with module(config) [16:52] kmiyashiro: and I got an error saying it wasn't a function [16:52] mikeal: it's deprecated [16:52] tbranyen: mikeal: in 0.5? [16:52] mikeal: use myStream.pipe() instead [16:52] mikeal: it's actually deprecated in 0.4 but still there to insure some stuff doesn't break [16:52] Poetro has joined the channel [16:52] mikeal: it should be removed in 0.5 [16:52] kmiyashiro: require(module)(config); [16:52] tbranyen: which is unstable...? [16:52] tbranyen: and won't be stable till 0.6? [16:53] jklabo has joined the channel [16:53] mikeal: 0.5 is the unstable releases for 0.6 [16:53] xerox: I mean socket.io implements .on(data, ...) [16:53] svenlito has joined the channel [16:53] xerox: so it could work? [16:53] tbranyen: wish the docs made mention of that instead of having to hear it from you in here [16:53] aguynamedben has joined the channel [16:53] xerox: things move rapidly don't they [16:53] tbranyen: but i wish a lot of things [16:54] carmony has joined the channel [16:54] piscisaureu_ has joined the channel [16:54] CIA-107: node: 03Wojciech Wnętrzak 07v0.4 * r9a16f1c 10/ doc/api/fs.markdown : added information about relative paths in File System module - http://bit.ly/nApPp7 [16:54] carmony has joined the channel [16:54] mikeal: there should be a deprecation warning logged when you use it [16:54] mikeal: if not, that's a bug [16:55] CIA-107: node: 03Wojciech Wnętrzak 07master * r25c1a5e 10/ doc/api/fs.markdown : added information about relative paths in File System module - http://bit.ly/pkawIB [16:55] pifantastic has joined the channel [16:55] jacobolus has joined the channel [16:55] japj has joined the channel [16:56] radiodario has left the channel [16:57] piscisaureu_ has joined the channel [16:58] bpierre has joined the channel [16:59] jelveh has joined the channel [17:00] piscisaureus has joined the channel [17:00] towski has joined the channel [17:03] jeromegn: so how would I go about debugging a "RangeError:  Maximum call stack size exceeded" ? before I can see the whole trace in the console, the app exits. [17:03] ank_ has joined the channel [17:04] gozala has joined the channel [17:05] jog_ has joined the channel [17:05] jog_: hello [17:05] jtrudeau has joined the channel [17:05] jog_: im new to nodejs .. ';) [17:05] joshthecoder has joined the channel [17:06] kersny|away has joined the channel [17:06] postwait has joined the channel [17:06] brion has joined the channel [17:06] brion has joined the channel [17:07] dtan has joined the channel [17:08] TheJH: jeromegn, how big is your code? I'd look for obvious recursion. [17:08] TheJH: hello jog_ [17:08] patcito has joined the channel [17:08] jeromegn: TheJH: It's big, but let me try to narrow it down a bit [17:09] idefine has joined the channel [17:10] tjholowaychuk has joined the channel [17:11] rick- has joined the channel [17:11] jeromegn: TheJH: The code I'm using worked prefectly fine before I updates Mongoose, now it throws a RangeError on https://github.com/LearnBoost/mongoose/blob/master/lib/mongoose/document.js#L179 but I can't see the rest of the trace because the app exits. [17:12] othiym23 has joined the channel [17:12] jeromegn: can't see to be able to debug this with node-inspector [17:12] jog_: is there a simple multiuser game tutorial ? [17:12] TheJH: jeromegn, can you put a "debugger;" statement at the beginning of that function and then step through the code? [17:13] TheJH: jog_, what kind of game? [17:13] jeromegn: TheJH: just `debugger;` ? it's not a function? [17:13] TheJH: jeromegn, right, it is kind of a breakpoint [17:14] kmurph79 has joined the channel [17:14] jeromegn: do I have to start the app with --debug ? [17:14] jog_: @TheJH: a simple game for e.g. two sprites can walking on the screen [17:14] TheJH: jeromegn, I'm not sure, but I'd try it [17:15] idefine: jeromegn: have you tried node-inspector (just joined channel, sorry if you've already discussed it) [17:15] tomtomaso has joined the channel [17:15] jeromegn: idefine: yea I tried it, no cigar on debugging that RangeError [17:16] srid has joined the channel [17:16] srid has joined the channel [17:17] idefine: jeromegn: are you catching uncaught exceptions? [17:17] mczerkawski has joined the channel [17:17] jeromegn: idefine: in node-inspector? it only allows to break on all exceptions. I tried it and it just slipped through [17:18] idefine: if you catch uncaught exceptions you can get the strack trace and print it out [17:18] jeromegn: idefine: how do I catch any uncaught exceptions? [17:19] jklabo has joined the channel [17:19] digitaltoad has joined the channel [17:19] digitaltoad has joined the channel [17:19] idefine: process.on('uncaughtException', function(err){console.log(err.stack);} [17:19] idefine: ); [17:20] perlmonkey2 has joined the channel [17:23] jeromegn: oh that's awesome [17:23] jeromegn: ok for some reason this time it worked... [17:23] idefine: jeromegn: glad it worked out, figure out the error? [17:23] jeromegn: not really, that's what's weird [17:23] jeromegn: trying again with a fresh db [17:24] idefine: check your console to see the stack trace [17:24] abraham has joined the channel [17:24] idefine: app won't die, but there may still be errors [17:24] jeromegn: thanks, doing that [17:24] jeromegn: I should put that at the beignning of my app? [17:25] datapimp has joined the channel [17:25] idefine: jeromegn: that's the way I've done it.. [17:26] ap3mantus has joined the channel [17:26] mikl has joined the channel [17:26] mikl has joined the channel [17:27] yhahn: isaacs: ping [17:27] isaacs: yhahn: hi [17:28] Tobbe: I'm getting "Error: ENOTFOUND, Domain name not found". Is there any way to get more info? Like what domain it thinks doesn't exist [17:28] yhahn: isaacs: my hard drive died last night and i lost my npmrc (contains a secret key right?) ... what do you recommend? : | [17:28] uchuff has joined the channel [17:28] isaacs: yhahn: do `npm adduser` to recreate your user account [17:29] isaacs: yhahn: you can go to http://admin.npmjs.org/reset to reset the password if you've forgotten it [17:29] sweetd has joined the channel [17:29] idefine: Tobbe, you get that in what? [17:29] yhahn: isaacs: thanks [17:30] GreenDog has joined the channel [17:30] GreenDog: I have the name of a function in a string and what to test if that function exists. Is this possible? [17:31] langworthy has joined the channel [17:31] Tobbe: idefine: in the console. This is the full output: http://paste2.org/p/1522277 [17:31] Stythys has joined the channel [17:32] isaacs: GreenDog: yeah [17:32] isaacs: GreenDog: oh, wait, you mean you have a string? [17:32] GreenDog: yes [17:32] isaacs: GreenDog: ah. not without eval, then. unless you hope it to be global [17:32] GreenDog: ok, thanks [17:32] isaacs: GreenDog: if (typeof global[name] === "function") [17:32] Tobbe: idefine: and this is the code I run: http://paste2.org/p/1522280 [17:32] isaacs: GreenDog: or: if (typeof eval(name) === "function") [17:32] idefine: Tobbe: not enough info...i have no clue what you're doing [17:33] isaacs: GreenDog: but eval will send your code into the dreaded slow path [17:33] idefine: Tobbe: ok, that's better, now let me see [17:33] Tobbe: :) [17:35] GreenDog: thanks. [17:35] Cleer has joined the channel [17:36] isaacs: GreenDog: also, if you use eval(name), then i can pwn your code by doing somethign like testForFunction("something(); evil()") [17:37] TheJH: GreenDog, what do you need it for? [17:37] idefine: Tobbe: remove http:// from the host [17:37] GreenDog: it's not from user input [17:37] GreenDog: but I got it working without eval, thanks. [17:37] context: http://spreecast.com/29kjp [17:37] Raisdead has joined the channel [17:38] systemfault: eval should be renamed evil for ES.next [17:38] skript has joined the channel [17:38] CrabDude has joined the channel [17:38] robhawkes has joined the channel [17:38] brianc has joined the channel [17:39] GreenDog has left the channel [17:39] idefine: Tobbe: the host cannot contain protocols, you are doing an http.get, so it knows to use the http protocol [17:39] Tobbe: idefine: makes sense. Thanks :) [17:39] TheJH: wow, this actually works :) "delete eval" [17:40] TheJH: "evil=eval; delete eval" :) [17:41] chjj: stop with the eval is evil nonsense [17:41] TheJH: chjj, why? [17:42] chjj: it has its uses [17:42] adnam: as does goto [17:42] chjj: yes^ [17:42] adnam: still not worth having it in the language [17:42] systemfault: Still evil :) [17:42] chjj: without evil, templating engines couldnt conceivably work on the client side [17:42] chjj: and by evil [17:42] chjj: i mean eval [17:42] systemfault: evil doesn't mean it should never be used. [17:42] systemfault: Sometimes, eval and goto can be the lesser evil [17:42] chjj: still dont think its evil [17:43] chjj: and neither is goto, i wish js had goto statements [17:43] TheJH: adnam, true - thats why I always used the "do { ... if (foo) break; ... } while (false);" pattern in Java :D [17:43] adnam: i would use a proper parser for a template engine [17:43] chjj: so you would use an interpreter instead of something that compiles to js? [17:44] Lightdork has joined the channel [17:44] chjj: that would be extraordinarily slow [17:44] chjj: but ok [17:44] TheJH: true, a template engine could sufficiently prepare the code on the server [17:44] adnam: uh [17:44] adnam: are you saying interpretation is faster than compilation? [17:44] tuhoojabotti: Anyone got the Daring Fireball url regex working in js? :D [17:44] chjj: no [17:44] tuhoojabotti: http://daringfireball.net/2010/07/improved_regex_for_matching_urls [17:44] chjj: im saying interpretation is slower [17:44] chjj: read what i said [17:44] bosphorus has joined the channel [17:44] adnam: i dare say i'd rather not have this conversation again [17:45] isaacs: 666 members. [17:45] isaacs: \m/ [17:45] chjj: its not a conversation, a template engine that interprets templates will be slower than one that compiles to js [17:45] tuhoojabotti: :D [17:45] tuhoojabotti: Hey isaacs [17:45] isaacs: hi [17:45] chjj: all the time, every time [17:45] adnam: people crack me up :DDD [17:45] tuhoojabotti: found it [17:46] tuhoojabotti: isaacs: sup? [17:46] markbao: control flow question. I've got this: https://gist.github.com/d667d7ff22d5e9fcca8c [17:46] tbranyen: chjj: its true, but there are tradeoffs [17:46] markbao: how can I make sure that the insert_entries array there is completely populated when it gets there? [17:46] mehlah has joined the channel [17:46] `3rdEden has joined the channel [17:46] Mrfloyd has joined the channel [17:47] CIA-107: node: 03Ryan Dahl 07master * r48f65b3 10/ (10 files): Use uv_exepath - http://bit.ly/qH2691 [17:47] brianc: isaacs: you might have already said this and so excuse me if I seem like I'm nagging or haven't done my homework but...thoughts on npm working with node.exe on windows? [17:47] tbranyen: also milliseconds in speed difference is probably not important [17:47] isaacs: brianc: it'll be a little while [17:48] isaacs: brianc: probably fall. [17:48] jklabo has joined the channel [17:48] brianc: isaacs: for now i'm just cloning the repositories i need all to ~/.node_modules into folder names based on their npm package names and that's been working alright. basically doing my own bastardized "npm install -g" with manual dependency resolution [17:48] isaacs: sure [17:48] edspencer has joined the channel [17:48] brianc: makes me much appreciate NPM's magic when I have to go without [17:48] isaacs: brianc: you can also clone them to ./node_modules with their folder name to do a bastardized local install [17:48] thejh has joined the channel [17:49] adrianmg has joined the channel [17:49] brianc: isaacs: true, totally. that's how i started but then realized I do _not_ want to manually resolve dependencies more than once haha [17:50] corytheboyd has joined the channel [17:50] sw8sw8 has joined the channel [17:51] isaacs: brianc: you could write a ryp for windows [17:51] isaacs: brianc: http://github.com/isaacs/ryp [17:51] apoc has joined the channel [17:52] brianc: i dig that [17:52] isaacs: it's like npm without versions [17:52] isaacs: latest of everythign [17:52] isaacs: parses json with grep [17:52] dscape: isaacs: thats pretty cool [17:53] n00dles has joined the channel [17:53] brianc: sweet [17:53] erobit has joined the channel [17:54] raymorgan has left the channel [17:54] jtrudeau has joined the channel [17:56] admc has joined the channel [17:56] apoc has joined the channel [17:57] japj: hmm ryp in python could use py2exe to bundle all dependencies [17:57] reid has joined the channel [17:57] creationix has joined the channel [17:57] clyfe has joined the channel [17:58] svenlito has joined the channel [17:59] xerox: how can I make a child process believe to be running in a terminal of a certain size [18:00] dtan_ has joined the channel [18:01] catphive1 has joined the channel [18:01] stagas_ has joined the channel [18:02] Billbad has joined the channel [18:03] dtan has joined the channel [18:03] erobit has left the channel [18:05] postwait has joined the channel [18:05] CIA-107: node: 03Ryan Dahl 07master * rf5a7de1 10/ (Makefile test/simple/test-executable-path.js): windows: fix simple/test-executable-path - http://bit.ly/qvXJRb [18:06] slajax has joined the channel [18:06] murvin has joined the channel [18:07] Tobbe: I have an array. I want to call a function on every item in the array and replace the value with the "return" value of my function. The problem is that this function will call http.get. [18:07] gozala has joined the channel [18:08] shanez has joined the channel [18:08] Tobbe: so I guess I need some kind of "async map" [18:08] mjr_: xerox: sometimes you can set the ROWS and COLS environment variables. If that doesn't work, you probably have to fiddle with the tty somehow. [18:08] xerox: mjr_: let me try, thanks [18:09] mjr_: Tobbe: there are various libraries that help you do this. [18:09] Tobbe: Am I on the right track? Any sugestinos? [18:09] yozgrahame has joined the channel [18:09] Tobbe: *suggestions [18:09] beriberikix: Anyone using the windows build? Anyone figure out how to make require() look at PATH? [18:09] mjr_: Tobbe: personally, I'd just do it manually. In the callback for http.get, you can check to see how many have completed. If this is the last one, you can move on. [18:09] ropes has joined the channel [18:10] Tobbe: beriberikix: brianc is [18:10] rburhum has joined the channel [18:11] sw8sw8 has joined the channel [18:11] brianc: beriberikix: I usin' win build [18:11] mjr_: Tobbe: var todo = list.length; list.forEach(function (elem, i) { http.get({path: elem}, function (err, res, obj) { todo--; if (todo === 0) { next(); }})}); [18:11] beriberikix: brianc: What are you doing with modules? [18:12] thejh: Tobbe, look at caolans "async" library [18:12] brianc: clone the git repo into ~/.node_modules/ [18:12] thejh: brianc, sure about the dot? [18:12] brianc: beriberikix: example for node_redis... "clone http://github.com/asdf/node_redis ~/.node_modules/redis" [18:12] Poetro has joined the channel [18:12] Poetro has joined the channel [18:12] beriberikix: brianc: ya, that's what I'm doing (minus the dot) but require only looks in PWD [18:13] n00dles has left the channel [18:13] dgathright has joined the channel [18:13] beriberikix: brianc: I added node.exe to the PATH so I can use it anywhere [18:13] herbySk has joined the channel [18:13] brianc: console.log(require.paths) -> ['C:\\users\\brian\\.node_modules'] [18:13] xerox: mjr_: the bigger problem is that I'm writing to an interactive child process, and some inputs produce output, some others don't and I can't seem to grasp the difference [18:14] Tobbe: mjr_: thanks, but I need more hand holding than that :/ [18:14] xerox: I thought it was because for formatting the result of the "help" command it needed the window size [18:14] Tobbe: mjr_: let me meditate on it for a while :) [18:14] TheFuzzball_ has joined the channel [18:15] beriberikix: brianc: so you have to set that in every file, right? [18:15] brianc: no [18:15] brianc: that's already set for me [18:15] piscisaureus has joined the channel [18:15] brianc: do this: `console.log(require.paths)` and see what you get [18:15] cjm has joined the channel [18:15] brianc: and if you want require to look in PATH (which I don't believe it even does on *nix anymore) then you can do this: require.paths.unshift(process.env.PATH.split(';')) [18:16] supster has joined the channel [18:17] context: does node have any sort of printf / sprintf functionality ;x [18:17] beriberikix: brianc: ah, interesting. So the exe sets it [18:17] context: i want to created a formatted string [18:18] jtrudeau has joined the channel [18:18] herbySk74 has joined the channel [18:18] AvianFlu has joined the channel [18:18] compwhizii has joined the channel [18:18] beriberikix: brianc: weird, mine llib\\node. But that'll do, thanks! [18:18] brianc: context: only console.log accepts format parameters [18:18] context: its not accepting %.2f [18:19] jonaslund has joined the channel [18:19] context: or %5s [18:19] brianc: context: oh not sure about that format. haha. only simple ones like console.log("what is up %s", "man?") [18:19] context: :/ grrr [18:20] catphive1: printf format strings don't make a lot of sense in a dynamic language [18:21] systemfault: catphive1: They still make sense. [18:21] context: uhhh how so? [18:21] systemfault: catphive1: The reason, one word: Internationalization [18:21] Tobbe: mjr_: what does next() do in you example? [18:21] catphive1: um [18:21] mjr_: Tobbe: that's whatever you want to do when you are done. [18:21] catphive1: what I'm saying is that *printf* format strings don't make sense [18:21] topaxi has joined the channel [18:22] context: i like printf [18:22] catphive1: because they are build around c's varargs [18:22] context: i simply want to pad strings and numbers in the output so crap lines up [18:22] systemfault: catphive1: You're right that you don't need to specify the type :) [18:22] catphive1: which needs a way to specify how to pop arguments off the stack [18:22] context: and printf does a damn good job at that [18:22] mjr_: Tobbe: in that exmaple, I forgot to actually do something in the callback. Just try taking that example, and reformatting it, then add some logging and stuff. [18:22] catphive1: printf is pretty dangerous in c [18:22] systemfault: There's only a few safe things in C :P [18:22] context: catphive1: only if the developer doesn't know what he is doing [18:23] catphive1: common lisps format function is better for dynamic languages [18:23] systemfault: context: We're all humans, we all do mistake. [18:23] context: systemfault: thats why we write tests [18:23] systemfault: True :) [18:23] context: ok. SO [18:23] catphive1: http://www.gigamonkeys.com/book/a-few-format-recipes.html [18:23] context: HOW do i print friendly, evenly alligned stuff from node ? [18:24] catphive1: you probably need to write your own format function [18:24] context: %15s .. %-15s [18:24] systemfault: Hmm [18:24] context: :/ ... printf makes sense when you dont replace it with someting similar... [18:25] systemfault: Does node.js has (n)curses bindings? [18:25] systemfault: That could be answer. [18:25] systemfault: Ahhh, you just need printf-style formatting. [18:25] context: no. that sounds like a lot of work [18:26] context: systemfault: yeah correct [18:26] systemfault: You could do it yourself, won't be more than a loop and a few .replace, right? [18:26] context: printf is pretty complex if you look at all the options it has [18:26] robi42 has joined the channel [18:27] systemfault: If you need all the options.. yeah :/ [18:27] beriberikix: brainc: require.paths.unshift('C:\\node\\node_modules') works, but obviously doesn't persist. Any ideas? [18:27] systemfault: I would google for javascript sprintf. [18:27] TheFuzzball has joined the channel [18:28] TheFuzzball_ has joined the channel [18:28] Poetro has joined the channel [18:28] Poetro has joined the channel [18:28] CIA-107: libuv: 03Bert Belder 07master * rd56af31 10/ src/uv-win.c : [18:28] CIA-107: libuv: Revert "uv_win: uv_pipe_connect should return -1 on error" [18:28] CIA-107: libuv: This reverts commit 7b4607348a58013e0dd4dfb70d2347b0269ce178. - http://bit.ly/oDTIrT [18:28] brainproxy: for npm, is postinstall script run after dependencies are installed or before dependencies are installed? [18:29] isaacs: brainproxy: postinstall is after. [18:29] isaacs: brainproxy: add pkg, preinstall, add deps, install, postinstal [18:29] brainproxy: isaacs: thanks, makes sense, but just making sure [18:29] isaacs: brainproxy: you can always add -d to the cmd (or --loglevel info) to see all the events firing. [18:29] context: npm install format. there we go [18:29] brainproxy: awesome [18:29] raZer has joined the channel [18:30] AvianFlu has joined the channel [18:31] context: or not [18:31] context: format looks as useless as console.log() [18:32] ezmobius has joined the channel [18:32] thalll has joined the channel [18:33] phpnode has joined the channel [18:33] sub_pop has joined the channel [18:33] context: i think the npm registry should require some sort of 'source' url [18:34] sveisvei has joined the channel [18:34] isaacs: context: like repository: "git blah blah blah"? [18:34] bradleymeck: anyone know if ryah still floats around irc? [18:34] isaacs: context: it supports it. [18:34] isaacs: bradleymeck: yeah, ryah's around. [18:34] bogomips has joined the channel [18:34] Renegade001 has joined the channel [18:34] sveisvei: bad, i forgot how cluncy win commandline is compared to unix [18:34] sveisvei: clunky* [18:34] isaacs: sveisvei: yeah, it's terrible. [18:35] systemfault: cmd.exe or powershell :P [18:35] bradleymeck: or someone with good lib_ev/uv knowledge, trying to figure out how to get an IOWatcher to not keep the event loop going (its a bridge for heartbeats, etc.) [18:35] bradleymeck: stopping it makes it not get any io [18:35] bogomips: hi to everyone, someone know some module that allow to use fb api both fql and graph ? [18:35] bradleymeck: i want it to get io, but not hold the event loop open [18:35] sveisvei: I didnt even bother installing powershell on it, just booted back to ubuntu :P [18:35] context: isaacs: like ... anything? no url, no documentation, no homepage, no nothing [18:35] xerox: how can I debug this error: an interactive program ran as a child_process (with spawn) prints the results of SOME commands to stdout/stderr, but not OTHERS, I am at a loss at what to look at [18:36] isaacs: context: it's not required, but it is supported [18:36] isaacs: context: you can add a "repository" and/or a "homepage" [18:36] context: isaacs: i know. whats the point of a package with a name and a single sentence description. [18:36] isaacs: context: maybe they don't use git. [18:36] isaacs: context: i have a few of those. download the code and read it. [18:37] bradleymeck: i guess ev_ref/unref works, but that can get ugly [18:37] isaacs: (in my case, it's usually a bug, of course. i use git like crazy for everything.) [18:37] context: whats kind of sad... i installed the 'printf' module... it contains no 'printf' function. [18:37] blup has joined the channel [18:37] tj has joined the channel [18:37] isaacs: context: it does always contain an author emali address. `npm owner ls printf` [18:37] context: and of course, the search.npmjs.org shows an author, 'printf' and description of: "Write formatted data (printf and sprintf)" [18:37] isaacs: context: you can contact them that way, always. [18:37] context: yeah. [18:38] piscisaureus__ has joined the channel [18:38] isaacs: context: require("printf") is your printf function [18:38] context: im not mad at you ;) i just htink there should be /some/ url required. but that package does say node 0.1.9 [18:38] jslatts has joined the channel [18:38] context: :/ [18:38] isaacs: module.exports = function(){ ... [18:38] isaacs: hahah [18:38] isaacs: it might be older than npm's support for git repo urls [18:38] context: mm oops [18:39] isaacs: but i bet it still works :) looks like it's just JS [18:39] Kuntau has joined the channel [18:39] ryah: bradleymeck: whats up? [18:40] context: <3 [18:40] context: isaacs: that does work. thnx [18:40] brainproxy: isaacs: any sort of todo list or roadmap or braindump file on what may change in npm 1.1.0 [18:41] isaacs: brainproxy: windows support, plus any other bugs that are outstanding along the way [18:41] admc has joined the channel [18:41] isaacs: brainproxy: the issues list is a good indicator of what's going on [18:41] mikeal has joined the channel [18:41] bradleymeck: ryah, i had a question about lib_ev/uv you might know, we have a server we dont want to keep the event loop open on (so going to unref), but its on a domain socket, have you had any bad experiences with unclosed files from lib_ev/uv because of not refing at the end [18:41] brainproxy: isaacs: oh okay, i just saw the tweet and it said "may.. significant changes" [18:41] isaacs: yep [18:41] isaacs: not sure what'll have to change for windows [18:42] ryah: bradleymeck: bad experiences? no [18:42] ryah: isaacs: do we have an issue for require.paths going away? [18:42] bradleymeck: just checking cause searches brought up that you should re-ref after the ghost server dies. thanks much. [18:42] isaacs: ryah: we will in just a second... [18:42] ryah: :) [18:43] brainproxy: @ryah, what's the version-due-date on that? 0.5.2? [18:43] ryan__ has joined the channel [18:43] ryah: isaacs: we need to have a deprecation getter that prints something for v0.6 [18:43] brainproxy: ACTION has no idea why he typed in an @sign [18:43] dtan has joined the channel [18:44] ryah: bradleymeck: just sometime in the v0.5 dev [18:44] brainproxy: cool [18:44] ryah: i think it's just deleting a few lines [18:44] ryah: oops that was for brainproxy [18:44] brainproxy: 10-4 [18:44] isaacs: ryah: deprecation getter for require.paths? [18:45] ap3mantus has joined the channel [18:45] ryah: isaacs: yeah - so when people access it they get soe message "this went away" [18:45] isaacs: ryah: agreed. think it should return [] as well? [18:46] ryah: isaacs: it could just throw [18:46] isaacs: ryah: k [18:46] sweetd has joined the channel [18:46] isaacs: Object.define(require, "paths", { get: function () { throw new Error("require.paths is gone!!") }}) [18:47] madsleejensen has joined the channel [18:47] chrisdickinson: out of curiosity, re: require.paths, where's it going? [18:47] brainproxy: into the ether [18:47] isaacs: chrisdickinson: away. [18:47] raZer: isaacs: I tried to do process.dlopen in Node REPL on a Hello world program exposing var hello. Doesn't seem to load it. I was wondering about where the native implementation of require that is used for var NativeModule = require('native_module'); [18:48] isaacs: chrisdickinson: to the land of Bad Ideas That Seemed Good At The Time [18:48] chrisdickinson: isaacs: is there going to be any equivalent support for getting / setting paths anywhere? [18:48] isaacs: chrisdickinson: the NODE_PATH environment var will still be read at startup, but it'll be immutable. [18:48] isaacs: chrisdickinson: use node_modules. that's rocking. [18:49] piscisaureus___ has joined the channel [18:49] isaacs: ryah: https://github.com/joyent/node/issues/1348 [18:49] chrisdickinson: isaacs: i'm not leaning on require.paths anywhere [18:49] isaacs: chrisdickinson: then you should be unaffected :) [18:50] chrisdickinson: isaacs: true, but it does pretty much shut the door on any "pure node" virtual environments (a la python's virtualenv.) [18:50] ryah: isaacs: cool [18:50] isaacs: chrisdickinson: well, localized modules are already possible with node_modules folders. [18:50] isaacs: chrisdickinson: npm already does some stuff very similar to virtualenv [18:50] isaacs: with local instals [18:51] tjholowaychuk has joined the channel [18:51] chrisdickinson: true. i'm racking my brain for examples where modifying path would be useful, and i'm having a hard time :) [18:51] mikelietz has joined the channel [18:52] chrisdickinson: one question, re the nesting of modules -- if your root level installs module X alongside modules A, B, and C, each of which require module X, do they each get their own copy of X, or do they lean on the root-level X? [18:53] brainproxy: chrisdickinson: that's explained in the npm docs https://github.com/isaacs/npm/blob/master/doc/folders.md [18:53] justicefries has joined the channel [18:53] brainproxy: see the "cycles, conflicts..." section toward the bottom [18:53] isaacs: chrisdickinson: they'll get the root one, unless there's another X installed inside A, B, or C [18:53] isaacs: chrisdickinson: in which case, they'll get that one [18:54] mikelietz: I'm running into a problem with modules that can't be found. [18:54] chrisdickinson: isaacs: cool. so even if they list package X as a requirement in their package.json, if the root X satisfies that requirement, it'll be used. [18:54] mikelietz: line 25 here: https://gist.github.com/4ac67d446970bcbe4f40 [18:54] isaacs: chrisdickinson: yeah, that's fairly new-ish. [18:54] isaacs: chrisdickinson: ie, that changed slightly in the yet-to-be-release 1.0.16 [18:55] isaacs: chrisdickinson: in that it'll *always* favor the parent copy, even if there's a newer one. [18:55] isaacs: (as long as the parent's is suitable) [18:55] fairwinds: tjholowaychuk: hey. I watched a video on your blog for job queue. Where are sources located for the project? [18:55] chrisdickinson: isaacs: okay, cool. thanks! [18:55] tjholowaychuk: fairwinds you can check it out here http://learnboost.github.com/kue/ [18:56] fairwinds: ah, great, thanks. It looks good [18:56] isaacs: np [18:56] pquerna: https://github.com/joyent/node/issues/1348 [18:56] xtianw has joined the channel [18:57] pquerna: why [18:57] chrisdickinson: the only other pie-in-the-sky dream i have is for there to be a "from" argument that can be passed to "require". [18:57] clyfe: Prefer A or B ? http://pastie.org/2219184 choose one! [18:57] mikelietz: This is the package.json that npm install is using - https://github.com/nerdie/nerdie/blob/master/package.json - it doesn't give any errors but it doesn't seem to be putting forEachAsync somewhere where it can be found. [18:57] seb_m_ has joined the channel [18:58] isaacs: mikelietz: no "main"? [18:58] isaacs: mikelietz: what creates forEachAsync? [18:58] mikelietz: It's part of futures [18:59] mikelietz: You can see that it's installed (or at least seems to be) https://gist.github.com/4ac67d446970bcbe4f40 [18:59] mikelietz: but walk seems to require it and it can't be found. [18:59] catphive has joined the channel [18:59] johnduhart has joined the channel [18:59] slaskis_: to 'unlink' a npm module, is it just a npm uninstall mod -g ? [19:00] isaacs: slaskis_: if it's global, yeah. otherwise just `npm uninstall mod` in the folder [19:01] fyskij has joined the channel [19:02] xtianw has joined the channel [19:02] drderidder has joined the channel [19:02] tuhoojabotti: SubStack: http://urly.fi/aS :D [19:03] isaacs: mikelietz: oh, i see. so, it probably is relying on the old npm 0.2 style of linking every damn thing [19:03] isaacs: mikelietz: it should probably do require("futures/lib/forEachAsync") or something [19:03] isaacs: mikelietz: not just futures/forEachAsync [19:03] mikelietz: I tried that (as well as futures/node_modules/forEachAsync) and it didn't seem to work. [19:04] mikelietz: actually, I take it back. There was a different error when I did the actual path like that. [19:04] Kuntau has joined the channel [19:04] muhqu has joined the channel [19:04] isaacs: mikelietz: do this: require("futures").forEachAsync [19:05] mikelietz: in walk (or wherever it's being required otherwise?) [19:05] isaacs: mikelietz: but this does work: [19:05] isaacs: > require("futures/node_modules/forEachAsync") [19:05] isaacs: [Function: forEachAsync] [19:05] isaacs: mikelietz: yes. [19:05] mikelietz: I'll try it. One moment. [19:05] isaacs: mikelietz: and bug the walk author to publish the fix. [19:05] isaacs: mikelietz: the safest path is require("futures").forEachAsync [19:06] mikelietz: that might just have worked. [19:06] mikelietz: "Your configuration file contains a syntax error. Aborting." which is much more than I'd gotten before. [19:06] mikelietz: thanks! [19:07] mikelietz: I'll do a pull request on the walk plugin once I see this works (got to fix that config, apparently) [19:07] maushu has joined the channel [19:08] mikelietz: curses. Different error on that forEachAsync. [19:08] mikelietz: https://gist.github.com/d39674141dd5c6feb409 [19:08] mikelietz: no method [19:08] isaacs: mikelietz: can't help you there [19:09] mikelietz: ok. You got me a little further though and thank you for that. [19:09] isaacs: mikelietz: i'm a promise-hater. I believe that flow-control utils should be no more than 20 lines. [19:10] beriberikix: ryah: who is working on the windows build? it would be great if it took commandline options, such as require.paths [19:10] mikelietz: I have to be honest - I'm not sure what you mean [19:10] rick-_ has joined the channel [19:10] perezd has joined the channel [19:10] rwaldron has joined the channel [19:10] toto1 has joined the channel [19:11] toto1: Hi, is there a way to send and receive udp from a web browser ? [19:11] ryah: beriberikix: ? [19:11] isaacs: beriberikix: it should work just the same. [19:11] isaacs: beriberikix: you can set the NODE_PATH environ [19:11] context: toto1: no. [19:12] isaacs: mikelietz: futures is a promise utility [19:12] fangel has joined the channel [19:12] isaacs: mikelietz: it's a flow control thingie. [19:12] toto1: context, when will it be possible? [19:12] mikelietz: ohhh. Got it. [19:12] mikelietz: thanks! [19:12] isaacs: mikelietz: and it's several hundred lines longer than i like those sorts of things to be :) [19:12] mikelietz: I think the nerdie people are talking about using something simpler, too. [19:12] isaacs: mikelietz: but i'm fully willing to accept that i'm a luddite in that area. [19:12] isaacs: mikelietz: i like my CPS and my callbacks and my 10 line chain function. [19:13] context: toto1: never? [19:13] mikelietz: I know the feeling. [19:13] ixti has joined the channel [19:14] toto1: i dont understand what you are doing, server and ip transfert in javascript? why not in csharp or java, or python? what is the advantage of javascript [19:14] chunhao has joined the channel [19:14] toto1: context, know why never? [19:14] beriberikix: isaacs: now I feel silly... [19:14] beriberikix: isaacs: never had to do that w/ an installer [19:14] sveisvei has joined the channel [19:14] context: toto1: im wondering why you'd need it, unless your writing a real-time game? [19:15] ixti has joined the channel [19:15] toto1: context, yes real time game, only for chess, with chess lag is big problem [19:15] context: or.. doing something requiring real time, video/audio , which even then flash uses tcp for video and audio [19:15] isaacs: beriberikix: it should still work the same as unix, though, right? $HOME/.node_modules, prefix/lib/node etc. [19:15] context: toto1: just use a websocket. [19:16] toto1: context, websocket is to connect web browser to sever, not to anothr bweb browser?? [19:16] context: its chess. not doom 4. you dont need sub 200ms response times (which websockets will still give you) [19:16] context: toto1: correct ? [19:16] micheil: hmm? [19:16] japj: isaacs: do you know an npm package that includes (>1 deep) dependencies? (for testing ryppi) [19:16] context: you are NOT going to connect a browser to another browser. period. [19:16] micheil: context: websockets are necessarily about speed but abot data [19:16] isaacs: japj: express [19:16] toto1: context, more important for chess because lag must be equal for both players [19:17] isaacs: japj: it depends on connect, which depends on mime and qs [19:17] Ramosa: best OS for node.js? hit me [19:17] beriberikix: isaacs: require.paths is just ../lib/node if I run node.exe, and undefined if I add it to the PATH [19:17] langworthy has joined the channel [19:17] context: toto1: [19:17] japj: isaacs: thanks [19:17] Soapy_Illusions has joined the channel [19:17] isaacs: japj: but "tap" is another good one. [19:17] micheil: context: if you were to use long-polling / short-polling for a chess game, you'd be sending a lot more data than what you would if you used websockets [19:17] isaacs: japj: lots of deps there. [19:17] micheil: (like, most of the data usage would be in the headers and timed out connections) [19:17] brianmario has joined the channel [19:18] micheil: morning isaacs [19:18] japj: isaacs: holy crap, tap has a lot of depencies [19:18] isaacs: morning :) [19:18] context: micheil: think you man toto1 [19:18] isaacs: japj: yeah, every file is its own standalone util [19:18] context: toto1: its chess. lag doesn't matter. [19:18] isaacs: context: !!! [19:18] micheil: isaacs: hey, what's that thing with global variables and leaking variables between modules? [19:18] context: isaacs: ? [19:18] isaacs: context: chess without a timer is like a car without an engine. [19:19] context: oh. timer ! [19:19] toto1: context, what in chess many players play 1 minute game, 50ms player against 200ms player is not fair conditions [19:19] micheil: toto1: I agree with context on the fact that lag in chess does not matter, however, I'd still recommend you use websockets for bandwidth efficiency [19:19] isaacs: micheil: all modules have the same global context. don't pollute it. also, don't rely on polluting it, because if you run wiht NODE_MODULE_CONTEXTS=1 in the env, then they don't. [19:19] AvianFlu: I don't think I've ever once played chess with a clock [19:19] AvianFlu: I'm aware of them, obviously [19:20] isaacs: no. lag in chess matters a lot. [19:20] isaacs: if you have a timer [19:20] AvianFlu: I just don't think I've ever played chess that seriously [19:20] Soapy_Illusions: can anyone help with an http.request() where it's callback is never reached neither is it's on 'error' , as if the request hangs up [19:20] micheil: isaacs: eg, `foo = require('blah'); baz = require('baz');` [19:20] isaacs: micheil: yes, that will pollute the global. [19:20] micheil: then from within baz you can access foo [19:20] isaacs: yeah [19:20] context: toto1: so have the client send a timestamp when it submits, and if its within xxx ms or something accept it. [19:20] toto1: micheil: but websockets are only between web browser and server? not between two web browser??? [19:20] isaacs: micheil: unless you run with module contexts [19:20] context: toto1: you're going to have a difference no matter wyat [19:20] micheil: toto1: that is correct, websockets are server <-> browser [19:21] jetienne has joined the channel [19:21] context: toto1: YOU CANNOT CONNECT A BROWSER TO A BROWSER. i said this already [19:21] micheil: isaacs: okay, this came up recently in a conversation about sharing require's and configuration and stuff [19:21] toto1: i need a communication between two web browser, how? [19:21] context: toto1: you HAVE to have a server in the middle. [19:21] context: toto1: you also HAVE to have a server to ensure no one cheats. [19:21] micheil: (particularly in some node.js stuff we're doing at pusher) [19:21] clyfe: toto1> you cannot do browser to browser directly [19:21] toto1: when will this be possible? with flash, with java? something is possible no? [19:22] micheil: toto1: in a game situation, you should never trust the client [19:22] tuhoojabotti: https://github.com/tuhoojabotti/Chromerly-URL-shortener Translations are welcome! :D [19:22] context: NEVER ! [19:22] piscisaureus has joined the channel [19:22] clyfe: toto1> only with native browser extensions [19:22] jetienne: context: you can, with fflash [19:22] micheil: toto1: that can also be extended to "never trust the client. STOP" [19:22] mehtryx: question - I've created a executable as per: https://gist.github.com/1085350 to run my ../lib/somefile.js if I add the /bin directory of this project to my $PATH variable I can launch that program, but without it doesnt work. which I can understand…except….why when I install say… coffee-script, is coffee and cake binaries accessible without a path to their bin folder ( local not global) ? I assume I'm missing an option or step? [19:22] context: jetienne: prove it [19:22] jetienne: context: read the doc [19:23] micheil: toto1: there is a peer-to-peer communication layer coming, but it has to do a bunch of really complicated STUN and TURN traversal [19:23] toto1: i dont trust the client, both players send server the results, if they are same they are accepted, if not game is not credited, i think this could be correct [19:23] clyfe: toto1> you need a central server anyways: http://www.bluesnews.com/abrash/chap70.shtml [19:23] context: jetienne: vague. [19:23] benjaminRRR has joined the channel [19:23] micheil: so it's much easier to not use client-to-client and just use client-to-server-to-client [19:23] toto1: both players send udp to each other and to server two during game [19:23] nerdfiles has joined the channel [19:23] jetienne: context: no, flash got doc, it is able to do it for years [19:23] micheil: and even with TURN / STUN you need that central server to work [19:23] context: jetienne: according to ActionScript docs, flash.net.ServerSocket only exists in AIR [19:23] context: jetienne: so im still correct. [19:23] tobmaster has joined the channel [19:24] jetienne: context: unfortunatly no [19:24] context: toto1: browser does not have udp. browser does not have server socket. with or without flash unless jetienne can prove the docs im reading wrong [19:24] micheil: jetienne: you may want to read the pusher blog over the next few days, we're releasing some JS updates that you may want to read about [19:24] toto1: when game is finished, if udp sent are correct game is credited, if something went wrong game is aborted [19:24] micheil: context: correction: browsers don't currently have UDP, they will soon. [19:25] clyfe: toto1> wouldn't that make n*n connection +1*n (server) = a lot of trafic VS 1*n when each only talks with server ? [19:25] micheil: toto1: also, in a chess game, you want data reliability [19:25] beriberikix: isaacs: require.paths is also barfing at the colon, NODE_PATH = C:\node\node_modules results in require.paths -> [ 'C', '\\node\\node_modules', 'C:\\Users\\lib\\node' ] [19:25] context: toto1: udp still has latency... so that hardly fixes your 50ms vs 200ms connections... [19:25] isaacs: micheil: the best way there is to either use npm for config, or have a config.js module [19:25] jetienne: context: relax, just considere the possibility exist [19:25] isaacs: beriberikix: that's awesome. [19:25] micheil: toto1: you will also need a server to do user assignments, so who plays who [19:25] isaacs: beriberikix: how do people set the PATH environs and stuff in Windows? [19:25] isaacs: piscisaureus: ? [19:26] context: jetienne: irc puts me in rage mode sometimes :/ its not good for my health. and i prefer to not assume. i like docs that prove what i say [19:26] toto1: context, main problem is latency is shared and equal, that is the case because time is same in both way [19:26] micheil: isaacs: okay, and with the require system, the first require will be fresh, then everything shared between the mutliple requires, right? [19:26] piscisaureus: isaacs: ! [19:26] `3rdEden: context yes you can connect a browser to a browser [19:26] beriberikix: isaacs: I just did PATH c:\node and it works fine. But I think its how node.exe is parsing it [19:26] isaacs: piscisaureus: how do windows users set the PATH environs and stuff? Our NODE_PATH is getting borked by the : in C:\ [19:26] jetienne: context: cool, so go read it. the possibility exists for years [19:26] justicefries has joined the channel [19:26] context: i, want, to, see [19:26] `3rdEden: context https://sites.google.com/site/webrtc/ [19:26] xerox: tuhoojabotti: you around? [19:26] beriberikix: isaacs: trying to escape... [19:26] `3rdEden: ;D [19:27] toto1: yes server, propse opponents, give ip of opponent so they can send them moves, server register game after [19:27] micheil: context: like I said before, browser to browser is coming. [19:27] isaacs: beriberikix: we do a very naive process.env.NODE_PATH.split(":") [19:27] micheil: WEBRTC, and a few other things are enabling it [19:27] isaacs: beriberikix: so it's probably just broken. [19:27] piscisaureus: isaacs: separate by ; not : [19:27] context: jetienne: you say "read it" ... wtf is IT [19:27] xerox: isaacs: %PATH% [19:27] jetienne: context: the doc [19:27] xerox: isaacs: it's also in system preferences [19:27] context: whats "the doc" [19:27] jetienne: context: and no need to be impolite [19:27] isaacs: piscisaureus: really? that's how %PATH% etc is set? [19:27] toto1: micheil i must follow what to know when it will be possible? [19:27] jetienne: context: doc = documentation [19:27] isaacs: piscisaureus: it's separated by ;? [19:28] micheil: toto1: I'm not sure, maybe the w3c public mailing list? [19:28] jetienne: context: are you seriously ignoring what "doc" mean ? [19:28] micheil: or the w3c comms mailing list? [19:28] piscisaureus: isaacs: yes, semicolon is the separator [19:28] isaacs: ok. that's a bug, then [19:28] context: jetienne: no im ignoring someone that says 'read the doc' and the 'doc' i just read said its only in air. [19:28] isaacs: beriberikix: ^ [19:29] micheil: toto1: http://www.w3.org/2011/04/webrtc/ [19:29] jetienne: context: ok, i understand. but you not reading it doesnt imply it doesnt exist. relax breathdeeply. no hard feeling [19:29] toto1: micheil i would like to have a browser able to do so, w3c always change they said they will do such with websocket after they changed saying it is unsecure!! [19:29] vyvea has joined the channel [19:29] vyvea has left the channel [19:29] piscisaureus has joined the channel [19:29] vyvea has joined the channel [19:29] micheil: toto1: hmm, don't use websockets as an example here. [19:30] micheil: it's an exceptional case on specs as there's a lot more than w3c reach involved [19:30] beriberikix: isaacs: looks like it. I also tried %HOMEDRIVE%, but that gets passed straight through [19:30] vyvea: Hello, How to get express in node v0.5.1-pre? [19:30] toto1: yes i found webrtc rtcweb too ask firefox, see a lot with websockets but ... websocket only to connect server! [19:30] tjholowaychuk has joined the channel [19:30] micheil: toto1: I would recommend going with websockets for now. [19:31] micheil: to be honest, they are the most appropriate solution for this kind of application that you describe [19:31] context: oops. batter died :x [19:31] context: battery* [19:31] micheil: even games that are FPS will need to use both WEBRTC and WebSockets [19:31] micheil: WebRTC for the environment changes, and WebSockets for game state comms [19:32] Soapy_Illusions has left the channel [19:32] toto1: micheil: thanks [19:33] jtrudeau has joined the channel [19:33] wookiehangover has joined the channel [19:35] japj: isaacs: is there a standard directory name inside the tarball on npmjs.org? up until now all tar.gz files contain a package directory, but apparently lingo has a different directory structure? [19:35] isaacs: japj: most are named "package", but that's relatively recent. [19:36] isaacs: japj: it can be anything. [19:36] isaacs: japj: but it's always 1 folder. [19:36] isaacs: --strip-components=1 [19:36] ajsie has joined the channel [19:36] japj: isaacs: but it will be a directory? [19:36] isaacs: japj: yes. [19:36] isaacs: japj: the tarball should always contain exactly 1 item, which is a directory with a package.json file inside. [19:36] ajsie: i did npm install . -g for a package .. and it's deps were installed but when I run the cli tool it says [19:36] beriberikix: isaacs: What's the fate of require.paths? https://github.com/joyent/node/issues/1348 [19:36] ajsie: Error: Cannot find module '../deps/async' [19:36] context: jetienne: appologize but after wasting 10 minutes googling, im gonna stick with what i said. [19:37] japj: isaacs: yeah, but I'm extracting the tar from python so no strip-components=1 I think [19:37] isaacs: ajsie: what's ../deps/async? that's not npm's job. maybe you need to put something else there? [19:37] isaacs: beriberikix: it's going away. [19:37] jetienne: context: no need to apologize, no hard feeling [19:37] isaacs: beriberikix: actually, that issue pretty much sums it up :) [19:38] context: jetienne: but for mine and everyone elses sake, can you not say things that you cannot validate in anyway at all [19:38] ajsie: isaacs: hm its not my lib .. i just trying to use it with npm link .. the weird thing is that it works when i install it with "npm install kanso -g" [19:38] jetienne: context: relax, you have the right to disagree with me [19:38] beriberikix: isaacs: Ah, but node_paths is still there :p Wondered how that would work. Should I file a bug for the windows not handling :? [19:39] isaacs: beriberikix: sure. it should be delimited by ";", rather than ":" [19:39] context: jetienne: im not disagreeing with you. im saying you're wrong. [19:39] jetienne: context: yep, and i believe you are wrong, no big deal [19:39] dgathright has joined the channel [19:39] context: anyways. [19:40] Nizam has joined the channel [19:40] jetienne: context: no need to be impolite [19:40] saikat has joined the channel [19:40] context: simply stating facts [19:40] clyfe: anyone knows if mongoose or any other Node ORM/ODM implements something similar to (Rails) ActiveRecord's accepts_nested_attributes_for ? [19:42] context: most document stores do nested documents directly. to keep them seperate you'd use a link, which you could probably easily handle with writing your own function but not aware of anything that 'automagically' does it [19:42] context: depending on the data its possible embedded in the document is better than keeping them seperate [19:42] kmiyashiro: has anyone here modified querystring.escape? [19:42] kmiyashiro: trying to figure out how to make it not escape commas [19:43] ajsie: isaacs: any idea why it works when i do "npm install kanso -g" and how i will have it to work with "npm install . -g" so I can work with it locally? [19:43] isaacs: ajsie: why are you installing . globally? [19:43] isaacs: ajsie: i dont' get that. [19:44] ajsie: isaacs: i did "cd kanso" [19:44] isaacs: ajsie: i don't know what "have it work" means? [19:44] isaacs: ajsie: not familiar with kanso [19:44] ajsie: isaacs: and wanna develop and see the changes [19:44] jetienne: https://github.com/joyent/node/blob/master/lib/querystring.js#L105 kmiyashiro it doesnt seem possible [19:44] isaacs: ajsie: npm help link [19:44] clyfe: context> ty [19:44] isaacs: ajsie: that's what you want% [19:44] isaacs: ^ [19:44] ajsie: i thought you did install first then you link .. let me read [19:45] kmiyashiro: jetienne: ah, thanks [19:45] kmiyashiro: maybe I'll do a .replace after the fact then :( [19:45] bawr has joined the channel [19:46] isaacs: kmiyashiro: yeah, you shoudl be able to replace it. var qs = require("querystring"); qs.escape = (function (orig) { return function (s) { return s.split(",").map(orig).join(",") } })(qs.escape); [19:46] Kuntau has joined the channel [19:46] piscisaureus has joined the channel [19:46] ajsie: isaacs: i have no idea why i get the same error .. i get that its requiring a module with a relative path .. but why is it working then with npm install kanso ? [19:47] jetienne: im not sure this is a better alternative than a post .replace :) [19:47] beriberikix: isaacs: my first contribution to node :) https://github.com/joyent/node/issues/1349 [19:47] isaacs: kmiyashiro: > qs.encode({"foo":"bar,baz"}) [19:47] isaacs: 'foo=bar,baz' [19:47] piscisaureu_ has joined the channel [19:47] isaacs: jetienne: it's easy to screw up a post .replace. [19:47] kmiyashiro: isaacs: sweet... I'll have to study that [19:47] piscisaureu_ has joined the channel [19:48] kmiyashiro: I'm using qs.stringify, but I assume it uses escape [19:48] kmurph79 has joined the channel [19:48] jetienne: isaacs: yep, and modifying official lib may cause a lot of issues too :) [19:48] isaacs: kmiyashiro: yeah. [19:48] isaacs: jetienne: indeed. [19:48] isaacs: it'd be nice if it used an arg, rather than a module-level method. [19:49] kmiyashiro: ACTION just understood the function [19:49] ajsie: isaacs: oh i get it now .. because its a symlink .. so a relative path is starting from /usr/local/bin/kanso and not the package's location [19:49] isaacs: kmiyashiro: why don't you want , encoded? [19:49] kmiyashiro: an API I'm calling requires , [19:49] ajsie: hm this is troublesome [19:50] kmiyashiro: if it's encoded as %2C, it doesn't recognize it [19:50] harthur has joined the channel [19:50] Nizam has joined the channel [19:50] isaacs: kmiyashiro: is the , a separator? or part of a value? [19:50] kmiyashiro: part of a value I guess you could say [19:50] kmiyashiro: id=5123,523,6234 [19:50] isaacs: i see [19:50] kmiyashiro: for multiple results in the response [19:51] isaacs: yeah, that's the kind of edge case this is designed to support. [19:51] isaacs: rare, but valid [19:51] http402 has joined the channel [19:51] Nizam has joined the channel [19:51] boaz has joined the channel [19:51] isaacs: ajsie: npm install . -g copies. npm link makes a symlink. i like link for things i'm developing, because then you don't have to re-install it over and over again [19:52] isaacs: ajsie: node modules are realpathed, so the require() path is always relative to the actual file location. [19:52] tomaw_ has joined the channel [19:52] knuthy has joined the channel [19:53] ajsie: isaacs: i wonder how the author is developing locally then [19:53] tjholowaychuk has joined the channel [19:55] tbranyen: hmmm so i guess its not possible to do try { require('something').whatever(); } catch(ex) {}... to capture exceptions [19:55] tbranyen: thats kind of teh lame [19:56] yozgrahame has joined the channel [19:57] piscisaureus has joined the channel [19:58] tbranyen: especially when using assert module [19:58] nibblebo_ has joined the channel [19:59] sweetd has joined the channel [20:01] japj: bnoordhuis: I'm on the latest cygwin (atleast the setup tool doesnt install anything more recent).. so I don't know what to do get rid of that compile error [20:01] dnjaramba has joined the channel [20:01] bnoordhuis: japj: what version does the setup tool report? [20:02] pifantastic_ has joined the channel [20:02] japj: bnoordhuis: cygwin 1.7.9-1 [20:03] japj: bnoordhuis: but I don't know where the define should be coming from, maybe the related dev package is not updated yet [20:03] bnoordhuis: japj: does a `grep -r` for CLOCK_MONOTONIC in the cygwin include dir find anything? [20:04] japj: bnoordhuis: apparently it is: time.h:#define CLOCK_MONOTONIC (clockid_t)4 [20:04] japj: bnoordhuis: so there might be an include file missing then [20:05] japj: bnoordhuis: gonna check if it solves it [20:05] bnoordhuis: japj: can you add `#define _GNU_SOURCE` at the top src/uv-cygwin.c? [20:06] bnoordhuis: *top of [20:06] bnoordhuis: japj: oh, and make sure `make` actually compiles uv-cygwin.c :) [20:08] raidfive has joined the channel [20:08] japj: bnoordhuis: there is an #if defined(_POSIX_MONOTONIC_CLOCK) surrounding CLOCK_MONOTONIC [20:08] tilgovi has joined the channel [20:08] tilgovi has joined the channel [20:10] aheckmann has joined the channel [20:10] japj: bnoordhuis: apparently that one is coming from /usr/include/sys/features.h and has another surrounding ifdef with #ifdef __CYGWIN__ and then #if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L [20:11] herbySk has joined the channel [20:11] Slashbunny has joined the channel [20:11] arnee has joined the channel [20:12] japj: bnoordhuis: ahem... we build with gcc --std=c89 [20:12] japj: bnoordhuis: I guess that means __STDC_VERSION__ >= 199901L will be out? [20:13] ckknight has joined the channel [20:14] Rub21 has joined the channel [20:14] mikebob has joined the channel [20:14] drderidder has left the channel [20:15] japj: bnoordhuis: if I remove --std=c89 from the CSTDFLAG in config-unix.mk all builds ok [20:15] harthur has joined the channel [20:17] devongovett has joined the channel [20:17] mikedeboer has joined the channel [20:18] devongovett: Hey everyone! I just released slang, a collection of utility functions for working with strings in JavaScript in the browser and Node. Check it out if you're interested in that sort of thing... https://github.com/devongovett/slang/ [20:18] devongovett: And `npm install slang` [20:20] addisonj has joined the channel [20:20] context: devongovett: string already has a trim()/trimLeft/trimRight functions [20:20] mandric has joined the channel [20:20] devongovett: context: yeah, I know. it uses those by default and falls back to my own implementation for older browsers [20:21] context: ahh gotcha [20:21] context: missed that :x [20:21] tsenga has joined the channel [20:25] nibblebot has joined the channel [20:25] piscisaureus_not has joined the channel [20:25] isaacs: context, jetienne btw, it seems like Flash 10.2 does actually support peer-to-peer connections, but only if they first connect to cirrus 2 [20:27] clyfe has joined the channel [20:27] theCole has joined the channel [20:27] isaacs: context: http://labs.adobe.com/technologies/cirrus/ [20:29] TheFuzzball has joined the channel [20:29] clyfe: when I runn the "expresso" command to test mi stuff it never auto-exits, and I have to ctrl-c, is that ok ? [20:29] context: isaacs: nice. [20:29] tjholowaychuk: clyfe: you have connection(s) open etc [20:30] tjholowaychuk: clyfe testing with an event loop is quite different [20:30] clyfe: tjholowaychuk> to the db I guess via mongoose [20:30] mikelietz: isaacs: thanks again for the help before. [20:30] mikelietz has left the channel [20:30] jbpros has joined the channel [20:30] jmalina has joined the channel [20:31] isaacs: context: i'd play with it, but i don't feel like signing up for an adobe developer id :) [20:32] sweetd_ has joined the channel [20:32] context: isaacs: exactly. and after the stint i had with Flash/Flex, im not going back [20:32] isaacs: context: exactly. for my own reasons, i'm very curious about how that all actually works, though. building something like that in node would be pretty rad. [20:33] clyfe: does this channel have logs ? [20:33] isaacs: clyfe: http://nodejs.debuggable.com [20:33] clyfe: ty [20:34] vyvea has left the channel [20:36] ngs has joined the channel [20:37] bawr: Is there a quick howto / faq somewhere about using node.js and CoffeeScript together? [20:37] aliffia has joined the channel [20:38] tbranyen: i just used zombie.js which is coffeescript and it was the worst experience with node so far [20:38] tbranyen: unless you can do better than that [20:38] tbranyen: i would not recommend it [20:39] bawr: I see. [20:39] tbranyen: i dunno maybe its just that project [20:39] tbranyen: but that was a pain in the dilz to get it working and it still doesn't work out of npm [20:39] JJMalina has joined the channel [20:40] Draggor: Anyone here have experience with genetic algorithms? [20:40] ivan has joined the channel [20:40] idefine: Draggor: what are you trying to do? [20:41] Draggor: A complex version of the knapsack problem essentially [20:42] idefine: Draggor: and you want to solve it using nodejs? [20:42] CIA-107: node: 03Ryan Dahl 07master * r130be31 10/ (17 files in 4 dirs): [20:42] CIA-107: node: Upgrade libuv to 1be48f12a0 [20:42] CIA-107: node: and bindings for new req interface - http://bit.ly/ngtIKP [20:42] Draggor: I have a list of symbols with quantities. Each symbol maps to a breakdown of other symbols with ratios. Symbol A has a breakdown of .4*A1, 2*A2, .5*A3, etc [20:42] Draggor: Symbol A has a quantity of, say, 100 [20:43] Draggor: Then I have to count the totals of all the A1s, A2s, etc, and ensure they match some predefined target values. [20:43] Draggor: idefine: I'll solve it in whatever language I can, and if the problem set requires OpenCL, that'd be very cool [20:44] idefine: Draggor: maybe we should move this discussion over to the #machinelearning or #ai channel [20:45] sechrist has joined the channel [20:45] Draggor: ACTION learns two new cool channels [20:45] Draggor: idefine: pick one and I'll see you there? [20:45] CIA-107: node: 03Henry Rawas 07master * r3a96469 10/ (Makefile lib/net_uv.js src/tcp_wrap.cc): connect-timeout callbacks after close - http://bit.ly/pzcNll [20:45] idefine: Draggor: #machinelearning [20:46] sechrist: Is redis cluster working yet? [20:48] caolanm has joined the channel [20:48] aliffia has joined the channel [20:50] dgathright_ has joined the channel [20:50] clyfe: any sample express+mongoose(or whatever db with connection)+*testing* ? [20:50] rwaldron has joined the channel [20:51] eldios has joined the channel [20:53] CIA-107: node: 03Ryan Dahl 07master * rf4154d2 10/ Makefile : [20:53] CIA-107: node: Add 'make test-uv-debug' [20:53] CIA-107: node: To run: ./configure --debug && make test-uv-debug - http://bit.ly/oTlmbi [20:54] mikeal has joined the channel [20:54] dmetcalf has joined the channel [20:55] hybsch has joined the channel [20:55] nibblebo_ has joined the channel [20:56] jacobolus has joined the channel [21:00] PPilate has joined the channel [21:01] context_ has joined the channel [21:01] ckknight_ has joined the channel [21:02] yenz_ has joined the channel [21:03] AvianFlu has joined the channel [21:04] mscdex: php 5.4 will have a built-in webserver! [21:04] tuhoojabotti: OMG [21:04] TheJH: err, what? [21:04] TheJH: but not coded in PHP, right? [21:04] context_: mscdex: heh [21:05] mscdex: http://php.net/manual/en/features.commandline.webserver.php [21:05] mscdex: :S [21:05] TheJH: heh. "This web server is designed for developmental purposes only, and should not be used in production." [21:05] topaxi: haha [21:05] mscdex: ;-) [21:05] Kuntau has joined the channel [21:05] cognominal has joined the channel [21:06] mscdex: i bet that won't stop people [21:06] jonaslund: <3 5.0 api's [21:06] dtan: what's the point then if it's not supposed to be on production [21:06] context_: .... development ? [21:06] TheJH: dtan, it's for lazy developers who don't want to install a fat apache on their machine [21:07] kmox83 has joined the channel [21:07] dtan: ya but then you deploy it to your staging/prod server and theyre' not the same set up [21:07] dtan: and you just have to debug between the built in web server and your real apache build [21:07] context: your php code should run the same with or without apache in front of it. [21:07] dtan: seems to be more headache than it's worth [21:07] context: dtan: and if you are writing an express app do you install apache on your laptop? [21:07] digitaltoad has joined the channel [21:07] Nizam has joined the channel [21:08] chrislorenz has joined the channel [21:08] mscdex: i do! [21:08] mscdex: just so apache doesn't feel so lonely [21:08] dtan: no [21:08] context: crazy person. [21:08] context: dtan: its the exact same thing. [21:08] dtan: ah ok [21:08] TheJH: are people using apache in front of node? wtf? [21:08] dtan: i was thinking something different hten [21:08] Bwen has joined the channel [21:08] context: well, except you are dealing with mod_php but meh [21:08] context: thejh: nginx. [21:09] zpao_ has joined the channel [21:10] TheJH: can node be used as a fastcgi/scgi backend or so? [21:11] context: i imagine so [21:11] TheJH: ACTION dreams of a gatling in front of node [21:11] context: but why? [21:11] TheJH: context, because then you could use gatling in front of node [21:11] mikeal has joined the channel [21:11] context: that'd almost defeat the whole purpose of node [21:12] context: url? [21:12] AvianFlu has joined the channel [21:12] TheJH: context, http://www.fefe.de/gatling/ [21:12] TheJH: context, why would it defeat the purpose of node? [21:12] context: so find an http server that doesn't suck and supports proxying requests ? [21:13] TheFuzzball has joined the channel [21:13] context: fastcgi im pretty doesn't multiplex too well... [21:13] mikey_p: nginx? [21:13] context: http://groups.google.com/group/nodejs/browse_thread/thread/6e852be9ae4e7063/2c048f624147324c [21:13] context: not to mention fastcgi constantly re-executes the cgi [21:13] mikey_p: i would love to hear if anyone has put node behind mongrel2 [21:13] context: instead of keeping it running [21:14] mikey_p: mongrel2 with 0mq is what fcgi is trying to do, its just the wrong technology [21:14] chrislorenz has joined the channel [21:15] context: is mongrel2 that nice? [21:15] mikey_p: well I think that the concept is sound [21:16] mikey_p: i haven't put it into production [21:18] n00dles has joined the channel [21:19] gxdssoft has joined the channel [21:20] necrodearia has joined the channel [21:23] Skola has joined the channel [21:23] guidocalvano has joined the channel [21:24] nibblebot has joined the channel [21:25] ank has joined the channel [21:26] zedas: mikey_p: i haven't tried node behind it yet, i've mostly done ruby, java, python, c, and lua so far. [21:26] azeroth_ has joined the channel [21:26] isaacs: felixge: can i get a review? https://github.com/isaacs/node/tree/require-paths-deprecation [21:27] felixge: isaacs: nice! [21:27] felixge: isaacs: looking at it now [21:27] felixge: isaacs: we keep NODE_PATH ? [21:27] isaacs: felixge: yeah [21:28] felixge: isaacs: why? [21:28] isaacs: felixge: maybe that can go away in 0.7 :) [21:28] ryah: isaacs++ [21:28] isaacs: felixge: it's not nearly as hazardous. [21:28] Charuru has joined the channel [21:28] felixge: isaacs: no? process.env['NODE_PATH'] = '/evil/me'; [21:28] isaacs: felixge: the problem wiht require.paths isn't just the global module lookup location as such, it's the fact that it can change and be modified. [21:28] isaacs: felixge: it reads it at startup, and never again. [21:28] felixge: ah ok [21:29] isaacs: felixge: so, yeah, you could start a sub proc or whatever, but no one's gonna go to that length. [21:29] felixge: let me check out the full tree [21:29] isaacs: felixge: it's just https://github.com/isaacs/node/commit/2cdee3ca25f4f13044acf7c5786e934372a4251e [21:29] isaacs: one commit [21:29] felixge: yes [21:29] felixge: well I guess I can ask github [21:29] felixge: for the version [21:29] felixge: just want to see modules.js in total [21:29] isaacs: yeah, sure [21:29] mikeal: can we remove http.cat in 0.5? [21:30] mikeal: it has a deprecation warning in 0.4 [21:30] taf2: child process is kinda strange too... maybe it could be merged into process, since it's really api to handle processes abiet child processes... so maybe something like... process.child.* would make more sense? [21:30] isaacs: ryah: mikeal++ [21:31] isaacs: where's v8bot? there's a lot of beer not getting distributed. [21:31] ryah: we can remove http.cat now [21:31] mikeal: we'd have to update some of the tests to not use it [21:31] context: i want a beer ! [21:31] mikeal: can you wait until we merge my branch :) [21:31] eldios: jesusabdullah, I so LOLd [21:31] mikeal: just to avoid another rebase conflict [21:31] eldios: at your tweet [21:32] ryah: mikeal: sure [21:32] context: wow thats a lot of pull requests [21:32] mikeal: also, is there a way to run *all* the tests, stuff like test-pummel aren't run on make test [21:33] springmeyer has joined the channel [21:33] ryah: mikeal: ./configure --debug && make test-all [21:33] ryah: ^-- takes 15 minutes [21:33] jesusabdullah: eldios: XD [21:33] mikeal: that's fine [21:34] felixge: isaacs: going to add a few comments on the patch now [21:34] isaacs: awesome [21:34] ap3mantus has joined the channel [21:34] dmcquay has joined the channel [21:34] mikeal: ben found a failing test in test-pummel, but IMO I'm doing the right thing (emitting an error when the socket closes before a response is returned from the server), so the test probably needs to get updated. [21:36] raZer has joined the channel [21:37] D3Vito has joined the channel [21:38] felixge: isaacs: done. Looks awesome : ). Added a few notes so, have a look [21:38] othiym23 has joined the channel [21:38] isaacs: great, thanks [21:38] dgathright has joined the channel [21:39] ryah: mikeal: seems reasonable [21:40] juha___ has joined the channel [21:40] juha___: anyone using mongoose? [21:40] ryah: mikeal: having not really thought about it... it would be interesting to git blame that test and look at the github issue that corresponds to it [21:41] mikeal: you know what, that's not the real issue [21:41] mikeal: the test just makes it sound like that's why it's failing [21:41] mikeal: it outputs that error as an error and then fails it for an entirely different reason [21:42] mikeal: i'm going to add comments to this test [21:42] captain_morgan has joined the channel [21:42] mikeal: to hopefully make it less confusing [21:43] mikeal: hehe, even Ben thought it was failing for the wrong reason [21:43] captain_morgan: DTrejo: ping [21:44] DTrejo: ahoy [21:44] DTrejo: captain_morgan: reading your email now [21:45] captain_morgan: sweet [21:45] mikedeboer has joined the channel [21:46] othiym23 has joined the channel [21:47] CIA-107: node: 03Felix Geisendörfer 07master * r4f59091 10/ doc/api/globals.markdown : [21:47] CIA-107: node: Merge pull request #1350 from coolaj86/patch-1 [21:47] CIA-107: node: added mention of 'Buffer' - http://bit.ly/pFNtnh [21:48] felixge: ^- why does GitHub make me the author, not the commiter? [21:49] felixge: ah I guess it made a merge commit and the actual commit [21:49] felixge: will cherry-pick next time [21:49] admc has joined the channel [21:49] piscisaureus has joined the channel [21:50] isaacs: felixge: yeah, i'm not very happy with github's automated merge thingie [21:50] liquidproof has joined the channel [21:50] felixge: isaacs: well ... I actually like merge commits when they come from other branches (not from a local git pull). But I guess the node git policy is to discourage them for whatever reason [21:50] dgathright_ has joined the channel [21:51] felixge: probably to make the history looking more cute on github :) [21:51] DTrejo: felixge: and difficult to decifer :) [21:52] DTrejo: git fetch ; git rebase origin/master # winz :) [21:52] felixge: DTrejo: git pull --rebase for pros ;) [21:53] kmiyashiro: don't rebase me bro [21:53] mikeal: so [21:53] mikeal: if a readable stream emits "error" [21:54] mikeal: should it still emit "end" afterwards? [21:54] DTrejo: oo tough one [21:54] mikeal: I'm leaning towards no [21:54] DTrejo: I want to say no, but I'm not a good person to ask [21:55] mikeal: we cleanup entirely in pip() [21:55] mikeal: er pipe() [21:55] malkomalko has joined the channel [21:55] mikeal: also, people tend to put their success conditions in "end" [21:55] mikeal: so erroring and then emitting end() is not what they want [21:55] n00dles: think of it like a phone call... if the line drops, you dont get to still say goodbye [21:58] seb_m_ has joined the channel [21:59] clyfe: any sample express+mongoose(or whatever db with connection)+*testing* ? [22:00] socketio\test\00 has joined the channel [22:00] _sorensen_: uh [22:00] _sorensen_: sure [22:00] _sorensen_: h/o [22:01] mikeal: yeah, i'm leaning towards that [22:01] _sorensen_: clyfe: https://github.com/alexyoung/nodepad [22:02] CIA-107: node: 03AJ ONeal 07master * reb7d762 10/ doc/api/globals.markdown : Document that 'Buffer' is a global variable - http://bit.ly/oPLDkv [22:02] clyfe: _sorensen_> ty [22:02] cjm has joined the channel [22:03] brianseeders has joined the channel [22:03] n00dles: mikael: gracefully recovering after a fatal error is a kinda strange concept when you think about it :) [22:04] sfoster has joined the channel [22:04] n00dles: like... Olympic Gymnastics or something lol [22:04] zivester has joined the channel [22:04] _sorensen_: its right up there with returning HTTP status codes on a socket connection [22:04] _sorensen_: ACTION is guilty [22:05] n00dles: lol [22:05] TheJH: http status codes inside a socket conection? [22:05] _sorensen_: >.< [22:05] _sorensen_: yes... [22:05] _sorensen_: record not found, i just returned a 404 without even thinking about it [22:06] catb0t has joined the channel [22:06] n00dles: The installation of OpenIndiana has completed successfully. [22:06] n00dles: ta ta! [22:06] n00dles has left the channel [22:06] theCole has joined the channel [22:07] felixge: mikeal: about stream events: Ryan and I sat down in cologne and came up with a consistent set of rules for the events / methods, I hope he still has it [22:08] mikeal: he mentioned that [22:08] mikeal: but i think he said he hoped that you still had it :) [22:09] Kuntau has joined the channel [22:09] kartmetal: quick Question: Can a cygwin build of node.js be used on a windows system that doesn't have cygwin installed? [22:09] bnoordhuis: kartmetal: no [22:10] kartmetal: I was afraid of that. what are the .exe builds on nodejs.org using? [22:11] bnoordhuis: kartmetal: either mingw or msvc [22:11] DTrejo: kartmetal: there are some binaries somewhere that you can just downllad [22:11] DTrejo: not sure where though [22:11] DTrejo: so that's not terribly helpful [22:11] kartmetal: yes, I see some there http://node-js.prcn.co.cc/ [22:11] CIA-107: node: 03isaacs 07master * rebc4d5c 10/ doc/api/modules.markdown : Remove duplicate docs about main module - http://bit.ly/mZRmsB [22:11] DTrejo: binary meaning: big fat package with node+cygwin inside it [22:11] CIA-107: node: 03isaacs 07master * r7f0047c 10/ (8 files in 5 dirs): [22:11] CIA-107: node: Close #1348 Remove require.paths [22:11] CIA-107: node: Module.globalPaths is still set to a read-only copy of the global [22:11] CIA-107: node: include paths pulled off of the NODE_PATH environment variable. [22:11] CIA-107: node: It's important to be able to inspect this, but modifying it no longer [22:11] CIA-107: node: has any effect. - http://bit.ly/obDVxv [22:11] kartmetal: I'm trying to convert some .js files into an .exe though. [22:12] isaacs: felixge: accepted all your edits, and pushed. thanks [22:12] kartmetal: so that involves playing with lib/_third_party_main.js and recompiling. [22:12] felixge: isaacs: cool. Very happy to see require.paths go :) [22:13] isaacs: yeah [22:13] isaacs: soooo many headaches [22:13] isaacs: the funny thing is that it was only changing a tiny amount of code, but a huge amount of docs. [22:13] felixge: well, I mean we have the general concept of looking for stuff in multiple folders [22:14] felixge: which would even stay after nuking NODE_PATHS [22:14] felixge: NODE_PATH [22:14] felixge: but it makes things much easier to explain [22:14] felixge: previously you had to tell a little story and history to explain where node files were loaded from :) [22:14] isaacs: yeah [22:14] CIA-107: libuv: 03Bert Belder 07structerr * r82ba375 10/ (include/uv-unix.h include/uv-win.h include/uv.h src/uv-win.c): Stop g++ from complaining about anonymous struct usage - http://bit.ly/qJLo0K [22:14] rburhum has joined the channel [22:14] isaacs: there's still a little bit of history [22:15] Kuntau has joined the channel [22:15] felixge: hehe [22:15] yozgrahame has joined the channel [22:16] felixge: right, but for now it's more like 3 important rules: ./ -> relative, / -> absolute, otherwise core or node_modules [22:16] felixge: of course that leaves out index.js [22:16] felixge: package.json [22:16] felixge: and whatever I'm forgetting [22:16] felixge: :) [22:16] isaacs: hehe [22:16] DTrejo: package.json can be required? [22:16] isaacs: felixge: the module api doc is still relevant [22:17] isaacs: DTrejo: when you require("folder") if there's a folder/package.json, then i'tll load the main module from the package.json file [22:17] DTrejo: ah, ok [22:17] tjholowaychuk: i wish we had convention for that [22:17] tjholowaychuk: over a key in the package json [22:18] felixge: tjholowaychuk: I make it a rule to have an index.js in my modules [22:18] felixge: which module.exports = require('./whatever/main') [22:18] tjholowaychuk: same [22:18] felixge: so I think we could actually do without the package.json thing in core [22:19] rudolfrck has joined the channel [22:19] tjholowaychuk: seems kinda hacky [22:19] felixge: isaacs: what do you think? [22:19] quackquack has joined the channel [22:19] quackquack: how do you tell expressjs which environment it is in? [22:19] tjholowaychuk: if that's all we are doing with it then definitely [22:19] isaacs: felixge: no, package.json is nice. [22:19] tjholowaychuk: quackquack: app.settings.env [22:19] felixge: isaacs: then we should get rid of index.js ? [22:19] isaacs: felixge: otherwise npm has to do more work to make it work, and just unpacking modules won't be as trivial. [22:20] felixge: isaacs: right now they can kinda do the same [22:20] isaacs: felixge: i'd be ok with that, but a lot of existing programs depend on it. [22:20] felixge: isaacs: that's your problem! :) [22:20] felixge: just kidding [22:20] isaacs: felixge: hehe [22:20] tjholowaychuk: deprecate it [22:20] tjholowaychuk: haha [22:20] tjholowaychuk: index.js at root makes more sense [22:20] isaacs: felixge: i *really* don't like npm to be required. it should be used becuase it's useful. [22:20] felixge: I actually like index.js more than package.json [22:20] felixge: so I'll be silent if this turns against me [22:20] felixge: : ) [22:20] isaacs: tjholowaychuk: the issue there is that you end up wiht a dozen files named "index.js" [22:20] isaacs: that kinda sucks for debugging [22:21] isaacs: and the command-t extension in vim. [22:21] quackquack: tjholowaychuk: thanks! [22:21] tjholowaychuk: meh kinda depends on the editor i guess [22:21] felixge: isaacs: I ignore my node_modules folder [22:21] tjholowaychuk: but i have tons of files named the same anyway [22:21] mikeal: ok, i feel really good about this branch now [22:21] isaacs: tjholowaychuk: ui'm talking about hte node built in debugger. [22:21] felixge: If I find myself editing the local node_modules folder it's a reminder I should be using npm link [22:21] tjholowaychuk: ah [22:21] isaacs: tjholowaychuk: it shows you the files in use, and if they're all "index.js" it's useless. [22:21] isaacs: felixge: good practice :) [22:21] aliem has joined the channel [22:21] tjholowaychuk: i guess [22:22] tjholowaychuk: still [22:22] felixge: isaacs: you need to get on emacs, I heard its dope [22:22] felixge: :) [22:22] isaacs: we should change the module system slowly. i think it's in sort of a good place now. [22:22] felixge: yeah, I'm happy with it for most parts [22:22] isaacs: ACTION is the stick in the mud. [22:23] tjholowaychuk: yeah [22:23] CIA-107: libuv: 03Bert Belder 07master * r82ba375 10/ (include/uv-unix.h include/uv-win.h include/uv.h src/uv-win.c): Stop g++ from complaining about anonymous struct usage - http://bit.ly/qJLo0K [22:23] tjholowaychuk: it being a hack isn't a good enough reason to change it [22:23] mikeal: how do i build the docs? [22:23] tjholowaychuk: everything in js is a hack [22:23] felixge: my main problem was injecting stuff into the modules I require for unit testing, but I solved that with sandboxed module, and I can make it a lot simpler for 0.5 [22:23] felixge: tjholowaychuk: :) [22:25] mikeal: make doc [22:25] mikeal: i just guessed, it worked :) [22:25] ckknight_: tjholowaychuk: I'd say it's a scale, some things are a lot more "hacky" than others. [22:25] ckknight_: JS does have the problem of having a minimum level of hackiness for nearly anything, though. [22:26] tjholowaychuk: yeah [22:26] tjholowaychuk: it's one of those things you feel is kinda dirty but it doesn't really matter [22:27] tjholowaychuk: most modules seem reasonably consistent structure-wise [22:27] Kuntau has joined the channel [22:28] weezle has joined the channel [22:28] quackquack: now if we could only get a decent CLIENT js package loader... [22:28] peol has joined the channel [22:28] peol has joined the channel [22:28] peol has joined the channel [22:28] Nizam has joined the channel [22:29] adrianmg: anyone using chrome? [22:29] _sorensen_: ACTION is [22:29] kartmetal has joined the channel [22:29] jesusabdullah: I use the shit out of chrome [22:30] adrianmg: is this displaying ok? http://213.60.69.67:3000/ [22:30] adrianmg: it seems linux users dont [22:30] chrisdickinson: quackquack: i'd settle for a decent user-maintained package registry for browser js. [22:30] chrisdickinson: (sort of like the google api stuff, but with a lower barrier to publishing libraries.) [22:30] catphive has joined the channel [22:30] stride: adrianmg: nah, chrome 12 on linux, the text is garbled [22:30] chrisdickinson: (and maybe being able to bake repositories into localStorage to cut down on requests?) [22:30] tjholowaychuk: adrianmg: no text for me [22:30] tjholowaychuk: no input or anything [22:30] sveisvei has joined the channel [22:30] adrianmg: text fucked up on linux only? [22:31] jesusabdullah: whoa [22:31] stride: adrianmg: and I can't use the text input there [22:31] jesusabdullah: your chat room text is reversed and overlaid on the other text [22:31] adrianmg: it seems chrome on linux [22:31] adrianmg: doesnt interpret some advanced webkit props [22:31] adrianmg: thanks [22:31] ckknight_: adrianmg: it took forever to load and chrome asked me to kill the page [22:31] _sorensen_: adriangmg: doesnt load for me [22:32] adrianmg: ckknight_ its on a local machine [22:32] tauren has joined the channel [22:32] adrianmg: xD [22:32] chrisdickinson: adrianmg: chrome on OSX wouldn't display anything in the box 'till i disabled the -webkit-backface-visibility line [22:32] jesusabdullah: Also: Huh, I guess people *do* use Faye [22:32] adrianmg: mmm so its strange [22:32] adrianmg: it is ok for me [22:32] adrianmg: dont know what is happening [22:32] adrianmg: im in chrome osx too [22:32] adrianmg: did you check all static files? [22:32] adrianmg: well 2 css files [22:32] mikeal: how strictly are we enforcing the 80char line thing? [22:33] _sorensen_: oh >.< [22:33] _sorensen_: i cant view anything on port 3000 [22:33] _sorensen_: dur [22:33] _sorensen_: cant help on this one [22:33] jesusabdullah: I enforce it pretty hard in code [22:33] jesusabdullah: if that's what you mean [22:34] CIA-107: libuv: 03Bert Belder 07structerr * rc1bddb9 10/ (include/uv-unix.h include/uv-win.h include/uv.h src/uv-win.c): Stop g++ from complaining about anonymous struct usage - http://bit.ly/oM9VI3 [22:35] bnoordhuis: mikeal: religiously [22:35] zeade has joined the channel [22:36] bnoordhuis: heretics will be put to the torch [22:36] Kuntau has joined the channel [22:36] mikeal: i have a line that looks significantly better at 89 chars than it can at anything below [22:36] mikeal: breaking it up obfuscates it [22:36] mikeal: the only reason it's long is that ryah loves long as variable names :) [22:36] bnoordhuis: mikeal: what's it look like? [22:37] sweetd has joined the channel [22:37] bnoordhuis: mikeal: ps: you got that pummel test thing resolved with ryan, right? [22:38] mikeal: https://github.com/mikeal/node/blob/http2/lib/http.js#L490 [22:38] mikeal: bnoordhuis: i fixed it [22:38] mikeal: basically, the legacy client interface is weird [22:38] MGT has joined the channel [22:38] mikeal: and that test was actualy failing on not getting an "end" event out of it [22:38] drderidder has joined the channel [22:39] kakamba has joined the channel [22:39] bnoordhuis: mikeal: good [22:39] TooTallNate has left the channel [22:39] bnoordhuis: about that line [22:39] tjholowaychuk: mikeal: that looks fine to me or maybe var them in the function's head [22:39] TooTallNate has joined the channel [22:39] tjholowaychuk: then you can take off all the "this." [22:39] tjholowaychuk: should fit [22:39] bnoordhuis: just break it up at the || [22:40] tjholowaychuk: that method is way too large [22:40] tjholowaychuk: haha [22:40] tjholowaychuk: wtf [22:40] tjholowaychuk: if it doesnt fit in my screen [22:40] tjholowaychuk: it's too big [22:41] mikey_p: that screen is too small [22:41] mikeal: bnoordhuis: i tried that, the problem is that it's a long or conditional that is && to the previous conditional, and when i broke it up it looked more confused as to where the && related to the ||'s [22:41] Murvin has joined the channel [22:41] pifantastic has joined the channel [22:41] drderidder has left the channel [22:41] bnoordhuis: mikeal: if it was hard to write, it should be hard to understand [22:41] bnoordhuis: (i kid, i kid) [22:42] mikeal: tjholowaychuk: you mean the OutgoingMessage.whatever? [22:42] Murvin: mikeal: hehe u here. thanks for your reply & help. [22:42] tjholowaychuk: IMO node should separate constructors into sub modules (not git submods) so you dont have 5 end() methods [22:42] ryanfitz has joined the channel [22:42] tjholowaychuk: since we have no docs either it's annoying to navigate around [22:42] adrianmg has joined the channel [22:42] Murvin: tjholowaychuk: it is time consuming to navigate code [22:42] mikeal: Murvin, you could just pull the v0.4.x branch in to a local branch [22:42] mikeal: then replace https.js and http.js [22:42] mikeal: and ./configure && make [22:43] Murvin: ok. [22:43] ekryski has left the channel [22:43] Murvin: what is the DTRAC_TTP_SERVER_REQUEST() doing, by the way.. [22:43] mikeal: it's a dtrace probe [22:43] tjholowaychuk: Murvin it shouldn't be [22:43] CIA-107: libuv: 03Bert Belder 07master * rc1bddb9 10/ (include/uv-unix.h include/uv-win.h include/uv.h src/uv-win.c): Stop g++ from complaining about anonymous struct usage - http://bit.ly/oM9VI3 [22:43] tjholowaychuk: http could easily be broken into several smaller files [22:43] tjholowaychuk: that make way more sense [22:43] mikeal: FUCKING CROCKFORD! [22:43] Kuntau has joined the channel [22:43] mikeal: jslint wants a retarded amount of semicolons [22:43] mikeal: way more than is even sane [22:43] Murvin: lol [22:45] tjholowaychuk: I understand node's core is supposed to boot fast etc, but organization should at least slightly take precedence to some degree [22:45] raZer has joined the channel [22:45] Sorella has joined the channel [22:46] patrickjst has joined the channel [22:46] TooTallNate: +1 to dividing http.js into separate modules [22:46] mikeal: hehe, node already has a bunch of lines that are longer than this [22:46] mikeal: in this file [22:46] mikeal: so i'm leaving it :P [22:47] tjholowaychuk: gah [22:47] Murvin: mikeal: running.. thanks. :) [22:49] mikeal: sweet [22:49] Nizam has joined the channel [22:49] brainproxy has joined the channel [22:49] brainproxy has joined the channel [22:49] bnoordhuis: tjholowaychuk: at build time all the core libs are assembled into one big blob anyway [22:50] tjholowaychuk: bnoordhuis: oh! right [22:50] tjholowaychuk: forgot about that [22:50] tjholowaychuk: then it should definitely be changed [22:50] Murvin: mikeal: It seems that It has a better socket management as before. :) [22:50] sveisvei has joined the channel [22:50] liquidproof has joined the channel [22:51] CIA-107: node: 03Bert Belder 07master * r1c2dd45 10/ (4 files in 2 dirs): libuv: stop g++ from complaining about anonymous struct usage - http://bit.ly/r7VHH9 [22:51] CIA-107: node: 03vegorov@chromium.org 07master * r442c5c9 10/ deps/v8/src/platform-win32.cc : [22:51] CIA-107: node: MinGW32: define STRUNCATE and change strncpy_s implementation to follow specification. [22:51] CIA-107: node: This fixes the debug build for MinGW32 [22:51] CIA-107: node: Patch by Bert Belder. [22:51] CIA-107: node: Review URL: http://codereview.chromium.org/7308007 [22:51] CIA-107: node: git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@8552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 - http://bit.ly/nNAipn [22:51] CIA-107: node: 03vegorov@chromium.org 07master * r17bff60 10/ (4 files in 4 dirs): [22:51] CIA-107: node: Correctly propagate toolchain setting in SConstruct. [22:51] CIA-107: node: Patch by Bert Belder. [22:51] CIA-107: node: Review URL: http://codereview.chromium.org/7309014 [22:51] CIA-107: node: git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@8555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 - http://bit.ly/ooSC7T [22:52] Lightdork has joined the channel [22:52] ryah: mikeal: no lines over 80 chars [22:52] ryah: it makes the computer gods angry [22:53] c4milo1 has joined the channel [22:54] krh: so true [22:54] tjholowaychuk: ryah: are you against http.js being ./http/{index,request,response,client}.js etc? [22:54] tjholowaychuk: since they get bundled up anyway [22:55] ryah: tjholowaychuk: subdirectories would need special suppoert [22:55] ryah: in the build system [22:55] tjholowaychuk: I can do that if you're not against the idea [22:55] Rub21 has left the channel [22:56] tjholowaychuk: I always search for a method and end up looking at the client or something instead of request etc haha [22:56] ryah: tjholowaychuk: if you can figure out a simple way to do that - i'd be for it [22:56] tjholowaychuk: ryah: sounds good [22:57] ryah: tjholowaychuk: we're prob landing mikeal's patch after v0.5.2 so you might want to wait for that [22:57] tjholowaychuk: will do [22:57] mikeal: i don't know if i like that [22:57] theCole has joined the channel [22:58] mikeal: because as it stands everything is built on OutgoingMessage and IncomingMessage [22:58] mikeal: whenever you're writing code against ClientRequest/Response and ServerRequest/Response you need to refer to them over and over agian [22:58] mikeal: it's simpler being in the same file [22:59] mikeal: you even to to refer to the Server objects when you're doing Client work to figure out why something might be in Outoing/Incoming Message when you want to patch it [22:59] Murvin: mikeal: is it recommend to do clientRequest.abort() when on("error"), or let the http.js to handle it? [22:59] mikeal: they are entangled with each other to separate them mentally so i don't see why they should be separate files [22:59] tjholowaychuk: i guess. i didn't really mean just http.js, any that are too large and would make sense to organize [22:59] mikeal: Murvin: it's unnecessary [22:59] mikeal: others might lend themselves to it better [22:59] mikeal: but http.js is very interdependent [23:00] mikeal: more than you would think [23:00] kmurph79 has joined the channel [23:00] mikeal: honestly tho, that file will get hundreds of lines smaller [23:00] mikeal: when we remove http.cat and http.Client [23:00] tjholowaychuk: all i know is when I search for end() etc in any file I get like 5 or more hits [23:00] Murvin: mikeal: ok. seems that your http.js solve the socket problem that borther me for so long. [23:00] mikeal: the whole bottom of the file is just legacy interface [23:01] bnoordhuis: mikeal tjholowaychuk: as long as it's < ~2000 lines i don't see a need to break it up [23:01] mikeal: I think there is only one end() method in all of http.js [23:01] mikeal: it's on OutgoingMessage [23:01] Murvin: mikeal: By the way, is there a reason why not exporting socket's timeout ? :) [23:01] mikeal: what do you mean? [23:03] Murvin: the socket timeout is default to 2 minutes. but, if I want to change the timeout, then the only way is to change it in the http.js and make it again.. [23:03] Murvin: just think that it would be nice if developer can set the timeout. [23:03] mikeal: yeah, tjholowaychuk: there is only one end() method in http.js [23:03] tjholowaychuk: mikeal must be thinking of some other method / file :s haha not sure off hand [23:04] tjholowaychuk: to me they are too large, but i guess that's just opinion [23:04] mikeal: Murvin: http.get().setTimeout() [23:04] mikeal: tjholowaychuk: there are probably more in net and fs [23:04] Murvin: what about http.request().setTimeout(), same? [23:05] Murvin: so, it will overwrite the socket one? [23:05] scottlepich has joined the channel [23:06] malkomalko has joined the channel [23:09] pquerna: win 21 [23:09] mikeal: yes [23:09] mikeal: Murvin: it actually defers that until a socket is assigned and it gets a "connect" event [23:09] mehlah has joined the channel [23:10] sechrist has joined the channel [23:10] mikeal: then it calls it on the socket [23:11] Murvin: mikeal: ok. what is the arguments? a function? what if I want to set the timeout be only 30 secons... instead of 2 minutes.. [23:11] mikeal: the arguments are exactly the same as socket.setTimeout [23:11] mikeal: it literally calls socket.setTimeout.apply(socket, arguments) [23:12] mikeal: it just waits to do that until a) a socket is assigned for the request and b) it has had a "connect" event [23:12] yozgrahame has joined the channel [23:12] Kuntau has joined the channel [23:12] gde33 has joined the channel [23:13] felixge has joined the channel [23:13] felixge has joined the channel [23:13] catphive has joined the channel [23:13] jakehow has joined the channel [23:13] pifantastic has joined the channel [23:14] level09 has joined the channel [23:16] Lightdork has joined the channel [23:16] tjholowaychuk: can we have process.pgid in 0.5.x? [23:16] tjholowaychuk: assuming that's all good in windows land [23:16] corytheboyd has left the channel [23:18] bnoordhuis: tjholowaychuk: in the os module probably, yes [23:18] bnoordhuis: i don't think windows has a similar concept [23:18] tjholowaychuk: bnoordhuis: why not to match process.pid ? [23:18] tjholowaychuk: oh [23:18] tjholowaychuk: hmm [23:18] bnoordhuis: well... s/think/know/ [23:19] mikeal: alright [23:19] mikeal: fixed all the damn jslint crap [23:19] mikeal: https://github.com/mikeal/node/commit/208e69b54812853a8f5cc21f201dcfd216a92e17 [23:19] tjholowaychuk: bnoordhuis: that's weird/interesting [23:20] bnoordhuis: tjholowaychuk: what do you need it for anyway? [23:20] tjholowaychuk: bnoordhuis: im adding a bit of polling to cluster to signal the pgid to see if the parent was killed [23:20] tjholowaychuk: im just passing the pid via env var for now [23:21] bnoordhuis: tjholowaychuk: right - you can have that right now as a native add-on [23:22] tjholowaychuk: meh i try and stay away from compiled stuff, the env var is fine it would just obviously be nicer to have something like process.pgid [23:23] weezle has left the channel [23:24] bnoordhuis: mikeal: you're going to squash those commits, right? :) [23:25] bnoordhuis: crockford, little baby... [23:25] mikeal: oh yeah [23:25] mikeal: either I can do a branch diff [23:25] mikeal: or whoever is going to commit it can [23:26] TheFuzzball has joined the channel [23:26] Kuntau has joined the channel [23:27] pandeiro has joined the channel [23:27] rvb has joined the channel [23:28] markwubben has joined the channel [23:29] mcavage has joined the channel [23:30] kartmetal: Follow-up quick Q: Can a node.exe binary built with MingW be used on a box without MingW installed? [23:30] Murvin: mikeal: what is EADDRNOTAVAIL error? (Cannot assign requested address) [23:30] Murvin: mikeal: is that the client DNS problem? [23:30] mikeal: most likely, how are you getting it? [23:31] kartmetal: Murvin, your program might be opening too many connections simultaenously, running out of available tcp/udp ports. [23:31] Murvin: mikeal: I'm running load testing.. http.request() and connect to a remote server within my company's network. I actually just call the IP address [23:31] Murvin: karatmetal: my agent.maxSockets is 2000. my ulimit-a is 90000 [23:32] nym has joined the channel [23:32] mikeal: and this happens after a while? [23:32] Murvin: mikeal: ab -n100000 -c1000 myserverIP [23:32] kartmetal: I think you can never really have more than 64K port in use per source IP. [23:32] mikeal: i wish i could run ab :) [23:32] kartmetal: if you need more than 64K sockets, you'll have to juggle multiple source IP addresses. [23:32] mikeal: it's broken on Lion [23:33] Murvin: mikeal: yes.. after a while. lsof is only ~600 [23:33] Kuntau has joined the channel [23:33] mikeal: if it's all to one source the pooling will keep you at 2000 [23:33] Murvin: kartmetal: yes.. agree. i just bump the number up for testing purpose. in prodcution, i will have multiple servers running, with load balancer [23:34] Murvin: mikeal: yes.. the # is kept way under 2000. That is a huge difference from previous http.js [23:34] bnoordhuis: Murvin: EADDRNOTAVAIL is what you get when you try to bind to an interface that is down [23:34] Murvin: mikeal: nice work. :) [23:34] bnoordhuis: Murvin: or non-existant, of course [23:34] mikeal: the remote server could be capping you [23:35] Murvin: bnoordhuis: Thanks.. so i flood the remote client server and it is no response, right? nothing to do with node, right? heheh [23:35] bnoordhuis: Murvin: it's a local error [23:36] bnoordhuis: Murvin: if i try to start a server on 8.8.8.8, that'd fail with EADDRNOTAVAIL [23:36] Murvin: bnoordhuis: it is the remote server not responsding, right? not because of the node server crash, right? [23:36] Murvin: bnoordhuis: why? [23:36] heavysixer has joined the channel [23:37] bnoordhuis: Murvin: it's a local error, originating from your machine [23:37] stagas_ has joined the channel [23:38] bnoordhuis: Murvin: if you get this when making requests to another server, you're trying to bind the client connection to an ip address you don't have [23:39] Murvin: mikeal: so far, i have run about 500,000 request by using ab. except for that EADDR and occasionally socket hang up problem, i don't see the same kind of socket leak as before. and after the a while, the # of sockets (lsof) will drop down (but not 0). it is way better than before, in which the number will stay. [23:40] mikeal: if you stop making requests node should exit [23:41] warz has joined the channel [23:41] Murvin: bnoordhuis: Hmm.. yes. my node use http.request to connect another server by IP address. I run the test on the same IP address. most of the time, it success. but after running a while, the EADDR error will occur. when it happen, it will happen in mass (subsequence calls), instead of just one or two. [23:42] ddollar has joined the channel [23:42] bnoordhuis: Murvin: you've probably exhausted the bind space when that happens [23:42] walkah has joined the channel [23:42] Corren has joined the channel [23:43] doki_pen has joined the channel [23:43] bnoordhuis: Murvin: since you bind to a single address, the only differentiator is the port number and that's quite limited [23:43] Murvin: hmmm bind space.. how to increase it? [23:43] Murvin: and I actually connect to one IP address with one port for all requests. [23:43] Swimming_bird has joined the channel [23:43] kartmetal: Murvin: http://www.toptip.ca/2010/02/linux-eaddrnotavail-address-not.html [23:43] Murvin: is it caused by the bind space at my side? [23:44] CIA-107: node: 03Henry Rawas 07master * rf3f3b12 10/ (Makefile lib/net_uv.js src/tcp_wrap.cc): net_uv: getsockname binding - http://bit.ly/pmHwSw [23:44] Murvin: kartemal: thanks. i will take a look now [23:44] Fandekasp has joined the channel [23:45] Murvin: so, this is the limitation in my local machine, right? [23:45] KingJamool has joined the channel [23:46] bnoordhuis: Murvin: yes [23:46] theCole has joined the channel [23:46] patrickjst has joined the channel [23:47] Murvin: OOO.. my server port.. ok.. not the remote port.. hmmm [23:47] cafesofie has joined the channel [23:47] Murvin: Hmmm but my port range is from 32700 to 60000 almost 30,000 availabe port. [23:48] Swizec has joined the channel [23:48] bnoordhuis: Murvin: google for TIME_WAIT [23:49] Murvin: ok [23:49] Murvin: hahaha.. ok.. i m actually use up 44000 TCP while running the test.. hmmm [23:50] mikeal: if you make the requests faster you'll use the same connection because of keep-alive [23:50] mikeal: queue them all up at once [23:52] Murvin: by the way, bnoordhuis, mikeal, I think the socket leak problem is not there in the http.js fix. Thanks. It really saves my project. :) and a prove to those who suspect my decision using node. :D [23:52] Murvin: really thank you. [23:53] bnoordhuis: no need to thank me, it's all mikael's work [23:54] justinw312 has joined the channel [23:54] Murvin: still. u help a lot too. hehehe anyway. let me dig into the port problem. oh.. socket hang up still happen but only occassionally. i think it is just a timeout or broken connection.. [23:55] justinw312: Hey, I was wondering if there's a static web server module for node that has pulled ahead of the pack in terms of project activity and adoption? [23:55] justinw312: I mean, is one significantly ahead in popularity. [23:55] nym: express [23:55] justinw312: You don't think it's overkill for only serving static files? [23:55] nym: yes, it's probably overkill [23:55] Murvin: mikeal: by the way, it seems the new http.js is faster in performance too. [23:55] tjholowaychuk: justinw312: if you just want to serve statics use nginx or connect's static() middleware [23:56] nym: but if you want something that isn't overkill, wouldn't you just step up nginx? [23:56] mikeal: by default, most definitely [23:56] mikeal: because it defaults to keep-alive [23:56] tjholowaychuk: justinw312: connect(connect.static(path)).listen(80) done [23:56] mikeal: so if you keep the socket pool full (which will happen under concurrent load) you don't have to do a new TCP handshake for every request [23:56] Murvin: mikeal: oh. yeah. the speed is consistent too. [23:57] justinw312: Well, express might not be a bad idea. Right now, I plan to only require static files -- but that could always change. [23:57] Zelest has joined the channel [23:57] thiagopnts has joined the channel [23:57] adrianmg has joined the channel [23:57] MGT has joined the channel [23:57] adrianmg has left the channel [23:58] tjholowaychuk: justinw312: yeah, if you're not using routes express doesn't add any overhead that connect doesn't already have so that part doesn't matter [23:59] kartmetal: so... npm and mingw.. got the code from git, did a make install with no error.. any idea where npm was installed? it's not in my PATH. [23:59] ryan0x2 has joined the channel