[00:00] bmizerany: is there a pure js sax parser out there that is simple and doesn't look like 1993? [00:01] inimino: .oO(?) [00:03] bmizerany has joined the channel [00:08] charlesjolley has joined the channel [00:08] dgathright has joined the channel [00:12] delijah has joined the channel [00:13] delijah has left the channel [00:20] creationix has joined the channel [00:25] smtlaissezfaire has joined the channel [00:25] devinus has joined the channel [00:25] jedschmidt_ has joined the channel [00:27] smtlaissezfaire has left the channel [00:31] devinus has joined the channel [00:32] Tim_Smart has joined the channel [00:34] keyvan has joined the channel [17:40] nodelog has joined the channel [17:40] felixge: welcome back nodelog [17:40] felixge: !src [17:40] felixge: good [17:40] felixge: :) [17:44] smtlaissezfaire has joined the channel [17:47] cij has joined the channel [17:51] MattJ has joined the channel [17:51] linuxsable has joined the channel [17:52] polyrhythmic has joined the channel [17:59] smtlaissezfaire: aronblohowiak: I wrote one in ruby a little while back for a parsing project I was eventually going to do, which never got done. I think it's pretty crappy, buggy code, but seems to work for very basic cases. I can point you to the code if you'd like. [18:00] aaronblohowiak: smtlaissezfaire: i use pluginaday's state_machine when in ruby [18:00] aaronblohowiak: but thanks for the offer [18:01] smtlaissezfaire: aaronblohowiak: What are you using the state machine for? [18:01] aaronblohowiak: smtlaissezfaire: in node or in ruby? in node, for the multiplayer game demo i am working on. in ruby, to manage the state transitions of electronic prescriptions [18:02] aaronblohowiak: "multiplayer game demo" == tic tac toe ;) [18:02] Guest1160: ...what. [18:02] Guest1160: "multiplayer game demo" == MMO. [18:02] Guest1160: That is all. [18:02] smtlaissezfaire: aaronblohowiak: Yeah, most of the libraries out there in ruby weren't what I wanted - I really wanted parsing of regexes (simple regexes - not javascript/ruby regexes) - and that naturally lead to state machines. [18:02] aaronblohowiak: Guest1160: sorry, it is MMO tic tac toe [18:03] Guest1160: It works. [18:03] smtlaissezfaire: aaronblohowiak: Cool. Looking forward to it. [18:03] aaronblohowiak: smtlaissezfaire: for that sort of thing, i'd probably use regel [18:04] aaronblohowiak: i wish i had 4 clones, or could be as prolific as tim caswell [18:05] aaronblohowiak: on a more general NodeJS question.. i have my TicTacToe constructor, but i want the resulting object to throw events and such. do you usually have a member property that is the emitter, or do you you attach your logic to the emitter ? [18:06] tmpvar has joined the channel [18:09] JimBastard has joined the channel [18:09] matthew_y has joined the channel [18:09] JimBastard: dammit why am i not on the front page of github yet! sooo close! http://github.com/Marak/Faker.js [18:09] JimBastard: >.< [18:11] mape: isaacs: yt? [18:11] confounds has joined the channel [18:11] isaacs: yeah [18:12] mape: isaacs: http://npm.mape.me/ Started looking at a frontend for npm, not sure if it fits the bill (it still needs a lot of work, especially the listing) [18:13] isaacs: hey, neat, you got our pictures on there. [18:13] mape: Yeah, most people seem to use gravatar [18:13] mape: And ego stroking is always good [18:13] isaacs: mape: nice. hey, "npm" should be lower case [18:14] mikeal: this looks real nice [18:14] aaronblohowiak: mape: that ui makes chrome spike cpu to 80% =( [18:14] mikeal: is this a couchapp? [18:14] tylerstalder has joined the channel [18:14] isaacs: mikeal: no, i think it's just jsonp-ing the data [18:15] mikeal: haha, awesome [18:15] isaacs: but i'll integrate it once it's done [18:15] mikeal: that means it's probably like an hour of work to make it a couchapp :) [18:15] mape: Yeah, jsonp [18:15] mape: But right now it does a jsonp for each and every project [18:15] aaronblohowiak: :) oh! [18:15] mape: since version data and avatars and whatnot are not in the index listing [18:15] mikeal: this could easily be a list function [18:15] mikeal: without much modification [18:16] mikeal: that's the nice thing about javascript being everywhere :) [18:16] mikeal: yeah, Firefox has a hard time scrolling [18:16] mikeal: man, Firefox scrolling just sucks [18:16] mikeal: it's always choppy [18:16] mape: aaronblohowiak: Yeah.. Well, it uses a lot of css gradients/text-shadows/box-shadows [18:16] mape: I just tried to mock something up [18:16] mikeal: it looks great [18:16] isaacs: mape: yikes. ok, i could put more data into the listAll data [18:16] aaronblohowiak: mape: looks like a great start! [18:16] mape: If isaacs hates it no use spending time in photoshop making stuff work ;) [18:17] isaacs: hehe [18:17] isaacs: i don't hate it. [18:17] mikeal: i blame Firefox [18:17] isaacs: it's way prettier than what i've got [18:17] mape: It won't scale though [18:17] softdrink has joined the channel [18:17] mikeal: i didn't realize we allowed "." in project names [18:17] mikeal: mjsunit.runner [18:17] mape: If you get a ton of projects added [18:17] isaacs: mikeal: yeah that's why my bayjax demo failed. [18:17] isaacs: mikeal: so i caved [18:18] mikeal: i see [18:18] mikeal: that doesn't violate the Packages/1.1 spec does it? [18:18] isaacs: mikeal: meh. [18:18] mikeal: hehe [18:18] isaacs: ACTION is all ABOUT violating specs! [18:19] mape: About the tags.. Are those used? [18:19] mape: And will they be usable when everyone starts adding different ones? websockets, web-sockets, web sockets, webbsockets etc etc [18:20] Yuffster has joined the channel [18:20] isaacs: well, i kinda haven't given that much thought [18:20] isaacs: but i sort of lean towards the delicious/flickr model. [18:20] isaacs: ie, use whatever tags you want. some will become more popular. let the community decide. [18:20] mape: seems like the node/wiki/modules categories would be easier to use [18:20] mikeal: we should toLower() all of them [18:20] mape: Guess you could do a separate "get most used tags" call [18:21] mikeal: we might already do that in the index actually [18:21] mikeal: getting a list of all tags with the number of projects that use them is a trivial map/reduce call [18:21] isaacs: yeah [18:21] markwubben has joined the channel [18:21] isaacs: wait, are you guys talking about the dist-tags (stable, latest, etc) or the keywords array? [18:21] mikeal: keywords array [18:21] mape: No the keyword/tags [18:22] isaacs: gotcha [18:22] isaacs: ok [18:22] mape: It is called tags in the json object [18:22] isaacs: yeah, i don't do anything with those right now. they're only lcase because that's what everyone does. [18:22] cij_ has joined the channel [18:22] mape: Seems request by mikeal is the one project that uses them [18:23] mikeal: it's part of the spec tho [18:23] mikeal: so we should expect them to be used [18:23] mape: You don't force anything? [18:23] isaacs: but we could do a case-insensitive map-reduce, yeah [18:23] mape: Like the licence [18:24] mikeal: we could totally just emit(key.toLowerCase.replace('-',''), 1) [18:25] tlrobinson_ has joined the channel [18:26] JimBastard: JS is dangerously close to beating Ruby on github [18:26] JimBastard: http://github.com/languages [18:26] JimBastard: we all gotta do our part guys [18:27] ajpiano has joined the channel [18:28] mikeal: is that primary language per project, or lines of code? [18:28] mikeal: if it's lines of code i'm really surprised Java is so low [18:28] tlrobinson has joined the channel [18:30] ashb: mikeal: java iden'st so big in opensource [18:31] mikeal: yeah but in LOC, 3 java projects are going to equal 100 javascript projects :) [18:32] isaacs: mape: all i force is name and version [18:32] mape: narwal doesn't have version? [18:33] isaacs: mape: sure it does: http://registry.npmjs.org/narwhal/0.0.1 [18:33] mape: oh it doesn't have the dist-tags [18:34] isaacs: right [18:34] mape: That is why I didn't catch the version [18:34] isaacs: nothing's tagged as stable. [18:34] isaacs: the "latest" thing is pretty recent. [18:34] mape: Ah k [18:34] isaacs: npm's a moving target [18:34] isaacs: sorry :) [18:34] mape: Hehe no worrys [18:34] mape: Moving == getting better == good [18:34] mape: hopefully [18:34] isaacs: part of 0.2.0 will be me going through and making sure that the registry is all the way it should be. [18:35] mikeal: once we're in the beta phase for couch.io hosting [18:35] mikeal: i'll setup a mirror [18:35] isaacs: mikeal: nice [18:35] mikeal: just get continuous replication going [18:35] isaacs: yeah [18:36] mikeal: that's the only reason i want the web site to be a couchapp eventually, so that the mirrors also get the website :) [18:36] isaacs: heh [18:36] isaacs: yeah, of course. [18:36] isaacs: also "javascript end to end" ftw [18:36] mikeal: definitely [18:37] isaacs: mape: it'd be good to have a big link front and center with a link to the "issues" page, and maybe a message to copy the *entire* failure log into any bug report. [18:37] mape: k [18:37] isaacs: mape: people sometimes send me messages like "it fails with ENOENT when i try to publish, howcome?" [18:38] isaacs: mape: which, bless their heart, they're trying to do the right thing, but that's not even a little bit helpful [18:38] mape: hehe [18:38] mape: so name/mail/description on how to reproduce/failure log and send? [18:39] isaacs: i prefer to use the issues page on github [18:39] mape: k [18:39] isaacs: it's become my main npm todo list [18:39] isaacs: and just "Please copy the entire log into the bug report." [18:40] isaacs: or something like that [18:40] mape: mm [18:44] steadicat has joined the channel [18:47] JimBastard: i cant figure out why my repo isnt trending harder [18:48] JimBastard: i wonder if they changed repopular [18:48] mitkok has joined the channel [18:48] JimBastard: its saying only two tweets [18:48] JimBastard: http://repopular.com/languages/javascript [18:48] JimBastard: but there are way more on twitter [18:49] javajunky has joined the channel [18:51] ineation has joined the channel [18:53] mikeal: they probably changed it to exclude any of your repos :) [18:54] MattJ: Poor JimBastard... [18:54] mikeal: they just can't trust him anymore :) [18:59] polotek has joined the channel [19:02] JimBastard: i would be surprised after hitting front-page twice the other week....but its all legit traffic [19:03] dgathright has joined the channel [19:03] BryanWB has joined the channel [19:04] JimBastard: yeah 40 watchers in 12 hours + 10 tweets should do it [19:04] JimBastard: strange [19:05] JimBastard: its only picking up two tweets [19:08] cloudhead has joined the channel [19:08] mikeal has joined the channel [19:11] towski has joined the channel [19:11] markwubben_ has joined the channel [19:12] dgathright has joined the channel [19:15] dgathright_ has joined the channel [19:16] ithinkihaveacat has joined the channel [19:18] JimBastard has joined the channel [19:19] JimBastard: like how is this repo trending, http://github.com/yayugu/SomenTairiku [19:19] JimBastard: i dont understand [19:20] polotek: JimBastard: I think it depends on how close together the tweets are. [19:20] JimBastard: so like [19:20] JimBastard: repopular scrapes twitter for tweets [19:21] JimBastard: but i dont get what its looking for [19:21] JimBastard: it seems to not be picking up tweets containing the string "Faker.js"\ [19:21] JimBastard: im assuming its updating multiple times a day [19:23] JimBastard: yeah, i think the trending logic repopular uses is a bit fucked. [19:23] JimBastard: if anyone knows who runs that id like to chat with those guys [19:24] polotek: JimBastard: ©2010 | created by @chadfowler and @marchdoe [19:24] JimBastard: does that mean i have to contact them via twitter [19:24] JimBastard: i refuse [19:24] JimBastard: :p [19:25] polotek: and yet you want your repo to be picked up on twitter? [19:25] polotek: ACTION is confused [19:26] JimBastard: hee hee [19:26] JimBastard: i wont even tweet my own projects [19:26] JimBastard: twitter is for the lames [19:30] MattJ: I'm tempted to ask if you got banned from there too [19:30] MattJ: but I won't :) [19:30] JimBastard: twitter? [19:30] JimBastard: they wish [19:31] JimBastard: i remember one of my first days on twitter when it first came out [19:31] JimBastard: and im like, hrmm i wonder what they are doing for XSS [19:31] JimBastard: then i looked into it [19:31] JimBastard: and stopped using twitter forever [19:31] JimBastard: i hear they fixed all that shit [19:31] JimBastard: but lolz [19:31] JimBastard: im my own twitter feed broadcasting to whoever will listen [19:31] JimBastard: if you miss the stream too bad [19:32] OSInet has joined the channel [19:32] _ry: isaacs: what do you think about having a defined naming scheme for modules? [19:32] isaacs: _ry: you mean for node's internal things, or for third-party modules? [19:33] _ry: thrid party [19:33] OSInet has left the channel [19:33] polotek: _ry: yes please [19:33] isaacs: i have recommendations in npm's docs, but basically that's just "don't put node_ or -js on your package name" [19:33] isaacs: since that's redundand [19:33] _ry: e.g. if im binding ncurses, i would call it node-ncurses [19:33] _ry: but if included in a package manager it's just ncurses [19:33] _ry: or something [19:34] isaacs: yes [19:34] _ry: just to be explicit [19:34] felixge has joined the channel [19:34] felixge has joined the channel [19:34] JimBastard: its good to have the node- for public facing stuff [19:34] isaacs: my scheme is this: if it's just javascript, and runs anywhere, then call it foo-js. if it's node-specific, then call it node-foo. the name in the package manager should just be "foo", and specify the "node-" bit in the engine hash. [19:34] JimBastard: so people know its a node lib [19:34] _ry: yeah for github it makes sense [19:34] JimBastard: yeah [19:34] _ry: i don't want people thinking i'm writing postgres [19:34] JimBastard: isaacs: same here [19:34] isaacs: right [19:34] gwoo: what about jquery style? [19:35] JimBastard: node.foo.js ? [19:35] gwoo: yeah [19:35] JimBastard: not sure [19:35] isaacs: otoht, "npm install postgres" *does* kinda look like you're installing postgres, which you're not [19:35] isaacs: JimBastard: as long as the package manager module doesn't have that cruft on it, whatever. [19:35] isaacs: if it's a node-module, then i think the js-ness is kinda implied. [19:36] JimBastard: isaacs: do you know if there is any work being done to port node to the browser? [19:36] sechrist has joined the channel [19:36] JimBastard: i think i have a pretty good solution [19:36] JimBastard: and a bit of code [19:36] isaacs: JimBastard: no idea [19:36] cij_ has joined the channel [19:36] isaacs: _ry: so, were you thinking about making the registry or npm enforce something like that? [19:37] polotek: why not postgres-driver so you know what you're getting? [19:37] JimBastard: ive got a snippet take will take a commonJS require and bundle it into one js file. im also thinking about doing a script that takes commonjs import / export and fakes it with jQuery.require() [19:37] _ry: isaacs: i think if we just came up with a little paragraph, we could stick it in api.markdown [19:37] isaacs: like, if your package nas "node" in it, then throw an error? [19:37] felixge: gwoo: jquery style wouldn't work well with projects that have more than 1 file [19:37] polotek: the node-ness and js-ness are implied [19:37] _ry: isaacs: and i could make an announcement [19:37] drostie has joined the channel [19:37] isaacs: _ry: look at the "package.json file" section of http://github.com/isaacs/npm/blob/master/doc/developers.md [19:37] gwoo: felixge: true [19:37] _ry: it should probably allow the sort of naming that already occurs - like node-* and node_* (that is, it shouldn't disallow people to do node-*) [19:38] sechrist: Hey guys. I'm new to having to work on scalable web apps and I have a few questions about the fundamental concept of having workers spawned from the display layer. I have node.js set up running workers, but I'm unsure how my php-frontend should wait for a job to return. I'm sending them via HTTP to node.js running locally, and that works great, but should the php block on a long poll that returns once the job is done, or what? [19:38] isaacs: _ry: righg [19:39] felixge: isaacs: will npm also compile addon modules? [19:39] _ry: so can npm autotranslate things nmed "node_postres" to "postgres" ? [19:39] isaacs: felixge: if you give it a build script [19:39] _ry: or is that too much? [19:39] felixge: ( i might have asked that before ) [19:39] felixge: isaacs: nice [19:39] orlandu63 has joined the channel [19:40] isaacs: _ry: if we could come up with very specific rules, i wouldn't be opposed to that. but it's a bit magical. [19:40] Aria has joined the channel [19:40] polotek: felixge: it does build libxmljs on install [19:40] isaacs: _ry: i'd prefer to just use the name in the package.json name field. [19:40] _ry: Aria: how working is your html5 parser? [19:40] sechrist: I guess my question was tldr :\ [19:40] _ry: sechrist: hm.. [19:40] _ry: sechrist: that's probably not the right way to structure it [19:41] isaacs: felixge: { "scripts" : { "preinstall" : "node-waf configure", "install" : "make" } } etc [19:41] _ry: sechrist: yes, php would need to wait [19:41] sechrist: well I'm open to this, i'm new to the worker thing [19:41] _ry: sechrist: what are you trying to do? [19:41] mattly has joined the channel [19:41] Aria: _ry: Getting damn close, it already parses 430 out of 460 test cases. (and bombs on none, just misparses some seriously tricky cases) [19:42] mape: Aria: Nice! :) [19:42] Aria: Yeah! [19:42] Aria: It needs a commonjsified env-js, since I couldn't make it work with tmpvar's jsdom yet. [19:42] felixge: Aria: what ya working on? [19:42] sechrist: well the web layer itself really doesn't need to spawn jobs I suppose. Most job-spawning stuff is going straight to node through nginx proxy. I guess my question was is using http for a message protocol between php and node.js a bad thing? [19:43] Aria: felixge: I ported the html5lib HTML5 parser to javascript. Fast, error-handling HTML parsing that yields a valid DOM [19:43] _ry: Aria: what's wrong with jsdom? [19:43] Aria: I couldn't figure out how to instantiate things peacemeal enough to set up for the parser properly. [19:43] Aria: It's just a lot more raw than env-js is. [19:43] felixge: Aria: this sounds very cool :) [19:44] Aria: Yeah, it works nicely. [19:44] felixge: I can't await until I can do full TDD for my client-side code with node [19:44] maushu has joined the channel [19:44] Aria: My trial project is to port mousehole from Ruby to Node, at least conceptually. [19:45] Aria: (Basically, a proxy that can run greasemonkey style scripts) [19:45] sechrist: _ry: however, I'm looking into using node.js as my actual database layer. php would call node.js, and node.js would check redis, and if it misses hit mongo. It'd expose one implementation and handle all of that crap for me without race conditions with a lot of php workers [19:46] Aria: Yeah, no kidding, felixge. I want to be able to do testing and verification server-side too. [19:46] MattJ: Aria: that would be very nice :) [19:46] felixge: Aria: :) [19:46] sechrist: getting/setting kv stores requires locks and shit as far as I know when you're running separate php threads, and locks are generally frowned upon right? [19:46] felixge: Aria: thanks for working on this! [19:46] Aria: Sure thing! [19:46] Aria: It was so ripe.. [19:46] _ry: sechrist: hmm [19:47] _ry: sechrist: that doesn't sound ideal [19:48] JimBastard: lol _ry [19:48] sechrist: _ry: well I haven't seen many walkthroughs on how to design apps other than flow charts [19:48] JimBastard: i love how political and nice you are [19:49] JimBastard: but yeah sechrist , what you described sounds very cthulhu like [19:49] _ry: JimBastard: :) [19:49] sechrist: well it kind of needs to be, we have nearly 1000 concurrent requests at any given time during the US day time [19:49] JimBastard: so? [19:50] JimBastard: 1k concurrent is nothing for node [19:50] sechrist: node, but there's databases involved and stuff [19:50] sechrist: node alone won't solve all of my woes [19:50] JimBastard: so why would it fix your DB? [19:50] _ry: sechrist: ideally node will server its own part of the website and php its own [19:50] _ry: s/server/serve/ [19:51] sechrist: well it does for things like image uploading, that stuff proxies through nginx straight to node [19:51] JimBastard: sechrist: maybe if you could describe what you are trying to do overall (without implying too many actual technologies) we could help you devise a more sane strategy [19:51] JimBastard: gists are good [19:51] mouarf has left the channel [19:52] felixge: sechrist: if you proxy file uploads through nginx you have a problem [19:52] felixge: sechrist: because nginx will buffer the entire upload before sending it along [19:53] _ry: well, unless you use hte nginx upload module [19:53] _ry: :) [19:54] _ry: oh you mean on disk? [19:54] _ry: yeah [19:54] _ry: felixge: do you actually start processing the upload stream before it arrives? [19:54] _ry: before it's complete, that is? [19:54] JimBastard: ACTION reminds everyone to NOT cross the stream [19:54] felixge: _ry: at transloadit? [19:54] sechrist: I don't need real-time analysis of an upload :), but yeah node.js is receiving it chunked through nginx [19:55] _ry: felixge: yeah [19:55] felixge: sechrist: node is not receiving it chunked through nginx [19:55] isaacs: yeah, nginx not streaming to stuff it proxy_passes to is no good. [19:55] felixge: sechrist: unless you taugh nginx to speak http 1.1 to an upstream proxy [19:55] felixge: * upstream server [19:55] isaacs: luckily no one's tried to upload a tarball to npm that is bigger than my server's memory [19:55] felixge: _ry: yes, we start working as soon as the first file comes in [19:55] felixge: _ry: (we support multi-file uploads) [19:56] _ry: felixge: like transcoding it? [19:56] felixge: _ry: we also check authentication once the part that has that info comes in [19:56] cij_ has joined the channel [19:56] felixge: _ry: so we can reject a request even before the file data arrives [19:56] felixge: _ry: yes, we start spawning jobs [19:56] _ry: wow [19:56] tylerstalder has joined the channel [19:56] _ry: respect [19:56] felixge: _ry: I guess this is mostly nice for multi-image uploads [19:56] felixge: that come in 1 by 1 [19:56] sechrist: well I'll have to investigate that more then. I don't have enough image uploads coming in for it to have spawned some concern yet. [19:57] felixge: (we also do images, not just video) [19:57] sechrist: nginx is proxying so that the same domain and port can be used [19:57] maushu: I feel like uploading a tarball bigger than a server's memory. [19:57] _ry: felixge: ah oaky [19:57] sechrist: I haven't started using haproxy or anything yet [19:57] _ry: still cool [19:57] isaacs: sechrist: node is receiving it chunked? [19:57] sechrist: yes as far as I can tell -- there is upload progress [19:58] felixge: _ry: when I say 1 by 1, I mean it's still 1 request - just multiple parts arriving after each other [19:58] sechrist: and node is serving out the progress -- not nginx [19:58] isaacs: sechrist: i thot nginx only spoke http1.0 to its backends [19:58] felixge: sechrist: if node is serving the progress than nginx seems to not be buffering [19:58] felixge: sechrist: which would be very cool, but I thought wasn't possible without additional addons of some sort [20:01] sechrist: but yeah, my next quesiton really isn't node.js specific, but say my php frontend requests data from redis, it misses, gets it from mongo, storing it in redis or updating something seems to be somewhat of a mystery to me. I've seen slideshows describing locks on k/v datastores but they all seem rather slow if you're using a lot of locks. My idea was to use node.js to order the queries and store them in redis without any locks needed [20:01] sechrist: sorry to ask so many questions -- these concepts are something that i've just been picking up within the last few months [20:01] sechrist: everything before that was php-> mysql and back :) [20:02] felixge: sechrist: you don't need any locks for reading? [20:02] sechrist: not with redis as far as I know [20:02] felixge: sechrist: and for writing you don't need locks unless you are writing to the same key at the same time (which should rarely happen?_ [20:02] polotek: sechrist: I though redis was single threaded anyway? [20:02] sechrist: the problem is updating is race conditions between multiple php workers [20:02] JimBastard: yeah, its a bad design [20:02] felixge: sechrist: what kind of race conditions? [20:02] felixge: sechrist: can you describe an actual problem you see? [20:03] JimBastard: imo, bad php code [20:03] felixge: sechrist: I feel like you're afraid of some conceptual issues that don't event apply to your situatino [20:03] felixge: * situation [20:03] polotek: or at least it has atomic writes to the same key [20:03] sechrist: yes, I've had two requests come in, they both hit mongo, one stores to redis, and the other does too [20:03] JimBastard: lol [20:04] sechrist: i'm not sure how to solve that at all though heh [20:04] tmpvar has joined the channel [20:04] sechrist: without some kind of transactional php->db interface or some shit [20:06] sechrist: then there's updating mongo, I currently use redis as a locking system for certain types of queries, seems crappy [20:07] felixge: sechrist: if both requests store to the same key, how do you resolve the conflict? [20:07] felixge: sechrist: do you just want the "latest" to win? Because that would happen automatically if you just store to mongo / redis [20:08] JimBastard: sechrist: can you describe the problem at a higher level? [20:08] sechrist: mongo shouldn't be queried twice if there's already the same query happening [20:08] sechrist: the redis double store isn't really the issue [20:08] JimBastard: it seems like someone has given you a knife set and you are determined to cut things [20:09] felixge: JimBastard: :) [20:09] sechrist: yes that too [20:09] inimino: JimBastard: it seems someone gave you a set of metaphors and you are determined to use them all [20:09] JimBastard: inimino: something witty [20:09] JimBastard: ACTION says what do you want, its Sunday. [20:09] inimino: JimBastard: snappy retort [20:09] sechrist: JimBastard: yes i'm a kid in a toy store with all of this new-fangled jazzy stuff [20:09] JimBastard: Come back Thursday, its two for one drink specials [20:09] JimBastard: ask your waitress [20:10] JimBastard: sechrist: without knowing your specific bidness logic, what you are talking about sounds like pure insanity [20:10] JimBastard: im sure you have your reasons, but personally im very confused [20:10] sechrist: :) [20:11] inimino: sechrist: can you get rid of the PHP workers entirely? [20:11] aaronblohowiak has joined the channel [20:11] JimBastard: why cant your php requests just save and read to the DB without race conditions? [20:12] sechrist: inimino: well the whole display layer is php, unfortunately there's too much momentum to really ditch that within any reasonable time frame [20:12] derbumi has joined the channel [20:12] inimino: ok [20:13] sechrist: JimBastard, what? say two requests come in exactly at the same time that are cache misses, only one query should hit mongo in my opinion. I know mongo is memory mapped so if the same query happens twice the second one might be cached [20:13] sechrist: I need to do performance benchmarks to make sure i'm not blabbering nonsense [20:13] JimBastard: what does [20:14] JimBastard: "that are cache misses" mean [20:14] inimino: well, I thought safe transactional semantics was the whole point of having a database server in the first place [20:14] sechrist: uh, that aren't stored in redis [20:14] Aria: Well, if he's using redis as a cache... [20:14] sechrist: like the metadata for a video for example [20:14] JimBastard: i see [20:14] Aria: ... so both miss, both fall through to Mongo, both return data, then both store in redis, in the trivial case. [20:15] JimBastard: that makes a bit more sense [20:15] sechrist: that's what's happening yes [20:15] inimino: hm [20:15] sechrist: now, both hitting mongo wouldn't really be a problem if the second query is cached from the first [20:15] sechrist: I guess that's a question for #mongodb [20:15] Aria: Duplicating the effort of storing into redis, at least, and depending on how fast Mongo is, possibly slower than locking and waiting for the first to store into redis, then fetching from there. [20:15] sechrist: since there's no shared state between php workers what I want might be impossible [20:16] sechrist: other than APC [20:16] dgathright has joined the channel [20:16] JimBastard: sechrist: so mongo has no way to know that value is already in redis? [20:16] Aria: One /could/ write a caching layer that sees that there's a pending request to Mongo, and waits there, ready to return the data to BOTH clients when it comes back and storing in Redis. [20:16] JimBastard: is it caching it twice? [20:16] sechrist: well it's upserting, so it's really updating if it's already there [20:17] JimBastard: so it is working now? you just dont want the extra actions on the DB? [20:17] sechrist: ^ [20:17] JimBastard: yeah [20:17] felixge: _ry: would you accept a patch for new Buffer(str, encoding) ? [20:17] JimBastard: so i mean you are gonna have to hold the requests [20:17] JimBastard: you could set a flag when it hits mongo [20:17] felixge: _ry: also new Buffer(byteArray) [20:17] sechrist: which is what I was going to use node.js for to fire them off [20:17] JimBastard: and then queue up the requests to wait [20:17] sechrist: now we understand each other [20:17] JimBastard: couldnt you do this all in PHP? [20:18] sechrist: multiple webservers don't have access to the same apc [20:18] sechrist: hehe [20:18] JimBastard: ahhhh [20:18] JimBastard: so you want a fast intermediary layer [20:18] inimino: node is great, but it just seems ...awkward... to put a single bottleneck between multiple frontend and multiple backend processes [20:18] JimBastard: hence #node.js [20:18] polotek: sechrist: how are you deciding which requests are "the same" [20:18] sechrist: I'm not for now, but in reality identical queries [20:18] polotek: if you have a good hash on the requests you could use a write through cache [20:19] inimino: it seems like redis or mongodb is where this should be resolved [20:19] polotek: and that would be a good place to stop if there's a pending request [20:19] sechrist: well redis to mongo interaction isn't transactional [20:19] sechrist: that's one issue here [20:20] JimBastard: i think you should check out #redis and #mongo perhaps [20:20] JimBastard: they might have more insight on this [20:20] tmpvar: _ry, you around? [20:20] JimBastard: im sure you arent the first person to encounter this issue sechrist [20:20] JimBastard: woooooooot [20:20] JimBastard: GITHUB FRONTPAGE AGAIN [20:20] JimBastard: http://github.com/explore [20:20] smtlaissezfaire has joined the channel [20:20] JimBastard: <3 node [20:20] tmpvar: fu [20:20] inimino: heh [20:20] tmpvar: fffff uuuuu [20:20] tmpvar: :P [20:20] JimBastard: dom't worry tmpvar one day you'll write a good project [20:21] tmpvar: someday *pout* [20:21] JimBastard: i can help teach you how to write the killer readme, its really the hardest part [20:21] JimBastard: that and the hacker news post [20:21] JimBastard: the coding part is easy [20:21] JimBastard: ahahahaha [20:21] tmpvar: ass. [20:22] polotek: speaking of github frontpage, anybody messed around with flockdb? [20:22] JimBastard: :-D [20:24] sechrist: wow faker.js looks like lorem ipsum for datasets [20:24] sechrist: this is neat [20:24] felixge: JimBastard: yeah faker.js is a nice project [20:24] felixge: JimBastard: even so I don't want to know what you are using it for ;) [20:25] JimBastard: felixge: i needed a way to test JSLINQ [20:25] JimBastard: how can i benchmark doing queries against large datasets without teh data [20:25] JimBastard: :-D [20:25] smtlaissezfaire: I'm thinking I might use faker for a project I spun up last night, based on quickcheck [20:25] smtlaissezfaire: http://github.com/smtlaissezfaire/scriptcheck [20:25] JimBastard: and i made JSLINQ caus i need it for broodmother [20:25] JimBastard: and i need broodmother to deploy hook.io apps [20:25] JimBastard: im in a deep circle of opensource fail [20:25] smtlaissezfaire: haha [20:26] polotek: JimBastard: you and me both. [20:26] JimBastard: also Faker could be cool as a jQuery plugin for developers [20:26] JimBastard: autopopulate sign up forms and what not [20:26] polotek: I got involved with libxmljs cause I wanted a decent DOM implementation [20:26] sechrist: _ry's list of modules on github is really useful [20:26] JimBastard: there are a bunch of plugins and greasemonkies that do this [20:26] sechrist: glad I saw it on HN [20:26] JimBastard: yeah sechrist [20:26] JimBastard: node is amazing [20:26] inimino: smtlaissezfaire: sounds nice [20:26] sechrist: gd binding and s3? [20:27] sechrist: hell yeah [20:27] JimBastard: and _ry and is extremely dedicated [20:27] polotek: no shit. dude commits more than Elizabether Taylor [20:27] sechrist: but for display code, people use node.js for that? [20:27] polotek: only spelled correctly [20:27] smtlaissezfaire: inimino: total prototype right now - I've never done any Haskell, so I have no idea how effective quickcheck is. The haskell version is a commercial product :( [20:27] sechrist: create a dynamic dom object, then spit out the markup? [20:27] sechrist: I'm not sure how the hell that works [20:28] sechrist: I've only used node for backend [20:28] polotek: sechrist: there are lots of templating modules too [20:29] polotek: people seem to like Mu (mustache port) [20:29] polotek: ACTION is not one of them [20:29] sechrist: our php code is a shitload of heredocs so if js has heredocs -- a port might be feasible [20:29] smtlaissezfaire: tmpvar: We were talking at the last nycjs meetup about using the same code on the backend and the frontend. [20:29] tmpvar: sweet [20:29] inimino: isaacs: that gist is getting ...amazing [20:30] sechrist: same code for frontend and backend? that's blasphemy! [20:30] inimino: smtlaissezfaire: quickcheck is awesome [20:30] inimino: but the Haskell version is free software... you can even play with it with lambdabot [20:31] smtlaissezfaire: tmpvar: I wasn't really clear how your DOM library was addressing that issue. [20:31] smtlaissezfaire: inimino: If I knew what a Monad was, I would be! [20:31] inimino: hehe, everyone should learn Haskell :) [20:32] tmpvar: smtlaissezfaire, what seems to be the problem? [20:32] inimino: and lisp, and C [20:32] dgathright_ has joined the channel [20:32] sechrist: inimino: you mean erlang [20:32] inimino: and maybe Prolog or APL ... the rest is just noise [20:33] inimino: sechrist: heretic! [20:33] smtlaissezfaire: tmpvar: Did you post up those slides from your presentation? [20:33] tmpvar: nah, but i can [20:33] BryanWB has left the channel [20:33] smtlaissezfaire: Yeah, please do. [20:33] sechrist: I see erlang applied everywhere -- only place i've seen haskell used is the dynamic C++ compile bot in #cpp, geordi. [20:34] sechrist: then again my exposure level is not very high [20:34] smtlaissezfaire: haskell looks really great for certain things - like parser combinators. I think the "everything is by default lazy" is really, really, cool part of Haskell. [20:34] inimino: sechrist: Haskell is used in some big financial institutions doing trading... and such [20:34] tmpvar: http://docs.google.com/present/view?id=dccbnh93_1dgs9vwhp [20:35] sechrist: so is cobol [20:35] sechrist: lulz [20:35] inimino: I think haskell.org has a list of commercial users [20:35] aho has joined the channel [20:35] inimino: sechrist: yes, but COBOL is *still* being used, while Haskell is *starting* to be used :) [20:35] inimino: ...or so Haskellers hope [20:36] sechrist: so haskell will be the new language that won't die in 15 years? [20:36] sechrist: ugh [20:36] inimino: no, Haskell will be the new lisp [20:36] smtlaissezfaire: Haskell is one of those languages, like LISP, that will never be a big industry language like java, but will have a lot influence over future languages. In 20 years we'll see most of Haskell's features in other languages. [20:36] sechrist: erlang [20:37] mape: tmpvar: Are you looking at using the html5 parser for jsdom? [20:37] polotek: _ry: you still around? [20:39] inimino: sechrist: Haskell has a more pure theoretical foundation and seems to have a lot more research surrounding it, so it's probably going to have greater influence than Erlang [20:39] polotek: question about C++ bindings and memory [20:39] inimino: not being "owned" by a single company helps [20:39] polotek: I'm using what seems to be the usual scheme for attaching C level objects to js objects [20:39] sechrist: I don't know enough to refute that, but I see erlang's adoption rate much higher for now [20:40] sechrist: academia must really like haskell [20:40] polotek: persistent handles [20:40] polotek: I'm tracking v8 memory and the memory allocated by the binding [20:40] polotek: The C memory is getting garbage collected and so are the persistent handles [20:40] smtlaissezfaire: tmpvar: With beebol/PURE, do you end up providing a ton of classes to your html templates simply for getting the data in the template? Is that an issue you've faced with that templating library? [20:40] polotek: but the node/v8 memory doesn't go down [20:40] sechrist: that's another thing I had questions about, is v8's GC awesome enough to not worry about? [20:41] sechrist: php's is laughable [20:41] polotek: does that make sense to anyone? [20:41] polotek: sechrist: the v8 GC is awesome... when you can get it to run, lol [20:41] JimBastard: smtlaissezfaire: which guy are you from the NYC.js meetup? [20:42] JimBastard: were you the tall big guy? im kinda bad with names [20:42] polotek: as long as you're in js land, you're fine [20:42] smtlaissezfaire: I went to my first one the other day. [20:42] polotek: when you get into C/C++ bindings, things can get hairy [20:42] JimBastard: yaya im sure we met [20:42] smtlaissezfaire: No - I was the shorter one in the front with the green jacket. [20:42] JimBastard: ACTION no clue lol [20:42] sechrist: Are most of you in NY? [20:43] sechrist: I figured there'd be a lot of valley people in here [20:43] JimBastard: there is a decent NYC contingent, same with SF [20:43] smtlaissezfaire: JimBastard: Are you Marak on github? [20:43] JimBastard: aye [20:43] JimBastard: you've caught me! [20:43] smtlaissezfaire: Ok - I rode the elevator up with you, I guess. [20:43] JimBastard: cool cool [20:43] sechrist: github -- social coding [20:44] JimBastard: github owns [20:44] smtlaissezfaire: Yeah, who thought it would take off the way it did. [20:44] polotek: re: github, I was in a few comment threads the last few days [20:44] polotek: it seems the biggest barrier to github adoption is git itself [20:44] polotek: some people really find it distasteful [20:45] polotek: hopefully the new svn support will mitigate that somewhat [20:45] inimino: there are still people who like svn? [20:45] sechrist: k, say I wanted to take in some html and spit out a dom object like a browser has, i'd use node-htmlparser? [20:46] sechrist: inimino: I do because it's built into coda and it's seamless as far as I'm concerned [20:46] polotek: sechrist: or libxmljs [20:46] polotek: svn would be fine for most people if it had git's awesome merge algo [20:47] JimBastard: git is infintely better then svn [20:47] JimBastard: centralized repo = fail [20:47] JimBastard: like, i cant state that enough [20:47] sechrist: oh i'm not here to preach religion -- I don't need distributed repo and i'm the primary commiter [20:47] polotek: JimBastard: nobody here arguing that. [20:47] inimino: sechrist: is that the HTML5 implementation? [20:47] smtlaissezfaire: JimBastard: It's the branching that's great. Ever created an svn branch? [20:47] JimBastard: sechrist: you ever work offline? [20:47] sechrist: I have no idea -- i'm browsing ry's list contemplating how to scrape html in node [20:47] JimBastard: smtlaissezfaire: never, ive only used SVN in very strict corporate settings [20:48] smtlaissezfaire: Ever done svn log on a large remote repos? That ******sucks******* [20:48] sechrist: JimBastard: not really, no [20:48] JimBastard: sechrist: so yeah, imagine doing commits to your SVN with no internet [20:48] steadicat has joined the channel [20:48] JimBastard: im always coding in crazy spots with no internet, electricty, or running water [20:48] sechrist: that's silly [20:48] JimBastard: like the subway [20:48] mape: sechrist: from a live site or controled private html? [20:48] polotek: JimBastard: I would argue there's not many devs who really find themselves working offline very often [20:48] inimino: sechrist: it's Aria's project, not sure how complete it is, but probably it's what you want to start with [20:48] sechrist: shitty live site [20:49] sechrist: broken html that doesn't adhere to it's doctype [20:49] sechrist: needs to be resilient like nekohtml :\ [20:49] inimino: sechrist: an implementation of the HTML5 parser algorithm is going to beat anything else [20:49] Aria: API is not final, but the code works. I have 33 failing test cases, mostly tricky misparses on seriously broken HTML [20:49] mape: ah :/ Well there is jsdom that works with htmlparser and jQuery for fiddling but htmlparser breaks on most sites with bad html [20:49] JimBastard: true polotek , i guess i take it for granted that i code 80% of my waking hours [20:49] sechrist: Aria: neato, sounds like I can use it [20:49] Aria: I'm still intending to consult with tmpvar to get jsdom working with it, but for now, there's a fork of env-js that works and gives enough DOM [20:49] sechrist: 33 test cases failing sounds like nothing [20:49] mape: Aria: Have you tried parsing the 100 largest websites or something to that effect and seen how well it handles? [20:49] smtlaissezfaire: JimBastard, tmpvar: I was pretty surprised how few knew about node at the meeting. [20:49] inimino: Aria: how much work was it? [20:50] Aria: (env-js turns out to be seriously easy to commonjsify) [20:50] Aria: mape: I have not, but I have 460 test cases that work it out hard. [20:50] JimBastard: yeah smtlaissezfaire usually there is a better node turnout. i think > 50% of the room does ndoe [20:50] JimBastard: they just not being vocal about it [20:50] smtlaissezfaire: Yeah, might have been that one .net developer (ha) [20:50] Aria: inimino: Four weeks, ten hours a week or so. [20:50] mape: hmm got myself new bed sheets today, probly more happy about those then when I got my 27" iMac. <3 soft [20:50] sechrist: well it's interesting, other than networking IO, couldn't most of this be accomplished with v8 itself? [20:51] tmpvar: Aria, yeah.. i asked Chris Thatcher if he'd commonjsify env.js before i started jsdom, he said no. [20:51] Aria: Heh. Silly man. [20:51] mape: Aria: nice [20:51] Aria: That's what the fork button's for! [20:51] tmpvar: sure [20:51] polotek: tmpvar: why did he say no? [20:51] polotek: Aria: word [20:51] tmpvar: unsure, its on env's mailing list [20:52] Aria: (I even made the code work with both load() and require() ... it was seriously 8 minutes work) [20:52] inimino: Aria: ah, ok, not bad [20:52] Aria: inimino: Yeah, it wasn't at all. I had a good library to port from. [20:52] inimino: Aria: how fast is it compared to, say, the Mozilla one? [20:52] tmpvar: http://groups.google.com/group/envjs/browse_thread/thread/2d5acefd5cb62e4d/4e59600cd6250644?lnk=gst&q=tmpvar#4e59600cd6250644 [20:53] inimino: Aria: what'd you port from? [20:53] Aria: ruby html5lib [20:53] inimino: ok [20:53] Aria: I haven't compared. I can do ten parses per second, though, including node startup time. [20:53] tmpvar: 10? [20:53] Aria: I bet 9/10 of that is overhead loading the code. [20:53] mape: Aria: wouldn't it be easier to use it as an api instead and keep it running? [20:54] Aria: Sure, in any use, it'd already be parsed. [20:54] Aria: My test suite doesn't, though. It certainly runs fast enough. (The test suite runs in a second or two.) [20:54] Aria: (I haven't paid attention, it's short enough) [20:54] mape: Is there a big difference parsing crappy code vs best case scenario? [20:55] inimino: mape: unlikely to be any measurable difference, I would bet [20:55] mape: k [20:55] Aria: It certainly invokes some more-expensive code, yes, to parse crappy HTML [20:55] jwm: I like the idea of a fast perfect html5 code parser in js [20:55] jwm: for using on my own content that I know is html5 proper [20:55] Aria: the reconstructActiveFormattingElements and the adoption agency algorithm are both harsher than straightforward insertion into the DOM [20:55] mape: So it takes best case scenario and the starts to try harder and harder if needed? [20:55] inimino: me too, I'm glad someone did it :) [20:56] jwm: be nice to use to make a screenshot of a webpage hehe [20:56] malte has joined the channel [20:56] Aria: Yeah. It has a LOT of feedback between the parser/tree node inserter and the tokenizer. [20:56] inimino: Aria: true, that adoption agency stuff is hairy :) [20:56] Aria: jwm: Now THAT would take a rendering engine, CSS engine, a lot more than an HTML parser. [20:56] malte: Hey All [20:56] jwm: Aria: yeah :) [20:56] jwm: true [20:56] jwm: but it'd be nice! hehe [20:56] mape: jwm: There are already nice webkit -> pdf thingys out there [20:56] inimino: someone could embed Webkit into node [20:56] inimino: I'd like to see that :) [20:56] Aria: Indeed. [20:57] jwm: mape: in javascript? [20:57] jwm: :P [20:57] tmpvar: webkit into node [20:57] tmpvar: lol [20:57] jwm: the point was a javascript only solution [20:57] mape: jwm: Well, you could call the command from node ;) [20:57] jwm: heh [20:57] malte: Anybody know a way to detect a browser stop button when streaming to the client? close and error events are not fired on the response stream [20:57] mape: Perhaps emulate windows in javascript and just open the page in firefox and printscreen [20:57] mape: That way you can try IE as well [20:57] mape: Super handy [20:58] markwubben_ has joined the channel [20:59] polotek: anybody know how to do the equivalent of "instanceof" in the v8 api? [21:00] cloudhead: polotek: 'instanceof' [21:00] mape: heh [21:00] cloudhead: oh nm, you mean in c++ [21:00] polotek: cloudhead: ha, yea [21:00] cloudhead: : > [21:01] Aria has joined the channel [21:01] lolninja has joined the channel [21:01] mape: isaacs: Was wondering, is there any need to start looking at how to scale the listing page into something larger? Like http://packages.debian.org/stable/ [21:01] polotek: who are the people besides _ry that are knowledgeable about bindings? [21:01] mape: Layout wise that is [21:02] isaacs: righ [21:02] mape: Then the one I did might be to fluffy [21:02] isaacs: mape: so, my problem with that is, we have nowhere near that nmber of projects. [21:02] isaacs: mape: maybe it could have two things: 1. pagination, so you never have more than 50 items on the page, 2. show a list by category [21:03] isaacs: mape: then, eventually, we can swap out the index page from the "show all things in all categories" page, to the "show the list of categories" page. [21:03] mape: isaacs: Just make it so that _ry adds a validation in the require(), if it isn't in the repo you can't require it, should speed up the submissions ;) [21:03] isaacs: hahah [21:03] isaacs: yikes, that would be awfu [21:03] isaacs: l [21:03] mape: isaacs: Hmm yeah, but where are the categories defined? [21:03] isaacs: mape: so, yeah... bout that... [21:04] isaacs: i guess the tags in the various repositories? or should it list out based on the dist-tags? [21:04] Ned_: isaacs: ! [21:04] Ned_: :p [21:04] isaacs: yo, Ned_ [21:04] isaacs: you had some issues yesterday, but i was at a birthday party [21:04] Ned_: oh, happy birthday for yesterday :-) [21:05] Ned_: do you feel old now? [21:05] mape: isaacs: Well the tags could be anyhing? "awsome" "parser" "html".. Awsome doesn't make for a very informative category. [21:05] tmpvar: polotek, what is your question? [21:05] isaacs: mape: true that [21:05] ewdafa_ has joined the channel [21:05] isaacs: Ned_: it wasn't my birthday [21:05] mape: Feels like categories need to be handled with a little more care [21:05] isaacs: Ned_: a friend's [21:05] isaacs: mape: true that [21:05] Ned_: isaacs: anyway, I was just trying to publish 0.1.1 of my irc package, but although there's no errors on publish, it doesn't appear to be working [21:05] Ned_: isaacs: oh, heh, I should read more carefully ... well, hope you had fun anyway ;-) [21:06] polotek: tmpvar: my immediate question is how to check the the type of an object in v8 C++ [21:06] isaacs: Ned_: can you send me the log of what happens when you try it? [21:06] Ned_: http://paste.dollyfish.net.nz/26443e.txt [21:06] polotek: my larger issue is tracking down memory that is not being cleaned up [21:06] Ned_: isaacs: ^^ [21:06] isaacs: got it [21:06] mape: But if you start adding to many categories.. Hard to tell which are needed, guess you could allow people to create their own categories and then have somekinda moderation that can change/merge them. As well as move projects around. [21:06] Ned_: :-) [21:06] mape: But there won't be any administration in the web ui? Just through npm right? [21:07] isaacs: mape: it wouldn't be too hard to add admin stuff through the web ui [21:07] polotek: tmpvar: I gotta run though. I'll probably submit to the mailing list later [21:07] isaacs: mape: but yeah, i'm thinking npm is the way to do it [21:07] mrjjwright has joined the channel [21:07] Ned_: mape: it's a fine line to find what works between CPAN and PEAR I reckon ;-) [21:07] mape: And if the category is added through **.json people would have to sync that if they want to update the project but you changed/moved/removed a category [21:07] Aria: Let anyone submit any category, and have a curated set of categories ;-) [21:07] isaacs: Ned_: that's super weird... [21:07] tsyd2 has joined the channel [21:07] Ned_: they're the two extremes [21:07] Aria: Then choose your curators and use their sets. [21:07] polotek: ACTION is being sidetracked by a woman [21:07] Ned_: isaacs: can you see anything serverside ? [21:07] tsyd2: what's the best way to debug nodejs? [21:07] polotek: later guys [21:08] tmpvar: polotek, like so? http://github.com/ry/node/blob/master/src/node_buffer.cc#L126 [21:08] polotek has left the channel [21:08] Ned_: isaacs: could it be related to the fact I have 0.1.1 installed via link on my local system ? [21:08] isaacs: Ned_: that shouldn't matter [21:08] isaacs: i have npm linked almost all the time. i think i'm actually using 0.1.7 or something, but it's a symlink [21:08] Ned_: all the same, I'll remove the link I try it [21:08] isaacs: sure [21:09] Ned_: shit, I need to go to work :p [21:09] isaacs: Ned_: you've got 0.1.10 of npm, right? [21:09] Ned_: yes [21:09] isaacs: oh, ok, have fun [21:09] Ned_: for some reason the binary isn't called that :-9 [21:09] Ned_: err, isn't called npm [21:09] Ned_: it's npm-0.1.10 [21:09] isaacs: right, because activate fails [21:09] Ned_: as you can see in the paste [21:09] Ned_: right [21:09] isaacs: sudo npm-0.1.10 activate npm 0.1.10 [21:09] cloudhead: tsyd2: http://github.com/smtlaissezfaire/ndb [21:09] Ned_: heh ... sudo ? [21:09] Ned_: :-( [21:09] Ned_: :p [21:09] tsyd2: thanks cloudhead [21:09] Ned_: my bindir is ~/bin [21:09] Ned_: well, /home/martyn/bin [21:10] Ned_: shouldn't need sudo ? [21:10] mape: isaacs: But in there future there will be blocks with "new packages" "updated packages" and whatnot on the frontpage? And the actual listing with be by category? [21:10] isaacs: ACTION shrug [21:10] Ned_: isaacs: http://paste.dollyfish.net.nz/644ea0.txt [21:10] smtlaissezfaire: cloudhead: btw, I added the backtrace feature last night on the dev branch [21:10] isaacs: Ned_: it needs sudo to install the docs, which as of now, crashes the activate [21:10] lolninja has joined the channel [21:10] mape: Hehe, bringing more pain then gain? [21:10] Ned_: that's definitely got errors [21:10] cloudhead: smtlaissezfaire: nice [21:10] pavelz has joined the channel [21:10] Ned_: isaacs: oh right, sudo it is then ... [21:10] Ned_: :p [21:10] smtlaissezfaire: Someone was asking for it - I can't remember who it was. [21:11] Ned_: isaacs: I run with sudo and get the same error :-( [21:11] isaacs: Ned_: what does "man -w" do on your system? [21:11] Ned_: anyway, I'm going to head to work, I'll probably still be on IRC there though ;-) [21:11] isaacs: ok [21:11] isaacs: have fun, don't get fired [21:11] isaacs: :) [21:11] Ned_: $ man -w [21:11] Ned_: What manual page do you want? [21:11] bajeczka has joined the channel [21:11] cloudhead: hey is there an elegant & simple way to run a node script from another node script, and get output from it? [21:12] isaacs: oh, lovely, man -w isn't universal. [21:12] isaacs: derp [21:12] Ned_: ACTION finds bugs :p [21:12] mape: cloudhead: through http? :) [21:12] cloudhead: mape: I need something much simpler [21:12] cloudhead: it's just a local script runner [21:12] mape: Can't you use children and catch the output? [21:13] cloudhead: mape: that's what I'm thinking, but won't it output to stdout regardless? [21:14] mape: The child? [21:14] cloudhead: yea [21:14] cloudhead: if I do sys.puts() from the child [21:14] cloudhead: it's going to show up in the console [21:14] mape: That is what you want? So that you can capture it? [21:14] pavelz has joined the channel [21:14] cloudhead: no I want the parent process to see it [21:14] cloudhead: not the user [21:14] smtlaissezfaire: cloudhead: child_process ? [21:14] mape: Don't think the stdout will show for the children [21:15] cloudhead: really? [21:15] cloudhead: gonna try again [21:15] mape: Wouldn't make much sence [21:15] cloudhead: I thought it did, but I have only a vague memory of it [21:15] cloudhead: smtlaissezfaire: yea, but I don't want the output to show up in the console [21:15] smtlaissezfaire: http://nodejs.org/api.html#child-processes-80 [21:16] demolithion has joined the channel [21:16] mape: isaacs: But yeah, what should I do to be of most help to you. Or are there other things that have higher priority so I should just wait? [21:17] isaacs: mape: i'd say, take a look at the stuff showing on the registry now in json, and just kinda get creative with making that look nice. also, there should be prominent links to the npm code and the issues page. [21:17] towski has joined the channel [21:17] isaacs: mape: any write-stuff, like web apis to PUT into the registry, don't worry about that for now. [21:18] mape: ok, but keep in the same 1page list all idea and when needed we change layout down the road? [21:18] isaacs: mape: and when i say look nice, i mean, what you've done already is way above and beyond. I would really be happy with even just something like cpan.org so this rounded shaded green stuff is way awesome. [21:18] isaacs: ACTION is happy with json, actually... [21:18] mape: Hehe, if you have jsonview it is neat [21:18] isaacs: mape: sure, that's fine. [21:18] isaacs: yeah [21:19] isaacs: still, if it's pretty more people will see it and go, "hey, i wanna have my stuff in there!" [21:19] smtlaissezfaire has joined the channel [21:20] mape: Might end up with editorial "featured" stuff, trending, twitter feeds and facebook "like" buttons ;) [21:21] mrjjwright has joined the channel [21:21] isaacs: that'd be neat [21:22] isaacs: i don't really wanna build too many social network backend stuffs, though [21:22] isaacs: it'd be nice if there was a link to the github page if it has one, or to its "report a bug" page or whatever. [21:23] isaacs: like, provide candy to entice devs to add the optional package.json stuff into their package [21:23] mape: Using the github api to get forks/watchers might be a useful feature [21:23] mape: Can give an idea of the popularity of a project if you have to choose between more then one [21:24] jedschmidt has joined the channel [21:24] JimBastard: yeah +1 for mape [21:24] JimBastard: thats a great idea [21:24] JimBastard: watchers + forks influencing priority [21:24] JimBastard: it should have some metric [21:24] JimBastard: that you can easily see [21:24] JimBastard: thts a really good idea [21:25] JimBastard: i dont know if any other package mangers do that [21:25] mape: And give badges and pats on the head if the project trended? :P [21:25] JimBastard: i dunno if that info is enumerable from github [21:25] JimBastard: but ill take a pat on the head [21:25] mape: heh [21:26] JimBastard: YES [21:26] JimBastard: I LOVE THIS SHIT [21:26] JimBastard: http://github.com/mabufo [21:26] JimBastard: ive been getting a bunch of these all month [21:26] tmpvar: haha, yes [21:26] JimBastard: new github users [21:26] tmpvar: same [21:26] tmpvar: http://github.com/delijah [21:27] JimBastard: yeah usually they follow node / _ry as well [21:27] tmpvar: he added an issue on jsdom, and I was curious if he actually existed lol [21:27] JimBastard: tmpvar: ive been creating fake users to make annonying issues on your projects [21:27] Ned_: isaacs: so no thoughts on why I can't upload a new version ? [21:27] isaacs: mape: yeah, that'd be interesting [21:28] isaacs: Ned_: i've tracked it down, but dont' have a fix yet. [21:28] Ned_: isaacs: okay, sweet :-) [21:28] isaacs: Ned_: it seems that you're on linux. [21:28] Ned_: yes [21:28] Ned_: Ubuntu [21:28] isaacs: Ned_: in particular, a linux where "man -w" requires that you give it a command [21:28] Ned_: isaacs: can you email me when you fix ? [21:28] isaacs: Ned_: sure [21:28] Ned_: cheers :-) [21:28] mape: Know nefD has used the github api so probly some code that could be used there if he wouldn't mind/it is useful [21:28] Ned_: then I'll upload the next version ;-) [21:28] isaacs: sweet [21:29] isaacs: Ned_: also, i'll put a ton of logging around all the stuff that seems to be breaking for you, so at least, if i *don't* fix it, it'll be clearer why it's dying [21:29] mape: isaacs: is there anything in the package that binds the project to a github url? Or is it just that the tarball is linked to github? [21:30] mape: Hmm guess I should read the specs.. [21:30] isaacs: mape: actually, the tarball won't be github any more. it's an attachment now. but you could look at the repository.url [21:31] confounds has joined the channel [21:31] Ned_: isaacs: cheers :-) [21:31] mape: Not a lot of people use it though? [21:31] isaacs: mape: not at the moment. but i think that's largely because there's no benefit to it [21:31] mape: k [21:33] mape: Have you thought about doing a best case scenario package.js for devs to just copypaste/fix? Might get more people to fill out all the info [21:33] mape: Oh and the license file, is that absolute http url or relative file path? Seen both [21:34] maushu has joined the channel [21:34] maushu: Redis doesn't seem very safe for stuff like accounts. [21:35] ithinkihaveacat: isaacs: i just installed npm, and it seemed to work okay, although now when i run "npm" i get a bunch of error messages with the npm-help manpage in the middle [21:35] dgathright_ has joined the channel [21:35] JimBastard: all hail king neptune and his water breathers [21:35] mjijackson has joined the channel [21:35] isaacs: ithinkihaveacat: yeah, that's cuz you're not giving it a command. that's kind of an ugly way to handle that situation, i agree. [21:35] isaacs: ithinkihaveacat: try "man npm" [21:35] maushu: JimBastard, I prefer sailor neptune myself. [21:36] JimBastard: maushu: http://www.youtube.com/watch?v=C4UtbrbsrjY [21:36] ithinkihaveacat: isaacs: oh, right [21:36] ithinkihaveacat: isaacs: yes, "man npm" is okay [21:36] isaacs: ithinkihaveacat: it'd be better if it said that when you don't give it a command. that's an easy fix. it'll be in 0.1.11 [21:38] mrjjwright has joined the channel [21:40] mape: Hmm is npm know to fail in make install (running as root, debian 4) http://gist.github.com/403192 [21:41] ithinkihaveacat: isaacs: sweet, no problem. also, "npm install websocket-server" seems to install 1.0.4, even though it looks like 1.0.52 is available--is that correct? [21:41] isaacs: ithinkihaveacat: 1.0.4 is tagged as stable [21:41] isaacs: ithinkihaveacat: npm install websocket-server@latest [21:41] ithinkihaveacat: isaacs: ah i see, true [21:42] isaacs: ithinkihaveacat: npm install websocket-server@1.0.52 [21:42] ithinkihaveacat: isaacs: thanks, got it [21:42] isaacs: not sure if ws got in after i started doing the "latest" autotag, so that might not work yet [21:42] isaacs: but the specific version definitely should [21:46] mape: isaacs: http://gist.github.com/403197 [21:47] tsyd2: is it good practice to create my own events and event emitters, or are events intended for use only by the nodejs core modules? [21:47] isaacs: mape: why are you trying to node a dir? [21:47] mape: eh.. >_< [21:47] isaacs: tsyd2: lots of folks use the EventEmitter class for their own stuff. it's fine. [21:48] JimBastard: tsyd2: eventemitter is badass [21:49] JimBastard: i guess it would be considered the defactor IoC container for node? is that wrong to say? [21:49] mape: isaacs: Rather trying to use npm but can't separate npm from node... This is what I meant http://gist.github.com/403198 [21:49] isaacs: mape: yeah, that's weird. [21:49] isaacs: the commit i *just* pushed will fix that [21:50] mape: Hehe nice [21:50] mape: did you see the make install I pasted? [21:50] N` has joined the channel [21:50] isaacs: no, i don't think so [21:50] mape: http://gist.github.com/403192 <-- is outputed after running make install as root [21:50] mape: (at the bottom) [21:52] mape: so just doing git clone url && cd npm && make && make install [21:52] ithinkihaveacat: isaacs: what does "npm publish" actually do? "npm publish ." uploads something to your server? can i "unpublish" afterwards? [21:52] isaacs: ithinkihaveacat: unpublishing is not currently supported. but if you ask nice, i'll happily delete anything you own [21:53] isaacs: mape: that's Ned_'s bug also [21:53] isaacs: working on it now [21:53] mape: k great [21:54] mcarter has joined the channel [21:54] dgathright has joined the channel [21:55] isaacs: i can't seem to figure out how to get a list of all the folders that man will search [21:56] isaacs: ahhh, it's manpath on linux [21:56] Aria: yeah [21:56] isaacs: and darwin supports that, too. lovely [21:56] Aria: And there's a MANPATH environment variable [21:57] isaacs: Aria: not always [21:57] Aria: Yeah, not always at all. It'll be empty if its' default. [21:57] isaacs: man is so god damned magical. [21:57] isaacs: srsly. [21:57] Aria: ACTION laughs. [21:57] maushu: Manpath sounds like a pok�mon. [21:57] Aria: Ya? [21:58] dgathright_ has joined the channel [22:01] tmpvar: ACTION loves old school windows patchers that include awesome midi [22:01] mape: razor1911 ones? [22:01] tmpvar: heh, yes [22:01] mape: dubmood is still going strong [22:02] tmpvar: ive got a digital insanity one up now, the guy sends out greetz to the people not in the matrix [22:02] tmpvar: heh [22:04] saikat` has joined the channel [22:06] mape: isaacs: works fine with make install now :) [22:06] isaacs: sweet [22:06] mape: and npm scripts throws no error [22:06] isaacs: nice [22:07] isaacs: it should just complain at you a little [22:07] isaacs: "unknown command" [22:07] mape: hmm nope? [22:07] mape: http://gist.github.com/403205 [22:08] mape: but yeah [22:08] mape: no errors [22:09] felixge has joined the channel [22:10] _ry: felixge: yes [22:10] _ry: tmpvar: pong [22:10] felixge: _ry: cool, I'll work on that later tonight :) [22:10] felixge: _ry: yes to both the str argument as well as the byte array? [22:10] isaacs: mape: that's expected. if you do "npm blergedelebloop" it'll say "unknown command" [22:10] mape: k [22:10] _ry: felixge: by byte array you mean [123, 100, 98] ? [22:11] _ry: array of integers? [22:11] felixge: _ry: yes [22:11] _ry: yeah, that's fine [22:11] felixge: _ry: sweet! That will be really useful : ) [22:11] _ry: for what though? [22:11] felixge: _ry: mostly testing [22:12] felixge: _ry: compare a buffer to what it's supposed to be [22:12] ithinkihaveacat: isaacs: you got any ideas on how to indicate what the package.json is for? comments aren't json... [22:12] _ry: felixge: ok [22:12] felixge: _ry: going to a dinner party now, back in an hour or two [22:12] _ry: felixge: i think these can be done in js [22:12] tmpvar: _ry, i was looking at node core again.. i see you killed off some deps [22:12] isaacs: ithinkihaveacat: how do you mean? [22:12] ithinkihaveacat: isaacs: i did add a readme key that pointed to http://github.com/isaacs/npm/blob/master/doc/developers.md#readme [22:12] isaacs: ithinkihaveacat: you mean, like, how to indicate that package.json is for npm and other package managers? i think that's kinda implied by the filename, no? [22:12] tmpvar: _ry, looks like we are not _too_ far off of a possible windows port, are we still using pthreads_vfork or whatever that is? [22:13] isaacs: ithinkihaveacat: that's cool with me [22:14] isaacs: ok, the pool is heated and the sun is out, so i'm gonna have to go for a bit. <3 california :) [22:14] isaacs: have fun:) [22:14] dgathright has joined the channel [22:14] ithinkihaveacat: isaacs: yes, i mean someone might be looking at my repo, see this package.json file, and guess that it might be to do with some package manager, but it's difficult to know which one [22:14] isaacs: ithinkihaveacat: we all use the same one [22:14] isaacs: ithinkihaveacat: you can use the overlay or vnd key to give different info to different ones [22:14] isaacs has left the channel [22:14] JimBastard_ has joined the channel [22:15] JimBastard_: voodootikigod The master of node.js disaster @maraksquires releases faker.js, http://bit.ly/clQ8fE always knew he was full of BS :) [22:15] JimBastard_: <3 [22:15] JimBastard_: lol [22:17] _ry: tmpvar: windows port - yes i started looking at it recently [22:17] _ry: it should be very doable [22:17] _ry: now that coupler is gone [22:17] _ry: we're not using pthreads_atfork [22:17] _ry: s/pthreads/pthread/ [22:17] _ry: in fact, it should be possible to compile using windows threads instead of pthreads [22:18] _ry: if i understand the situation correctly [22:18] _ry: my main hurdle is undersatnding how exactly to use windows [22:18] _ry: i booted up a VM [22:18] _ry: and i have no idea how to do anything [22:19] mape: _ry: try rebooting [22:19] mape: that usually helps [22:19] _ry: i got sshd running under cygwin [22:19] _ry: and i could ssh in [22:19] derRichard: _ry: you can also use pthreads on windows. [22:19] derRichard: there is a wrapper library [22:19] _ry: derRichard: sure but i'd rather not if possible [22:19] _ry: we've got this: http://github.com/ry/node/blob/a63ce5cd729c1aef63774f21b983330b089963ba/deps/libeio/xthread.h [22:20] _ry: i think the best stratagy is to target mingw [22:20] _ry: since v8 compiles there [22:20] _ry: i could do a cygwin port of v8 [22:20] _ry: but i think that'd just be a backwards step [22:20] Aria: Yeah, totally. [22:20] derRichard: yes, please target mingw [22:21] mape: is the need for node on win really that great? [22:21] mape: That the time spend couldn't be of more value on other stuff? [22:21] _ry: node on windows needs to be done [22:21] scudco has joined the channel [22:21] Aria: Yeah. . . You do lose a lot of people if you don't. [22:21] mape: just to say it works or people actually using it? [22:21] _ry: it's unacceptable for people to install a vm just to use node [22:21] Aria: Though you also gain a huge clamor of people who want a node-specific everything-manager, since the OS has no concept of 'packages' [22:21] _ry: we're very close to running there [22:22] _ry: there is nothing extremely unix-y [22:22] demolithion has joined the channel [22:22] _ry: if i can get an initial port done [22:22] _ry: i think someone else more familar with windows can maintain it [22:22] derRichard: currently i'm writing on an opencl module for node. a win port for node would be nice. some opencl drivers work only well on windows [22:22] Aria: Yeah...just expose spawn on windows and fork on unix, and tell people that if they want to write software that uses that that rns on both, they'll have to abstract yourself. [22:23] _ry: Aria: nah, no fork on unix [22:23] dgathright has joined the channel [22:23] _ry: only spawn (which on unix = vfork and exec) [22:23] Aria: Hm. [22:23] mikeal has joined the channel [22:24] _ry: i don't want ot have platform depenednecy problems [22:24] _ry: let's just solve this immediately [22:24] Aria: Not sure how I feel about that. (though I can't actually remember the last time I did a fork in Ruby that wasn't a glorified spawn+setsid) [22:24] mikeal: any of the NYJS guys around? [22:24] Aria: (I'd just love to be able to write something like launchd in node. . . Stuff like that takes fairly exacting control of the spawn process ) [22:25] _ry: note: http://github.com/ry/node/blob/a63ce5cd729c1aef63774f21b983330b089963ba/deps/libeio/xthread.h#L18 [22:25] _ry: http://github.com/ry/node/blob/a63ce5cd729c1aef63774f21b983330b089963ba/deps/libeio/xthread.h#L51 [22:25] _ry: ^-- these two lines [22:25] _ry: so i think there won't be problems [22:25] tmpvar: _ry, very cool [22:26] tmpvar: im going to setup a dev env on windows now [22:26] tmpvar: with good ol mingw [22:26] _ry: my main question with mingw.. how do you install python? [22:26] _ry: do windows people install a binary version? [22:27] tmpvar: yes [22:27] Aria: Yeah. [22:27] tmpvar: its an installer [22:27] Aria: Binary EVERYTHING in Windows, no matter how crappy compared to up to date from source install [22:27] tmpvar: compiling things on windows is not generally a fun activity [22:27] JimBastard_: if you look at the first day of node irc logs, you'll see me asking about the windows binary [22:27] tmpvar: correcto [22:27] JimBastard_: it was my first question upon joining [22:27] _ry: huh okay [22:27] JimBastard_: this was in november [22:27] _ry: well - in node we static link everything [22:28] _ry: so that should be easy for node.exe [22:28] tmpvar: correct, yeah [22:28] derRichard: node.js.exe ;) [22:28] _ry: we can just distribute the binary exe file [22:28] tmpvar: and distribute an .msi or something [22:28] tmpvar: setup paths, and what not with a pretty installer [22:28] _ry: what's .msi? [22:28] _ry: oh [22:28] derRichard: rpm for windows [22:28] tmpvar: yep, so we just need the f-er to build heh [22:29] derRichard: msi is this "windows installer" crap [22:29] tmpvar: (and work) [22:29] JimBastard_: msi is the way to go [22:29] JimBastard_: give it a nice installer [22:29] JimBastard_: if its not double click with big arrows and instructions windows users are gonna fail [22:29] _ry: i think path.js is going to need some work [22:30] JimBastard_: i would got as far as packing a hello world app, starting it up, and opening the browser to that page [22:30] JimBastard_: "Succesfful http server is succesfful" [22:30] tmpvar: "It works" [22:30] JimBastard_: yeah [22:30] derRichard: _ry: when you need some help with testing node on windows, let me know. in the past i've had a lot of fun with porting my linux programs to windows [22:30] JimBastard_: exactly [22:30] mikeal: JimBastard: aren't you one of the NYJS guys? [22:30] aaronblohowiak: _ry: with your request for more games, i was thinking about tic-tac-toe roulette where strangers can play tic tac toe and chat as a way to show off node. is that the kind of thing you had in mind? [22:30] JimBastard_: yeah i co-run nyc.js [22:30] JimBastard_: with binary42 [22:31] JimBastard_: mikeal [22:31] mikeal: that is my name :) [22:31] JimBastard_: why do you ask? [22:33] tmpvar: ok, downloading all sorts of crap for mingw.. back in a few [22:33] mikeal: i'm going to be in NY in August [22:33] _ry: tmpvar: :) [22:33] _ry: aaronblohowiak: that'd be okay [22:33] _ry: aaronblohowiak: kinda boring though :) [22:34] _ry: i was thinking mmporg games or whatever they're called [22:34] aaronblohowiak: _ry: World Of Nodecraft? [22:34] mape: aaronblohowiak: seen liero? [22:35] aaronblohowiak: mape: googling now [22:35] aaronblohowiak: mape: oh, this looks neat :-) [22:36] mape: would be nice with node multiplayer [22:36] JimBastard_: mikeal: JAVASCRIPT PARTY [22:36] mikeal: hehe [22:36] mikeal: hoping there will be a meetup while i'm there [22:36] mikeal: i should arrive on August 2nd [22:36] JimBastard_: thats my bday [22:36] JimBastard_: meetings are every second thursday [22:36] JimBastard_: ive got a node mmorpg in the works [22:36] mikeal: you should move that one up :) [22:37] mikeal: so that i can attend [22:37] JimBastard_: aaronblohowiak [22:37] JimBastard_: http://github.com/marak/zztmmo [22:37] KungFuHamster: I've got a flash game server in progress... but I'm a noob so all it does is rebroadcast to connected clients so far [22:37] JimBastard_: http://zzt.nodejitsu.com/ [22:37] aaronblohowiak: JimBastard_: you're a rock star [22:38] aaronblohowiak: KungFuHamster: like smartfox? [22:38] JimBastard_: lol thanks? [22:38] JimBastard_: we are looking for contributors if you are interested [22:38] JimBastard_: theres 3 people on the zztmmo project right now [22:38] aaronblohowiak: JimBastard_: that's a bit more involved than i was looking for at the mo [22:38] JimBastard_: sure [22:38] KungFuHamster: aaronblohowiak, naw not a generic server.. just one for a specific game I'm developing [22:39] aaronblohowiak: KungFuHamster: ah, cool. [22:47] zomgbie has joined the channel [22:48] mikeal: do any of these DOM implementations support jQuery yet? [22:49] tmpvar: jsdom [22:50] hassox has joined the channel [22:50] mikeal: haha, google -> stack overflow -> http://www.joindiaspora.com/2010/04/30/a-response-to-mr-villa.html [22:50] mikeal: whoops [22:50] mikeal: http://github.com/tmpvar/jsdom/blob/master/example/jquery/run.js [22:50] mikeal: tmpvar: so you've tested it and it's mostly functional? [22:50] tmpvar: yeah [22:50] mikeal: i'm just doing some scraping [22:50] tmpvar: partially functional [22:51] tmpvar: there is a deficit with things like ".class .child .grandchild" [22:51] mikeal: is jsdom in the npm registry yet? [22:51] tmpvar: because i dont have compareDocumentPosition built [22:51] tmpvar: possibly, i think isaacs forked and added his fork into the repo [22:51] tmpvar: registry rather [22:51] mikeal: ok [22:52] tmpvar: not sure if jquery will work with that fork though [22:52] mikeal: how long ago was the fork? [22:52] tmpvar: may 5 i believe [22:53] tmpvar: somewhere around there [22:54] linuxsable has joined the channel [22:57] confounds has left the channel [22:57] dgathright has joined the channel [23:00] isaacs has joined the channel [23:10] tilgovi has joined the channel [23:18] darkf has joined the channel [23:21] Vekz has joined the channel [23:22] kriszyp_ has joined the channel [23:23] kriszyp__ has joined the channel [23:25] tmpvar: alright! im just about ready to start failing [23:28] isaacs: tmpvar: what are you failing? [23:28] fictorial has joined the channel [23:29] isaacs: oh, failing to add your jsdom to the npm repo? [23:30] saikat` has joined the channel [23:30] tmpvar: setting up a build env on windows [23:31] tmpvar: mingw/msys/etc [23:31] mfeiri_ has joined the channel [23:33] isaacs: ahhh.. [23:33] isaacs: good luck with that [23:33] alexiskander has joined the channel [23:41] deanlandolt_home has joined the channel [23:42] JimBastard: yea its deanlandolt_home ! [23:43] deanlandolt_home: yay [23:44] polotek has joined the channel [23:50] admc has joined the channel [23:50] javarants has left the channel [23:57] JimBastard: does anyone remember the name of the node stress testing tool [23:57] JimBastard: that someone was working on