[00:00] mjijackson: inimino: did you write PEG.js? [00:00] _ry: derRichard: yeah - you shouldn't do that [00:00] inimino: mjijackson: I have a PEG project, but it's called PanPG now [00:00] derRichard: _ry: now i know it ;) [00:00] mjijackson: inimino: what's your target language? [00:01] mjijackson: js? [00:01] _ry: derRichard: no blocking, no locks - we're experiementing with what's possible if we restrict ourselves there [00:01] inimino: mjijackson: yeah [00:01] inimino: hm, did my code server just go down? I think it did [00:01] _ry: derRichard: moreover, no extra execution stacks - no yielding [00:02] mjijackson: inimino: citrus isn't really a parser generator per se. just a parser library. it doesn't do any actual code generation at present. [00:02] derRichard: sounds nice but sometimes a lock or a barrier is quite handy. [00:02] foucist has left the channel [00:02] inimino: oh, now it's back up [00:03] _ry: derRichard: Yeah - I know. but not for the noobs. [00:03] inimino: mjijackson: ah, ok, so parser combinators? [00:03] _ry: they'll take that and write libs using it in bad places [00:03] mjijackson: inimino: yes [00:03] derRichard: _ry: for sure :) [00:03] _ry: so - we'll just have to live without it [00:03] mjijackson: inimino: sorry, g2g. be back in a few [00:03] _ry: and that kind of sucks [00:04] inimino: mjijackson: k [00:05] gf3: inimino: apparently your whitespace style is called Banner Style: http://en.wikipedia.org/wiki/Indent_style#Banner_style [00:07] inimino: gf3: ah, yes, the Lisp style or Python style there [00:09] derRichard: my opencl addon can transfer memory to the opencl device asynchronous. when i do: mem1.send(); mem2.send(); mem3.send(); i have to wait until all transfers are done before i can execute a kernel. to achieve this a barriere would be nice. but for now this Step() thing works too... [00:10] _ry: what's mem1.send() do? [00:10] mjr_: derRichard: you might be able to come up with a more convenient JavaScript way to do what you want than Step provides, depending on your circumstances. [00:11] derRichard: _ry: it transfers host memory to the opencl device using clEnqueuBuffer()... [00:11] _ry: derRichard: mem1.send(function () { sys.puts('done'); }) [00:12] _ry: ? [00:12] derRichard: i have to wait for mem1 and mem2. [00:13] mjr_: so in the completion callback for memX, you can check all of the other mem's for completion. [00:13] derRichard: opencl can transfer both in parallel [00:13] mjr_: Once they all signal their completion, the last one will notice this and then move on. [00:13] derRichard: mjr_: yeah - this is my current approach. [00:14] derRichard: but it would nice to have something like this: waitFor([mem1.send(), mem2.send(), mem3.send()]); puts("all done"); kernel.exec(); ... [00:15] mjr_: You could make it seem like that with a little bit of JS. [00:16] derRichard: how? i don't know how i can make js wait for something [00:17] mjr_: you can't REALLY wait in JS because you don't control the event loop, but you can make the code read like that, more or less. [00:17] SubStack: hey, this is what I was going to ask about [00:17] derRichard: you mean like step or flow-js do? [00:18] inimino: derRichard: you can make "waitFor" return something that has the same interface that all the sub-calls have [00:18] SubStack: nice libs for doing async code with highly nested, stateful network protocols [00:18] mjr_: Yeah, pretty much what various libraries do. If that syntax is awkward, you can probably make one that's nicer for your particular case. [00:19] inimino: (whatever interface that is depends on what library you use) [00:19] inimino: (or write) [00:19] derRichard: inimino: good idea! [00:19] derRichard: anyway, it is time to sleep here in europe. gn8@all! [00:20] inimino: nn [00:20] cloudhead has joined the channel [00:20] SubStack: on a socket, 4 bytes come back that tell how many more bytes to fetch [00:21] SubStack: what is a goob lib for this kind of stateful logic? [00:21] mjr_: SubStack: is this HTTP chunked encoding? [00:21] SubStack: mjr_: negative [00:21] taf2_ has joined the channel [00:21] SubStack: it's the RFB protocol actually [00:21] SubStack: used by vnc [00:21] mjr_: oh, neat [00:21] taf2_: anyone have a kind of buffer pool node.js object? [00:22] taf2_: say something that allows an application or server to allocate x number of buffers and recycle them [00:22] rictic has joined the channel [00:22] cloudhead: does the file watcher on OS X not use kqueue? [00:22] mjr_: SubStack: is it getting in your way to to write your handler for this? It isn't that much code, if that's all you ahve to do. [00:23] taf2_: perhaps even one that's able to spill over to disc in the event of too much memory requirements? [00:23] SubStack: mjr_: it's a ton of code like this, that was just a simple example [00:24] SubStack: mjr_: I'm mostly just asking to see if a nice abstraction already exists before I go and write my own [00:24] _ry: SubStack: the socket just pulls more data [00:24] _ry: you don't have to decide how much more to pull [00:25] SubStack: oh that's true [00:25] _ry: which means you need some sort of interruptable state machine parser [00:25] SubStack: but I still need to piece together the chunks [00:25] mjr_: But you still need to handle getting reads of less or more than you were expecting [00:25] mjr_: Because you will. [00:25] _ry: SubStack: i'd just do a linked list [00:25] _ry: of buffers [00:25] _ry: buffer.next = buffer2; [00:28] _ry: SubStack: maybe that's not what you want :) [00:28] _ry: it depends on what you're doing with that data [00:29] SubStack: picking out the binary framebuffer dumps and sending them to the browser ;) [00:29] _ry: how do you encode them? [00:29] SubStack: base64 now, used to be png encoded from another service written in haskell [00:30] SubStack: moving this all into nodejs to improve latency [00:30] _ry: lovely [00:30] _ry: so here's your first buffer [00:30] _ry: |-------6___| [00:30] _ry: somewhere in the middle a frame starts [00:30] _ry: saying that 6 bytes are init [00:31] _ry: but only 3 remain on the buffer [00:31] _ry: so you base64 encode those bytes - send them [00:31] _ry: then the next frame comes [00:31] _ry: |___------| [00:31] _ry: and you encode those next 3 bytes [00:31] _ry: send them to the browser [00:31] SubStack: yes, I get that part of it [00:32] mjr_: SubStack: I think you get to write this byte length / partial read buffering thing yourself, unless there's some other library I haven't seen. [00:32] SubStack: just threading the state through asynchronous calls for stuff like size-limited reads on a buffer that may or may not be full enough to advance to the next stage in parsing is the tricky part [00:33] robrighter has joined the channel [00:33] jwm: I wish they'd expand json to be able to contain binary hehe [00:33] SubStack: mjr_: roger [00:34] _ry: SubStack: nah - it's okay [00:34] _ry: SubStack: http://github.com/ry/node-amqp/blob/878b08152d87b231c8eb94d9eb4a74e975a8704d/amqp.js#L144 [00:35] SubStack: _ry: neat! [00:36] _ry: SubStack: and your interface to the socket can just look like this: http://github.com/ry/node-amqp/blob/878b08152d87b231c8eb94d9eb4a74e975a8704d/amqp.js#L731-733 [00:39] mjijackson has joined the channel [00:53] richcollins has joined the channel [00:55] richcollins: Where are errors in createServer sent? [00:59] mscdex: isaacs: any chance for registry.npmjs.org to support jsonp? :> [01:00] mjr_: richcollins: exceptions, no? [01:00] fyrerise has joined the channel [01:00] richcollins: mjr_: Do I need to wrap the handler body with a try? [01:00] richcollins: or are they caught elsewhere and "emitted"? [01:01] mjr_: I'd have to try it, but I'm pretty sure the bind error at least throws, so yeah, you'd need to try/catch if you want to catch it like that. [01:01] richcollins: mjr_: I'd like to spit out a stack like errors that happen at the top level [01:01] richcollins: mjr_: I don't really care about catching it [01:01] richcollins: I just want to see what it was [01:01] mjr_: you can also use the process.uncaughtException to make the server not die if that's all you want. [01:02] mjr_: http://nodejs.org/api.html#event-uncaughtexception-50 [01:02] richcollins: mjr_: It doesn't die, it just doesn't write anything to the response [01:02] richcollins: I want to see a stack trace printout like the ones that happen when the server does die [01:02] richcollins: Any support for building one of those? [01:02] mjr_: oh, so not a createServer error so much as an error in the 'request' handler then? [01:03] richcollins: yeah [01:03] richcollins: I assumed errors within that function would be caught somewhere [01:03] mjr_: are you sure there's an "error"? [01:03] richcollins: followed by an error message printout [01:03] mjr_: and not just a connection closing or something? [01:03] richcollins: mjr_: Maybe there isn't [01:04] richcollins: mjr_: https://gist.github.com/77589b87de2762c8a5eb [01:04] mjr_: We used to have silent failures, but I thought those all threw now. [01:05] richcollins: mjr_: The response is empty in that example [01:05] fyrerise: Hey guys, question about require(): can it handle cyclic dependencies? I have two classes in two files and I'd like each one to reference the other, and something seems broken when I try it. [01:05] mjr_: richcollins: you mean response in not initialized? [01:06] richcollins: mjr_: I mean the response that is sent to the browser contains no content: [01:06] richcollins: Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error. [01:06] richcollins: according to Chrome [01:06] mjr_: richcollins: if you take out all of the TC stuff, does it still break? [01:06] richcollins: nope [01:06] mjr_: well then [01:07] richcollins: mjr_: Right but I still would like to know how to see an error when it happens [01:07] mjr_: yeah, if something in TC throws, that should kill the server with a stack trace. [01:08] mjr_: I dunno, that sucks. [01:08] mjr_: Can you break up the chained stuff on line 12 and check those for sanity? [01:13] taf2_: is there a good way to get an object id in node.js? e.g. b = new Buffer(12); b.id ? [01:15] inimino: taf2_: what do you want to do with the id? [01:18] mjr_: richcollins: I just ran into your exact problem. I think something broke somewhere with exception handling. [01:18] richcollins: ah ok [01:18] mjr_: The exception isn't bubbling up [01:18] mjr_: but you can try/catch it [01:18] taf2_: inimino: identify an object with an other object... e.g. buffers[buffer.id] = buffer [01:18] mjr_: Put a try/catch around that big chained line. [01:18] richcollins: Is there a helper for printing a stack trace? [01:19] mjr_: try { somethingbad(); } catch (err) { sys.puts(err.stack); } [01:20] richcollins: ok great [01:20] richcollins: mjr_: Is there a way to get the path to the currently executing file? [01:20] mjr_: __filename I think [01:21] mjr_: yeah [01:21] mjr_: http://nodejs.org/api.html#__filename-45 [01:22] ditesh|cassini has joined the channel [01:24] richcollins: ok awesome [01:29] jedschmidt has joined the channel [01:31] _ry: richcollins: for http? the server emits 'socketError' event [01:32] mjr_: _ry: http://github.com/ry/node/issues/issue/144 [01:32] mjr_: The request handler is throwing an exception, but it is getting silently swallowed somewhere. [01:32] _ry: mjr_: you should be able to catch with with server.addListener('socketError') [01:33] _ry: i'm not sure about that api [01:33] _ry: pretty new [01:33] mjr_: _ry: I don't think this is that [01:34] mjr_: this isn't a socket error, the is an exception thrown after the request handler is invoked, because of a bug in the request handler. [01:34] mjr_: But I tried listening for socketError anyway just now, and it doesn't help. [01:34] keyvan has joined the channel [01:35] _ry: huh ok [01:36] _ry: i kind of think ReThrow is completely broke in v8.. [01:36] _ry: http://github.com/ry/node/blob/master/src/node_http_parser.cc#L244 [01:36] stepheneb has joined the channel [01:37] mjr_: but note that if you try/catch in the request handler, you can catch it. [01:37] _ry: what you expect to be a good behavior for that? [01:38] mjr_: I'd expect it to kill the server [01:38] mjr_: unless there's an uncaughtException listener on process [01:38] mjr_: certainly silently swallowing the exception is bad. :) [01:38] _ry: yeah- sure [01:39] mjr_: It seems like something here changed recently. [01:39] mjr_: I could have sworn that exceptions in http handlers would bring things down. [01:40] mjr_: Anyway, time to head home. [01:40] _ry: errors are hard. it seems like there should be two classes [01:41] _ry: like errors that originate with you - like you throw an exception in some callback [01:41] _ry: and ones which are out of your control? like no such file [01:41] _ry: ENOENT or whatever [01:42] mrjjwright has joined the channel [01:42] sveimac has joined the channel [01:45] smtlaissezfaire has joined the channel [01:45] inimino: taf2_: you can just use == to compare objects for identity [01:45] taf2_: cool [01:46] deanlandolt: inimino: why == for identity? [01:46] inimino: deanlandolt: you can use === if you prefer, but there's no difference when the values have the same type [01:46] deanlandolt: isn't there a slight performance benefit to ===? [01:47] inimino: js> var a,b,c; a=b={}; c={}; [ a==b, b==c ] // true, false [01:47] gbot2: inimino: [true,false] [01:48] deanlandolt: sure enough [01:48] inimino: deanlandolt: I haven't benchmarked it, but I don't think I've ever written code where == is a bottleneck... I tend to use whichever of the two is clearest in context, or just use == because it is shorter [01:48] deanlandolt: yeah, that's fair -- just seems like contextually === is always clearest for /identity/ [01:48] jbrantly: I wrote a benchmark once (but in a browser context). Strangely, == came out ahead, but very, very close. [01:49] blowery: i just use = [01:49] deanlandolt: jbrantly: i'm gonna go out on a limb and say that /can't/ be right [01:49] blowery: less typing [01:49] inimino: I actually can't think of any reason why === "should" be faster, given that both have to test for type [01:49] inimino: the only difference in the code path is going to be after the types are found to differ [01:50] deanlandolt: inimino: that's a good point [01:50] jbrantly: note that I was comparing like types in the benchmark [01:50] inimino: and == is probably more heavily optimized ...but all this is academic; you should really write for clarity not try to over-prematurely-micro-optimize [01:51] deanlandolt: i'm not worried about microoptimizations (just pointing out what i thought was the case...now i'm thinking i'm wrong)... [01:51] deanlandolt: i'm more suggesting that the general rule of == is equality and === is identity is pretty good for clarity's sake [01:52] isaacs_ has joined the channel [01:52] inimino: hm, ...as a convention or as a summary of the language semantics? [01:53] deanlandolt: as a convention...the language semantics prove that to be not completely true :) [01:53] inimino: yeah [01:54] aaronblohowiak has joined the channel [01:54] cce has joined the channel [01:55] mrjjwright has joined the channel [01:58] pkrumins: Anyone knows if there is a method in V8 that given a char *, constructs a String without copying the string, but rather just copying the pointer? [02:02] aaronblohowiak: at the talk ry gave last night, he said that you can't get a pointer to a v8 string without a copy (because of the way the gc works). it would be odd if the inverse was not also true [02:03] aaronblohowiak: i wonder if node's Buffer might be more what you are looking for. [02:04] taf2_: Buffer is awesome [02:05] sveimac has joined the channel [02:05] pkrumins: oh i see. [02:10] stepheneb has joined the channel [02:14] Wes- has joined the channel [02:21] sveimac has joined the channel [02:22] joshowens has joined the channel [02:24] smtlaissezfaire has joined the channel [02:26] jmar777 has joined the channel [02:30] alexiskander has joined the channel [02:34] charlesjolley has joined the channel [02:38] softdrink has joined the channel [02:44] mikeal has joined the channel [02:46] mikeal has joined the channel [02:48] smtlaissezfaire has joined the channel [02:49] mrjjwright has joined the channel [02:50] softdrink has joined the channel [02:51] okito has joined the channel [02:56] smtlaissezfaire has joined the channel [02:58] mjijackson has joined the channel [03:06] aaronblohowiak: are people into socket.io or js.io or is there a different websockets/comet compatibility layer that you are fond of? [03:07] jmar777: soo... feel free to groan at the broadness of the question, but are there any good solutions for integrating node with an RDF store? [03:08] brainproxy has joined the channel [03:11] inimino: jmar777: I haven't heard of anybody doing SemWeb stuff with node, maybe you can be the first :) [03:12] stepheneb has joined the channel [03:14] jmar777: inimino: i'm gettin the impression I am [03:15] jmar777: inimino: although I'm a noob at both, so that makes this... educational :p [03:17] jedschmidt has joined the channel [03:30] softdrink has joined the channel [03:30] Aria has joined the channel [03:33] Aria: Evening all. [03:36] aaronblohowiak: hi [03:43] ssteinerX has joined the channel [03:46] PyroPete1 has joined the channel [03:48] ctp has joined the channel [03:49] keyvan has joined the channel [03:50] nsm has joined the channel [03:53] keyvan has joined the channel [03:54] softdrink has joined the channel [03:54] tmpvar has joined the channel [03:58] hassox has joined the channel [03:59] keyvan has joined the channel [04:03] dgathright has joined the channel [04:04] stevendavie has joined the channel [04:05] mjr_ has joined the channel [04:06] mcmc has joined the channel [04:09] aaronblohowiak: npm can't find the redis-client package.. anyone else having issues with that? [04:22] keyvan has joined the channel [04:24] isaacs_home has joined the channel [04:25] mnutt has joined the channel [04:26] isaacs_home: hi, aaronblohowiak [04:27] isaacs_home: my guess is that no one published the redisclient [04:27] nsm has joined the channel [04:30] mjijackson has joined the channel [04:33] isaacs has joined the channel [04:37] softdrink has joined the channel [04:38] isaacs: aaronblohowiak: thanks for the patch. [04:41] tmpvar: hey isaacs [04:41] isaacs: yo tmpvar whatup [04:41] tmpvar: conceptualizing a jsdom refactor [04:41] isaacs: sweet [04:41] tmpvar: you? [04:42] isaacs: trying to decide which npm bug to fix. [04:42] isaacs: i've only got like one or two in me tonight. [04:42] joshowens has joined the channel [04:42] tmpvar: heh [04:42] mrjjwright has joined the channel [04:44] mikeal has joined the channel [04:46] smtlaissezfaire has joined the channel [04:56] aaronblohowiak: isaacs: ah, i see now that the maintainer hasnt pushed the package.js because of the outdated assumption that 0.1.93 isnt release [04:57] isaacs: aaronblohowiak: huh? [04:57] isaacs: i can actually push it for them if you need it [04:57] aaronblohowiak: i used curl, the poor man's package management ;) [04:57] isaacs: but i'd prefer not to do that [04:57] isaacs: hehe [04:57] isaacs: if you have a link to the tarball, you can always have npm install that instead [04:57] isaacs: as long as the package.json is good [04:58] isaacs: oh, yeah, i sent fictorial the json [04:58] isaacs: i recognize this thing [04:58] isaacs: that was like 3 whole days ago, ancient history, man [04:58] aaronblohowiak: ha, totally. [05:01] saikat` has joined the channel [05:09] aaronblohowiak: doing my part to increase node's googleability http://aaronblohowiak.com/2010/05/13/shell-out-in-nodejs/ [05:15] ChrisPartridge has joined the channel [05:20] softdrink has joined the channel [05:30] aaronblohowiak: fs.watchFile freeze anyone else's mac? [05:30] aaronblohowiak: errr, freeze node on os 10.6 [05:32] tmpvar: gist an example? [05:34] aaronblohowiak: https://gist.github.com/db07e1f2b567e5f82951 [05:34] aaronblohowiak: commenting out line 29 makes it work, but useless [05:35] aaronblohowiak: i can try to make a minimal example [05:35] tmpvar: umm [05:36] tmpvar: trying to figure out if this is recursive heh [05:37] aaronblohowiak: this similarly never puts [05:37] aaronblohowiak: https://gist.github.com/49a4ccb4afd88c6d4cae [05:38] tmpvar: ACTION tries [05:39] tmpvar: woops [05:39] tmpvar: tried on ubuntu 10.4, works there [05:39] tmpvar: trying on mac [05:40] aaronblohowiak: oh mygosh [05:40] aaronblohowiak: i am an idiot [05:40] tmpvar: i should stop? [05:40] aaronblohowiak: it looks like it was running, the output just wasnt working right for my textmate bundle [05:40] aaronblohowiak: sorry [05:40] aaronblohowiak: yes. [05:40] tmpvar: heh [05:40] tmpvar: np [05:42] smtlaissezfaire has joined the channel [06:04] nsm has joined the channel [06:05] Michael__ has joined the channel [06:11] Michael__ has joined the channel [06:14] SandGorgon has joined the channel [06:14] SandGorgon: has anybody made a python (not django) + node.js app ? can node.js be used in place of eventlet - how do you integrate both of them? [06:16] Michael__: Havent done that yet.... no clue [06:17] Michael__: somebody used the pure framework so far ? [06:19] drostie has joined the channel [06:19] spoob has joined the channel [06:22] keyvan has joined the channel [06:32] scudco has joined the channel [06:34] k3yvn has joined the channel [06:38] keyvan has joined the channel [06:41] jedschmidt has joined the channel [06:42] dgathright has joined the channel [06:44] micheil has joined the channel [06:46] javajunky has joined the channel [06:52] sveimac has joined the channel [06:54] mjr_: _ry: you around? I'm digging into that http parser exception thing. [07:03] bpot has joined the channel [07:10] dekroning has joined the channel [07:11] scudco has left the channel [07:11] smtlaissezfaire has joined the channel [07:15] mscdex: i got bored and whipped up a neato sortable table for npm packages: http://mscdex.net/npm/list.html :-D [07:17] derbumi has joined the channel [07:20] derbumi_ has joined the channel [07:21] ineation has joined the channel [07:23] bpot has joined the channel [07:23] mravaux has joined the channel [07:24] micheil: mscdex: reading from the couchdb? [07:24] mscdex: the json output [07:24] micheil: ACTION should've really deviated from the standard semver [07:24] micheil: I go 1.0.4 -> 1.0.52 [07:24] micheil: mscdex: ah, okay [07:25] mscdex: the one thing i saw that was a little confusing though is that author information is not available in the general listing, and is only shown for specific versions or "stable" [07:27] mcmc has joined the channel [07:29] micheil: mscdex: hmm.. odd [07:30] micheil: mscdex: I'm thinking of writing an app to do the repo hosting [07:30] micheil: storing the actual files in a mongo GridFS, and the meta data in a standard mongo collection [07:30] JimBastard has joined the channel [07:30] JimBastard: ahahaha the first day of the node logs is epic [07:30] JimBastard: http://nodejs.debuggable.com/ [07:32] nsm has joined the channel [07:32] JimBastard: http://nodejs.debuggable.com/2009-11-23.txt [07:32] JimBastard: irc logs start with me bitching about trying to get node running [07:32] Phazm: anyone know if either of the flickr modules support /adding/ an image (not just accessing, as the examples show) [07:33] micheil: hmm.. node's Freelist, that's a LUC, yeah? [07:33] mitkok has joined the channel [07:33] JimBastard: the irc logs turn on for the first time, and 17 minutes later i log in for the first time asking where is the windows binary of node [07:33] JimBastard: epic [07:36] Phazm: windows 7 on a macbook? For shame, JimBastard [07:36] JimBastard: [19:08] JimBastard: http://maraksquires.com:8000/ [07:36] JimBastard: [16:50] JimBastard has joined the channel [16:50] JimBastard: any options / suggestions for building node on windows [16:57] ashb: wait till the full moon and sacrifice 3 virgins? [07:36] JimBastard: lol [07:36] JimBastard: ashb [07:36] JimBastard: Phazm: dont worry, that was like 4 jobs ago [07:37] micheil: JimBastard: what do you think? Have an nvm repository that stores the metadata and the files in mongodb, files in a GridFS, and metadata in a normal collection [07:37] JimBastard: i got a new company macbook and this one doesnt have windows [07:37] Phazm: that's with you for life man... [07:37] JimBastard: lolwut micheil [07:37] micheil: oh, nevermind then :P [07:37] JimBastard: you cant execute ideas against me out of context [07:37] JimBastard: ive lost scope [07:37] micheil: ACTION is thinking of ways to make a better nvm web frontend, similar to rubygems.org [07:38] mscdex: scope.Close()! [07:38] JimBastard: thanks [07:38] JimBastard: whats a nvm [07:38] micheil: nvm, isaacs [07:38] micheil: the package manager? [07:38] mscdex: npm ;-) [07:38] micheil: oh fuck. [07:38] micheil: what's nvm then? node version manager? [07:38] micheil: one of them [07:38] mscdex: nevermind? :P [07:38] micheil: too many acronyms [07:39] JimBastard: why does it need a web frontend? [07:39] micheil: yeah, I meant npm [07:39] JimBastard: yeah man [07:39] JimBastard: seriously [07:39] JimBastard: you fucking with me [07:39] mjr_: creationix has a thing called nvm, a version manager. [07:39] mscdex: lol [07:39] JimBastard: okay [07:39] JimBastard: PACKAGE MANGERS [07:39] JimBastard: YEAH [07:39] mscdex: manger! [07:39] JimBastard: whats up with that [07:39] JimBastard: last i heard it was a fight to the death [07:39] JimBastard: is anyone winning yet [07:40] micheil: JimBastard: and you thought the first day of logs was messed. Thing's haven't changed much [07:40] micheil: JimBastard: not that I know [07:40] JimBastard: also dependency management is fucking hard [07:40] micheil: there is http://mscdex.net/npm/list.html [07:40] micheil: ya [07:40] mscdex: lol that's not much, just a neat table :P [07:40] mjr_: Basically nvm will eventually win because issacs will just keep being a nice guy and doing talks about nvm. [07:40] JimBastard: i do like Isaac though [07:40] mjr_: er, npm [07:40] JimBastard: NVM >><< [07:40] JimBastard: yeah [07:41] micheil: so, basically, currently npm stores the data in couchdb and files on the filesystem [07:41] JimBastard: what are the choices again [07:41] JimBastard: which package managers are still being supported [07:41] mscdex: .deb! [07:41] mscdex: :D [07:41] micheil: npm, kiwi, and ? [07:41] JimBastard: nodules? [07:41] micheil: that too [07:42] JimBastard: Battle of the package managers [07:42] mjr_: I think there are even some more choices [07:42] JimBastard: i smell a mailing list thread [07:42] JimBastard: yeah i mean i dont know about you guys [07:42] mscdex: there ought to be a big comparison chart :P [07:42] JimBastard: but it doesnt take very long to clone a commonjs module [07:42] JimBastard: package management is still a bit premature [07:42] JimBastard: need moar packages [07:42] JimBastard: that work [07:42] JimBastard: and are stable [07:42] micheil: JimBastard: it's a good idea though [07:43] JimBastard: lol thanks micheil [07:43] micheil: especially the runs on flag [07:43] micheil: so, my websocket-server package requires node >= 0.1.94 [07:43] JimBastard: does npm use json.package? [07:43] micheil: yeah [07:43] micheil: package.json** [07:43] JimBastard: 345am friday morning [07:43] mscdex: no excuses! [07:44] JimBastard: im soo tired i cant even write proper jquery code [07:44] JimBastard: lol naah i can [07:44] mjr_: JimBastard: you need ntm, the node time manager. [07:44] mscdex: i need atm [07:44] JimBastard: http://www.imdb.com/title/tt0390384/ ? [07:44] JimBastard: i need contributors [07:45] JimBastard: i need someone who is a speed freak to help out with JSLINQ [07:45] JimBastard: http://github.com/marak/JSLINQ/issues#issue/3 [07:45] micheil: ACTION is a speed freak, but not in the LINQ kinda way [07:46] JimBastard: i want to get the R graphs outputting speed tests [07:46] JimBastard: and then tweak the shit out of the library [07:46] micheil: I actually benchmarked the various for() loops once to see which was faster [07:46] JimBastard: and get the fastest JSON search [07:46] JimBastard: well this is an entire lib [07:46] JimBastard: so its way more fun that that [07:46] JimBastard: then that* [07:46] micheil: may check it out [07:46] JimBastard: IEnumerable is bad ass [07:46] JimBastard: lazy evaluation of arrays instead of eager [07:46] micheil: if I see anything that's like easily improveable then I'll fork and push [07:47] JimBastard: i mean, we need to get INumerable working first [07:47] JimBastard: but really [07:47] JimBastard: its all moot [07:47] JimBastard: without the speed tests [07:47] JimBastard: being able to do A / B benchmarks [07:47] micheil: JimBastard: I'm looking at implementing a doubly linked list setup for websockets [07:47] JimBastard: uhhh [07:47] JimBastard: okay [07:48] JimBastard: JSLINQ is for performing queries against JSON using the LINQ syntax [07:48] JimBastard: i deal with large sets of data in memory all the time [07:49] JimBastard: its way easier to persist in memory then deal with a DB [07:49] JimBastard: also faster [07:49] micheil: JimBastard: hmm.. so a map/reduce? [07:49] peutetre has joined the channel [07:49] JimBastard: depends on the operations [07:49] micheil: but for raw js on the client or server (not the db) [07:49] JimBastard: do you know LINQ? [07:49] micheil: JimBastard: eg, the .Where method [07:49] micheil: no [07:49] ctp has left the channel [07:49] JimBastard: one sec [07:50] micheil: never heard of it [07:50] JimBastard: http://maraksquires.com/JSLINQ/api.html [07:50] JimBastard: LINQ is huge in ,net land [07:50] micheil: ugh.. [07:50] JimBastard: literally every .net developer who knows anything knows LINQ [07:50] JimBastard: and it was designed by some really smart dudes [07:51] olegp has joined the channel [07:51] micheil: okay [07:51] micheil: so what makes it better then map / reduce? [07:51] JimBastard: http://en.wikipedia.org/wiki/Language_Integrated_Query [07:51] JimBastard: so me the syntax [07:52] JimBastard: i want all users whose name is john who has a telephone containing 456 [07:52] JimBastard: document has mixed schema [07:52] JimBastard: and contacts may be on any level [07:52] micheil: okay, so, uh [07:52] spoob: I don't get what's wrong with using raw SQL [07:53] spoob: Every blog I see exclaims "oh no, do not use raw SQL" [07:53] JimBastard: spoob: how you gonna perform raw sql against json in memory? [07:53] spoob: You can't [07:53] JimBastard: so wtf you talking about [07:53] micheil: JimBastard: map / reduce so far makes more sense to me [07:53] spoob: Why would I want to... if it fits into memory.. oh yeah! bye bye SQL, you loathesome thing [07:53] jedschmidt has joined the channel [07:53] JimBastard: micheil: you understand that JSLINQ wraps Array.prototype for a lot of methods [07:54] micheil: no, I don't [07:54] spoob: isn't the point of Linq to be some native API equivalent of SQL, accessing a database? [07:54] JimBastard: micheil: do some reading if you are interested [07:54] micheil: it doesn't make sense to me looking at the code samples [07:54] JimBastard: all i can say is that there is a definite use case for this [07:54] spoob: By the way JimBastard - I liked your port of Linq to Javascript, and felt that reddit comments missed the point [07:54] JimBastard: look at the full ones micheil [07:54] spoob: They didn't appreciate you! [07:55] JimBastard: http://maraksquires.com/JSLINQ/ [07:55] JimBastard: micheil: [07:55] micheil: like, I mean, Enumerable.choice(a, b, c, d).take(10) [07:55] micheil: there's only four items [07:55] micheil: you can't get the 10th item [07:55] micheil: it doesn't exist [07:55] JimBastard: what are you looking at the api spec? [07:55] spoob: So what you're saying is that the Linq syntax is mirroring SQL type of queries for Javascript objects? [07:56] micheil: yeah [07:56] JimBastard: thats just the spec implementation [07:57] JimBastard: im not gonna make a list of 100 items [07:57] JimBastard: look at the working explorer page [07:57] JimBastard: which is at http://maraksquires.com/JSLINQ/ [07:57] pdelgallego has joined the channel [07:57] JimBastard: yeah spoob [07:57] JimBastard: LINQ is actually a solid pattern for searching JSON [07:57] JimBastard: JSON-Query and JSON-Path suck [07:57] JimBastard: badly [07:57] micheil: damn. screw linq, it looks like it's just wrapping map/reduce logic in extra cruft [07:58] JimBastard: i tried writing my own Dictionary with built in methods but i bombed it [07:58] JimBastard: micheil: dont be a noob you are missing the point entirely [07:58] micheil: not at all [07:58] JimBastard: if you want to write a custom method for search everytime, dont let me stop you [07:58] JimBastard: i was doing that shit nonstop [07:58] JimBastard: and i got tired of it [07:58] JimBastard: hence the port [07:58] micheil: yeah, so you write helper map/reduce methods that return a constructed function [07:58] JimBastard: good idea [07:59] JimBastard: hey why dont we make it chainable? [07:59] JimBastard: hey why dont we add some nice words so its a DSL? [07:59] spoob: micheil; please tell me how you would query in map/reduce, because I see JimBastard's point is valid despite my disdain for .Net [07:59] JimBastard: hey why dont we make a bunch of helpers [07:59] micheil: JimBastard: the reason the DSL isn't good is because it's blocking [07:59] JimBastard: hey why dont we standardize it and put it in the .net platform [07:59] JimBastard: what do you mean blocking? [08:00] SamuraiJack has joined the channel [08:00] micheil: well, before it can return it has to loop all the items checking them all [08:00] JimBastard: nope [08:00] JimBastard: thats the current implementation [08:00] JimBastard: if you listened to me at all [08:00] micheil: check out these: http://www.mongodb.org/display/DOCS/MapReduce [08:00] JimBastard: you would have picked up on me saying IEnumerable [08:00] JimBastard: and IEnumerable.js [08:00] JimBastard: and lazy eval versus eager [08:00] micheil: yeah, those don't say much [08:01] inimino: ACTION makes popcorn [08:01] JimBastard: good call inimino [08:01] spoob: I can see that micheil's position is valid in the current situation, and this is now a "wait for the next version" argument [08:01] micheil: so, how could you possibly do: var results = SomeArray.Where(blah); [08:01] JimBastard: ? [08:01] JimBastard: i do that all the time [08:01] micheil: so, what, you return an event emitter? [08:02] JimBastard: // lookup drone based on subdomain var getDrone = JSLINQ.Exec(brood) .Where(function(drone){return drone.site == host;}); [08:02] micheil: yeah, that's blocking [08:02] micheil: getDrone would be an array yes? [08:02] JimBastard: sure [08:02] spoob: the uppercut is met with a defensive block, and is the right going to make it? [08:02] JimBastard: i see what your saying micheil [08:02] micheil: right, so, in order to insert into that array JSLINQ would need to block while it builds that array [08:03] micheil: where as with map reduce, you use a form of event Emitter [08:03] JimBastard: do you even know what map reduce is? [08:03] spoob: jimBastard - is that problem a current version, or inherent in Linq? [08:03] JimBastard: its a very very generic term [08:03] micheil: well, in the form of map/reduce I'm used to [08:03] micheil: the mongodb sort [08:03] JimBastard: aye [08:03] JimBastard: so i could modify it micheil [08:03] JimBastard: to accept a callback [08:04] micheil: so each time an item matches, it emits "emit" (crappy name) [08:04] JimBastard: thats how IEnumerable works [08:04] smtlaissezfaire has joined the channel [08:04] JimBastard: sup smtlaissezfaire [08:04] JimBastard: << Marak [08:04] micheil: and you can listen for that, or you can wait until it returns out of the map() call, which then returns an array [08:04] micheil: IEnumerable doesn't show that. [08:04] JimBastard: i dont think blocking will be an issue at all [08:05] spoob: Nodejs is built on the idea of not blocking [08:05] JimBastard: i need the speed tests [08:05] JimBastard: thats like saying a for loop is blocking [08:05] aaronblohowiak: spoob: not-blocking I/O [08:05] micheil: JimBastard: okay, think of an array of 100,000 items [08:05] micheil: that's going to take time to process [08:05] JimBastard: micheil: http://github.com/marak/JSLINQ/issues#issue/3 [08:05] JimBastard: i aint thinking of shit [08:05] JimBastard: until i get my fucking benchmarks [08:05] micheil: and it's a case where you wouldn't be using a standard itneration [08:05] JimBastard: >.< [08:05] JimBastard: numbers [08:05] spoob: aaron; [08:05] JimBastard: numbers [08:06] JimBastard: im gonna write that benchmark dammit [08:06] JimBastard: ill do it right now [08:06] spoob: I disagree that numbers are needed for a blocking/non-blocking argument [08:06] micheil: JimBastard: it's not a matter of numbers, we know it will take time, because it's a large data set [08:06] aaronblohowiak: spoob: coop multi for computation is nice for responsiveness, but won't help your throughput [08:06] inimino: right [08:06] micheil: an array of 10 items will process quicker then an array of 10,000 items [08:06] aaronblohowiak: through you could realease waiting fast requests, which might be nice [08:06] micheil: that's fact. [08:06] JimBastard: micheil it becomes a question of when you should stop using the sync version and the callback [08:07] inimino: if the idea is that the data is in memory already anyway [08:07] JimBastard: yep [08:07] micheil: so what you do is make it do both in a way [08:07] aaronblohowiak: the biggest problem with the sync version is that you can't do it on a stream [08:07] aaronblohowiak: which sucks ass [08:07] aaronblohowiak: because stream processing is the winnerest [08:07] inimino: yes, a streamable API would be nicer [08:08] JimBastard: i think that would be very possible [08:08] micheil: I'm not sure on 100% of the code layout, but you'd return a continuable so that the chaining works, like in (fab) [08:08] inimino: it's possible [08:08] JimBastard: im doing that already micheil [08:08] TomY has joined the channel [08:08] JimBastard: i think [08:08] JimBastard: i gotta dig into it a bit more [08:08] micheil: no.. [08:08] JimBastard: i ported it pretty quickly [08:08] JimBastard: minimal api implementation [08:08] micheil: this has basically nothing to it: http://github.com/Marak/JSLINQ/blob/master/lib/IEnumerable.js [08:09] JimBastard: yeah thats a stub / psuedo [08:09] JimBastard: partial commit [08:09] micheil: it's just a highly basic linked list, not even anything [08:09] JimBastard: added IEnumerable.js from firebug paste Marak (author) May 06, 2010 [08:09] JimBastard: lolz [08:09] micheil: yeah, but you see what I'm saying [08:09] JimBastard: yes [08:09] micheil: I can't see what you mean by IEnumerable until there's code [08:10] spoob: so can yo make LINQ streamable? Or will it always inherently block? [08:10] JimBastard: you have a good point or two in your bable [08:10] inimino: hehe [08:10] JimBastard: naah it can be async spoob [08:10] JimBastard: i wanna see just how much it blocks first [08:10] micheil: JimBastard: why? [08:10] aaronblohowiak: JimBastard: on a stream, 100% [08:10] aaronblohowiak: ;) [08:10] micheil: JimBastard: you need to assume it will block [08:11] spoob: well this is a pleasant outcome - you two now know each other. Considering that you're probably at the opposite ends of the Earth, it's a rare occasion [08:11] JimBastard: i mean, its like saying dont use Array.sort() because its blocking [08:11] JimBastard: i know micheil ;-) [08:11] JimBastard: hes a cool guy [08:11] _ry: hi [08:12] JimBastard: ACTION bows [08:12] micheil: hey _ry [08:12] inimino: hey _ry [08:12] micheil: man.. I should've gone with moin, just to be different ;P [08:12] _ry: :P [08:12] JimBastard: how may we serve you javascript god [08:12] JimBastard: ahaha [08:12] micheil: heh, someone should do a quotes db thing for here.. there's some stupid shit said.. :D [08:13] spoob: He's not a Javascript god. He's a non-blocking streaming API God [08:13] inimino: hehe [08:13] micheil: JimBastard: anyway, I'm gunna do the linked list stuff anyway, it's a good thing to have [08:13] jan____ has joined the channel [08:13] inimino: micheil: what're you doing with linked lists? [08:13] micheil: plus it makes use of V8's referential storage [08:13] JimBastard: k [08:14] micheil: inimino: doubly linked lists for the routes and connections in my websocket server [08:14] micheil: inimino: for faster iteration, and better stuff [08:14] inimino: micheil: oh, ok [08:14] freshtonic has joined the channel [08:14] inimino: micheil: you are using plain objects as nodes? [08:14] micheil: not sure on my implementation yet, but yeah [08:14] _ry: oh i much prefer streaming api god ;) [08:14] micheil: inimino: probably [08:14] inimino: someone else just did that, I think [08:15] micheil: inimino: currently my websocket server just uses an id mapped object [08:15] Phazm: hrm -- I really need to add images to my flickr account that I have on my server from node -- but there aren't any modules that can handle attachments in emails, and there aren't any flickr modules that allow uploading :'( Anyone have an idea how how to accomplish this? [08:15] micheil: {connection_id => connection_data} [08:15] _ry: but i think i'll probably just be known as the guy who can't decide on an api [08:15] micheil: _ry: I still think we've got a pretty solid api now [08:15] inimino: hehe [08:15] aaronblohowiak: _ry: it is the drama that keeps us coming back week after week [08:15] JimBastard: whats up with a Data::Faker port [08:15] aaronblohowiak: ;) [08:16] micheil: _ry: put it this way, node.js has a better early api change history then what jQuery UI had. jQuery UI was hell before it launched [08:16] magcius has joined the channel [08:16] magcius has joined the channel [08:16] micheil: Data::Faker port JimBastard ? [08:16] inimino: 10 years later, node is used on 99.9% of all web sites, and is at version 0.1.99.3135 [08:16] JimBastard: yeah [08:16] JimBastard: Faker [08:16] _ry: inimino: :) [08:16] JimBastard: http://faker.rubyforge.org/ [08:17] JimBastard: i wonder if its worth porting [08:17] micheil: JimBastard: ughh.. [08:17] micheil: JimBastard: I've heard those things are bloody hard to implement to get good data from them [08:18] micheil: rather then just random shizzle [08:19] JimBastard: fucking sourceforge [08:19] micheil: _ry: but yeah, I'm not sure what you think, but I'm thinking the api's are turning out to be fairly good atm [08:19] JimBastard: SVN??!?! [08:19] JimBastard: what do they think im an animal [08:19] micheil: _ry: I don't think I'd change anything really. [08:19] micheil: _ry: but I don't quite know node like you do. [08:19] _ry: yeah, i'm moderaly happy [08:20] aaronblohowiak: JimBastard: git-svn works sufficiently well. [08:20] JimBastard: :p [08:20] _ry: i think we've got some work to do on error reporting [08:20] micheil: _ry: that's a definite [08:20] micheil: _ry: but the core api's like http, net, and fs are pretty good [08:21] micheil: they'd probably be the most used anyway [08:22] spoob: Node and CommonJS working together would be of more overall value than an improved API in a class [08:23] micheil: spoob: true, but I think a lot of the CommonJS stuff is just bikeshedding. [08:23] micheil: like seriously, I think the doSomethingMethod should include an I in it's name [08:23] micheil: no offence or anything [08:24] spoob: I pretty much just want Narwhal on NodeJS and don't care about discussions [08:25] JimBastard: worst....ssjs....name...ever [08:25] JimBastard: spidermonkey [08:25] JimBastard: rhinopuppy [08:25] JimBastard: gearwaxer [08:25] JimBastard: i give up [08:25] mscdex: :S [08:26] micheil: _ry: btw, is anyone working on project branding or anything? because I've noticed the current logo doesn't work at all on a white background [08:26] isaacs has joined the channel [08:26] _ry: micheil: yes, working on a new website [08:26] micheil: is it you working on it, or is it teamed with others? [08:27] micheil: rather, solo vs teamed? [08:27] isaacs: micheil: you were thinking about doing some html for npmjs.org, right? [08:27] micheil: yeah [08:27] micheil: isaacs: I'm thinking of a change in backend storage systems too [08:27] isaacs: micheil: it'd be really awesome if all the .md files in the npm docs could be on that, too [08:28] isaacs: that's a tougher sell. [08:28] isaacs: couch is working well. [08:28] _ry: spoob: kris kowal is working on narwahl-node stuff [08:28] _ry: i don't know what the state of it is [08:28] micheil: isaacs: basically the idea would be to upload the tarballs to a tmp directory, then have mongodb import them into a specific directory or a mongodb GrifFS instance [08:28] micheil: *GridFS [08:29] isaacs: yeah... i'm not really convinced that's even remotely necessary. [08:29] spoob: Probably quite good, knowing kris.. I'll ask the next time I see him online [08:29] micheil: isaacs: basically changing the way the FS is architected [08:29] felixge has joined the channel [08:29] felixge has joined the channel [08:29] isaacs: right.. but why? [08:29] felixge: morning [08:30] micheil: I'm not 100% sure on the stuff yet, it's just an idea [08:30] isaacs: ok. [08:30] _ry: felixge: re [08:30] micheil: isaacs: idea as in, read: http://brandedcode.com/journal/2010/02/17/am-gedankenexperimente.html [08:30] felixge: _ry: heya [08:30] felixge: _ry: did you guys have a chance to play with that solaris box? [08:30] _ry: felixge: yeah [08:30] _ry: felixge: i'm almost done [08:30] isaacs: micheil: i see. [08:31] felixge: _ry: cool :) [08:31] _ry: it needed a lot more hacking than i originally thought [08:31] _ry: had to port the v8 solaris port off glibc [08:31] isaacs: micheil: i think it's probably better to just swap out nginx for a more fancy proxy when/if it gets relevant. [08:31] isaacs: micheil: something like varnish or TS [08:31] mravaux has left the channel [08:31] felixge: _ry: was this because it isn't opensolaris? [08:31] _ry: but it'll be nicer for opensolaris when its done [08:31] _ry: yeah [08:31] micheil: isaacs: no, I'm not meaning the serving of the files, but the local storing [08:32] _ry: opensolaris has a thin gnu wrapping for everything [08:32] felixge: _ry: what did you find out about that signbit thingy? [08:32] felixge: _ry: I saw your blog post [08:32] isaacs: micheil: ooohhh... you mean, don't use the FS as the database for files locally? [08:32] micheil: isaacs: I need to fully assess what is needed and stuff [08:32] _ry: felixge: the signbit is pretty annoying [08:32] micheil: isaacs: something like that [08:32] isaacs: micheil: what's needed: rewrite close to 100% of npm. [08:32] _ry: felixge: signbit is some stupid function [08:32] micheil: isaacs: let me think on the problem (like that article says) [08:32] isaacs: micheil: sure. but i don't think you fully grok just HOW much i stick to "the filesystem is the database" [08:32] _ry: felixge: it returns true if a number if negative [08:33] _ry: felixge: basically int signbit(double x) { return x < 0; } [08:33] isaacs: micheil: what' you'd end up with is something that may be npm-like or npm-inspired, but is not npm, but some other thing. [08:33] micheil: isaacs: I'm not saying get rid of the filesystem as db at all [08:33] _ry: felixge: but there are all these different versions of C [08:33] isaacs: micheil: then also rewrite a bunch of node ;) [08:33] _ry: felixge: and they're all guarded with various CPP symbols [08:33] mscdex: isaacs: what are all the possible fields for the "dists" property for npm registry info? [08:33] mscdex: er "dist" [08:34] _ry: and it seems oddly difficult to find the correct set of symbols to get access to signbit [08:34] isaacs: mscdex: i only use tarball [08:34] mscdex: ok [08:34] isaacs: mscdex: but it seemed nice to leave it open in case there was ever a need to extend it to other things. [08:34] _ry: felixge: anyway - i didn't work on it today - but i'll take a look again tomorrow [08:34] _ry: and submit a patch back to v8 [08:35] _ry: and then we'll be solid on sun [08:35] _ry: (assuming i can fix the remaining bugs) [08:35] isaacs: micheil: so what would you use redis for? i don't get it. [08:35] isaacs: micheil: just the cache? [08:35] micheil: I'm not sure yet [08:35] felixge: _ry: np [08:35] micheil: it's just a very raw early idea, not sure on it all yet [08:35] isaacs: sure sure [08:35] xla has joined the channel [08:35] isaacs: these things often need to percolate. i get it. [08:35] micheil: so, when I have a more final proof of concept, I'll get back to you [08:36] isaacs: i just want to try to get you thinking about html that you could wrap around it instead ;) [08:36] isaacs: the cache is a pretty minor part of the overall story. requiring redis for npm would be not great. [08:36] micheil: but basically the server would still accept the very same http methods for uploading [08:36] felixge: _ry: very cool that you're working on this [08:36] felixge: _ry: :) [08:36] isaacs: micheil: server === couchdb [08:36] micheil: isaacs: uh. I'm talking npm on the server [08:36] isaacs: oh... um... ok... so, npm doesn't actually run on a server. [08:36] isaacs: it runs on your local box. [08:37] micheil: uh. no, I'm meaning npm gets packages from a server [08:37] isaacs: like apt-get or pear or something [08:37] isaacs: right... that server is couchdb, not npm. [08:37] _ry: felixge: i figure it's worth the work to get these bugs worked out [08:37] isaacs: and couchdb is working *really* nicely. [08:37] micheil: that server is the repository, with a fixed set of commands [08:37] isaacs: the server only has 2 commands: GET and PUT [08:37] isaacs: ;) [08:37] micheil: isaacs: but couch doesn't store the files for the server, does it? [08:37] isaacs: micheil: it does. [08:37] isaacs: attachments. [08:37] micheil: oh, okay [08:38] isaacs: as of like version 0.1.7 or so, i've been using that. [08:38] micheil: okay, well yeah, mongo's GridFS is like the same thing as that then [08:38] micheil: I thought that you were using couch purely to store reference data [08:38] isaacs: a few still have links to github or whatever, but that's ancient history now. [08:39] micheil: eg, tarball for websocket-server lives at /data/tarballs/websocket-server/1.0.52.tar [08:39] micheil: isaacs: I'm thinking a little more homebrew style [08:39] romainhuet has joined the channel [08:39] micheil: so, when you get a package, you download the package.json [08:39] micheil: as say, websocket-server_1-0-52.spec [08:40] micheil: (just a json file) [08:40] isaacs: npm [08:40] isaacs: npm's json files end with .json [08:40] isaacs: but ok [08:40] micheil: then when you do install it does the downloading of the actual file [08:40] micheil: so, be the file hosted elsewhere or on npm's server [08:40] micheil: much like homebrew. [08:40] isaacs: micheil: i bascially do that already [08:40] micheil: but yeah, that's side stepping. [08:41] micheil: like I've said, need to look at more internals first [08:41] isaacs: micheil: i just call it .npm/.cache/websocket-server/1.0.52/package.json [08:41] micheil: otherwise I'm just saying theoretical stuff that means nil [08:41] micheil: isaacs: same diff there [08:41] isaacs: micheil: but the filesystem and http are so similar with node, it hardly matters. it checks the cache first, but hte registry is like your backend store [08:42] micheil: isaacs: doesn't matter the actual physical location, just using example [08:42] isaacs: riterite [08:42] micheil: so, basically when you do npm publish package.json [08:42] isaacs: in some cases, it might even make sense to have a local registry that uses couchdb replication to read from the official registry, and your local cache in front of that. [08:43] micheil: it uploads the whole thing as a tarball, the server then unpacks the package.json from it, stores it in a db for later querying [08:43] isaacs: micheil: the first thing it does is tar up the folder into the cahce, then it does a PUT with the meta data, then a PUT with the attachment [08:43] micheil: and then stores a reference to where the data-files are [08:43] micheil: yeah, I'm saying do more processing on the server then client, less http requests [08:43] isaacs: there's a fair bit of business logic on the server, actually [08:43] micheil: or something. [08:43] micheil: I'm not sure. [08:44] isaacs: check out the js-registry project [08:44] micheil: yeah, I'm still meaning to read it fully [08:44] micheil: and understand it [08:45] micheil: bbl. [08:46] isaacs: bed time. good night, folks [08:47] SandGorgon has joined the channel [09:05] markwubben has joined the channel [09:12] aaronblohowiak: night [09:43] markwubben_ has joined the channel [09:52] MattJ has joined the channel [10:00] SubStack: http://github.com/substack/node-bufferlist # if anybody cares [10:02] SubStack: the rfb module that this incidental one will support will be far more interesting! [10:03] _Fuxx has joined the channel [10:03] aaronblohowiak: neat [10:04] tpryme has joined the channel [10:08] xla has joined the channel [10:09] maushu has joined the channel [10:09] maushu: Yay, my baby was linked on http://redmonk.com/sogrady/2010/05/13/node-js/ [10:09] maushu has joined the channel [10:09] maushu: More people should contribute to the wikipedia page... you can probably get lots of node.js users that way. [10:12] aaronblohowiak: niice! [10:13] SubStack: maushu: good stuff! [10:13] ithinkihaveacat has joined the channel [10:15] aaronblohowiak: the lyfe is short but the art is long [10:15] aaronblohowiak: i am gonna sleep [10:15] aaronblohowiak: later! [10:23] sveimac has joined the channel [10:24] spoob has joined the channel [10:30] tobeytailor has joined the channel [10:33] sztanpet has joined the channel [10:37] javajunky: quite looking forward to playing with mongoose later ;) [10:37] micheil: same [10:37] micheil: damn. I seriously cannot believe some of the folks in #rubyonrails, they thought that node.js and ssjs was a "joke" [10:38] javajunky: as in a comedy joke, or as in 'that concept is laughable' ? (but yeah saw your tweet ;)) [10:39] micheil: latter [10:39] micheil: they never thought it'd be anything for production, like a april fools joke. [10:39] mape: well lucky for us they will never use ir then :) [10:39] javajunky: ahhh, well there's a couple of production projects now, but it is still early days so I kinda get where they'd be coming from :) [10:42] fermion has joined the channel [10:50] mcarter has joined the channel [10:51] maushu: micheil: We will show them! [10:51] maushu: ACTION wears his battle armor. [10:54] _cheerios has joined the channel [10:54] maushu: We need an attack plan. [10:54] maushu: But first... any ruby on rails developer here? [10:56] markwubben_ has joined the channel [10:57] SiGe has joined the channel [10:59] SubStack: ug, rails [11:01] tpryme: yea, i've done quite a few rails projs; but working on a node-based proj right now [11:02] tpryme: def on the lookout for any js-based web frameworks along the lines of rails/django; any tips? [11:03] mape: express? [11:04] tpryme: nice; i like that there have been some adoption of nice ruby libs like haml. [11:05] maushu: tpryme: Are you going back to rails? [11:05] maushu: ACTION gets his sword ready. [11:05] tpryme: i still use it [11:05] maushu: OFF WITH HIS HEAD. [11:05] hellp has joined the channel [11:05] maushu: ACTION decapitates tpryme. [11:06] tpryme: it's a good framework ... lol [11:06] SubStack: rails is so.... big [11:06] SubStack: too much going on, too many surprises [11:06] maushu: ACTION keeps poking tpryme with his sword. [11:06] tpryme: rails3 is nice [11:06] SubStack: also, generated code -_- [11:06] tpryme: very modular [11:06] maushu: WHY DON'T YOU DIE?! BLASPHEMY! [11:06] tpryme: :) [11:06] peutetre has joined the channel [11:06] maushu: ACTION sets tpryme on fire. [11:07] maushu: Die, you undead beast from the underworld! [11:07] tpryme: maushu: how long have u been doing node? [11:07] maushu: You are not welcome to this holy- well, some months. [11:07] javajunky: tpryme: express [11:07] maushu: Probably the beginning of this year. [11:08] javajunky: its closest parallel is really sinatra in the rails world. [11:09] tpryme: maushu: what were you using before focusing on node? [11:09] tpryme: javajunky: thanks, looks familiar [11:09] javajunky: its pretty fast, and works happily with the latest version of node. [11:09] javajunky: I wrote a short article on getting up and running with express a while ago: http://http://howtonode.org/express-mongodb [11:10] maushu: Lots of stuff. [11:10] maushu: But the lastest right before node.js was haxe. [11:10] javajunky: (and I recommend strongly using the 0.1.95 release of node for http stuff it is *MUCH* better than the last couple of releases. … there is a deprecation warning on starting up express against it, but nothing to worry about and we'll have it patched by the end of the day I think) [11:10] pkrumins: _ry: how do you write the nodejs code if there is almost no v8 documentation? [11:10] tpryme: javajunky: cool, with mongodb; what's your recommendation for a cassandra client for node? i noticed more than 1 via google. [11:11] maushu: pkrumins: He uses his mystical super powers. [11:11] pkrumins: _ry: the best docs i found was some dude's autodocs html http://bespin.cz/~ondras/html/annotated.html [11:11] javajunky: tpryme: I've no experience of cassandra to recommend I'm afraid :( [11:11] pkrumins: maushu: does he work at google? [11:11] javajunky: tpryme: check the mailing list maybe, someone's bound to have asked [11:11] maushu: pkrumins: huh, no? [11:11] pkrumins: k [11:12] micheil: pkrumins: he works at.. uhh.. joyent or somewhere, Ithink it was [11:13] maushu: http://www.joyent.com/ [11:13] pandark_: javajunky, too much HTTPs ^^ [11:13] pkrumins: oic. [11:13] pkrumins: thanks for digging it up. [11:13] pkrumins: ry never reads backlogs does he? [11:13] pkrumins: will probably have to ask again when he is online! [11:14] pandark_: ( s/much/many ) [11:14] pkrumins: cause all the v8 docs i can find is http://code.google.com/apis/v8/embed.html [11:15] micheil: pkrumins: yeah, v8 is virtually un documented [11:15] micheil: (quite a real PITA) [11:15] pkrumins: yeah, total PITA [11:17] tlynn has joined the channel [11:17] spoob: micheil; the rude ruby on railers are just copying DHH and trying to be a rock star [11:17] micheil: spoob: ah, it doesn't bother me. [11:17] micheil: spoob: really, I'm just about educating and sharing knowledge [11:18] spoob: i'm ex-Ruby, but not Rails. I find Javascript to be about the same as Ruby, after ignoring syntax [11:18] zimbatm has joined the channel [11:19] zimbatm: hello [11:19] spoob: and I moved to Javascript because browsers have graphics and controls and GUI, whereas Ruby doesn't [11:20] tpryme: spoob: it's possible to run ruby in browser via http://hotruby.yukoba.jp/ ; interesting little project [11:21] micheil: spoob: I have been doing ruby on rails the same length of time as node.js roughly [11:21] mscdex: added some tooltip spiffyness to my npm package table: http://mscdex.net/npm/list.html [11:21] mscdex: :D [11:21] micheil: ? [11:21] spoob: tpryme; it is interesting, but Javascript pretty much does it anyway and is less complicated without a translation layer [11:22] micheil: mscdex: awesome! [11:23] tpryme: spoob: agreed. although i wish javascript had more metaprogramming capabilities like ruby; still love js as a language though [11:24] maushu: Object.__noSuchMethod__? [11:24] spoob: Yes, I was just thinking about Ruby's yield, which is not in current Javascript (but is in Mozilla's 1.7) [11:25] mscdex: off to sleep now methinks [11:25] micheil: maushu: no such method [11:26] kkaefer: how do I create TLS connections to another server? [11:26] micheil: I do wish V8 had noSuchMethod though [11:26] maushu: micheil: I know. [11:28] mertimor has joined the channel [11:28] kennon has joined the channel [11:29] kennon has joined the channel [11:35] jmar777 has joined the channel [11:35] ayo has joined the channel [11:37] smtlaissezfaire has joined the channel [11:40] javajunky: kkaefer: the connection class supports a crypto/credentials object, there's a test which sets it up .. I"ve also commented how to do it with a http client… but I think things are slightly easier now then when I documented that [11:40] kkaefer: javajunky: ok thanks, I'll look there [11:40] nsm has joined the channel [11:41] javajunky: test-tcp-tls.js to be specific [11:43] kkaefer: hmm, I need to create pem files for each connection? [11:43] javajunky: I don't think so [11:43] kkaefer: var credentials = crypto.createCredentials({key:keyPem, cert:certPem, ca:caPem}); [11:43] kkaefer: which is used in the client connection [11:43] javajunky: you might need to mess about a bit if you want to verify the credentials (and its using a non-standard CA) [11:44] javajunky: var credentials= crypto.createCredentials({}) will work [11:44] javajunky: ( I think) [11:44] kkaefer: ah, ok [11:44] kkaefer: I'll try that [11:44] kkaefer: thanks [11:44] javajunky: I wrote up an example using the http class which is a subclass/descendant [11:44] javajunky: https://gist.github.com/f7d99e5ac8f289551191 [11:45] fernmicro has joined the channel [11:45] javajunky: (but that was a self signed cert so I had to provide my own ca.. I don't think you will need that) [11:45] javajunky: mostly you should be able to get away without doing anything I think.. [11:48] ineation has joined the channel [11:49] mape: Hmm anyone used felixges irc bot lately? [11:50] SubStack: wheeee [11:50] SubStack: somebody has probably already done this, but http://github.com/substack/node-bufferlist/blob/master/tests/all.js [11:50] SubStack: async unit tests! [11:51] Ned_: for anyone that cares, I wrote an IRC client library: http://github.com/martynsmith/nodejs-irc [11:51] SubStack: click [11:51] Ned_: it's functional, but there's still more I'd like to do with it :-) [11:52] mape: Ned_: Good timing :) [11:52] Ned_: mape: ? [11:52] Ned_: oh, heh [11:52] Ned_: I see ... [11:52] Ned_: mape: well, feedback welcome :p [11:54] mcarter has joined the channel [11:54] mape: Ned_: Easy to get started with :) [11:55] Ned_: mape: that's the idea :p [11:55] chilts: hello Ned_ and others [11:55] Ned_: chilts: so I uploaded the lib for you ;-) [11:55] chilts: sweet :) [11:55] Ned_: it still needs work [11:56] Ned_: but I made an effort to make some reasonable documentation [11:56] chilts: yeah, but that's ok, I'm good at testing :) [11:56] Ned_: so hopefully there's enough there to actually make something useful ;-) [11:56] Ned_: without asking me too many questions :p [11:56] chilts: yeah ... I concur (seeing as I've seen it already) :) [11:56] Ned_: I quite like how github does markdown rendering inline :-) [11:57] Ned_: http://github.com/martynsmith/nodejs-irc/blob/master/API.md <-- my documentation nicely rendered [11:57] Ned_: well ... for some definition of "nicely" [11:57] Ned_: :p [11:59] chilts: so you can go (server, nick, opts) ... but in opts you can also specify server and nick? [11:59] Ned_: oh, that's a bit weird I guess ... [11:59] chilts: :) [11:59] Ned_: basically, I end up copying them into the opts object [11:59] Ned_: but yeah, kinda strange :p [11:59] Ned_: I should just take them out of the documentation [11:59] chilts: I guess just remove those two lines from the default opts in the docs :) [11:59] chilts: yup [11:59] Ned_: yup [12:00] Ned_: chilts: pushed ;-) [12:00] chilts: awesome :) [12:00] Ned_: yeah, github isn't too shabby :p [12:00] chilts: heh, I should have sent a patch :) [12:01] Ned_: actually, I didn't document the send() method either [12:01] mape: Ned_: seems it outputs a whole lot of stuff even though debug is off? [12:01] Ned_: fail [12:01] kkaefer: javajunky: heh, tls is actually pretty easy with node.js :) [12:01] kkaefer: thanks for the pointers [12:01] Ned_: mape: Hmmm, okay, that sounds like bugs :p [12:01] Ned_: mape: I've been running with debug on for so long ... [12:01] mape: sys.puts(sys.inspect(message)); [12:02] mape: On every message [12:02] Ned_: oh bollocks ... [12:02] mape: l 657 [12:02] Ned_: yeah, my bad :p [12:02] Ned_: ACTION turns off debug [12:02] Ned_: and cleans up code [12:02] Ned_: mape: but it's working ? [12:02] mape: Oh yeah [12:02] Ned_: cool [12:02] Ned_: :-0 [12:03] mape: I'll show you what I've done when it is done.. ;) [12:03] peutetre has joined the channel [12:04] Ned_: mape: if you pull now, that garbage output is resolved :p [12:04] Gruni has joined the channel [12:05] mape: nice :) [12:07] Ned_: well, I wanted to write some more functionality tonight ... but I ended up writing documentation and releasing it instead [12:07] Ned_: :-( [12:07] Ned_: perhaps tomorrow I can write some more useful functionality [12:07] Ned_: like some methods so that you don't have to use send() all the time :p [12:07] Ned_: client.join('#blah'); client.say('#blah', 'Hiya!') [12:07] Ned_: etc ... [12:08] Ned_: Hmmm, in an event handler, does this refer to the object itself ? [12:08] Ned_: e.g. if I implemented those messages, could I then do: [12:09] chilts: I would expect so yeah :) [12:09] Ned_: client.addListener('join', function(chan,nick) { this.say(chan,'Hi ' + nick) }) [12:09] Ned_: or smoething [12:09] Ned_: something :p [12:09] chilts: try it and see :) [12:09] Ned_: heh [12:09] Ned_: I think it's a tomorrow thing :p [12:09] Ned_: well, shit, later today thing ;-) [12:10] javajunky: kkaefer: yeah I thought it would be, it certainly is up at the http layer now ( I use it in my oauth 2 clients ) [12:10] kkaefer: I'm not doing http [12:10] javajunky: kkaefer: yeah I know, thats why I was vague and pointed you at the tests ;) [12:15] Ned_: mape: I'm cruising off to bed now ... but if you have something cool, leave me a message and I'll have a squiz tomrorow ;-) [12:15] mape: For sure :) [12:19] stepheneb has joined the channel [12:20] joshowens has joined the channel [12:24] endor has joined the channel [12:30] thoolihan has joined the channel [12:32] mjijackson has joined the channel [12:32] ssteinerX has joined the channel [12:41] DrFlaska has joined the channel [12:44] mape: Hmm [12:45] mape: javajunky: ? [12:47] pandark_ has joined the channel [12:47] kjeldahl has joined the channel [12:47] derekcollison has joined the channel [12:48] DrFlaska has joined the channel [12:48] javajunky: mape: yeah? [12:49] mape: javajunky: Thanks, just needed the hilight. [12:49] mape: !register mape@mape.me [12:49] DrFlaska: Registered: mape@mape.me [12:49] javajunky: k [12:55] ncb000gt has joined the channel [12:59] mape: javajunky: http://ircgraph.mape.me/ :) [13:11] behmann has joined the channel [13:11] TheEnd2012 has joined the channel [13:15] thoolihan has joined the channel [13:16] phiggins has joined the channel [13:16] ncb000gt: mape: nice hidden text [13:16] ncb000gt: :) [13:16] mape: ncb000gt: :) [13:16] ncb000gt: mape: it's real time i take it? [13:17] mape: yeah [13:17] ncb000gt: cool [13:17] mape: Should get more interesting when more people start talking [13:17] micheil: _ry: good damn: http://newcome.wordpress.com/2010/05/08/node-net-node-js-implemented-in-javascript-on-the-net-runtime/ [13:17] ncb000gt: aye [13:17] KungFuHamster: I remember seeing that years ago, but it wasn't realtime [13:17] ncb000gt: micheil: blasphemy! [13:17] ncb000gt: :) looks cool tho [13:17] micheil: ncb000gt: i know. [13:17] kennon: mape: that looks pretty cool, do i have to !register to get added? [13:17] DrFlaska: Registered: mape: that looks pretty cool, do i have to to get added? [13:18] ncb000gt: hey, that's the nature of opensource right? [13:18] micheil: uh, sans the looks cool part [13:18] KungFuHamster: does it require highlight? [13:18] kennon: i think i borked it :-( [13:18] micheil: ncb000gt: true, but uh.. why?! [13:18] micheil: :P [13:18] ncb000gt: well, to start with, node doesn't run in windows [13:18] mape: kennon: Gah your breaking it! :P [13:18] ncb000gt: there are a number of people wanting to use node in windows [13:19] ncb000gt: mape: it seems to have brokeded? [13:19] mape: ncb000gt: Yeah think because KungFuHamster hasen't mentioned anyone [13:20] ncb000gt: shifty hamsters [13:20] KungFuHamster: well it's not working at all for me [13:20] ncb000gt: ... [13:20] KungFuHamster: blank screen [13:20] kennon: i broked it :-( [13:20] jherdman has joined the channel [13:20] mape: KungFuHamster: if you talk at me.. [13:20] MattJ: Blank screen++ [13:20] ncb000gt: kungfuhamster: that's because you broke it! [13:20] davidsklar has joined the channel [13:20] KungFuHamster: sadface [13:20] ncb000gt: better than a blue one [13:20] mape: Bah I should just fix it, 1sec [13:20] ncb000gt: heh [13:22] ncb000gt: I have an idea to fix it...everyone just hit refresh till your finger hurts. [13:22] MattJ: I'm already on it [13:22] ncb000gt: I'm sure the problem will go away [13:22] ncb000gt: mattj: perfect! [13:22] kennon: ncb000gt: nod, we should also try using ab and any other benchmarking frameworks we can think of to help him load test it [13:22] ncb000gt: kennon: agreed. [13:22] MattJ: or everyone should highlight everyone else in the channel [13:22] ncb000gt: I'll setup a tsung script [13:23] mape: There you go [13:23] MattJ: Works \o/ [13:23] mape: Now it works [13:23] ncb000gt: mattj: good idea, spread the graph [13:23] KungFuHamster: yay [13:23] KungFuHamster: awwww yeah! I'm on it [13:23] kennon: mape: that is really a cool app [13:23] ncb000gt: Agreed. [13:23] mape: So if you want to register your gravatar you type ! register followed by the mail with nothing else after.. [13:24] kennon: mape: is it possible to do that in such a way that my email doesnt get listed in the public irc channel? [13:24] ncb000gt: mape: where, in the irc? [13:24] KungFuHamster: I'm not even sure I have a gravatar [13:24] mape: Need to clean it up but yeah, at least it is a start :) [13:24] mape: ncb000gt: Yeah [13:24] mape: !register mape@mape.me [13:24] DrFlaska: Registered: mape@mape.me [13:24] smtlaissezfaire has joined the channel [13:24] ncb000gt: but, my email! [13:24] mape: Well, yeah.. [13:25] ncb000gt: Oh right, facebook is already giving away everything for free... [13:25] KungFuHamster: !register supergeek@gmail.com [13:25] DrFlaska: Registered: supergeek@gmail.com [13:25] ncb000gt: !register nicholas.j.campbell@gmail.com [13:25] DrFlaska: Registered: nicholas.j.campbell@gmail.com [13:25] KungFuHamster: heh, nope, no gravatar [13:25] ncb000gt: worked for me [13:26] KungFuHamster: I'm not even sure I have a gravatar [13:26] mape: KungFuHamster: Do you have a gravatar registred? [13:26] ncb000gt: mape: does the line get thicker/stronger the more you refer to that person? [13:26] MattJ: MattJ: MattJ [13:26] mape: Ah :P [13:26] mape: ncb000gt: Yeah [13:26] KungFuHamster: probably not :) [13:26] mape: And they group [13:26] ncb000gt: nice [13:26] ncb000gt: yea [13:26] kennon: mape: longpoll? [13:26] mape: MattJ: outsider ;) [13:26] MattJ: :( [13:26] mape: kennon: Not right now, just got it working, the idea is to use websockets [13:26] mape: So I can learn something new [13:26] micheil has joined the channel [13:27] kennon: mape: yeah, definitely awesome idea [13:27] ncb000gt: that's pretty cool [13:28] KungFuHamster: !register supergeek@gmail.com [13:28] DrFlaska: Registered: supergeek@gmail.com [13:28] KungFuHamster: hmmm I have a gravatar set up now, but it's not taking it.. maybe it's cached or something [13:29] ncb000gt: mape: i recommend http://unicornify.appspot.com/ instead [13:29] mape: KungFuHamster: takes some time [13:29] orlandu63 has joined the channel [13:29] mape: ncb000gt: heh :P [13:30] KungFuHamster: mape, should I try to re-register it in a while, say 30 minutes or so? or will it refresh on its own? [13:30] KungFuHamster: nm, it's there now ;) [13:30] mape: Jup, gravatar caches so takes some time [13:30] JAAulde has joined the channel [13:33] sztanphet has joined the channel [13:33] micheil_mbp has joined the channel [13:35] micheil has joined the channel [13:36] micheil has joined the channel [13:37] mikemike86 has joined the channel [13:38] TheEnd2012 has joined the channel [13:38] maushu has joined the channel [13:39] maushu: "Since the net2 merge, Node is again without TLS support. Rhys (the original author of the GnuTLS binding) is working on OpenSSL bindings for net2." [13:39] maushu: Shouldn't this be removed from the ongoing projects? [13:40] micheil: uhh.. maybe [13:40] olegp has joined the channel [13:44] texodus has joined the channel [13:45] mitkok has joined the channel [13:47] romainhuet has joined the channel [13:48] mape: sounds like a good idea [13:50] maushu: Changed and added a hint to the html parser. [13:51] maushu: I wonder why I never acknowledge mongodb as much as redis... [13:52] mape: because redis is just persistant memcache? [13:52] mape: (puts on flamecoat) [13:56] robrighter has joined the channel [13:57] maushu: mape: oh, I remember why. [13:57] maushu: There wasn't a decent node.js library for it. [14:00] sztanpet has joined the channel [14:02] javajunky: !register ciaranj@gmail.com [14:02] DrFlaska: Registered: ciaranj@gmail.com [14:03] ineation has joined the channel [14:04] micheil: what's all this registering for? [14:04] javajunky: _ry: have you looked at the .net thing ? [14:05] TheEnd2012 has joined the channel [14:05] gf3 has joined the channel [14:05] javajunky: micheil: what, no one told you ? [14:05] micheil: no [14:05] javajunky: micheil: dude, thats too bad [14:06] javajunky: micheil: so much free swag [14:06] javajunky: :P [14:06] MattJ: +1 [14:06] brodyberg has joined the channel [14:06] javajunky: micheil: (not really, mape's got an irc node thingy running) ;) [14:07] micheil: ah [14:07] micheil: okay [14:07] micheil: !register micheil@brandedcode.com [14:07] DrFlaska: Registered: micheil@brandedcode.com [14:07] micheil: :) [14:07] javajunky: hah now I know your password [14:07] javajunky: no wait [14:07] javajunky: ;) [14:07] micheil: ;P [14:07] micheil: I looked at the scroll back :P [14:10] maushu: I don't have scroll back. ;_; [14:15] keeto has joined the channel [14:15] brainproxy has joined the channel [14:16] sztanphet has joined the channel [14:19] mAritz has joined the channel [14:21] mAritz: hey, anyone here know whatever happened to nohm? (node.js-redis-client database mapper) [14:21] steadicat has joined the channel [14:31] mertimor has joined the channel [14:31] jmar777: so what's up with the Node.net? I think if I push all the innate disdain aside, that's pretty cool. [14:36] ncb000gt: jmar777: it seems that it could be an interesting project, personally i'd rather see the effort go into helping node.js work with windows...but if the purpose is for using a different js engine...then more power to them i guess. [14:36] mape: node.net? [14:36] ncb000gt: mape: aye [14:37] mape: ah.. .net :/ [14:37] ncb000gt: yea... [14:37] ncb000gt: that's partly what oss is about though [14:38] mape: forks and people doing stupid stuff? :P [14:38] ncb000gt: lol [14:38] mape: C:\> node.exe server.js [14:38] ncb000gt: I'd say it's far from "stupid", I've certainly done worse. [14:38] mape: for some reason that makes me feel strange [14:39] ncb000gt: mape: http://hannahmontana.sourceforge.net/Site/Home.html [14:39] quirkey has joined the channel [14:39] mape: On Linux, under Mono: 1C:\> mono node.exe server.js [14:39] mape: wtf? [14:39] ncb000gt: lol [14:39] ncb000gt: it is cross platform [14:39] ncb000gt: /duck [14:39] mape: c:\ on linux? [14:39] ncb000gt: lol [14:39] ncb000gt: well no [14:39] ncb000gt: err [14:39] ncb000gt: maybe wine? [14:39] mape: ncb000gt: hah that is awsome, hannah montana dist [14:40] ncb000gt: that is not awesome [14:40] mape: :D [14:40] ncb000gt: it makes the baby jebus cry [14:40] javajunky: if it lets people use node.js libraries etc. on windows its a damn good start imho, I'd much *prefer* a native server, but if it brings a bigger community on board, perhaps it will help ;) [14:40] ncb000gt: javajunky: those are my thoughts as well [14:41] mape: hmm.. wonderinf if I should implement a activity part of the irc graph, bigger avatar for active users. [14:41] ncb000gt: once node can work with windows then those people will have a really easy transition to something that is more powerful [14:41] ncb000gt: mape: my epeen know's no bounds...go for it! [14:41] mape: heh [14:42] ncb000gt: I'll write a script to just post .'s or something every so often for when i'm not around [14:42] ncb000gt: >=D [14:45] MattJ: !register mwild1@gmail.com [14:45] DrFlaska: Registered: mwild1@gmail.com [14:45] thoolihan has joined the channel [14:45] MattJ: Perhaps mape is a spammer and is just harvesting our email addresses for highly-targeted Node spam [14:46] jmar777: ncb000gt: sorry... had a quick meeting [14:46] justinlilly has joined the channel [14:46] mape: Totally, when I open my .net node-hosting you are the first one I will spam [14:46] psytek has joined the channel [14:47] justinlilly: what runs the logging here, out of curiosity? node.js bot? or just someone's irc client? [14:47] mape: node.js bot [14:47] jmar777: ncb000gt: but ya, I agree entirely. having node run natively in windows would be ideal, but I can still see the value in running it in a widely used runtime. as long as they can keep the common.js module portability, that would be sweet [14:47] justinlilly: ooh. source? [14:47] mape: Ned_ just pasted it like 10min after i started [14:47] mape: http://github.com/martynsmith/nodejs-irc [14:48] mape: So I switched over and got something working [14:48] justinlilly: ooh nice. Just recently did something simple with twisted for the same purpose, but this might be cool to play with. [14:48] mape: justinlilly: Or what logging do you mean? [14:48] ncb000gt: jmar777: yea, tho my spine gets that awful feeling when i think of people using .net :) [14:48] mape: the node graph thing or the ones on the node website? [14:49] Yuffster has joined the channel [14:52] justinlilly: mape: I meant nodejs.debuggable.com logging [14:52] justinlilly: the irc thing is basically what I was looking for :) [14:52] mape: justinlilly: Ah might be CIA-74 [14:53] justinlilly: http://github.com/justinlilly/imb0t -- my really simple irc bot in twisted. might port it to node. [14:53] jmar777: ncb000gt: ya... the thought of ever seeing "__viewstate" in a node.js app makes me want to hurl [14:53] ncb000gt: I saw that someone created a node-solr pluggin, might be a good idea for someone to combine nodejs.debuggable.com and node-solr [14:53] ncb000gt: for easier searching [14:53] justinlilly: I specifically would like to wrap nodejs-irc with the patterns.py stuff. [14:54] ncb000gt: jmar777: hah [14:55] jedschmidt has joined the channel [14:56] charlesjolley has joined the channel [15:12] smtlaissezfaire has joined the channel [15:16] andrewhampton has joined the channel [15:17] tmpvar has joined the channel [15:17] tmpvar: morning [15:18] softdrink has joined the channel [15:18] tmpvar has left the channel [15:19] tmpvar has joined the channel [15:19] tmpvar: morning [15:19] justinlilly: morning x2 [15:19] micheil: ACTION is really sick of people trying to benchmark apples and oranges. [15:19] mape: tmpvar: http://ircgraph.mape.me/ :D [15:19] mape: Had to drop the animations though [15:20] mape: The algorithm to find the positions is to heavy to loop at any decent framerate [15:20] tmpvar: hrm [15:20] tmpvar: !register tmpvar@gmail.com [15:20] DrFlaska: Registered: tmpvar@gmail.com [15:21] maushu: WOOSH! [15:21] maushu: I'm there! [15:21] maushu: !register maushu@graphnode.com [15:21] DrFlaska: Registered: maushu@graphnode.com [15:22] tmpvar: test [15:22] tmpvar: hrm [15:22] maushu: mape: My gravatar is wrong. FIX IT. [15:22] mape: maushu: Meh I just fetch the gravatar on the mail you state! [15:23] tmpvar: !register maushu@graphnode.com [15:23] DrFlaska: Registered: maushu@graphnode.com [15:23] tmpvar: heh [15:23] tmpvar: !register tmpvar@gmail.com [15:23] DrFlaska: Registered: tmpvar@gmail.com [15:23] maushu: mape: http://www.gravatar.com/avatar/37fc491db95105ff67aa9b45a2834dca?s=80 [15:23] mape: yes? [15:23] mape: That is what is shown [15:23] maushu: mape: No, you cut one pixel from the right and bottom. [15:24] maushu: Fix it or I'll go viking on you. [15:24] maushu: ACTION puts his viking hat. [15:24] mape: Its the resize [15:24] mape: ACTION plunders maushu  [15:24] maushu: You lie! [15:24] maushu: What size are you using? [15:24] mape: 30 [15:25] maushu: http://www.gravatar.com/avatar/37fc491db95105ff67aa9b45a2834dca?s=30 [15:26] airportyh has joined the channel [15:27] KungFuHamster: I like being on top [15:27] mnutt has joined the channel [15:27] maushu: mape: I checked, the size is correct, the resizing algorithm is not. [15:28] maushu: Why don't you use gravatar resize feature? [15:28] mape: maushu: well, It was more about learning canvas rather then making sure your avatar was correct [15:28] maushu: ...and how do you decide who is added there? [15:28] maushu: ...and what are the connections about? [15:29] mape: People who said something in the channel and are mentioned or have mentioned someone [15:29] maushu: like... _ry? [15:29] mape: Nope, he hasen't said anything [15:29] KungFuHamster: back and forth conversations without naming names should count.. another channel I was in used a java bot that did that [15:29] maushu: Bah. [15:29] maushu: KungFuHamster! [15:29] KungFuHamster: yes, maushu ? :P [15:30] maushu: Don't mind me. [15:30] mape: Hmm yeah I guess [15:30] KungFuHamster: I know, you're gaming the graph [15:30] maushu: Drat! [15:30] maushu: kennon is not here... ;_; [15:30] maushu: Oh nevermind, he doesn't need to be here. [15:30] maushu: jmar777 [15:31] KungFuHamster: oh now you're screwing things up! [15:31] maushu: micheil [15:31] KungFuHamster: I'm no longer on top [15:31] psytek has left the channel [15:31] maushu: MattJ is so far away. Come here and give me a hug! [15:31] KungFuHamster: back on top! [15:31] MattJ: <3 [15:31] KungFuHamster: barely, MattJ and I are pretty close [15:31] maushu: And to end this total disaster... javajunky! [15:32] MattJ: KungFuHamster: I'm worried about where this is leading [15:32] ineation has joined the channel [15:32] KungFuHamster: maushu is going to be the center of the universe... perhaps it will collapse under its own gravity [15:32] maushu: tmpvar and justinlilly are too far away. Fixed. [15:33] KungFuHamster: tmpvar's floating head is kind of creepy, dropshadow and everything [15:33] KungFuHamster: javajunky, save me! [15:33] KungFuHamster: crap [15:33] maushu: This looks like a orgy. [15:33] tmpvar: lol [15:34] maushu: javajunky: don't save anyone. [15:34] maushu: For some reason I can't seem to connect with justinlilly. [15:34] KungFuHamster: looks like the network map at the ISP I used to work for.. mape and ncb000gt have an OC48, everyone else is is chugging along with a DS3 [15:35] maushu: It looks like a arrow. [15:35] maushu: Oops, I think i broke it. [15:35] maushu: Nevermind, back again. [15:35] KungFuHamster: it flipped [15:35] javajunky: KungFuHamster: I can't save anyone, I've lost the link [15:36] maushu: <- screwing up graphs since 2010. [15:36] KungFuHamster: pfft, noob [15:36] mape: guess I should add a ignore feature... [15:36] maushu: !unlike [15:36] mape: hehe [15:36] maushu: Or !drain [15:37] maushu: To drain the life force of the surrended nodes. [15:37] maushu: Lots of fun could be had with this. Seriously. [15:39] KungFuHamster: make certain words increase or decrease the link.. negative words like disagree, hate, dislike, wrong, broken, bad will decrease the link, and words like good, agree, like, nice, blowjob would increase it [15:39] maushu: I see what you did there. [15:39] KungFuHamster: heh [15:39] MattJ: Negative == red lines, positive == green/blue? :) [15:40] mape: hehe [15:40] KungFuHamster: that could work too.. just like ISPs graph send/receive bits [15:40] maushu: I don't know, negative shouldn't attract. [15:40] maushu: mape could perhaps make so that negative links don't attract nodes but then it gets confusing. [15:40] ineation has joined the channel [15:41] dwww has joined the channel [15:42] andrewhampton has joined the channel [15:44] mape: There, stronger lines [15:44] javajunky: and the url ? ;) [15:45] mape: http://ircgraph.mape.me/ ? [15:45] ineation has joined the channel [15:49] KungFuHamster: do you have a git hub for the bot? [15:49] fyrerise has left the channel [15:50] mape: Not currently, feel like I need to clean it up before [15:50] mape: but I can paste it if you want to.. [15:50] KungFuHamster: k just curious [15:50] KungFuHamster: sure [15:50] KungFuHamster: if you don't mind [15:50] mape: Well you would owe me money of course [15:50] mape: But I don't mind [15:51] KungFuHamster: I will post virtual internet dollars to your whuffie account [15:51] KungFuHamster: Does 27 memes sound reasonable? [15:51] mape: KungFuHamster: http://gist.github.com/401322 [15:51] mape: Hehe sure [15:52] KungFuHamster: mape, thanks :) [15:52] mape: hmm guess I should do JSON.parse instead of eval [15:53] romainhuet has joined the channel [15:55] mape: Really should have somekinda cleaning as well based on time [15:55] pgriess has joined the channel [15:56] bpot has joined the channel [16:02] tmpvar has joined the channel [16:05] KungFuHamster: I see you changed the images for folks w/o gravatars [16:05] mape: Yeah, monsterid instead [16:05] KungFuHamster: but.. jmar777 and justinlilly have the same ones [16:05] mape: oh yeah.. 1sec [16:05] KungFuHamster: what are the odds? [16:05] andrewhampton has joined the channel [16:06] mape: There you go [16:06] mape: pretty large since they default to the same dummy mail if one isn't set ;) [16:06] mape: But that is no more [16:06] KungFuHamster: I feel like a lump today... I need to do some stuff around the house, but the intertia of my butt is too strong [16:06] mape: But now they get a new each time.. 1sec [16:07] mape: There we go [16:07] KungFuHamster: cool [16:10] andrewhampton has joined the channel [16:12] andrewhampton1 has joined the channel [16:12] stevendavie has joined the channel [16:14] lolninja has joined the channel [16:17] TobiasFar has joined the channel [16:18] andrewhampton has joined the channel [16:18] richcollins has joined the channel [16:20] ineation_ has joined the channel [16:21] felixge has joined the channel [16:21] felixge has joined the channel [16:26] andrewhampton has joined the channel [16:29] phiggins has joined the channel [16:32] mjr_ has joined the channel [16:37] mAritz has left the channel [16:39] maushu: Dammit justinlilly! COME HERE. [16:39] maushu: Give me a hug! \o/ [16:39] maushu: mape: You need a e-mail verification process. [16:41] kevwil has joined the channel [16:41] lolninja has left the channel [16:44] polo has joined the channel [16:44] WALoeIII has joined the channel [16:48] mape: maushu: for mailstealing? [16:48] mape: Or I'll just make it first come first serve [16:49] mape: http://jquerysocialgraph.mape.me/ vs http://ircgraph.mape.me/ [16:50] admc has joined the channel [16:51] maushu: http://antoniocangiano.com/2010/05/14/the-most-important-programming-language-today/ [16:52] mape: nice [16:54] mape: tmpvar: from 0.1.95: * fs.readFile returns Buffer by default [16:54] mape: Perhaps that was what made the eval of jquery wonky [16:54] ncb000gt: kungfuhamster: had you said something to me? [16:55] ncb000gt: my "notification" system apparently needs some work [16:55] ncb000gt: and when someone types something it auto scrolls the chat pane :(* [16:55] mape: ncb000gt: He hasen't [16:55] ncb000gt: hooray....weird [16:56] KungFuHamster: I think maushu highlighted everyone earlier [16:57] ncb000gt: interesting...maybe it's time to go back to irsii [16:57] ncb000gt: or maybe an emacs based irc client [16:57] ncb000gt: =\ [16:57] mape: irssi <3 [16:57] ncb000gt: :) [16:57] ncb000gt: I used it for a while but figured I'd give the libpurple stuff a go [16:58] smtlaissezfaire has joined the channel [17:00] bweaver has joined the channel [17:00] andrewhampton1 has joined the channel [17:02] mjr_: Once mscdex gets ncurses wrapped up, we'll all be able to write our own text-based IRC clients in node. [17:02] dgathright has joined the channel [17:02] mjr_: What a happy day we'll all have then. [17:05] mape: So when do we get a collaborative editor in ncurses backed by node? [17:06] mjr_: I'm sure you'll be able to whip one up pretty quickly once ncurses is there. [17:06] mape: Should be nie [17:06] mape: *nice [17:07] Phazm: !register node@phazm.com [17:07] DrFlaska: Registered: node@phazm.com [17:07] mikeal has joined the channel [17:09] mape: Phazm: hmm [17:09] mape: I think it totally just lied [17:10] Phazm: your bot hates me :( [17:10] mape: Or hmm, nah but gravatar doesn't seem to like you [17:10] mape: Is the gravatar registred? [17:11] Phazm: ... [17:11] Phazm: not yet ;) [17:11] mape: ? [17:11] mape: Oh hehe [17:11] Phazm: I only scrolled up enough to see a bunch of people registerring [17:11] mape: http://babarun.ru/content/canvas/ [17:13] isaacs has joined the channel [17:13] richcollins has joined the channel [17:16] phiggins has joined the channel [17:18] CIA-74: node: 03Matt Ranney 07master * r1f09635 10/ doc/api.markdown : Add process.version description. - http://bit.ly/dz3R6M [17:18] CIA-74: node: 03Matt Ranney 07master * r307e70a 10/ doc/changelog_header.html : Remove unused CSS reference. - http://bit.ly/bmtWbl [17:18] CIA-74: node: 03Matt Ranney 07master * rcd4f94e 10/ test/simple/test-http-exceptions.js : Add test for exceptions in HTTP parser event handlers. - http://bit.ly/c6AtCq [17:18] _ry: mjr_: thanks for the patches [17:18] mjr_: no problem [17:18] mjr_: Do I get to be in the authors file now. :) [17:21] _ry: aren't you already? you had that repl patch [17:21] mcarter has joined the channel [17:21] _ry: hm i guess not [17:21] steadicat has joined the channel [17:22] mape: _ry: :) [17:22] mape: hmm [17:22] mape: That shouldn't not happen [17:23] _ry: oh i think my awk script for updating the authors file sucks [17:23] mjijackson has joined the channel [17:24] mape: Seems you are immune _ry :/ [17:26] towski has joined the channel [17:27] dgathright has joined the channel [17:28] qFox has joined the channel [17:28] sveimac has joined the channel [17:29] sveisvei has joined the channel [17:32] xla has joined the channel [17:33] rictic has joined the channel [17:35] justinlilly has joined the channel [17:38] softdrink has joined the channel [17:42] mrjjwright has joined the channel [17:44] mcarter has joined the channel [17:52] pandark_: Some code on the API doc is hidden because of " .sh_sourceCode { font-family: monospace; overflow:hidden; } " [17:53] cloudhead has joined the channel [17:55] mape: pandark_: which section? [17:55] maushu has joined the channel [17:57] pandark_: mape, hmm� Query String for exemple, the third code block [17:57] mape: using a funky font? [17:58] psi0nik has joined the channel [17:58] pandark_: Not that I know [17:58] mape: oh nm [17:58] tlrobinson_ has joined the channel [17:58] richcollins: Any suggestions for reloading modules on each request? [17:59] mape: readFile and using eval? :P [17:59] Phazm has joined the channel [17:59] richcollins: mape: No way to invalidate the require cache? [17:59] mape: Not that I know of, but I don't know a lot os.. [17:59] mape: *so [18:00] mape: Think it is frowned upon since require is blocking [18:00] mape: shouldn't do a lot of it [18:00] MattJ: I really don't think you'd ever want to do it per request [18:00] MattJ: That would really hurt [18:00] richcollins: mape: This is during development [18:01] richcollins: I can't code fast enough for blocking to matter ;-) [18:01] mape: richcollins: looked at dj? [18:01] richcollins: No what is that? [18:01] mape: richcollins: http://github.com/lrbabe/node-DJs [18:02] mape: Something like that? [18:03] richcollins: That should work [18:03] richcollins: thanks [18:05] mape: np [18:08] voodootikigod: jedschmidt: yt [18:14] ncb000gt: mape: looks like your graph has an undefined there [18:14] mape: Yeah.. Not sure why it does that [18:15] mape: Think it has to do with _ [18:15] mape: pandark_: and _ry both won't work [18:15] ncb000gt: hmm, i see [18:15] mape: Not quite sure why though, since there is no issue having _ in the key [18:16] CIA-74: node: 03Ryan Dahl 07master * r320d3e9 10/ AUTHORS : Fix AUTHORS file - http://bit.ly/djw2LT [18:16] _ry: okay - i believe that to be correct [18:17] _ry: the authors file [18:17] _ry: http://github.com/ry/node/blob/320d3e9d332d77f8281055958f63c03343952b75/AUTHORS :) [18:18] towski has joined the channel [18:18] mape: bnoordhuis@bender.(none) ? [18:18] mape: strange td [18:18] _ry: http://github.com/ry/node/commit/c6c77d535f0e072913ba9a4d010105200ed9fa7e [18:20] ncb000gt: mape: i've seen that come out of misconfigured systems before. [18:20] DrFlaska has joined the channel [18:21] mape: _ry: Would you mind helping me out by just saying something? [18:21] _ry: mape: uh? [18:21] mape: Hmm yeah that returns as undefined.. [18:21] _ry: you making an irc bot? [18:21] mape: _ry: http://ircgraph.mape.me/ [18:22] mape: but the irc base I use seems to not like _ in the nicks [18:22] _ry: what does it show? [18:22] mape: Relations [18:22] jmar777: mape: so.... exactly how do I not be a green monster with a party hat? [18:22] mape: lines means people spoke [18:22] _ry: what defines a relation? [18:22] _ry: is it long poll? [18:23] mape: starting a message with the nick of another person [18:23] mape: nope, idea is to move it to websockets [18:23] andrewhampton has joined the channel [18:24] DrFlaska has joined the channel [18:24] mape: _ry: Mind testing again? [18:24] jmar777: undefined: [hacking relations] [18:24] jmar777: hehe... worked [18:24] voodootikigod: !register chris@iterativedesigns.com [18:24] DrFlaska: Registered: chris@iterativedesigns.com [18:24] _ry: mape: test [18:25] mape: God damin [18:25] mape: he has some wonky regex for getting nicks [18:25] mape: voodootikigod: :) [18:25] voodootikigod: I want to play too [18:25] voodootikigod: i am on the perphery [18:26] voodootikigod: what does this map even show [18:26] voodootikigod: ?! [18:26] DrFlaska has joined the channel [18:26] pandark_: !register not@real.tld [18:26] DrFlaska has joined the channel [18:26] pandark_: ^^ [18:26] voodootikigod: ncb000gt: you all doing a happy hour for the front desk lady leaving [18:26] richcollins: How do errors work for sync calss? [18:26] mape: Hmm sorry for this _ry but once more? [18:27] mape: Seems irc names are suppose to start with [a-z] [18:27] mape: not _ :P [18:27] jmar777: !register jmar777@gmail.com [18:27] DrFlaska: Registered: jmar777@gmail.com [18:27] ncb000gt: voodootikigod: there was one last night, I didn't end up going. i heard it was an interesting time. a few of my coworkers got slapped in the face by some burly biker dude. [18:27] richcollins: *sync calls [18:27] tmpvar: mape, have you put this on github yet? [18:27] _ry: mape: poop [18:28] mape: voodootikigod: If I mention you (like this) we get a line, if we talk to eachother the link gets stronger and darker [18:28] pandark_: !register not@real.tld [18:28] DrFlaska: Registered: not@real.tld [18:28] mape: _ry: There we go :) [18:28] voodootikigod: wtf [18:28] blowery: !register ben@blowery.org [18:28] DrFlaska: Registered: ben@blowery.org [18:28] tmpvar: im guessing your irc nick has to match your twitter username? [18:28] voodootikigod: blowery: omg [18:28] voodootikigod: pandark_: graphing you [18:28] blowery: voodootikigod: lol [18:28] mape: tmpvar: huh? [18:29] voodootikigod: tmpvar: center [18:29] tmpvar: have you pushed this to github? [18:29] richcollins: fs.openSync for example [18:29] voodootikigod: richcollins: focus [18:29] pandark_: DrFlaska, so you're a bot, right ? [18:29] voodootikigod: justinlilly: ping [18:29] justinlilly: voodootikigod: pong. [18:29] voodootikigod: javajunky: test [18:29] ncb000gt: voodootikigod: how's the new place? [18:29] voodootikigod: justinlilly: sorry just trying to become the center of the universe [18:29] mape: I guess this is why you don't do social graph bots in programing channels.. :P [18:29] justinlilly: voodootikigod: huh? [18:29] voodootikigod: ncb000gt: awesome [18:29] exlt has joined the channel [18:29] voodootikigod: justinlilly: http://ircgraph.mape.me/ [18:30] voodootikigod: _ry: you are on there now [18:30] justinlilly: what's that doing, exactly? [18:30] jedschmidt has joined the channel [18:30] mape: shows relations [18:30] justinlilly: ahh, the people I've replied to show up as links. [18:30] voodootikigod: justinlilly: if you have a "connect" it means you have messaged them [18:30] ncb000gt: voodootikigod: good to hear [18:30] mape: Or it is suppose to.. Now it just shows gaming beaviours [18:30] blowery: mape: relations or RELATIONS [18:30] phiggins: !register phiggins@gmail.com [18:30] DrFlaska: Registered: phiggins@gmail.com [18:30] justinlilly: that's actually vaguely interesting. [18:30] justinlilly: !help [18:30] blowery: phiggins: welcome to the graph [18:30] voodootikigod: phiggins: they will let anyone in [18:30] phiggins: apparently [18:31] dylanclendenin has joined the channel [18:31] ncb000gt: mape: looks like _ry is working now on there... [18:31] V1 has joined the channel [18:31] jenlindner has joined the channel [18:31] voodootikigod: monkeys: testing [18:31] nefD: huh.. thats pretty cool [18:31] justinlilly: !register justin@justinlilly.com [18:31] DrFlaska: Registered: justin@justinlilly.com [18:31] nefD: voodootikigod: ping?! [18:31] voodootikigod: nefD: pong [18:31] ncb000gt: o.0 [18:31] mape: ncb000gt: Yeah I had to fix the irc module Ned pasted [18:31] nefD: !register nefariousd@gmail.com [18:31] DrFlaska: Registered: nefariousd@gmail.com [18:32] ncb000gt: aha [18:32] exlt: !register michael@pbandjelly.org [18:32] DrFlaska: Registered: michael@pbandjelly.org [18:32] mape: Seems the regex for nicks didn't like _ in the beginning [18:32] tmpvar: mape, I'd like to fork this and optimize the canvas.. can you push it to github plz [18:32] voodootikigod: does it test for existence [18:32] voodootikigod: ? [18:32] tmpvar: [18:32] mape: tmpvar: Issue is that it isn't the canvas that is slow [18:32] pandark_: _ry, you are now related to me (?) [18:32] mape: it is the layout of the nodes [18:32] mape: if you profile it you'll see [18:33] ncb000gt: pandark: this is the new ancestry.com [18:33] jmar777: fakename: are you graphed? [18:33] pandark_: sorry I had to test at least once :) [18:33] justinlilly: mape: link to source for your graphing thing? [18:33] voodootikigod: ncb000gt: but so less meaningful [18:33] voodootikigod: :) [18:33] ncb000gt: voodootikigod: time to go modify that census paperwork i sent in earlier [18:33] mape: justinlilly: huh? [18:34] justinlilly: mape: Was just assuming that voodootikigod bot was yours as the domain is mape.me [18:34] voodootikigod: ncb000gt: making the line as dark as possible [18:34] voodootikigod: ?? [18:34] mape: :D [18:34] voodootikigod: I am not a bot [18:34] phiggins: lies [18:34] justinlilly: voodootikigod: perhaps just a very well programmed one? [18:34] voodootikigod: ok ok [18:34] blowery: voodootikigod: s/bot/crook/ [18:34] mape: voodootikigod: Shuhs! [18:34] voodootikigod: you found me out [18:34] phiggins: bots are all programed to say that [18:34] ncb000gt: voodootikigod: mape was talking about growing the image size based on number of lines...my epeen will be HUGE! [18:34] blowery: phiggins: you would know. bot. [18:34] voodootikigod: How do you like your steak? [18:35] voodootikigod: ncb000gt: its getting bigger [18:35] justinlilly: voodootikigod: can I have the source for the graphing thing? [18:35] voodootikigod: ncb000gt: and bigger [18:35] justinlilly: s/the source/a link to the source/ [18:35] pandark_: mape, Does it test if the name is registered ? [18:35] ncb000gt: voodootikigod: inorite?!? [18:36] voodootikigod: the source Segmentation fault - rebooting [18:36] mape: pandark_: Yeah, it only connects to someone who has said something in the channel [18:36] charlesjolley has joined the channel [18:36] voodootikigod: mape: you might want to put text up there that explains it [18:36] justinlilly: voodootikigod: also, line weight indicates frequency? [18:36] exlt: ah, I see.. ;) [18:36] voodootikigod: justinlilly: appears to [18:36] mape: voodootikigod: If we talk more [18:37] mape: voodootikigod: The power of three appears [18:37] voodootikigod: mape: magic happens [18:37] voodootikigod: mape: unicorns fly [18:37] mape: voodootikigod: The center of the universe [18:37] justinlilly: there it is. [18:37] voodootikigod: mape: the world is happy [18:37] mape: Hehe [18:37] voodootikigod: mape: ncb000gt: WIN! [18:37] justinlilly: voodootikigod: mape ncb000gt, mind if I join in? ;) [18:37] voodootikigod: justinlilly: i am going to test something, roll with me [18:37] exlt: DrFlaska conntections would be interesting [18:38] justinlilly: voodootikigod: I'm rollin. [18:38] voodootikigod: justinlilly: justinlilly: justinlilly: justinlilly: justinlilly: justinlilly: justinlilly: justinlilly: justinlilly: justinlilly: [18:38] voodootikigod: hahahah [18:38] voodootikigod: fail [18:38] mape: hehe only takes one per line [18:38] voodootikigod: disagree [18:38] ncb000gt: voodootikigod: mape: justinlilly: this just might make the universe explode! [18:38] mape: and only the first word [18:38] justinlilly: mape: I noticed that it didn't link me to ncb000gt when I mentioned him. [18:38] justinlilly: mape: see? no link. :) [18:38] voodootikigod: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: phiggins: [18:38] justinlilly: ncb000gt: I want to be linked to you too :-P [18:39] mape: What it does is that it builds a regex with all names... So /^(nick1|nick2|nick3)/ [18:39] justinlilly: oooh. nice. [18:39] ncb000gt: justinlilly: should i be worried? [18:39] mape: if that matches a connection is created [18:39] justinlilly: ncb000gt: not until I fetch the sewing kit. [18:39] voodootikigod: nerds: test [18:39] nerds: voodootikigod: test [18:39] voodootikigod: nerds: win [18:39] justinlilly: ncb000gt: speaking of, have you seen the previews for the horror movie "human centipede"? [18:39] exlt: _ry: watching the jsconf talk - been working with twisted for a couple years and currently eventlet - very interesting - thanks [18:40] ncb000gt: justinlilly: no [18:40] justinlilly: ncb000gt: do yourself a favor and avoid it if you can. [18:40] ncb000gt: exit: you know you want in on this derailment of the channel purpose [18:40] ncb000gt: ncb000gt: I will <-- test --> asploshun? [18:40] justinlilly: exlt: can I get a link to jsconf videos? [18:40] exlt: ncb000gt: sure - gotta spell my nick right, though :) [18:40] pandark_: micheil is far away from me in the graph� [18:40] ncb000gt: exlt: DAMN! [18:41] exlt: tab completion ftw.. [18:41] ncb000gt: exltyea, screw pidgin... [18:41] ncb000gt: blast! [18:41] brapse has joined the channel [18:41] ncb000gt: <-- fail [18:41] kkaefer: what's the best way to write an abnf parser in javascript? [18:41] jmar777: pandark_: joining [18:41] jmar777: micheil: joining [18:41] exlt: years of bitchs went away after I found irssi [18:42] justinlilly: s/chs/chX/ [18:42] exlt: s/bitchs/bitchx/ .. [18:42] _ry: exlt: cool - i hope node can win you over [18:42] _ry: :) [18:42] jmar777: pandark_: i made you closer :) [18:42] kixxauth has joined the channel [18:42] justinlilly: mape: just so I can quit asking, source is available or no? [18:42] ncb000gt: exlt: yea, I'm thinking i'll be going back to irsii [18:42] justinlilly: ACTION uses irssi. [18:43] mape: justinlilly: more or less I pasted a gist and the frontend code is on the site you are watching [18:43] exlt: _ry: I'm a systems engineer that works with a bunch of real programmers - convincing them of a better way to try things is always fun [18:43] pandark_: jmar777, I see [18:43] justinlilly: mape: http://gist.github.com/396970 -- this the gist in question? [18:44] justinlilly: ACTION looks at the source and realizes it isn't. [18:44] mape: justinlilly: http://gist.github.com/401322 [18:44] mape: perhaps not the latest but more or less the same [18:44] jmar777: ok - so all this graphing is making me think of the RDF stuff I wanted to, but apparently no one has done the work for me yet on [18:44] mape: I'll clean stuff up, figure out the licensing and put it on github [18:45] mape: just not now, beer and food is to alluring [18:45] jmar777: wanting to build a basic node.js client for a RDF store.... I'm thinking of doing a Sesame 2.1 compliant interface, but I'm very noob to this. anyone have a better idea? [18:45] _ry: i should expand the "addon" section of the docs [18:45] _ry: to show how to use the thread pool [18:46] mitkok has joined the channel [18:47] ajpiano has joined the channel [18:47] ncb000gt: mape: beer is always a better choice [18:47] roger_raymond has joined the channel [18:48] roger_raymond: !register roger@lynch-raymond.com [18:48] DrFlaska: Registered: roger@lynch-raymond.com [18:48] felixge: !register felix@debuggable.com [18:48] DrFlaska: Registered: felix@debuggable.com [18:49] creationix has joined the channel [18:49] gf3: !register gianni@runlevel6.org [18:49] DrFlaska: Registered: gianni@runlevel6.org [18:50] _ry: !register ry@tinyclouds.org [18:50] DrFlaska: Registered: ry@tinyclouds.org [18:50] gf3: mape: so what am I looking at? [18:50] mape: gf3: our relationship [18:50] voodootikigod: DrFlaska: omg [18:50] blowery: beer: http://skitch.com/blowery/dd1sr/cam [18:50] voodootikigod: felixge: volcano [18:51] gf3: mape: I don't see any chocolates or roses... [18:51] voodootikigod: blowery: fair choice [18:51] blowery: voodootikigod: best they had at the supermarket [18:51] fictorial has joined the channel [18:51] mape: gf3: Yeah.. like I said, our relationship.. :P [18:51] CIA-74: node: 03Ryan Dahl 07master * rda93230 10/ src/node.cc : Simplify stack trace reporting using new V8 API - http://bit.ly/bdnlFJ [18:51] gf3: OH SNAO [18:51] voodootikigod: gf3: in that *special* way [18:51] gf3: voodootikigod: that oh so special restraining order way [18:51] voodootikigod: gf3: you got it [18:52] voodootikigod: MattJ: bringing the graph back [18:52] roger_raymond: i'm not cool enough to be on the graph yet ;) [18:52] voodootikigod: roger_raymond: now you are [18:52] roger_raymond: voodootikigod: awesome! [18:52] voodootikigod: but how do we make money off this.... [18:53] voodootikigod: 1. idea [18:53] voodootikigod: 2. ... [18:53] roger_raymond: give me money [18:53] voodootikigod: 3. profit! [18:53] roger_raymond: i give it to someone else [18:53] gf3: roger_raymond: <3 [18:53] roger_raymond: gf3: need moar musick [18:53] gf3: roger_raymond: dude [18:53] gf3: roger_raymond: I have some crazy stuff for you [18:53] gf3: roger_raymond: have you heard of Chicago Juke? [18:53] roger_raymond: no [18:54] mape: voodootikigod: We market it as a facebook alternative and get donations [18:54] voodootikigod: done [18:54] gf3: roger_raymond: I'm going to blow your mind [18:54] gf3: later [18:54] voodootikigod: mape: and promise not to hold the data for millions [18:54] voodootikigod: gf3: thats what they all say [18:54] roger_raymond: gf3: should i wear protection? [18:54] gf3: roger_raymond: you most definitely should [18:54] mape: voodootikigod: Millions? I'll sell it for a cent if anyone is interested [18:54] gf3: voodootikigod: oh sure [18:55] gf3: voodootikigod: you filthy IRC slut [18:55] gf3: voodootikigod: <3 [18:55] voodootikigod: gf3: i prefer advanced troll [18:55] voodootikigod: gf3: less diseases [18:55] gf3: voodootikigod: this advanced? http://advanceduser.ytmnd.com/ [18:55] voodootikigod: ok seriously [18:55] tk has joined the channel [18:56] voodootikigod: my eyes burn like crabs [18:56] mape: Is that what kids nowaday watch? [18:56] roger_raymond: voodootikigod: that does not sound pleasant [18:57] gf3: mape: it's for advanced users of the internet [18:57] mape: Hehe yeah [18:58] pandark_ has left the channel [18:59] scudco has joined the channel [18:59] voodootikigod: i see your advanced user [18:59] voodootikigod: and i raise it an advanced web page [18:59] voodootikigod: http://raraahahahromaromamagagaoohlala.com/ [19:00] mape: .. >_:< [19:00] hellp has joined the channel [19:01] technoweenie has joined the channel [19:01] ncb000gt: lol [19:02] ncb000gt: voodootikigod: somehow I'm so happy that the first time I saw that page I had my sound turned off... I might slash your tires for this. [19:02] mape: hehe [19:02] voodootikigod: bring it [19:02] ncb000gt: it should also be a lesson for me to stop clicking on random links [19:02] voodootikigod: ra ra ah ah moam [19:02] ncb000gt: =\ [19:02] ncb000gt: more like ra ra ah ah maim [19:03] voodootikigod: its the modern rick roll [19:03] ncb000gt: no, that's trolololololololololol [19:04] tav_ has joined the channel [19:09] creationix1 has joined the channel [19:11] creationix has joined the channel [19:12] brianmario has joined the channel [19:14] ceej_ has joined the channel [19:15] dylanclendenin: voodootikigod: did you make that site? [19:16] voodootikigod: only the background music [19:17] creationix has left the channel [19:17] creationix has joined the channel [19:18] dylanclendenin: reminds me a little of an annoying site i made: http://biu.ghettochip.com/message/458fc2fd [19:19] dylanclendenin: just missing background music for the full annoyance effect [19:19] jenlindner: hey, i have a noob question --- want to try to use ircbot & node_chat together -- any advice? [19:19] ncb000gt: dylanclendenin: clearly i didn't learn my lesson from voodootikigod [19:19] ncb000gt: :( [19:20] dylanclendenin: yeah. sorry 'bout that. [19:21] saikat has joined the channel [19:24] andrewhampton has joined the channel [19:24] ncb000gt: bbl [19:24] ncb000gt has left the channel [19:25] tmpvar: anyone know of a streaming json parser for node or other? [19:26] brianmario: tmpvar: http://bitbucket.org/nikhilm/yajl-js/ [19:26] brianmario: waddya mean by "other"? [19:26] mape: js [19:26] tmpvar: browser, server.. in javascript [19:26] mape: that works with node, but isn't node specific [19:26] tmpvar: yeah [19:27] technoweenie: mape: i have some streaming json code in my twitter-node library [19:27] technoweenie: its kinda crappy, but it uses JSON.parse [19:27] mape: tmpvar: ^ [19:27] tmpvar: i see [19:27] tmpvar: yajl looks interesting [19:27] technoweenie: http://github.com/technoweenie/twitter-node/blob/master/lib/streaming_json_parser.js [19:27] technoweenie: yajl is the shit. use that if you can [19:28] tmpvar: k [19:28] tmpvar: thanks :) [19:29] richcollins: Hrm dj keeps reloading over and over without sending a new request or changing a file [19:29] mape: richcollins: save/changing main file or sub file? [19:30] richcollins: I'm not changing anything [19:30] roger_raymond: wtf is Gwibbler social client [19:30] mape: The next thing! [19:31] roger_raymond: oops, wrong channel - lol [19:31] tmpvar: eh [19:31] mape: Its like water in the forrest [19:31] roger_raymond: sorry [19:31] tmpvar: gnome do yo [19:31] tmpvar: pwn sauce [19:31] richcollins: mape: Ah it is a module file that doesn't parse properly [19:31] roger_raymond: is it worth using, since i've started discussing it in here? [19:32] roger_raymond: i just installed ubuntu 10.04 in a VM on my windows box to see if i can attach to all the networks here [19:35] jenlindner has joined the channel [19:35] kriszyp: is there any event that is emitted for when a connection is closed (by the client or network) while sending an http response (after getting the full request)? [19:36] jenlindner has left the channel [19:36] DracoBlue has joined the channel [19:37] kriszyp: oh, looks a "close" event on request.stream... [19:40] JAAulde has joined the channel [19:41] JAAulde: I just got approved as a Node tester on Heroku [19:41] JAAulde: yay [19:41] creationix: JAAulde: have fun [19:41] JAAulde: thx [19:42] mape: Nice :) [19:43] mape: creationix: welcome in (please don't break my code) [19:48] creationix: Did we ever figure out a way to share a http port among child processes? [19:48] creationix: I know someone had made an experimental pre-forking thing [19:49] riottaba has joined the channel [19:52] smtlaissezfaire has joined the channel [19:55] polo: How can I define the header when serving static files ? [19:55] javajunky has joined the channel [19:55] polo: in php we have like header('Content-type: ... [19:56] creationix: response.writeHead(200, {"Content-Type": "text/html"}) [19:56] creationix: polo: look at the http examples in the docs [19:56] polo: yeah but I'm using express' sendfile function [19:56] polo: Is it possible with it ? [19:57] creationix: oh, then you probably have to use some express specific function [19:57] creationix: express is doing the writeHead for you somewhere [19:58] polo: ok, I can have a look at the code [19:58] mwunsch has joined the channel [19:58] mwunsch has left the channel [19:58] rictic has joined the channel [20:00] polo: mm I can try with download first, it should at least correct the filename [20:00] javajunky: polo, wassup ? [20:02] polo: javajunky: you know... working on my project [20:02] javajunky: I meant with express ;) [20:03] polo: javajunky: Oh ok :) of course, well I'm just trying to serve static file [20:03] javajunky: k [20:04] polo: so I have to correct the filename first and then it should be ok [20:04] around has joined the channel [20:04] polo: sometimes you need to define the Content-type and other stuff [20:05] javajunky: k, so before the call to sendfile do 'this.header('Content-type', 'xxxx') [20:05] around: Any node.js hackers in Boston? [20:05] thotypous has joined the channel [20:06] javajunky: perhaps this.headeR('Content-type', type() ) ? [20:06] polo: javajunky: Oh of course, thank you (I'm so dumb I'm using it for json) [20:07] javajunky: yeah we keep talking about supporting that type natively, but its not that popular an approach (check the list) ..i..e if your function returns an object just serialise it. [20:07] javajunky: (and set the content-type. [20:08] javajunky: creationix: I'm hoping to push some errata that have been noted on my wheat blog later, and possibly a new one on playing with mongoose [20:09] javajunky: creationix: you around to push them upstream later ? [20:09] around: javajunky: are you really a java junky? (at least java as in coffee i hope) [20:10] creationix: javajunky: sure thing [20:10] creationix: I would love a mongoose article [20:10] creationix: I've been swamped with my new job lately [20:10] javajunky: yeah I'd like to just take my current one and look at 'mongoos-ing' it ;) …. looks interesting v. interesting. .. would like to see how much substance [20:15] loxs has joined the channel [20:16] davidsklar has joined the channel [20:16] maushu has joined the channel [20:16] creationix: _ry: you around? [20:16] loxs: folks, could you please show me an example of a "complete" node.js application, demonstrating things like templating, authentication, authorization etc. Mainly I am interested to see what's the right way to organize my code [20:17] creationix: loxs: for a traditional stack like that, express is the closest thing to what you're looking for [20:17] loxs: creationix, what is express? [20:17] creationix: node is much more flexible than web1.0 http apps [20:17] creationix: express is a node module [20:17] MattJ: I see a lot of people trying to use node as a web framework [20:17] creationix: http://expressjs.com/ [20:18] creationix: loxs: I've got some examples of node stuff at howtonode.org [20:18] javajunky: loxs: http://howtonode.org/express-mongodb demonstrates templating etc… I could add in the twitter / facebook / yahoo / digest authentication that exists with express too ? [20:18] loxs: MattJ, I'm not going to use it as a web framework, I'm going to make a Comet heavy app [20:18] mnutt has left the channel [20:18] pkrumins: _ry: there is trouble with buffers when passed 0 initial size. [20:18] creationix: loxs: now you're talking, node is great for that [20:18] javajunky: loxs: take a look at Socket.IO for good comet stuff [20:18] KungFuHamster: wow, the graph exploded [20:18] creationix: pkrumins: why would you ever do that? [20:18] tilgovi has joined the channel [20:19] loxs: javajunky, already know about Socket.IO. I'm now trying to figure out howto organize my code :) [20:19] javajunky: loxs: what sort of authentication are you after, this is what I've got so far for express: http://github.com/ciaranj/express-auth [20:19] javajunky: ah ;) [20:19] pkrumins: creationix: can happen programmatically [20:19] mattly has joined the channel [20:19] creationix: yeah, node is an IO layer on top of lib V8, it's a little too low level to be a web framework on it's own [20:19] creationix: but it's great for building web frameworks on top of it [20:19] loxs: javajunky, I'm after OpenID auth [20:20] javajunky: loxs: Irony, the one I've not done yet ;) [20:20] mape: polo: Diaspora @ $142,654 [20:20] marktlang has joined the channel [20:20] javajunky: its not hard though so its on my list ;) [20:20] mape: Oops, -polo [20:20] javajunky: creationix: what do you reckon, extend my blog example to use mongoose, or extend it to demonstrate authentication first ? ;) [20:20] loxs: javajunky, I havent done OpenID so far, so I don't even know what I'm after, but it'll come with time :) [20:21] javajunky: I can't tempt you with OAuth .. I've got a module for that (1, 1.0A and 2) ? [20:21] javajunky: (seperate from express) [20:21] loxs: javajunky, isn't OAuth authorization? I'm after the authentication stuff [20:21] javajunky: OAuth is commonly used for SSO as well [20:22] MattJ: Mmm, server-side OAuth in Javascript... must take a look [20:22] javajunky: for example you can use Twitter as your single-sign on [20:22] javajunky: or yahoo [20:22] javajunky: or facebook [20:22] javajunky: but you can *also* use it to request data from those apps if you wish (authorisation) [20:22] loxs: javajunky, yeah, that's exactly what I intend to do. Twitter, Facebook, Google whatever :) [20:22] loxs: javajunky, I don't really need to request data [20:22] javajunky: k, well my express-auth framework does a helluva lot of that already, at the worst its probably a decent reference [20:23] loxs: thanks, I'll have a look [20:23] javajunky: MattJ: http://github.com/ciaranj/node-oauth [20:23] javajunky: if you're using express it should work trivially [20:24] javajunky: it is a WiP however ;) .. I've not finished off the life-cycle events properly (new user registered etc.. ) .. and the multi-authentication-scoped strategy shiznit is a bit off atm [20:24] loxs: so, express is a web framework on top of node.js? [20:24] _ry: creationix: hey [20:24] loxs: cool [20:24] MattJ: javajunky: thanks (interested in implementing OAuth in another language, not dissimilar from Javascript, so it would make interesting reading) [20:25] javajunky: loxs: yeah, one of several, the 'coolest' is 'fab' the one with 'tenure' is probably express, there's also node-router, geddy, bomber, and a few others ;) [20:25] loxs: javajunky, sorry, I'm not a native speaker. What's "tenure"? [20:25] javajunky: (they mostly all of seperate focuses, but express, geddy and node-router are really the 'rails / sinatra' type equivalents) … the really interesting stuff in node is in the easy async IO, but the web frameworks are a good 'hook' [20:25] javajunky: loxs: sorry, 'been around for a while' :) [20:26] loxs: I see [20:26] loxs: I need the one that is most suitable for comet and couchdb :) [20:26] javajunky: sorry creationix I didn't mean to include node-router in there ;) [20:27] javajunky: I'm biased, I use express, I was using it with Socket.IO on the same port a while back, but things have changed fairly recently and I'm not sure how well (any) of the frameworks play with a shared server object atm .. none of them are out of the question though [20:28] loxs: what do I need a shared server object for? [20:28] loxs: couchdb is restful. [20:29] creationix: _ry: I'm trying to make a virtual host front end in node [20:29] creationix: to replace my nginx server [20:29] loxs: (sorry, probably I miss some part of the ideas of node.js :) [20:29] creationix: I know that sharing a fd among child processes would be the fastest solution, but that seems hard [20:30] _ry: creationix: i think having nginx in front is good [20:30] mape: _ry: As long as node is young? [20:30] mape: Or for ever and ever ever? [20:30] creationix: _ry: well, it also solves some other long standing issues [20:30] _ry: until we're we feel comfortable that it can't be rooted [20:30] creationix: like the master process can restart the workers when their code changes [20:30] creationix: or create one worker per process [20:30] _ry: or whatever [20:31] javajunky: loxs: sorry I mean sharing the 'socket' between the code serving the html, and the code serving, well whatever it is you're pushing down to the client. [20:31] mape: Has there been any security checks towards node? [20:31] _ry: not really [20:32] creationix: _ry: can't you just bind to port 80 and then change to a non-priviledged user [20:32] _ry: creationix: yah [20:32] creationix: good enough for me [20:32] blowery: doesn't microsoft have some awesome tools for checking that? [20:32] tjholowaychuk has joined the channel [20:33] blowery: http://msdn.microsoft.com/en-us/library/k3a3hzw7(VS.80).aspx [20:33] creationix: but I can't seem to figure out how to share the port among child processes [20:33] creationix: I don't want to mess with forking, just child processes [20:33] blowery: ACTION hides [20:33] derbumi has joined the channel [20:34] creationix: the other option is to serialize the input/output over ipc or just http proxy [20:35] creationix: _ry: unless you think it's going to be possible for me to share the port using just my knowledge of javascript, I'll just make a simple ipc protocol [20:35] JiMBastard has joined the channel [20:35] creationix: I figure it can't be much slower than nginx's http proxy [20:35] jenlindner has joined the channel [20:36] JiMBastard: does anyone know why IE chokes on : return s.match(/\<.*\>(.*)\<.*\>/)[1].toLowerCase(); [20:36] JiMBastard: ACTION ducks [20:36] _ry: creationix: yeah - i mean i don't really want to explain it now - the api is pretty low-level. so i guess you should proxy data [20:37] blowery: JiMBastard: because you're passing it a Number [20:37] creationix: no problem, I know it's one of the goals for node v0.4.0, so obviously it's non-trivial [20:37] JiMBastard: blowery: its dying before it even gets called, causing parse error [20:37] _ry: creationix: peter griess has a patch on the mailing list to do it [20:37] _ry: creationix: if you're interested [20:37] creationix: _ry: the pre-forking one? [20:38] _ry: yes [20:38] _ry: "pre-forking" [20:38] _ry: it's actually post-forking [20:38] creationix: well, "forking" either way [20:38] _ry: child processes are forks [20:38] blowery: JiMBastard: i really have no idea. looks valid, if dangerous, to me [20:38] _ry: vfork(), exec() [20:39] creationix: _ry: thanks [20:39] tmpvar: JiMBastard, add debugger; and break into vs.net ;) [20:39] JiMBastard: lol fuuu [20:39] blowery: why are you using regex? just parse the string yourself. [20:39] deanlandolt: JiMBastard: just press F12 [20:40] JiMBastard: i dont think my f keys go that high [20:40] deanlandolt: (isn't the IE debugger built into IE8?) [20:40] deanlandolt: f uuuuuuuuuuuu [20:40] JiMBastard: lo [20:40] JiMBastard: i know its that [20:40] JiMBastard: i got the error message too [20:40] JiMBastard: its just cryptic [20:40] JiMBastard: but i isolated [20:40] JiMBastard: its that line 100% [20:40] javajunky: JiMBastard: it seems kinda wrong ? the escaping of the slashes ? [20:41] deanlandolt: so s.match(/\<.*\>(.*)\<.*\>/) just fails? are you sure s is a string? [20:41] JiMBastard: deanlandolt: its a parse error [20:41] JiMBastard: not a runtime error [20:41] deanlandolt: gotcha [20:41] javajunky: turn s.match(/<.+\\>(.*)\<.+>/)[1].toLowerCase(); [20:41] deanlandolt: do you ned to escape is not a valid escape is it ? [20:43] JiMBastard: i think its [1] instead of .charAt(1) [20:43] JiMBastard: testing now on the IE machine, brb [20:43] deanlandolt: JiMBastard: /<.*?>(.*?)<.*?> [20:44] javajunky: /<.+?>(.*?)<\/.+?>/ ? ;) [20:44] deanlandolt: javajunky: i don't know if it's valid (could be the cause of the parse error) [20:44] mjr_: !register mjr@ranney.com [20:44] DrFlaska: Registered: mjr@ranney.com [20:44] deanlandolt: javajunky: look closer at JiMBastard's original though -- it didn't have a closing tag slash [20:44] deanlandolt: i wouldn't assume it's xml just yet :) [20:45] mscdex: yeah < and > don't need to be escaped in regex [20:45] mscdex: :> [20:45] mscdex: let me rephrase that, they shouldn't be [20:45] JiMBastard: hrmmm [20:45] JiMBastard: let me try the charAt solution, brb [20:45] JiMBastard: also i apologize for asking IE6 questions in node [20:46] JiMBastard: thats almost a bannable offense [20:46] tmpvar: yes [20:46] deanlandolt: charAt? what are you trying to do? in any event, fix your escaping issues first --that's why you're getting a parse error ;) [20:46] dgathright has joined the channel [20:46] tmpvar: stop! ban hammer time! [20:46] mjr_: It's more of a "laughable" offense. [20:46] javajunky: JiMBastard: that .match method will return an array not sure what you're doing with charat on an array ? ? [20:47] JiMBastard: yeah you right [20:47] javajunky: deanlandolt: yeah it looks like something ..weird regex ;) [20:47] JiMBastard: yeah its fucked up [20:47] JiMBastard: legacy tablesorter plugin parser [20:47] JiMBastard: id rebuild but its soft launch day [20:47] JiMBastard: i got put on this project last minute to ninja the shit out of it [20:47] JiMBastard: 1200 lines of yayquery later here we are [20:48] deanlandolt: javajunky: look closer -- it's not even /that/ :D [20:48] JiMBastard: so deanlandolt [20:48] JiMBastard: what you thinking i should replace (/\<.*\>(.*)\<.*\>/) with? [20:48] JiMBastard: i think i speak better chinese then regex [20:48] javajunky: oh yes really is weird. [20:48] deanlandolt: heh...yeah, sure enough [20:48] mscdex: what are you searching for? [20:48] deanlandolt: well, for starters -- drop the backslashes and try that [20:49] deanlandolt: you're trying to escape < and > but you don't need to [20:49] mscdex: yeah [20:49] javajunky: then swap out the * for a + *probably* ..and make it non-greedy ;) [20:49] deanlandolt: indeed [20:49] deanlandolt: but yeah, JiMBastard: whatcha searching for exactly? are you just looking for the inside of an element? if so, it's a LOT more complicated than that [20:50] tmpvar: heh [20:50] tmpvar: find > find second < substring the innards [20:50] JiMBastard: its just fubar [20:50] tjholowaychuk: 'what'.sup() [20:50] JiMBastard: ill show you the context [20:50] JiMBastard: http://gist.github.com/401654 [20:51] deanlandolt: okay, yeah -- whoever wrote that should probably be kicked in the balls... [20:51] JiMBastard: i mean [20:51] JiMBastard: it should be [20:51] tmpvar: lol [20:51] JiMBastard: return s.toLowerCase() [20:51] JiMBastard: or something [20:52] tmpvar: something other than what it is [20:52] JiMBastard: im gonna run the blame on this [20:52] mscdex: you need to return a string, not an array too [20:52] javajunky: JiMBastard: at the very least 'match' (assuming that regex was even vaguely valid) can return null [20:52] mscdex: i think [20:52] TheEnd2012 has left the channel [20:53] mjr_: Hooray, I'm websocketing. [20:53] deanlandolt: yeah, it could work wit ha valid regex -- the parse error is killing it before it gets that far [20:53] javajunky: creationix: wheat doesn't seem to work for me any more :( [20:53] mscdex: but yeah, start with removing the backslashes before the < and > [20:53] JiMBastard: its soo strange [20:53] JiMBastard: because we havent changed anything on this page [20:53] deanlandolt: JiMBastard: try return s.match(/<.+?>(.*?)<\/.+?>[1].toLowerCase() [20:54] JiMBastard: which makes me think its something else, but if we comment out th eline, it works [20:54] javajunky: creationix: scratch that, helps to update submodules ;) [20:54] tjholowaychuk: *pondering why the hell String.prototype.sup etc exist [20:54] mscdex: you're missing the last / there dean [20:54] deanlandolt: tjholowaychuk: String.prototype.sub [20:54] JiMBastard: yeah [20:54] JiMBastard: thats wrong [20:54] deanlandolt: goofy shit [20:54] JiMBastard: missing [20:54] mscdex: and ) [20:55] creationix: tjholowaychuk: good question [20:55] JiMBastard: yep mscdex [20:55] deanlandolt: JiMBastard: heh, sorry -- but it's fine other than that paren :) [20:55] deanlandolt: and a lack of a trailing slash [20:55] tjholowaychuk: 'what'.sup() + 'dont'.blink() [20:55] JiMBastard: same problem [20:55] tjholowaychuk: retarded [20:55] mscdex: hmm [20:56] JiMBastard: sup tjholowaychuk , good to see you chillin [20:56] tjholowaychuk: hahaha [20:56] deanlandolt: all of those yet no String.prototype.p?! [20:56] tjholowaychuk: ya wtf.. [20:56] tjholowaychuk: common now [20:56] deanlandolt: we get blink but not strong, em, b, i? [20:56] tjholowaychuk: nope lol bold haha [20:56] tjholowaychuk: and italic [20:57] deanlandolt: oh...perfect [20:57] tjholowaychuk: maybe not italic [20:58] deanlandolt: that's madness [20:58] JiMBastard: this is nooooooooode [20:59] V1 has left the channel [20:59] isaacs: haven't read it thoroughly, but scanning the backlog, it loosk like someone is trying to parse html with regexes [20:59] isaacs: ARE YOU CRAZY!? NEVER EVER DO THAT!! [20:59] mscdex: heh [20:59] JiMBastard: i was saying this last night, the first day of node logs are epic [20:59] JiMBastard: http://nodejs.debuggable.com/2009-11-23.txt [21:00] JiMBastard: the logs start, and like 15 mintues later i join the room for the first time [21:00] JiMBastard: asking where the windows binary for node is [21:00] javajunky: chortle ;) [21:00] JiMBastard: yeah isaacs , i ran the git blame and yelled already [21:00] JiMBastard: i have my own custom sort stuff already with JSLINQ and json [21:01] JiMBastard: sorting dom elements is for losers [21:01] JiMBastard: you sort the data and have a databind [21:01] JiMBastard: :-) [21:01] keyvan has joined the channel [21:01] mape: JiMBastard: Did you see http://ircgraph.mape.me/ ? :) Got it running of hot data [21:03] jenlindner: hey [21:03] jenlindner: what's a good beginner project with node? [21:03] Ned_: mape: how's you get on ? [21:03] jenlindner: anyone? anyone? [21:03] mape: a chat [21:03] mape: Ned_: ! Your irc thingy is broken [21:03] JimBastard: hey jenlindner ! [21:03] jenlindner: i wanted to modify node_chat [21:03] JimBastard: glad you made it [21:04] JimBastard: << marak [21:04] mape: The regex for nicks won't work if they have _ or begin with _ [21:04] Ned_: mape: broken how ? [21:04] Ned_: :-( [21:04] jenlindner: hey hey marak!! [21:04] robrighter_ has joined the channel [21:04] JimBastard: jenlindner: if you are going to modify node_chat you should be making GUI updates [21:04] Ned_: mape: interesting ... the RFC says that's not allowed [21:04] mape: Ned_: http://ircgraph.mape.me/ uses the irc bot :) [21:04] JimBastard: scottg and i have talked a lot about this [21:04] inimino: nice graph [21:04] keyvan: !register keyvan@mindynamics.com [21:04] DrFlaska: Registered: keyvan@mindynamics.com [21:05] JimBastard: mape: why is it not picking up on the bastard? [21:05] mape: Ned_: how about your nick? Or _ry ? [21:05] jenlindner: was looking at doctoring messages for fun, but it's not really interacting much with guts of things [21:05] technoweenie: jenlindner: depends on your interests. find something you already know something about. [21:05] orlandu63 has joined the channel [21:05] jenlindner: was looking at trying to do magic 8-ball [21:05] mape: JimBastard: Picking up what? We are connected [21:05] inimino: hm, did it just break? [21:05] Ned_: mape: true [21:05] Ned_: ACTION goes to read RFC [21:05] jenlindner: i like magic 8-balls [21:06] Ned_: mape: ::= { | | } [21:06] mscdex: ok, i just gave it a try, since i already have tablesorter [21:06] Ned_: Hmmm ... [21:06] technoweenie: jenlindner: http://github.com/creationix/wheat is a cool git-backed blog engine, hummingbird is a rad real-time traffic visualizer: http://mnutt.github.com/hummingbird/ [21:06] mape: Ned_: yeah and your regex is like [a-z][a-z-0-9]* [21:06] Ned_: mape: perhaps IRC servers are a little more flexible than the RFC ... [21:06] Ned_: okay, so I'm RFC compliant ... unfortunately no-one else is :-( [21:06] mscdex: JimBastard: the 's' string in the format function already strips out tags from my testing [21:06] mape: without the - in the middle [21:06] JimBastard: jenlindner: if you want to do the magic 8 ball thing you should create an IRC bot like i mentioned before [21:06] Ned_: I can fix that I guess ... [21:06] Ned_: mape: suggestions on what I should use ? [21:07] JimBastard: http://github.com/gf3/Jerk [21:07] JimBastard: ^^ irc bot [21:07] Ned_: or do you have a patch ? [21:07] jenlindner: technoweenie: thanks -- i appreciate it -- yeah saw hummingbird the other day [21:07] mscdex: JimBastard: or at least one level deep it does [21:07] JimBastard: then you could connect the magic 8 ball bot to the web chat [21:07] Ned_: JimBastard: I tried that, but I gave up ... and wrote a client lib [21:07] JimBastard: Jerk is easy [21:07] _ry: ls -l /usr/sfw/lib/libssl* [~] 9:11PM [21:07] Ned_: JimBastard: http://github.com/martynsmith/nodejs-irc [21:07] mape: Well, you could start by adding _ so my bot works (well I fixed it but better to keep it pullable) [21:07] _ry: lrwxrwxrwx 1 root root 17 Apr 29 11:44 /usr/sfw/lib/libssl.so -> ./libssl.so.0.9.7 [21:07] _ry: -rwxr-xr-x 1 root bin 1284344 Aug 9 2009 /usr/sfw/lib/libssl.so.0.9.7 [21:07] _ry: -rwxr-xr-x 1 root bin 138928 Aug 9 2009 /usr/sfw/lib/libssl_extra.so.0.9.7 [21:07] _ry: ^--- wtf [21:07] Ned_: JimBastard: yeah, not as flexible though IIRC [21:08] mscdex: that would make a great irc client name [21:08] mscdex: iirc :P [21:08] Ned_: mape: _ for any char ? [21:08] gf3: Ned_: http://github.com/gf3/IRC-js [21:08] javajunky: !register ciaranj@gmail.com [21:08] DrFlaska: Registered: ciaranj@gmail.com [21:08] blowery: good lord [21:08] JimBastard: whats this register about [21:08] MattJ: javajunky: didn't you already do that? :) [21:08] jenlindner: JimBastard: yeah i just got Jerk working -- it was indeed stupidly simple :) [21:08] blowery: there's like three of everything for node [21:08] blowery: it's amazing [21:08] mape: Ned_: well for nicks, now without my patch all nicks with _nick returns undefined [21:08] Ned_: gf3: yeah, I couldn't make that work when I tried ... [21:08] Ned_: :-( [21:08] JimBastard: blowery: fight for the mountain [21:09] Ned_: mape: that's a bit shit ... [21:09] Ned_: ACTION fixes [21:09] JimBastard: !register marak.squires@gmail.com [21:09] DrFlaska: Registered: marak.squires@gmail.com [21:09] gf3: Ned_: grammar if you're interested: http://github.com/gf3/IRC-js/blob/master/lib/parser_grammar.js [21:09] blowery: JimBastard: seriously. massive landgrab right now. [21:09] Ned_: mape: pushed [21:09] JimBastard: mape: whats up with analytics ? [21:09] mape: JimBastard: analytics what? [21:09] JimBastard: yeah for sure blowery , ive been in here for about 6 months or so, more people everyday [21:10] JimBastard: of the irc logs [21:10] mape: Ned_: Nice :) [21:10] mape: Yeah? What what? In the.. ? [21:10] Ned_: gf3: interesting [21:11] mape: JimBastard: It is the same I showed you last night? but with real data [21:11] JimBastard: no [21:11] JimBastard: one sec [21:11] Ned_: gf3: there's no documentation :-( [21:11] Ned_: :p [21:11] gf3: Ned_: sure there is [21:11] Ned_: oh ? [21:11] Ned_: ACTION is clicking aroudn git tree [21:11] gf3: Ned_: it's all inline, PDoc formatted [21:11] gf3: I just haven't generated it [21:11] JimBastard: mape: http://elanor.mine.nu/daeron/script.fi.html [21:11] mape: rtfc? [21:12] JimBastard: like that [21:12] JimBastard: i liked being ranked [21:12] JimBastard: :-D [21:12] mape: oh yeah mean that... [21:12] mape: meh [21:12] mape: MEH [21:12] gf3: http://github.com/gf3/IRC-js/blob/master/lib/irc.js#L551-567 [21:12] Ned_: gf3: pdoc is some sort of pull-docs-from-source-comments thing ? [21:12] mape: Guess I could build it to parse logs instead of real time [21:12] gf3: Ned_: http://pdoc.org/ [21:12] _ry: would be great if we could get a markdown -> groff compiler [21:12] _ry: then we can standardize on a doc format [21:12] mape: But that would end up being not useful/fin [21:12] Ned_: gf3: yeah, already reading there ;-) [21:13] _ry: i think in node we're going to use man pages [21:13] gf3: Ned_: example template: http://api.prototypejs.org/ [21:13] Ned_: Hmmm ... we need CNAN :p [21:13] Ned_: like CPAN, but for Node ... [21:13] mape: _ry: moving away from js-markup? [21:13] isaacs: Ned_: why not just use npm? [21:13] Ned_: isaacs: heh, I did see that ... how well does it work ? [21:13] JimBastard: ACTION slaps Ned_ with the noob stick [21:14] stevendavie has joined the channel [21:14] Ned_: :-( [21:14] _ry: mape: nothing beats manual documentation [21:14] isaacs: Ned_: it doesn't have all of cpan's features, like docs and whatnot, but it's also about 15 years younger ;) [21:14] JimBastard: welcome to node, to your left you will see _ry, he is god. to your right you will see isaacs, hes the man [21:14] mape: isaacs: Did you see the npm frontend someone did? :) [21:14] _ry: and javascript is too dynamic [21:14] Ned_: JimBastard: right ... [21:14] Ned_: ACTION notes :p [21:15] JimBastard: i am the bastard [21:15] Ned_: heh, [21:15] Ned_: ACTION is the n00b by the sounds of it [21:15] _ry: if we all use markdown, then maybe we can come up with some cool doc sites [21:15] JimBastard: feel free to follow me on github http://github.com/marak [21:15] isaacs: mape: whatnow? [21:15] JimBastard: its cool Ned_ , you are in the right place. welcome [21:15] _ry: maybe isaacs can integrate a pointer to the markdown file for each lib [21:15] Ned_: JimBastard: I've never used github before I uploaded that irc lib [21:15] _ry: into npm [21:15] Ned_: err, s/I've/I'd/ [21:15] isaacs: Ned_: it works pretty well. [21:15] JimBastard: i think 99% of node projects are hosted on githbu [21:16] JimBastard: github [21:16] isaacs: _ry: that wouldn't be too hard. [21:16] JimBastard: at least the opensource ones [21:16] Ned_: isaacs: yeah, I quite like it [21:16] _ry: isaacs: like in package.json - you could just have 'doc': 'doc.markdown' [21:16] mape: isaacs: said I would do a frontend for npm, but seems someone did it before me [21:16] JimBastard: gtg [21:16] Ned_: I like how it shows my README.md file on the front page [21:16] Ned_: http://github.com/martynsmith/nodejs-irc <-- like so [21:16] isaacs: _ry: or i could just grab the README* [21:16] isaacs: like how github does. [21:16] isaacs: people use that. [21:16] Ned_: heh, snap [21:16] _ry: isaacs: default to that, but let people specify others [21:16] isaacs: _ry: wanna post an issue? [21:17] isaacs: mape:oh, i thought you were saying someone already did something [21:17] Ned_: isaacs: where do I find npm? [21:17] _ry: no - i'm just thinking about it still [21:17] isaacs: Ned_: http://github.com/isaacs/npm [21:17] Ned_: oh duh [21:17] _ry: should we standardize on a documentation format? [21:17] Ned_: yeah, I should search _then_ ask [21:17] Ned_: :p [21:17] mape: isaacs: I did, I'm swedish you know, I speak in riddles [21:17] Ned_: _ry: I vote yes :-) [21:17] isaacs: mape: that explains SO much [21:17] _ry: i think ronn-style markdown is good [21:17] Ned_: _ry: the API docs for core are really good [21:17] mape: isaacs: http://mscdex.net/npm/list.html [21:17] isaacs: _ry: i think just grabbing README* is fine [21:18] _ry: isaacs: would that work for npm itself? [21:18] isaacs: mape: check out the "ls" command in the latest npom [21:18] isaacs: *npm [21:18] mape: _ry: For all node modules? [21:18] mape: Or just core [21:18] javajunky: Ned_: there's *also* kiwi (in the interests of fairness) kiwijs.com ;) [21:18] isaacs: _ry: sure. npm has a README [21:18] _ry: mape: all modules [21:18] mape: Whoa [21:18] isaacs: oh, or do you mean documenting fs.js with that, etc. [21:18] _ry: isaacs: what about your man pages? [21:18] felixge has joined the channel [21:18] felixge has joined the channel [21:18] _ry: felixge: ping [21:18] isaacs: _ry: i generate those from doc/etc.md [21:18] felixge: _ry: pong [21:19] isaacs: so there's pacakge-level, and then also module-level, which is deeper. [21:19] mape: isaacs: Is that page what you imagined? (please say no so I can get a stab at doing it :P) [21:19] isaacs: it'd be nice to have a package.json point at a pile of markdowns or something, and then npm's registry could be neat [21:19] isaacs: mape: eh. i dunno. take a stab at it. that's pretty nice, though [21:19] isaacs: much prettier than i'd envisioned, actually [21:19] Ned_: mape: any other irc lib issues ? [21:20] mscdex: i guess i should start writing docs for ncurses [21:20] mape: Ned_: Not that I know of right now :) I'll make sure to shout if there is something [21:20] Ned_: ;-) [21:20] tjholowaychuk: _ry: any thoughts on http://groups.google.com/group/nodejs/browse_thread/thread/3589a3fdace31ca ? [21:20] mape: isaacs: I'll try to make you proud, try to throw some communist feeling into it [21:21] Ned_: so where does npm get its package manifests from ? [21:21] isaacs: Ned_: http://registry.npmjs.org [21:21] isaacs: Ned_: it's just json for now [21:21] isaacs: Ned_: the jsonview extension for firefox makes it much more pleasing to view [21:21] Ned_: right, and how do you registed stuff there ? [21:21] isaacs: Ned_: man npm-developers [21:22] Ned_: curl -s http://registry.npmjs.org/ | json_xs | gvim - [21:22] Ned_: :p [21:22] Ned_: isaacs: heh, I haven't actually installed it yet ... [21:22] Ned_: :p [21:22] Ned_: but yeah, might have to have a play :-) [21:22] isaacs: Ned_: then http://github.com/isaacs/npm/blob/master/doc/developers.md [21:23] Ned_: cool [21:23] mape: isaacs: hmm npm fails.. Error: `man` failed with 1 at ChildProcess. (/usr/local/lib/node/.npm/npm/0.1.10/package/lib/utils/exec.js:23:18) [21:23] mape: on make [21:23] Ned_: so err, if I'm writing an IRC client library, should it be net.irc?, or just irc? [21:23] mape: as root [21:23] Ned_: is there a convention for namespacing modules ? [21:23] isaacs: mape: that's weird. [21:23] isaacs: mape: what os? [21:23] mape: hmm now it works.. [21:23] mape: second time around [21:23] mape: debian 4 [21:24] isaacs: mape: that's just running man -w to list out the man path [21:24] mape: although if I just do npm to get help I get TypeError: undefined is not a function at /usr/local/lib/node/.npm/npm/0.1.10/package/lib/help.js:23:7 [21:24] mape: on v0.1.95-1-g4e40e88 [21:24] isaacs: Ned_: read that developer doc [21:24] isaacs: Ned_: for naming github projects: no. [21:24] Ned_: isaacs: heh, I'm just too impatient ... I'm about half-way through [21:25] mscdex: i didn't know 1.95 was out :o [21:25] olegp has joined the channel [21:25] isaacs: Ned_: hehe [21:25] javajunky: so I'm gonna do a part 2 of my howtonode article on using express & mongodb full app, any preferences on what I tackle next …. its between 'mongoose' or 'social web integration with twitter/facebook/yahoo etc.' ? [21:25] javajunky: mscdex: .95 is much more awesome than both .93 + .94 [21:25] mscdex: nowai [21:25] fermion has joined the channel [21:27] olegp has joined the channel [21:27] chilts: ACTION gets latest Git to use 1.95 :) [21:27] gf3: Ned_: IRC messages should be terminated with \r\n [21:27] tjholowaychuk: javajunky: mongoose would be cool, haven't checked it out much but would be neat to see what they do ORM-wise for async [21:27] Ned_: gf3: ahh, I'm not sending \r\n ? [21:27] Ned_: gf3: I'm checking for it when parsing messages ... [21:28] Ned_: gf3: pushed a fix :-) [21:29] javajunky: tjholowaychuk: yeah I'd like to look at mongoose personally, but the only feedback I've had on the last article was about adding authentication ;) [21:29] chilts: when building Node 1.95, it seems to want 'ab installed - is that ApacheBench? [21:29] tjholowaychuk: javajunky: ah :p well thats still good too [21:29] isaacs has joined the channel [21:29] progrium has joined the channel [21:29] Ned_: Hmm, does anyone know why node in Debian sid for amd64 seems stale ? [21:30] javajunky: chilts: yeah [21:30] chilts: shouldn't configure tell me it needs it or something? [21:30] mscdex: node 1.95 on karmic amd64 compiles fine for me :S [21:30] javajunky: there was a conversation on the mailing list about it I think, perhaps worth checking there. [21:30] ewdafa_ has joined the channel [21:30] mscdex: although there were some warnings i think that flew by [21:30] Ned_: mscdex: yeah, I'm running on lucid here, and sid at work ... both cases compiled it myself [21:31] progrium: hi jazzychad, brianmario tlrobinson et al [21:31] Ned_: mscdex: but i386 sid has a package you can just install for 1.95, but 1.33 for amd64 :-( [21:31] isaacs: hi, progrium [21:31] mscdex: oh, a package [21:31] brianmario: progrium: wassup dude [21:31] Ned_: isaacs: I like that last step :p [21:31] progrium: not much, finally started playing with node [21:32] tlrobinson_: progrium hey [21:32] mscdex: i just roll my own packages with checkinstall hehe [21:32] isaacs: Ned_: which last step? [21:32] Ned_: "Brag about it" [21:32] isaacs: oh, right. hehe [21:32] isaacs: yeah [21:32] isaacs: that's like, the candy at the end of the game. [21:32] Ned_: isaacs: I'm still not sure on naming convention [21:32] chilts: javajunky: righto thanks, am installing apache2-utils [21:32] chilts: but I would have thought that ./configure would check and complain [21:32] chilts: ACTION will try again [21:32] Ned_: isaacs: there's some stuff in there, but it still doesn't really answer my net/irc or just irc question [21:32] tjholowaychuk: chilts: you can install ap stand-alone as well [21:32] Ned_: :p [21:32] CWolves has joined the channel [21:33] tjholowaychuk: ab ** [21:33] isaacs: Ned_: what would you call your thing if you were talking about it? that's the base. then prepend "node-" to it if it's node-specific, or append "-js" to it if it's just plain ol' javascript [21:33] chilts: that's ok, I think it's in that package, so I'm happy to do that :) [21:33] javajunky: hmmm the error handling in mongoose is 'weird' .. if I'm reading it correctly, the error handling is 'global' .. not local o the particular call [21:33] javajunky: (well weird for node that is ) [21:33] progrium: is there a central issue tracker? [21:33] Ned_: isaacs: yeah, it's node specific ... so I've called it nodejs-irc for now ... [21:33] CWolves: wondering if anyone can give me a hand, I'm just trying to build on OSX and getting a syntax error in jsmin.py [21:33] Ned_: isaacs: but I'm just thinking as more modules are added, you probably want some namespacing to save confusion ... [21:33] chilts: sweet, make test works now ... thanks javajunky [21:34] Ned_: much like perl doesn't have IRC, it has Net::IRC [21:34] javajunky: ha! no it brings back in promises, ace, still love those bad boys (sorry _ry) [21:34] tjholowaychuk: javajunky: would be kinda cool if callback arity > 1 passed the error, otherwise global [21:34] isaacs: Ned_: eh. a single level works for CPAN, and it's humonginormous [21:34] tjholowaychuk: javajunky: or emitted at a query level or something [21:34] isaacs: Ned_: i'll worry about that problem when i get to it [21:34] Ned_: isaacs: fair enough [21:34] Ned_: :p [21:35] Ned_: isaacs: I notice some packages in the manifest have paths ... [21:35] javajunky: tjholowaychuk: the queries return a promise that has an 'error' method … [21:35] progrium: do we just use http://github.com/ry/node/issues? [21:35] tjholowaychuk: javajunky: ah :p [21:35] mape: isaacs: have you thought about having external info fetched into the npm repo? Like github watchers and whatnot? [21:35] gf3: rubygems works just fine sans namespaces [21:35] isaacs: gf3: i disagree with the "fine" bit, but certainly, namespaces are not their problem [21:35] isaacs: meeting. bbiab [21:37] bmizerany has joined the channel [21:37] mscdex: so is there a documentation system that generates neat docs for C++ node addons? :> [21:37] bmizerany has joined the channel [21:38] progrium: bmizerany: hi [21:38] bmizerany: progrium: yo! [21:38] progrium: did i hear you guys recently got another round of funding? [21:39] mape: ? [21:39] bmizerany: yup. 10mil. [21:39] progrium: bmizerany: just remember you're gonna pay for taking that much :P [21:39] bmizerany: that's plenty to make node on Heroku fkn awesome. :) [21:39] mape: how about giving some to ry? :D [21:40] progrium: hire ry? [21:40] bmizerany: mape: sure, tell him to come on over. :) [21:40] mcarter has joined the channel [21:40] progrium: oh geez [21:40] progrium: mcarter: hi! [21:40] bmizerany: can anyone help me understand SSL with node? [21:40] progrium: what's with all these people i know in here [21:41] bmizerany: I'm trying to get a client speaking ssl [21:41] mcarter: progrium, how's it going? [21:41] javajunky: bmizerany: whasts to understand? Take a look at the test-tcp-tls [21:41] javajunky: or is it http(s) you're after. [21:41] mcarter: progrium, I guess you know too many people [21:41] bmizerany: http [21:41] progrium: mcarter: good, still on tomorrow? [21:41] progrium: technoweenie: *high five* [21:41] mcarter: progrium, sounds good to me [21:41] bmizerany: javajunky: yeah. tcp seems strait forward [21:42] technoweenie: hey progrium [21:42] mape: Didn't they just add certs so https is even easier? [21:42] javajunky: mape: yeah, its a cinch now [21:42] chilts: sweet, 1.95 installed :) [21:42] progrium: technoweenie: do you know anybody else using the Multipass idea you have? [21:42] technoweenie: uservoice [21:42] technoweenie: tender's multipass stuff is compatible with uservoice [21:43] bmizerany: mape: maybe. I'm not familair with how ssl works, completely. do I need a cert to talk with all https servers? if so, do I generate it everytime? .. [21:43] technoweenie: the encryption anyway, i think tender and uv support different keys [21:43] _ry: tjholowaychuk: i haven't got ot it yet [21:43] progrium: ah that makes sense. i remember they were looking for a solution like that a while back [21:43] technoweenie: bmizerany: you shouldn't need a cert for http. [21:43] javajunky: tjholowaychuk: http://github.com/nw/mongoose/commit/a06605ac4b9b80b87864f08550537ce3fc1748b0 [21:43] bmizerany: technoweenie: https thought? [21:43] bmizerany: *though [21:43] tjholowaychuk: _ry: k cool no rush [21:43] progrium: bmizerany: not for a client connection [21:43] bmizerany: technoweenie: how you feeling today? :P [21:44] javajunky: bmizerany: ah it depends on whether you're self-signing or not (and whether you want the connection to be verified) [21:44] tjholowaychuk: javajunky: whoop! [21:44] technoweenie: bmizerany: nah a client shouldnt need a cert for https [21:44] bmizerany: progrium: ah cool. then I guess I'm looking to find out how to so it the http.ClientRequest [21:44] javajunky: bmizerany: here's an example https://gist.github.com/f7d99e5ac8f289551191 [21:44] javajunky: bmizerany: but in your case you can create an empty crypto object (don't pass any cert) [21:45] javajunky: bmizerany: I suspect its even easier than that as that was a couple of weeks ago [21:46] javajunky: bmizerany: yeah, it is in fact much simpler now, here's some code I wrote from earlier in the week ;) http://github.com/ciaranj/node-oauth/blob/master/lib/oauth2.js#L32 [21:46] bmizerany: javajunky: ah. I saw that yesterday but, when I saw the cert, was like, "this isn't what I'm looking for", then moved on. heh. I took a closer look and get it now. [21:46] progrium: so where can i look to see if chroot is on the roadmap? [21:47] technoweenie: oh wow, that https shit is hardcore [21:47] bmizerany: javajunky: oh wow. that is easy. heh [21:47] technoweenie: you actually have to do all the work of getting the ssl cert and verifying it, i thought that'd all be built in [21:47] captain_morgan has joined the channel [21:47] technoweenie: i thought you were talking about http client certs [21:48] bmizerany: technoweenie: see the oauth example form javajunky. it's even easier than the gist. [21:48] javajunky: technoweenie: not if its using one of the mozilla standard certs I don't think you do [21:48] javajunky: ? [21:48] technoweenie: ahh [21:48] technoweenie: cool is this for oatuh2 [21:48] technoweenie: yes, oauth2.js [21:48] javajunky: (sorry to be clear, is signed by ) one of the standard Certificate Authorities [21:48] javajunky: yes [21:48] javajunky: Its tested and working with the facebook social graph [21:49] javajunky: its really in place for express so if you write an express app you can use facebook to sign in ;) neato [21:49] javajunky: but for obvious reasons I separated it off into its own module so others could help fix it ;) [21:49] technoweenie: i should try that against github [21:49] progrium: anybody currently successfully chrooting node *and* running without privileges? [21:50] javajunky: yeah please do (and push back any neccessary fixes..) …however oauth2 is so trivial I doubt there's much wrong (with the web-agent model anyho) [21:51] progrium: bmizerany: how are you guys safely running node? [21:52] javajunky: http://groups.google.com/group/comp.lang.c/msg/e105e5d339edec01?pli=1 <— this is the best answer to a lazy-technical question I've seen in a long while ;) [21:53] javajunky: hell-yeah mongoose is now available as a kiwi package 'kiwi install mongoose' ;) [21:54] tjholowaychuk: hahahaha [21:54] tjholowaychuk: that is intense man [21:54] mape: heh [21:55] mau has joined the channel [21:56] charlesjolley has joined the channel [21:58] progrium: chroot and setuid... no developments like that? anybody know who i can ask to get started in adding those? [22:06] jmar777 has joined the channel [22:06] Ned_: anyone know what package i need to install to get nodejs to compile with openssl support ? (in Ubuntu Lucid) [22:07] progrium: Ned_: probably the openssl devel package. i don't know what its called [22:07] Ned_: yeah, I can't see it :-( [22:07] Ned_: ACTION will keep looking [22:08] Ned_: Hmmm ,libssl-dev [22:08] Ned_: sounds promising [22:08] progrium: hah, yes it does [22:08] Ned_: yay! [22:09] Ned_: yay for ccache [22:10] mscdex: yeah i was about to say, libssl-dev :) [22:10] Ned_: I was searching for openssl [22:10] Ned_: which was a bit fail [22:10] Ned_: :p [22:12] progrium: i guess we can't use node for production yet :( [22:13] Ned_: heh [22:13] progrium: womp womp, back to twisted for me [22:13] mjr_: progrium: somebody made jefe, that's a good place to start. [22:13] mjr_: I don't think it does chroot, etc. [22:14] progrium: no it doesn't. i'm using jefe, but that's not what i'm looking for [22:14] progrium: (using it for something else) [22:14] mjr_: Yeah, it needs a little C wrapper to chroot and drop privs. [22:15] Ned_: oh weird ... [22:15] Ned_: mape: were you just installing npm before ? [22:15] mape: yes [22:15] darkf has joined the channel [22:15] progrium: mjr_: it doesn't need to be C [22:16] mrjjwright has joined the channel [22:16] progrium: i can do it in python BUT, it needs to do it *after* it binds ports [22:16] progrium: so it needs to happen inside node [22:16] Ned_: progrium: just fix it with iptables :p [22:16] Ned_: hackity hack hack [22:16] mjr_: BTW, in case anybody was wondering, that hilarious "print an ASCII diamond" obfuscated C thing actually works. [22:16] mjr_: http://gist.github.com/401748 [22:17] progrium: Ned_: not sure our cto would go for that [22:19] Ned_: right ... I got npm installed ... yay! [22:20] progrium: bmizerany: so tell me about your setup :P [22:20] bmizerany: progrium: ha. what do you want to know? [22:21] scudco has joined the channel [22:21] progrium: bmizerany: are you running a custom version of node? [22:22] bmizerany: progrium: nope. [22:22] bmizerany: progrium: it's raw, naked node baby. [22:22] progrium: bmizerany: have you guys figured out proper multi tenancy for ityet? [22:22] bmizerany: progrium: how do you mean? it's multi-tenant now [22:24] progrium: i assume you're running it in the same set up you do your mongrel/thin/whatever process in? do you chroot or anything like that? [22:26] creationix: mjr_: that's crazy stuff there [22:26] progrium: dyno [22:26] progrium: that's what i was looking for [22:26] progrium: so you just run node in your existing dyno rig? [22:30] progrium: whoops. bmizerany. tag [22:32] tjholowaychuk: did stream setTimeout() change in 0.1.95? [22:33] inimino: progrium: should be a small patch to add setuid, in fact, I think mcarter already added that if I'm not mistaken [22:34] progrium: links? [22:34] progrium: inimino: link or it didn't happen [22:36] creationix: _ry: did you get my twitter pm? [22:37] bmizerany: progrium: sorry. was afk. [22:37] creationix: inimino: you mean like process.setuid()? [22:37] bmizerany: progrium: it's all confined to the apps user space [22:37] inimino: creationix: yeah, that's the one... it's even documented [22:37] bmizerany: progrium: and yes. it's the same way we do ruby [22:37] creationix: is there something to get the number of cores on a machine? [22:38] progrium: bmizerany: so could i actually bind to a random port? [22:38] inimino: so you have your setuid, and for chroot, just start node in a chroot [22:39] creationix: too bad chroots can't set processor or memory limits on the environment [22:39] progrium: inimino: i guess you can chroot whenever. so yeah, if i listen and then setuid, that might work [22:40] bmizerany: progrium: you can try. there isn't anything that would talk directly to it. [22:40] progrium: bmizerany: oh right, you wouldn't expose any of those [22:40] progrium: so it would be pointless [22:41] progrium: inimino: so where is setuid? in latest git? [22:41] bmizerany: progrium: correct. I mean, if someone decided to connect to random port, hit yours, then send you unencrypted traffic full of sensitive information, you could wind up with some good shit. don't count on anyone being *that* dumb. :) [22:41] creationix: inimino: no, it was added a while back [22:42] creationix: it's on process [22:42] progrium: bmizerany: right :) [22:43] progrium: creationix: you're saying setuid is in the latest release? [22:43] creationix: progrium: yeah, process.setuid() has been in node for a few releases [22:43] progrium: i'm looking at nodejs.org/api.html and its not there [22:44] progrium: getuid, no setuid [22:44] inimino: I'm looking at it on that very page [22:44] creationix: progrium: http://nodejs.org/api.html#process-getuid-61 [22:44] progrium: oh the index doesn't list it [22:45] progrium: funny [22:45] creationix: I wish the anchors were easier to get at [22:45] creationix: hmm, must be the comma [22:45] progrium: yep [22:46] _ry: creationix: no [22:47] creationix: _ry: I was wondering if we could come up and visit tonight [22:47] Ned_: Hmmm, npm expects id_dsa or id_rsa :-( [22:47] creationix: or if not, some time this weekend [22:47] mjijackson has joined the channel [22:48] _ry: creationix: hm - not tonight - let me get back to you - i think i'm doing stuff each day [22:49] creationix1 has joined the channel [22:50] creationix1: _ry: no problem, just let me know [22:50] _ry: creationix1: i'll ping you later tonight [22:50] creationix1: _ry: great [22:53] Ned_: is it only isaacs that has access to npm users? [22:53] Ned_: I created a user, but it's le-busted :-( [22:54] airportyh has joined the channel [22:54] admc has joined the channel [22:54] brapse has joined the channel [22:57] bmizeran_ has joined the channel [22:57] isaacs has joined the channel [22:57] Ned_: ah ha, he's back! [22:57] Ned_: isaacs: I have issues :p [22:57] isaacs: great [22:57] Ned_: :/ [22:57] Ned_: isaacs: I've done lots-o-npm stuff [22:58] Ned_: http://github.com/isaacs/npm/issuesearch?state=open&q=adduser#issue/31 <-- and I filed that [22:58] isaacs: sweet [22:58] Ned_: I think I need you to remove my account [22:58] isaacs: i was just about to ask if that was you [22:58] isaacs: hehe [22:58] Ned_: so I can add it again [22:58] isaacs: ok [22:58] Ned_: :-) [22:58] Ned_: ta [22:58] isaacs: Ned_: you're martyn? [22:58] Ned_: yup [22:58] Ned_: Martyn Smith even :p [22:59] isaacs: can you email me from the email address that you used so that i'm sure it's you? [22:59] Ned_: http://github.com/martynsmith/nodejs-irc <-- I'm trying to publish that [22:59] Ned_: isaacs: sure, martyn@dollyfish.net.nz right ? [22:59] isaacs: yep [22:59] Ned_: what's your email ? [22:59] isaacs: i@izs.me [22:59] Ned_: sent [22:59] isaacs: Ned_: it shouldn't matter if it can't encrypt the auth for the npmrc, though. [23:00] isaacs: Ned_: that'll just keep warning you [23:00] Ned_: Hmmm, well I used the config auth | base64 thing [23:00] isaacs: Ned_: it should still work fine with unencrypted auth [23:00] Ned_: and it's giving me invalid creds [23:00] isaacs: ah, i see [23:00] isaacs: okie dokie [23:00] Ned_: the problem was [23:00] Ned_: it let me register without a key [23:00] Ned_: but it wouldn't let me set auth without a key [23:00] isaacs: if you look in the npmrc, do you have a "authCrypt"? [23:00] Ned_: so I _had_ to get a key before I could enter stuff into .npmrc [23:00] Ned_: I do now ... [23:00] Ned_: because I put a key in place [23:01] Ned_: but without a key, it wouldn't put a line in there [23:01] isaacs: Ned_: i'll dig through it, but it should just work with the unencrypted auth if you dont' have that [23:01] isaacs: Ned_: i'll make sure of that assertion tonight, though [23:01] Ned_: :-) [23:01] Ned_: email should be sent [23:01] isaacs: Ned_: accoutn deleted [23:01] Ned_: :-) [23:02] isaacs: see if it works now to do adduser [23:02] Ned_: :-) [23:02] Ned_: will do [23:02] Ned_: yup [23:02] Ned_: ACTION does export HISTFILE= [23:02] Ned_: :p [23:02] Ned_: again ... [23:02] Ned_: :p [23:02] Ned_: Hmmm, publish appears to be working :-0 [23:02] isaacs: i know, i'd love to be able to do a read -s style [23:02] Ned_: it's definitely doing _something_ [23:03] Ned_: Hmmm ... it's doing it slowly ;p [23:03] isaacs: http://registry.npmjs.org/irc [23:03] isaacs: still uploading the tarball [23:03] Ned_: right [23:03] Ned_: how big is that tarball ? [23:03] Ned_: :p [23:03] Ned_: ahhh, finished [23:04] Ned_: okay, so that's okay then ... [23:04] isaacs: hrm... https://registry.npmjs.org/irc/-/irc-0.1.0.tgz says 404 [23:04] iheartnodejs has joined the channel [23:04] iheartnodejs: testing [23:04] iheartnodejs: yey [23:04] Ned_: heh, what was that ? [23:04] mscdex: debugging :P [23:05] Ned_: isaacs: so err, something wrong ? [23:05] isaacs: Ned_: if there's an error displayed, then yes. [23:05] Ned_: well, there's not ... [23:05] Ned_: not that I can see ... [23:05] Ned_: I gues I'll remove it with npm, then try installing it from the repo :-) [23:05] Ned_: ACTION tags his release :p [23:06] Ned_: Hmmm ... rm failed :( [23:06] isaacs: weird... [23:06] Ned_: ahh ... [23:06] Ned_: deactivate first [23:06] Ned_: ACTION will have to read more documentation  [23:06] Ned_: to find out what that means :p [23:07] Ned_: anyway, it's removed now [23:07] Ned_: so I'll try installing it [23:07] Ned_: oh, I need to make it "stable" [23:07] Ned_: which is lies ... but hey, it'll make it easier to install ;-0 [23:07] isaacs: whoa.... that was weird... [23:07] isaacs: there is a ghost in the install. [23:07] Ned_: ? [23:08] isaacs: i need to test this more exhaustively tonight. maybe it's time for a version with no code changes, just testing [23:08] Ned_: heh [23:08] Ned_: well ... [23:08] Ned_: it's all working for me now ... [23:08] Ned_: I managed to install it from the repo [23:08] isaacs: that publish "upload twice" process is a bullshit kludge. [23:08] Ned_: everything is apples :-) [23:08] isaacs: sweet :) [23:08] Ned_: is there a "search" ? [23:08] Ned_: I noticed there was an issue filed about it [23:09] Ned_: and what page should I read to work out what "active" means ? [23:09] Ned_: :p [23:09] isaacs: Ned_: active is what you get if you require("irc") [23:09] isaacs: Ned_: you can search with npm ls [23:09] Ned_: ahh, becase you can have multiple versions installed ? [23:09] isaacs: npm ls @active @stable [23:09] isaacs: right [23:09] isaacs: npm ls irc [23:09] Ned_: ahhh ... I see now ... [23:09] mikeal has joined the channel [23:10] Ned_: isaacs: ls only shows me installed packages ? [23:10] Ned_: I only see irc and npm, [23:10] Ned_: but I know there's a websocket thing in the manifest ... [23:10] isaacs: Ned_: npm ls on the latest shows you all packages everywhere [23:10] Ned_: oh ... [23:10] Ned_: I'm 0.1.10 [23:10] isaacs: hrm... me too? [23:10] Ned_: weird ... [23:11] Ned_: it's not "active" [23:11] Ned_: which is a little strange [23:11] Ned_: when I ran make [23:11] Ned_: it didn't put a binary anywhere [23:11] Ned_: so I'm using cli.js from the folder where I curl | tar [23:11] Ned_: is that "right" ? [23:11] isaacs: Ned_: the regular make does "./cli.js install npm@stable" [23:12] Ned_: ./cli.js --auto-activate always install . [23:12] Ned_: I think I got that ... [23:12] isaacs: yeah, that installs whatever you downloaded [23:12] isaacs: you did the fancy install :) [23:12] Ned_: heh [23:12] Ned_: so where does it install binaries by default ? [23:12] Ned_: like "npm" for example ? [23:13] isaacs: it installs them in $(npm config get binroot) [23:13] Ned_: right [23:13] isaacs: process.installPrefix/bin [23:13] Ned_: ACTION does npm config list [23:13] Ned_: /usr/local/buin [23:13] Ned_: that's not going to work as my user :p [23:13] _ry: how do i get a list of npm packages? [23:13] Ned_: I can just change that right ? [23:13] isaacs: _ry: npm ls [23:14] isaacs: _ry: if that's not showing you remote packages, then update npm [23:14] Ned_: _ry: although that didn't work for me ;-) [23:14] pandark_ has joined the channel [23:15] Ned_: isaacs: well I definitely have 0.1.10 - and I definitely don't see remote packages :-( [23:15] isaacs: weird.. [23:16] Ned_: you're not running a linked version or something ? [23:16] Ned_: that hasn't been published ? [23:16] Ned_: there's no 0.1.10 tag for example [23:16] Ned_: (well, not that I can see) [23:17] isaacs: Ned_: 0.1.10 is a version, not a tag [23:17] isaacs: Ned_: try npm install npm@latest [23:17] isaacs: Ned_: or npm install npm@stable [23:17] Ned_: isaacs: sure, but you have tags v0.1.9, v0.1.8 etc [23:17] mikeal: npm is taking over :) [23:17] Ned_: npm install Nothing to install [23:18] Ned_: I get nothing to install for @latest and @stable [23:18] isaacs: Ned_: oh, i see, in the git repo. [23:18] isaacs: yeah, i forgot to tag that one [23:18] Ned_: :) [23:19] Ned_: mscdex: what irc client were you using up there ? [23:21] isaacs: Ned_: here's what it does for me: http://gist.github.com/401823 [23:21] Ned_: okay, I'll give it another whirl [23:22] Ned_: removing the version I have [23:22] isaacs: did you maybe point the registry config somewhere funky? [23:22] drudge has joined the channel [23:22] Ned_: isaacs: not that I'm aware of ... [23:22] Ned_: crap, npm rm npm is failing for me :-( [23:22] Ned_: perhaps because I changed the binroot [23:22] Ned_: npm ! Error: ENOENT, No such file or directory [23:22] Ned_: npm readJson /home/martyn/.node_libraries/.npm/npm/package/package.json [23:23] Ned_: it seems that that is what's missing [23:23] isaacs: it should save the configs when a package is installed, so that it can be reliably uninstalled. [23:23] isaacs: that's a bug. [23:23] Ned_: oh ... [23:23] Ned_: :-( [23:23] Ned_: so err, can I manually "remove it ? [23:23] Ned_: so I can try installing it again ? [23:23] Ned_: perhaps I could just rm ~/.node_libraries -r [23:23] Ned_: ? [23:23] Ned_: and install with cli.js again ? [23:23] isaacs: Ned_: that'd do it [23:23] isaacs: Ned_: or just "make" [23:24] Ned_: heh, make didn't play nice last time :p [23:24] isaacs: Ned_: you should probably also rm /usr/local/bin/npm* [23:24] Ned_: there won't be anthing in /usr/local/bin [23:24] isaacs: i see [23:24] Ned_: because I never used sudo, and it's root writable [23:24] Ned_: :-) [23:24] isaacs: k [23:24] isaacs: if you sudo, then npm will default to being in multi-user mode [23:24] isaacs: putting stuff in /usr/local/lib/node instead of ~/.node_libraries [23:24] Ned_: right [23:25] Ned_: nah, I don't need multi-user [23:25] isaacs: k [23:25] Ned_: Hmmm ... testEngine failed [23:25] isaacs: what version of node are you using? [23:25] Ned_: $ node --version [23:25] Ned_: v0.1.94-20-gc90e44e [23:25] _ry: creationix: you should upgrade howtonode to 0.1.95 [23:25] Ned_: npm testEngine required: node ">=0.1.93" [23:26] Ned_: that seems weird [23:26] Ned_: isaacs: it seemed to install anyway [23:26] isaacs: Ned_: are you sure testEngine failed? [23:26] Ned_: and ls is still busted :-( [23:26] isaacs: Ned_: gist the log, plz [23:26] Ned_: isaacs: no, I'm not ... [23:26] Ned_: http://paste.dollyfish.net.nz/05b938 [23:27] Ned_: err, that's a snippet [23:27] Ned_: hang on [23:27] Ned_: I'll paste the whole thing [23:27] Ned_: http://paste.dollyfish.net.nz/6b8fdc.txt [23:27] isaacs: ok, so, that's not failing on the testEngine, but rather sometime later, in a spot where i've not added logging to a fs call, like a dummy. [23:27] Ned_: right ... [23:27] Ned_: my bad [23:27] Ned_: so err, [23:27] Ned_: it seems to be installed anyway [23:27] Ned_: which is strange [23:28] Ned_: and still not showing me stuff on ls [23:28] Ned_: :-( [23:28] mscdex: Ned_: I was using a homemade one using ncurses and felix's irc module [23:28] Ned_: right [23:28] Ned_: ACTION just put his irc module on npm :p [23:28] isaacs: Ned_: so, *something* didn't get installed properly, apparently. [23:28] _ry: mscdex: can you put ncurses on npm? [23:29] Ned_: isaacs: indeed ... [23:29] isaacs: ACTION is starting to feel like he should have been careful what he wished for... [23:29] mscdex: heh [23:29] _ry: i want to see if it builds the binding automatically [23:29] Ned_: isaacs: is there any "update" thing I need to run to get the manifest before ls will show me all packages ? [23:29] mscdex: _ry: i will once i get some documentation in there [23:29] _ry: mscdex: markdown! [23:30] isaacs: Ned_: no, it should just fetch from the registry [23:30] mscdex: i was planning on using doxygen to create my docs, is there an easier way? [23:30] isaacs: mscdex: i really like ronn [23:30] isaacs: mscdex: write in markdown, and get manpages [23:30] Ned_: isaacs: I don't have a registry in my .npmrc [23:30] Ned_: ? [23:30] Ned_: should I ? [23:31] isaacs: Ned_: no, that means you'll use the default [23:31] mscdex: hmm [23:31] Ned_: right [23:31] isaacs: Ned_: .npmrc is just for settings that aren't the defaults [23:31] Ned_: npm config registry "https://registry.npmjs.org/" [23:31] Ned_: yeah, config list gave me ^^ that [23:31] Ned_: so that sounds okay ... [23:31] isaacs: yep [23:31] CIA-74: node: 03Ryan Dahl 07master * r0b7bda8 10/ wscript : Remove some unused cruft from wscript - http://bit.ly/9STtpi [23:31] sixtus42 has joined the channel [23:31] Ned_: heh, lol @ "---sekretz---" [23:31] derRichard: is currently somebody working on a fuse binding for node? [23:32] Ned_: isaacs: okay, well I'm baffled about the error on install, and the fact ls doesn't work :-( [23:32] Ned_: I suspect they may be related :/ [23:32] isaacs: Ned_: indeed, i'm sure they are [23:32] mscdex: aw, it's written in ruby :-/ [23:32] isaacs: Ned_: npm should not ever print errors. that always means something broke. [23:32] tk has joined the channel [23:32] Ned_: right [23:33] mscdex: where's jonn? :P [23:33] Ned_: oh well, hopefully you can figure it out at some point :-) [23:33] isaacs: Ned_: yeah... [23:33] isaacs: Ned_: try man npm [23:33] isaacs: Ned_: does that show you anything? [23:33] Ned_: isaacs: it doesn't keep a local copy of the package list ? [23:34] Ned_: isaacs: the man pages aren't installed [23:34] Ned_: because I didn't use sudomode :p [23:34] isaacs: AHA! [23:34] isaacs: ok [23:34] Ned_: is that the problem perhaps ? [23:34] isaacs: maybe [23:34] Ned_: :-) [23:34] Ned_: perhaps I should yeild and use sudo ... [23:34] Ned_: :p [23:34] isaacs: it looks like it got to someplace in the activate, and then failed [23:34] isaacs: i should just install the man pages with a bash script, so i can *make* it sudo for that bit [23:35] isaacs: i'm almost certain it's int he install-docs.js script [23:35] CIA-74: node: 03Ryan Dahl 07master * ra9b962a 10/ wscript : Add --without-ssl configure option - http://bit.ly/aPHnax [23:36] creationix has left the channel [23:37] isaacs: Ned_: it's really odd that it's failing with an ENOENT, though [23:37] isaacs: that makes no sense. [23:37] Ned_: it doesn't appear to have install the binary either ... [23:37] isaacs: yeah [23:37] isaacs: maybe i should default the binroot to ~/bin if you're not sudo. [23:38] Ned_: oh, Hmmm ... [23:38] Ned_: ACTION tries something [23:38] Ned_: oh no ... same issue [23:39] isaacs: Ned_: what's ls -laF scripts/install-docs.js [23:39] Ned_: in what dir ? [23:39] isaacs: in the npm dir [23:39] Ned_: -rw-r--r-- 1 martyn martyn 2012 2010-05-12 06:49 scripts/install-docs.js [23:39] isaacs: ok, so that's there... [23:39] Ned_: Hmmm, [23:39] Ned_: I got it to install a binary [23:39] Ned_: but it's #!/usr/local/bin/node [23:39] Ned_: which isn't where node is :-( [23:39] airportyh has joined the channel [23:39] Ned_: is there a config thing for that ? [23:40] isaacs: ned, where is node!? [23:40] Ned_: heh, it's in ~/bin/node [23:40] Ned_: atm [23:40] isaacs: Ned_: you didn't tell it that when you did ./configure! [23:40] Ned_: #!/usr/bin/env node [23:40] isaacs: Ned_: what's process.installPrefix in the repl? [23:40] Ned_: oh, like node itself ... [23:40] Ned_: okay, so my bad on that one :p [23:40] isaacs: hahahaha [23:41] Ned_: NODE_PREFIX: /usr/local [23:41] isaacs: thanks! you showed a very very subtle bug. [23:41] Ned_: basically, I did make [23:41] isaacs: i should verify that node is where it thinks it is [23:41] Ned_: but not make install [23:41] Ned_: :-) [23:42] Ned_: okay, I might rebuild node [23:42] Ned_: with a different prefix [23:42] Ned_: I'd really like a Debian package ... [23:42] Ned_: :p [23:42] isaacs: Ned_: it's fine, as long as you ./configure --prefix=whatever [23:43] Ned_: right [23:43] Ned_: the problem I have with installing to /usr/local [23:43] Ned_: is what a debian package does come along [23:43] Ned_: I'll have a bunch of cruft in /usr/local [23:43] Ned_: :p [23:43] mscdex: cruft ftl [23:43] Ned_: yes ... [23:43] Ned_: cruft is quite a cool word though :p [23:43] Ned_: ACTION tries out dh-make [23:45] isaacs: Ned_: you could use nave and then everything will live inside nave's folder [23:45] CIA-74: node: 03Ryan Dahl 07master * rac3a2d8 10/ (3 files in 2 dirs): Changes to work on Solaris 10 - http://bit.ly/b7imRf [23:45] Ned_: nave ? [23:45] _ry: felixge: ---^ [23:45] Ned_: ACTION googles some more [23:46] isaacs: Ned_: http://github.com/isaacs/nave [23:46] isaacs: brand new baby project [23:46] Ned_: heh [23:46] Ned_: right [23:46] Ned_: interesting [23:46] Ned_: ACTION might try building a .deb [23:46] Ned_: quickly [23:46] Ned_: hopefully [23:47] mscdex: checkinstall! :D [23:48] Ned_: Hmmm ... dh_make got a little angry at me ... [23:48] steadicat has joined the channel [23:49] mscdex: so in npm, is v0.0.0 considered to be the master/head version? [23:49] mscdex: for a package [23:49] sztanpet has joined the channel [23:50] isaacs: mscdex: no. v0.0.0 is just the second-lowest possible version number. [23:50] isaacs: mscdex: according to the rules of semver, 0.0.0-0 is lower. [23:51] isaacs: mscdex: but you can do this: npm install foo@latest [23:51] isaacs: mscdex: the "latest" tag is always the most recently published version [23:52] Ned_: Hmmm ... kludgekludge [23:52] mscdex: ok, but i don't have a version tagged yet for node-ncurses as i would like to do some more testing yet. should i wait until i have a release to add to npm? [23:52] progrium: where is the remote debugging documented? [23:52] progrium: or is there documentation? [23:52] isaacs: mscdex: you can do: npm link ./path/to/folder [23:53] isaacs: mscdex: that'll show you that it installs, as well as let you make changes and see them reflected immediately in your env [23:53] Ned_: isaacs: I think I've managed to build a debian package [23:53] mscdex: wha? i mean submit to the registry [23:53] Ned_: isaacs: now all I need to do is make sure it's installed in the same place it thinks it is :p [23:54] isaacs: mscdex: if you publish, it gets the "latest" tag automatically [23:54] mscdex: and no version is set? [23:54] isaacs: mscdex: oh, sorry, i misunderstood your use case, sorry. [23:54] isaacs: mscdex: yes, everything always has a versino [23:54] quirkey has joined the channel [23:54] isaacs: ; [23:55] JimBastard has joined the channel [23:55] mscdex: ok, i guess i should wait then [23:55] isaacs: mscdex: you can publish broken stuff. just don't tag it as stable until it's stable. [23:55] progrium: remote debug is not documented? [23:55] JimBastard: does anyone know if there are any good canvas UI libraries? [23:55] isaacs: mscdex: it doesn't have to be tagged in git or anything like that [23:56] mscdex: right, it'd be nice to keep them sync'ed though i'd think [23:56] mscdex: for consistency [23:56] isaacs: mscdex: sure. a while ago, that was required, because i wasn't hosting the tarballs. [23:57] mscdex: ah [23:57] isaacs: mscdex: you can even just do "npm publish ." to publish the current folder. [23:57] inimino: ACTION is happy to see npm taking over [23:57] isaacs: mscdex: but, the caveat is, you can't publish the same version again. [23:57] _ry: http://codereview.chromium.org/2092007/show [23:57] _ry: yey [23:57] isaacs: mscdex: every version is unique and should be consistent. it isn't, because things break, and i manually modify the db all the damn time, but that's the theory and the goal. [23:58] progrium: when i telnet to the remote debugger, i can type stuff and it comes out on the node end with "whatever i typed: (no value)" [23:58] progrium: so i thought maybe it was just a value inspector? [23:58] progrium: but nothing in scope (including globals) has a value [23:58] isaacs: mscdex: but you can have versions like 0.0.1-a, 0.0.1-b, 0.0.1-c, etc. [23:58] mscdex: would it be possible to have a special version that pointed to a "bleeding edge" version of the software? [23:59] quirkey_ has joined the channel [23:59] isaacs: mscdex: that was once upon a time on the roadmap. but it got dropped because i was teh only one who wanted it. go post an issue :) [23:59] mscdex: :(