[00:00] bingomanatee: Java is the best programming language ever. More programmers have been hired to do simple tasks with Java then in any other language. [00:00] mscdex: yo [00:00] DTrejo: hi micheil, forking votizen/node and picking something to work on [00:00] Rixius: so if it can be done in Java it can be done in Node.JS better. IMHO >.> [00:00] bingomanatee: The only way Java could be better is if it somehow required some guy to sit in a corner flipping a coin and chewing on a toothpick to operate. [00:01] shaver: or dripping blood into a fibrechannel receptacle [00:01] keks: Rixius: I guess so. but still, Crypto is removed from core and I don't know if someone will pick it up or how long t takes that someone will. also, the ibrary imho isn't really nodey. [00:01] SubStack: java is keeping millions of programmers employed [00:01] bingomanatee: Its the Mafia of programming languages. [00:01] Rixius: becaus it's a legacy pile of Sh*t. [00:01] bingomanatee: "A lot could happen to your website. " [00:01] keks: SubStack: so is military. [00:01] SubStack: exactly [00:02] Rixius: like ADA or Cobol or Big Banks still running on Windows 3.1 [00:02] bingomanatee: "fortunately, I know a guy who's got a class that will solve all your problems. " [00:02] bingomanatee: "'sgonna cost you though. " [00:02] SubStack: I would just as well have the 20% of the population that actually gets work done put the 80% on welfare directly instead of this whole "employment" business [00:03] Fuld: Spell checking needn't by async right? [00:03] keks: SubStack: no, then we would have to introduce the java-tax, or countries coulnd't handle the cost anymore [00:04] Fuld: It should be fast enough not to slow down node [00:04] Anti-X: 80% work in factories anyways [00:04] keks: or "noJavaAnymore-tax" [00:05] jimt_ has joined the channel [00:05] MatthewMueller has joined the channel [00:05] SubStack: now I want to write a node book again [00:06] SubStack: especially I want to illustrate one [00:06] SubStack: no time [00:06] Anti-X: again? [00:06] Anti-X: you already wrote one? [00:07] tanepiper: SubStack: i know the author of learn you a haskell - we should definetly do a learn you a node :) [00:07] Anti-X: learn you a javascript more like [00:07] SubStack: I mean that the urge to write a book is rising once more [00:07] Anti-X: then have appendices about node and browser specifics [00:07] SubStack: tanepiper: neat! I love that book [00:07] isaacs: tjholowaychuk: hey [00:07] tjholowaychuk: hey [00:07] tanepiper: Anti-X: mehh, JavaScript: The Definitive Guide [00:07] keks: me too, haven't read that much yet, but i loved it [00:07] isaacs: tjholowaychuk: i'm considering removing support for the "lib" folder, and for the "modules" hash. [00:07] tanepiper: 6th edition will be out this year [00:08] Anti-X: yeah but that's not free [00:08] tjholowaychuk: isaacs: I cant remember which modules use that [00:08] dustinwhittle has joined the channel [00:08] isaacs: tjholowaychuk: how would you feel about a) main module only, and b) if you want more, just do require("express/lib/something") [00:08] Anti-X: like learn you a [00:08] tjholowaychuk: i think express-contrib [00:08] SubStack: isaacs: you'll kill us all! [00:08] Gruni has joined the channel [00:08] ossareh_ has joined the channel [00:08] isaacs: SubStack: nah, you'll live [00:08] tjholowaychuk: isaacs: yeah im fine with that , ive been moving everything to do say require('connect').session.MemoryStore instead of require('connect/middleware/session/memory') [00:09] tanepiper: isaacs: at least depricate it until 0.3! [00:09] tjholowaychuk: which is a lot cleaner anyway [00:09] tjholowaychuk: isaacs: ah yeah seems like express-contrib is using it [00:09] isaacs: tanepiper, SubStack: i'm trying to decide now whether it's a good idea to remove it. i'm leaning towards removing it, which means i've probably already decided. [00:09] isaacs: but by putting on a show of deliberation, i convince you that i'm not insane. [00:09] SubStack: you should assign a probability to it [00:10] isaacs: SubStack: i think i'm 60% likely to decide to remove it. [00:10] tanepiper: isaacs: what would be the alternative? [00:10] isaacs: SubStack: which means, in actuality, i'm 98% likely to have already decided. [00:10] tjholowaychuk: isaacs: i renamed the express-contrib modules to messages.js, namespace.js etc so that you require('express-contrib/namespace') [00:10] SubStack: I thought it was 95 [00:10] SubStack: anyway [00:10] Anti-X: express/something instead of express/lib/something.. i would think lib was implied [00:10] tjholowaychuk: but i could use getters to lazy load them or something [00:10] isaacs: tanepiper: the alternative is that if you want to require a module out of a package, you specify the full path to it in that package. [00:11] isaacs: tanepiper: require("npm/lib/utils/semver") instead of require("npm/utils/semver") [00:11] isaacs: not THAT huge of a difference, really [00:11] SubStack: aha http://lesswrong.com/lw/jx/we_change_our_minds_less_often_than_we_think/ [00:11] SubStack: 96% [00:11] tanepiper: yea, seems fair enough [00:11] tjholowaychuk: isaacs: plus if its public it should be exposed in the main mod anyway [00:11] isaacs: SubStack: i'm twice as likely as normal to have already made up my mind. [00:11] rpflo has joined the channel [00:11] isaacs: tjholowaychuk: exactly [00:11] tjholowaychuk: although its nice to tap into other code if you need to [00:11] isaacs: tjholowaychuk: definitely. [00:11] isaacs: especially in cases like connect or whatever. lazy-loading is kind of a pain [00:11] tjholowaychuk: let me know if/when its out so i can update express-contrib [00:12] isaacs: tjholowaychuk: do it now. [00:12] tjholowaychuk: aight [00:12] isaacs: er... nvm [00:12] isaacs: do the lazy-loading now if you were planning on doing that [00:12] isaacs: require("package/lib/module") will be in the next npm release. [00:12] isaacs: i mean, it'll work there [00:12] cilantro has joined the channel [00:12] tanepiper: Anti-X: also, i think there is enough in node for it's own book - with node core, npm, and a few select "core" user modules [00:12] keks: as interim solution, you could do a lib -> . symlink [00:13] tjholowaychuk: actuallly [00:13] tjholowaychuk: that does screw me over a bit [00:13] isaacs: i think the path to get there is to a) symlink the lib folder into the package folder, b) shim the main [00:13] isaacs: keks: yeah [00:13] Qbix1: whats the standard way of running node on multicore these days? [00:13] Qbix1: use an express module? [00:13] Qbix1: based on that yahoo thing? [00:13] isaacs: tjholowaychuk: yeah, it's not gonna be painless. [00:13] tjholowaychuk: isaacs: if you require('express-contrib') instead of require('express-contrib/whatever') it auto-requires them all, since some simply do monkey patching [00:13] isaacs: implying the ./lib/ is kinda nice. [00:13] Anti-X: tanepiper, maybe... but if you're using node, you're very likely to be using browser js as well.. so you would probably have to learn both at the same time anyways [00:13] flukes1: if you pause a stream just after connection, is there a chance you already missed some data that was sent very early [00:13] SubStack: oh isaacs I made you some graphs: https://github.com/substack/npmdep [00:13] tjholowaychuk: so there would be no (nice) way of including them all [00:13] wadey: Most of my codebases are layed out like "{module}/lib/{module}/files.js", so having to do require('module/lib/module/file') is kind of annoying. Can be worked around with rearranging the repo. [00:13] richcollins has joined the channel [00:14] isaacs: SubStack: HOLY CRAP THATS AWESOME. [00:14] tjholowaychuk: Qbix1: yeah that or spark, fugue, etc [00:14] Rixius: isaacs: do you know of a dependable alernative to the crypto library? [00:14] Anti-X: graphs are for nerds! [00:14] Rixius: for HMAC Sha-1 of data strings? [00:14] Anti-X: that graph right there... i'm calling the hospital [00:15] isaacs: SubStack: no, seriously, i'm seriously impressed this is so cool. [00:15] isaacs: SubStack: it's like a nodejs universe map [00:15] tjholowaychuk: woah [00:15] isaacs: i <3 it [00:15] tjholowaychuk: people are actually using that noop mod? [00:15] SubStack: ^_^ [00:15] SubStack: I think the names got a little messed up because graphviz sucks but close enough [00:15] tjholowaychuk: that looks pretty rad [00:16] Anti-X: that second one is a furball [00:16] Anti-X: did you npm install everything? [00:17] SubStack: I should have! [00:17] SubStack: I actually just repeatedly called npm.commands.view() since I didn't want to figure out the right way to do it with couch [00:17] isaacs: hahahhah [00:18] isaacs: SubStack: that's acutlaly not such a bad approach [00:18] Anti-X: there's a brainfuck module?!? [00:18] isaacs: it basically uses npm as a couchdb client app [00:18] Anti-X: jesus [00:18] Fuld: http://pastebin.com/1i0kBxdJ -- How am I supposed to call this binding from node.js? I tried: http://pastebin.com/HJE8eKF1 [00:18] Fuld: The second file is the node server, the first is the binding [00:18] mraleph: isaacs: http://npmjs.org/install.sh <- is not working properly. it seems you've lost \ at the end of line 86 [00:19] SubStack: they're just two different graphing algorithms [00:19] SubStack: the other ones didn't even work since there were too many nodes [00:19] SubStack: 975 when I ran it last night [00:20] Fuld: Here's the error: node: /usr/local/include/node/node_object_wrap.h:40: void node::ObjectWrap::Wrap(v8::Handle): Assertion `handle->InternalFieldCount() > 0' failed [00:20] SubStack: 986 today! [00:21] ossareh_ has joined the channel [00:22] hornairs has joined the channel [00:22] JimBastard: so if i have a couchdb view which is emitting an array, whats the best way to send it a key and look for that key in each array, only to emit arrays that contain that key? [00:23] JimBastard: add a for loop inside the view to check each one yeah? [00:23] mscdex: Fuld: try this: https://gist.github.com/801309 [00:24] JimBastard: i got it [00:24] Fuld: mscdex, hmm I see what I did now :p [00:24] Fuld: thnx [00:25] bartt has joined the channel [00:25] romainhuet has joined the channel [00:25] isaacs: mraleph: should work now, yes? [00:25] stepheneb has joined the channel [00:27] Fuld: mscdex: Well, not quite working. var myresult = myhunspell.Hello(); TypeError: Object # has no method 'Hello' [00:27] mraleph: isaacs: yep. thanks for fixing it. [00:27] isaacs: np [00:28] Fuld: I'm probably doing something wrong in the binding: https://gist.github.com/801317 [00:29] Poetro1: SubStack: those graphs are huge [00:30] SubStack: Poetro1: npm is huge! [00:30] Poetro1: i only have a few modules in [00:30] ossareh_ has joined the channel [00:30] SubStack: 987 modules! [00:30] Anti-X: i have 2 [00:30] Anti-X: :;p [00:30] mscdex: Fuld: try a lowercase h [00:30] SubStack: ACTION has 19 >_> [00:30] isaacs: SubStack is an npmologist [00:30] Anti-X: without me there would be 985. oh the impact [00:30] SubStack: it's true! [00:30] ericnakagawa has joined the channel [00:31] mscdex: Fuld: myhunspell.hello(); [00:31] SubStack: I wrote a similar sort of thing for irc chatter years ago [00:31] SubStack: with graphviz [00:31] SubStack: fun times [00:31] Anti-X: so you're more of a graphologist [00:32] Anti-X: or as we normal people call it: nerd [00:32] SubStack: plausible [00:32] catch23 has joined the channel [00:32] SubStack: Anti-X: npmdep shows what percentage of npm is you [00:32] SubStack: er, npmtop [00:32] Fuld: mscdex: Okay, that worked :) [00:33] slickplaid: Those graphs are slick. [00:33] SubStack: tjholowaychuk alone is 3.04% of npm [00:33] tjholowaychuk: ~1k modules? [00:33] tjholowaychuk: wow [00:33] mscdex: Fuld: the string parameter in NODE_SET_PROTOTYPE_METHOD() is the function name that will be used in js-land [00:33] SubStack: yep [00:33] tjholowaychuk: way more than i thought [00:33] tjholowaychuk: I would have guessed maybe 300 [00:33] Anti-X: i don't think the quality is necessarily excellent all around though [00:34] Anti-X: and there are several that do the same thing [00:34] jimt has joined the channel [00:34] SubStack: perhaps there will be 1k by the time mikeal's jsbbq happens [00:34] Anti-X: like how many yaml parsers are there [00:34] bingomanatee: ACTION is going to write a childrens book on map/reduce for christkov mongo db native [00:34] Anti-X: and how many of those work [00:34] Anti-X: :p [00:34] bingomanatee: it'll be called "Don't touch me there daddy!" [00:34] thepose has joined the channel [00:35] SubStack: exactly 1 yaml parser [00:35] SubStack: json is the hotness in javascript land [00:35] Anti-X: yeah but json is native [00:36] Anti-X: hm i'm certain there were more yaml parsers before [00:36] Fuld: ACTION has a "Hello World" node binding working and a libhunspell spellchecker working. [00:36] Anti-X: maybe i was looking outside of npm [00:36] Fuld: Just need to combine the two :D [00:38] sprout has joined the channel [00:39] Fuld: What's the proper way to ruturn null back from static Handle QuickSpellCheck(const Arguments& args)? just return NULL; is fine with node? [00:39] Fuld: *return [00:40] cronopio: SubStack: excellent graph!! http://substack.net/images/npmdep/npm-fdp.png [00:40] echosystm: does anyone here use joyent? [00:40] ossareh_ has joined the channel [00:40] echosystm: smartos in aprticular [00:40] isaacs: echosystm: i use joyent. mostly for paychecks, coffee, and an office to hack in. [00:40] shaver: hey-o [00:40] shaver: I must be doing something wrong [00:40] isaacs: but i host a few things there, too :) [00:41] shaver: but json-over-HTTP is lower latency for me than socket.io with websocket was [00:41] shaver: er, with flashsocket [00:41] shaver: websocket was better [00:41] echosystm: does smartos use illumos as its base? [00:42] ChrisPartridge: SubStack: graph almost looks like a double helix is forming in there [00:42] cronopio: isaacs: rofl, you should tweet that :P [00:42] mscdex: Fuld: v8::Null i believe [00:43] echosystm: Fuld: i think you want v8::Undefined(); [00:43] echosystm: that seems to be the standard response from a function that has no return [00:44] echosystm: if you explicitly wanted to return null, as in the function would actually return other values under different circumstances, then yeah v8::Null(); [00:44] SubStack: ChrisPartridge: that's just the graph algorithm at work [00:45] mjr_: shaver: I use JSON over HTTP all day and all night. It's such a pleasure to work with. [00:45] SubStack: json <3 [00:46] SubStack: but that goes without saying among this crowd [00:46] shaver: mjr_: yeah [00:46] shaver: I was just expecting lower latency with flashsocket [00:46] shaver: oh well [00:46] AAA_awright: Is there some easy way to set a breakpoint, considering that all the libraries you will use aren't available right away with --debug-brk? [00:46] Evet has joined the channel [00:49] stepheneb has joined the channel [00:50] derferman has joined the channel [00:51] blueadept has joined the channel [00:52] isaacs: AAA_awright: in the 0.3.x branch, there's support for the "debugger" keyword [00:52] isaacs: AAA_awright: and it's pretty rockin [00:52] isaacs: put "debugger" in your code somewhere. then do: node debug my-program.js [00:53] isaacs: when it hits the debugger; line, it'll stop and drop you into the debug console [00:53] sh1mmer has joined the channel [00:53] isaacs: from there, you can step, set breakpoints, etc. [00:53] wadey: has there been any discussion of when 0.3.x will become the stable release? [00:53] Fuld: return scope.Close(v8::Null); <-- Trying to return so it will evaluate to null in node.js [00:54] wadey: i'm just curious because I want to start using it :) [00:54] isaacs: mjr_: i think a shared penchant for JSON over HTTP is how you and i originally met, at CouchIO [00:54] svenlito has joined the channel [00:54] Fuld: My idea is that if the spell check succeeds, it will return null to node.js, otherwise I want to return an array of suggested spellings from the myspell dictionary [00:55] tjholowaychuk: Fuld: return Null(); should be ok [00:55] AAA_awright: isaacs: Oh really [00:55] Fuld: ok [00:55] AAA_awright: isaacs: "ReferenceError: debug is not defined" How? [00:55] AAA_awright: wait [00:56] isaacs: AAA_awright: need at least 0.3.5 i think [00:56] tilgovi has joined the channel [00:56] isaacs: maybe higher [00:56] AAA_awright: Ah there we go [00:56] isaacs: and put "debugger" in your cod [00:56] AAA_awright: Awesomesause [00:56] isaacs: *code [00:56] isaacs: yeah, it's neat [00:56] DTrejo: updated https://github.com/ry/node/wiki/Contributing based on https://github.com/miksago/node/issues#issue/19 I hope I didn't do a bad thing. [00:56] AAA_awright: *Awesomesauce [00:56] isaacs: it was funny. ryah was writing this node program, and he was like, "How do people even DO this? this is *impossible*." and then wrote a debugger. [00:56] micheil: DTrejo: ? [00:57] DTrejo: micheil: workin on stuff :) [00:57] DTrejo: small stuff to start off [00:57] micheil: Oh, wait. I thought you were someone else :) [00:57] isaacs: DTrejo: no! you did a good thing! [00:57] isaacs: DTrejo++ [00:57] v8bot: isaacs has given a beer to DTrejo. DTrejo now has 1 beers. [00:57] DTrejo: woo! [00:58] isaacs: polotek's (Marco Rogers) email was a good wakeup call, and we've been trying to spend some time on docs lately. [00:59] isaacs: every little bit helps. [01:00] DTrejo: on nodejs.org/api.html there are references like this, I'm guessing they refer to manpages or something like that? "See kill(2) for more information." [01:00] DTrejo: (with no hyperlink or anything) [01:01] DTrejo: anyone know anything about the above? [01:01] jaequery has joined the channel [01:02] jaequery: ot but anyone here konw if theres a cmd to check how much rqs you are getting on your mysql box? [01:02] wadey: DTrejo: yes, they are man pages "kill(2)" means "man 2 kill" [01:02] DTrejo: ok, thanks [01:03] jakehow has joined the channel [01:03] ryanfitz has joined the channel [01:03] wadey: if you just do "man kill" you will get "kill(1)" instead, which is the command line program [01:03] JohnnyL has left the channel [01:04] softdrink has joined the channel [01:05] keks: unix <3 [01:05] micheil: DTrejo: see the issue on that [01:05] flukes1: does node read from sockets even if they don't have a data event handler assigned [01:05] DTrejo: micheil: the thing about the man pages not being written? [01:05] micheil: https://github.com/miksago/node/issues#issue/14 [01:05] DTrejo: oh yeah [01:05] DTrejo: just finished that [01:05] DTrejo: so not I'm committing to my forc [01:05] DTrejo: fork [01:06] DTrejo: *now [01:06] micheil: tells you how I'd like them done; I think others would agree there [01:06] Fuld: yo, wow would I return an array from the C++ binding? :) [01:06] DTrejo: oh nvm you were saying something different [01:06] Rixius: is there a decent byte array module? [01:07] flukes1: anyone know the answer to my question above? ^ [01:07] Fuld: Hmm, I should hit up github for some node examples [01:07] isaacs: flukes1: yes. [01:08] isaacs: flukes1: if you don't have a data event handler attached, data events may come in, and they will be lost. [01:08] flukes1: doing pause() in the accept callback should be enough though right [01:08] isaacs: Rixius: Buffer? [01:08] bingomanatee: flukes1: isn't that kind of "tree falling in the forest"? [01:08] wadey: flukes1: you can try to prevent it with stream.pause(), but someone events might already be queued up before you call that [01:08] shiawuen has joined the channel [01:08] micheil: DTrejo: so, you're moving the issues on miksago/node to votizen/node? [01:08] bingomanatee: if you don't have a listener to an event what does it matter whether or not node is listening to a stream? [01:08] isaacs: flukes1: should. however, pause() didn't prevent already-received chunks from being processed by node currently. it will soon (might have landed in 0.3.x, i'm not sure.) [01:08] bingomanatee: are you worried about impact beyond node on the overarching OS? [01:09] DTrejo: micheil: well, I decided to just start doing a few, for example the SIGTERM typo is fixed in docs, pushing soon [01:09] flukes1: because it connects, then I connect to another stream, then I need to pipe to that other stream [01:09] clarkfischer has joined the channel [01:09] bingomanatee: (re - listening to sockets/no event handler) [01:09] flukes1: but I need everything that the first stream has ever transmitted to go to the other stream upon pipe() [01:09] flukes1: if that makes sense [01:09] bingomanatee: yes [01:10] micheil: DTrejo: yeah, I think what we went with was that pull requests on docs would go via votizen/node, and then they'd be merged collectively at once by ry. [01:10] flukes1: so I figured.. call pause() in accept callback, do stuff, then pipe() and resume() [01:10] bingomanatee: you want to "back up the river" and redirect it. [01:10] flukes1: is that wrong? [01:10] isaacs: flukes1: that should work. you may want to buffer any data chunks that come in, just in case. [01:10] bingomanatee: well everyone knows I'm not the judgemental type [01:10] flukes1: mkay i'll see if anything is coming in [01:10] bingomanatee: I would think though [01:11] bingomanatee: that if you plan to redirect a stream's output capturing it and then redirecting said output yourself would be wiser than trying to get into the low level node stream stuff. [01:11] bingomanatee: I'm pretty weak in these areas. [01:11] DTrejo: micheil: right, I'll link you soon [01:11] micheil: DTrejo: pull requests :) [01:11] flukes1: hm, interesting [01:12] flukes1: the very first block of data does come in after I call resume() [01:12] flukes1: so I assume it's being piped [01:12] bingomanatee: But if you are playing with switching and recirecting content I would put a repository of some sort on the job and store what comes in then send said content out as I saw fit. [01:12] brianm has joined the channel [01:13] flukes1: would calling resume after pipe be a problem [01:13] bingomanatee: My personal concern would be that if I were streaming binary data I would be worried about cutting off a particular unit of information off in midstream and losing a piece of information. [01:14] flukes1: eh? [01:14] bingomanatee: Is there no context in your problem in which sending half a chunk to pipe "A" and the other half to pipe "B" wouldn't be a loss? [01:14] DTrejo: micheil: I have a fork of node already, but the pull request it had on it was pulled in ry's node, I suppose it is ok to delete my fork of ry/node and then fork votizen/node ? [01:15] micheil: yeah [01:15] Bonuspunkt: anyone know a lib to parse html in node.js? [01:15] DTrejo: cool [01:15] bingomanatee: yep [01:15] bingomanatee: Bonuspunkt: Aria wrote HTML5 to extend the domjs libraries. [01:15] micheil: DTrejo: once a pull request has been merged, it's in the code base, so everything's sweet. [01:15] bingomanatee: check out Aria's repo on github. [01:15] aklt has joined the channel [01:16] Bonuspunkt: bingomanatee link? [01:16] mikeal-iPhone has joined the channel [01:16] bingomanatee: https://github.com/aredridel/html5 [01:17] Bonuspunkt: ty [01:17] bingomanatee: By the way - if you get it to work - get back to me and tell me how you did it. [01:17] bingomanatee: I have to write spiders for my job downstream and wouldn't mind knowing if the library is as advertised. [01:17] isaacs: flukes1: https://gist.github.com/801376 [01:18] micheil: mikeal-iPhone: did you still need that .eps stuff done? [01:18] flukes1: isaacs: I think what i'm doing in node is fine, must be a problem in my other code [01:18] devdazed has joined the channel [01:19] Bonuspunkt: lol i has hoped for "its dangerous to go alone! Take this! -> link <-" [01:19] mikeal-iPhone: micheil: Yes [01:19] micheil: mikeal-iPhone: k, I'll do it now :) [01:20] nolan_d has joined the channel [01:20] skm has joined the channel [01:23] gf3 has joined the channel [01:23] Fuld: Does v8.h have a special way of handling returning of an array to node.js? [01:23] lukegalea has joined the channel [01:24] Fuld: My thought is that an array is the best way to return spelling suggestions back to node.js on a misspelling [01:24] wadey: Flud: v8::Array? [01:24] wadey: Local arr = Array::New(len) [01:24] wadey: arr->Set(i, value) [01:25] Fuld: Is Set like push()? [01:25] Juan77 has joined the channel [01:25] keks has joined the channel [01:25] Juan77 has left the channel [01:25] wadey: more like arr[i] = value [01:25] Fuld: Oh okay [01:25] wadey: oh, you actually need: [01:25] _jud has joined the channel [01:25] wadey: ar->Set(Integer::New(i), value) [01:26] mscdex: i finally got chat working over oscar \o/ [01:26] ryanfitz has joined the channel [01:26] Juan77 has joined the channel [01:26] wadey: i wonder if there is a good v8 reference for this sort of stuff, usually I just open up the node or v8 source and browse around for the functions or data structures I need. [01:28] DTrejo: micheil: do I make one pull request for each significant commit? or just do a bunch and then pull request? I'm guessing the second? [01:28] micheil: just bunch them [01:28] DTrejo: kk [01:28] keks: wadey: that's basically what doxygen did for mscdex: http://mscdex.net/v8/ [01:28] micheil: considering pull requests are retroactive [01:29] boaz has joined the channel [01:29] micheil: just make sure your commit messages say what you did. [01:29] wadey: keks: awesome, thanks for this link! I didn't know about it. [01:29] isaacs: wadey: also: http://izs.me/v8-docs [01:29] isaacs: we should really just run the doxygen build in the v8 deps folder, and make it part of npm's docs [01:29] isaacs: micheil: ^ [01:30] JimBastard has joined the channel [01:30] Juan77: goudy [01:30] wadey: yes please, or at least link to a copy somewhere [01:30] micheil: isaacs: hmm, maybe. [01:30] mscdex: wadey: keks: doxygen file here: https://gist.github.com/395927 [01:30] JimBastard: pyrotechnick: ping [01:30] micheil: isaacs: perhaps start a discussion on nodejs-dev about it. [01:30] Juan77: I discovering node.js right now, and I would like to know how we can run the same application in different subdomain? for example customer1.myapp.com, customer2.myapp.com, I see that connect has vhost, but the examples that show only redirects from customer1.myapp.com to myapp.com/customer1.... [01:31] Juan77: any clues about that? [01:31] isaacs: micheil: will do. [01:31] isaacs: micheil: my doxyfile is this: http://izs.me/v8-docs/Doxyfile [01:31] perlmonkey2 has joined the channel [01:32] mike5w3c_ has joined the channel [01:32] Fuld: isaacs, more newbie-friendly tutorials on making C++ modules would be cool [01:33] isaacs: Fuld: https://github.com/isaacs/node-async-simple and pkrumins' stuff are both good references. [01:33] Fuld: So we can be like Perl with millions of half-assed modules :D [01:33] isaacs: Fuld: we've got plenty of half-assed modules already :) [01:33] Fuld: isaacs, yeah. I've been learning from looking at github [01:33] keks: true, i'm struggling, too, but i guess writing c++ Templates just can't be as sleek as JS [01:33] Fuld: You'll have one more once I finish this node-spell binding for libhunspell ;) [01:33] micheil: mikeal-iPhone: what size did you want the png to be? [01:34] mikeal-iPhone: 200 by whatever [01:34] micheil: k [01:34] Fuld: Also, we need a nicer imagemagick binding at some point [01:35] micheil: mikeal-iPhone: h x w or w x h? [01:35] mikeal-iPhone: H [01:35] micheil: 200 h == 900w [01:36] micheil: I think that's a bit big, isn't it? [01:36] Anti-X: that's what she said [01:36] mikeal-iPhone: I can scale in CSS [01:36] mikeal-iPhone: Better to err on the side of large [01:37] tokumine has joined the channel [01:38] micheil: k.. [01:39] DTrejo: is it a problem if the docs said realpath(2) but there is only realpath(3)? I'm guessing I should just write 3 instead right micheil ? [01:40] warz has joined the channel [01:40] micheil: mikeal-iPhone: done. sending across now. [01:40] langworthy has joined the channel [01:41] micheil: DTrejo: woah. that's odd. [01:41] micheil: normally man 2 describes the C interfaces.. [01:42] micheil: DTrejo: in which case, link to: http://www.kernel.org/doc/man-pages/online/pages/man3/realpath.3.html [01:42] DTrejo: ok, that's what I did [01:42] micheil: [man 3 realpath](http://www.kernel.org/doc/man-pages/online/pages/man3/realpath.3.html) [01:42] wadey: micheil: 2 is System calls, 3 is C libraries [01:42] micheil: oh, right [01:42] joeshaw: hmm, how much desire is there to wrap more of the POSIX API in the fs module? [01:42] micheil: joeshaw: what do you need? [01:42] joeshaw: i need access(2) [01:42] micheil: hmm... [01:43] keks has joined the channel [01:43] micheil: joeshaw: I'm sure there were issues with access(2) [01:43] Fuld: arr->Set(String::New(0), "yoyoyo"); <-- ambiguous [01:44] wadey: Fuld, I think you want Integer::New, not String::New [01:44] wadey: right? [01:44] micheil: yeah, arr-Set takes an int [01:44] Fuld: err [01:44] Fuld: I see [01:44] wadey: but you probably need to wrap the String too [01:45] mikeal-iPhone has joined the channel [01:45] joeshaw: micheil: it's generally discouraged as a way of determining whether you can write to a given file since there's a race condition [01:45] flukes1: isaacs: thanks, your above gist solved the problem. :) [01:45] c4milo1 has joined the channel [01:46] isaacs: flukes1: great :) [01:46] joeshaw: micheil: but it's often useful for determining, for example, if a filesystem were mounted read-only [01:46] Fuld: I think I want to create an empty one-dimensional array, then push() string members into it [01:46] Fuld: Yeah, I need to wrap the string [01:47] micheil: joeshaw: I could fairly easily write a patch for it; although, I think you should discuss it on nodejs-dev first [01:47] micheil: just to check ryah's thoughts on it. [01:47] ttpva has joined the channel [01:48] JimBastard has joined the channel [01:48] JimBastard: fucking internet [01:48] keks has joined the channel [01:48] joeshaw: micheil: s'ok, i'm about halfway done with the implementation myself [01:48] joeshaw: i'll drop a line on the list, thanks [01:49] micheil: joeshaw: how are you implementing? [01:49] sprout has joined the channel [01:49] mikeal-iPhone: JimBastard: I thought you would be knee deep in BBQ by now :) [01:49] joeshaw: micheil: adding to node_file.cc [01:49] JimBastard: they got wifi here [01:49] JimBastard: but seriously [01:49] JimBastard: ive been making non-stop commits to nodejitsu repos all week [01:49] micheil: joeshaw: could you gist a git-diff? [01:50] joeshaw: micheil: sure, let me get it compiling first [01:51] SwiftLayer has joined the channel [01:51] Fuld: Hmm, how do you append a new element to the array? [01:52] Fuld: ACTION is look at the v8 documentation at Google [01:53] micheil: Fuld: arr->Set(int, value) [01:54] micheil: where int is the number of the array item [01:54] micheil: eg, ["a", "b", "c"] [01:54] micheil: "c" could have been set with arr->Set(Integer::New(2), "c") [01:54] Fuld: micheil, you don't need to initialize the array with a certain number of elements first? [01:54] micheil: hmm, yes [01:55] Fuld: Local arr = Array::New(5); <-- I won't know how many members I'm going to have when I'm here [01:55] keyvan- has joined the channel [01:55] wadey: Fuld, that is just the initialsize [01:55] wadey: it will extend if it needs to get larger [01:55] Fuld: cool [01:55] wadey: the default value is 0 [01:55] wadey: you can just use Array::New() [01:55] Fuld: :) [01:55] Fuld: awesome thnx [01:56] micheil: Fuld: check this out: https://github.com/ry/node/blob/master/src/node_file.cc#L142-161 [01:58] micheil: joeshaw: I think access(2) would need to be implemented with a EIO_CUSTOM binding [02:00] Evet_ has joined the channel [02:00] joeshaw: micheil: yeah, just noticing that. bleh. [02:01] micheil: joeshaw: so, yeah, definitely discuss on nodejs-dev [02:02] Fuld: What's the canonical naming for a node binding for a C/C++ library? node-{metasyntactical variable}? [02:02] Fuld: I was thinking of doing node{metasyntactical variable} [02:03] Yuffster has joined the channel [02:03] Fuld: Or nodejs-foo, hmm [02:03] charlenopires has joined the channel [02:05] micheil: node- generally [02:05] micheil: but when you publish to npm, it becomes sans the node- [02:05] Fuld: Can anyone publish to node? [02:05] Fuld: err, npm [02:06] lukegalea has joined the channel [02:07] bingomanatee: ACTION can now map/reduce ( a little) in mongodb. [02:07] bingomanatee: oy my head. [02:07] micheil: Fuld: yes, as long as the package name isn't taken already [02:08] Fuld: Can you search npm from a web site? [02:08] SubStack: soon there will be npm package name squatters [02:08] Fuld: SubStack, eww [02:08] aklt: cloudhead: /quit [02:08] aklt: ups.. [02:08] Fuld: Charge a fee for useless node packages can use it to fund node.js :) [02:08] SubStack: cloudhead is a bot! I suspected as much. [02:09] micheil: sh1mmer: you about? [02:09] sh1mmer: no [02:09] sh1mmer: :) [02:09] sh1mmer: I'm taking a break from book writing with minecraft [02:09] sh1mmer: I'll be around in 30 mins [02:09] micheil: sh1mmer: well, I mean, normally you wouldn't reply if you weren't :P [02:09] bingomanatee: How do you "fund node.js"? [02:09] micheil: sh1mmer: k, cos' that's what I wanted to talk to you about [02:09] micheil: (book writing, not minecraft) [02:09] Fuld: bingomanatee, beer != free [02:10] Fuld: ;p [02:10] bingomanatee: Why does god have need for a starship? [02:10] sh1mmer: well grab me in 30 post stress relief [02:10] micheil: Fuld: fwiw, joyent has hired both ryan (the lead developer) and isaac (a core developer) to work on node [02:10] bingomanatee: If you want to fund node.js, start a business and use node.js to make money with. That does more for node than tossing money at ... Joyent? [02:11] micheil: everyone else does it either in their spare time or they have their respective companies pay them to work on it. [02:11] bingomanatee: which last I heard was doing okay. [02:11] jamesarosen has joined the channel [02:11] Fuld: micheil: Cool [02:11] DTrejo has joined the channel [02:11] bingomanatee: ACTION would pay someone to node for him but as far as I can tell the noders I want to work for me can't be bought. [02:11] micheil: for instance, I'm making a few contributions now on behalf of the company I work for, but prior to that, I did it in my spare time [02:11] heavysixer has joined the channel [02:12] Fuld: micheil: I'm actually writing node.js modules to help recover my programming skills after an accident [02:12] micheil: Fuld: hmm, okay, that's an interesting story of how you got into node.. [02:12] bingomanatee: Fuld: if its not to personal ... ? [02:12] Fuld: bingomanatee, got hit by a car in Newark and spent a month in the hospital [02:13] bingomanatee: ouch. [02:13] SubStack: sh1mmer: a book you say! [02:13] bingomanatee: Well, Newark works in mysterious ways. [02:13] SubStack: new jersey or delaware? [02:13] Fuld: NJ [02:13] Fuld: I live in Manhattan now [02:14] bingomanatee: gotta go host a meet for norms s'yall later. [02:14] boogyman has joined the channel [02:14] bingomanatee: Manhattan's okay - its no Newark.... [02:14] Fuld: But anyway, I'm remembering more every day I work on node + doing some other coding [02:14] zemanel has joined the channel [02:14] rjrodger_ has joined the channel [02:14] Fuld: bingomanatee: hehe [02:17] dnolen has joined the channel [02:18] sh1mmer: SubStack: I've been wokring on a book for a while [02:19] iszak: I am still failing to see a clean path for large node.js applications.. [02:19] isaacs: Fuld: yeah, like bingomanatee said, if you want to fund node, the best thing you can do is build something on it, hire devs to work on that thing, and send patches upstream as you run into issues. [02:19] iszak: isaacs, hey how's that feature going? [02:19] isaacs: iszak: which one? [02:19] zemanel: any opinions on this? http://paste.pocoo.org/show/328567/ it's a prototype template structure generation tool [02:20] iszak: isaacs, version override. [02:20] isaacs: oh, right. just a second... [02:20] micheil: isaacs: hey, as spin off, is npm going to support that git+path stuff? [02:20] Skhaz_ has joined the channel [02:21] jchris has joined the channel [02:23] Yuffster has joined the channel [02:25] boaz has joined the channel [02:26] zylo has joined the channel [02:28] zylo has left the channel [02:28] isaacs: iszak: https://github.com/isaacs/npm/commit/b6828d58414b55bab150ce5e0837de04da94fd59 [02:28] isaacs: micheil: not likely soon. [02:28] zylo has joined the channel [02:28] DTrejo: micheil: woo, now all the manpages will link to kernel.org [02:29] micheil: isaacs: k [02:29] isaacs: micheil: maybe. i dunno, i got big things to rework [02:29] micheil: isaacs: heh, I'd agree there :P [02:29] iszak: isaacs, sweet! [02:30] Coal has joined the channel [02:30] keks: SubStack: i was scrolling through backlog and for the record: cloudhead developed cradle, a couchdb lib. [02:33] warz: i feel like today was a break through day for my nodejs skills, heh. [02:33] jesusabdullah: What did you do? [02:34] warz: well, im pretty new to it all, and today was just one of those days where i coded using it, all day, and actually made smooth progress towards what i was writing [02:36] warz: i just learn new things every day, that affect how i use nodejs [02:36] micheil: sh1mmer: I'm going to start work on the stuff for the params declarations [02:37] sh1mmer: ok [02:37] sh1mmer: what can I help with? [02:37] warz: i just need to make an effort to use Git, now [02:37] warz: i always seem to have trouble making it a part of my routine [02:38] dgathright: Anyone wanna come to LA to give a talk on Node at a SoCal.js event? :) [02:38] sh1mmer: yes [02:38] DTrejo: dgathright: yes, but depends on the time of year? [02:38] sh1mmer: whether I can find the time and the money :P [02:40] micheil: dgathright: same here, and whether my boss says "ok" :) [02:40] micheil: (I'm ocassionally in SF) [02:42] micheil: sh1mmer: thoughts? Param: callback {Function} Optional [callback](callbacks.html) [02:42] mfernest has joined the channel [02:42] micheil: or were we going with {Function(arg1, arg2, ... argn) [02:43] dgathright: There's a lot of interest in a Node themed event lately, and Kris Kowal has offered to talk on a more advanced topic, so I'd like to get one that's more of an intro for the people who have neither heard of or used it before. [02:43] dgathright: I'd do it myself, but if people who are really experienced with Node are willing, that makes a lot more sense [02:43] sh1mmer: micheil: I don't understand the options you are presenting [02:44] micheil: actually.. yeah, {Function(...)} makes more sense. [02:44] Vertice has joined the channel [02:44] DTrejo: https://github.com/miksago/node/issues/#issue/22 [02:45] DTrejo: after clarification, I can go fix those micheil [02:45] micheil: DTrejo: I'm working on those :) [02:45] DTrejo: oh ok good, glad I didn't start [02:45] DTrejo: from my last look at the issues, I don't see any more super easy ones? [02:46] sh1mmer: micheil: I think the point was making sure each expected parameter is detailed and for callbacks there are a list of params as well [02:46] DTrejo: oh yeah the callbacks point is important [02:46] micheil: sh1mmer: yeah [02:46] DTrejo: it always annoys me how mdc doesn't show the callback params clearly [02:46] sh1mmer: http already does this pretty well [02:46] micheil: DTrejo: just doing an example from process [02:47] micheil: hmm.. [02:47] micheil: Param: Name {Type:Default} Description [02:47] DTrejo: e.g. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map, I think it also passes the index of the thing in the array, but the docs don't say it. i may be wrong [02:47] micheil: and [02:47] micheil: Param: Name {Type:Default} Description [02:47] micheil: >_> [02:47] micheil: Param: Name {Type} Description [02:48] DTrejo: what is the Type thing? [02:48] micheil: it's the type of variable, eg, Function, Integer, String, etc [02:48] micheil: (probably Number, not Integer) [02:49] DTrejo: are you also trying to encode optionalness and the default when not specified? (in the example you showed) [02:49] micheil: DTrejo: see: http://cl.ly/1t0840220i1M3i0i1v1t [02:49] micheil: I'm thinking there should be a column for default there [02:49] micheil: sh1mmer: thoughts? [02:50] DTrejo: micheil: where is list of the info passed into the callback(err, ...? ) [02:50] sh1mmer: micheil: there should also be some approximate typing there [02:51] sh1mmer: micheil: obviously there is loose typing but there should be some expectations [02:51] micheil: okay [02:51] mw has joined the channel [02:52] micheil: DTrejo: that is an older screenshot. [02:52] DTrejo: oh ok, nvm then [02:53] sh1mmer: micheil: we should also try and capture exceptions pseudo classes throw [02:53] sh1mmer: that's something that isn't well documented [02:53] bingomanateeIpho has joined the channel [02:54] bingomanateeIpho has joined the channel [02:55] Fuld: Any idea how I can fix line 9 from mucking up node? https://gist.github.com/801458 [02:56] Fuld: I think it's because the variable needs to be in the local scope. [02:56] Fuld: It's giving node: symbol lookup error: /opt/prodigylink/open/nodejs_spell/test/spell.node: undefined symbol: _ZN8HunspellC1EPKcS1_S1_ [02:58] derferman has joined the channel [02:58] DTrejo: micheil: with regards to adding back the manpage, is there a way to have node 'try' to install stuff in $(PREFIX)/share/* and then not die horribly if it fails? I guess it makes more sense to just make it work right. nvm then, I don't really know what's wrong with it, unless it is permissions stuff. [02:58] micheil: Param: code {Integer} The unix exit code. Default: 0 [02:59] micheil: or should defaults be elsewhere? [02:59] micheil: DTrejo: the idea with the man page was to make the html docs _the_ documentation, and have the manpage only describe the program options [03:00] mscdex: Fuld: sounds like maybe you're not linking with the hunspell library properly? [03:00] mscdex: libhunspell or whatever [03:00] Christopher_Bisc has joined the channel [03:00] DTrejo: micheil: oh ok. is this resolved then? https://github.com/miksago/node/issues#issue/10 [03:00] Me1000 has joined the channel [03:00] Fuld: mscdex, if I comment out that line 9 in the gist, the error goes away. [03:00] mscdex: right [03:01] Fuld: I am just doing -lhunspell in the cxx flags of wscript [03:01] Fuld: So the compiler is pulling in hunspell apparently only when that line is enabled, causing the error [03:02] Fuld: Could it be the fact that it isn't local? [03:03] Rixius has left the channel [03:04] mscdex: Fuld: what os are you trying this on? [03:04] Fuld: mscdex, CentOS Linux [03:04] mscdex: hrmm [03:04] Fuld: 64-bit [03:06] Fuld: mscdex: If you want I'll put this up somewhere and you can see what's making node mad :) [03:07] micheil: DTrejo: hmm..' [03:07] micheil: DTrejo: I think man node can be closed. [03:08] mscdex: Fuld: out of curiousity, gist your wscript [03:08] DTrejo: let me check the make file to see if it that line got commented in? [03:08] micheil: DTrejo: as for the man 2 stuff, that's just the FS module, there's many many more then that. [03:09] DTrejo: oh no haha [03:09] DTrejo: that took a while, gonna have to automate it more [03:10] Fuld: mscdex, here https://gist.github.com/801467 :) [03:10] Coal has joined the channel [03:10] micheil: DTrejo: heh, documentation does take ages to write. [03:11] DTrejo: micheil: is there a way to attach a commit to an issue when I commit it? [03:11] DTrejo: suppose I should look that up [03:11] micheil: I think so.. [03:12] herbySk has joined the channel [03:12] Fuld: Still doing it, symbol lookup error: /opt/prodigylink/open/nodejs_spell/test/spell.node: undefined symbol: _ZN8HunspellC1EPKcS1_S1_ when I run node [03:12] Fuld: Maybe there's some weird conflict [03:13] c4milo1 has joined the channel [03:14] tk has joined the channel [03:14] JimBastard_ has joined the channel [03:14] nooder has joined the channel [03:15] bruce has joined the channel [03:15] mscdex: Fuld: try: https://gist.github.com/801469 [03:16] micheil: DTrejo: hmm.. still not sure on the best way to document defaults. [03:16] DTrejo: micheil: ignore that premature pull, going to work on doing the rest of the readlink(2) style manpage references [03:16] Fuld: Okay, trying [03:17] Utkarsh has joined the channel [03:17] bingomanateeIpho has joined the channel [03:17] tk has joined the channel [03:17] micheil: DTrejo: it's fine :) [03:17] micheil: pull requests are retroactive [03:17] micheil: any additional commits will be added on [03:17] bingomanateeIpho: I am drink which means when i go to the mechanic iwil [03:18] bingomanateeIpho: Be entertained by js's matrial prowess [03:18] bingomanateeIpho: As p [03:19] bingomanateeIpho: Opposed to dissapionted by his lack of rande [03:19] bingomanateeIpho: Range [03:19] Christopher_Bisc: has anyone used eventedsocket? [03:20] micheil: DTrejo: don't do the man(2) style in process; I'll do those. [03:20] micheil: (unless you've already done them) [03:21] DTrejo: nope [03:21] micheil: k [03:21] DTrejo: only the one in wherever I did them [03:21] DTrejo: fs [03:21] joeshaw: micheil: access diff: https://gist.github.com/801475 [03:21] Fuld: mscdex: Damn, I'm still getting the same spell.node: undefined symbol: _ZN8HunspellC1EPKcS1_S1_ error when I require() in node :( [03:22] micheil: joeshaw: I'll review in a bit; just working on documentation. [03:22] DTrejo: micheil: I recommend that after you do every one, you do a project wide search and replace? or maybe they aren't mentioned enough and it's ok to do it manually (e.g. 2 mentions of a large number of man(2) things). [03:22] keyvan- has joined the channel [03:22] mscdex: Fuld: gist the output of: node-waf -vvv build [03:23] micheil: DTrejo: yeah, just doing other work in process.markdown first [03:23] joeshaw: micheil: no rush, still need to email the list about it [03:24] miccolis has joined the channel [03:25] techwraith has joined the channel [03:26] joeshaw: micheil: although now that i think about it, maybe wrapping statvfs is a better tack for determining a RO FS [03:26] joeshaw: ACTION shrugs :) [03:29] Fuld: mscdex, https://gist.github.com/801479 [03:29] ROBOTARMY has joined the channel [03:29] Fuld: Maybe it's finding the hunspell library? [03:32] falconair has joined the channel [03:32] mscdex: hmm [03:32] micheil: man. so wish I didn't have to compile node to compile the docs. [03:32] Fuld: I'm beginning to think I messed something up with linking to the hunspell [03:33] mscdex: Fuld: let me know where your current binding is at and i'll give it a shot [03:33] Fuld: mscdex: ok [03:34] Fuld: mscdex, https://gist.github.com/801484 [03:34] Fuld: That's the binding, spell.cc [03:36] micheil: :/ markdown does have tables, right? [03:36] Fuld: When I write normal C/C++ programs, I typically just use -lhunspell-1.2 [03:36] echosystm: i just read about the 1GB memory limit on v8/node [03:36] micheil: actually, tables in markdown are in the non-strict form. [03:37] echosystm: does google have any plans to change that? [03:37] zylo has joined the channel [03:38] micheil: echosystm: probably not. [03:38] micheil: considering that v8 was designed for browsers [03:38] DTrejo: micheil: yeah it is annoying to build node to make the docs... [03:38] echosystm: isnt this going to be a big problem for node.js users? [03:38] micheil: I think there was talk of increasing it to 1.7Gb though [03:38] DTrejo: micheil: why is that? [03:38] micheil: DTrejo: because the doctool is written in node [03:38] micheil: tools/doctool/ [03:39] falconair: can a nested object implement events.Emitter, inside another object which implements events.Emitter...I'm getting some odd errors [03:39] Fuld: How hard is it to patch it to rais the limit just for node? [03:39] DTrejo: oh, but if node is already build then it should just do docs [03:39] dspree has joined the channel [03:39] dspree has joined the channel [03:39] ryanfitz has joined the channel [03:39] echosystm: very hard Fuld [03:39] micheil: falconair: create a gist.github.com of your error [03:39] micheil: DTrejo: yup [03:39] pyrotechnick has left the channel [03:40] micheil: DTrejo: I just have multiple copies of node's source code, so I have to recompile node heaps. [03:40] DTrejo: micheil: well, i was going to fix the rest of the man(2), maybe later tonight or maybe next week. be back later [03:40] micheil: need to upgrade my macbook to something with a better processor then a duo dual core [03:40] micheil: or dual core duo 2 [03:41] echosystm: i'm quite bummed out by this discovery really [03:41] falconair: micheil: https://gist.github.com/801489 [03:41] Me1000 has joined the channel [03:41] falconair: micheil: refers to https://github.com/falconair/nodefix/blob/pipelineandfs/fix.js [03:41] ossareh has joined the channel [03:41] Fuld: mscdex: Would it help if linked you a tar.gz of everything? [03:42] falconair: line 29 [03:42] micheil: falconair: is that object sys.inherits() the event emitter? [03:42] DTrejo has joined the channel [03:42] falconair: micheil: yup [03:42] micheil: hmm.. [03:42] DTrejo: ACTION is back already [03:42] falconair: micheil: actually, let me get rid of my logic and show you a simple example of what I am doing (in gist) [03:43] Fuld: mscdex: Every should be right here: http://open.prodigylink.com/nodejs_spell/ [03:43] micheil: is session a constructor? [03:43] micheil: DTrejo: I'm thinking the doctool will be getting a bit more complicated soon.. [03:43] micheil: I think I'm going to need to write a line-by-line parser for the docs. [03:43] DTrejo: micheil: hopefully it also gets nice so it doesn't need to biuld node if I've already built it [03:43] falconair: micheil: no, session is like 'var self = this', sessionEmitter is the object [03:44] micheil: DTrejo: it doesn't. unless node has changed [03:44] mscdex: Fuld: ok, got it working: change 'uselib' to just 'lib' [03:44] mscdex: in your wscript [03:44] micheil: it depends on /build/default/node [03:44] Fuld: mscdex, hmm. What's the difference? :) [03:44] Fuld: ok [03:44] mscdex: Fuld: i think 'uselib' is for a more complex setup [03:44] Fuld: Ah [03:45] DTrejo: micheil: I really hope you don't need to writea parser for the docs. what makes you want to write one? [03:45] DTrejo: what's the problem [03:45] micheil: the new Param stuff [03:45] falconair: micheil: gist updated [03:45] micheil: it should generate a table for them [03:45] Utkarsh_ has joined the channel [03:45] micheil: falconair: hey, I'm going to have to look at it later; I've really gotta work on docs. [03:45] mscdex: micheil: i suggested writing the api in json and then you can do whatever you want with the data [03:45] mscdex: :p [03:45] mscdex: unless you already have jsdoc stuff in the code [03:46] micheil: mscdex: plain text is better, in all honesty. [03:46] micheil: I like natural formats [03:46] falconair: micheil: ok, thanks, i'll try to figure it out [03:46] mscdex: as long as the content is easily parseable [03:46] DTrejo: micheil: can't tell if you're talking to me, but you're saying something that auto-generates the callback and defaults info? [03:46] mscdex: ;-) [03:46] micheil: mscdex: hence the line parser. [03:46] mscdex: heh [03:46] Fuld: mscdex, awesome it worked. [03:47] micheil: DTrejo: no, have a look at this.. [03:47] micheil: https://gist.github.com/95b2fe6a485f41aff497 [03:47] Fuld: mscdex: If you're on github, I'll throw in your github name if you want under thanks :) [03:47] micheil: DTrejo: see the lines that start with Param: ... [03:48] micheil: DTrejo: they will be converted into a table describing the parameters for the function. [03:48] micheil: hmm.. no tj.. [03:48] DTrejo: ok [03:49] micheil: if that makes sense? [03:50] DTrejo: micheil: but the table that gets put there gets its info from the code? [03:50] micheil: no [03:50] DTrejo: rather than from stuff you write? [03:50] DTrejo: oh [03:51] DTrejo: so you're doing that for a more compact representation b/c markdown doesn't have tables [03:51] micheil: https://gist.github.com/797115 [03:51] micheil: DTrejo: yeah [03:51] micheil: but I'm thinking what I'll do is write my own parser. [03:51] micheil: and then only the main descriptions are in markdown, really. [03:51] DTrejo: micheil: be lazy! write as little code as possible! [03:51] micheil: DTrejo: heh. [03:52] Aikar: anyone here use rabbitvcs with ubuntu 10.10 amd64 and may be able to help me get it working? (pm) [03:52] Aikar: nautilus integration* [03:57] DTrejo: micheil: I'm guessing you already looked at options like these: http://www.freewisdom.org/projects/python-markdown/Tables [03:57] micheil: markdown tables are painful [03:57] DTrejo: there's still a good amount of repitition [03:57] micheil: DTrejo: besides, I enjoy writing things like parsers.. :P [03:58] DTrejo: :) [03:58] DTrejo: are you going to make it dumb and just look for "Param:..." and then replace stuff? [03:59] micheil: sort of. [03:59] DTrejo: mmk ima do those man(2) things in the other .md files [03:59] DTrejo: except process [04:00] pHcF has joined the channel [04:00] micheil: k. [04:02] jashkenas has joined the channel [04:03] Tidwell has joined the channel [04:06] Fuld: k, how should I cast v8::Local whatever = FunctionTemplate::New(cfunctionamehere); [07:23] echosystm: then target->Set(String::New("functionName"), whatever->GetFunction()); [07:23] echosystm: you know what i mean? [07:23] tim_smart: ACTION is getting his Daft Punk on. [07:25] echosystm: im not familiar with this library you are using, but i assume it has to load the dictionary from disk [07:25] echosystm: if that is the case, then you do want it to be event-based [07:25] Fuld: echosystm, yes [07:26] echosystm: i'll give you a quick snippet to show you how to do that [07:26] echosystm: hang on [07:27] Fuld: I should expose an async loaddict() function to node [07:27] confoocious has joined the channel [07:27] Fuld: ok [07:28] Fuld: The thing that's annoying me the most is that I have it set up so you have to do myspell = new spell.spell() [07:29] Fuld: What I want to do is: myspell = new spell("dictionary file path"); [07:31] felixge has joined the channel [07:31] Fuld: I do kind of like that I'm using classes because I can have different instances of spell for different languages. [07:32] jesusabdullah: Then export spell(), and not spell = {spell: function (path) ... } right? [07:32] mike5w3c_ has joined the channel [07:32] jesusabdullah: This lib sounds interesting. Tell me more! [07:34] Fuld: jesusabdullah, I couldn't find any spell checking modules for node so I make this so I could get the spell checking that C/C++ programs like Openoffice use in node :) [07:35] Fuld: It's lubhunspell, which is the best. :) [07:35] Fuld: *lib [07:37] jesusabdullah: libhunspell? [07:37] jesusabdullah: Hmm [07:37] jesusabdullah: I don't know my spelling libs too well tbh [07:37] jesusabdullah: but that's great! [07:37] Fuld: Yeah, I'm using it myself in some of my node.js web apps :) [07:38] Fuld: ACTION could have just scraped from a command line tool, but that wouldn't be as leet as a library binding. [07:39] jesusabdullah: Yeah, def [07:40] jesusabdullah: Still waiting for someone to make gsl bindings so I don't have to [07:40] jesusabdullah: I have a thesis I have to do first :/ [07:41] Fuld: ah [07:41] Fuld: If you want to see how to make bindings, you can look at the source of my node-spell: https://github.com/prodigylink/node-spell [07:42] Fuld: It's not bad with Google's v8.h docs [07:42] iszak has joined the channel [07:44] benburkert has joined the channel [07:47] mikeal has joined the channel [07:51] echosystm: sorry Fuld, got distracted [07:51] echosystm: http://pastebin.com/G1MsTckp [07:51] echosystm: theres a basic example [07:53] jesusabdullah: Btw, my thesis will BLOW YOUR MIND [07:53] Fuld: echosystm, this is a non-class binding right? [07:53] jesusabdullah: once it's done [07:53] echosystm: yep [07:53] jesusabdullah: even though it's not javascript [07:53] Fuld: jesusabdullah: Doubtful then. [07:53] echosystm: really simple example [07:53] Fuld: j/k ;p [07:54] Fuld: echosystm, is it a good idea to have a global? [07:54] echosystm: a global? [07:54] Fuld: Like, so I can load the dictionary files async when the module is first loaded, and then the spellcheck() function could be sync [07:55] echosystm: you could do that, but do you want the dictionary file to stay in memory? [07:55] Fuld: Like this in node: spell.loaddict("en_US.dic"); spell.check("mispellling"); [07:55] Coal has joined the channel [07:55] Fuld: Yes. [07:56] echosystm: yeah, you'd want to treat it like a file handle kinda thing [07:56] Fuld: That way the spell checks are quick and sync [07:56] devinus has joined the channel [07:57] echosystm: spell.loadDict("en_US.dic", function(dicHandle) { spell.check(dicHandle, "mispellling"); dicHandle.close(); }); [07:57] echosystm: perhaps something like that [07:58] Fuld: Yes, either that or do the load sync, but the server could do it at just once start-up [07:58] mscdex: gah... debugging a rate-limiting protocol sucks :-) [07:59] echosystm: whats your thesis on jesusabdullah ? [07:59] Fuld: I think I'll provide for both async and sync dictionary loading [07:59] devrim has joined the channel [07:59] qFox has joined the channel [07:59] garrensmith has joined the channel [08:00] Fuld: echosystm, thanks [08:01] yumike has joined the channel [08:02] garrensmith: morning [08:02] Fuld: Guess what my next node.js binding is going to be? [08:04] jesusabdullah: gsl?? :D [08:04] jesusabdullah: echosystm: Measurement of Anisotropic Thermal Conductivity in Snow with Needle Probes [08:04] Fuld: A node.js C++ binding for this awesome IP block and geocoding database: http://www.maxmind.com/app/c [08:05] jesusabdullah: but fuld when are we going to get numerical libs? :( [08:05] echosystm: i have no idea what that is jesusabdullah, but it sounds pretty good [08:05] Fuld: Numerical jesusabdullah? [08:05] jesusabdullah: Hah [08:05] jesusabdullah: Yeah! How else is javascript supposed to supplant fortran? [08:05] jesusabdullah: ;) [08:05] Fuld: WITH CLOJURES [08:05] galaxywatcher has joined the channel [08:05] Fuld: ;p [08:05] jesusabdullah: TSSCH [08:05] jesusabdullah: Well [08:06] jesusabdullah: It'd help if there was a way to simply and quickly multiply matrices :P [08:06] Fuld: The real question is, how do we supplant Python/Django and Ruby/Rails? [08:06] jesusabdullah: by getting better numerical libs, obviously [08:06] jesusabdullah: ;) [08:06] jesusabdullah: Actually, python has pretty good numerical libs [08:06] jesusabdullah: numpy is pretty nice [08:06] Fuld: (We won't vanquish PHP, PHP programmers a fuckin' cockroaches.) [08:07] jesusabdullah: but python doesn't have the asynchronous sexiness that node does [08:07] Fuld: Twisted, actually :) [08:07] jesusabdullah: tssch [08:07] jesusabdullah: Not the same [08:07] jesusabdullah: I feel like all the async solutions for python are gigantic hacks [08:07] jesusabdullah: :( [08:08] Fuld: And ruby is too hipster [08:08] echosystm: and java is too hard. [08:08] echosystm: have any of you tried to use netty or mina? [08:08] echosystm: i threw them straight into the too hard basket [08:08] jesusabdullah: ruby has gsl bindings [08:08] jesusabdullah: but I never bothered to learn ruby [08:09] Fuld: We could always go back to CGI programming in C ;p [08:09] jesusabdullah: Also, the ecosystem has a lot of noise due to rails and hipsters [08:09] jesusabdullah: python has noise too, but it's not quite as bad [08:09] Fuld: And C# is totally emo [08:10] jesusabdullah: idk much bout C# tbh [08:10] jesusabdullah: I'm a mechanical engineer by training [08:10] Fuld: cool [08:11] jesusabdullah: so more common languages in my field are matlab, LabVIEW and C/C++ [08:11] jesusabdullah: python sometimes, because of abaqus [08:12] jesusabdullah: A lot of tools are written in java, also. In fact, matlab and comsol are both java-based [08:13] Fuld: Ever worked with sentiment analysis or natural language processing in general? [08:13] adambeynon has joined the channel [08:13] EGreg_ has joined the channel [08:14] mscdex: ever worked on skynet? [08:15] mscdex: Fuld: btw, there are some geoip bindings already :> [08:15] echosystm: ever drank baileys from a shoe? [08:15] Fuld: mscdex: Where? :o [08:15] mscdex: Fuld: https://github.com/ry/node/wiki/modules [08:16] backinnam__ has joined the channel [08:16] Fuld: Cool, he has lots here [08:16] jesusabdullah: Fuld: Not really. Most engineering problems involve solving differential equations, not language processing. Why? [08:17] void_ has joined the channel [08:17] jesusabdullah: Sentiment analysis sounds interesting though [08:18] Fuld: jesusabdullah: I'd like to see an opensource s/a project for node.js [08:18] jesusabdullah: ah [08:18] jesusabdullah: Is there a sentiment analysis project that's not in node? [08:19] Fuld: Java has rapidMiner [08:19] Fuld: It employs maching learning. Pretty cool. [08:20] jesusabdullah: Neato [08:20] Fuld: interesting thread: http://news.ycombinator.com/item?id=1704648 [08:22] luke` has joined the channel [08:23] hellp has joined the channel [08:24] andrewfff has joined the channel [08:24] curtischambers has joined the channel [08:24] jesusabdullah: You saw how the one guy mentioned SVD and categorization algorithms and all that jazz? [08:25] jesusabdullah: gsl bindings would definitely help with a lot of that stuff [08:25] jesusabdullah: SVD at least [08:27] garrensmith: is there a compass equivalent for less? [08:31] SubStack: hooray I got sesame working https://github.com/substack/node-sesame [08:32] SubStack: just modify req.session, even if you're using a database! [08:32] SubStack: bwahahahaha take that harmony proxy (hoxy) doubters! [08:32] jimt has joined the channel [08:33] Utkarsh has joined the channel [08:33] andrewfff has joined the channel [08:39] piscisaureus has joined the channel [08:39] ossareh has joined the channel [08:40] unomi has joined the channel [08:40] Druid_ has joined the channel [08:44] Evet has joined the channel [08:48] jimt_ has joined the channel [08:52] yozgrahame has joined the channel [08:53] jimt has joined the channel [08:53] mscdex: SubStack: where's the cool graphic? [08:53] SubStack: working on it [08:54] admc has joined the channel [08:58] SamuraiJack has joined the channel [09:07] ROBOd has joined the channel [09:13] skm has joined the channel [09:17] mraleph has joined the channel [09:24] beawesomeinstead has joined the channel [09:24] beawesomeinstead has joined the channel [09:25] Utkarsh_ has joined the channel [09:27] masahiroh has joined the channel [09:30] jimt has joined the channel [09:31] pomodoro has joined the channel [09:32] q_no has joined the channel [09:33] d0k has joined the channel [09:40] fly-away has joined the channel [09:42] mikeal has joined the channel [09:43] steffkes has joined the channel [09:43] mraleph: echosystm: if experimental/gc flies — 1gb memory limit will be gone [09:44] echosystm: what is experimental/gc ? [09:44] mraleph: branch [09:44] mraleph: we are developing new shiny GC. [09:44] echosystm: nice [09:44] echosystm: are you on the v8 team? [09:44] mraleph: yes [09:45] echosystm: in the event that it doesnt take off, is it likely to get adopted by nodejs anyway? [09:46] mraleph: if it is be better than it will be merged to v8. if it isn't — there is no need to adopt it by nodejs [09:47] torvalamo has joined the channel [09:47] aklt has joined the channel [09:48] echosystm: gc isnt a one-size-fits-all thing though is it? ie. what v8 has now is fast on small heaps, so it is good for web browsers. the ideal gc for nodejs would likely have very different performance characteristics. is it possible to make a gc that fits both purposes well? [09:48] echosystm: (i'm not versed in that kind of thing, i'm just guessing here) [09:52] stagas: SubStack: cool [09:53] piscisaureus_ has joined the channel [09:54] skm has joined the channel [09:55] gattuso has joined the channel [09:59] andrewfff has joined the channel [10:00] fangel has joined the channel [10:07] mraleph: echosystm: you are right. but nowadays inbrowser JavaScript heaps are growing larger and larger and in the same time developers want smaller pauses (e.g. for animation smoothness). [10:10] garrensmith: when using spawn, can you kill the process? [10:11] [[zzz]] has joined the channel [10:11] mraleph: you get pid back don't you? so you can send KILL later [10:12] garrensmith: mraleph: yeah thanks, you can also jsut call kill() on the spawned object. [10:12] stagas: garrensmith: http://nodejs.org/docs/v0.3.7/api/child_processes.html#child.kill [10:13] matjas has joined the channel [10:13] mraleph: neat. I know almost nothing about nodejs APIs :-) I was talking in terms of POSIX spawn. [10:15] pdelgallego__ has joined the channel [10:16] muk_mb has joined the channel [10:17] felixge has joined the channel [10:17] felixge has joined the channel [10:24] garrensmith: which lib would anyone recommend for reloading of files? [10:25] mape: garrensmith: for development? [10:25] garrensmith: yes [10:25] mape: garrensmith: I'm using nodemon [10:26] garrensmith: mape: cool I'll check it out thanks [10:26] garrensmith: mape: sorry have you got a link to it on github? [10:27] mape: garrensmith: http://www.google.se/#q=nodemon [10:27] garrensmith: mape: hehe thanks [10:29] SubStack: slickplaid: oh right https://github.com/substack/node-sesame [10:29] SubStack: I said I would ping you when I got it working [10:29] garrensmith: mape: awesome it works perfectly. Thanks again [10:30] mape: np [10:30] MatthewMueller has joined the channel [10:31] kiddphunk has joined the channel [10:31] breccan has joined the channel [10:31] masahiroh has joined the channel [10:32] pdelgallego_ has joined the channel [10:33] kubrow has joined the channel [10:34] skm has joined the channel [10:41] CrazyGoogle has joined the channel [10:45] vyvea has joined the channel [10:48] kristsk has joined the channel [10:51] gmonnerat has joined the channel [10:52] dekz has joined the channel [10:53] dekz: I have a question, I guess regarding precision, in JS [10:54] dekz: (3458249785 % 4294967296) & 0xFFFFFFFF = -836717511 [10:54] dekz: sorry for that, pasting made a new line, but it gives 3458249785 in python. Is there a way to get around this in JS/node? [10:54] micheil: anyone know how you'd describe the flags that C's open() takes? [10:54] micheil: dekz: I think there's a bignum module for node [10:54] nook has joined the channel [10:54] micheil: javascript doesn't have big int precision [10:57] rjrodger_ has joined the channel [10:57] mscdex: dekz: you can do some bit twiddling to get the right number [10:58] andrewfff: dekz: you can do (3458249785 % 4294967296) % 0x100000000 [10:58] andrewfff: bitwise & forces things down to the integer level. using the second % means everything is still in doubles [10:59] andrewfff: you still have the same problem, but it'll kick in at approx 50 bits of precision rather than 31 [10:59] mscdex: yeah [11:00] gmonnerat: Hello, is it a problem with my node.js? http://pastebin.com/9bUZbAwe [11:00] mscdex: gmonnerat: you want .end() [11:01] gmonnerat: mscdex: thanks [11:02] dekz: I'll check it out andrewfff cheers andrewfff and mscdex [11:14] chrischris has joined the channel [11:15] MikhX has joined the channel [11:15] micheil: ryah: in the new docs stuff, I'm dropping the legacy documentation for fs.write and fs.read [11:16] torgeir has joined the channel [11:16] unomi has joined the channel [11:20] SvenDowideit has joined the channel [11:25] micheil: v8: (3458249785 % 4294967296) % 0x100000000 [11:25] v8bot: micheil: 3458249785 [11:26] dekz: v8: (892745528 ^ 3702817303) [11:26] v8bot: dekz: -377309905 [11:26] micheil: heh, cool [11:26] micheil: v8: (892745528 ^ 3702817303) % 0x100000000 [11:26] v8bot: micheil: -377309905 [11:26] micheil: :/ [11:26] micheil: v8: (892745528 ^ 3702817303) ^ 0x100000000 [11:26] v8bot: micheil: -377309905 [11:28] kristsk has joined the channel [11:28] piscisaureus_: micheil: will these new docs reside in ry/node/doc just like the old ones? [11:28] micheil: piscisaureus: yes [11:28] micheil: they will eventually be merged. [11:29] micheil: for a sneak peak, checkout github.com/votizen/node [11:29] piscisaureus_: micheil: in the short term I should be adding some compatibility notes for the windows build [11:30] micheil: probably add them to the wiki for now. [11:30] micheil: "Windows Compatibility" [11:32] piscisaureus_: micheil: yeah for documenting the build process it doesn't matter. But stuff like 'this argument is ignored on windows' etc? [11:32] micheil: not for the moment. [11:32] micheil: maybe after the new doctool is written. [11:34] w0rse has joined the channel [11:35] niklasfi has joined the channel [11:35] tanepiper: npm repo down? [11:38] SubStack: maybe npm is hosted in cairo [11:38] SubStack: you can never tell with this cloud stuff [11:38] niklasfi: lol! [11:38] rjrodger_ has joined the channel [11:38] kristsk` has joined the channel [11:40] micheil: there is a shit load of fs.* methods. [11:40] niklasfi: micheil: well. for my taste there are not enough of them [11:41] micheil: try documenting them all... >_> [11:42] niklasfi: micheil: well yeah. i am currently trying to understand the fs.js source code... i want to be able to pass a position statement to createWriteStream [11:42] micheil: oh, riht. [11:43] micheil: so, I think writeStream doesn't support offsets [11:43] micheil: this._queue.push([fs.write, data, 0, data.length, null, cb]); [11:43] zorzar_away has joined the channel [11:43] micheil: where null is should be the offset in the file [11:44] micheil: if fs.write has an offset of null, then the writing will occur from the current position within the file [11:44] niklasfi: micheil. i will try making that position || null and then set position to null after that has been executed... [11:44] micheil: niklasfi: watch out with that though, purely because it's unstable code, and has an open issue [11:44] niklasfi: micheil: btw do you know wether chunk.length of http.get(...).on('data',function(chunk){...}) gives me the byte size of the chunk? [11:45] micheil: (it's stable as long as you don't do write() a lot (like write in a while loop_ [11:45] niklasfi: micheil: ahh that is where my problem lies... [11:45] piscisaureus_: micheil: what is the issue with it? [11:45] Blink7 has joined the channel [11:46] niklasfi: i am currently writing on a download script which should in the end support a range statement. however i am currently testing the .1 version and node tells me that it recieved and wrote a certain number of bytes but in the end the file size is too small [11:47] micheil: dude. [11:47] micheil: 0.1? [11:47] micheil: we're approaching 0.4 now [11:48] niklasfi: micheil: 0.1 of my script :) [11:48] micheil: ah. [11:48] niklasfi: just updated to 0.3.7 yesterday [11:49] niklasfi: interestingly on my desktop i get 3 errors but on my laptop i don't when running tests [11:49] micheil: piscisaureus: issue is this: https://gist.github.com/797775 [11:49] matjas has joined the channel [11:49] micheil: basically write() is called.. [11:50] micheil: v8: 1024*1024 [11:50] v8bot: micheil: 1048576 [11:50] micheil: times [11:50] matjas has joined the channel [11:50] micheil: I do have a patch that will batch writes [11:50] jetienne has joined the channel [11:50] micheil: into chunks of 40960 bytes [11:50] niklasfi: micheil: that is not my issue... [11:50] piscisaureus_: micheil: yeah. that is weird [11:51] micheil: niklasfi: I'm just saying be careful when modifying that code. [11:51] niklasfi: micheil: well actually it is a two liner to modify it [11:51] piscisaureus_: micheil: looks like some kind over overactive os spinlock [11:51] piscisaureus_: on windows, at least [11:52] niklasfi: micheil: and using createWriteStream is actually much much easier than using fs.write [11:52] micheil: well, internally fs.writeStream uses fs.write [11:52] micheil: I'd recommend using fs.write for your purposes, for now. [11:52] niklasfi: micheil: but it works better than my script. [11:53] micheil: hmm.. this beer I'm drinking has the smell of vegemite.. [11:53] TomY_ has joined the channel [11:53] niklasfi: micheil: could you have a look at https://github.com/niklasfi/webclient/blob/master/download2.js and look wether you find where the file difference comes from? [11:53] niklasfi: micheil: that does not sound too good [11:53] micheil: niklasfi: it's quite nice, actually. [11:53] niklasfi: micheil: what is it? [11:53] micheil: (but then again, I'm an aussie) [11:54] niklasfi: micheil: i noticed, when you said it smells like vegemite. who else has vegemite? [11:54] micheil: I dunno *shrug* [11:55] niklasfi: micheil: even the british only have marmite [11:55] micheil: it's actually a coffee flavored beer, but I can smell the yeast in it [11:56] matjas has joined the channel [11:56] micheil: http://www.ausfoodnews.com.au/2010/07/06/matilda-bay-seasonal-release-longshot-coffee-beer.html [11:56] torvalamo: niklasfi, i think the aussies tasted marmite and went "goddamn that nasty, let's make our own version instead", and the british went "goddamn that's nasty, let's just keep marmite" [11:57] micheil: lol. [11:57] torvalamo: as if there's nothing else to eat! [11:58] micheil: I actually don't mind eating vegemite, especially in the company of foreigners, it's amusing. [11:59] micheil: I do have friends who have on occasion eaten vegemite by the spoonful. That. That, I can't do regularly. [11:59] niklasfi: micheil: yuck! [11:59] micheil: lol. [12:00] mikekelly: is 1540 req/second on the right track? :) [12:00] mikekelly: (http) [12:00] torvalamo: that's a pointless number unless your app is completely done [12:01] stagas: mikekelly: concurrency ? [12:01] torvalamo: suddenly you can add something that makes a request take 2 seconds [12:01] mikekelly: stagas: only 2 [12:02] mikekelly: stagas: what's a decent value? [12:02] stagas: mikekelly: it's great but it depends on how complex your app is like torvalamo said [12:03] torvalamo: yeah what is it [12:03] torvalamo: a blog engine? [12:03] torvalamo: a newspaper? [12:03] torvalamo: a proxy? [12:03] stagas: once you add view rendering that number will decrease a fair amount [12:03] mikekelly: it's somewhere in between rails and sinatra :-) [12:04] mikekelly: stagas: right, I haven't done that yet cos I want to make sure the guts are ok [12:04] torvalamo: that's like saying my house is huge because it's made of wood [12:04] mikekelly: sure, I'm not laying claim to greatness I'm just checking I'm on the right track [12:04] mikekelly: calm down :) [12:04] Juan77 has joined the channel [12:05] stride: batman! [12:05] stagas: mikekelly: yeah it's great for now, though you should try benching at a higher concurrency like 50, 100 [12:05] stride: morning guys [12:05] torvalamo: if it's a framework then there's no way at all to know if 1540 req/sec is good [12:05] mikekelly: ab -n 1000 -c 50 gives me 3961.73 [#/sec] (mean) [12:06] torvalamo: since the app being made with the framework can be anything [12:06] torvalamo: if it's 1540 req/sec with an empty app, then that's a bit low imho [12:06] torvalamo: also it depends on the server [12:06] mikekelly: sure, this server is pants :D [12:07] torvalamo: and you don't want the mean anyways [12:07] torvalamo: you want the peak request time and what causes it [12:08] stagas: mikekelly: is your code on github? [12:08] mikekelly: yeah [12:08] torvalamo: if one request takes as long as 500 other requests, then that's 500 requests off your mean for no reason you can see using only mean [12:08] mikekelly: stagas: https://github.com/mikekelly/goo [12:09] mikekelly: https://github.com/mikekelly/goo-example [12:09] tanepiper: anyone using jQuery, is http://bassistance.de/jquery-plugins/jquery-plugin-validation/ still the best form validation plugin? [12:10] tanepiper: i've been using ExtJS a lot recently so don't know if there is something better these days [12:10] Paul___ has joined the channel [12:10] awenkhh has joined the channel [12:11] torvalamo: wouldn't it be better to validate over ajax, and keep all your validation code server side? less code duplication [12:11] micheil: niklasfi: for one, Download() should take a callback [12:11] tanepiper: torvalamo: this is for regex validation (i.e. valid email) and at the moment i don't have access to the client backend [12:11] tanepiper: i basically need to throw together an example form to show the client [12:12] niklasfi: micheil: ok. good idea. [12:12] micheil: niklasfi: for two: you can store on offset of data that is already written, then just make that your offset [12:12] torvalamo: tanepiper, jquery is great for prototypes [12:12] micheil: so this.written = 0; [12:12] niklasfi: micheil: i do that : this.filestats.bytesWritten [12:12] torvalamo: you don't have to worry about performance [12:12] micheil: on each fs.write() you += bytesWritten [12:13] Evet: ryah: v8 is wrong choice [12:14] torvalamo: bold statement [12:14] tanepiper: torvalamo: yea i know :) that's why i'm using it over extjs for this client, plus they use it on their site anyway so it's not a massive strech for them to maintain afterwards [12:15] torvalamo: ah ok [12:15] torvalamo: then it wouldn't matter if you used it [12:15] torvalamo: since it would be there anyways [12:16] mraleph: Evet: why is that? [12:17] Evet: mraleph: as i see, v8 suck at memory allocation [12:17] mnbvasd: ACTION hasn't found it that bad. [12:17] torvalamo: it only sucks if you don't know how it works [12:18] Evet: maybe [12:18] mraleph: Evet: any proof? [12:18] aklt has joined the channel [12:18] torvalamo: like, it helps to specify all the member attributes in the constructor function (this.a = this.b = this.c = null).. because if you don't, v8 will reallocate memory every time a new attribute is assigned [12:19] mraleph: Evet: benchmarks are welcome, as they say. [12:20] torvalamo: anywhere in the constructor is apparently fine, you don't have to set all to null [12:20] torvalamo: but if you set them outside (like in a prototype function) it will have an effect on performance [12:21] teddy_ has joined the channel [12:21] torvalamo: it's a few months since i learned that though, so if they fixed that problem, that's great [12:21] torvalamo: i doubt they did though [12:21] teddy_ has joined the channel [12:23] svenlito has joined the channel [12:24] niklasfi: micheil: did you find anything? [12:24] micheil: ? [12:24] micheil: Evet: also, got a better JS engine to use? [12:24] niklasfi: micheil: any reason the file sizes don't match? [12:24] micheil: no [12:25] piscisaureus_: Evet: yeah. Show the world a benchmark [12:26] piscisaureus_: micheil: that WriteStream bug actually works. It's just crazy slow. [12:26] micheil: piscisaureus: yeah, that's why it's a bug, it's crazy slow. [12:26] piscisaureus_: :-) [12:26] piscisaureus_: i see [12:27] micheil: I have a patch to queue the writes, but I think ryah wants writev [12:28] maushu has joined the channel [12:29] niklasfi: micheil: writev sounds sane. [12:30] niklasfi: can i call any fs function from process.binding('fs') or are the functions i can call in that defined in some other part of the code (e.g. core?) [12:31] Juan77 has joined the channel [12:32] maushu has joined the channel [12:33] felixge has joined the channel [12:33] felixge has joined the channel [12:36] peol has joined the channel [12:36] peol has joined the channel [12:36] linnk has joined the channel [12:37] linnk: hey [12:37] linnk: heh, 404 users, that's funny [12:38] maushu: Not found. [12:39] stride: what caused the 500+ peak the other day? I didn't notice any big news around node [12:39] micheil: wtf. [12:39] micheil: made a single change to the doctool and I'm getting proc out of memory errors... [12:39] linnk: release of 0.3.7 maybe? depends on which day it was [12:40] skm has joined the channel [12:40] micheil: niklasfi: The fs binding is described in node_file.cc [12:40] micheil: you can call any method that file exports, although, it's not recommended [12:42] fairwinds has joined the channel [12:44] hellp has joined the channel [12:44] tokumine has joined the channel [12:51] garrensmith: I've written a little engine that takes an Express file layout and make it a little more expressive. https://github.com/garrensmith/Expressive [12:51] garrensmith: I would like to know what you guys think [12:57] garrensmith: anyone else find that search.npmjs.org is not working? [12:58] tanepiper: nothing npm related seems to be working just now [12:59] unomi has joined the channel [12:59] garrensmith: tanepiper: yeah just noticed that [13:00] Max-Might has joined the channel [13:00] linnk: what do you guys use for really big file uploads? I found formidable, but the api doesn't look very node-ish (doesn't use EventEmitter fx) [13:04] herbySk has joined the channel [13:04] tanepiper: linnk: eh? it does https://github.com/tanepiper/dnode-upload-example/blob/master/server.js [13:05] matjas_ has joined the channel [13:05] maushu has joined the channel [13:07] linnk: tanepiper: weird, I must have found some really old docs then [13:09] tanepiper: ahh, well the above example is good for big files + socket.io, as you can send progress back over the wire [13:09] jimt has joined the channel [13:25] pomodoro has joined the channel [13:26] syntheze has joined the channel [13:28] linnk: tanepiper: cool, thanks a lot, very helpful :) [13:28] pomodoro has joined the channel [13:32] mike5w3c_ has joined the channel [13:37] hunterloftis has joined the channel [13:37] tokumine has joined the channel [13:38] romainhuet has joined the channel [13:46] fnd has joined the channel [13:49] skm has joined the channel [13:53] broofa has joined the channel [14:07] ttpva has joined the channel [14:07] zomgbie has joined the channel [14:10] perlmonkey2 has joined the channel [14:14] TomY_: anyone know how long it takes between publishing to npm and being able to install? [14:15] stagas: TomY_: I think instantly [14:16] torvalamo: yeah there's no reason why not [14:16] torvalamo: except for npm to download your archive [14:17] torvalamo: to the server [14:17] charlenopires has joined the channel [14:17] niklasfi has left the channel [14:21] MikhX has joined the channel [14:21] mAritz has joined the channel [14:28] jbrantly has joined the channel [14:30] shiawuen has joined the channel [14:33] TomY_: ACTION hopes his package (named proton) shows up soon :-o [14:35] void_ has joined the channel [14:36] tokumine has joined the channel [14:37] iszak has joined the channel [14:37] jetienne has joined the channel [14:39] nooder has joined the channel [14:40] boaz has joined the channel [14:40] tanepiper: TomY_: NPM issues at the moment, just be patient [14:40] tanepiper: :) [14:43] torvalamo: what's your package for? [14:43] davidpadbury has joined the channel [14:44] torvalamo: i see proton 0.1.2 [14:45] torvalamo: you should consider adding a description to package.json in future versions [14:45] torvalamo: so that it shows up in npm list [14:45] torvalamo: what it is [14:48] rjrodger_ has joined the channel [14:53] TomY_: hi torvalamo, it's a package that makes it easy to run jsgi web applications, although not a framework itself... [14:53] TomY_: described here: https://github.com/tomyan/proton.js [14:54] TomY_: will add a description for the next release (+ a link i guess) [14:55] torvalamo: yeah there weren't a link either [14:55] torvalamo: :P [14:55] richardhodgson has joined the channel [14:55] torvalamo: only thing that gave it away were the dependencies [14:56] torvalamo: which isn't much to go by [14:56] TomY_: will fix shortly [14:57] EyePulp has joined the channel [14:58] pHcF has joined the channel [15:04] jchris has joined the channel [15:08] jimt has joined the channel [15:09] mw has joined the channel [15:10] jashkenas has joined the channel [15:11] mikekelly: is there a way to get the path containing the current running code? [15:11] linnk: mikekelly: __dirname I think [15:11] jashkenas: bingomanatee: I think a couple of folks have used it with express, as well as backing it with Couch and Mongo. [15:12] mikekelly: linnk: perfect ta [15:15] linnk: hmm, shouldn't __dirname be defined in the repl? [15:15] nonnikcam has joined the channel [15:21] pdelgallego_ has joined the channel [15:22] jashkenas: JimBastard: (reading backlog) I'm afraid I haven't seen any particularly noteworthy socketio examples ... but the principle should be the same: whenever a model's attributes are sent down the pipe, model.set(attrs) [15:23] pdelgallego__ has joined the channel [15:24] Solsys has joined the channel [15:29] nu- has joined the channel [15:29] softdrink has joined the channel [15:29] shaver: OK, time to use node-seq instead of my own half-baked shit [15:32] tokumine has joined the channel [15:35] torvalamo: what's wrong with half-baked? it's the second best kind of baked. [15:37] shaver: fair enough [15:42] steffkes has joined the channel [15:42] charlenopires_ has joined the channel [15:43] shaver: I just updated to 0.3.7 from 0.3.2 [15:43] shaver: oh [15:43] shaver: I bet http changed [15:44] shaver: Error: Parse Error at Client.onData [as ondata] (http.js:1227:27) [15:44] shaver: weird [15:44] torvalamo: yeah well, that's just, like, your opinion, man [15:49] flukes1: I have libssl-dev installed on ubuntu but node ./configure says "Checking for openssl : not found" [15:49] flukes1: anyone seen this before? [15:50] markstory has joined the channel [15:51] tanepiper: flukes1: yes [15:51] tanepiper: apt-get install pkg-config [15:51] flukes1: that works, thanks! [15:52] tanepiper: yea, seems to be an issues with ubuntu server [15:53] xla has joined the channel [15:54] Yuffster has joined the channel [15:55] EyePulp has joined the channel [15:56] c4milo1 has joined the channel [15:58] charlenopires has joined the channel [15:59] MattJ has joined the channel [16:00] webr3 has joined the channel [16:00] webr3: anybody know of a way to get a variable name? [16:00] webr3: foo = { ar: "baz }; // how to get "foo" as a string [16:01] tanepiper: JSON.stringify(foo) ? [16:01] webr3: v8: foo = { ar: "baz }; JSON.stringify(foo); [16:01] v8bot: webr3: SyntaxError: Unexpected token ILLEGAL [16:01] webr3: v8: foo = { ar: "baz" }; JSON.stringify(foo); [16:01] v8bot: webr3: "{"ar":"baz"}" [16:02] webr3: can do it with functions.. [16:02] tanepiper: well functions and dates are not valid in a JSON string [16:02] webr3: v8: function foo() {}; foo.constructor.name; [16:02] v8bot: webr3: "Function" [16:02] webr3: v8: function foo() {}; foo.prototype.constructor.name; [16:02] v8bot: webr3: "foo" [16:02] webr3: v8: foo = { ar: "baz" }; JSON.stringify(foo.prototype.constructor.name); [16:02] v8bot: webr3: TypeError: Cannot read property 'constructor' of undefined [16:03] webr3: v8: foo = { ar: "baz" }; JSON.stringify(foo.constructor.name); [16:03] v8bot: webr3: ""Object"" [16:03] tanepiper: http://stackoverflow.com/questions/789675/how-to-get-class-objects-name-as-a-string-in-javascript ? [16:03] andrewfff: webr3: probably can't, it doesn't really make sense [16:03] andrewfff: var a = []; [16:03] andrewfff: var b = a; [16:04] andrewfff: if there was a get_variable_name() function, would get_variable_name(a) return 'a' or 'b'? [16:04] webr3: ['a','b'] :p but yup i thought the same myself [16:04] webr3: tanepiper, ty [16:08] tanepiper: webr3: your in scotland aren't you? [16:08] webr3: "aye" [16:08] mikekelly: :( [16:08] mikekelly: bad luck [16:09] tanepiper: i'm thinking of organising a JS meetup sometime soon in Edinburgh [16:09] webr3: better than being stuck on some island in the ocean ;) [16:09] tanepiper: i'll ping you later, I'm about to have my tea [16:09] webr3: tane, cool [16:11] mikekelly: webr3: is it?! :P [16:11] charlenopires_ has joined the channel [16:11] yumike has joined the channel [16:12] webr3: mikekelly, goo looks interesting, the example's cool (nice and light) [16:14] zylo has joined the channel [16:15] tokumine has joined the channel [16:15] shaver: boy, I don't know what's wrong with a parse error here [16:16] tokumine has joined the channel [16:17] mikekelly: webr3: thanks, I think I'm Doing It Right(tm) [16:18] mikekelly: I need to add some middleware to catch 404's and check the static file folder [16:18] mikekelly: and then I'm going to chuck ejs and mongoose in the mix and see what happens [16:19] mikekelly: you get 404's and 405's for free already though, which is kind of nice :-) [16:20] mikekelly: 405's have proper Allow header too, no cheating :D [16:22] Z10x6k6h has joined the channel [16:25] webr3: v8: function getName(x) { var n = ""; return Object.getOwnPropertyNames(this).some( function(k) { n = k; return this[k] == x } ) ? n : null; }; getName(me); [16:25] v8bot: webr3: ReferenceError: me is not defined [16:25] webr3: v8: me = {bar:"baz"}; function getName(x) { var n = ""; return Object.getOwnPropertyNames(this).some( function(k) { n = k; return this[k] == x } ) ? n : null; }; getName(me); [16:25] v8bot: webr3: "me" [16:26] webr3: screws up on references lol [16:29] rsms has joined the channel [16:30] webr3: v8: me = {bar:"baz"}; a = me; function getName(x) { var n = []; Object.getOwnPropertyNames(this).forEach( function(k) { return this[k] == x && n.push(k) } ); return n }; getName(me); [16:30] v8bot: webr3: ["a", "me"] [16:32] maushu has joined the channel [16:33] DTrejo has joined the channel [16:34] d0k has joined the channel [16:35] q_no has joined the channel [16:35] webr3: v8: me = {bar:"baz"}; a = me; function getName(x) { return Object.getOwnPropertyNames(this).filter( function(k) { return this[k] == x } ) }; getName(me); [16:35] v8bot: webr3: ["a", "me"] [16:35] webr3: that'll do [16:36] piscisaureus has joined the channel [16:37] Aria has joined the channel [16:40] kubrow has joined the channel [16:40] benburkert has joined the channel [16:41] perlmonkey2: I'm using express, starting node with NODE_ENV=development, but whenever I change an html file and force reload the page, my html changes aren't showing up. My browser debugger shows a 200 on the html page so it was reloaded. [16:42] perlmonkey2: This is from the response headers "Cache-Control:public max-age=0.001" [16:44] Aria: Interesting . . . Just that works for me. [16:44] Aria: Not that I've much experience with express yet. [16:45] felixge has joined the channel [16:46] liar has joined the channel [16:47] dipser has joined the channel [16:50] zomgbie has joined the channel [16:51] perlmonkey2: I see the problem. It is chrome not obeying the cache expiration. [16:51] perlmonkey2: Works fine in firefox. [16:51] boaz has joined the channel [16:54] Fuld: What are the best practices for pushing a module to npm? [16:56] Aria: Make sure your source directory is clean. Then do it. [16:56] Aria: Use semver style versioning. [16:59] Juan77 has joined the channel [17:02] Fuld: Aria, ok [17:02] Aria: (npm, for all its cleverness, is pretty hands-off.) [17:03] hornairs has joined the channel [17:04] GasbaKid has joined the channel [17:07] Utkarsh_ has joined the channel [17:08] ROBOTARMY has joined the channel [17:09] nichdiekuh has joined the channel [17:11] kris_ has joined the channel [17:11] Utkarsh_ has joined the channel [17:13] mikekelly: perlmonkey2: is that max-age valid? [17:13] curtischambers has joined the channel [17:19] SamuraiJack has joined the channel [17:20] ivan has joined the channel [17:25] PrgmrBill has joined the channel [17:26] yx has joined the channel [17:26] neynenmo has joined the channel [17:26] wang has joined the channel [17:27] Yuffster has joined the channel [17:35] jakehow has joined the channel [17:35] tedsuo has joined the channel [17:36] brianleroux has joined the channel [17:36] mandric has joined the channel [17:39] ryanfitz has joined the channel [17:39] Stan____ has joined the channel [17:40] yozgrahame has joined the channel [17:40] Fuld: https://gist.github.com/802028 -- How do I publish? [17:41] Aria: type [17:41] Aria: npm publish [17:41] Aria: It'll upload everything in the directory where it's run [17:42] Utkarsh_ has joined the channel [17:42] Fuld: Something must be wrong with my box then. https://gist.github.com/802030 [17:43] Aria: Then do what it says ;-) [17:43] Aria: does your gzip support --stdout? [17:43] Aria: (CentOS, right?) [17:43] Fuld: yeah, centos 5.4 [17:44] Fuld: Aria, yeah it does [17:44] Aria: Hm. I don't know the specifics well enough, but email issacs with that log. He'll have diagnostics to check. [17:45] Fuld: cool, I'll let him know :) [17:45] Aria: (He's pretty darn responsive for being just one guy) [17:46] Ond has joined the channel [17:47] bingomanatee: I have a series of asynchronous actions (mongo inserts with callbacks) that I want to have all complete before I call another callback - I'm using setInterval/clearInterval stuff but was wondering if there is a cleaner way to block on multiple actions in Node. [17:47] bludadept_work` has joined the channel [17:48] stride: Step should have something for that usecase [17:50] boogyman has joined the channel [17:50] bingomanatee: sweet [17:50] Ond: Seq should be good for that as well [17:50] fly-away has joined the channel [17:51] arpegius has joined the channel [17:52] GasbaKid has joined the channel [17:53] Stan____: Hello. Can anyone tell me what could be wrong here? https://gist.github.com/802036 [17:53] sivy has joined the channel [17:54] mandric has joined the channel [17:54] niklasfi has joined the channel [17:55] niklasfi: hi! i have a simple question: is Buffer an instance of EventEmitter? e.g. can i create a 'full' event for that buffer? [17:55] matbee has joined the channel [17:56] kris_ has joined the channel [17:56] Aria: No, it's not. [18:00] mynyml has joined the channel [18:04] MikhX has joined the channel [18:10] Fuld: Can I export a function from my module so that it I can call the function by mymodule()/ [18:10] Fuld: ? [18:10] shiawuen1 has joined the channel [18:11] torvalamo: somefile.js: module.exports = function() {} [18:11] stride: module.exports = function foo() {} [18:11] stride: meh [18:11] stride: :) [18:12] torvalamo: something.js: var somefile = require('./somefile'); somefile(); [18:12] torvalamo: or require('./somefile')() [18:12] Aria: Yeah. Though how you do it in a C++ extension, I'm not sure. It is possible, though. You just have to replace the 'exports' entry on the 'module' [18:13] torvalamo: who said anything about c++` [18:13] torvalamo: ? [18:13] zzak has joined the channel [18:13] zzak has joined the channel [18:14] void_ has joined the channel [18:14] Aria: Fuld, for the last while ;-) [18:14] torvalamo: i'm asking in case i missed something earlier [18:14] torvalamo: not to be a dick [18:14] torvalamo: :p [18:14] Aria: This is the libhunspell binding. [18:14] torvalamo: ah [18:15] Fuld: Actually, this time I meant in Javascript :) [18:15] bbttxu has joined the channel [18:15] Aria: Spiffy [18:15] Aria: Aright. Time for customers! [18:15] Fuld: libhunspell binding is done, albeit hackish :) [18:19] tilgovi has joined the channel [18:21] dgathright has joined the channel [18:23] SubStack: 2 new node blog posts yay [18:24] SubStack: http://substack.net/posts/f5680b/Sesame-sessions and http://substack.net/posts/dfec35/Graph-of-node-js-package-dependencies [18:26] ajpiano has joined the channel [18:26] MattDiPasquale has joined the channel [18:27] kris_ has joined the channel [18:30] mattly has joined the channel [18:31] isaacs has joined the channel [18:31] matyr has joined the channel [18:31] markwubben has joined the channel [18:32] tanepiper: SubStack: any chance of doing an example with DNode for Sesame? [18:32] Fuld: SubStack: cool [18:33] SubStack: tanepiper: sure thing [18:33] tanepiper: woop [18:34] kawaz_air has joined the channel [18:35] Me1000 has joined the channel [18:38] beawesomeinstead has joined the channel [18:38] beawesomeinstead has joined the channel [18:40] skm has joined the channel [18:42] tokumine has joined the channel [18:43] ericnakagawa has joined the channel [18:45] jchris has joined the channel [18:48] jetheredge has joined the channel [18:51] kawaz_air has joined the channel [18:58] hellp has joined the channel [19:00] ROBOTARMY has joined the channel [19:03] abraham has joined the channel [19:03] boaz has joined the channel [19:03] cloudhea has joined the channel [19:04] warz has joined the channel [19:05] felixge has joined the channel [19:14] SubStack: tanepiper: https://github.com/substack/dnode-stack/blob/master/examples/sesame-connect/server.js [19:14] tanepiper: sweet [19:19] kawaz_air has joined the channel [19:20] skm has joined the channel [19:20] slickplaid: Hey SubStack, did you ever finish that user session ID thing? (Is that the node-sesame?) [19:20] SubStack: yep [19:21] SubStack: slickplaid: http://substack.net/posts/f5680b/Sesame-sessions [19:21] slickplaid: Awesome... Looking at it now :D [19:22] Evet_ has joined the channel [19:25] hobodave has joined the channel [19:25] softdrink has joined the channel [19:25] saschagehlich has joined the channel [19:26] SubStack: there posted it to HN too [19:26] kris_ has joined the channel [19:27] mikeal has joined the channel [19:32] creationix has joined the channel [19:32] mike5w3c_ has joined the channel [19:32] creationix: I guess I should stop using "modules" in my package.json files [19:32] mscdex: it looks like you don't have an option :p [19:36] softdrink has joined the channel [19:38] Fuld: SubStack: Do you think I should make this async? https://github.com/prodigylink/node-spell [19:38] dnolen has joined the channel [19:38] Fuld: My plan is to make a separate dictionary loading function that's async [19:39] creationix: mscdex: there is plenty of option, nobody has to use npm [19:39] Paul__ has joined the channel [19:39] creationix: in fact, the change makes it easier to not use npm [19:40] herbySk has joined the channel [19:41] tanepiper: which will be good for WebOS stuff [19:42] tanepiper: and other embedded nodejs when we get to that stage [19:43] Vertice has joined the channel [19:45] mikeal has joined the channel [19:45] bingomanatee has joined the channel [19:46] sh1mmer has joined the channel [19:49] noahcampbell has joined the channel [19:49] EGreg_ has joined the channel [19:54] felixge: ACTION will never write a loop in his life again [19:54] linnk: felixge: gone all functional? [19:55] SubStack: Fuld: async sounds like a good idea for spelling [19:55] syntheze has joined the channel [19:55] jetienne has joined the channel [19:56] tanepiper: felixge: does that include .forEach, or just for()/do/while ? [19:56] curtischambers has joined the channel [20:00] kris_ has joined the channel [20:01] piscisaureus has joined the channel [20:01] felixge: linnk: y [20:01] felixge: tanepiper: just the regular language constructs [20:02] felixge: I implemented myself a neat little collection class that is meant to hold objects [20:02] felixge: and that can be queried using the methods and properties of the object [20:02] felixge: collection.filter('isActive') [20:02] tanepiper: yea, certainly on server side I like .forEach + Object.keys(obj).forEach for looping [20:02] felixge: will give me all objects with isActive == true or isActive() == true [20:02] kris_ has joined the channel [20:02] tanepiper: thats cool [20:03] felixge: no, looping itself is wrong [20:03] felixge: it's hard to test [20:03] felixge: and it's hard to read [20:03] tanepiper: ACTION nods [20:03] linnk: felixge: what if you only want isActive == true? [20:03] felixge: so any loop that you can "abstract" with a filter / map makes life wonderful [20:03] felixge: linnk: tough luck. My collections are meant to hold only objects of the same type [20:03] felixge: the class is a little bit like this: http://jsclass.jcoglan.com/enumerable.html [20:04] felixge: (which I just found now) [20:04] linnk: okay [20:04] felixge: will probably make it available standalone [20:04] felixge: and I think I also want to port it to the browser [20:04] felixge: underscore is nice and all, but I think it's mislead [20:04] felixge: at least I find the sweet spot is a mix of OOP and Functional Programming [20:05] felixge: Underscore is a mix of Functional Programming and Procedural Programming [20:05] felixge: (well, depends on how you use it, but out of the box it's meant to deal with arrays/objects which are more entities than objects) [20:06] felixge: entity might be the wrong word, data structure is more appropiate [20:07] tanepiper: felixge: have you seen SubStack's js-traverse lib? https://github.com/substack/js-traverse [20:07] tanepiper: it's quite nice for dealing with hashes [20:07] felixge: no, I can't keep up with all the libs he releases *g* [20:08] felixge: looks a little esoteric on first glance [20:08] mscdex: he released a lib just last night! [20:08] mscdex: :p [20:08] tanepiper: it can be [20:08] felixge: i.e. I look at the code and feel a straight algorithm my be more expressive [20:08] tanepiper: mscdex: he released 2! [20:08] felixge: but than again, need to look at it in detail [20:09] felixge: ah, I think I get it [20:09] felixge: but I can't think of an application where I would need this [20:09] felixge: might be nice to sanitize an object with variables for a template [20:15] tanepiper: sweet: https://github.com/nzakas/computer-science-in-javascript [20:16] tanepiper: gonna port this to nodejs now :) [20:18] kuhrt has joined the channel [20:19] zzak: nice, thanks for sharing [20:22] matyr has joined the channel [20:22] saikat has joined the channel [20:24] isaacs has joined the channel [20:25] tokumine has joined the channel [20:29] kjeldahl has joined the channel [20:30] tedsuo has joined the channel [20:30] maushu_ has joined the channel [20:31] maushu__ has joined the channel [20:31] wdperson has joined the channel [20:31] niklasfi has joined the channel [20:32] MatthewMueller has joined the channel [20:34] sirius__ has joined the channel [20:34] sirius__: i have a problem installing node.js on win7x64 using cygwin [20:34] Z10x6k6h has joined the channel [20:34] sirius__: keeps telling me that the build fails [20:34] JimBastard has joined the channel [20:35] sveimac_ has joined the channel [20:35] sirius__: task failed(err #-1): \n\t{task: cc test.c-> test_1.o}' not found [20:35] sirius__: can anyone help ? [20:37] omni5cience has joined the channel [20:40] dgathright has joined the channel [20:41] maushu__ has joined the channel [20:41] maushu_ has joined the channel [20:42] rjrodger_ has joined the channel [20:42] Gruni has joined the channel [20:44] ryanfitz has joined the channel [20:45] Solsys has joined the channel [20:45] perlmonkey2 has joined the channel [20:46] cyraxx: how can i let a node script periodically do stuff and sleep inbetween? i used setTimeout/setInterval, but node of course exits as soon as it reaches the end of the script instead of waiting for the timeout to occur [20:46] wdperson has joined the channel [20:47] mape: cyraxx: It should wait for the timeout, are you sure you are doing it correctly? [20:47] dude_ has joined the channel [20:48] kristsk has joined the channel [20:48] prettyrobots has joined the channel [20:48] cyraxx: oh, it should? [20:48] mape: Jup, gist? [20:49] cyraxx: holy smokes, i'm stupid [20:49] cyraxx: it works as soon as you put the parameters to setTimeout in the wrong order :) [20:49] mape: hehe, yeah [20:49] cyraxx: err, right order [20:50] jashkenas has joined the channel [20:51] tanepiper: there we go: https://github.com/tanepiper/node-csj [20:52] curtischambers has joined the channel [20:53] Frush4 has joined the channel [20:55] Frush4: Hi there! Can anybody help me? I got an SQLITE database where I store large numbers (seconds since 1970). The integers are stored correctly (I checked it on the console) but with the sqlite driver I get negative(!) values. What's wrong here? [20:58] statenjason has joined the channel [21:00] nonnikcam has joined the channel [21:03] saschagehlich: Frush4: what's your query? are you calculating with the timestamps? [21:04] bbttxu has joined the channel [21:04] saschagehlich: folks: how can I stop jade from escaping interpolated strings? [21:05] Frush4: saschagehlich: The statement is "SELECT date FROM seen WHERE user='root' COLLATE NOCASE;". I get "1296333940003" on the sqlite console. With node-sqlite I get "{ date: -746187876 }". [21:06] Frush4: Column type is bigint, machine is x86_64. [21:06] saschagehlich: is it unsigned bigint? [21:07] Frush4: No it isn't. Hm. I try this. [21:07] saschagehlich: btw, I just answered my own question: with !{var} instead of #{var} jade stops escaping [21:09] Frush4: With "date BIGINT UNSIGNED" I get the same result. [21:10] cagdas has joined the channel [21:10] saschagehlich: hm strange [21:10] saschagehlich: then post an issue on github ;) [21:10] Frush4: Will do that. ;) Thanks anyway. :) [21:11] zorzar has joined the channel [21:12] ROBOTARMY has joined the channel [21:12] softdrink has joined the channel [21:13] tedsuo has joined the channel [21:14] sveimac has joined the channel [21:14] losing has joined the channel [21:15] Frush4 has left the channel [21:16] bbttxu has joined the channel [21:20] tg has joined the channel [21:21] saschagehlich: mjr_: ping [21:21] aaronblohowiak has joined the channel [21:22] jimt_ has joined the channel [21:22] dgathright has joined the channel [21:23] spetrea_: any books on event-based programming ? [21:24] aaronblohowiak: spetrea_: like CESP? [21:24] spetrea_: aaronblohowiak: CESP = ? [21:24] aaronblohowiak: http://en.wikipedia.org/wiki/Complex_event_processing [21:25] mAritz: where does the s come from? [21:25] mAritz: CEP? [21:25] mAritz: or maybe CEPS? [21:25] aaronblohowiak: mAritz: "stream", my brain injected that word in there [21:26] mAritz: :) [21:26] spetrea_: and then there's all these new terms coming [21:26] spetrea_: like [21:26] spetrea_: streams [21:26] spetrea_: futures [21:26] spetrea_: phasers [21:27] pHcF_ has joined the channel [21:27] jetheredge has joined the channel [21:28] aaronblohowiak: spetrea_: i recommend leaving your phaser on stun [21:29] spetrea_: ok maybe the phaser is not included [21:32] teddy_ has joined the channel [21:32] GasbaKid has joined the channel [21:34] TobiasFar has joined the channel [21:35] hornairs has joined the channel [21:37] aaronblohowiak: i am surprised more people haven't jumped on the "share your views with the client" bandwaggon [21:37] briznad has joined the channel [21:37] jashkenas: I think a lot of folks jump past that to the "views are always rendered on the client" perspective. [21:39] aaronblohowiak: jashkenas: and then the pre-sales stuff is written in a different template language? [21:39] aaronblohowiak: s/pre-sales/non-"app" [21:40] Me1000 has joined the channel [21:40] jashkenas: sure, static HTML is usually fine for that. [21:41] jashkenas: It would be interesting to know, if you took a survey of the folks building Node apps in here, what percentage are public-facing and need to be index-able by google, and what percentage are "app" apps. [21:42] aaronblohowiak: jashkenas: i like the fact that backbone encourages people to build their ui against their api [21:43] aaronblohowiak: jashkenas: and i would be interested in that survey, but looking into the growth of a unified development environment in js, static html makes me a little sad. [21:44] jashkenas: fair enough. [21:44] jashkenas: speaking of which ... i ran across a working copy of Netscape 4 the other day. [21:44] jashkenas: And it was crazy to look at different popular websites through it. [21:45] jashkenas: Most look completely fucked, but there's a surprising amount that are perfectly possible to read. [21:45] sveimac has joined the channel [21:45] jashkenas: long lists of blue-underlined links, left-aligned images, and plain Georgia text. [21:45] jesusabdullah: Georgia is a relatively pleasant font. [21:45] aaronblohowiak: jashkenas: like using a screen reader [21:45] jashkenas: pretty much -- it was choking on modern JS. [21:46] kris_ has joined the channel [21:46] jesusabdullah: How different was that era of js? [21:46] jesusabdullah: :S [21:48] omni5cience: jashkenas: where did you find it? [21:48] jashkenas: omni5cience: the NYTimes has a browser compatibility lab, and one of the machines had it installed. [21:49] jashkenas: We were trying to diagnose a heisenbug... [21:49] omni5cience: oh that's pretty cool [21:49] pdelgallego__ has joined the channel [21:49] pdelgallego_ has joined the channel [21:49] jesusabdullah: heisenbug? [21:49] jesusabdullah: :D [21:49] jesusabdullah: That's great [21:49] jesusabdullah: Did you find it? [21:51] jashkenas: not yet. [21:51] jesusabdullah: D: [21:51] jashkenas: same browser, same os, same options, same everything ... one machine does it every time ... and the other does not. [21:52] aaronblohowiak: jashkenas: browser plugins ? [21:52] jashkenas: Perhaps someone will have run into it before.. We were getting inconsistent measurements from jQuery.offset() for a div. [21:52] omni5cience: what's that? [21:52] jashkenas: There were a couple relative positioned ones above it. [21:52] omni5cience: what kind of heisenbug? [21:52] omni5cience: lol [21:52] jashkenas: But it doesn't make much sense that the same version of the same browser would return two different values for the offset, on different machines. [21:53] jashkenas: oh well. [21:53] aaronblohowiak: jashkenas: was there a custom css from the browser, or accessibility settings changing the default font size? [21:53] aaronblohowiak: (i am thinking there may be an 'em' issue) [21:53] omni5cience: you try stepping through it on both machines? [21:56] jashkenas: aaronblohowiah: that should have been reset ... but it certainly could be. [21:56] jashkenas: It was a consistent 40 and 20 pixels off on the machines where it was broken. [21:56] jashkenas: I'm assuming more that it's just something stupid deep in the codebase. [21:57] jashkenas: You know, after spending 5+ hours on a bughunt, the chances that it's just a typo go up significantly. [21:57] aaronblohowiak: jashkenas: the question i usually ask myself after debugging that kind of issue is "how did this ever work?" [21:57] aaronblohowiak: typo++ [21:57] v8bot: aaronblohowiak has given a beer to typo. typo now has 1 beers. [21:58] jashkenas: unrelated, but this is neat: http://dmitrysoshnikov.com/coffee-lisp-eval/index.html [21:59] kiddphunk has joined the channel [21:59] aaronblohowiak: jashkenas: sweet. [22:00] jashkenas: really nice annotated source: http://dmitrysoshnikov.com/coffee-lisp-eval/eval.coffee [22:00] aaronblohowiak: where's the docco ? [22:00] jashkenas: yeah, I should bug him. [22:01] tanepiper: might try learn me a bit of coffeescript tonight [22:03] omni5cience: I recently discovered parenscript [22:03] omni5cience: tryparenscript.com [22:04] zylo has joined the channel [22:05] jesusabdullah: Been meaning to write parenscript with the intent of running it on node [22:06] jesusabdullah: y'know, like, write a short executable that first generates the jabbascript then runs it on node [22:06] jesusabdullah: kinda like coffee [22:06] jesusabdullah: but parens [22:06] jesusabdullah: right? [22:06] jesusabdullah: I wonder how the lispers would feel about that one :) [22:06] echosystm has joined the channel [22:07] c4milo1 has joined the channel [22:07] jashkenas: jesusabdullah: jbr's got that done for you already: http://sibilantjs.info/#welcome [22:07] rpflo has joined the channel [22:07] jesusabdullah: orly? Bangin' [22:08] jashkenas: jesusabdullay: check out this "Lisp" section on this page: https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS [22:08] jesusabdullah: Hmm [22:08] jesusabdullah: sibilantjs is a lispy language, though, and not parenscript itself :/ [22:09] aaronblohowiak: tanepiper: the example i would put together would be using a nonce with Push-It, not dnode.. i have not used DNode.. [22:09] dnolen has joined the channel [22:09] tanepiper: oh lispy javascript [22:09] jesusabdullah: It actually looks kinda interesting [22:10] tanepiper: aaronblohowiak: ahh ok, it's cool SubStack came up with a Dnode example using sesame anyway [22:10] aaronblohowiak: tanepiper: ah, cool [22:11] jesusabdullah: push-it? UNFAMILIAR [22:11] mape: Hmm anyone here used node-mongodb-native and had issues with update and upsert? [22:11] jesusabdullah: aaronblohowiak: dnode is pretty fun---worth giving a shot if you have the time [22:11] aaronblohowiak: jesusabdullah: https://github.com/aaronblohowiak/Push-It [22:12] aaronblohowiak: jesusabdullah: that style of RPC is interesting, but doesn't really fit with the way i think about building out systems =( [22:13] cagdas has joined the channel [22:13] jesusabdullah: aaronblohowiak: How so? [22:13] mandric has joined the channel [22:15] aaronblohowiak: jesusabdullah: the client and server know too much about each other's state with DNode [22:15] aaronblohowiak: IMHO [22:15] jesusabdullah: Hmm [22:15] aaronblohowiak: SubStack is an amazing programmer, and I am sure it works for him [22:16] aaronblohowiak: but i think that i would have a harder time debugging DNode-style code, refactoring it and making it scale [22:16] jesusabdullah: Oh geez, I'm not trying to say you're wrong! I'm just making good conversation [22:16] aaronblohowiak: :-) [22:16] jesusabdullah: I know what you mean, actually. The state-passing is really powerful, but sometimes it can get a bit nuts. [22:16] aaronblohowiak: jesusabdullah: i'd really just like to emphasize that it is a difference in style, not that i believe that DNode is bad or anything like that.. [22:17] aaronblohowiak: jesusabdullah: kind of like how I (mostly) gave up on functional-reactive programming in js [22:17] jesusabdullah: ohmm [22:17] jesusabdullah: You tried FRP with js? [22:18] aaronblohowiak: jesusabdullah: http://aaronblohowiak.github.com/Propagate-JS/demo/shopping_cart.html http://aaronblohowiak.github.com/Propagate-JS/demo/colors.html [22:18] aaronblohowiak: http://aaronblohowiak.github.com/Propagate-JS/ [22:18] jesusabdullah: I think it would be interesting to look into, if only to come up with an alternative to Excel-style calculations [22:19] jesusabdullah: Interesting! [22:19] jashkenas: why'd you give up on it? [22:20] aaronblohowiak: jesusabdullah: it is only 100 LOC https://github.com/aaronblohowiak/Propagate-JS/blob/master/propagate.js [22:20] jesusabdullah: ACTION watches [22:20] jesusabdullah: Sometimes I wish I had more time to hack [22:20] aaronblohowiak: jesusabdullah: i am not actively developing it, but will accept pull requests [22:20] aaronblohowiak: i quit my job so i could spend more time hacking on fun stuff [22:20] jesusabdullah: I mean, I guess if I was a true dynamo I'd have plenty of time, but the truth is that I'm actually pretty lazy [22:20] jesusabdullah: I have a thesis I'm supposed to be pounding out :( [22:20] tanepiper: i must admit - i still really haven't found a 'style' i like with nodejs and a way to write servers properly [22:20] jesusabdullah: An awesome thesis, but not a hackerly thesis [22:21] jashkenas: It's too bad the Confreaks guy lost the video, but Jonathan Edwards gave a *great* talk on reactive programming at the emerging languages camp last year. His take was that it would save the web from callback soup. [22:21] aaronblohowiak: jashkenas: have you seen the Rx stuff from ms research? [22:21] tanepiper: i find myself re-writing stuff all the time [22:21] jashkenas: yep. [22:21] aaronblohowiak: tanepiper: DRY it up, then. [22:21] jesusabdullah: i think there's always room for improvement [22:21] backinnam__ has joined the channel [22:22] tanepiper: aaronblohowiak: that's what i'm always trying [22:22] aaronblohowiak: jashkenas: i think you can build reactive systems on top of event systems, but not the inverse.. the automatic wiring on change wasn't flexible enough for my needs. also, good luck debugging that =) [22:22] jashkenas: ah yes, debugging events. [22:22] tanepiper: thing that is bugging me at the moment, writing a "Model class" for my app for interacting with couchdb. I know it's schemaless, but i know what my objects should look like [22:23] aaronblohowiak: jashkenas: well, debugging the automatic reactive style that propagate has (tracking which functions called which other functions to automatically re-evaluate the dep graph) [22:23] aaronblohowiak: is *very* hard [22:23] tanepiper: I'm thinking something along the lines of Django models, with methods i can overide and call superclass [22:23] jashkenas: aaronblohowiak: don't you get into ordering trouble with mutually-calling functions? [22:24] aaronblohowiak: also, there is weirdness when you are trying to remove dependents, you have to notify the dependencies they have registered with. [22:24] aaronblohowiak: jashkenas: mutually-calling? as in recursion? [22:24] jashkenas: sure, even just one level deep. [22:25] jashkenas: a calls b and c, b and c call a. [22:25] MatthewMueller has joined the channel [22:25] aaronblohowiak: jashkenas: yea, don't do that =) [22:26] jashkenas: anyway, Edwards' point was that reactive flow works great as long as it goes in a single direction, and never loops. [22:26] jashkenas: So that was going to be a constraint built in at the language level itself ... in his hypothetical lang. [22:26] aaronblohowiak: jashkenas: looping isnt a problem if you are memoizing within a single dep graph flush [22:26] matyr_ has joined the channel [22:26] mikeal has joined the channel [22:27] skm has joined the channel [22:27] jashkenas: reminded me of principia mathematica's system of types ... each level listening to changes from only the levels above it. [22:27] jashkenas: Probably a lot more fun as a hypothetical then as a real language to have to code in, but we'll see. [22:28] aaronblohowiak: :-) is that something you are working on? [22:28] aaronblohowiak: or is Edwards actually developing it? [22:29] jashkenas: Edwards said he was throwing out his previous language to start on it. [22:29] jashkenas: I'll ask him... [22:31] Z10x6k6h has joined the channel [22:31] echosystm: how is luajit so fast? [22:31] echosystm: has anyoe used it? [22:32] aaronblohowiak: jashkenas: is this the "Alarming Development" jonathan edwards? [22:32] aaronblohowiak: echosystm: there are papers published on that very topic if you google it. i have not used it [22:33] mscdex: jon edwards? :O [22:33] mscdex: :p [22:33] creationix has joined the channel [22:34] jashkenas: aaron: yep -- that's him. [22:34] jashkenas: @jonathoda on Twitter. [22:34] teemow has joined the channel [22:34] aaronblohowiak: sweet! [22:35] creationix: I need a fast 32-bit hash for use in nStore [22:35] creationix: that converts arbitrary strings into 32-bit integers [22:35] creationix: I don't see crc32 in the list of things exposed by node's crypto hash [22:36] sveisvei has joined the channel [22:36] tanepiper: i was going to suggest that, but yea i don't know if there is a module [22:36] creationix: I guess I can implement it in JS for now [22:36] creationix: crc32 is pretty simple [22:36] creationix: but it would be nice if it could be native and built-in [22:36] tanepiper: creationix: well crypto is coming out of core anyway afaik [22:37] creationix: yeah, I heard that, now sure how I feel about it [22:37] tanepiper: but as a userland module, it certainly should support more [22:37] ryah: question: i've got a
- i want to be able to capture pastes into it [22:37] ryanfitz has joined the channel [22:37] ryah: in particular i want right-click to show "paste" [22:37] pdelgallego__ has joined the channel [22:38] ryah: how can i do that? [22:38] creationix: ryah: a div, not a textarea or input? [22:38] ryah: no [22:38] ryah: just a div [22:38] creationix: you'll have to make a custom right-click menu [22:38] ryah: :/ [22:38] creationix: and then put whatever you want in there [22:38] tanepiper: ryah: on click event, then check the mousebutton event id, but possibly some libs provide contextmenu events [22:38] ryah: there's no div.pastable? [22:39] creationix: there is the contenteditable property [22:39] creationix: turns any html into a rich text editor [22:39] tanepiper: creationix: http://www.webtoolkit.info/javascript-crc32.html looks pretty simple to implement [22:39] kiddphunk has joined the channel [22:40] sveimac: contenteditable is the way to go [22:40] aaronblohowiak: ryah: contentEditable'd divs will even through an onPaste event [22:40] ryah: yeah, but i don't want it editable.. [22:40] creationix: well, you can probably set it editable, but disable all edits procedurally [22:41] ryah: oh can you control that? [22:41] creationix: ryah: also, how cross-platform do you need this? [22:41] creationix: if you need to support, for example, ie6, then you're pretty screwed [22:41] ryah: not very [22:41] creationix: I think you get events for all changes on contentEditable [22:41] tanepiper: ryah: http://plugins.jquery.com/plugin-tags/right-click-menu then in the action, just jQuery(div).html(value) [22:41] creationix: and you can simply listen to them all and call preventDefault [22:42] creationix: the ajax.org guys should know a lot [22:42] creationix: they have custom context menus and a div based code editor [22:43] creationix: tanepiper: is that code public domain? [22:44] creationix: it doesn't seem to say [22:44] ryah: does cloud9 use contentEditable? [22:44] tanepiper: creationix: most jQuery plugins are MIT [22:45] creationix: I'll probably need to reimplemnt it some for optimized node and buffer use anyway [22:45] tanepiper: oh that CRC code [22:45] creationix: tanepiper: right [22:46] creationix: ryah: I don't think so, but you can look at the code or ask them [22:46] aaronblohowiak: creationix: in haml-js when is html_escape used? [22:46] heirenton has joined the channel [22:47] creationix: aaronblohowiak: good question, I don't remember [22:47] creationix: I think it was for anything unless you speficied a special flag [22:47] creationix: not sure [22:47] aaronblohowiak: creationix: :-) ok, thanks [22:47] aaronblohowiak: creationix: did things generally stall with accepting reg's ie8 patch [22:47] creationix: ACTION has far too many neglected projects on github [22:48] creationix: aaronblohowiak: I use it in wheat, but haven't touched it since [22:48] aaronblohowiak: creationix: there is a difference between "done" and neglected =) [22:48] creationix: that was almost a year ago now [22:48] aaronblohowiak: k [22:48] kubrow_ has joined the channel [22:48] aaronblohowiak: is andrewschaaf the primary maintainer now? [22:48] creationix: haml-js is somewhere between done and neglected [22:48] MatthewMueller: does anyone know if its possible to add two static file locations when using connect's staticProvider? [22:49] creationix: Most middlewares are designed to have multiple instances [22:49] creationix: that's why I made the call after "require" required [22:49] syntheze has joined the channel [22:49] MatthewMueller: so I could just call something like connect.staticProvider(...) twice? [22:49] MatthewMueller: and it'll run through both functions without interference? [22:51] curtischambers has joined the channel [22:51] aaronblohowiak: creationix: it looks like you are html_escaping attributes, but not the text itself, fyi [22:51] creationix: aaronblohowiak: that sounds like a resonable compromise [22:51] creationix: aaronblohowiak: yeah, I don't know which fork is most active, there is no official maintainer [22:53] GasbaKid has joined the channel [22:55] themiddleman has joined the channel [22:56] aaronblohowiak: creationix: ah, okay. would you accept a patch that would a) add an option to html_escape variable data by default and b) add syntax to say "don't escape this" [22:57] creationix: sure [22:57] creationix: though it will probably break lots of sites [22:57] creationix: and I don't have time to deal with the complaints [22:57] creationix: (assuming there are lots of sites using it, probably not valid) [22:57] aaronblohowiak: creationix: both would only be enabled by the optional flag [22:58] creationix: oh, I see, a flag to opt into the new behavior [22:58] creationix: yeah, that's fine [22:58] aaronblohowiak: :-) [22:58] aaronblohowiak: sweet. [23:05] peol has joined the channel [23:05] peol has joined the channel [23:05] pedrobelo has joined the channel [23:07] rburke has joined the channel [23:07] rburke has joined the channel [23:11] amerine has joined the channel [23:12] themiddleman_ has joined the channel [23:12] dthompson has joined the channel [23:12] Metapony has joined the channel [23:12] curtischambers has joined the channel [23:13] jashkenas: aaronblohowiak: here's your answer: https://twitter.com/#!/jonathoda/status/31489057129242624 [23:13] aaronblohowiak: jashkenas: =/ i hope his family is ok [23:14] aaronblohowiak: jashkenas: have you seen ChuCK ? [23:15] jashkenas: nope. link? [23:16] jesusabdullah: chuck, the music language? [23:16] tylergillies has joined the channel [23:16] jesusabdullah: http://chuck.cs.princeton.edu/ [23:17] aaronblohowiak: http://chuck.cs.princeton.edu/ dataflow music lang [23:17] aaronblohowiak: jesusabdullah++ [23:17] v8bot: aaronblohowiak has given a beer to jesusabdullah. jesusabdullah now has 4 beers. [23:17] jashkenas: ah, yes then. [23:17] jesusabdullah: Cool idea, maybe not the most robust implementation [23:17] tylergillies: is there a way to use a pubkey.pem in crypto library instead a x509 cert for verifying a signature? [23:17] jesusabdullah: Never got around to making sweet jams unfortunately [23:17] liar has joined the channel [23:18] jashkenas: neat: http://chuck.cs.princeton.edu/doc/language/time.html [23:18] jesusabdullah: I should put it on my laptop [23:23] kiddphunk has joined the channel [23:24] niklasfi has left the channel [23:25] HAITI has joined the channel [23:26] tfe_ has joined the channel [23:28] warz has joined the channel [23:28] akeem has joined the channel [23:29] tilgovi has joined the channel [23:29] creationix: ACTION is trying to come up with a effecient btree format for nStore [23:30] shiawuen has joined the channel [23:32] creationix: what, no "hex" encoding for buffer constructors? [23:33] langworthy has joined the channel [23:33] softdrink has joined the channel [23:35] saschagehlich_ has joined the channel [23:36] jchris has joined the channel [23:39] pkrumins: creationix: nope [23:45] amerine has joined the channel [23:45] zomgbie has joined the channel [23:48] mraleph has joined the channel [23:48] lukegalea has joined the channel [23:49] CarterA has joined the channel [23:49] CarterA: So if I'm going to try and fix the problems that childProcess.spawn() has with improperly spaced paths, should I fix it at the C++ level? Or should I fix it at the JS level? [23:51] mscdex: improperly spaced? [23:51] akeem has left the channel [23:52] CarterA: Eh...I meant to say "improperly escaped". [23:52] CarterA: Paths with spaces in them. [23:54] liar has joined the channel [23:57] xonecas has joined the channel [23:57] mscdex: spaces shouldn't matter?