[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 #