[00:00] fairwinds has joined the channel [00:00] possibil_ has joined the channel [00:01] SubStack: bradleymeck: pong [00:01] piscisaureus: ryah: here? [00:02] bradleymeck: substack, sent you an archive in email about automated gc of bigint, cant test linux/mac os here right now, but seems to be working if you want to test it some more [00:03] SubStack: sweet! [00:03] jacobolus has joined the channel [00:04] bradleymeck: basically just require("OnCollect")(obj,fn(obj){obj.destroy()}) where OnCollect comes from npm [00:05] bingomanatee_ has joined the channel [00:06] bingomanatee has joined the channel [00:06] chester has joined the channel [00:06] [[zz]] has joined the channel [00:06] Me1000 has joined the channel [00:07] SubStack: damn I hate rar files [00:07] bradleymeck: lol ill send a zip [00:07] SubStack: oh there it goes [00:07] wdperson has joined the channel [00:09] SubStack: bradleymeck: do you want to send a pull request so it shows up on github? [00:09] bradleymeck: not on my home comp and stuck on windows so not going to deal w/ github ssh key [00:09] SubStack: ah ok [00:10] msch has joined the channel [00:11] MikhX has joined the channel [00:13] ryanfitz has joined the channel [00:14] chrischris has joined the channel [00:14] piscisaureus: ryah: I have serious doubt about this socket-object thing [00:16] davidascher has joined the channel [00:18] spetrea-home has joined the channel [00:19] apucacao has joined the channel [00:19] tmzt: anybody know how to get access to the _gaq object inside an event callback (client side) [00:19] ryah: piscisaureus: why/ [00:19] ryah: slaskis: thnaks [00:19] apucacao has joined the channel [00:20] piscisaureus: ryah: if you want to backtrace an error, knowing which socket went haywire isn't enough [00:20] apucacao has joined the channel [00:20] piscisaureus: you'll want to know which operation it was [00:20] piscisaureus: and maybe even what the parameters are [00:20] piscisaureus: so you need to record those too [00:21] piscisaureus: and, what is this objectwrap going to store? [00:21] piscisaureus: only an fd I'd guess [00:21] milez has joined the channel [00:22] ryah: a few ev_io's too [00:22] piscisaureus: so we'd end up refactoring write(socket, something) into socket.write(something) -> meh [00:23] piscisaureus: yeah ok I can understand that [00:23] piscisaureus: it's something that you'd need on *ix [00:23] possibilities has joined the channel [00:24] ryah: also you need the queue [00:24] piscisaureus: ryah: ok [00:24] ryah: of data going out... [00:24] piscisaureus: but then I'd suggest we leave the api untouched [00:24] piscisaureus: almost [00:24] |Blaze|: Anyone have a good blog post or reference about setting up a new node.js app? [00:25] tmzt: nodejs.org [00:25] ryah: piscisaureus: the user-facing API won't change [00:25] piscisaureus: ryah: sure [00:25] piscisaureus: I suggest internally we do this [00:26] ryah: i think the big question is if we want the outgoing queue to be in C-land or in JS-land. [00:26] piscisaureus: ryah: c-land for sure [00:26] ryah: yeah? [00:27] piscisaureus: hmmm... back having doubs [00:27] ryah: i also think that - because i did a huge branch for writev a few months ago where i kept the queue in JS [00:27] piscisaureus: ryah: on windows we would have no queue [00:27] ryah: i ended up iterating over the JS queue in C++ [00:27] |Blaze|: tmzt: I mean more standard app/lib/test directories, etc. Layout on disk [00:28] ryah: oh, right [00:28] mjr_: ACTION crosses fingers for the promise of faster writes from writev [00:28] milez: um. trying the 'textbook example' of socket.io right now. connect/disconnect events seem to be fine on both client/server, but .send() from the client doesn't seem to have any effect. [00:28] ryah: piscisaureus: well, you need to keep around data for a while [00:28] milez: anything obvious a newbie should be told about? [00:28] ryah: piscisaureus: if someone writes a string, you need to encode it to some memory [00:28] ryah: wait for the callback [00:30] iaurynn has joined the channel [00:30] piscisaureus: ryah: in that case the strnig just gets decoded into the same area as the OVERLAPPED structure that you pass to your async write [00:31] piscisaureus: when it's done you receive the pointer to the overlapped structure back [00:31] piscisaureus: so you free it again, and you'd automatically free your decoded strnig as well [00:31] piscisaureus: ryah: I should not bother you with windows details :-) [00:32] ryah: well - in unix i need to keep a write queue around [00:32] ryah: and ordered [00:33] piscisaureus: ryah: will you malloc for each operation? [00:33] ryah: if that queue is in C-land then i at least need a few ev_io and the queue [00:33] piscisaureus: ok [00:33] piscisaureus: plan de campagne [00:34] ryah: i'll probably do the ev_timer in JS [00:34] ryah: for the idle [00:34] piscisaureus: ryah: Socketfunc(fd, args...) -> Socket::Func(args...) [00:34] ryah: since that seems to be working well already [00:35] ryah: piscisaureus: need to think about the end of stream semantics [00:35] piscisaureus: if the socketfunction could return EAGAIN in the old api, in the new api it'll take a callback [00:35] ryah: you have shutdown in windows, right? [00:35] piscisaureus: yeah [00:35] piscisaureus: oh but shutdown is not overlapped [00:35] ryah: does it return eagain? [00:35] ryah: do you have docs for it? [00:36] piscisaureus: ryah: i should use this: http://msdn.microsoft.com/en-us/library/ms737757%28v=vs.85%29.aspx [00:36] piscisaureus: DisconnectEx [00:37] ryah: hm [00:37] pyrony: have any of you gotten mysql innodb transactions to work w/ Node.js? [00:37] piscisaureus: ryah: shutdown can be used too, but is does not get queued up [00:37] piscisaureus: does not return eagain though [00:37] ryah: piscisaureus: we need one that can close write but not read [00:37] piscisaureus: http://msdn.microsoft.com/en-us/library/ms740481%28v=vs.85%29.aspx [00:38] mw_ has joined the channel [00:38] mw_ has joined the channel [00:39] ryah: WSAEINPROGRESS is like EAGAIN, right? [00:39] ryah: you'll have to call it again [00:39] piscisaureus: ryah: no it's WSAEWOULDBLOCK [00:39] ryah: what's the action on WSAEINPROGRESS? [00:39] Jaye__ has joined the channel [00:40] piscisaureus: you ryah: don't bother. it's when you mix winsock 1.1 and winsock 2, that we don't do. [00:40] piscisaureus: (winsock 1.1 used semiblocking because it supported cooperative multitasking) [00:41] ryah: WSASendDisconnect seems good [00:41] piscisaureus: also good: AccepEx -> accept and receive data [00:42] ryah: Socket::End(char*, size_t) Socket::Destroy() [00:42] hij1nx has joined the channel [00:42] ryah: Socket::DestroySoon() [00:43] piscisaureus: ryah: WSASendDisconnect can't be used [00:43] ryah: why? [00:43] piscisaureus: 1. Note The native implementation of TCP/IP on Windows does not support disconnect data [00:43] elux_ has joined the channel [00:43] piscisaureus: 2. Its blocking [00:43] pl-6: says for more info on asynch and overlaps - see here -> http://msdn.microsoft.com/en-us/library/ms686358%28v=vs.85%29.aspx (this is all new to me btw - just reading along) [00:44] boucher has joined the channel [00:44] tjholowaychuk: /clear [00:45] squeeks: fail [00:46] pl-6: says you can cancel an i/o operation with CancelIO ->http://msdn.microsoft.com/en-us/library/aa363791%28v=vs.85%29.aspx [00:47] Throlkim has joined the channel [00:47] isaacs has joined the channel [00:48] Coal has joined the channel [00:50] pl-6: says CancelIoEx allows you to cancel any pending overlaps- not sure what you're seeking here - just jumped in reading... if you're looking for a way to kill an asynch io operation in progress - or what. [00:51] yhahn has left the channel [00:51] broofa has joined the channel [00:52] pl-6: sorry, I think I'm in file i/o. ignore me ! I see this DisconnectEx is for sockets. CancelIOEx isn't for sockets I guess. whoops. [00:53] piscisaureus: ryah: this is how you do graceful close: [00:53] piscisaureus: shutdown(fd, SD_SEND) [00:53] piscisaureus: WSARecv(fd, ...) <- does an asynchronous read [00:53] piscisaureus: if the WSARecv call yields success with 0 bytes read, you've gracefully shutdown [00:54] ryah: you have to wait until your write queue is flushed [00:54] tim_smart has joined the channel [00:54] ryah: but good. :) [00:57] piscisaureus: ryah: I think DisconnectEx does that. It will schedule a graceful close for your socket and ping you when done [00:57] piscisaureus: will test it though, that documentation stinks [00:57] lukegalea has joined the channel [00:58] JeffAtWork: ping *anyone able to answer a question about the built-in 'http' module [00:59] forzan has joined the channel [01:00] JeffAtWork: -> I'm trying to use http & https to run 500 concurrent requests to the same domain:port, I've set agent.maxSockets = 500, but I never see agent.sockets.length > 2... ? even when queuing 1000+ requests... what gives? [01:00] piscisaureus: pl-6: CancelIOEx lets you you cancel a scheduled operation. So if IOCP is writing something for you and you suddenly think 'oh shit, don't write that anyway', you use it. CancelIO is the same but for blocking operations (so you need to call it from another thread) [01:00] MikeMakesIt has joined the channel [01:02] piscisaureus: pl-6: hmm that was not completely accurate but i mixed up cancelio and cancelsynchronousio [01:03] |Blaze| has left the channel [01:03] piscisaureus: ryah: something completely different http://msdn.microsoft.com/en-us/library/aa365465%28v=vs.85%29.aspx [01:03] piscisaureus: ^- alternative for stupid stat watcher [01:04] JeffAtWork: am I doing it wrong?, in node v0.2.x I used an array of request objects to have 500+ concurrent requests in flight, but since upgrading to node v0.4.x I haven't been able to figure out how to do the same, I read that the http module has a built-in queue for this? [01:06] ryah: piscisaureus: can you poll on that at the same time as IOCP? [01:06] zomgbie has joined the channel [01:07] pl-6: heh on 'undefined behaviour' : Note When issuing a blocking Winsock call such as shutdown, Winsock may need to wait for a network event before the call can complete. Winsock performs an alertable wait in this situation, which can be interrupted by an asynchronous procedure call (APC) scheduled on the same thread. Issuing another blocking Winsock call inside an APC that interrupted an ongoing [01:07] pl-6: blocking Winsock call on the same thread will lead to undefined behavior, [01:09] pl-6: piscisaureus - I've done socket programming before, but I'm not just mr. c++, but trying to follow along. I'm not even sure what you folks are trying to solve. Sounds like how to optimimally turn sockets around in windows for re-use - but I thought node.js had most of this stuff in there already. ? [01:10] piscisaureus: ryah: that will also queue a packet to your iocp [01:10] davidc_ has joined the channel [01:11] srid: meh, why do I have to use those '|' prefix charecters when writing JavaScript in jade? [01:11] piscisaureus: ryah: anything that takes a LPOVERLAPPED parameter can be used with iocp [01:12] piscisaureus: btw, where will we queue up read data when a socket is paused? [01:12] JeffAtWork: here's a gist -> https://gist.github.com/833070 <-- running this you should see 30-50 responses per second, but nothing like I'd expect to see if there were actually 500 concurrent http requests in flight... can anyone help me with this please? [01:12] tim_smart has joined the channel [01:14] beta_ has joined the channel [01:15] ryah: piscisaureus: we won't read when the socket is paused. [01:15] zentoooo has joined the channel [01:16] piscisaureus: ryah: but if I request a read it may complete in the background. [01:17] ryah: piscisaureus: pause doesn't mean you don't get 'data' events. [01:17] piscisaureus: oh [01:17] piscisaureus: oh yeah [01:17] piscisaureus: that sucks [01:17] davidc_ has joined the channel [01:17] piscisaureus: but it makes my life easier now [01:18] ryah: we can queue them in JS if we want... [01:18] ryah: but i'd rather just emit it [01:18] lukegalea has joined the channel [01:18] piscisaureus: ok. we'll deal with it later [01:18] piscisaureus: or never [01:18] mjr_: ryah: I caught that exception with node_g, console.trace(), and NODE_DEBUG=http [01:18] mjr_: ryah: https://gist.github.com/55503f5b37a342c8c3cc [01:19] tbranyen: lord i am terrible at c++, http://pastie.org/1577011 << any idea on why i'm getting a symbol error [01:19] mjr_: I think it has something to do with a mix of new and old HTTP client API. Does that sound plausible? [01:19] ryah: mjr_: that seems unlikely [01:20] mjr_: JeffAtWork: you should try against your own server. Google might very well be rate limiting you. [01:20] sprout has joined the channel [01:21] mjr_: ryah: What's happening at the time of the crash is an outgoing request just came back with a 403 response. We parse that, then call my send_error() function to send the result back to the client. The client gets the response, but the server crashes. [01:22] mjr_: But it doesn't happen every time, and I'm not sure what triggers it. [01:23] mjr_: It is quite possible I have a bug in my program, but the error is really strange. [01:23] mjr_: Also, "HTTP: AGENT incoming response!" makes it seem like something is confused. [01:24] JeffAtWork: mjr_: well I just used google for the gist, the real code here at work is hitting the facebook graph api, and we're not rate limited by facebook, using an array of 500 http clients in node v0.2.x I can achieve the throughput I need, but I'm trying to figure out how to do the same using the new http and https built-in modules in node v0.4.x [01:26] mjr_: JeffAtWork: are you sure maxsockets is getting increased properly? The args to getAgent are host, port, no? [01:26] JeffAtWork: I thought I should be able to set agent.maxSockets = 500, and just go... filling some queue in the http object, which it would burn through using like 500 sockets... but it doesn't seem to be working that way, am I doing it wrong? [01:27] JeffAtWork: yes, if you run the gist it shows the agent for www.google.com:80 has maxSockets = 500... it's in the reporting... just doesn't seem to be using over 1 or 2 sockets at any time... [01:30] mjr_: Sure enough. I get the same result. I'm not sure, but it seems like agent isn't working right, or at least isn't honoring the maxSockets. [01:32] mjr_: The edge, it bleeds! [01:33] ryah: mjr_: send_error is an http request? [01:34] piscisaureus: ryah: can I bother you once more today? I promise it will be the last time. [01:34] mjr_: request from client comes in https, I make a new out http request to another server, that out request responds 403, I call send_error to send 403 back to the https client. [01:34] ryah: piscisaureus: of course [01:34] piscisaureus: ryah: ok. socket errors. [01:34] lukegalea has joined the channel [01:34] piscisaureus: WSAEINVAL != EINVAL [01:35] piscisaureus: so if you want to handle specific errors in your application you need to be aware of windows [01:35] piscisaureus: that seems unfortunate to say the least [01:35] iszak has joined the channel [01:35] iszak has joined the channel [01:36] piscisaureus: well maybe not that one [01:36] piscisaureus: but WSAECONNRESET != ECONNRESET [01:36] piscisaureus: how do we fix that? [01:37] ryah: people should be testing errors with strings [01:37] ryah: e.g. err.name == 'ECONNRESET' [01:38] ryah: er [01:38] ryah: err.code == 'ECONNRESET' [01:38] ryah: so you should map your WSAECONNRESET to 'ECONNRESET' [01:39] tjholowaychuk: ryah: people might not migrate to that for a little while, since you can cover both versions with the constants / err.errno [01:39] travg has joined the channel [01:39] hobs has joined the channel [01:39] hobs: I like that secretary [01:39] sechrist: string comparisons are slow :P [01:39] piscisaureus: ryah: hmm. not really following the principle of least surprise [01:40] travg: i got a q ... i keep getting Error: Command failed: execvp(): Permission denied [01:40] travg: with node-imagemagick [01:40] ryah: piscisaureus: why? i think that's simple [01:40] travg: any ideas? [01:41] piscisaureus: ryah: oh you ceased exposing the error number? then it's ok [01:41] ryah: piscisaureus: we can stop exposing it in v0.5 [01:41] piscisaureus: otherwise you get error.name == 'EBADF' but error.code != EBADF [01:42] piscisaureus: because error.code == WSAEBADF [01:42] Virtuo has joined the channel [01:42] pauls has joined the channel [01:42] piscisaureus: ryah: maybe we should do that [01:42] ryah: i don't want to expose actual errnos in the future [01:42] cloudhead: anyone know how to cast an argument in a c++ addon into an object? [01:42] tjholowaychuk: cloudhead: ToObject() [01:42] ryah: require('constants').EAGAIN <-- lame [01:42] cloudhead: tjholowaychuk: thanks, I'll try that [01:42] ryah: ^-- note already stores the string 'EAGAIN' [01:43] ryah: ^-- not saving anything [01:43] piscisaureus: ah. yeah that's true. Although I think V8 can optimize that one better than a string comparison [01:43] ryah: okay, maybe doing the branch is *slightly* faster - but god, who cares [01:43] piscisaureus: ok :-) [01:43] ryah: we're not working in JS for the speed :) [01:44] piscisaureus: ryah: not exposing the errnos also has the advantage that I can rename some errors [01:44] ryah: yes [01:44] piscisaureus: WSAEWOULDBLOCK -> EAGAIN [01:44] piscisaureus: EXIO -> EBADF [01:44] ryah: i'll put that in my roadmap [01:45] piscisaureus: ryah: ok I like bikeshedding [01:45] ryah: mjr_: i wish i could repeat that assert... [01:45] ryah: piscisaureus: we'll just map to the familiar unix errno strings [01:46] piscisaureus: ryah: that'd be good. I get many apps failing due to that. [01:46] piscisaureus: tests, mainly [01:46] ryah: yeah [01:46] piscisaureus: ryah: what would also be fortunate is if node api doesn't expose FDs directly. Think about it. [01:46] piscisaureus: The alternative - which I sure can live with - is to implement my own FD table on windows [01:47] piscisaureus: to work around the 512 FD limit on microsofts stupid libc [01:47] mjr_: ryah: well, I can get you access to the server if you like, but even then it is kind of hard to reproduce. [01:47] cloudhead: tjholowaychuk++ [01:47] v8bot: cloudhead has given a beer to tjholowaychuk. tjholowaychuk now has 16 beers. [01:47] cloudhead: tjholowaychuk: worked, ty [01:47] tjholowaychuk: cloudhead: np [01:47] gf3 has joined the channel [01:48] sechrist: tjholowaychuk: are you even 21 :) [01:48] springif` has joined the channel [01:48] tjholowaychuk: sechrist: 23 :p [01:48] mjr_: ryah: seems like the agent gets confused and thinks that another message is coming in. [01:48] unomi has joined the channel [01:48] sechrist: hmm I thought you were like 19-20 [01:48] tjholowaychuk: nope lol [01:48] travg: lol sechrist i dont think he's lying to u [01:49] ryah: mjr_: it seems an agent socket is recving response headers without having sent a request [01:49] mjr_: yeah, strange. [01:49] mjr_: I guess it could be a bug in this python http server. [01:49] ryah: hmm.. [01:49] mjr_: Either way, node shouldn't crash. [01:50] ryah: i agree - but i'm not sure that's what's happening [01:50] ryah: it may be some race condition [01:50] mjr_: OK, lemme dump the traffic coming out of that server and look for anything odd. [01:51] mjr_: It certainly doens't happen every time. It seems to happen mostly when there's other work goign on. [01:51] ryah: like the req is being detached from the socket before the response comes in... [01:51] mjr_: I notice it at startup a lot, because there is a bunch of cluster reconfiguration happening, which involves a bunch of HTTP back and forth to the other nodes. [01:52] ryah: a traffic dump would be great [01:52] mjr_: OK, I'll try to get that. [01:52] jacobolus has joined the channel [01:52] ryah: is it going to be clear which tcp stream is causing the error? [01:52] ryah: maybe you should print some fds [01:53] trotter has joined the channel [01:53] ryah: br [01:53] ryah: b [01:53] Vertice has joined the channel [01:53] mjr_: Yeah, I've isolated it down to a single req/res pair. [01:55] markstory has joined the channel [01:55] nivoc has joined the channel [01:56] colinclark has joined the channel [01:57] piscisaureus: http://buildbot.nodejs.org/bench_graphs/cygwin/ab-hello-world-buffer-1024/hist/0474ce67908c9afddab69d3f0eb53564b10e2ad1.png [01:57] piscisaureus: ^- baaaad [01:58] ajashton has joined the channel [01:59] piscisaureus: compare that to solaris. scary almost [01:59] NuckingFuts has joined the channel [02:02] gf3 has joined the channel [02:03] pyrony has joined the channel [02:06] dgathright has joined the channel [02:06] delinka has left the channel [02:07] piscisaureus: I think doing a Windows port might be almost large enough to warrant [02:07] piscisaureus: summer of code. [02:07] piscisaureus: lol [02:09] eee_c has joined the channel [02:10] aguynamedben has joined the channel [02:11] pl-6: oh, I see what some of this has been about- a Windows port- alas all the talk about Windows sockets - and WSA_FLAG_OVERLAPPED etc... [02:11] boaz_ has joined the channel [02:11] EyePulp has joined the channel [02:11] piscisaureus: Who talked about WSA_FLAG_OVERLAPPED? [02:12] pl-6: well- considering my 0.4 did NOT compile with CYGWIN [02:13] piscisaureus: pl-6: what went wrong? [02:13] piscisaureus: ps you should try the lastest from v0.4 branch [02:13] pl-6: oh - sorry piscisaureus - no one did - but was reading about that approach [02:14] pl-6: um, what went wrong ? it was on v8 [02:14] pl-6: something with v8 during 'make file' [02:16] piscisaureus: pl-6: that is not enough information really :_ [02:16] pl-6: I never expect much with CYGWIN [02:16] pl-6: I'll re-attempt it [02:16] piscisaureus: rightly so [02:16] pl-6: when things work with CYGWIN - it extends my hope in humanity that so many things CAN just 'work' [02:17] cloudhea has joined the channel [02:17] lukegalea has joined the channel [02:17] brian_irish has joined the channel [02:17] dnyy has joined the channel [02:19] possibilities has joined the channel [02:20] jpstrikesback has left the channel [02:22] pl-6: I see these instructions have changed for windows [02:22] pl-6: http://blog.dtrejo.com/how-to-install-nodejs-on-windows [02:22] pl-6: before it wasn't just the tar zxvf [02:22] pl-6: maybe it's all been canned/simplified- which is perfectly fine for me ! :) [02:23] pl-6: before it had all these instructions for including packages with cygwin etc [02:23] piscisaureus: pl-6: you have cygwin on your machine? [02:23] zzak: https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(Windows) [02:23] c4milo1 has joined the channel [02:23] zzak: wiki > blogs [02:26] stagas: did a small middleware to resize images on demand https://github.com/stagas/connect-image-resizer [02:26] stagas: pretty lame :P [02:27] Phyllio_ has joined the channel [02:27] piscisaureus: is there gd-like stuff for node already? [02:27] pl-6: thanks zzak- THAT's the one I had before [02:27] piscisaureus: like recoloring images etc [02:27] stagas: uses gm [02:27] stagas: but caches them so it should resize once and then use that [02:28] pl-6: I want to get node running so I can REALLY start to detract from this chan - JK JK, really, I'm excited to get an all in one solution here- kepe it all js.. sounds sane. [02:28] stagas: you can also pass custom functions to do any kind of processing [02:28] piscisaureus: stagas: does gm call a child process or is it a module? [02:28] stagas: piscisaureus: it's a module [02:29] stagas: http://aheckmann.github.com/gm/ [02:29] nonnikcam has joined the channel [02:29] zzak: pl-6 sounds noble ;) [02:30] piscisaureus: stagas: ah. that's what I was looking for. Does not look like a module though, I see no .cc files [02:30] apoc: hmm can't really decide to use step or flow-js for flow control in my app, any recommendations? [02:30] stagas: it uses graphicsmagick so yes it spawns [02:30] wadey: apoc: I've been using step and I like it. I haven't looked at flow-js much though [02:32] stagas: it's cool cause you can pass custom args, gm is a bit more flexible than the methods provided by the module [02:32] stagas: in the lib I use a custom function like that [02:33] sprout has joined the channel [02:33] apoc: wadey: looks like step is a little bit more popular, i think i give that a try thanks ;) [02:35] wadey: i pretty much only use it when I'm doing a batch of async things, so with the this.group() or this.parallel() options [02:35] pl-6: well- LAST time I put in git checkout v0.4.0 [02:35] piscisaureus: I hate Step. It hijacked the name I had in mind for my Step library [02:35] pl-6: this time I put in git checkout works [02:35] piscisaureus: (apart from that it's useful) [02:36] postwait has joined the channel [02:36] pl-6: I didn't realize 'works' was somethign I could check out [02:36] pl-6: I just figured it was a comment about 0.4.0 [02:36] piscisaureus: pl-6 you should checkout v0.4 [02:36] piscisaureus: right now [02:36] pl-6: ok, can I redo that then ? [02:36] pl-6: I put in git checkout works [02:36] pl-6: literal as to above [02:36] piscisaureus: pl-6: what repo are you pulling? [02:37] pl-6: seems to have worked. but can I just do git checkout 0.4.0 [02:37] pl-6: git clone git://github.com/ry/node.git ? [02:37] hij1nx has joined the channel [02:37] piscisaureus: pl-6: if you checkout works you get a really old version of node [02:37] pl-6: I see [02:37] piscisaureus: you should really checkout v0.4 then do `git pull` [02:37] pl-6: if I just put in git checkout 0.4.0 ? should that be okay ? [02:38] pl-6: ok - 'git pull' I'll google that too [02:38] piscisaureus: pl-6: then you get v0.4.0 but that works much worse on cygwin [02:38] pl-6: i'm happy about github and git- not using it YET, but I like the order it brings. [02:38] joaojeronimo has joined the channel [02:38] pl-6: much worse eh? [02:38] piscisaureus: slower [02:38] pl-6: can you recommend a version that should work ? [02:38] pl-6: oh, I don't mind about speed right now [02:38] piscisaureus: for cygwin just checkout 'v0.4' [02:38] piscisaureus: so "git checkout v0.4" [02:39] piscisaureus: "git pull" [02:39] piscisaureus: ^- not always recommended but for now that is the best you can do [02:39] pl-6: I noticed I don't need "git checout v0.4.0" indeed 0.4 worked [02:40] joaojeronimo: Hi everyone, I'm getting a (stupid) "Error: ECONNREFUSED, Could not contact DNS servers" . I'm running Ubuntu 10.10 and I have my /etc/resolf.conf file auto generated by NetworkManager.... what's happening ? [02:40] pl-6: I see- > as I thought similar > git-pull - Fetch from and merge with another repository or a local branch [02:40] mike5w3c has joined the channel [02:40] piscisaureus: your git will just retrieve the latest v0.4 from ryans repository [02:40] piscisaureus: assuming that you did no commits yourself [02:41] pl-6: hope it wipes out anything it needed to !:) [02:42] pl-6: do I want git clean ? [02:42] pl-6: I just read through the git documentation real quick here. [02:42] pl-6: here goes - says all up to date [02:42] piscisaureus: pl-6: do a git clean only if your build fails with mysterious errors [02:43] piscisaureus: not now [02:43] piscisaureus: git cleans deletes all files not tracked by git [02:43] piscisaureus: here's your rescue if you really want to get what git does: http://www.eecs.harvard.edu/~cduan/technical/git/ [02:43] pl-6: yep- that's what it said - I figured with a merge, seemed sketchy- but going to make- I'll at the least be able to report what error it gives on make file - hopefully not, but I did go through these very steps before with 0.4 a day or so ago [02:44] isaacs: grrrr https [02:44] isaacs: it is a pit of heisenbugs [02:44] broofa has joined the channel [02:44] zzak: heisenbugs? [02:44] isaacs: zzak: bugs that change when observed [02:44] zzak: is that like heineken induced? [02:45] zzak: ahh [02:46] zzak: isaacs: anything in particular? [02:46] pl-6: better than schrodinbugs - unchecked, 50 50 change they exist. [02:46] isaacs: pl-6: right, but once you look at them, they definitely either exist or don't. [02:47] isaacs: heisenbugs exist unless you'er looking. [02:47] pl-6: ACTION fingers crossed here on 'make file' [02:47] dustinwhittle has joined the channel [02:47] isaacs: zzak: in this case, it's npm publish [02:47] isaacs: aaannnd, i just got it to fail. [02:47] isaacs: sweet [02:47] jashkenas: heisenbugs always end up as figments of the imagination ... don't they? [02:48] jashkenas: We had an IE bug that was *killing* us ... totally unreproducible, that ended up just being massive stupidity after a two-day hunt for it. [02:49] piscisaureus: so a noobug? [02:49] jashkenas: Turns out that old versions of IE usually correlate with small screen sizes ... and small screen sizes were the real culprit. [02:49] zzak: absense of proof? [02:49] dthompson has joined the channel [02:49] eresair has joined the channel [02:51] zzak: definitely appreciate when everything renders per-usual on my 12" screen [02:51] isaacs: jashkenas: no, this is pretty 100% definitely a bug. [02:52] isaacs: uploading large files over https. [02:52] isaacs: it does not work. [02:52] isaacs: small files: totally works. [02:52] isaacs: and uplaoding to a node https server: totally works. [02:52] isaacs: but uploading to couchdb? nope. [02:52] jashkenas: if you can reproduce it ... it can't be heisen... [02:52] jashkenas: bushbug: declare "Mission Accomplished" long before the bug is ever solved. bantambug: a lightweight bug, easy to knock out. [02:52] jashkenas: bedbug: a bug you solve while coding in your dreams. [02:53] bbttxu has joined the channel [02:53] perlmonkey2 has joined the channel [02:53] zzak: isaacs: there was a bug with streaming larger chunks over https in node not too long ago [02:54] isaacs: zzak: could be related. [02:54] isaacs: not sure, though [02:54] isaacs: this isn't the "end" event thing, though [02:54] zzak: i think creationix was on the hunt [02:54] isaacs: this just goes kaput, and dies, no nothing [02:54] pl-6: yep failed on make - Build failed: -> task failed (err #2): {task libv8.a SConstruct -> libv8.a} [02:54] pl-6: same place as before [02:55] pl-6: if that helps piscisaureus [02:55] langworthy has joined the channel [02:55] pl-6: final line make: *** [program] Error 1 [02:55] piscisaureus: no. you need to copy the entire error. paste it on pastie/github [02:55] piscisaureus: gist [02:55] piscisaureus: wherever [02:55] pl-6: but that is the entire error [02:55] pl-6: I'll paste it there [02:56] lukegalea has joined the channel [02:56] tim_smart has joined the channel [02:56] pl-6: oh, I see [02:56] pl-6: there is more [02:56] mike5w3c_ has joined the channel [02:56] arlolra has joined the channel [02:57] pl-6: g++: obj/release/dateparser.o: No such file or directory I'll go paste all of this [02:57] sechrist has joined the channel [02:58] perlmonkey2: Is there another Mongoose quality ORM for one of the relational DB's? [02:58] pl-6: do I post this compile error under 'Issues' ? on the GITHUB site ? [02:59] piscisaureus: noooo [02:59] piscisaureus: gist [02:59] piscisaureus: https://gist.github.com/ [02:59] Yuffster has joined the channel [03:00] throughnothing has joined the channel [03:01] pl-6: should I choose public or private ? [03:02] piscisaureus: public [03:02] pl-6: https://gist.github.com/833178 [03:02] pl-6: I get it- it's a pastebin for github - okay. I'll make a habit of using that then. [03:02] isaacs: the thing that sucks here is that stepping through the code makes it take too long, and the pipe breaks. [03:02] piscisaureus: pastebin is also ok [03:03] zzak: piscisaureus: pl-6: somewhat related, https://github.com/chapel/ngist [03:04] pl-6: more info or context on where it broke: https://gist.github.com/833182 [03:04] NuckingFuts has joined the channel [03:05] piscisaureus: pl-6: ok. try make again. [03:05] piscisaureus: without doing anything [03:05] piscisaureus: see if it complains about dateparser again [03:05] pyrony has joined the channel [03:05] piscisaureus: you should get there really fast now [03:07] Jaye__: ummm after installing ngist with npm trying to run it gives permission denied, forgot to set execute chmod? [03:07] pl-6: heh- blew up on snapshot - was JUST going to click 'mark' in CYGWIN ? and paste the new error- greeeeeat! Click close accidentally- restarting CYGWIN and I'll try this again - :) [03:08] piscisaureus: pl-6: looks like your cygwin is a little flaky [03:08] piscisaureus: that happens a lot [03:08] piscisaureus: usually due to stuff like virus scanners [03:08] zzak: Jaye_ did you need sudo [03:08] Jaye__: no i have unsafe install turned on in npm [03:08] piscisaureus: sometimes restarting your computer also helps [03:09] isaacs: Jaye_: that's a bit odd, it should chmod 0755 any bins. [03:09] isaacs: Jaye_: what's `ls -laF /usr/local/bin/ngist` say? [03:10] Jaye__: hmm it is set right lrwxrwxrwx [03:10] sirkitree has joined the channel [03:10] gf3 has joined the channel [03:11] NuckingFuts: Jaye_ That sounds like 0777 to me >_> [03:11] cognominal has joined the channel [03:11] Ratty_: That's a symlink [03:11] Ratty_: What about the target? [03:11] NuckingFuts: Not sure [03:11] Ratty_: the 'l' at the start means link [03:11] Jaye__: chmod 755 /usr/local/bin/ngist and it works [03:11] pl-6: did 'make' again ? second time ? https://gist.github.com/833188 [03:12] pl-6: looks to be same error [03:12] NuckingFuts: So, how long until a full Windows port is made? :3 [03:12] pl-6: libv8.a [03:13] piscisaureus: pl-6: hmm [03:13] NuckingFuts: Anywho, somebody, please, anybody, send me your node.exe! [03:13] piscisaureus: `git status` does give you what? [03:13] Pablosan has joined the channel [03:13] NuckingFuts: I want to start testing on 0.4.0 [03:13] softdrink: well that's fun. found another webkit bug to log. [03:13] piscisaureus: I'm not interested in untracked files but in modified files [03:13] piscisaureus: pl-6: ^^ [03:14] piscisaureus: NuckingFuts: you have cygwin installed? [03:14] NuckingFuts: Because I know I've got assloads to change - and I want to update my core codebase before fixing my bot to work on dAmn's new shit [03:14] NuckingFuts: piscisaureus: Aye. I just needa node.exe of 0.4.0 [03:14] NuckingFuts: Because it REFUSES to build [03:15] NuckingFuts: With an error that is known, but unsolved by the provided solution :V [03:15] Nexxy: error, windows detected? [03:15] Pablosan has left the channel [03:15] NuckingFuts: ACTION is freezing his ass off [03:16] NuckingFuts: Is fuggin cold [03:16] piscisaureus: omg that buildbot is slow [03:17] NuckingFuts: lol [03:17] NuckingFuts: piscisaureus: It really is :P [03:17] piscisaureus: well its the internets I guess [03:17] NuckingFuts: piscisaureus: I assume it does a full fresh build though too [03:17] piscisaureus: strange because my internet is really fast and joyent should have fast internet too [03:18] NuckingFuts: Probably also gits again [03:18] piscisaureus: no the builds already done [03:18] NuckingFuts: piscisaureus: orly? [03:18] piscisaureus: need to dl it [03:18] piscisaureus: hey it's a buildbot. it builds stuff. all by itself [03:18] pl-6: I'm not interested in untracked files but in modified files ? I am not sure I understand how you mean [03:18] piscisaureus: pl-6: do 'git status' [03:18] googol has joined the channel [03:19] arlolra: piscisaureus: stop bashing the bb [03:19] piscisaureus: arlolra: well its my buildbot :-) [03:20] piscisaureus: I can bash it [03:20] piscisaureus: ok its buildslave [03:20] jimmyz2 has joined the channel [03:20] mfernest has joined the channel [03:20] NuckingFuts: lololololol [03:20] pl-6: I found plenty of people with this same error though- one got it to compile switching to fcc 4 from 3 [03:20] pl-6: http://forums.apisnetworks.com/showthread.php?t=477 [03:20] arlolra: ) [03:21] NuckingFuts: arlolra, piscisaureus: Take it outside or get a room ;-) [03:21] pl-6: on 'git status' says # on branch 0.4 nothing to commit (working directory clean) [03:21] piscisaureus: pl-6: hrmrmrmrm [03:21] piscisaureus: something is really strange [03:21] piscisaureus: that I cannot debug [03:21] NuckingFuts: piscisaureus: Someone should make a buildbot in NodeJS lol [03:22] NuckingFuts: self-management FTW [03:22] piscisaureus: you could do it [03:22] piscisaureus: NuckingFuts: pm me your email [03:22] NuckingFuts: piscisaureus: kk [03:23] blueadept2 has joined the channel [03:23] dnolen has joined the channel [03:23] ryah: ACTION waves [03:23] ryah: buildbot in node, yes [03:23] gf3: ACTION waves back [03:24] ryah: why don't we write a package building system for addons [03:24] ryah: in js (of course) [03:24] pl-6: says they fixed it by : Updated binutils from RHEL5.4 and the program compiles OK. I need to start moving with building the new server architecture; RHEL4 is showing its age. and they used gcc4 over 3, I've changed to 4 and am trying make again. But I have no clue in binutils - [03:24] ryah: and have an API that can be called from js [03:24] gf3: ryah: yea right, you just want to pull an Oracle, don't you!? [03:24] NuckingFuts: lol what have I done? I've suggested an abomination! [03:24] fenngle has joined the channel [03:24] ryah: then we can have a bot which runs through all the npm modules and builds them [03:24] NuckingFuts: ryah: Here's the catch: building the NodeJS when you are running in NodeJS ;-) [03:25] ryah: (some automated zone creation would help /me looks at isaac and konobi) [03:25] pl-6: someone here says "Compiling with CFLAGS=-march=armv5t should fix it." [03:25] NuckingFuts: lol [03:25] pl-6: how do I compile this ? and set those flags ? [03:25] isaacs: ryah: https client is misbehaving. [03:25] pl-6: er, make the make I mean [03:25] ryah: isaacs: on v0.4 HEAD ? [03:25] piscisaureus: pl-6: I don't believe shit, but try it anyway [03:26] isaacs: ryah: yeah, on HEAD [03:26] ryah: isaacs: dang, what's the error? [03:26] isaacs: i get 'outgoing message end', and then exit. [03:26] NuckingFuts: isaacs: Your mom is misbehaving. Or wait, I mean, that's not good, I hope it's still secure. [03:26] isaacs: no error emitted anywhere. [03:26] ryah: isaacs: :/ [03:26] ryah: that's really bad. [03:26] isaacs: yeah [03:26] ryah: isaacs: is it repeatable? [03:26] isaacs: yep. [03:26] isaacs: just upload a big file to any https server other than node's [03:26] ryah: can you do it locally? [03:26] ChrisPartridge has joined the channel [03:26] isaacs: nope [03:26] ryah: hm [03:26] NuckingFuts: isaacs: I've had issues where my sockets consistently disconnect (silently, as if the other side gracefully disconnected) [03:27] NuckingFuts: Needless to say, Node isn't entirely stable yet. [03:27] NuckingFuts: Especially the network APIs [03:27] NuckingFuts: And yes, it is repeatable. I'm hoping 0.4.0 fixes it though. [03:27] googol has joined the channel [03:28] zzak: how dare you call node unstable [03:28] NuckingFuts: zzak: Don't get me wrong, it's godly. [03:28] iaurynn: how dare you call unstable unstable? [03:28] NuckingFuts: It's just unstably so. [03:28] zzak: haha [03:29] Roconda has joined the channel [03:29] pl-6: oh, I see - someone says all I have to do is replace line 135 of the deps/v8/SConstruct file from ['$DIALECTFLAGS', '$WARNINGFLAGS'], to ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv5t'], I'm going to see if this works. [03:29] NuckingFuts: iaurynn: BY THE HAMMER OF THOR I DO DECLARE IT TO BE THUS. [03:29] NuckingFuts: :B [03:29] slickplaid: thor'd [03:30] isaacs: ryah: the debugger doesn't seem to make it through, since that goes too slow, and results in an EPIPE [03:30] aho has joined the channel [03:30] ryah: EPIPE.. [03:31] ryah: is the http socket causing the EPIPE? [03:31] ryah: would be intersting to see where that's coming from [03:31] ryah: a stacktrace [03:31] aurynn__ has joined the channel [03:34] NuckingFuts: So.... where's this console colors thing? /me is slow [03:34] isaacs: ryah: that's what happens when i step through it [03:34] isaacs: running this test, i get "Already parsing a buffer" from http.js:978 https://gist.github.com/833215 [03:35] isaacs: that's just writing 1Kb [03:36] NuckingFuts: This is sooooooo broken: tty.getWindowSize(1)[0] [03:36] NuckingFuts: That should give me my console width, but helllllll no. [03:36] arlolra has joined the channel [03:36] NuckingFuts: That thing returns something like 50 insteaf od my set 100-120 [03:37] isaacs: NuckingFuts: yeah, that's your height [03:37] isaacs: it's [height, width] [03:37] NuckingFuts: isaacs: Well, that's just as bad, since my height is also 100 XD [03:38] isaacs: hm. works for me [03:38] isaacs: what kind of terminal? [03:38] NuckingFuts: isaacs: Cygwin-in-cmd.exe [03:38] isaacs: NuckingFuts: and are you running in some kind of tmux or screen section orsomething? [03:38] isaacs: k [03:38] isaacs: can't reproduce. [03:38] isaacs: :) [03:38] seivan: hmm [03:39] seivan: When using redis pub/sub with node redis client. Can I on demand switch subscriptions? [03:39] piscisaureus: ryah: should I avoid doing a malloc on each read/write/whatever or is that ok? [03:39] NuckingFuts: Well, the width is now right, but the height still seems off but w/e doesn't affect me :B [03:40] seivan: Can you do this https://gist.github.com/833219 ? [03:41] perezd has joined the channel [03:42] NuckingFuts: ACTION cries a hearty "hip-hip-hooray" for his code working pretty well under 0.4.0 [03:43] jef_ has joined the channel [03:44] gf3` has joined the channel [03:45] mike5w3c_ has joined the channel [03:46] seivan: Anyone? [03:46] aurynn: I liked that my code came up without issue on 0.4.0 [03:46] aurynn: Clearly I'm not doing esoteric things :) [03:47] jtsnow has joined the channel [03:48] blueadept2 has left the channel [03:49] mynyml has joined the channel [03:49] bingomanatee has joined the channel [03:49] bingomanatee: Hey noders [03:49] isaacs: ryah: yeah, if you change the test-agent.js to a PUT instead of a GET, and upload some bytes, it immediately fails. [03:49] isaacs: ryah: probably unrelated, i think,; [03:50] aurynn: ACTION decides how much she cares about user data [03:50] bingomanatee: .... and? [03:51] dspree has joined the channel [03:51] dspree has joined the channel [03:51] fenngle has left the channel [03:52] travg: anyone know why node-imagemagick would give me this ... when whole directory is chmod -R 777 : Error: Command failed: execvp(): Permission denied ?? [03:52] aurynn: as much as I want to say "none" and write shoddy code, it grates on me to do so. :\ [03:52] isaacs has joined the channel [03:53] dannycoates has joined the channel [03:54] lukegalea has joined the channel [03:57] langworthy has joined the channel [03:59] Yuffster_work has joined the channel [04:00] cainus: hey all... has anyone used connect with expressjs to do http authentication? I can't figure it out for the life of me [04:03] noahcampbell has joined the channel [04:03] tmzt: cainus: there should be some middleware for that somewhere [04:04] jtsnow has joined the channel [04:04] spetrea-home has joined the channel [04:04] cainus: yeah connect [04:04] travg: cainus search google for connect-auth ... thats what im usin [04:04] travg: works like a charm [04:04] cainus: I just can't figure out how to use it with express.js [04:05] cainus: got an example? [04:05] seivan: Anyone know if it's possible to subscribe to different redis channels on the fly? [04:05] cainus: I'm trying to port https://github.com/senchalabs/connect/blob/master/examples/basicAuth/server.js to express [04:05] travg: theres examples on the github page : https://github.com/ciaranj/connect-auth/wiki/creating-a-form-based-strategy [04:05] lukegalea has joined the channel [04:05] travg: im actually doin it in express right now [04:06] travg: app.use(auth([ auth.Facebook({appId : fbId, appSecret: fbSecret, scope : "email", callback: fbCallbackAddress}), Custom(), AdminSpecialAuth() ])); [04:06] travg: go through the example i linked to [04:06] piscisaureus: sɾǝpou [04:07] cainus: travg: that's not with express thogh is it? [04:07] travg: hold on [04:07] travg: the change to express is simple ... [04:07] cainus: great [04:08] travg: i think that example is actually [04:08] travg: app = module.exports = express.createServer(); [04:08] travg: in the example [04:08] travg: so ya its usin express [04:09] NuckingFuts has joined the channel [04:09] zorzar has joined the channel [04:09] cainus: the example here? https://github.com/ciaranj/connect-auth/wiki/creating-a-form-based-strategy ? [04:09] cainus: I don't see that line anywhere [04:09] travg: i know ... but thats what the app there is ... you don't see it defined right? [04:09] travg: thats what it is [04:10] travg: bad docs [04:10] cainus: it's a connect server [04:10] cainus: connect.createServer() [04:10] travg: ahh righ [04:10] cainus: i'm guessing an express server should be roughly compatible [04:11] travg: i got it ... well just use it normally with express bein that b/c express based off of connect [04:11] travg: yaya ^^ [04:11] cainus: hmmm okay I'll give that a shot [04:12] Jaye__: express and connect and stack.js middleware all use the same format... [04:14] ryah: https://gist.github.com/833243 [04:14] ryah: ^--isaacs [04:15] Ond has joined the channel [04:17] travg: anyone know a way to fix this: Error: Command failed: execvp(): Permission denied ... or know a better place to ask? [04:18] travg: with node-imagemagick? [04:18] ryah: hey guys! [04:18] wadey has joined the channel [04:18] tmpvar has joined the channel [04:19] tbranyen: woot just got git repo reading and creation working in node with libgit2 [04:19] tbranyen: only repos, no other objects yet xD [04:19] piscisaureus: ɥɐʎɹ ʎǝɥ [04:20] bingomanatee: ACTION wants to know pic's secret [04:24] ChrisPartridge: ryah: go to sleep already :-) [04:25] jakehow has joined the channel [04:25] lukegalea has joined the channel [04:26] tmpvar: tbranyen, dude, that is awesome [04:27] gf3 has joined the channel [04:27] apoc: is util.log() blocking? or is it just util.debug()? [04:28] tbranyen: tmpvar: i want to have all the read methods done for 0.0.1, but init was too cool to not implement for the first release [04:28] tmpvar: ^_^ [04:28] masondesu has left the channel [04:32] gf3` has joined the channel [04:37] arlolra: ryah: any reason why this isn't in master? https://github.com/ry/node/blob/v0.4/benchmark/v8_bench.js [04:37] isaacs has joined the channel [04:38] srid has joined the channel [04:38] srid has joined the channel [04:38] srid: 'npm search rss' ... nothing found. hmm. [04:38] Utkarsh has joined the channel [04:38] gf3 has joined the channel [04:40] lukegalea has joined the channel [04:40] ryah: arlolra: i just haven't merged master [04:41] arlolra: fair enough [04:41] spetrea-home has joined the channel [04:43] cainus: travg: you still alive? I just noticed that example isn't http authentication either... are you doing http authentication? [04:43] cainus: basic or digest? [04:43] travg: im here haha [04:44] travg: sorry forgot u wanted basic [04:44] chapel: ryah: not sure if you saw, but I took your advice and implemented those in to ngist [04:44] ryah: chapel: oh - cool [04:44] cainus: travg: I was thinking it would be something like auth(auth.Basic({validatePassword: validatePasswordFunction})) [04:45] travg: its def somethin like that ya i havent done the basic ... and cant find an example yet [04:45] possibilities has joined the channel [04:46] cainus: yeah I can't find an example for the life of me [04:46] cainus: there must be a million facebook connect examples though :) [04:46] travg: ya [04:47] Astro has joined the channel [04:47] jetheredge has joined the channel [04:52] blueadept2 has joined the channel [04:54] kawaz_air has joined the channel [04:55] muk_mb has joined the channel [04:59] losing has joined the channel [05:00] morganick has joined the channel [05:01] lukegalea has joined the channel [05:01] jacobolus has joined the channel [05:01] morganick: I'm trying to create a proxy for images to avoid SSL warnings; anyone have a good place to start for that? [05:02] bartt has joined the channel [05:17] aguynamedben has joined the channel [05:21] lukegalea has joined the channel [05:23] heavysixer has joined the channel [05:23] mw_ has joined the channel [05:26] bentruyman has joined the channel [05:27] SamuraiJack has joined the channel [05:28] mikekelly has joined the channel [05:28] cronopio has joined the channel [05:29] erolagnab has joined the channel [05:31] Phyllio has joined the channel [05:32] tim_smart has joined the channel [05:32] lukegalea has joined the channel [05:32] killfill has joined the channel [05:34] chrischris has joined the channel [05:34] tbranyen: I have a Persistent that is storing a v8::Boolean type, i want to get that to Local for a callback, I've tried quite a few variations but all segfault [05:34] ceej has left the channel [05:35] Aria has joined the channel [05:50] lukegalea has joined the channel [05:51] kawaz_wo_ has joined the channel [05:56] spetrea-home has joined the channel [05:58] Me1000 has joined the channel [06:01] lukegalea has joined the channel [06:02] Viriix has joined the channel [06:02] travg: http://stackoverflow.com/questions/5037581/how-do-i-fix-this-error-with-node-js-and-node-imagemagick-error-command-failed [06:02] travg: anyone know the answer ^ [06:02] travg: ?? [06:03] Aria: I might strace it to see what call throws the error -- but do you have permission to run $(identify) ? [06:04] Ond has joined the channel [06:04] travg: how do i tell if i have permission (sorry if im a bit newbish here) [06:04] Ond has left the channel [06:04] Aria: try and run it? ls `which identify` ? [06:06] ajnasz has joined the channel [06:06] travg: i get this: [06:06] travg: ... /usr/bin/identify [06:07] Coal has joined the channel [06:08] Aria: ls -l `which identify` [06:09] w0rse has joined the channel [06:10] travg: i ran ls -l 'which identify' [06:10] travg: and got ls: cannot access which identify: No such file or directory [06:10] travg: ?? [06:11] travg: -rwxr-xr-x 1 root root 6248 2010-12-02 21:26 /usr/bin/identify [06:11] travg: thats probably what u wanted lol [06:11] travg: so my permissions are off on the binary ha? [06:14] langworthy has joined the channel [06:14] travg: any idea aria? [06:15] Aria: That's all-executable [06:15] travg: ya [06:15] Aria: So should be fine there [06:15] Aria: What sort of setup is this? [06:16] travg: ubuntu 10.10 64bit micro instance on ec2 [06:16] Aria: Hm [06:16] travg: with node v 0.4 [06:16] travg: latest npm [06:16] travg: used npm to install node-imagemagick [06:16] Aria: I'd try stracing the process so I can see the failing call, but that's me [06:17] mw_ has joined the channel [06:17] mw_ has joined the channel [06:18] lukegalea has joined the channel [06:20] travg: https://github.com/rsms/node-imagemagick/blob/master/imagemagick.js [06:20] travg: line 64 in there is where the top of the error dump points [06:20] Utkarsh_ has joined the channel [06:21] derferman has joined the channel [06:21] Roconda has joined the channel [06:22] samcday has joined the channel [06:23] gf3` has joined the channel [06:26] gf3 has joined the channel [06:26] rbranson has joined the channel [06:28] dnyy has joined the channel [06:29] langworthy has joined the channel [06:33] spetrea-home has joined the channel [06:34] lukegalea has joined the channel [06:41] Sebmaster has joined the channel [06:43] herbySk has joined the channel [06:43] heavysixer has joined the channel [06:45] mjr_: ryah: found an issue 680 test case. https://gist.github.com/833345 [06:47] chrischris has joined the channel [06:47] travg: aria i figured it out thanks [06:48] Lorentz: Goddamn that nick keeps reminding me to watch aria again [06:54] Garo_ has joined the channel [07:00] sugyan has joined the channel [07:01] sooli has joined the channel [07:03] lukegalea has joined the channel [07:04] Utkarsh has joined the channel [07:10] ph^ has joined the channel [07:11] spetrea-home has joined the channel [07:12] chrischr_ has joined the channel [07:13] lukegalea has joined the channel [07:15] mape: Hmm any way on github to list the issues I've commented on? [07:15] Garo_: does process.stdin.on('data', function (chunk) { ... }); get called on each line, or might the chunk be bigger than a single line? [07:16] abraham has joined the channel [07:17] mjr_: Garo_: it might be bigger than a line. It depends on the data source. [07:17] Garo_: mjr_: ok, thanks [07:17] mjr_: If you are typing stuff in from a line buffered tty, you'll tend to get one line per data event [07:17] Garo_: I'm basically trying to replicate a perl while (<>) { ... } behaviour to read each line from stdin [07:17] mjr_: But if you paste into the terminal, you'll find that you get multiple lines per data event. [07:18] tmzt: this completely freezes res.render with jade -if [07:19] mjr_: Garo_: here's what I use to do that: https://gist.github.com/c249dcb4adc7697230de [07:19] langworthy has joined the channel [07:20] mjr_: Garo_: it's a lot more lines than while (<>). [07:20] muhqu has joined the channel [07:20] farhadi has joined the channel [07:20] Garo_: mjr_: thanks, that code looks nice and clean [07:21] mjr_: That's a bit from my redis logger. The non-redis parts are the ones you are asking about. [07:22] zan_ has joined the channel [07:24] zan_: hi, does anyone know how to make sense of a v8 profile log? [07:24] mape: zan_: Nope [07:24] mjr_: zan_: linux-tick-processor does. [07:24] Throlkim has joined the channel [07:25] zan_: mjr: is that a person or a topic [07:25] mape: mjr_: The output from that, sadly, isn't very helpful most of the time though [07:25] sveimac has joined the channel [07:25] mjr_: I know. I wish it was more useful [07:25] mjr_: I gotta believe that the answer lies with oprofile. [07:25] mjr_: I haven't spent enough time with it though. [07:25] mape: zan_: https://github.com/mape/node-profile [07:26] mjr_: mraleph swears you can get useful results from the tick processor [07:26] mjr_: and --prof [07:26] mjr_: I haven't seen it though. [07:26] zan_: yar, i was using that lib for profiling [07:26] mape: zan_: probly doesn't work but if you check the code you should get logic [07:26] zan_: thanks mape for the lib [07:27] zan_: thats depressing [07:28] mape: zan_: try it, works for me, been really wonky for others [07:28] zan_: ok, let me give it a go [07:29] k04n has joined the channel [07:30] k04n has joined the channel [07:30] mape: Jup, still works on 0.4.0 for me [07:30] mape: 4695 98.5% [07:30] mape: <3 [07:30] k04n: hey guys - anyone know why with node 0.4.0 sibilant doesnt seem to work..tried installing from npm and from github..command line sibilant returns Error: Cannot find module 'sibilant/cli' [07:30] k04n: (i have no confirmation that it worked with prior node versions on my machine, never tried it. but i am using 0.4.0 now and it doesnt work) [07:32] springif` has joined the channel [07:32] lukegalea has joined the channel [07:34] Utkarsh_ has joined the channel [07:36] mikedeboer has joined the channel [07:36] ryah: mjr_: awesome [07:37] mjr_: ryah: yeah, it was very satisfying to finally figure it out. [07:37] mjr_: Took a loooong time. [07:38] muhqu_ has joined the channel [07:38] tapwater has joined the channel [07:39] dgathright has joined the channel [07:44] ryah: mjr_: i get [07:44] ryah: % ./node_g test/simple/test-http-extra-response.js [07:44] ryah: Got response code: 500 [07:44] ryah: Response ended, read 230 bytes [07:44] ryah: node.js:116 [07:44] ryah: throw e; // process.nextTick error, or 'error' event on first tick [07:44] ryah: ^ [07:44] ryah: AssertionError: true == 0 [07:44] ryah: at Socket. (http.js:1164:7) [07:44] ryah: at Socket.emit (events.js:42:17) [07:44] ryah: at Array. (net.js:801:27) [07:44] ryah: at EventEmitter._tickCallback (node.js:108:26) [07:45] mjr_: oh, that's node_g [07:45] mjr_: same issue though [07:45] mjr_: no? [07:45] ryah: for normal node i get [07:45] ryah: % ./node test/simple/test-http-extra-response.js [07:45] ryah: Got response code: 500 [07:45] ryah: Response ended, read 230 bytes [07:45] ryah: node.js:116 [07:45] ryah: throw e; // process.nextTick error, or 'error' event on first tick [07:45] ryah: ^ [07:45] ryah: TypeError: Cannot call method 'emit' of undefined [07:45] ryah: at Socket. (http.js:1167:9) [07:45] mjr_: That's the one [07:46] ryah: at Socket.emit (events.js:42:17) [07:46] ryah: at Array. (net.js:799:27) [07:46] ryah: at EventEmitter._tickCallback (node.js:108:26) [07:46] mjr_: That's what I get in my program. [07:46] ryah: oh, okay. [07:46] TomY has joined the channel [07:46] ryah: i thought this was the req.res = something problem [07:46] mjr_: oh, hmm [07:46] ryah: http.js:1248 [07:46] ryah: ^-- that one [07:47] mjr_: yeah, maybe I'm uncovering a different issue [07:47] lukegalea has joined the channel [07:47] mjr_: I just saw the exception, and I though, OK great, finally a reproducable case. [07:48] ryah: :) [07:48] mjr_: So for sure, the HTTP server I'm talking to is doing that broken thing. [07:48] ryah: yeah i think this is also an issue [07:48] ryah: okay - sending two responses? [07:48] mjr_: When I see that broken thing on the wire, it triggers the req.res thing. [07:48] groom has joined the channel [07:48] ryah: ok [07:49] mjr_: Yeah, it is a bug in that server. Those are the bytes I pulled off the wire from the response. [07:49] ryah: what server is the other end? why's it doing that? (curious) [07:49] mjr_: Just reformatted them. [07:49] mjr_: It's our silly python thing. [07:49] ryah: ok [07:49] void_ has joined the channel [07:49] ryah: im going to write a little function that makes all the http tests run for both https and http :) [07:50] mjr_: It's HTTP violations like this that made it easy for me to convince everybody that we shoudl do all server stuff in node. [07:50] mjr_: Just let somebody else handle HTTP, like node. [07:50] mjr_: Yeah, that'd be good to run it for both http and https. [07:51] Utkarsh has joined the channel [07:51] tapwater: I'm using node.js and express, and for some reason safari is rendering the request headers as the first part of the body http://pastie.org/1577817 [07:51] tapwater: anyone have an idea why? [07:52] fille128 has joined the channel [07:53] ryah: tapwater: strange [07:53] slickplaid: because some of the headers you're passing are an object rather than a string and when node tries to render it out, it fails with the [object Object] thing? [07:53] slickplaid: just a thought [07:53] k04n: does anyone know of any changes in node 0.4.0 that would cause sibilant to not work [07:54] k04n: "Error: Cannot find module 'sibilant/cli'" [07:54] k04n: all my other modules installed via npm work fine [07:54] tapwater: ryah, slickplaid: It works fine in chrome and firefox. I'm on os x. It's in an iframe inside a facebook app, if that makes a difference. [07:55] qFox has joined the channel [07:55] ryah: mjr_: modified your test to reproduce the same req.res = issue [07:56] mjr_: ryah: what changed? [07:56] herbySk has joined the channel [07:56] ryah: i think your content lenght might have been wrong [07:56] ryah: let me ngist that [07:56] ryah: damn [07:56] ryah: % ngist test/simple/test-http-extra-response.js [07:57] ryah: zsh: permission denied: ngist [07:57] mjr_: perhaps. I copy pasted that body from tcpdump -A output, then reformatted it for javascript. [07:57] ryah: :( [07:57] ivanfi has joined the channel [07:57] ryah: sigh. [07:57] mjr_: I did assert the content length in that test though, so I figured it was right. [07:58] ilpoldo has joined the channel [07:59] ryah: mjr_: https://gist.github.com/833399 [08:01] slickplaid: Ah that kinda makes sense [08:01] void_ has joined the channel [08:02] postwait has joined the channel [08:02] _jesse_ has joined the channel [08:03] MikhX has joined the channel [08:03] mraleph has joined the channel [08:03] mjr_: ryah: sure enough. Must have botched that body somehow. Probably fixing the quoting. [08:04] mjr_: Anyway, kind of seems like both are valid tests. [08:04] mjr_: I think node should drop that connection like it would on the server side of a client supplied invalid HTTP. [08:07] admc has joined the channel [08:08] CIA-39: node: 03Ryan Dahl 07v0.4 * r15a6aa7 10/ (2 files): Add more broken tests - http://bit.ly/hGdQRU [08:08] CIA-39: node: 03Matt Ranney 07v0.4 * rab969bf 10/ test/simple/test-http-extra-response.js : [08:08] CIA-39: node: Add failing test for broken HTTP responses with extra bytes. [08:08] CIA-39: node: For GH-680. - http://bit.ly/fHjfPV [08:09] ryah: so, three broken http tests [08:09] ryah: sounds like a fun day tomororw. [08:10] chrischris has joined the channel [08:11] wao: :/ [08:12] s1ghs has joined the channel [08:14] gasbakid has joined the channel [08:15] chrischris has joined the channel [08:16] aabt has joined the channel [08:16] kal-EL_ has joined the channel [08:17] jacobolus has joined the channel [08:18] nook has joined the channel [08:19] lukegalea has joined the channel [08:22] arlolra has joined the channel [08:22] altamic has joined the channel [08:22] altamic has joined the channel [08:24] razvandimescu has joined the channel [08:27] rchavik has joined the channel [08:27] rchavik has joined the channel [08:27] ROBOd has joined the channel [08:27] ph^ has joined the channel [08:28] samcday_ has joined the channel [08:30] gattuso has joined the channel [08:31] mikeal has joined the channel [08:31] meso has joined the channel [08:32] alcuadrado has joined the channel [08:34] saikat has joined the channel [08:34] mscdex: node.js rules!! [08:34] dshaw has joined the channel [08:35] mscdex: so does node_pcap! [08:35] mscdex: :-D [08:36] [AD]Turbo has joined the channel [08:37] [AD]Turbo: yo [08:38] mscdex: hola [08:39] alcuadrado: do you know any way to add node's APIs support to Eclipse JDT? [08:39] alcuadrado: JSDT* [08:40] farhadi has joined the channel [08:40] Druid_ has joined the channel [08:42] mscdex: never used eclipse [08:42] gf3 has joined the channel [08:42] CIA-39: node: 03Ryan Dahl 07v0.4 * r9b0c761 10/ lib/http.js : [08:42] CIA-39: node: HTTP Agent should not die on evil server [08:42] CIA-39: node: Closes GH-680. - http://bit.ly/hS3Lcp [08:43] ryah: ^-- mjr_ [08:43] mscdex: ACTION shakes a fist at evil servers [08:43] chapel: hmm [08:45] mr_daniel has joined the channel [08:45] jetheredge has joined the channel [08:48] lukegalea has joined the channel [08:48] Sebmaster: does anyone know where the API parser for node is/who created it? [08:48] ryah: api parser? [08:49] pietern has joined the channel [08:49] Sebmaster: the thing which created a json object of the API... [08:50] Sebmaster: it was floating in the chat around a few days ago i think [08:50] Sebmaster: or was it created manually? [08:50] chapel: the json parser? [08:50] chapel: isn't it based on json2? [08:50] mape: Sebmaster: it is markdown [08:50] mape: the docs that is [08:51] mikedeboer has joined the channel [08:51] Sebmaster: yea, but i saw a gist, where the node.js-API was represented as a JSON string [08:52] k04n: asked this question in here before, got no answer -- maybe someone in here knows. anyone know why sibilant isn't working in my node 0.4.0, says "Error: Cannot find module 'sibilant/cli'" when i install via npm and github...all other npm packages work fine [08:53] Sebmaster: https://gist.github.com/830534 this gist [08:53] ryah: michiel made it [08:53] Jaye_: that is cool [08:54] yozgrahame has joined the channel [08:54] mape: Ah that is neat, could make for some nice mashups [08:55] btipling has joined the channel [08:55] Sebmaster: Jaye_: indeed, it is [08:55] cha0s has joined the channel [08:55] cha0s has joined the channel [08:55] mape: ryah: Any idea if it goes both ways? [08:56] rphillips has joined the channel [08:58] Sebmaster: this gist could be used to create a nice aptana intellisense template [09:02] pietern has joined the channel [09:03] sveimac_ has joined the channel [09:03] aklt has joined the channel [09:04] TobiasFar has joined the channel [09:04] tbassetto has joined the channel [09:07] FireFly|n900 has joined the channel [09:09] lukegalea has joined the channel [09:11] ryah: mape: i don't know [09:11] CrazyGoogle has joined the channel [09:13] mape: k [09:16] augustl: what are people using for mysql? [09:18] CrazyGoogle: node-mysql ? o_O [09:19] CrazyGoogle has joined the channel [09:19] lukegalea has joined the channel [09:20] darkredandyellow has joined the channel [09:21] aguynamedben has joined the channel [09:21] squeeks: Happy Friday [09:22] daglees has joined the channel [09:22] daglees has joined the channel [09:23] cognominal has joined the channel [09:25] alcuadrado: anyone using jsTestDriver? [09:26] markwubben has joined the channel [09:26] EMS has joined the channel [09:26] EMS: Hi [09:28] EMS: Is anybody around? [09:28] MikhX has joined the channel [09:30] ryah: EMS: just ask a question :) [09:30] ryah: someone will answer probably [09:30] EMS: Ah ok thanks [09:31] EMS: I am still trying to get my head around the whole node.js thing [09:31] EMS: and was wondering if someone could point me in the right direction [09:32] EMS: Basically I am going to interface with a PABX type system [09:32] EMS: So what I wanted to do was use php/apache/javascript to show when there is a new call [09:33] EMS: but that cannot be done with only those technologies [09:33] EMS: I can use php to cannect to the "PABX" to listen for new incomming calls [09:33] sveimac_ has joined the channel [09:33] EMS: but I now need to inform the browser to update to show a new incomming call [09:34] lukegalea has joined the channel [09:34] alcuadrado: how do you connect to PABX? [09:34] gf3` has joined the channel [09:34] EMS: Can I somehow use node.js and websocket to achieve this? [09:35] altamic has joined the channel [09:35] EMS: and using php to create a socket to listen to the "PABX" [09:35] ryah: EMS: you probably need a library for that... [09:36] EMS: a library for what? [09:36] adambeynon has joined the channel [09:36] alcuadrado: why not everything in node EMS? [09:37] alcuadrado: take a look at htp://socket.io for yout websocket needs [09:37] EMS: As I don't even know where to start looking to create a socket to listen on a port in node.js [09:37] mape: net [09:37] EMS: ok [09:37] vilhonen: client(socket.io) -> (server(node.js +socket.io+interaction with PABX) | server(php other content)) [09:37] vilhonen: I would do something like this [09:38] EMS: Awesome, thanks I will look into it ;) [09:40] EdJ has joined the channel [09:41] dustinwhittle has joined the channel [09:48] dguttman has joined the channel [09:49] squeeks: PABX? What the? [09:52] markwubben has joined the channel [09:56] jsj_ has joined the channel [09:58] aklt has joined the channel [10:00] lukegalea has joined the channel [10:01] TomY_ has joined the channel [10:01] swistak has joined the channel [10:07] gasbakid has joined the channel [10:07] gasbakid_ has joined the channel [10:08] thermal has joined the channel [10:08] bzinger has joined the channel [10:08] thomasb has joined the channel [10:10] Throlkim has joined the channel [10:11] lukegalea has joined the channel [10:12] thermal has joined the channel [10:17] forzan has joined the channel [10:18] mike5w3c has joined the channel [10:18] unlink has joined the channel [10:18] unlink has joined the channel [10:19] altamic has joined the channel [10:19] d0k has joined the channel [10:22] muk_mb: how would I go about figuring out why my smartmachine on no.de isn't working? [10:22] razvandimescu has joined the channel [10:22] muk_mb: I made sure all the necessary modules were installed, but I'm still getting nothin [10:24] darkredandyellow: I am trying to get a very simple node application to run: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs -> the first example [10:24] darkredandyellow: i installed jsdom and all other dependencies successfully via npm [10:24] darkredandyellow: but still I get: has no method 'jQueryify' [10:24] darkredandyellow: http://pastie.org/1578138 [10:25] darkredandyellow: now jQuerify() is a jsdom method, which is installed as already mentioned and required [10:25] darkredandyellow: how can I debug this further? [10:26] Sebmaster: console.log(jsdom) [10:26] Sebmaster: look which methods are available [10:27] Sebmaster: maybe the API has changed [10:27] arlolra has joined the channel [10:28] sriley has joined the channel [10:29] atmos has joined the channel [10:31] sveimac has joined the channel [10:32] groom: darkredandyellow: are you applying jQuerify to the result of require('jsdom')? [10:32] case__ has joined the channel [10:33] case__: hi there. any advice to test the existance of a file on the filesystem? it's for a test script so synchronous seems more convenient [10:33] case__: (in any case, no need to be async) [10:33] case__: something more apropriate than fs.lstatSync(path) ? [10:33] frodenius: stat the file [10:34] frodenius: ;) [10:34] case__: ok :) [10:35] altamic has joined the channel [10:35] altamic has joined the channel [10:37] FireFly|n900 has joined the channel [10:40] lukegalea has joined the channel [10:40] zomgbie has joined the channel [10:41] darkredandyellow: groom, Sebmaster, I checked, the API hasn't changed, console.log(jsdom) gives me [Function] - all I'm doing is var jsdom = require('jsdom').jsdom; jsdom.jQuerify.... [10:41] darkredandyellow: so as far as I can tell, I'm doing everything as I should [10:44] groom: darkredandyellow: console.log(jsdom) shows [10:44] groom: { dom: { level3: { core: [Object], events: [Object], html: [Object] } }, [10:44] groom: ... [10:45] groom: darkredandyellow: don't require('jsdom').jsdom but only require('jsdom) [10:46] darkredandyellow: groom, Sebmaster then I don't know what I am doing wrong. I chose an even simpler example now from the jsdom docs itself: https://github.com/tmpvar/jsdom The very first example under "Easymode" [10:47] darkredandyellow: this gives me: TypeError: Object # has no method 'env' [10:47] darkredandyellow: for the line: jsdom.env("http://nodejs.org/dist/", [ [10:47] darkredandyellow: groom, doesnt the error that I get now and before imply that my npm installation is kind of borked and node cant find the libraries? [10:47] darkredandyellow: especially the jsdom-library? [10:48] marlun_ has left the channel [10:48] groom: darkredandyellow: don't know. did you read "don't require('jsdom').jsdom but only require('jsdom)"? [10:48] christophsturm has joined the channel [10:49] darkredandyellow: groom, yes, I did, right now I am just doing: var jsdom = require("jsdom"); jsdom.env("http://nodejs.org/dist/",.......... [10:53] apoc: darkredandyellow: which version are you using? "..a new method, jsdom.env(), has been added in jsdom 0.2.0.." [10:53] apoc: it is not in the npm version [10:54] lukegalea has joined the channel [10:55] darkredandyellow: apoc, jsdom@0.1.20 says "npm ls installed" [10:55] darkredandyellow: hmm, I see [10:55] darkredandyellow: so I need to install the latest npm version manually [10:55] bingomanatee has joined the channel [10:58] zentoooo has joined the channel [10:58] apoc: if you want to use some of the newer features, yes [10:59] jsilva has joined the channel [11:01] muk_mb: is anyone using express.js + socket.io? [11:01] darkredandyellow: apoc, how would I install jsdom without npm? the jsdom readme says nothing about installing without npm [11:01] darkredandyellow: just clone the repo and copy the files manually? [11:02] apoc: clone the repo, switch in the directory and exec just npm install, i think [11:04] apoc: git clone git://github.com/tmpvar/jsdom.git; cd jsdom; sudo npm install [11:08] darkredandyellow: apoc, I did that and it *seems* to have worked: npm info install jsdom@0.2.0 [11:08] Coal has joined the channel [11:08] darkredandyellow: but now I get: Error: Cannot find module 'jsdom' [11:08] darkredandyellow: when doing the require [11:08] darkredandyellow: ACTION sighs [11:09] jsilva: join # #freenode [11:10] darkredandyellow: apoc, all in all this looks ok: http://pastie.org/1578243 [11:10] slickplaid: I just cloned the repo and ran `npm link .` [11:10] slickplaid: works wonderfully for me [11:11] darkredandyellow: I believe you. [11:11] darkredandyellow: npm ls installed gives me jsdom@0.2.0 [11:11] darkredandyellow: hmmm [11:12] darkredandyellow: alright, I'm gonna clone / link and see if that makes a differences [11:12] tmzt: would it be possible to embed jade in mongodb and instance it from there? [11:12] apoc: darkredandyellow: you can run node and run: require.paths, in some of those paths should be a jsdom link [11:13] lukegalea has joined the channel [11:13] Nevtus_ has joined the channel [11:14] darkredandyellow: apoc, slickplaid I linked jsdom and now I can see "jsdom@9999.0.0-LINK-d012bee0" when doing npm ls installed - however, I still get Error: Cannot find module 'jsdom' [11:15] darkredandyellow: apoc, alright, going to log that now [11:17] darkredandyellow: apoc, require-paths:/home/timo/.node_modules,/home/timo/.node_libraries,/usr/local/lib/node [11:17] darkredandyellow: is there something obvious missing? [11:17] apoc: nope looks similar here [11:17] cnu has joined the channel [11:18] slickplaid: I just unloaded jsdom and recloned/linked it and i had to manually add the 'request' module `npm install request` [11:18] muk_mb: Socket.IO should work in chrome/safari right? [11:18] slickplaid: I don't know if that is an issue for you or not [11:18] darkredandyellow: ACTION checks that [11:18] apoc: darkredandyellow: you should find the jsdom link in one of the paths, so for instance: ls -l /usr/lib/node/jsdom [11:20] apoc: slickplaid: btw do you know whats the "recommended" way of installing packages from the git repo? npm link . ? [11:20] slickplaid: I've always used `npm link .` and I've seen it used that way quite often in the README's [11:20] slickplaid: https://github.com/tmpvar/jsdom#readme <- also says to use `npm link .` [11:23] apoc: okay thanks, try to keep that in mind;) [11:23] slickplaid: I'm not sure of the differences, to be honest [11:24] mbrochh has joined the channel [11:24] mbrochh has joined the channel [11:25] apoc: i think link will only create a symlink in the lib/node folder, where install would actually copy the contents of the source repo. [11:26] d0k has joined the channel [11:26] slickplaid: That sounds about right. [11:26] altamic has joined the channel [11:26] altamic has joined the channel [11:26] ziro` has joined the channel [11:26] darkredandyellow: slickplaid, apoc ls /usr/local/lib/node/jsd* shows: jsdom and jsdom@9999.0.0-LINK-d012bee0 where "jsdom" points to jsdom@9999.0.0-LINK-d012bee0 [11:27] darkredandyellow: which is ok with my require.paths: require-paths:/home/timo/.node_modules,/home/timo/.node_libraries,/usr/local/lib/node [11:27] darkredandyellow: but i still get Error: Cannot find module 'jsdom' [11:27] darkredandyellow: when doing require("jsdom") [11:28] darkredandyellow: slickplaid, regarding request, I'm trying that in a sec, I need to install from github cause npm gives me...FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory [11:28] darkredandyellow: grrrrrrrrrrrrrrrrrr [11:28] darkredandyellow: what a clusterfuck [11:29] slickplaid: What OS are you trying to run this on? Not windows, right? [11:29] apoc: yeah seems to be there is something broken with npm [11:29] darkredandyellow: no, ubuntu 10.10 [11:29] slickplaid: kk :D just checking [11:29] apoc: hehe ;) [11:33] lukegalea has joined the channel [11:34] fermion has joined the channel [11:34] darkredandyellow: slickplaid, apoc I installed "request" from github but I still get Error: Cannot find module 'jsdom' [11:34] darkredandyellow: at Function._resolveFilename (module.js:289:11) [11:34] darkredandyellow: I give up [11:34] darkredandyellow: except somebody has some more good ideas [11:35] darkredandyellow: but I refuse to start debugging module.js [11:35] freakyfractal has joined the channel [11:36] aguynamedben has joined the channel [11:38] muk_mb: I see basically no difference between my app and the Socket.IO example app, but mine fails to connect… oy [11:39] altamic has joined the channel [11:39] altamic has joined the channel [11:40] tanepiper: can anyone confirm if https://github.com/pgriess/node-webworker is working fine with node 0.4? [11:40] SubStack: tanepiper: I get uncaught: Error: Non-socket exists at /tmp/node-webworker-968 [11:41] SubStack: on 0.3.8 [11:41] SubStack: which is pretty much 0.4 [11:41] SubStack: while running test-simple.js at least, it built fine [11:41] tanepiper: hmm. yea worried it hasn't been updated for a while [11:41] MattJ has joined the channel [11:44] iszak has joined the channel [11:44] iszak has joined the channel [11:48] phpnode: hey, i'm getting an error with dns.js: Error: EBADNAME, Misformatted domain name [11:49] phpnode: this started happening for a load of urls, everything worked fine a few minutes ago [11:50] phpnode: then every url i give it throws that error [11:52] lukegalea has joined the channel [11:53] shinmei has joined the channel [11:55] altamic has joined the channel [11:55] altamic has joined the channel [12:00] tomaw has joined the channel [12:02] jetienne has joined the channel [12:02] juan77 has joined the channel [12:05] lukegalea has joined the channel [12:07] jashkenas has joined the channel [12:08] okuryu has joined the channel [12:08] Kryckan has joined the channel [12:08] okuryu has joined the channel [12:10] sivy has joined the channel [12:11] eee_c has joined the channel [12:12] altamic has joined the channel [12:12] altamic has joined the channel [12:15] herbySk has joined the channel [12:15] lukegalea has joined the channel [12:17] augustl: looking for a message queue that's easy to post to and comsume from with plain HTTP, and that supports scheduled/delayed messages [12:19] Tobias| has joined the channel [12:19] squeeks: HTTP's a pretty bad choice for message queueing. [12:20] augustl: squeeks: I'm using node, so if raw sockets are better that's fine with me :) [12:20] augustl: I imagine sockets are better for consuming at least. [12:20] squeeks: STOMP is a pretty easy protocol, but AMQP libs are already on npm [12:27] altamic has joined the channel [12:27] altamic has joined the channel [12:28] lukegalea has joined the channel [12:28] squeeks: https://github.com/benjaminws/stomp-js oh, someone has made a stomp thing. cool. [12:28] Evet has joined the channel [12:28] Evet has joined the channel [12:29] augustl: oh hey, with a test/ folder too [12:30] squeeks: with only a test on the stomp frame. [12:34] dgathright has joined the channel [12:35] Jonasbn_ has joined the channel [12:35] altamic has joined the channel [12:35] altamic has joined the channel [12:40] saschagehlich has joined the channel [12:41] tc77 has joined the channel [12:43] FireFly|n900 has joined the channel [12:44] FireFly|n900 has joined the channel [12:44] jetienne: squeeks: what is stomp [12:44] jtsnow has joined the channel [12:45] augustl: jetienne: a generic messaging protocol [12:48] jetienne: augustl: ok [12:48] jetienne: http://docs.codehaus.org/display/STOMP/Protocol [12:49] fairwinds has joined the channel [12:49] Jaye has joined the channel [12:51] lukegalea_ has joined the channel [12:51] devrim has joined the channel [12:55] Evet_ has joined the channel [12:57] pietern has joined the channel [12:59] void_ has joined the channel [13:00] xandrews has joined the channel [13:04] gf3 has joined the channel [13:04] xandrews has joined the channel [13:07] losing has joined the channel [13:07] xandrews has joined the channel [13:08] postwait has joined the channel [13:10] lukegalea_ has joined the channel [13:15] shripadk has joined the channel [13:16] shripadk: i installed express@1.0.7 via npm.. if i check the version in node using `require('express').version` it still shows up as 1.0.0rc2 [13:16] shripadk: using node v0.4.0 [13:16] shripadk: anyone know how to fix this? [13:16] seivan: Ehm [13:16] seivan: Does anyone know how to subscribe on a redis channel [13:17] shripadk: seivan: use node_redis [13:17] seivan: yeah [13:17] seivan: But is there a way to subscribe on addiontal channsers after first subscription ? [13:18] shripadk: i don't think so [13:18] shripadk: you can probably use wildcard [13:19] seivan: no I need to be able to subscribe to channels on the fly. [13:19] shripadk: you still can subscribe to only one channel per client connection [13:19] shripadk: if u want to add more channels [13:19] shripadk: use psubscribe [13:20] shripadk: you might have to maintain a list yourself [13:20] bentruyman has joined the channel [13:21] lukegalea_ has joined the channel [13:23] jimt_ has joined the channel [13:24] ph^ has joined the channel [13:24] mbrochh has joined the channel [13:24] mbrochh has joined the channel [13:27] gasbakid has joined the channel [13:28] jimt has joined the channel [13:28] dnolen has joined the channel [13:31] rawroland has joined the channel [13:31] altamic has joined the channel [13:31] altamic has joined the channel [13:36] Ori_p has joined the channel [13:36] hij1nx has joined the channel [13:42] jashkenas has joined the channel [13:42] danyork has joined the channel [13:43] Ori_p has joined the channel [13:43] altamic has joined the channel [13:43] altamic has joined the channel [13:44] nivoc has joined the channel [13:45] seivan: Am the only one who think coding Node is... messy [13:45] seivan: It's hard to grasp what sorts of object some stuff are, and the docs don't make it easy [13:46] spaceinvader: If you think Node is messy try Java EE [13:47] christophsturm: seivan: you could just give an example what you think is messy or even submit a patch for the documentation [13:47] seivan: http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/ [13:47] fumanchu182 has joined the channel [13:47] seivan: https://gist.github.com/b5cb74c92fd244674951 [13:47] seivan: What kind of object is request ? [13:48] seivan: If I want to find it's event, where do I look in the docs? [13:48] lukegalea_ has joined the channel [13:48] Guest82355 has joined the channel [13:50] softdrink has joined the channel [13:50] seivan: I am trying to grasp this source code; http://109.228.150.197:3004/2F4B2/juggernaut [13:50] caike has joined the channel [13:50] bshumate has joined the channel [13:50] bshumate has joined the channel [13:50] void_ has joined the channel [13:52] xandrews has joined the channel [13:52] bingomanatee has joined the channel [13:52] altamic has joined the channel [13:53] daglees has joined the channel [13:53] daglees has joined the channel [13:54] sriley: seivan: http://nodejs.org/docs/v0.3.5/api/http.html#client.request [13:54] sriley: its a http.ClientRequest object [13:54] seivan: Why not; http://nodejs.org/docs/v0.4.0/api/ [13:54] daglees has joined the channel [13:55] christophsturm: seivan: http://nodejs.org/docs/v0.2.0/api.html#http-client-184 [13:55] shripadk: http://nodejs.org/docs/v0.4.0/api/http.html#event_request_ [13:55] sriley: or that, i just searched google that was higher, use the 0.4.0 api docs if thats the version youre using [13:55] shripadk: seivan: http://nodejs.org/docs/v0.4.0/api/http.html#event_request_ [13:55] seivan: doesn't say much [13:56] seivan: the last docs that is [13:56] seivan: the 4.0 [13:56] christophsturm: is there even a createClient in 0.4? [13:56] Evet has joined the channel [13:56] shripadk: what specifically do you want to know about the request object? [13:56] seivan: Screw it, I am going with eventmachine [13:56] seivan: shripadk: Nothing, I just want proper docs that's all [13:56] christophsturm: seivan: i guess your code uses the 0.2 api [13:56] sriley: thats why i ended up using google, couldnt see it in the 0.4.0 docs [13:56] shripadk: there isn't much to the request object than there is in the 0.4.0 docs [13:57] christophsturm: seivan: eventmachine is also great :) [13:58] christophsturm: or cool.io [13:59] daglees has joined the channel [13:59] Ari-Ugwu has joined the channel [13:59] heavysixer has joined the channel [14:03] scoates has joined the channel [14:03] bingomanatee: Yep the documentation is thre - just not cross linked :D [14:03] jano has joined the channel [14:03] bingomanatee: no pressure to upgrade at all :D [14:03] Poetro has joined the channel [14:03] shripadk: seivan: maybe give this a try? http://visionmedia.github.com/masteringnode [14:04] jano has joined the channel [14:04] davidsklar has joined the channel [14:04] seivan: shripadk: doesn't seem to be finished? [14:04] shripadk: yeah it isn't [14:04] shripadk: but a good starting point [14:05] seivan: hehe true, the HTTP part are important though [14:05] shripadk: have u tried OSButler? [14:05] shripadk: its outdated [14:05] shripadk: but really good intro to all the core modules [14:05] shripadk: OSButler.com » Node by example: 1. Introduction & Installation [14:06] shripadk: http://blog.osbutler.com/2010/mar/25/node-by-example-introduction-installation/ [14:06] fly-away has joined the channel [14:08] nivoc has joined the channel [14:08] sivy has joined the channel [14:09] herbySk has joined the channel [14:10] lukegalea_ has joined the channel [14:11] seivan: This his how docs should look like; http://redis.io/ [14:11] altamic has joined the channel [14:12] nivoc1 has joined the channel [14:14] jlecker has joined the channel [14:15] spaceinvader: whoa, each help page has an interactive intepreter? [14:15] aheckmann has joined the channel [14:15] davidc_ has joined the channel [14:16] malkomalko has joined the channel [14:17] seivan: spaceinvader: yes.. yes it has [14:17] void_ has joined the channel [14:17] seivan: Node seems very hard to get into. [14:18] mraleph: no it does not [14:18] mraleph: very comprehensive doc IMHO [14:19] altamic has joined the channel [14:23] beta_ has joined the channel [14:23] chapel: it is hard for someone new to js or something as open as node [14:23] chapel: stuff like rails is a tutorial in a box [14:24] chapel: but they are not the same, and node is better for it [14:24] rwaldron_ has joined the channel [14:24] malkomalko: does anybody know if there was a difference b/w 1.6.1 - 1.6.5 with how mongo stores longs? I can't find anything in the change logs but I'm seeing some differences [14:24] freakyfractal: it is tricky at first. i recommend really looking into the connect (module) to figure out how things are working. then go on to express, etc... [14:24] malkomalko: 1.6.1: "endDate" : NumberLong( 1.2979e+12 ), 1.6.5: "endDate" : NumberLong("1297917900000") [14:24] chapel: I think people come into node thinking they should have their hands held, but the problem is, node is young, it is changing often, and not everything it can do has been defined or even documented [14:25] malkomalko: and it looks like when I parse the 1.6.1 time (unix timestamps) I'm 5 hours off with gmt stuff [14:25] squeeks: you know, publishing to npm doesn't have the same anticipation than CPAN.. it's very american in a sense. [14:25] pl-6: ok, if I DON'T use CYGWIN - what alternative is there to get node.js running on Windows XP ? [14:25] chapel: anyone that tries to write tutorials and help docs for node find it daunting to keep up with it, that is why I feel why there is a lack of help out there atm [14:25] pl-6: I recall another option. [14:25] nonnikcam has joined the channel [14:26] squeeks: mingw? [14:26] mw_ has joined the channel [14:26] mw_ has joined the channel [14:26] pl-6: yes- that was it - ok. [14:26] seivan: ah fuck it I need to stick with i [14:26] malkomalko: thought I was in the mongo channel.. whoops! [14:26] freakyfractal: recommendations for templating? ejs? [14:26] Evet has joined the channel [14:27] bmavity has joined the channel [14:27] pl-6: chapel are you the same chapel on github ? if so - thanks for ngist offering ! [14:27] chapel: freakyfractal: dustjs [14:27] chapel: :) [14:27] freakyfractal: ok. looking for it ... [14:27] chapel: pl-6: yes, and youre welcome [14:27] chapel: glad that its useful [14:27] c4milo has joined the channel [14:27] chapel: you have the updated version? [14:27] chapel: I mean, I just put it out yesterday or something [14:28] pl-6: was suggested last eve in here by piscisaureus to me for a problem I was having.- just a 'good thing' I thought. [14:28] chapel: for a problem? [14:29] lukegalea_ has joined the channel [14:29] arpegius has joined the channel [14:29] pl-6: oh, to post it so they could see. Was with install of node.js - I just recalled your name- put 1 and 1 together and thought- I bet that's the same person :) [14:30] chapel: ah [14:30] chapel: :) [14:31] brian_irish has joined the channel [14:31] beta_ has joined the channel [14:33] arnorhs has joined the channel [14:34] strmpnk has joined the channel [14:39] kevwil has joined the channel [14:42] lukegalea_ has joined the channel [14:43] ako has joined the channel [14:46] altamic has joined the channel [14:46] altamic has joined the channel [14:47] ncb000gt has joined the channel [14:48] adambeynon has joined the channel [14:52] Wizek has joined the channel [14:52] lukegalea_ has joined the channel [14:52] eee_c has joined the channel [14:53] ceej has joined the channel [14:53] jashkenas has joined the channel [14:54] boaz has joined the channel [14:54] killfill: hi [14:54] ncb000gt: hey [14:55] killfill: im trying the repl example of the documentation. is it ok that when printing the value of 'connections' its alwais 0, no matter if i make some connections? [14:56] altamic has joined the channel [14:56] altamic has joined the channel [14:57] ncb000gt: killfill: is the data returning on your request? [14:57] killfill: its like just after the first repl.start, when you change the valu of a var that is visible in the context, its value gets not updated [14:57] davglass has joined the channel [14:58] killfill: ncb000gt: yes, its alwas the value before the first repl.start, that is 0. [14:58] ncb000gt: killfill: which example are you talking about (i'm unaware) [14:58] killfill: http://nodejs.org/docs/v0.4.0/api/repl.html [14:59] ncb000gt: killfill: where are you printing out connections? [14:59] killfill: con the console repl, and on the tcp one [14:59] Kingdutch has joined the channel [14:59] ncb000gt: within the callbacks? [15:00] ncb000gt: or at the end of the example? [15:00] killfill: ah, no at the end of the example. inside 'node via stdin> ' [15:01] killfill: when you print the var in the callback, it shows the correct value. it increments on new connections. [15:01] ncb000gt: yea [15:01] Evet has joined the channel [15:01] ncb000gt: killfill: it will be 0 if you are printing outside of the callbacks [15:01] killfill: seems the conext of the repl's, if a copy of the global vars.. :P [15:01] killfill: not a reference.. :P [15:02] briznad has joined the channel [15:03] fille128 has left the channel [15:03] Remoun has joined the channel [15:04] herbySk has joined the channel [15:04] sirkitree has joined the channel [15:05] mike5w3c has joined the channel [15:06] bradleymeck has joined the channel [15:06] jsj has joined the channel [15:08] Iszak has joined the channel [15:08] Iszak has joined the channel [15:09] bradleymeck: substack, fixed [15:10] ajashton has joined the channel [15:11] milez has joined the channel [15:14] k04n has joined the channel [15:17] jashkenas has joined the channel [15:17] milez has joined the channel [15:18] nivoc has joined the channel [15:20] juan77: hi, howdy! [15:20] juan77: anyone tried using rapidssl with node using the new TLS/SSL httpServer? [15:21] Evet has joined the channel [15:23] lukegalea_ has joined the channel [15:23] Yuffster has joined the channel [15:23] sivy has joined the channel [15:25] kenbolton has joined the channel [15:27] colinclark has joined the channel [15:31] heavysixer has joined the channel [15:32] BillyBreen has joined the channel [15:33] lukegalea_ has joined the channel [15:34] randylien has joined the channel [15:35] randylien has joined the channel [15:35] nook has joined the channel [15:36] tim_smart has joined the channel [15:37] fatjonny has joined the channel [15:37] claudiu__ has joined the channel [15:39] swistak has joined the channel [15:39] gf3 has joined the channel [15:42] phpnode: anyone know if the creator of node.io hangs out here, and if so what his nick is [15:43] mynyml has joined the channel [15:43] spaceinvader: phpnode: it's ryah [15:43] ncb000gt: spaceinvader: no [15:43] squeeks: phpnode: it's nearly 3am in his time zone, I don't like your chances. [15:43] ncb000gt: nodejs was written by ryah [15:43] spaceinvader: oopsie [15:43] spaceinvader: i'm in a c++ lecture and i'm really tied [15:43] spaceinvader: *tired [15:43] ncb000gt: :) [15:43] spaceinvader: i misread :( [15:43] ncb000gt: all good [15:44] christophsturm has joined the channel [15:44] spaceinvader: he is talking about namespaces; how boring [15:44] phpnode: yeah his name is chriso on github [15:44] ncb000gt: aye [15:44] dve has joined the channel [15:44] spaceinvader: i'm a 2nd year CS undergrad and all the stuff we do is stuff i knew about in high school [15:44] ncb000gt: not sure. whats your issue? [15:44] spaceinvader: really annoying [15:45] phpnode: i'm trying to scrape some urls, and i get a really annoying error that i can't seem to catch, EBADNAME, Misformatted domain name [15:45] dve: hi, using node-http-proxy want to proxy certain requests to say server:8000/data to server:8001 [15:45] ncb000gt: phpnode: have you printed out your domain name/full url? [15:45] dve: cant get my head round it [15:46] ncb000gt: dve: do you have some code written that you could throw into a gist? [15:46] milez has joined the channel [15:46] dve: yea, 1 sec [15:46] phpnode: ncb000gt: yeah it's a full url, it works for most urls but then i hit one that consistently fails: http://pastebin.com/z3dVwVHg [15:47] phpnode: that's my code, i'm just forcing that one line manually at the moment, getHtml fails with that error [15:48] dve: In fact its pretty much a copy paste from the demos here... https://github.com/nodejitsu/node-http-proxy#readme [15:48] davidascher has joined the channel [15:48] FireFly|n900 has joined the channel [15:50] randylien_ has joined the channel [15:50] dve: i basically have an existing server running on 5678 [15:50] dve: (using Zappa) [15:50] dguttman has joined the channel [15:50] dve: and I guess I want to do something like httpProxy = require('http-proxy'); [15:50] dve: httpProxy.createServer(5678, 'localhost').listen(8000); [15:50] stagas has joined the channel [15:52] devaholic: nodejs and facebook? [15:52] FireFly has joined the channel [15:52] devaholic: http://blobaum.com/ [15:52] tahu has joined the channel [15:52] ncb000gt: phpnode: are most of the urls you use relative or do they all have a fqdn? [15:52] milez has joined the channel [15:53] almay has joined the channel [15:53] daniellindsley has joined the channel [15:54] beta_ has joined the channel [15:54] stagas: devaholic: nice [15:54] phpnode: ncb000gt: i'm scraping a list of search results from yahoo, so they're all public urls, i'm not really sure what you mean [15:54] pietern has joined the channel [15:54] ncb000gt: phpnode: and, you might want to look at line 189 or so in lib/node.io/request.js [15:54] EyePulp has joined the channel [15:54] phpnode: ncb000gt: does that code fail for you too? [15:54] ncb000gt: phpnode: i was wondering if the paths were /blah or http://bleh.com/blah [15:55] phpnode: always with a domain name [15:55] ncb000gt: phpnode: haven't tried the code...i don't have node.io setup [15:55] devaholic: stages: thanks did you manage to sign in? [15:55] phpnode: ok [15:55] devaholic: stagas * [15:55] ryanfitz has joined the channel [15:55] ncb000gt: phpnode: try putting some print out around the lines i mentioned in node.io [15:56] ncb000gt: you'll be able to get a bit more information there [15:56] ncb000gt: the parsing of the url might be a bit off [15:57] ncb000gt: dve: looking at the example now, sec [15:57] gf3 has joined the channel [15:57] sleeplessinc has joined the channel [15:58] sleeplessinc has joined the channel [15:58] lukegalea_ has joined the channel [15:59] ncb000gt: dve: yea i'd say to try that, httpProxy.createServer(5678, 'localhost').listen(8000); [16:00] phpnode: ncb000gt: it's extra annoying because when i do this it does get the status code: echo "http://investing.businessweek.com/research/stocks/snapshot/snapshot.asp?capId=101648" | node.io statuscode [16:00] ncb000gt: I also haven't used node-http-proxy, so i can't say that it would work [16:00] ncb000gt: phpnode: so i assume it works if you just try that single url [16:01] ncb000gt: npm install node.io [16:01] ncb000gt: bleh [16:01] ncb000gt: wrong window [16:02] dahankzter has joined the channel [16:03] ncb000gt: phpnode: i just ran your stuff andf get the same error [16:03] dve: cheers... will experiment some more [16:04] phpnode: ncb000gt: thanks, glad it's not just me being insane [16:04] squeeks: ncb000gt: if you have been on IRC and never done that before, you've not lived. bonus points if you paste your password. [16:05] ncb000gt: squeeks: i def tweeted one of my passwords once... was a very scary moment. [16:05] eaton: pasting my SSH key, that's fun. [16:05] ncb000gt: phpnode: :) [16:06] msch has joined the channel [16:06] phpnode: so now the fun begins, how the hell do i squash this, and why isn't that being caught by my try{} catch{} block, or is that because of js's scoping issues... [16:08] ajcates has joined the channel [16:08] milez has joined the channel [16:09] lukegalea_ has joined the channel [16:09] EyePulp: yo ho ho [16:09] fumanchu182 has joined the channel [16:09] jeromegn: Is it just me or is there no decent mongodb library that support embedded documents? [16:09] EyePulp: jeromegn: mongoose seems to [16:10] devaholic: +1 for mongoose [16:11] jeromegn: EyePulp: Yea sure, it's the best contender. The thing is: it fails to embed documents with dirty attributes :( [16:11] bradleymeck: phpnode, mmm probably async code, that wont be availalbe to your try/catch [16:11] bradleymeck: would be easier if i could se an example [16:11] dmcquay has joined the channel [16:11] EyePulp: jeromegn: dirty - which means unsaved or not in the Schema? [16:11] EyePulp: or they like to smoke and wear leather? [16:12] jeromegn: EyePulp: They are in the Schema, but they are defined as a MixedSchema: {} [16:12] jeromegn: :P [16:12] jeromegn: yea so not even dirty, but just MixedSchemas within an embedded document [16:12] phpnode: bradleymeck: my code is at https://gist.github.com/833888 [16:13] gorakhargosh has joined the channel [16:13] girikei has joined the channel [16:13] jeromegn: EyePulp: https://gist.github.com/0dcb0de42cd65cb63cb1 [16:15] ncb000gt: phpnode: sorry, someone came by to talk about work stuff :) [16:15] phpnode: :) [16:15] ncb000gt: i know right, "ugh...work stuff!!!" [16:15] ncb000gt: :) [16:16] gf3` has joined the channel [16:17] bradleymeck: phpnode cant find what $.each is or if it is async (unlikely) so not sure why you arent catching the error, add a process.on("uncaughtException") and you might get more info on it [16:17] pengwynn has joined the channel [16:18] ncb000gt: phpnode: whu? i just printed out the parsed url and it's setting host and hostname to .. [16:18] ncb000gt: o.0 [16:18] phpnode: wtf [16:18] ncb000gt: ohhh [16:18] ncb000gt: actually, it's a second request [16:19] hornairs has joined the channel [16:19] ncb000gt: the first one is fine, but the second one chokes [16:19] aheckmann has joined the channel [16:20] ncb000gt: i may get booted for this...but [16:20] ncb000gt: DEBUG: url: { href: 'http://../../stocks/private/snapshot.asp?privcapId=101648' [16:20] ncb000gt: , protocol: 'http:' [16:20] ncb000gt: , slashes: true [16:20] ncb000gt: , host: '..' [16:20] ncb000gt: , hostname: '..' [16:20] ncb000gt: , search: '?privcapId=101648' [16:20] ncb000gt: , query: 'privcapId=101648' [16:20] ncb000gt: , pathname: '/../stocks/private/snapshot.asp' [16:20] ncb000gt: } [16:20] ncb000gt: hooray not booted [16:20] ncb000gt: :) [16:20] devaholic: ACTION slaps ncb000gt around a bit with a large trout [16:20] phpnode: :) [16:20] ncb000gt: there is a url on that page [16:20] ncb000gt: lol [16:20] ncb000gt: ACTION crits #node.js with wall-of-text [16:21] squeeks: There needs to be a channel sanctioned pastebin. [16:22] phpnode: ncb000gt: so you're saying that urlparse gets called twice, and what you pasted was the second output? [16:22] ncb000gt: phpnode: exactly [16:22] ncb000gt: i'm not sure why it's called twice [16:23] ncb000gt: the path of that url is the same as the one requested, there may be a bug in there somwhere. [16:23] lukegalea_ has joined the channel [16:23] ncb000gt: phpnode: did you try bradleymeck's suggestion of catching the uncaughtexceptions. [16:24] phpnode: not yet, i'm not quite sure how to do that [16:24] ncb000gt: phpnode: http://debuggable.com/posts/node-js-dealing-with-uncaught-exceptions:4c933d54-1428-443c-928d-4e1ecbdd56cb [16:24] mike5w3c has joined the channel [16:25] thedome has joined the channel [16:25] phpnode: great, thanks [16:25] trotter has joined the channel [16:27] phpnode: ok that stops my script from dying, thanks for that :) [16:27] phpnode: i'll file a bug report for node.io [16:28] jakehow has joined the channel [16:28] ncb000gt: hmm. what seems strange though is that the requests aren't identical [16:28] ncb000gt: hold on, i'll post the output into a gist for you [16:28] ncb000gt: and you can link to it in your ticket [16:28] phpnode: ok [16:28] jimt_ has joined the channel [16:29] devaholic: i cant seem to get a redirection or anything after someone has authenticated with facebook (jsdk of course) anyone have a clue? [16:29] ncb000gt: phpnode: https://gist.github.com/833921 [16:29] rwaldron has left the channel [16:29] ncb000gt: devaholic: no idea, haven't done much with facebook [16:30] phpnode: ncb000gt, bradleymeck - thanks for your help [16:31] dmcquay has joined the channel [16:31] devaholic: here is the script, try logging in? when the fbook window is open it gives endless unsafe errors in chrome (but not the main problem) after you login you have to refresh -- trying to avoid that step [16:31] devaholic: http://blobaum.com/# [16:32] dthompson has joined the channel [16:32] eric_ has joined the channel [16:33] Evet_ has joined the channel [16:33] devaholic: if you havent worked with facebook though nm, thanks [16:34] ncb000gt: devaholic: yea sorry, i'm going to be of little help =\ [16:35] srid has joined the channel [16:35] srid has joined the channel [16:35] devaholic: ncbg000gt: ahh no worries, if you want to check out the node app there it still works sans that facebook issue [16:35] devaholic: i cant type lol [16:35] hwinkel has joined the channel [16:36] ncb000gt: devaholic: I saw it briefly, but my "shiny" factor is too high... :) [16:36] Ori_p has joined the channel [16:36] ncb000gt: :%s/shiny/OHHH SHINY/ [16:36] devaholic: lol, i dont understand? [16:37] devaholic: wat [16:37] ncb000gt: <-- self diagnosed adhd [16:37] ncb000gt: I looked for a few seconds and moved onto the next thing i got distracted by [16:37] herbySk has joined the channel [16:38] xla has joined the channel [16:38] devaholic: oh, haha [16:38] devaholic: sorry [16:39] tjholowaychuk has joined the channel [16:39] ncb000gt: devaholic: np [16:40] groom has joined the channel [16:43] warz has joined the channel [16:44] bentruyman has joined the channel [16:44] zachsmith has joined the channel [16:45] ianward has joined the channel [16:45] Evet has joined the channel [16:46] liar has joined the channel [16:48] seivan: Man am I the only one who thinks the whole node stuff is painful... I need better docs and guides.. [16:49] bwinton: seivan: It's a little different than the other systems I've worked with, but once you get used to it it's pretty elegant. [16:49] isaacs has joined the channel [16:49] seivan: I think a lot of it is the JS standing the way. I mean I can stand OBJ-C, hell I even like OBJ-C, but JS is just fugly. [16:49] devaholic: well lol [16:49] mraleph: nobody forces you to use nodejs [16:49] devaholic: learn you some JS [16:50] seivan: mraleph: well this project is . [16:50] davidc_: Learn how to write elegant code then. Learn JS then bitch about it. [16:50] mraleph: abandon it. [16:50] seivan: egh [16:50] seivan: Anyway, any good tutorials or guides for node? [16:50] mraleph: or there are some evil guys with guns? [16:50] tim_smart has joined the channel [16:50] tjholowaychuk: js can be reasonably elegant [16:51] tjholowaychuk: just dont be a retard [16:51] mraleph: call police, black ops, army helicopter to save you from evil guys forcing you to use shitty js. [16:51] tjholowaychuk: if you suck at writing clean code no language can help you [16:51] hobs: hi, I am running the example for a tcp echo server and it has a command that says c.pipe(c); and that crashes with a has no method pipe, can anyone tell me what the pipe method is supposed to do? [16:51] bwinton: ACTION makes a note to write node.objc [16:51] tiemonster has joined the channel [16:51] hobs: oh I see [16:52] hobs: but it isnt supported by this [16:52] hobs: well the docs have a mistake but thats no big deal [16:52] lukegalea_ has joined the channel [16:52] noahcampbell has joined the channel [16:52] mraleph: "objective-c combines blazing speed of smalltalk with memory safety of c" [16:52] tjholowaychuk: hobs: if you are usnig 0.4.0 it should work [16:52] hobs: you got me tjholowaychuk [16:52] hobs: I trusted my package manager [16:52] hobs: stupidly [16:52] tjholowaychuk: nevaa [16:53] tiemonster: how do we submit patches? I don't see a file dialog when trying to send a message through Google Groups... [16:53] EyePulp: jeromegn: you still around? [16:53] jeromegn: EyePulp: yes [16:53] EyePulp: I looked at your gist -- is there some reason you're using the word "dirty" [16:54] EyePulp: for a schema property, that is [16:54] jeromegn: EyePulp: Nah, I think I was just confused with the terminology ;) [16:54] jeromegn: oh no [16:54] jeromegn: not really [16:54] jeromegn: but any name there will throw the same error [16:54] EyePulp: jeromegn: you've tried other names? [16:55] patcito has joined the channel [16:56] jeromegn: EyePulp: Yes, it's the same... it used to be "anObj" since it was more representative, just wanted to make sure the name wasn't conflicting with anything. I've been stumped on this for a while and tried loads of variations [16:56] EyePulp: does it work without a $pushall ? [16:56] samcday has joined the channel [16:57] EyePulp: ACTION notes they only recently made some tweaks to $pushall last night or yesterday [16:57] tiemonster: never mind - I just send it from the wrong e-mail [16:57] jeromegn: EyePulp: Oh yes, I've been following the commits :) I'm constantly pulling the latest and running my tests [16:57] eee_c has joined the channel [16:58] jeromegn: EyePulp: Maybe I missed something, what could I used instead of $pushAll? [16:58] EyePulp: jeromegn: it should work as a "normal" save operation [16:59] mattly has joined the channel [16:59] jeromegn: oh, by adding the embedded documents when creating the instance instead of pushing them later? [17:01] aurynn has joined the channel [17:01] jherdman has joined the channel [17:01] eresair has joined the channel [17:02] Vertice has joined the channel [17:02] jeromegn: EyePulp: Like that? https://gist.github.com/0dcb0de42cd65cb63cb1 [17:03] joshpeek_ has joined the channel [17:03] EyePulp: jeromegn: no, I'm asking if you can even do individual document saves. forget the embeds or $pushes [17:03] wadey has joined the channel [17:03] yhahn has joined the channel [17:04] aheckmann has joined the channel [17:04] dylang has joined the channel [17:04] bentruyman_ has joined the channel [17:05] chrischris has joined the channel [17:06] ajnasz has joined the channel [17:07] jeromegn: EyePulp: Yes, I just tried it, with the same sampleData, saving a document with the EmbeddedSchema as a standalone document. [17:08] losing has joined the channel [17:09] kollektiv` has joined the channel [17:10] MaSch has joined the channel [17:11] patcito_ has joined the channel [17:11] EyePulp: jeromegn: same error? [17:11] adamholt_ has joined the channel [17:12] wang has joined the channel [17:12] swistak has joined the channel [17:13] blowery has joined the channel [17:13] brianc has joined the channel [17:13] Tobias| has joined the channel [17:15] themiddleman has joined the channel [17:15] slaz has joined the channel [17:17] springmeyer has joined the channel [17:18] derferman has joined the channel [17:18] coltrane has joined the channel [17:22] |Blaze| has joined the channel [17:23] |Blaze|: If I'm used to rails, and wanting to play around with node, is expressjs a good starting point? [17:23] jeromegn: EyePulp: It works. The feature has already been tested. MixedSchemas within Schemas (defined like: key: {}) are documented and tested. It works. What doesn't work is embedding a document containing such a key! Embedding simpler structures works though (structures without MixedSchemas) [17:24] vyvea has joined the channel [17:24] tjholowaychuk: |Blaze|: you dont get much of a Rails feel from express [17:24] jeromegn: EyePulp: Sorry if I'm not being clear on some of the terms I use, I'm autodidactic and don't know all the proper words to use at the right time ;) [17:24] tjholowaychuk: it is much closer to sinatra [17:24] zylo has joined the channel [17:24] bradleymeck: tjholowaychuck, any chance of getting stylus/jade to use the async definefrom commonjs? it would make porting much easier between SS and CS [17:25] |Blaze|: tjholowaychuk: ok, thx [17:25] gorakhargosh has left the channel [17:25] tjholowaychuk: bradleymeck: meh, thats the thing, I dont like making (many) special exceptions just for CS [17:25] tjholowaychuk: I would rather statically bundle into a single file [17:26] bradleymeck: fair enough... mmm [17:26] tjholowaychuk: which would also allow me to apply logic to how some things work, like in jade the code compiling "- each" would have to differ from CS to SS, not a huge deal but I would prefer to optimize for node [17:26] bradleymeck: the one issue is you could never do a dynamic require (from a variable etc) [17:26] tjholowaychuk: would be awesome to have that though, was going to look into it last night but got busy with other stuff [17:27] tjholowaychuk: yeah for sure [17:27] tjholowaychuk: definitely limitations [17:27] sriley: i still fail to see the point in this new fad of making up new languages like cs, jade, etc [17:28] tjholowaychuk: you can do a lot of neat things with jade [17:28] ajpiaNOU has joined the channel [17:28] sriley: its just a harder to read form of html [17:28] tjholowaychuk: we transparently take the link(rel='stylesheet') etc in our templates in production and swap them out for a single compiled file [17:29] tjholowaychuk: among other things [17:29] warz: ive tried several of them, but i find myself always reverting back to html/css [17:29] squeeks: sriley: semantic templating engines are also a right pain in the arse. [17:29] tjholowaychuk: like injecting CSRF support into forms [17:29] tjholowaychuk: less developer fail [17:29] tjholowaychuk: for example now that we switched to stylus with transparent vendor support [17:29] tjholowaychuk: we dont have ~10 spots where someone forgot a few of the vendors etc [17:30] tjholowaychuk: lots of flexibility [17:30] Throlkim has joined the channel [17:30] sriley: but a 1000% increase in maintenance costs, if you hire a frontend developer they will certainly not know jade but will know html [17:31] squeeks: sriley: and if they change the structure of the markup? semantic engines will fail. If you use a non-meta templating engine, they have to know exactly how your javascript is setup. [17:31] tjholowaychuk: they both have pros/cons [17:32] tjholowaychuk: just dont hire people that cannot adapt or learn [17:32] JojoBoss has joined the channel [17:32] tim_smart: http://lesscss.org/ is quite nice. [17:32] sriley: huh? jade will still compile to html so its gonna be exactly the same [17:32] tjholowaychuk: jade is geared towards developers [17:32] tim_smart: less + html [17:32] tjholowaychuk: designers can just use ejs or something [17:32] tjholowaychuk: tim_smart: http://learnboost.github.com/stylus/ [17:32] sriley: just means its a lot more painful to maintain, plus when jade is no longer developer youre kinda stumped [17:32] pauls has joined the channel [17:33] tjholowaychuk: sriley: well I wrote it lol so I dont have to worry about that [17:33] tim_smart: tjholowaychuk: less is pretty much backwards compatible. Is stylus? [17:33] sriley: designers shouldnt be touching html, they produce an image, a frontend developer produces the html [17:33] tjholowaychuk: yeah exactly [17:33] sriley: and youre still gonne be developing it in 5 years time? [17:33] tjholowaychuk: so devs can use whatever they feel makes them more productive [17:33] seivan: haha [17:34] tjholowaychuk: sriley: its open source, that is irrelevant really [17:34] tjholowaychuk: it works [17:34] squeeks: sriley: because every shop is completely decoupled like that. [17:34] seivan: tjholowaychuk: What kind of node docs/guides resource do you got for learning. I feel like node is quite the mess. [17:34] hobs: well squeeks everyone has millions to segment their staff [17:34] bradleymeck: sriley if i could have another dev just do frontend i would be soo happy :( [17:34] squeeks: sriley: I dunno where you work, but I am the designer, the front end, the back end, and the sys admin. [17:34] sriley: squeeks: most large places are, design and development are different sides of the brain, rarely can someone do both well [17:34] Vertice: all i have to say is that hbs/handlebars/mustache is fucking atrocious [17:34] tjholowaychuk: sriley: nearly our entire team does both [17:34] tjholowaychuk: we have no designers [17:35] seivan: with JS; you can do both I guess. [17:35] tjholowaychuk: we all style, write the templates, write the code [17:35] sriley: and theres really too much to know about fe and be to be good at both [17:35] tjholowaychuk: not really [17:35] tjholowaychuk: pretty basic [17:35] tjholowaychuk: i started as a designer [17:35] tjholowaychuk: for my first ~5 years [17:35] sriley: performance, accessibiltiy etc [17:35] tjholowaychuk: but anyway, work to do, later. [17:35] Vertice: i agree with tj on this .. web development is fast becoming a place where you have to do a bit of everything to get by [17:36] squeeks: sriley: jack of all trades, master of none, nobody is disagreeing with you. But the reality is that such role decoupling in IT and design is not the norm. [17:36] tjholowaychuk: Vertice: yeah you really do [17:36] wankdanker has joined the channel [17:36] Vertice: the split between designer / developer is FAST disappearing [17:36] seivan: How do you do a multiline string? [17:36] seivan: Say a long SQL query [17:36] bradleymeck: i just want to see CSS's exception list get smaller instead of how atrocious it is now [17:36] davidc_: LEARN JS seivan [17:36] squeeks: Vertice: the split, or rather, the a blurring of the line? [17:36] Vertice: sure. blurring works too [17:37] bradleymeck: seivan, use the + operator with \n at end of each line, more maintainable than multiline strings [17:37] seivan: bradleymeck: thanks [17:37] seivan: So I guess @ is the multiline string in js [17:38] bradleymeck: nope [17:38] tjholowaychuk: @? [17:38] seivan: Ops [17:38] seivan: nvm [17:38] seivan: http://www.componentart.com/community/blogs/jovan/archive/2007/10/17/multiline-strings-in-javascript.aspx [17:38] abraham has joined the channel [17:38] davidc_: I guess that's the first result you got for "multiline strings javascript" [17:38] seivan: Yeah :D [17:38] jeromegn: tjholowaychuk: Frick... been wanting this from SASS for a long time! rgba(#ffcc00, 0.5) [17:39] jeromegn: I guess I need to learn that syntax now ;) [17:39] tjholowaychuk: jeromegn: :) [17:39] tjholowaychuk: stylus has way more features [17:39] tjholowaychuk: than any other engine I have seen [17:39] seivan: jeromegn: scss has that [17:39] tjholowaychuk: just released a new version, doing a screencast later [17:39] tjholowaychuk: yup I believe ruby's sass has that [17:39] jeromegn: seivan: Hmm, I didn't see it I guess :( [17:39] seivan: compass-style.org or something [17:39] jeromegn: yea [17:39] seivan: Man js is a pain [17:39] jeromegn: been using the bta [17:40] jeromegn: *beta [17:40] seivan: ugh.. is there a way to get node to work with coffeescript, or do I have to compile my coffee to js, then have node do it's magic? [17:40] maushu has joined the channel [17:41] brian_irish: seivan: i'm sure i saw a node module for coffeescript [17:41] maushu: So, no mssql clients. [17:41] seivan: maushu: redis is all you need [17:41] mies has joined the channel [17:41] davidc_: seivan: npm install coffee-script [17:41] seivan: yeah I got it installed [17:41] maushu: seivan: Not if you want to port something that already has data in mssql. [17:42] seivan: I am wondering if I can just run with coffee without having to watch the folder for compiling [17:42] tim_smart has joined the channel [17:42] bradleymeck: tjholowaychuk if only you could deal w/ that parens needed for division [17:42] wink_: maushu: it's a little rough around the egdes, but check out https://github.com/w1nk/node-odbc [17:42] tjholowaychuk: bradleymeck: what? [17:42] wink_: i use it for mssql connectivity [17:42] dmcquay has joined the channel [17:42] bradleymeck: font (1.4em/1.5) [17:42] maushu: Hmm, that could work. [17:43] tjholowaychuk: bradleymeck: haha yeah [17:43] tjholowaychuk: sucks [17:43] tjholowaychuk: stupid css [17:43] tjholowaychuk: hate it [17:43] davidascher has joined the channel [17:43] tjholowaychuk: bradleymeck: only in property values though [17:43] tjholowaychuk: otherwise / does not need parens [17:43] TomY_ has joined the channel [17:43] tjholowaychuk: its all contextual [17:43] tjholowaychuk: stylus is an amazing feat of clusterfuckage [17:43] aurynn: CSS can be a pain [17:43] tahu: anybody here uses node-imap? [17:44] maushu: wink_: It will be... interesting... to put mssql drivers in linux. [17:44] wink_: maushi: it works :p [17:44] wink_: the freetds drivers work well in fact [17:45] seivan: hmm [17:45] seivan: How does one get ./bin/node_coffee -r ....coffee [17:45] maushi: I will have to try it. [17:45] seivan: node_coffee can't find it with npm [17:45] wink_: i've not tried hitting an oracle db with it, but if you get unixodbc setup correctly it should be able to [17:46] Coal has joined the channel [17:46] wink_: i used it for mysql/mssql/postgres [17:46] davidc_: wink_: the only problem is that freetds is outdated of about 5 years :-) [17:46] yozgrahame has joined the channel [17:47] maushi: davidc_: No worries, it's not like anyone uses sql server 2k8. [17:47] davidc_: But I've also used it for years and it was great. [17:47] davidc_: Well great considering that it was to connect to sql-server. [17:47] wink_: did 2k8 change the underlying protocol? [17:47] sveimac has joined the channel [17:48] wink_: if they're still using TDS, freetds should still work for most things [17:48] maushi: If it did, it was after those "about 5 years", that is why I mentioned it. [17:48] davidc_: wink_: I'm not sure actually, I can't remember. I do remember having some encrypted connection issue. [17:48] Sebmaster has joined the channel [17:49] wink_: ah ok, yeah throw ssl into the mix and all bets are off [17:49] wink_: or whatever they're using to secure the link [17:49] davidc_: And I am not convinced you can connect to Azure with freetds [17:49] davidc_: yeah it's ssl :) [17:50] langworthy has joined the channel [17:50] nmtmason has joined the channel [17:50] wink_: looks like mssql 2008 uses TDS 8.0 which should work with freetds a-ok [17:50] wink_: barring any horrible ssl issues ;p [17:50] davidc_: :) [17:51] davidc_: And I can't imagine MS changing protocol. They would have to go through humongus hoops of the legal system and the various government organisation that rely on sql server and this would take years :) [17:52] colinclark has joined the channel [17:55] aurynn: I really need to get postgres-js ported to strtok [17:56] aurynn: ... which means I need to learn strtok. hm [17:57] warz: hrm. time to port this over to nodejs - https://github.com/connectme/redis_autocomplete/blob/master/lib/redis_autocomplete.rb [17:59] godfrey_ has joined the channel [17:59] kjeldahl has joined the channel [18:00] devrim1 has joined the channel [18:00] k04n has joined the channel [18:00] k04n: hey, does anyone know if something changed with packages in 0.4.0 [18:00] k04n: some things wont work, for example sibilant, "Cannot find module sibilant/cli" [18:00] tiemonster has left the channel [18:01] joshpeek: k04n: just posted a issue related to that https://github.com/isaacs/npm/issues/613 [18:02] k04n: joshpeek: is there a way to hack it to work? [18:02] k04n: i mucked around a little but im not too familiar with node internals [18:02] k04n: or maybe something simpler, like adding a bunch of things to NODE_PATH or something [18:03] MikhX has joined the channel [18:03] joshpeek: k04n: try require "sibilant/lib/cli" [18:03] k04n: hmm, that doesnt seem to work either [18:04] Max-Might has joined the channel [18:04] joshpeek: back off of npm 0.3 :( [18:04] k04n: yeah... [18:04] k04n: i was afraid that might be the case [18:05] k04n: its a shame really [18:06] seivan: do I need to do require.paths.unshift(__dirname + "/folder"); in later versions of node? [18:07] EyePulp: so with socket.io - what's the clean and proper way to terminate a connection programatically? [18:07] EyePulp: either on the client or sever side? [18:09] jano has joined the channel [18:09] dahankzter has joined the channel [18:11] jano_ has joined the channel [18:11] olauzon has joined the channel [18:11] Kingdutch has joined the channel [18:13] void__ has joined the channel [18:13] ryanfitz has joined the channel [18:14] dguttman has joined the channel [18:15] seivan: I was playing around with Socket.io and telnetted to a server, but it closes connection when I write something, any idea on how to debug that? [18:15] raak has joined the channel [18:15] seivan: added console.log in the callbacks but nada. [18:15] seivan: sys.inspect() as well [18:16] jetienne: seivan: what do you mean telnetted? [18:16] seivan: telnet localhost 8080 :) https://gist.github.com/51b20e6f51bd6e9f926c [18:17] seivan: works with eventmachine [18:18] rwaldron has joined the channel [18:18] aguynamedben has joined the channel [18:19] rwaldron has left the channel [18:20] erichynds has joined the channel [18:23] mies has joined the channel [18:23] amerine has joined the channel [18:23] erichynds: anyone familiar with promised i/o that can help me shorten my syntax? http://pastie.org/1579672 [18:24] msch has joined the channel [18:27] mbrochh has joined the channel [18:28] bartt has joined the channel [18:29] dgathright has joined the channel [18:29] trotter has joined the channel [18:29] RichardJ: yay, just got allowed to build the first simple node project for the company i work for :) [18:29] admc has joined the channel [18:30] RichardJ: already done, 50 lines of code [18:30] Sebmaster: RichardJ: What about? [18:30] RichardJ: Sebmaster: a transparent proxy, basically [18:30] devdazed: hi all, if i create an npm package, what is the proper channel to advertise it to the community? [18:34] NuckingFuts has joined the channel [18:36] seivan: ugh [18:36] seivan: socket.io is it broken? The server version at least [18:37] seivan: https://gist.github.com/46648c6a429fe5ce78b5 can connect with telnet, but as soon as I write, telnet get [18:37] seivan: gets disconnected [18:38] derferman has joined the channel [18:38] travg: what is it devdazed? [18:38] langworthy has joined the channel [18:38] devdazed: travg: an api consumer for the BoxCar push notification service [18:39] ncb000gt: devdazed: irc, nodejs list, twitter [18:39] derferman has joined the channel [18:39] devdazed: the nodejs list is the google group? [18:39] ncb000gt: devdazed: aye [18:39] ncb000gt: start it with [ANN] though so people know of your shameless self promotion [18:39] ncb000gt: <.< [18:39] ncb000gt: :) [18:39] devdazed: well here is it, for all of you who use BoxCar (if you havent heard of it you should check it out), I wrote an api wrapper for it: [18:39] MikhX has joined the channel [18:39] devdazed: https://github.com/devdazed/boxcar-api [18:40] isaacs has joined the channel [18:40] constantx has joined the channel [18:40] constantx: hello all [18:40] constantx: anybody working with socket.io + node? i need some help :) [18:41] devdazed: ncb000gt: what does [ANN] mean? [18:41] ncb000gt: devdazed: announcement [18:41] ncb000gt: it's a helpful trigger in a subject line [18:42] devdazed: thanks [18:43] dylang: isaacs: updated npm and now some dependencies aren't working, including one i built. is there a guide to the changes? [18:43] CIA-39: node: 03Ryan Dahl 07v0.4 * raac5cbe 10/ (3 files in 3 dirs): [18:43] CIA-39: node: HTTP Agent sockets should not reconnect on error [18:43] CIA-39: node: Closes GH-684. - http://bit.ly/gxSxpJ [18:43] CIA-39: node: 03isaacs 07v0.4 * rf8defa3 10/ (4 files in 4 dirs): [18:43] CIA-39: node: package.json main as indexed subdir [18:43] CIA-39: node: Closes GH-686. - http://bit.ly/eR6U8b [18:44] mikedeboer has joined the channel [18:45] isaacs: dylang: Three things seem to be the major hurdles: 1) package.json must be json (quoted keys and all) 2) must have a "main" module to be used with require(), and 3) install stuff with root [18:45] ncb000gt: devdazed: sure! [18:45] CIA-39: node: 03Tom Hughes 07v0.4 * r6a594fe 10/ cmake/CTestCustom.cmake : [18:45] CIA-39: node: cmake: set pre and post memcheck commands. [18:45] CIA-39: node: We need to clear out and re-create the tmp directory when running [18:45] CIA-39: node: valgrind just like for the normal test run. - http://bit.ly/fcAHpo [18:46] CIA-39: node: 03Tom Hughes 07v0.4 * r8bedde4 10/ cmake/configure.cmake : cmake: Fix mac snow leopard build. - http://bit.ly/gZ5mnr [18:46] CIA-39: node: 03Tom Hughes 07v0.4 * r3313ff1 10/ (CMakeLists.txt cmake/configure.cmake cmake/node_build.cmake): cmake: dtrace support. - http://bit.ly/fMpnIp [18:46] CIA-39: node: 03Tom Hughes 07v0.4 * rde2686c 10/ (cmake/configure.cmake cmake/node_build.cmake): cmake: cleanup. - http://bit.ly/gibsXF [18:46] CIA-39: node: 03Tom Hughes 07v0.4 * r9d49c93 10/ (CMakeLists.txt cmake/v8_build.cmake): cmake: Add gdbjit and oprofile options. - http://bit.ly/g0LfgD [18:46] dylang: isaacs: thanks. will fix my own stuff now. [18:46] eee_c has joined the channel [18:48] constantx has joined the channel [18:48] devaholic: constantx: what is your problem?? [18:48] constantx: i'm using socket.io with node [18:49] constantx: i can see the client connected, but the broadcast event is not firing to the client [18:50] alexandere has joined the channel [18:50] devaholic: do you have your code up somewhere? [18:50] perezd has joined the channel [18:51] constantx: http://jsfiddle.net/Jwu6N/ [18:51] dylang: isaacs: is "main": "./lib" good enough for the main module? In /lib is an index.js. Or does it need to be something like /main/main.js? [18:51] admc has joined the channel [18:52] m14t has joined the channel [18:52] gJ|Alex has joined the channel [18:52] isaacs: dylang: for the moment, do "main":"./lib/index.js" [18:52] gf3 has joined the channel [18:52] isaacs: dylang: see that patch that just landed up a few lines^? [18:52] isaacs: dylang: the one from me, before tom's? [18:52] isaacs: it fixes main:"./lib" where there's a ./lib/index.js [18:53] dylang: isaacs: cool, thanks. should i wait for the new npm deploy rather than publish soon-to-be-redundant updates? [18:53] mjijackson has joined the channel [18:54] constantx: @devaholic i can receive message from client on the node server, but client.send and client.broadcast doesnt seem to do anything [18:54] devaholic: constantx: try socket.broadcast [18:54] maushu has joined the channel [18:55] jetienne: i love this dotjs... willing to do it in node :) [18:55] andrzejsliwa has joined the channel [18:55] constantx: Object [object Object] has no method 'send' [18:56] constantx: socket doesnt have method send... [18:56] devaholic: broadcast [18:56] constantx: oh nm [18:57] andrzejsliwa has left the channel [18:58] srid has joined the channel [18:58] srid has joined the channel [18:58] devaholic: fyi, ive found broadcast isnt too useful in a big app [18:58] constantx: Cannot call method 'apply' of undefined [18:58] constantx: socket.io.js line 881 [18:59] mikedeboer has joined the channel [19:00] devaholic: are you passing something undefined? [19:01] constantx: var msg = { message: [client.sessionId, keyword]}; [19:01] constantx: client.broadcast(msg); [19:01] tfe_ has joined the channel [19:01] tfe_ has joined the channel [19:02] devaholic: try json stringify [19:02] devaholic: not sure [19:03] devaholic: oh, woops, you are still broadcasting with client [19:03] constantx: nah, i just changed that back.. [19:03] devaholic: are you on the server side or client side [19:04] razvandimescu has joined the channel [19:04] jetienne: am i the only one to hate the new 0.4.0 docs ? [19:04] tjholowaychuk: I like them [19:04] constantx: broadcast on the server side [19:05] jetienne: tjholowaychuk: what make me scared is that i think you are serious :) [19:05] constantx: client side has a socket.on('message', doSomethingHere); [19:05] tbranyen: jetienne: i love them [19:05] tjholowaychuk: jetienne: I am serious lol way better than before [19:05] tbranyen: more minimalistic [19:05] jetienne: ACTION is not sure anymore :) [19:05] devaholic: yes okay [19:05] devaholic: lol [19:05] devaholic: just making sure [19:05] tbranyen: albeit inconsistent with the nodejs.org look [19:06] devaholic: that should work then yeah? [19:06] dgathright_ has joined the channel [19:06] constantx: no, client still not receiving the broadcast [19:07] constantx: socket.io-node doc says client.broadcast is the same as socket.broadcast... [19:07] devaholic: socket.broadcast(msg); [19:07] constantx: that's what I'm having [19:08] lahwran has joined the channel [19:08] devaholic: well shoot [19:08] constantx: well, actually [19:09] devaholic: JSON.stringify() ? [19:09] constantx: i think the client is receiving the broadcast, but the client socket.io.js is having an uncaught error [19:12] SvenDowideit has joined the channel [19:14] ph^ has joined the channel [19:14] constantx: arg, will come back to this later [19:15] constantx: thanks for the help @devaholic [19:16] constantx has joined the channel [19:16] raak_ has joined the channel [19:17] dgathright has joined the channel [19:17] milez: can anyone have a look? trivial socket.io example fails - http://pastebin.com/eaQkya95 [19:18] drSproinky has joined the channel [19:19] jashkenas has joined the channel [19:19] pdkl has joined the channel [19:20] raak has joined the channel [19:20] enr^ has joined the channel [19:20] pdkl: on ubuntu 10.10, should i install node.js from source, or is there a debian pkg for 0.4.0 & npm [19:21] msch_ has joined the channel [19:22] msch_ has joined the channel [19:22] figital has joined the channel [19:23] tim_smart has joined the channel [19:24] jetienne: q. node ensure the ~ expansion in the file open ? or do i have to do it myself ? [19:25] altamic has joined the channel [19:25] altamic has joined the channel [19:25] tjholowaychuk: jetienne: gotta do it your self [19:25] mikeal has joined the channel [19:26] jiggliemon has joined the channel [19:26] devaholic: milez: what fails [19:26] jiggliemon: NPM keeps being a jerk. How do I NPM w/o Sudo? [19:26] ncb000gt: jiggliemon: you don't anymore [19:27] jiggliemon: sudo is OK? [19:27] ncb000gt: with npm 0.3.0 you use sudo and it downgrades the permissions on scripts [19:27] ncb000gt: so it's safe to use sudo [19:27] jiggliemon: Ahhhh [19:27] ncb000gt: :) [19:27] jetienne: tjholowaychuk: ok process.env.HOME+"/.js/" then [19:27] tjholowaychuk: yup [19:27] constantx has joined the channel [19:27] jiggliemon: So next time npm bitches, i can tell it to F-off [19:28] ncb000gt: what's it bitching about? [19:28] ncb000gt: unpacking? [19:28] jiggliemon: thanks again ncb000gt. Not about permissions to /usr/local [19:28] jiggliemon: *about [19:28] ncb000gt: yea [19:28] ncb000gt: sudo should be fine :) [19:28] jiggliemon: Nice. [19:28] ncb000gt: assuming you've updated to 0.3.0 [19:28] ncb000gt: :) [19:29] jiggliemon: I got..... [19:29] jiggliemon: npm info using npm@0.2.18 [19:29] ncb000gt: npm update npm [19:29] jiggliemon: word. [19:29] ncb000gt: welllll [19:29] ncb000gt: sec [19:29] ncb000gt: are you using node 0.4.0? [19:29] raak has joined the channel [19:29] jiggliemon: yes [19:29] ncb000gt: aha ok [19:29] ncb000gt: then yes [19:29] ncb000gt: do that [19:29] ncb000gt: :) [19:29] jiggliemon: just installing it at work [19:29] ncb000gt: cool [19:29] isaacs: jiggliemon: you may have to `curl http://npmjs.org/install.sh | sh` to make it work [19:30] isaacs: jiggliemon: if the update doens't work as-is [19:30] jiggliemon: sudo !! [19:30] jiggliemon: It's all good now. [19:30] jiggliemon: Lest isaacs is trying to virus my computer - I should be OK. [19:30] EyePulp: he's known for that... =P [19:31] ncb000gt: An isaacs virus would just look for all your JS files and strip the semi-colons [19:31] CIA-39: node: 03Ryan Dahl 07v0.4 * r26e580b 10/ test/pummel/test-timers.js : [19:31] CIA-39: node: Use console.error in test-timers [19:31] CIA-39: node: In attempt to understand buildbot failures. - http://bit.ly/hmIMEf [19:31] Sebmaster: isaacs never writes semilicons oO [19:31] CIA-39: node: 03Ryan Dahl 07v0.4 * rebfc90b 10/ test/simple/test-http-eof-before-eom.js : Remove test-http-eof-before-eom - wasn't testing anything important - http://bit.ly/i5NrxU [19:32] ncb000gt: I feel a chuck norris meme coming on [19:32] ncb000gt: erm, chuck norris-like [19:32] jiggliemon: "not looking for work, kthx" makes me sketchy. [19:32] isaacs: Sebmaster: well, that's not true. i'm ok wiht semicolons. it's npm that hates them. [19:32] ncb000gt: lol [19:32] Sebmaster: why? [19:32] isaacs: Sebmaster: look at my contributions to node. full of semicolons. [19:33] EyePulp: how about sad stallmans? [19:33] Sebmaster: isaacs: because of node code-style :p [19:33] EyePulp: )}; [19:33] ncb000gt: EyePulp: :) [19:33] sriley has joined the channel [19:33] ncb000gt: always sad [19:33] isaacs: }); is also sad [19:33] isaacs: or }; [19:33] jiggliemon: I saw __proto__ in some of this Node js code. It made me happy. [19:33] drSproinky has joined the channel [19:34] EyePulp: I think his parents were killed by a callback [19:34] EyePulp: which is why he's so sad [19:34] ncb000gt: hah [19:34] b5avage has joined the channel [19:34] Sebmaster: paar stallman :( [19:34] tilgovi has joined the channel [19:34] Sebmaster: *poor [19:34] b5avage has left the channel [19:35] raak_ has joined the channel [19:35] Phyllio has joined the channel [19:35] pdkl has left the channel [19:38] pyrony has joined the channel [19:40] howardr has joined the channel [19:41] daveluke has joined the channel [19:41] daveluke: o hai [19:41] daveluke: is there a cmd i can execute to install node.js or do i have to upload the tar to my server [19:41] howardr: i am having some npm issues. none of my installed packages can be used in scripts. "sudo npm ls installed" has correct list but "npm ls installed" doesn't have any packages installed [19:42] ncb000gt: daveluke: i'd recommend uploading it to the server [19:42] dustinwhittle has joined the channel [19:42] ROBOd_ has joined the channel [19:43] ncb000gt: howardr: which version of npm and node are you using? [19:43] howardr: 3.08 [19:43] howardr: setting up a new ec2 instance [19:43] isaacs: howardr: what's 3.08? [19:43] howardr: sorry [19:43] howardr: 0.3.0-8 [19:43] arlolra has joined the channel [19:43] ncb000gt: and 0.4.0 of node? [19:43] isaacs: oh, ok [19:44] howardr: npm [19:44] isaacs: great [19:44] howardr: yes 0.4.0 of node [19:44] ph^ has joined the channel [19:45] raak has joined the channel [19:46] bingomanatee has joined the channel [19:47] alek_br has joined the channel [19:49] devinus: the most anoying thing in the world is working with programmers that don't give a fuck whether their formatting is consistent or not [19:49] tjholowaychuk: devinus: haha agreed [19:50] tjholowaychuk: at least per project [19:50] tjholowaychuk: some of mine are still sencha-style [19:50] tjholowaychuk: but ill eventually get around to fixing them [19:50] raak_ has joined the channel [19:51] muk_mb has joined the channel [19:54] howardr: isaacs: do you think it a permisions issue [19:54] mikeal: hrm [19:54] mikeal: anyone here use paperboy? [19:54] howardr: first time with npm 3.0 [19:54] raak has joined the channel [19:54] arlolra: ryah: http://arlolra.no.de/startup/ [19:54] ncb000gt: mikeal: we're using it in a test server, but I've used it before [19:54] comster: I've looked at paperboy [19:55] mikeal: you ever run it for long periods of time? [19:55] ncb000gt: howardr: the ec2 instance hasn't had npm on it before right, you mentioned new instance [19:55] mikeal: i'm wondering how it handles load and if it has any issues as a long running process [19:55] howardr: yes [19:55] ncb000gt: mikeal: nah i can't say i have [19:55] mikeal: ok [19:55] mikeal: i wish felix was around [19:56] mikeal: i think he's using it for something [19:56] springify has joined the channel [19:56] blowery has joined the channel [19:56] ncb000gt: howardr: that's strange. you can write to /usr/local/lib/node? [19:57] __tosh has joined the channel [19:57] markwubben has joined the channel [19:58] howardr: ncb000gt: no [19:58] ncb000gt: howardr: even with sudo? [19:58] howardr: yes with sudo [19:58] isaacs: howardr: maybe root and non-root are getting different npm's, or different nodes? [19:58] ryah: arlolra: !! [19:58] ncb000gt: ok [20:00] howardr: isaacs: ah..sudo which node -> "/usr/bin/node" and which node -> "/usr/local/bin/node" [20:00] ryah: arlolra: that's awesome [20:00] micheil has joined the channel [20:00] ncb000gt: hmmm [20:00] ncb000gt: that could be a problem [20:00] ncb000gt: :) [20:00] isaacs: howardr: ok, great. get rid of one of those [20:00] arlolra: ryah: i'll do one for v8 when you merge that [20:01] arlolra: i have to break this all apart though ... to account for the different branches [20:01] ryah: arlolra: i love smooth reports [20:01] malkomalko has joined the channel [20:01] micheil: ryah: is test-tls-throttle failing on 0.4.0 at the moment? [20:01] howardr: ah i symlinks /usr/bin/node to the other one to get around a permissions thing [20:01] howardr: didnt realize it would cause other issues [20:01] micheil: or, is it meant to be failing, because I'm having it fail on ubuntu [20:02] raak_ has joined the channel [20:02] ryah: micheil: no [20:02] ziro` has joined the channel [20:02] arlolra: ryah: any suggestions? wants? [20:02] ryah: micheil: although i noticed it was really slow on my other computer [20:02] ryah: arlolra: v8 bench :) [20:02] arlolra: merge it to master [20:02] springify has joined the channel [20:03] sleeplessinc: nodeconf sold out. [sniff] [20:03] ryah: arlolra: would be nice to get memory usage on startup [20:03] micheil: okay. [20:03] micheil: i get: [20:03] micheil: body.length: 12582912 [20:03] micheil: recvCount: 126976 [20:03] micheil: and a Timeout [20:03] fumanchu182 has joined the channel [20:04] howardr: isaac: thanks [20:04] howardr: ncb000gt: thanks [20:04] springify has joined the channel [20:04] isaacs: howardr: yeah, npm specifically does *not* resolve the symlink to node's executable because it causes breaking behavior with Homebrew. [20:06] micheil: ryah: is sh1mmer about? [20:07] ryah: micheil: he is [20:07] nivoc has joined the channel [20:07] springify has joined the channel [20:08] raak has joined the channel [20:08] patcito_ has joined the channel [20:09] micheil: hmm, okay, could you get him to come online / do you have an email address for him? [20:09] ryah: micheil: tom@joyent.com [20:09] micheil: k [20:09] wadey has joined the channel [20:10] aguynamedben has joined the channel [20:10] raak_ has joined the channel [20:10] stagas has joined the channel [20:10] malkomalko: has anyone seen weird bugs with dates, and utc before? possibly with express? My dev/production machine are both in the same timezone, have the same system time, and doing a +new Date(date) from the node console both give me the same unix time stamp.. however on my production machine, it subtracts 5 hours (the utc offset) from the timestamp [20:10] rburhum has joined the channel [20:14] erichynds has left the channel [20:14] tjholowaychuk: malkomalko: express does not touch anything to do with dates [20:14] mikeal has joined the channel [20:14] malkomalko: didn't think so... this is weird, thanks [20:15] __tosh has joined the channel [20:15] tjholowaychuk: ive heard of people having that issue a lot though for sessions etc [20:15] tjholowaychuk: or something similar [20:16] micheil: tjholowaychuk: hmm.. did I mention that I'd fill you in on what I meant by something when I got to SF? [20:16] malkomalko: just putting console.log(+new Date('02/18/2011 5:00 PM')); behind a route shows different timestamps on local vs production [20:16] malkomalko: same version of node, same timezone on both boxes [20:16] tjholowaychuk: micheil: no clue [20:16] malkomalko: can't explain it [20:16] tjholowaychuk: i live in canada though :p [20:16] micheil: tjholowaychuk: Okay, well, you know how you're working on cluster? [20:16] tjholowaychuk: yup [20:16] micheil: tjholowaychuk: yeah, I know, it was because I had a flight to catch [20:17] micheil: tjholowaychuk: well, I'm wanting to use cluster, but I'm needing to proxy to upstream http.Servers [20:17] tjholowaychuk: ah [20:17] tjholowaychuk: yeah I do not proxy [20:17] tjholowaychuk: but you could have a cluster of proxies [20:17] tjholowaychuk: haha [20:17] micheil: can you? [20:17] tjholowaychuk: i dont want to [20:17] tjholowaychuk: far slower [20:17] micheil: like, would it be possible to write a middleware that would proxy? [20:18] tjholowaychuk: im sure you could whip something up [20:18] micheil: okay [20:18] tjholowaychuk: or like i said have your cluster server as a node proxy [20:18] tjholowaychuk: to other ones [20:18] micheil: well, my idea is that I have two domains, I want to run them both on the same machine, so have cluster on :80 [20:18] tjholowaychuk: a proxy would give me some cool plugin capabilities [20:18] tjholowaychuk: but yeah to slow [20:19] micheil: and then the sites on individual ports [20:19] micheil: then to just forward connections up to the relevant http.servers based on Host header or similar [20:19] tjholowaychuk: Master#server is the server passed [20:19] tjholowaychuk: yup [20:19] tjholowaychuk: totally [20:20] tjholowaychuk: alternatively you could use connect's vhost [20:20] tjholowaychuk: basically the same overhead [20:20] tjholowaychuk: unless you have clusters of clusters [20:20] micheil: even if I just make a net.Stream to the next server and buffer headers [20:20] tosh has joined the channel [20:20] nivoc has joined the channel [20:20] micheil: may eventually have cluster running on one of the upstreams [20:21] tjholowaychuk: i dont know if there would be much of a benefit doing it at the cluster level instead of connect [20:21] micheil: well, my servers are only http.Server or tls.Server's [20:21] micheil: erm [20:21] micheil: https.Servers [20:22] tjholowaychuk: just have app1.js app2.js server.js <-- would have vhost('foo.com', app1) vhost('bar.com', app2) [20:22] micheil: they are webhook endpoints [20:22] tjholowaychuk: yeah [20:22] tjholowaychuk: you can still use connect [20:22] micheil: so, server.js uses connect? [20:22] tjholowaychuk: yeah server.js would tie the two together [20:22] tjholowaychuk: so they dont have to know about each other [20:22] micheil: and then the app1 and app2 would just be the http.Server's? [20:22] tjholowaychuk: yup [20:22] micheil: okay, cool [20:24] kevwil has joined the channel [20:25] tjholowaychuk: micheil: adding an example to cluster [20:25] blowery has joined the channel [20:25] daniellindsley has joined the channel [20:28] patcito has joined the channel [20:28] tjholowaychuk: micheil: https://github.com/LearnBoost/cluster/commit/7ede5b13a9b829ff25557ec0d6f483f6bd45ada8 [20:28] micheil: k [20:29] martypdx has joined the channel [20:30] tjholowaychuk: easy as pieeeee [20:31] martypdx: I'm trying to use jade.render on a string, but get message: 'Jade:2\n 1. \'ul\'\n 2. \' li item 1\'\n\nInvalid indentation, got 2 expected 1.', [20:31] martypdx: the input is coming from ace editor [20:31] ncb000gt: martypdx: use 2 spaces [20:31] martypdx: so replace tab with 2 spaces? [20:32] ncb000gt: yes [20:32] tjholowaychuk: martypdx: tabs convert to 2 spaces [20:32] martypdx: thx [20:32] tjholowaychuk: however if you have soft tabs [20:32] tjholowaychuk: it might be giving you 4 [20:32] tjholowaychuk: (spaces) [20:34] __tosh has joined the channel [20:35] jeromegn: tjholowaychuk: re vhosts with cluster -> woot! so basically I could replace nginx with that stuff? ;) [20:35] tjholowaychuk: jeromegn: yup! [20:35] confoocious has joined the channel [20:35] confoocious has joined the channel [20:35] jeromegn: rad [20:35] tjholowaychuk: just have a separate file and require() in each app [20:35] jeromegn: javascript went from browser-only to being used in every context [20:36] tjholowaychuk: yeah man [20:36] Kingdutch: Guys, should I put my simple fileserver on github for all to see, or are there too many? [20:36] ncb000gt: it's awesome [20:36] TooTallNate has joined the channel [20:36] cnu has joined the channel [20:36] ncb000gt: Kingdutch: entirely up to you [20:36] Kingdutch: (It's just a simple script to serve from whatever directory you specify on start-up, no framework no nothing) [20:36] Kingdutch: ncb000gt: Just wanna know if there's interest, otherwise, no point in putting it up there :') [20:37] tjholowaychuk: jeromegn: barely impacts performance either, each vhost server still gets a good 22k rps for a small response [20:38] jeromegn: tjholowaychuk: you mean: it barely creates overhead on your apps? wondering how it would compare to nginx... obviously it lacks a few features? like gzip compression and stuff like that? (haven't checked it out that much I admit) [20:38] Sebmaster: tjholowaychuck: which results do you get without vhosts? [20:38] tjholowaychuk: jeromegn: that stuff would be at the connect level [20:38] Ari-Ugwu has joined the channel [20:38] tjholowaychuk: not cluster [20:39] tjholowaychuk: since cluster is not a proxy [20:39] tjholowaychuk: Sebmaster: I will check [20:39] jeromegn: tjholowaychuk: gotcha [20:39] tjholowaychuk: Sebmaster: an extra 1000 rps [20:39] tjholowaychuk: barely anything [20:40] tjholowaychuk: 22k vs 23k [20:40] tjholowaychuk: not a big deal [20:40] tjholowaychuk: the vhost middleware is like 6 lines [20:40] tjholowaychuk: haha [20:40] Sebmaster: tjholowaychuk: Still a good result [20:40] tjholowaychuk: Sebmaster: yup not bad at all [20:40] Aria has joined the channel [20:40] tjholowaychuk: plus nothing running under a vhost should be huge anyway [20:41] jeromegn: tjholowaychuk: is there a rule of thumb for how many workers to spawn? [20:41] yozgrahame has joined the channel [20:41] tjholowaychuk: jeromegn: if you run 0.4.0 it will use os.cpus().length :) [20:41] tjholowaychuk: otherwise, one per cpu generally [20:41] jeromegn: :) [20:41] tjholowaychuk: shit gotta push the new docs [20:42] aklt has joined the channel [20:42] jeromegn: tjholowaychuk: my server is kind of old anyway, I'd use it for the functionalities (vhost, repl, stats) and the fact that I can code it with JS is so much more interesting than nginx [20:43] tjholowaychuk: jeromegn / Sebmaster: check this slick config out http://learnboost.github.com/cluster/docs/api.html#Master-in-env [20:43] kkaefer: I have a thread in my node program which is /not/ managed by V8 or libeio [20:43] tjholowaychuk: added that to the latest release [20:43] kkaefer: how can I signal the main V8 thread to execute a function? [20:44] jeromegn: yea I saw that, love it. [20:44] tjholowaychuk: fun project [20:44] jeromegn: tjholowaychuk: what do you guys use for deployment? Capistrano? [20:44] jamesarosen has joined the channel [20:44] tjholowaychuk: I felt like a lotttt was missing from the others [20:44] Remoun has joined the channel [20:44] tjholowaychuk: jeromegn: we do a git deploy right now [20:44] tjholowaychuk: but we are working on some custom stuff [20:45] jeromegn: ACTION looks up `git deploy`on google [20:45] tjholowaychuk: jeromegn: its just a remote repo, with a post-receive hook to restart things [20:45] tjholowaychuk: nothing overly fancy [20:45] tjholowaychuk: but no need for git really haha [20:45] Sebmaster: tjholowaychuck: working dir really equals to "/"? Wouldn't be the working dir of the host-process better? [20:45] MikeW: wow. What offers 22k rps? [20:45] tjholowaychuk: Sebmaster: you can set it to whatever you want [20:46] pedrobelo has joined the channel [20:46] tjholowaychuk: MikeW: cluster, spawning a worker per cpu [20:46] Sebmaster: tjholowaychuck: I know, just refering to the default [20:46] nmtmason has joined the channel [20:46] tjholowaychuk: ah [20:47] tjholowaychuk: yeah might make more sense to be the script's dir [20:47] tjholowaychuk: easy to change it to / [20:47] micheil: ryah: what was that makefile directive to glob a bunch of files and do a text replace in them? [20:47] tjholowaychuk: any more opinions on that? I can change it [20:48] Sebmaster: tjholowaychuk: It just makes more sonse to me imo [20:49] tjholowaychuk: Sebmaster: yeah I agree [20:49] tjholowaychuk: although I do think it is bad practice to not utilize absolute paths [20:49] tjholowaychuk: but I think most people will expect what you want [20:49] MikeW: tjholowaychuk: ah https://github.com/learnboost/cluster. Looks cool, wow 22k dynamic requests per sec. I'm really impressed. What kind of hardware? [20:50] tjholowaychuk: MikeW: my macbookpro [20:50] Me1000 has joined the channel [20:50] tjholowaychuk: I think our prod server has 8 cores so double that [20:50] seivan: hmm [20:50] seivan: can Eventmachine deal with that :D [20:50] tmzt: micheil: I'm using a tiny middleware for vhost's but it's intended to serve the same site to both with some minor conditional content, so I just set req.vhost [20:50] MikeW: tjholowaychuk: woweeee [20:51] jeromegn: nginx is far behind on those stats though [20:51] jeromegn: from the benchmarks I've seen... doesn't get over 10K rps [20:52] tjholowaychuk: it should do better [20:52] tjholowaychuk: i would think [20:52] tjholowaychuk: i guess depends what you are doing [20:53] jeromegn: was looking at static sites benchmarks hehe [20:53] seivan: what about sockets [20:53] dmcquay has joined the channel [20:53] seivan: how does node compare to eventmachine in ruby? [20:53] tmzt: ncb000gt: how minimal can an ec2 instance for node be? [20:54] Chainfire has joined the channel [20:54] lukegalea: tmzt: I am running on a micro instance [20:54] sivy has joined the channel [20:55] ncb000gt: tmzt: depends on the needs of your app [20:55] sivy has joined the channel [20:56] admc has joined the channel [20:56] TomsB has joined the channel [20:56] razvandimescu has joined the channel [20:56] TomsB: I need one good example how to write Object in Node and then export it to use in another file. [20:56] TomsB: link anyone? [20:57] bradleymeck: tmzt, i generally dont break free tier for a simple personal site [20:57] Kingdutch: Easiest way to upgrade from 0.3 to 0.4? [20:57] lukegalea: I'm sure there's lots of debate to be had about this.. but given how well Node runs on a micro for me, I'd probably just launch lots of micro instances.. but if you have an enterprisey app with fewer really heavy requests you might want fewer, larger instances. [20:57] bradleymeck: TomsB can you clarify? write JSON? or use in another file via require [20:58] TomsB: via require [20:59] TomsB: var mybook = new Book(); [20:59] lukegalea: TomsB: Check mastering node. http://visionmedia.github.com/masteringnode/ [20:59] lukegalea: it's covered in the first couple chapters.. [20:59] TomsB: ok [21:00] TomsB: It seems to be good. [21:00] TomsB: Ty [21:01] lukegalea: TomsB: tjholowaychuk wrote it.. so.. you know.. thank him :) [21:01] MikeW: tjholowaychuk: I just watched your screencast. Very cool stuff! [21:01] ncb000gt: tjholowaychuk: nice job with that btw- i hadn't looked in wuite a while [21:01] tmzt: hmm, I mean the os installation, just ubuntu server+n+node+npm+git? [21:01] tjholowaychuk: MikeW: which? [21:01] tmzt: and with n I can build on my vps and upload it? [21:01] TomsB: :) [21:01] tjholowaychuk: ncb000gt: havent had time to update it for a longgg time haha [21:01] tjholowaychuk: long long [21:01] ncb000gt: haha [21:01] kkaefer: how can I signal the V8 thread from another thread [21:01] ncb000gt: yea, but still [21:01] MikeW: tjholowaychuk: http://screenr.com/X8v [21:01] kkaefer: to execute a function [21:01] kkaefer: ? [21:01] ncb000gt: a lot of good info for people knew to node [21:02] tjholowaychuk: MikeW: ah :) [21:02] tmzt: just trying to get my new site to alpha [21:02] lukegalea: tmzt: Ya, I think that's all you need. plus something like spark2 or cluster or whatever.. [21:02] lukegalea: something to keep the processes running.. [21:03] tmzt: I'm looking at cluster [21:03] tmzt: how do ip's work on ec2 micro/free? [21:03] lukegalea: tmzt: I found I needed authbind too to allow me to run privileged ports without running as root. [21:03] swistak has joined the channel [21:03] lukegalea: tmzt: for ip's on micro/free - if you grab an elastic IP it's free so long as it's assigned to your instance [21:03] tmzt: not sure what that is, something ec2 specfici? [21:03] yozgrahame has joined the channel [21:04] lukegalea: but if you shut your instance down, it will start costing because "unassigned IPs" cost /hr. [21:04] tmzt: right, but is that something I can use in an a record? [21:04] lukegalea: ya, it's a static IP. [21:04] malkomalko: tjholowaychuk: with cluster and express.. how do you define the env? development/production.. etc [21:04] malkomalko: can't find anything in the docs [21:04] malkomalko: unless I missed it [21:04] tmzt: this is what scares me, so many hidden costs that seem to be there [21:04] lukegalea: they give a static IP and a DNS host record.. and you can have a CNAME to it. [21:04] Sebmaster: malkomalko: NODE_ENV [21:05] tjholowaychuk: malkomalko: NODE_ENV=production [21:05] tjholowaychuk: etc [21:05] tmzt: so you would just RR if you need more than one instance? [21:05] constantx_ has joined the channel [21:05] malkomalko: danke [21:05] malkomalko: figured [21:05] lukegalea: tmzt: I have to run, weekend time. but re: authbind -it's an ubuntu package. nothing to do with ec2. [21:05] tmzt: ok, thanks [21:05] tmzt: whee you located? [21:05] lukegalea: tmzt: toss me an email and we can talk offline. I can document my setup if you like. I'm in Toronto. [21:06] tmzt: cool [21:06] lukegalea: tmzt: luke@ideaforge.org [21:06] lukegalea: have a good weekend everyone! [21:12] devinus: no commit's to node in 3 days? [21:12] devinus: did the repo move? [21:12] Sebmaster: huh? [21:12] ncb000gt: devinus: i believe there were commits earlier today [21:12] devinus: oh guessn ot [21:12] Sebmaster: where are u looking at? [21:12] devinus: Sebmaster: https://github.com/ry/node [21:13] tjholowaychuk: devinus: they are in the 4.0 branch [21:13] tjholowaychuk: got me too [21:13] ncb000gt: yep [21:13] ncb000gt: :) [21:13] Sebmaster: https://github.com/ry/node/commits/v0.4 [21:13] Sebmaster: there ya go [21:13] devinus: oh [21:14] devinus: how's the development cycle in regards to branches going to go now? [21:14] jeromegn: tjholowaychuk: are you working at learnboost now? [21:14] devinus: i was under the impression that even minor numbers where stable [21:14] tjholowaychuk: jeromegn: yup, have been for quite a while now [21:14] ncb000gt: devinus: believe unstable work happens in master [21:14] ncb000gt: minor releases happen in the branches [21:14] ncb000gt: fixes and such [21:15] jeromegn: tjholowaychuk: interesting... I have the most annoying issue with Mongoose, but I wouldn't want to bother you with it ;) [21:15] tjholowaychuk: jeromegn: i havent worked on the new mongoose [21:15] jeromegn: figured [21:15] jeromegn: haven't seen you committing on it heh [21:15] tjholowaychuk: I was helping refactor the old one / write tests n stuff but it was a little messed so guillermo rewrote the whole thing [21:15] tjholowaychuk: I had a good 140 commits actually haha [21:15] tjholowaychuk: but not no more [21:15] jeromegn: oh [21:15] jeromegn: :P [21:16] tjholowaychuk: sometimes a rewrite just makes more sense [21:16] Determinist has joined the channel [21:16] Sebmaster: tjholowaychuk: the "new" mongoose? [21:16] jeromegn: anyway, the issue is as simple as: embedded docs can't have mixedschema as one of their keys or I don't know how to make it work (just throws an error when I push it to the parent document) [21:16] tjholowaychuk: Sebmaster: yeah 1.0 [21:16] jeromegn: Sebmaster: yea that thing was rewritten [21:17] Sebmaster: oh, okay [21:17] tmzt: does mongoose add any runtime overhead over the initial get()? [21:17] devinus: wow node master is a full 2 minor version numbers with it's v8 than chrome dev channel [21:19] pHcF has joined the channel [21:19] devinus: dnode seems wicked [21:22] tanepiper: dnode is wicked [21:22] tanepiper: callbacks ftw [21:23] zylo_ has joined the channel [21:26] AAA_awright: We're at 0.5.0-pre now? [21:26] AAA_awright: Just a few weeks ago was 0.3.x [21:27] malkomalko: tjholowaychuk: while using the reload plugin, after a file changes in one of my directories I get "Error: Cannot find module 'cluster'", using cluster through npm [21:28] Fuu has joined the channel [21:28] tjholowaychuk: malkomalko: hmm intersting [21:28] tjholowaychuk: ohhhh [21:28] tjholowaychuk: wait no [21:28] tjholowaychuk: hmm [21:28] tjholowaychuk: try .set('working directory', __dirname) [21:29] maushu has joined the channel [21:29] malkomalko: negative ghostrider [21:30] tjholowaychuk: damn [21:30] Sebmaster: AAA_awright: We were at 0.3, all unstable things were commited, then tagged 0.4, and instantly moved to 0.5-pre were ryan will commit unstable commits again :p [21:30] tjholowaychuk: ill try and reproduce [21:30] AAA_awright: Sebmaster: The point is you're not supposed to do it that way [21:30] malkomalko: 0.2.6 btw [21:30] AAA_awright: >_> [21:30] malkomalko: haven't migrated to 0.4.0 [21:31] Sebmaster: AAA_awright: its just personal preference imo [21:31] dtrasbo has joined the channel [21:31] AAA_awright: It breaks semantic versioning [21:31] AAA_awright: eh, it could [21:31] Coal has joined the channel [21:33] tjholowaychuk: malkomalko: ah ok ill try [21:34] tjholowaychuk: AAA_awright: yeah I agree [21:34] tjholowaychuk: kinda [21:34] tjholowaychuk: but < 1.0 you kinda have to do something like rthis for large projects [21:34] tjholowaychuk: just seems odd to version something that is not really released [21:34] Ond has joined the channel [21:35] tjholowaychuk: like express 2.0, I cant just go versioning 2.0-pre.0.1 or something wacky haha [21:35] AAA_awright: Yeah that's what I'm thinking, v0 do what you want, but starting with 1.0, If it's unstable, simply don't tag it. Actually, Node.js seems to be tagging it correctly, with a "-pre" prefix, signaling it's not that version yet (or -dev, or -RC) [21:36] monkeylice has joined the channel [21:36] AAA_awright: So the strange minor revision numbers don't make any sense because of that [21:36] tjholowaychuk: malkomalko: works fine for me :( hmm [21:36] monkeylice has left the channel [21:36] tjholowaychuk: how to reproduce [21:36] malkomalko: what the fark lol [21:37] tjholowaychuk: AAA_awright: I asked isaacs, he might get around to adding some kind of -pre support to npm some time [21:37] AAA_awright: 0.5-devl is unstable, 0.5.1 is stable, yeah, that sounds better than what's going on here [21:37] tjholowaychuk: malkomalko: what is your setup like? [21:38] tjholowaychuk: send a gist of your cluster(server) stuff [21:38] drSproinky: Installing 0.4.0 now. I always feel like ./configure is judging my system. Checking for awesome : not found :( [21:38] dmcquay has joined the channel [21:39] malkomalko: https://gist.github.com/556f253e024565da41cd [21:39] malkomalko: bunch of requires as per normal up top, create my express app, set my express options [21:39] malkomalko: nothing crazy [21:42] tjholowaychuk: malkomalko: could also do reload(__dirname) [21:42] tjholowaychuk: im going to make that the default actually [21:42] tjholowaychuk: nvm maybe not [21:43] malkomalko: what's the setup for reload for dev/production.. probably wouldn't want a reload in production right? [21:43] tjholowaychuk: malkomalko: you can just use SIGUSR2 or the repl to reload in prod [21:43] tjholowaychuk: you could technically use this thing [21:43] tjholowaychuk: and give it a larger interval [21:43] drSproinky: Anyone have a list of 'must have' npm packages. I know it's a question of what I'm trying to do, I just like seeing a hot list for ideas. [21:44] tjholowaychuk: but I wouldnt recommend it since I believe the watchers are only performant on linux boxes [21:44] malkomalko: ahh putting in reload(__dirname) actually gives me the same error about not being able to find cluster and it just reloads over and over again without booting up [21:44] tjholowaychuk: malkomalko: hmm, haha k im trying stuff still [21:44] malkomalko: no worries [21:46] tjholowaychuk: malkomalko: I wouldnt really save the sock to /tmp though [21:46] tjholowaychuk: bad example [21:46] tjholowaychuk: i should probably remove that [21:46] admc has joined the channel [21:46] tjholowaychuk: ummmm [21:46] joeshaw: hmm, does node have a streaming JSON parser? [21:47] malkomalko: I was going to say something about that, I was thinking a tmp directory under your project root or something [21:47] wink_ has joined the channel [21:47] tanepiper: not that i can think of joeshaw, but you can parse in JSON on 'data' and check for \n [21:47] SubStack: devinus: glad you like it! (dnode that is) [21:47] bradleymeck: joeshaw there are a couple lying about [21:48] stuart has joined the channel [21:48] tjholowaychuk: malkomalko: think i know what is happening, it think some of the files that cluster is writing to ./ is causing some cyclic restarting or something [21:48] tjholowaychuk: haha [21:48] tjholowaychuk: not good [21:48] joeshaw: bradleymeck: cool, i'll search around [21:48] joeshaw: tanepiper: it'll handle incomplete chunks? [21:48] devinus: SubStack: yeah i'm thinking about all the potential it has. i develop sproutcore applications and if i combined a dnode backend with sproutcore's data sources it would be sweet [21:48] joeshaw: tanepiper: right now i am just concatenating strings in 'data' handler and parsing in 'end' [21:48] malkomalko: not sure why it you couldn't replicate though [21:48] bradleymeck: there is a couple yajl binding and i wrote https://github.com/bmeck/node-jsonparser it doesnt fully follow the json strictness you may want though [21:48] joeshaw: fine, but gross [21:48] tjholowaychuk: malkomalko: I suppose __dirname is really bad if you are going to use ./ for pids / logs haha [21:48] tanepiper: joeshaw: well if json is sent correctly, your object should be on each line [21:48] tjholowaychuk: still looking into it [21:49] malkomalko: lol oh yah [21:49] malkomalko: do you wanna just reply to the gist when you find something out? [21:49] malkomalko: I have to take off right now [21:49] tjholowaychuk: sure [21:49] tjholowaychuk: later [21:49] joeshaw: tanepiper: ah, true, but no guarantee that it comes in one chunk [21:49] malkomalko: but I'm looking to get this working so I can replace spark for my dev/production [21:49] SubStack: devinus: tanepiper did something like that with some extjs project [21:49] malkomalko: I think my TZ issue is because I was using spark in production and it wasn't taking in the TZ var [21:49] malkomalko: but it's just a guess [21:49] tanepiper: devinus: yea, i created a Dnode proxy + store for extja worked quite well [21:49] malkomalko: alright, thanks for taking a look [21:49] SubStack: also, dnode is getting revamped in 0.6 to work better with browserify [21:51] tanepiper: SubStack: can't wait for it :D also i saw you added the parser for browserify, does it work with uglifyjs? [21:51] SubStack: tanepiper: it should but uglifyjs has a stupid interface [21:51] tjholowaychuk: uglifyjs is really ugly code [21:52] SubStack: the jsmin interface is much nicer so I put that in the example [21:52] tanepiper: i do love i can now just throw coffeescript in there too now :D [21:53] daveluke: hi... when i log into root, it doesn't recognize npm [21:53] daveluke: can someone help> [21:53] isaacs: daveluke: hi [21:53] tanepiper: going to re-write all the client side stuff in coffee, so it'll be good to just stick it in a client dir and serve it up [21:53] isaacs: daveluke: maybe root's PATH isn't set? [21:53] brianc: can anyone give me a pointer to a good library to look at to study node native extensions? [21:53] brianc: whoops [21:53] daveluke: isaacs, how could i set it? [21:53] brianc: ignore that [21:53] isaacs: daveluke: you can also set the `unsafe-perm` config flag [21:53] daveluke: how do i do that? :-) [21:54] isaacs: daveluke: what's the actual output you're getting? (gist or pastie) [21:54] sechrist has joined the channel [21:54] isaacs: daveluke: do these as both you and as root: `which node` `which npm` [21:54] daveluke: isaacs, http://pastie.org/1580404 [21:55] rburhum has left the channel [21:55] isaacs: daveluke: what about `which node`? [21:56] daveluke: nothing [21:56] isaacs: be aware, when you're logged in as root, $HOME is generally "/root", not "/home/daveluke" or whatever [21:56] SubStack: tanepiper: you can mix and match coffee and js too! [21:56] isaacs: so that first line is adding /root/local/node/bin [21:56] isaacs: daveluke: could that be the problem? [21:57] daveluke: well i tried before that line [21:57] daveluke: and it still did not work [21:57] tjholowaychuk: does node not have a generalized js parser module? [21:57] tjholowaychuk: cant find one [21:57] isaacs: daveluke: what i'm saying is, where is node actually at? [21:57] daveluke: /home/admin/... [21:57] isaacs: daveluke: because that first line looks like it's probably a mistake [21:57] isaacs: daveluke: ok. you need to do export PATH=/home/admin/local/node/bin:$PATH then [21:58] isaacs: because $HOME is not /home/admin when you're logged in as root [21:58] sechrist: Are there any good examples of irc-ish chat functionality modeled with redis/node? 1:1 1:n etc? [21:58] isaacs: $HOME is /root [21:58] daveluke: thanks [21:58] daveluke: it worked :) [21:58] SubStack: bradleymeck: still broken :/ https://gist.github.com/834496 [21:59] almay has joined the channel [21:59] bradleymeck: substack your breaking my balls, *goes to rerecheck* [22:00] SubStack: looks like another reference to /home/bmeck [22:00] Sebmaster: #node.js irc such a nice, lovely and helpful place :) [22:01] CIA-39: node: 03Ryan Dahl 07v0.4 * r1fce3f0 10/ benchmark/report-startup-memory.js : Add startup memory script to benchmarks - http://bit.ly/f29NJR [22:02] CIA-39: node: 03Ryan Dahl 07master * r9851574 10/ (259 files in 33 dirs): Merge branch 'v0.4' (+33 more commits...) - http://bit.ly/gmvGSo [22:02] bradleymeck: substack try one last time, i deleted stuff, make cleaned, and unpublished / published new version, if none of those worked i swear i will eat my shorts [22:03] Sebmaster: bradleymeck: Maybe you want to get some salt from the kitchen, maybe it tastes better then [22:03] SubStack: npm info build Success: OnCollect@1.0.2 [22:03] Sebmaster: lemme know afterwards [22:03] tanepiper: tjholowaychuk: cluster looks *really* nice, all the features i've been looking for [22:03] SubStack: worked! [22:03] tanepiper: especially the repl stuff [22:03] SubStack: bradleymeck++ [22:03] v8bot: SubStack has given a beer to bradleymeck. bradleymeck now has 2 beers. [22:03] bradleymeck: fin heck [22:03] tjholowaychuk: tanepiper: yeah man, the repl is really helpful [22:03] Sebmaster: lucky bradleymeck... lucky [22:04] tanepiper: going to try it now on this file server thing i've been working on [22:04] tjholowaychuk: uhh [22:04] tjholowaychuk: "@tjholowaychuk eu te amo tem namo?" [22:05] tjholowaychuk: anyone know what language that is / what he is saying? [22:05] Sebmaster: ohh, btw tjholowaychuk: is there a way to restart the cluster server from command line? [22:05] xandrews has joined the channel [22:05] tanepiper: is that your real name? (i have no idea, just a guess) [22:05] tjholowaychuk: Sebmaster: yup if you use the cli() + pidfiles() plugins do $ node server.js restart [22:05] tanepiper: "I love you has namo" in Portuguese [22:05] tjholowaychuk: or via the repl() you can do restart() [22:05] tjholowaychuk: tanepiper: oh hahaha [22:06] dve has joined the channel [22:06] Sebmaster: tjholowaychuck: nice, thanks [22:06] davidascher has joined the channel [22:06] tanepiper: tjholowaychuk: can you do one hit stuff on plugins, like $node server.js stats [22:06] tanepiper: from the cli? [22:06] Sebmaster: guess ive to rework some things... [22:06] tjholowaychuk: tanepiper: not the repl stuff [22:07] tjholowaychuk: that could work though [22:07] tjholowaychuk: ill try wiring that in [22:07] tanepiper: sweet [22:07] dgathright_ has joined the channel [22:07] tjholowaychuk: tanepiper: it is pretty coupled to the repl socket for writing etc but with some work it could work [22:08] Sebmaster: tjholowaychuk: better idea: you mentioned something of a reload plugin, that is the preferred way if i want to restart a server which file has changed? [22:08] tjholowaychuk: Sebmaster: yup, use(cluster.reload('lib')) etc [22:08] tjholowaychuk: you can pass an array (or single string) of file(s) [22:08] Sebmaster: wunderful, wonderful [22:08] Sebmaster: tjholowaychuk++ [22:08] v8bot: Sebmaster has given a beer to tjholowaychuk. tjholowaychuk now has 17 beers. [22:09] tjholowaychuk: Sebmaster: just be careful not to have it check for ./logs ./pids if you are using those dirs haha [22:09] tjholowaychuk: otherwise when cluster changes things it will try and restart [22:09] tjholowaychuk: bit of a gotcha [22:09] Sebmaster: :D [22:11] bradleymeck: anyone got a good decimal to fraction lib w/ arbitrary precision (within the realm of builtin Number) [22:12] Country has joined the channel [22:12] b5avage has joined the channel [22:13] daveluke: hey here is a dumb question... where does this server side javascript file live? [22:13] bradleymeck: the server [22:13] daveluke: no i mean... where do i put the file? [22:13] daveluke: directory [22:13] phpnode: daveluke: wherever you want, you just run node