[00:02] jedschmidt has joined the channel [00:03] derbumi has joined the channel [00:05] JimBastard: fuck you hackernews [00:05] JimBastard: that is all [00:06] mape: Hmm wonder what kinda adoption native clients will have in browsers [00:07] adelcambre has joined the channel [00:09] tmpvar: creationix, i think node-router is broken with the latest node [00:09] tmpvar: just fyi [00:09] creationix: tmpvar: thanks [00:10] creationix: what's it doing? [00:10] tmpvar: http://gist.github.com/399300 [00:10] JimBastard: lol, http://www.reddit.com/r/reddit.com/comments/c3c9a/i_got_banned_from_hacker_news_for_calling_dustin/ [00:10] JimBastard: the only recourse of a sad sad bastard [00:10] JimBastard: aight, time to do real qork [00:10] JimBastard: work [00:10] JimBastard: and stop mah bitching [00:12] mrjjwright has joined the channel [00:12] indiefan has joined the channel [00:12] creationix: tmpvar: seems I committed something that shouldn't have gone in [00:13] creationix: if you revert the commit with the "binding" stuff it should work [00:13] tmpvar: i havent pulled from node-router today [00:13] tmpvar: i did pull a new node down though [00:14] tmpvar: last node was ~1-2 weeks old [00:16] configdotsys has joined the channel [00:17] mscdex: yay! [00:17] mscdex: ok, not quite working, let's try this again :> [00:20] configdotsys has joined the channel [00:20] tmpvar: ? [00:21] dnolen_ has joined the channel [00:21] mscdex: ncurses irc client ;-) [00:21] mape: Hmm that is strange, the thing that takes the most time in my canvas script is reseting the canvas... [00:21] mape: And it gets worse the bigger the canvas is [00:22] dnolen_ has joined the channel [00:23] configdotsys has joined the channel [00:23] mscdex: oops hah [00:24] tmpvar: mape [00:24] tmpvar: dude, peek this [00:24] tmpvar: http://github.com/tmpvar/composer [00:24] configdotsys has joined the channel [00:24] tmpvar: it does partial re-rendering [00:24] tmpvar: which is VERY important as canvas is fill limited [00:24] configdotsys: hello [00:24] mscdex: hrmm [00:25] nym: rauchg: i just got a chance to pull down 0.1.94... no luck :( [00:25] tmpvar: mark objects dirty, clear/render the dirties on the next render loop [00:25] mape: hmm [00:25] tmpvar: 90fps at full screen :) [00:25] tmpvar: demo? [00:25] mape: Isn't that a pail with paths and whatnot? [00:25] nym: i guess i'll try to get chat working tonight instead of using something less stable [00:25] tmpvar: http://tmpvar.com/project/composer/ -- firefox only for the moment [00:26] mape: works in chrome? [00:26] mape: oh that was carena [00:26] tmpvar: sort of, render order is fubar [00:26] rauchg: nym: [00:26] tmpvar: needs a lint i think [00:26] rauchg: did you pull all submodules ? [00:26] rauchg: what browser are you using again ? [00:27] tmpvar: mape, the clear/partial re-render works fine in chrome, its the stacking that doesnt :( [00:27] tmpvar: let me lint really quick see if i can fix [00:27] JimBastard: i really should compile a list of websites ive been banned from [00:27] JimBastard: its getting up there [00:28] mape: tmpvar: But wouldn't it take more time to calculate what pixles have lines (http://mape.me/ircanvas/) rather then just cleaning all? [00:30] configdotsys has joined the channel [00:30] configdotsys: hello world [00:30] configdotsys: yes! [00:30] tmpvar: nice [00:31] gf3 has joined the channel [00:31] configdotsys: a basic ncurses irc client in node.js :-D [00:31] mape: hehe [00:31] configdotsys: with color ;) [00:31] JimBastard: congrats [00:31] tmpvar: mape, hrm. doing per pixel detection.. doubtful its slower [00:31] tmpvar: may be though [00:32] thotypous has joined the channel [00:32] mape: seems like a simple clear would be something common and optimized for [00:32] paul_ has joined the channel [00:32] tmpvar: fill limited :P [00:32] mape: meh :P [00:32] mscdex: now to implement a few more irc protocol commands and stuff [00:32] tmpvar: is ircanvas on github? [00:33] Tim_Smart has joined the channel [00:33] nym: rauchg: i just downloaded the nodejs tarball from the website [00:33] nym: rauchg: no submodules afaik [00:33] nym: rauchg: using chrome (worked in the past) [00:33] mape: nope, it is just that page I'm poking around at, trying to learn some canvas, how come? [00:33] isaacs: JimBastard: HN doesn't ban as often as temporarily mute [00:33] tmpvar: oh, i guess i could look at source hehe [00:33] JimBastard: yeah i think i got muted or miserabled [00:33] JimBastard: ive calmed myself [00:34] nym: rauchg: i'll install the chat tonight and let you know if that works as expected or not [00:34] isaacs: JimBastard: to be fair, that was kind of exactly the sort of comment that HN says you're not allowed to make. [00:34] JimBastard: getting kicked out of clubs is way more fun then getting kicked out of websites, i should start doing that again [00:34] JimBastard: yeah, i mean someone needs to say it [00:34] isaacs: if you say so [00:34] JimBastard: it being, that dustin curtis is a retard [00:34] isaacs: JimBastard: i'm pretty sure he's not actually retarded. [00:35] rauchg: nym: try forcing some other transports, in the client initialization, transports: ['xhr-polling'] for example [00:35] isaacs: JimBastard: so, no, as far as hn is concerned, no one had to say it. [00:35] mape: tmpvar: Easier for you if I "fix" the indentation? [00:35] nym: rauchg: ok [00:35] JimBastard: yeah, i could have been a bit more eloquent [00:35] tmpvar: mape, sure [00:35] JimBastard: but i stand by my point [00:36] admc has joined the channel [00:36] mape: tmpvar: There you go [00:36] isaacs: JimBastard: HN is pretty autistic. you needed to be more accurate, not more elequent. [00:37] nym: as in new io.Socket('ip', {transports: ['xhr-polling'], remem... [00:37] isaacs: JimBastard: you should've said that you think the things he says are dumb things, but he's good at design. [00:37] JimBastard: fair enough [00:37] isaacs: JimBastard: calling him retarded is factually incorrect. [00:37] JimBastard: "kinda a retard" [00:37] tmpvar: hah [00:37] JimBastard: lets not spam the room with this anymore [00:37] JimBastard: ive whined enough i think [00:37] isaacs: JimBastard: -1 for imprecise, as well as inaccurate ;) [00:38] nym: rauchg: holy crap that worked... http://173.203.79.64:8080/ [00:38] isaacs: JimBastard: "TOS Violation: Dustin Curtis either is or is not a retard, not both." [00:38] configdotsys: sfsfsfdfdfdfdfdfdfdfaaaffffffffffffffffffffffffffffffffffffffffffffffffff. [00:38] configdotsys: oops haha [00:38] configdotsys: time to debug :-) [00:39] charlesjolley has joined the channel [00:39] nym: rauchg: well now it's saying "cound't find client with session id '8441171597223729'" [00:41] nym: rauchg: so it kind of works and then craps out with the "couldn't find client" message like 1000x times [00:42] ditesh|cassini has joined the channel [00:42] gf3 has joined the channel [00:42] nym: rauchg: still around? [00:43] isaacs_ has joined the channel [00:47] mjijackson has joined the channel [00:48] broofa has joined the channel [00:48] configdotsys has joined the channel [00:49] pedrobelo has joined the channel [00:49] pedrobelo has joined the channel [00:49] nym_ has joined the channel [00:49] nym_: ack, chrome crashed [00:49] nym_: rauchg: i'm back [00:51] configdotsys has joined the channel [00:54] softdrink has joined the channel [00:56] Tim_Smart: Hmm, anyone here familiar with encoding video while the data is still streaming in? [00:56] creationix: is anyone still on the way to the meetup at ext? [00:56] mape: creationix: a lot of people there? [00:57] creationix: 5 so far [00:57] creationix: plus those of us from ext [00:57] mape: make sure to document it for the ones elsewhere [01:00] nym_: what's the agenda? [01:00] mape: party? [01:00] mape: and general hacking? [01:00] creationix: meet and greet, show off personal stuff [01:02] nym_: fun, wish i was there / had something to share [01:02] nym_: i'm in the city, no chance of me going down there tonight unfortunately [01:03] MattJ: s/tonight unfortunately// and that was making a nice rhyme [01:04] configdotsys has joined the channel [01:06] configdotsys has joined the channel [01:06] nym_: heh [01:06] pkrumins: _ry: check out this patch and pull, or give instructions what to change if you're not satisfied: http://github.com/pkrumins/node/commit/1e5662037cc6ce3858d51c4290412cffb2d10bb5 [01:06] pkrumins: _ry: added buffer.toBase64() [01:06] JimBastard_ has joined the channel [01:07] mape: does it decode as well? [01:07] pkrumins: it only decodes. [01:07] pkrumins: decodes a buffer to base64. [01:07] pkrumins: oh sorry [01:07] pkrumins: encodes. [01:07] tmpvar has joined the channel [01:07] pkrumins: what am i talking here. [01:07] pkrumins: mape: no it does not decode. [01:07] configdotsys has joined the channel [01:07] gwoo has joined the channel [01:08] mape: so it isn't for general base64 encoding/decoding just in relations to the buffer [01:09] pkrumins: right, just in relations to the buffer. [01:09] configdotsys has joined the channel [01:10] hassox has joined the channel [01:10] configdotsys: someone say something [01:10] pkrumins: moo. [01:10] JimBastard_: poop [01:10] mape: wollibolli [01:10] configdotsys: awesome! thanks :-D [01:13] tmpvar: JimBastard_ likes dongs [01:13] configdotsys: a little late :P [01:14] technoweenie has joined the channel [01:14] mape: tmpvar: So when working with canvas doing heavy math is better then being wasteful of the amount of pixels you work on in the canvas? [01:14] robrighter has joined the channel [01:14] mape: especially when the canvas is large? [01:15] tmpvar: yes [01:15] tmpvar: especially then [01:15] mape: k [01:15] MattJ: ... [01:15] pkrumins: hey MattJ [01:15] tmpvar: mape, why is your example seizure enducing? [01:15] MattJ: Hey pkrumins, how goes it? [01:16] mscdex: hehe [01:16] mape: tmpvar: to test the moving points [01:16] pkrumins: MattJ: goes excellent! making progress with the startup! [01:16] MattJ: Very nice :) [01:16] pkrumins: MattJ: did you refactor your code? [01:17] MattJ: No, instead I spent 5 minutes adding SSL yesterday :) [01:17] pkrumins: oh! [01:17] mape: tmpvar: but yeah the concept is that depending on who references who on irc you get a social pattern. And then I plot that. So in the end I probly have an ircbot in node pushing updates through websockets to the frontend which updates the nodes in real time showing who talks to who and how much [01:17] tmpvar: ah [01:18] MattJ: Why is modifying a canvas an expensive operation? [01:18] mape: and then you do like !register gravatar@mail.com to get your picture in there [01:18] ditesh|cassini has joined the channel [01:19] tmpvar: mape, good.. so you can optimize [01:19] smtlaissezfaire has joined the channel [01:19] mape: MattJ: that is what I'm thinking, should be basic stuff. Just reset it. [01:19] tmpvar: i was hoping that your intent was not to redraw the canvas every render [01:19] mape: Well only when the relations change [01:20] mape: which could be once every second or so, or once every hour if the room is silent [01:20] tmpvar: so you need to re-draw the lines [01:20] MattJ: pkrumins: Your current approach is with websockets? [01:21] mape: Yes since they move in relation to eachother, if I start my lines with tmpvar: and you with mape: that means we interact, the more we do that the closer our nodes get. Hence new positions, and therefor new lines [01:21] tylerstalder has joined the channel [01:22] tmpvar: alright, so just do some math and a series of clear to background rect [01:22] tmpvar: then redraw :) [01:22] tmpvar: assuming nothing overlaps [01:23] mape: yeah, as long as it doesn't turn out less efficent since my resets would overlap [01:23] mape: just feels like doing hundreds of resets on small areas would be slower then 1 on everything [01:23] tmpvar: nope [01:23] tmpvar: trust me on this one :) [01:23] tmpvar: fill ops are slow [01:23] mape: But I don't want to touch the DOM and create a new element since that is dog slow [01:24] tmpvar: why would you do that? [01:24] mape: If that for some reason would be faster, which you already stated it isn't [01:24] pkrumins: MattJ: with rauchg's socket.io, works beautifully. [01:24] pkrumins: MattJ: and socket.io-node [01:24] tmpvar: mape, oh, aboslutely positioned dom nodes with canvas lines? [01:24] tmpvar: not sure if thats faster [01:25] tmpvar: ideally you clear as little as possible before each render [01:25] MattJ: pkrumins: and you have it displaying something? Smoothly? [01:25] mape: tmpvar: not what I though but nah, I wanna learn canvas so I'll stick to it [01:25] tmpvar: mape, hit me up if you want me to look at it :) [01:25] mape: I just wonder where the math overhead is larger then just clearing it [01:25] devinus: hrm. wondering if when i clear my linked list if i should delete every element or just dereference the head and tail [01:25] mape: tmpvar: Will do after some experimentation :) [01:25] devinus: oh my [01:25] devinus: will the GC know.... :[ [01:26] mape: using delete is bad no? [01:26] MattJ: although unrelated to what devinus asked - it is? :) [01:27] devinus: map: who says its bad? [01:27] mape: My mother [01:27] mape: And _ry I believe [01:27] devinus: mape: no seriously [01:27] rauchg: nym_: [01:27] devinus: he does? [01:27] rauchg: here [01:27] mape: Throws the V8 GC into slow mode [01:27] devinus: hrm...i wonder why [01:27] rauchg: that's weird haha, 1000x times ? [01:27] nym_: rauchg: hey [01:27] mape: But only if you do it on object properties or something [01:28] nym_: rauchg: i just tried running chat.html [01:28] rauchg: can i ssh into your computer ? [01:28] rauchg: j/k [01:28] nym_: rauchg: same error "WebSocket connection invalid" [01:28] nym_: rauchg: sure [01:28] mape: hehe [01:28] mape: >_< [01:28] nym_: wait, should i trust rauchg ? [01:28] nym_: heh [01:28] rauchg: i don't trust him [01:28] mape: nym_: Can I have an account as well? [01:28] rauchg: haha [01:28] MattJ: "Me too" [01:28] nym_: rauchg: what's your email [01:28] rauchg: ohhhhhh [01:28] devinus: hey _ry, yt? [01:29] rauchg: nym_: [01:29] mape: devinus: They are of at the ext offices doing a node party [01:29] nym_: ...? [01:29] mape: *off [01:29] rauchg: ohhhhhh [01:29] devinus: ext offices, mape? [01:29] rauchg: question [01:29] mape: devinus: ext.js? [01:29] devinus: mape: oh wtf [01:29] rauchg: are you passing options [01:29] rauchg: to io.listen ? [01:29] devinus: extjs likes node? [01:30] rauchg: mape: yes, extjs.com [01:30] inimino: ACTION wants to kill the "delete is slow" meme before it spreads any further [01:30] rauchg: devinus: tj (aka express father) works for ext [01:30] nym_: rauchg: i'm running chat.html with nothing special [01:30] rauchg: and they loove ext [01:30] devinus: oh weird [01:30] rauchg: node [01:30] mape: devinus: http://groups.google.com/group/nodejs/browse_thread/thread/8ade06ddb4e1f65a/adba24cfcc3f6733?lnk=gst&q=ext#adba24cfcc3f6733 [01:30] MattJ: inimino: Well quite true, since there isn't really an alternative [01:31] mape: rauchg: the ext people love ext? [01:31] mape: who would have figured [01:31] mscdex: heh [01:31] mape: :D [01:33] nym_: i heard ext was going to start using jQuery [01:33] mrjjwright: it seems to me that the html5 web db api doesn't play well in an async environment like node when executing it's transaction steps: http://dev.w3.org/html5/webdatabase/#transaction-steps without a kind of loose interpretation. [01:33] nym_: ACTION runs and hides [01:34] mrjjwright: i am trying to write a html5 wrapper around node-sqlite, if anybody cares to discuss my interpretation that might work, let me know. [01:35] hassox_ has joined the channel [01:36] devinus: hey everybody [01:36] devinus: critique plz http://pastie.org/958081 [01:36] devinus: i did it for teh lulz [01:37] hassox_ has joined the channel [01:37] mape: usecase? [01:37] tmpvar: yeah.. [01:39] devinus: mape: none that i can think of.... [01:41] mscdex: heh [01:41] mscdex: a node within a node! [01:41] tmpvar: lol. [01:43] devinus: mape: so ry recommends just derefs huh? [01:43] mape: think he just said he dislikes them and stays away from them [01:43] devinus: i see [01:45] mattly has joined the channel [01:45] tmpvar: tk, how goes? [01:45] tmpvar: man, i want to work on composer [01:45] tmpvar: rage. [01:49] tk: tmpvar: so so, been feeling out of it today -- sucks cause was planning on going to a music thing tonight to raise money for a local musicians medical bills [01:50] tk: and my computer chair is broken :( no... upright position any more it seems -- think the L bracket on the seat back is giving out.. well where it attaches inside the seat back [01:52] tmpvar: haha [01:52] tmpvar: nice [01:52] inimino: devinus: V8 uses hidden classes, until you use 'delete' on an object, then it uses an ordinary hash map like every other engine does all the time [01:53] inimino: devinus: it only affects the object you use delete on [01:53] devinus: inimino: i've asked alex iskander who is also knowledgeable with it, but let me get your opinion too: ok, so i've got this object foobar with a foo and a bar props pointing to two other objs, but nothing references foobar, will it be GC'd or do i have to explcicitly 'delete' it ? [01:54] inimino: devinus: it'll be gc'd, you don't need to worry about that at all [01:54] devinus: awesum [01:55] inimino: basically if you have to manually dereference anything that wouldn't otherwise be reachable, then the garbage collection is broken by definition [01:55] devinus: inimino: specifically i was talking about http://pastie.org/958081 line 73 [01:56] devinus: i'll just remove that bad boy [01:56] inimino: ah... [01:56] inimino: yeah, delete is only allowed on properties of objects [01:56] devinus: inimino: really? mdc says variables too... [01:57] inimino: yes, mozilla allows it and documents it [01:57] inimino: but in the standard language that's an error [01:57] devinus: i see [01:57] inimino: 'node' is going to go out of scope anyway [01:58] inimino: and 'delete' would just delete the reference to it, you're still relying on the gc to catch it [01:58] devinus: yeah [01:58] devinus: my brain just thought i was giving it a hint [01:58] devinus: but awesome, thanks [01:58] inimino: if you use delete at all it should be used for object properties, like "delete node.next" [01:58] devinus: now i can enjoy a smart GC [01:58] inimino: ^.^ [02:02] devinus: i hate that es5 isnt taking mozillas lang extensions [02:02] devinus: grrr [02:10] jedschmidt has joined the channel [02:13] devinus has joined the channel [02:15] cloudhead has joined the channel [02:15] quirkey has joined the channel [02:16] tlrobinson_ has joined the channel [02:18] Yuffster has joined the channel [02:24] charlesjolley has joined the channel [02:31] mjijackson has joined the channel [02:52] tmpvar has joined the channel [02:55] mrjjwright has joined the channel [02:59] aho has joined the channel [03:03] pkrumins: has anyone written node.js modules? [03:03] bpot has joined the channel [03:03] pkrumins: oh [03:03] pkrumins: never mind [03:03] pkrumins: i confused terms. [03:07] steadicat has joined the channel [03:08] technoweenie has joined the channel [03:12] keeto has joined the channel [03:12] isaacs has joined the channel [03:12] keeto has joined the channel [03:19] JimBastard_ has joined the channel [03:23] smtlaissezfaire has joined the channel [03:24] freshtonic: does anyone know of an up-to-date .deb package for node? Latest debian packaged version is old [03:26] derferman has joined the channel [03:26] smtlaissezfaire: freshtonic: More recent that 0.1.33? [03:26] Tim_Smart has joined the channel [03:26] smtlaissezfaire: http://packages.debian.org/search?keywords=node [03:27] isaacs has joined the channel [03:27] freshtonic: yes, I was wondering if someone had a package following latest tag. 0.1.94 is the latest [03:28] freshtonic: bit of a long shot. Guess I' [03:28] freshtonic: Guess I'll download the deb source and update it [03:31] jwm: hehe [03:32] jwm: it's real easy to install node by compiling :) [03:32] tmpvar has joined the channel [03:33] tmpvar: hola [03:34] tmpvar: _ry, I think I found a symptom of a bug [03:36] tmpvar: sending a patch [03:36] tmpvar: i guess i should include a test [03:47] PyroPete1 has joined the channel [03:57] captain_morgan has joined the channel [04:06] Phazm: gsf: you around? [04:06] Phazm: I'm using your node-solr module -- is it just me, or is solr not able to accept an integer as a value? [04:17] tmpvar has joined the channel [04:19] derferman has joined the channel [04:23] mrjjwright has joined the channel [04:23] steadicat has joined the channel [04:36] stevendavie has joined the channel [04:44] mattly_ has joined the channel [04:53] tlrobinson has joined the channel [04:53] nefD has joined the channel [04:54] jedschmidt has joined the channel [04:54] devinus has joined the channel [05:01] dgathright has joined the channel [05:02] robrighter has joined the channel [05:05] darkf has joined the channel [05:07] ryan[WIN] has joined the channel [05:07] iamjwc has joined the channel [05:08] mscdex has joined the channel [05:08] iamjwc: does anyone know anything about the state of a multipart form data library? [05:08] chewbranca has joined the channel [05:09] iamjwc: it seems it was removed from node.js libs/ for 0.1.4 [05:09] technoweenie: http://github.com/isaacs/multipart-js [05:09] iamjwc: yeah, ive tried that, but its very incomplete [05:09] technoweenie: apparently felix is working on a new one that's really good, but i dont know if itsout yet [05:09] iamjwc: ah [05:10] iamjwc: here we go... http://github.com/felixge/node-formidable/blob/master/lib/formidable/multipart_parser.js [05:11] technoweenie: oh nice [05:12] mjijackson has joined the channel [05:14] ncb000gt has joined the channel [05:14] ncb000gt: creationix: yt? [05:15] alexiskander has joined the channel [05:15] brettgoulder has joined the channel [05:15] ncb000gt: actually, just checked the commit log and saw that you removed clone from nvm. [05:17] tlrobinson_ has joined the channel [05:21] ncb000gt has left the channel [05:28] DracoBlue has joined the channel [05:41] towski has joined the channel [05:45] charlesjolley has joined the channel [05:46] stevendavie has joined the channel [05:49] stevendavie has joined the channel [06:03] derferman has joined the channel [06:06] hassox has joined the channel [06:08] brettgoulder has joined the channel [06:09] stevendavie1 has joined the channel [06:09] keyvan has joined the channel [06:19] ditesh|cassini has joined the channel [06:25] brettgoulder has joined the channel [06:29] derferman has joined the channel [06:31] keeto_ has joined the channel [06:46] SamuraiJack has joined the channel [06:51] peutetre has joined the channel [06:52] Tim_Smart has joined the channel [07:02] k3yvn has joined the channel [07:04] benoitc has joined the channel [07:11] keyvan has joined the channel [07:13] dgathright_ has joined the channel [07:14] keyvan has joined the channel [07:16] jedschmidt has joined the channel [07:17] derferman has joined the channel [07:20] ryan[WIN] has joined the channel [07:24] technoweenie has joined the channel [07:33] hassox has joined the channel [07:35] javajunky has joined the channel [07:38] keyvan has joined the channel [07:40] qFox has joined the channel [07:40] pdelgallego has joined the channel [07:43] mitkok has joined the channel [07:58] sztanphet has joined the channel [08:25] pdelgallego has joined the channel [08:25] SvenDowideit_ has joined the channel [08:27] javajunky has joined the channel [08:28] mjr_ has joined the channel [08:28] TomY has joined the channel [08:40] markwubben has joined the channel [08:41] cedricv has joined the channel [08:46] admc has joined the channel [08:48] freshtonic has joined the channel [08:55] olegp has joined the channel [08:57] loxs has joined the channel [08:58] loxs: do you know of anyone building webdav server with node.js? [09:10] dgathright has joined the channel [09:12] DracoBlue: loxs: a while back creatonix announced this webdav project for node http://github.com/creationix/refresh [09:14] magcius: how do you get the data send with POST? [09:14] magcius: request.url won't work [09:14] magcius: and google is just returning shit for blog posts [09:14] inimino: magcius: read the request body [09:15] magcius: inimino: do I do that with stuff like the data and end event handlers? [09:15] inimino: yes [09:15] magcius: inimino: or is there a better way to get the entire body once the request is complete [09:15] magcius: inimino: okay, is there something for parsing the cgi encoding? [09:16] DracoBlue: magcius: check the querystring module http://nodejs.org/api.html#query-string-275 [09:16] magcius: it's called querystring? It has nothing to do with the query string! [09:17] tlrobinson__ has joined the channel [09:17] magcius: It's just that CGI used form-urlencoded for the stuff after the "?"\ [09:18] maushu has joined the channel [09:20] javajunky has joined the channel [09:24] nsm has joined the channel [09:25] teemow has joined the channel [09:30] dgathright has joined the channel [09:36] dks has joined the channel [09:40] mscdex has joined the channel [09:45] micheil has joined the channel [09:46] magcius: argh [09:46] mscdex: ? [09:46] magcius: how can I get the boundary from the content-type header? [09:46] mscdex: argv :P [09:47] magcius: huh? [09:47] mscdex: search for "boundary=" ? [09:47] magcius: why the fuck was multipart removed from the stdlib? It did all this. [09:48] V1 has joined the channel [09:48] DracoBlue: magcius: just copy the multipart lib if you want to use it. [09:48] magcius: DracoBlue: this one? [09:48] magcius: http://github.com/isaacs/multipart-js/ [09:48] DracoBlue: nope [09:48] magcius: DracoBlue: it requires you to set the boundary [09:48] DracoBlue: one second [09:48] DracoBlue: http://github.com/DracoBlue/spludo/blob/master/core/libs/multipart.js [09:49] DracoBlue: I am using the old one, too. [09:49] magcius: how do you use it? [09:50] DracoBlue: http://github.com/DracoBlue/spludo/blob/master/core/ServerApplication.js#L120 [09:50] teemow has joined the channel [09:50] DracoBlue: until line 149 [09:51] DracoBlue: do not mind the finishRequest function, you can easily do whatever you want after the parsing is completed. in my case parts is a hashmap of key-value for all parameters. [09:55] olegp_ has joined the channel [09:55] bill__ has joined the channel [09:58] magcius: DracoBlue: I'm not getting a "body" [09:58] DracoBlue: which node version? [09:59] magcius: v0.1.92-7-g0443827 [09:59] DracoBlue: did you set req.setBodyEncoding("binary"); ? [10:00] DracoBlue: maybe put up a small gist/pastebin post so one can see what you do ;) [10:00] magcius: DracoBlue: yep [10:03] magcius: DracoBlue: http://paste.pocoo.org/show/213517/ [10:03] magcius: DracoBlue: partBegin and complete are called, but not body [10:04] magcius: I'm just calling curl -F source=> work only on integers. js uses per default double. so js has to convert the variable to int (each time when you use << or >>) [11:04] magcius: yeah [11:05] magcius: derRichard: is there any reason we can't manipulate the double bits? Is it because Number is implmentation specific? [11:05] configdotsys has joined the channel [11:05] loxs: couchdb external process gets executed before or after a change to the database? Can it intercept requests to couchdb? [11:06] derRichard: magcius: it's because of the internal representation of double. when you shift the double bits you'll get nonsense [11:06] derRichard: shifting makes only sense on integers [11:06] loxs: hmm, wrong channel, sorry [11:07] derRichard: btw: djb2 is a good hash function but it is not a cryptographic hash. use it only for things like hash tables. not for passwords [11:08] mape: Nice, worked perfectly :) [11:08] configdotsys has joined the channel [11:08] configdotsys: woot [11:08] mape: ACTION wonders if configdotsys can do /me [11:09] configdotsys: not yet, i'm working on adding more stuff though ;-) [11:09] mape: hehe [11:10] magcius: derRichard: of course [11:10] configdotsys has joined the channel [11:10] magcius: I have no clue how djb2 was developed or how it works [11:10] mscdex: i gotta figure out CTCP before i can handle /me [11:11] magcius: mscdex: it's quite easy [11:11] magcius: mscdex: "\x01ACTION foobar\x01" [11:11] mscdex: yeh [11:11] magcius: ACTION is the CTCP command for /me [11:11] mscdex: yep :) [11:11] mscdex: i just screwed up the ui ha [11:13] mscdex: i guess i better test this on a local irc server before freenode gets mad at me :P [11:13] PyroPeter: they wont even notice [11:14] mscdex: i didn't know if constant reconnecting might constitute flooding or something [11:18] magcius: mscdex: nah [11:19] magcius: mscdex: just don't test in a popular channel [11:19] PyroPeter: is the http-server's listen() designed to be called multiple times? [11:20] ditesh|cassini has joined the channel [11:21] micheil: PyroPeter: I don't think so [11:21] micheil: PyroPeter: try it though, see what you get. [11:25] PyroPeter: it works in a way, but close() only closes the socket opened last [11:25] rolfb has joined the channel [11:26] MattJ has joined the channel [11:27] zimbatm has joined the channel [11:28] zimbatm has joined the channel [11:28] zimbatm: hello [11:28] zimbatm: _ry: are you there ? [11:34] sveisvei has joined the channel [11:36] zimbatm has joined the channel [11:37] TobiasFar has joined the channel [11:40] PyroPeter: oh, and it crashes some times: http://pastebin.com/kN7aYLiR [11:40] zimbatm has joined the channel [11:44] robrighter has joined the channel [11:45] stalled has joined the channel [11:52] phiggins has joined the channel [11:55] Gruni has joined the channel [11:59] hellp has joined the channel [12:00] Gruni|Touch has joined the channel [12:19] drudge has joined the channel [12:19] mscdex: yay! private messaging and /me works now as well as showing the topic at the top of the screen :) [12:21] javajunky: mscdex: web client or has someone finally got ncurses or something going ? [12:22] mscdex: yes, ncurses [12:22] javajunky: nice, is _ry planning on including that Ootb do you know ? [12:22] mscdex: i dunno, but i doubt it [12:22] javajunky: bummer. [12:22] javajunky: would be nice to be able to write some decent client apps. [12:23] botanicus has joined the channel [12:27] mape: http://mape.me/ircanvas/ Slowly moving towards something usable [12:27] mape: If you click the body it adds a new dummy irc-user [12:28] mscdex: javajunky: well, node-ncurses is on github. feel free to play around with it. there's no documentation just yet, since i still haven't finalized the function names in the binding and such [12:29] mscdex: and the irc client example is there too [12:29] mscdex: mape: it's too fast for me lol [12:29] mscdex: oh wait [12:29] mape: mscdex: To fast? It doesn't move at all? :P [12:30] mscdex: i clicked the body/background and nothing is added :S [12:30] mape: Using what browser? [12:30] mscdex: chromium [12:31] mape: Hmm works in firefox/chrome dev/safari here [12:31] mape: Heavy cache? [12:31] maushu: Is there something like __main__ in node.js? [12:32] derbumi has joined the channel [12:32] mscdex: ok, it was cached. i was still seeing the seizure one from earlier ;D [12:32] thoolihan has joined the channel [12:32] mape: Yeah, now it is static and only moves when clicked [12:33] mscdex: looks neat though [12:33] mscdex: if only IE would support canvas [12:34] mape: Next step is getting an ircbot working and hooking websockets on it so it updates live in realtions to the irc channel [12:34] hellp has joined the channel [12:35] mscdex: well, i used felix's irc module from his logger script on github [12:36] mscdex: i had to make a few changes to it though, since it still used the tcp module and stuff [12:36] mscdex: but other than that it seems to work pretty well for my irc client [12:37] mape: hmm k I'll be sure to check it out [12:41] MattJ: Hmm, are there any wrappers for a stream object to make line-based protocols easier to handle? [12:41] paul_ has joined the channel [12:44] MattJ: Good job I like writing code then :) [12:57] ncb000gt has joined the channel [13:05] davidsklar has joined the channel [13:08] kriszyp has joined the channel [13:12] jherdman has joined the channel [13:20] stepheneb has joined the channel [13:24] TheEnd2012 has joined the channel [13:32] maushu: God dammit. [13:32] maushu: Just found heroku is hosting node.js [13:33] mape: ? [13:34] maushu: Competition. [13:35] mape: oh? [13:36] maushu: Fortunately no one used my interface idea, yet. [13:36] maushu: It's still competition though. [13:37] mape: link? [13:37] maushu: For heroku? [13:37] mape: the compitition [13:37] maushu: ... [13:37] mape: oh [13:37] maushu: http://blog.heroku.com/archives/2010/4/28/node_js_support_experimental/ [13:37] mape: thought contest [13:37] mape: not competition [13:38] mape: I'm swedish forgive me [13:38] maushu: No problem. [13:38] maushu: I really need to start my startup. [13:38] maushu: Damn day job taking all my time. [13:38] JAAulde has joined the channel [13:39] JAAulde has joined the channel [13:40] hsuh has joined the channel [13:45] sveimac has joined the channel [13:46] jedschmidt has joined the channel [13:54] jan____: kriszyp: you in? [13:54] pgriess has joined the channel [13:55] Phazm has joined the channel [13:56] pgriess has joined the channel [13:59] ncb000gt: mashu: that's how it goes :) [14:00] ceej has joined the channel [14:01] gf3 has joined the channel [14:02] botanicus has joined the channel [14:04] kriszyp: yes [14:12] tmpvar has joined the channel [14:13] softdrink has joined the channel [14:14] kriszyp: jan____: I am in [14:17] jan____: kriszyp: I just read your nosql architecture article. good stuff all around. I have one question. you use "relation" as in related and say it is the same "relation" as in "relational database" which is not correct. (a relation is a set of rows, a table) and has nothing to do with a join or related data. Am I just a stubborn nitpicker and should relax or should it keep bugging me that people make that "mistake"? [14:23] kriszyp: thats an interesting point jan____, so you are saying that technically a "relation" isn't the relationship, but the table that the relationship acts on? [14:25] kriszyp: so are you saying that there is no difference between a "relation" and a "table" in the RDBMS context? [14:25] jan____: correct. that's the definition in relational algreba [14:25] robrighter has joined the channel [14:26] jan____: it doesn't help that in the real world two things related to each other have (or form?) a relation. [14:26] jan____: thus a JOIN is used to find "related" rows. [14:26] kriszyp: right, at the very least, colloquially table != relational [14:27] jan____: yeah. It really bugs me because people think you can't find related data in nosql systems [14:27] kriszyp: trying to find a formal definition... it seems a table describes a relation, but isn't the concept itself [14:27] jan____: if it helps: http://en.wikipedia.org/wiki/Relation [14:27] kriszyp: right, you can definitely find related data in a nosql system :) [14:27] kriszyp: and need to [14:27] jan____: #1 and #4 [14:27] jan____: of course :) [14:28] jan____: so my question is am I too anal about definitions or should this be taught? [14:28] jan____: I don't want to be the grumpy old man of nosql :) [14:29] ncb000gt: hah. too late jan___ [14:29] ncb000gt: :) [14:29] nefD: oooh nosql talk.. just recently got into mongo, so its nice to hear some interesting chatter on the subject :D [14:30] ncb000gt: nefD: Did you watch the nosql smackdown vid? Some good chatter on it about the differences in platforms. [14:30] jan____: sorry for hijacking the node chan for this :) [14:30] jan____: ncb000gt: bah :D [14:30] ncb000gt: jan___: get off my porch! [14:30] nefD: ncb000gt: No, but that sounds really cool.. where could I find it? [14:30] nefD: jan____: hijack away! :D [14:31] ncb000gt: nefD: http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown [14:31] jan____: nefD: google for nosql smackdown [14:31] ncb000gt: has links for the videos too [14:31] jan____: there's four parts afaik [14:31] robrighter_ has joined the channel [14:31] nefD: cool, thanks guys [14:32] nefD: would be interesting to hear some detailed comparisons of couch and mongo.. i tried couch before I tried mongo but just couldnt get on with it [14:32] loxs has left the channel [14:34] jan____: nefD: you clearly need to read my book: http://books.couchdb.org/relax/ :) [14:35] ncb000gt: nefD: the nosql space is pretty interesting, but I think it mostly boils down to choice. learn about the specific technologies but then use whatever works best for your situation. [14:35] nefD: jan____: Thanks for the link! I'll check it out for sure [14:35] kriszyp: so is part of the confusion, jan____, stem from the fact that SQL DBs don't really following the relational model (at least Codd didn't consider any SQL DBs to be a true RDBMS)" [14:35] kriszyp: ? [14:36] kriszyp: and thus SQL tables really aren't relations, they only describe/provide the data for relations [14:36] ncb000gt: nefD: there is also a couchdb webinar put on by jchris and oreilly, i think the next one is on the 20th or 21st of this month [14:36] kriszyp: but in a true RDBMS, the table would be the relation [14:36] nefD: ncb000gt: Indeed! Which I think is what is so impressive about the nosql movement.. with rmdb's there were basically a handful of choices, and with nosql theres been a good number of options to pop up in a fairly short length of time [14:36] stepheneb has joined the channel [14:36] ncb000gt: nefD: agreed [14:37] nefD: I think I like mongo the best because I feel the most comfortable with it, coming from a heavy mysql background.. so from my (a noob) perspective, mongo was just an easier switch.. I think once i'm more proficient with it, it'll be easier for me to get a good grip on couch [14:38] jan____: kriszyp: I think codd's relation and tables in rdbms today are close enough to be the same for this argument. I think the confusion is the double definition of "relation" in relational algebra and common use [14:39] kriszyp: but isn't that because most of the time we define tables in SQL, that the full relation isn't defined or doesn't need to be defined (as specified by what constitutes a relation http://en.wikipedia.org/wiki/Relation_(database)), and the act of JOIN completes the notion of a relation (specifying the tuple set)? [14:41] jan____: right, the result of a join is (also) a relation, a "virtual table" if you will. [14:41] ncb000gt: nefD: yea, i had an easier time switching to mongo, but there are specifics that make mongo a bad choice: if you need acid compliance, if your data is graph based, and there are other reasons...style, http access, etc. But, again, choice is the big thing. Mongo is incredibly fast. And if you're not doing something where transactionality is that important, then you'll most likely be fine with it. It's a very good starter. :) [14:41] jan____: but that's still not "finding related data". at least it rubs me wrong [14:42] kriszyp: thus the design of SQL DBs (properly) pushes the colloquial use of relation away from just being a table (because SQL doesn't lend itself toward pure relation-tables) [14:42] kriszyp: (by "properly" I mean the terms we are using, not that anything is proper about SQL DB design) :) [14:43] jan____: hahaha [14:43] jan____: :D [14:43] ncb000gt: nefD: something that can help ease you into couchdb is couchapp and futon(it's a really nice interface to visualize/modify your data). [14:43] loxs has joined the channel [14:44] loxs: what js framework would you recommend for the client side, for doing Comet? [14:44] nefD: ncb000gt: Yeah, when I was messing with couch I had futon running, was a really nice interface.. I guess the main thing tripping me up was the creation of views and such.. I'm just so much more accustomed to simple query statements, I guess.. [14:44] kriszyp: so you would suggest that a couch view can be a proper "relation"? Perhaps more so than a SQL table? or is that not what you are getting at? [14:44] nefD: loxs: Personally, I like jQuery.. Dojo is also a good choice.. there are lots of options, though [14:45] jan____: kriszyp: I'd like to decouple "related data" from "relation" [14:45] ncb000gt: loxs: what frameworks are you most familiar with? [14:45] jan____: I just want people to not get uncomfortable about fetching related data when reading "non-relational" [14:45] loxs: ncb000gt, ExtJS, YUI and a little of Dojo [14:46] loxs: is chat.nodejs.org done by using some comet techniques? [14:47] ncb000gt: erm, not sure [14:48] kevwil has joined the channel [14:48] mape: it does [14:48] mape: long pull [14:49] ncb000gt: loxs: http://github.com/ry/node_chat/blob/master/client.js [14:49] ncb000gt: that's the client side [14:50] ncb000gt: and yes, long polling [14:50] ncb000gt: uses jquery for the ajax calls, tho, the same techniques would be possible in whatever framework you want to use [14:51] loxs: but is it supported in most browsers? [14:53] ncb000gt: is what, jquery? [14:53] micheil: mape: ** long poll [14:54] micheil: loxs: it is fairly well supported, but some recommend providing a fallback to short polling [14:54] micheil: loxs: however, I'm not so sure about comet, it seems like an odd protocol [14:55] micheil: one thing I would recommend looking at for future apps is websockets, which is quickly gaining support [14:55] micheil: Firefox 4 is set to support them and Chrome currently do [14:55] steadicat has joined the channel [14:56] joshbuddy has joined the channel [15:01] nefD: loxs: If you decide to look further into websockets, I highly recommend taking a look at Socket.io.. it provides seamless fallback support for browsers which don't directly support websockets [15:01] ncb000gt: loxs: There are libs that work specifically with comet if you need to use comet. [15:01] loxs: hmm [15:02] loxs: ncb000gt, yeah, that's what I'm interested into [15:02] loxs: because I'm going to build a chat heavy website [15:02] loxs: a game, to be more specific (with other comet stuff too) [15:02] stepheneb has joined the channel [15:04] mjijackson has joined the channel [15:04] technoweenie has joined the channel [15:05] ShaunR has joined the channel [15:05] thoolihan has joined the channel [15:05] ncb000gt: loxs: have you looked at using xmpp for that? [15:06] loxs: ncb000gt, well, they (the servers) are too hard to configure, and I don't need 90% of the functionality [15:06] loxs: and I want too much stuff like dynamically create/destroy rooms, add users to them etc [15:07] ncb000gt: but it will save you in bandwidth and overall programming effort [15:07] loxs: and that's PITA with their databases etc. [15:07] loxs: and I'm going to use CouchDB for most of the stuff [15:07] loxs: I don't need logs etc [15:07] loxs: ncb000gt, I don't think XMPP will save brandwidth [15:07] jan____: CouchDB is good at logs :) [15:07] ncb000gt: haha [15:07] ncb000gt: jan___: pusher [15:08] loxs: well, I know, the thing is that my app won't need the logs [15:08] stevendavie has joined the channel [15:08] loxs: XMPP is XML, and it's much more cluttered than simple JSON strings [15:08] loxs: so no saving of brandwidth with xmpp [15:09] ditesh|cassini has joined the channel [15:09] loxs: but yeah, I haven't given up the idea completely (XMPP) [15:09] DracoBlue has joined the channel [15:09] ncb000gt: chat is what xmpp was originally built for. [15:10] ncb000gt: it's been extended to all sorts of things, but really it's very good at chat, multi user chat, and the likes [15:10] jan____: ncb000gt: hater :P [15:10] ncb000gt: haha [15:10] loxs: and because I need comet for the game itself (not only for the chat), and the chat is part of the game. Like "A killed B", I don't think XMPP is the best solution [15:10] ncb000gt: loxs: maybe not, I'm just trying to provide options :) [15:11] jan____: loxs: how about CouchDB _changes? [15:11] ncb000gt: well, if you're going to use comet then long polling with a failover is the best bet [15:11] loxs: jan____, I'll use this for part of the things, yes [15:11] ncb000gt: and that's easy to implement in any front end [15:11] javarants has joined the channel [15:11] nefD: loxs: I'm developing a browser based game as well, and websockets have been working really well for me, so far.. (not to beat a dead horse :P) [15:12] loxs: nefD, what tools are you using for websockets? [15:12] quirkey has joined the channel [15:12] nefD: loxs: jQuery on the front end, Socket.IO on the front & back end, PHP, MongoDB, and Node on the backend [15:12] nefD: and nginx as the server [15:13] thoolihan has joined the channel [15:13] loxs: so far my plans are CouchDB + node.js on the backend. I'll have a look at socket.io [15:13] loxs: nefD, which browsers are you supporting? [15:14] ncb000gt: netscape navigator [15:14] ncb000gt: <.< [15:14] loxs: ahaha [15:14] nefD: loxs: ie7+ (though im only actively testing in ie8+), safari 2+, ff3+, chrome [15:15] loxs: that's enough for me :) [15:15] nefD: I haven't specifically ruled any browsers yet, or at least, I haven't hit any snags that I didn't feel like sorting out yet :P [15:16] loxs: and what tools are available for long polling? [15:16] nefD: im not sure of any specific tools, its mostly just methodologies.. the node_chat app is a good example of how you can do long polling [15:17] nefD: most of the implementation for a long polling system would be in your node code [15:18] mscdex: it also depends on if you're doing cross-domain too or not [15:18] ncb000gt: node_chat has a method called longPoll: http://github.com/ry/node_chat/blob/master/client.js#L151 [15:19] mscdex: cross-domain comm requires even newer browsers [15:19] thoolihan has joined the channel [15:20] nefD: *nod*, that was a big reason I dropped apache for nginx (aside from the performance boost) is the ease of doing reverse proxies [15:20] nefD: if you want to do long polling with apache, your best bet is going to be JSONP rather than simple get/post ajax requests [15:20] maushu: Huh, what happens when php memory limit is reached? [15:21] nefD: maushu: It'll bomb out, I do believe [15:21] mscdex: the web server explodes :P [15:21] mrjjwright has joined the channel [15:21] blowery: it catches on fire [15:21] maushu: In that case it should be easy to implement in my case, I just verify the process memory and then kill it if it reaches the limit. [15:21] nefD: maushu: You'll see an entry in your error log, though [15:21] mscdex: and also, you can do multipart streaming on some browsers... better than long polling [15:22] blowery: the whole gulf oil thing happened because php ran out of memory [15:22] maushu: blowery: Truly horrible. [15:22] mscdex: heh... they wanted to set fire to the oil to get rid of it [15:23] mscdex: and Russia suggested setting off a nuclear explosion underwater to get rid of it [15:23] mscdex: :P [15:23] maushu: mscdex: ...you're kidding. [15:23] tlynn has joined the channel [15:23] nefD: In mother russia, YOU.. wait- detonate an atomic warhead- wtd? [15:23] nefD: (( No, he isn't kidding )) [15:23] mscdex: no, i'm not [15:23] Aria has joined the channel [15:24] maushu: ...oh wait, it's Russia we are talking about here. [15:24] maushu: They were hoping US would actually do that. [15:24] MattJ: ACTION prefers golf balls [15:24] ncb000gt: wow... [15:24] loxs: I'm using nginx for years now, no plans to go back to apache :) [15:25] maushu: http://groups.google.com/group/nodejs/browse_thread/thread/73d4041fde1cfb76 [15:25] maushu: COMPETITION! [15:25] MattJ: CONTEST! [15:25] mscdex: we need a php binding for node.js! :-D [15:25] nefD: loxs: Good man! :D You'll be in a much better position to do long polling ot multipart streaming then, should you decide to go that route [15:25] thoolihan has joined the channel [15:26] maushu: mscdex: done. [15:26] loxs: nefD, do you have any idea how much memory does comet stuff take up? [15:26] loxs: on the server I mean [15:26] mscdex: maushu: where? [15:27] maushu: mscdex: http://github.com/felixge/node-ugly [15:27] maushu: Enjoy. [15:27] nefD: loxs: Sorry, I'm not too sure.. I've read a bit about comet, but I've never done any tinkering with it [15:27] mscdex: no, i mean a real binding [15:27] mscdex: not just shelling out to php [15:27] maushu: NO REAL BINDING. NO. [15:27] mscdex: :P [15:28] loxs: OK, must leave now, thanks for the help [15:28] loxs: I'll stick around :) [15:28] loxs: bye for now [15:28] maushu: mscdex: It would be called node-blasphemy. [15:28] micheil: why... would you even think of wanting a php binding for Nide? [15:28] micheil: *node [15:28] maushu: micheil: Madness, that's what. [15:28] mscdex: there's no real extra memory requirements for comet.... [15:28] mscdex: comet is just a technique [15:28] micheil: comet is weird. [15:28] nefD: because some people would like to continue using php while still using node :P [15:28] maushu: That requires more memory than usual. [15:29] tjholowaychuk has joined the channel [15:29] maushu: nefD: BLASPHEMERS. [15:29] nefD: *shrug* [15:29] nefD: gets things done [15:29] micheil: I second this: http://twitter.com/codinghorror/status/13919548507 [15:29] mscdex: well, i think as we get more bindings that do the same things that some of us do in php, it's becoming less of an issue [15:30] mscdex: like database access and such [15:30] nefD: mscdex: Agreed [15:30] nefD: mscdex: I'm mainly using php (when node is involved) for serving up the static content, anyway.. if I ever do need to communicate with a node process, I just end up using curl or somesuch [15:31] KungFuHamster: mscdex, your name gives me horrible flashbacks to cd rom drivers.. thanks for that [15:31] mscdex: for static content? [15:31] mscdex: KungFuHamster: you're welcome :-) [15:31] KungFuHamster: ACTION twitches. [15:31] mscdex: oakcdrom.sys :> [15:32] nefD: well, I say static content, its fairly dynamic, but I guess I mean markup [15:38] maushu: Heroku charges per hour ($0.05 per process). If you guys used a similar service but for node.js would you want this or charging per month? [15:40] micheil: mscdex: there's plenty of DB drivers around [15:40] mscdex: yep [15:40] micheil: mscdex: if it doesn't work with your version of node, fork it, fix it, pull-request it [15:40] paul__ has joined the channel [15:42] matzie has joined the channel [15:43] matzie: hi, does anyone have a .spec file for node to make RPMs? [15:43] matzie: saw a post on google groups about it but the links don't work. [15:48] mscdex: i just use checkinstall to make packages [15:49] matzie: _wow_ never heard of that tool before, thanks! [15:49] mscdex: np [15:49] mscdex: ./configure && make && checkinstall [15:49] mscdex: :-) [15:50] matzie: utterly fantastic. [15:50] robrighter_ has joined the channel [15:56] softdrink has joined the channel [16:01] fizx has joined the channel [16:01] whoahbot has joined the channel [16:02] sveimac has joined the channel [16:08] captain_morgan has joined the channel [16:10] captain_morgan: tmpvar, what version of node-htmlparser are you using with jsdom? [16:10] captain_morgan: The jQuery example still does not work for me [16:11] captain_morgan: parser.ParseHtml is undefined, line 372 lib/browser/index.js [16:11] dgathright has joined the channel [16:14] mape: captain_morgan: it outputs a message if you were to remove your current htmlparser [16:14] mape: The one used in jsdom is an old fork [16:14] fizx has joined the channel [16:15] Aria: Oh yeah. I was gonna hook my parser up to jsdom [16:15] Aria: *downloads for her two hour offline hacking session later today* [16:15] mape: Offline? :S [16:16] mape: Hope you have a copy of google handy [16:16] Aria: Yeah, my partner has an appointment. [16:16] Aria: So I spend two hours in the waiting room hacking every week. [16:16] Aria: Why Google? [16:17] mape: To feel lucky [16:17] Aria: ACTION smirks [16:17] Aria: I feel lucky anyway [16:19] sveimac has joined the channel [16:21] tjholowaychuk: anyone go to Ext's thing last night? howd that go? [16:22] V1 has joined the channel [16:25] captain_morgan: mape, I don't understand, I'm using current node-htmlparser [16:25] mape: captain_morgan: Yes, that is the original one, jsdom uses an old fork [16:25] captain_morgan: not one included with jsdom [16:25] captain_morgan: ok [16:25] mape: So if you remove your htmlparser and run a script [16:25] mape: then it will show you a url [16:25] nefD: hm. I want gtk bindings for node :D [16:26] mape: think it is in browser.js [16:26] mape: captain_morgan: [16:26] captain_morgan: But index.js (where htmlparser is included) does explicitly include from a location [16:26] mape: http://github.com/tmpvar/jsdom/blob/master/lib/browser/index.js [16:26] mape: Yes, that is the one that works [16:26] mape: the original htmlparser changed it's api it seems [16:28] mape: Hmm feels like Adobe doesn't want to screw with Apple.. [16:28] mape: Pretty sure most ordinary people would rather listen to Apple then to Adobe [16:29] bpot has joined the channel [16:32] stepheneb has joined the channel [16:34] maushu: "Jefe monitors each child, and if the child misbehaves, Jefe _kills_ it, [...] [16:34] towski has joined the channel [16:38] JimBastard_ has joined the channel [16:38] mjr_: tjholowaychuk: node meetup at Ext was great. Your name was mentioned a lot. [16:39] tjholowaychuk: mjr_: to bad im stuck in canada haha.. GAH [16:39] tjholowaychuk: mjr_: lucky i got the CI up last night haha like 5 minutes before I had to leave [16:40] tjholowaychuk: still lots to do tho [16:42] mertimor has joined the channel [16:42] TobiasFar has joined the channel [16:46] mjijackson has joined the channel [16:47] skampler has joined the channel [16:48] thoolihan has joined the channel [16:51] maushu: _ry: Could you give us access to the GC? [16:52] stevendavie has joined the channel [16:52] JimBastard_: GC is for java developers [16:52] JimBastard_: and sanitation workers [16:52] JimBastard_: :-D [16:53] JimBastard_: are you having clean up issues maushu ? [16:54] indiefan has joined the channel [16:54] maushu: JimBastard_: Not really, no. But it would be useful for sandboxes. [16:55] thoolihan has joined the channel [16:55] tlrobinson_ has joined the channel [16:56] JimBastard_: how so? [16:57] tmpvar: sorry about that guys [16:57] tmpvar: debunging some environment issues [16:59] tobeytailor has joined the channel [17:00] cloudhead has joined the channel [17:01] thoolihan has joined the channel [17:02] dysinger has joined the channel [17:02] kevwil has joined the channel [17:03] dysinger has joined the channel [17:03] towski has joined the channel [17:05] dysinger has joined the channel [17:07] thoolihan has joined the channel [17:12] dgathright has joined the channel [17:14] dysinger has joined the channel [17:14] thoolihan has joined the channel [17:17] mjr_ has joined the channel [17:19] thoolihan has joined the channel [17:20] isaacs has joined the channel [17:21] isaacs: kriszyp: hey [17:21] kriszyp: hi [17:21] isaacs: kriszyp: you should put a package.json in nodules [17:21] kriszyp: I should [17:21] kriszyp: I will [17:21] ncb000gt: is there anyone else here in the NOVA area? [17:21] kriszyp: right now [17:22] isaacs: kriszyp: yay! [17:22] hsuh has left the channel [17:23] technoweenie has joined the channel [17:23] isaacs: kriszyp: for best npm results, you should make sure to put these in it: { "main":"./lib/nodules", "bin" : { "nodules" : "./lib/nodules" } } [17:24] kriszyp: ah, ok [17:24] kriszyp: And then I can publish to npm? [17:24] kriszyp: been meaning to do that... [17:25] thoolihan has joined the channel [17:26] isaacs: kriszyp: yes, you sure can! please do! [17:26] kriszyp: ok, I'll try [17:26] isaacs: kriszyp: npm is a lot nicer than it was a month ago, but it's still a bit beta. lmk if you have any issues (you probably will, but the bugs are getting smaller and less frequent) [17:27] isaacs: kriszyp: before publishing, make sure it installs by doing "npm install /path/to/nodules/root/folder" or "npm link /path/to/nodules/root/folder" [17:27] taf2 has joined the channel [17:27] isaacs: kriszyp: i'm writing up a howto for developers for the next version. [17:28] kriszyp: ok, cool [17:28] isaacs: (a better one, i mean. what's there is good, but it's scattered across a few different man pages) [17:28] isaacs: also, "." is a valid path from npm's pov [17:31] thoolihan has joined the channel [17:33] micheil: isaacs: any turn around on a frontend? [17:33] micheil: ACTION has been busy with school and stuff so hasn't had a chance to work on one [17:33] isaacs: micheil: a frontend for npmjs.org you mean? [17:33] isaacs: micheil: nope. [17:33] micheil: yeah [17:34] micheil: that was using couchdb, yeah? [17:34] micheil: ACTION can't remember [17:34] isaacs: micheil: yeah [17:34] micheil: would you consider migrating to say mongodb or redis or something? [17:35] micheil: (meaning we wouldn't need to generate views prior to querying) [17:35] isaacs: micheil: i'm not religious about the underlying data store api. couchdb is easy and nice, and i get to bug mikeal and jan____ when i run into trouble. [17:35] isaacs: micheil: but if it exposed the same api to npm, i'd be fine with it. [17:36] micheil: okay [17:36] dgathright has joined the channel [17:36] isaacs: micheil: there is a bit of a leak in the abstraction around publishing, because i PUT without a rev to make sure it's created, and then append the rev to just update that version number. [17:36] ncb000gt: isaacs: I started working on a frontend for a repository within couchdb using couchapp. I could tailor it to npm if you're interested. [17:36] micheil: yeah, I've had issues with that rev number stuff [17:36] micheil: isaacs: slightly annoying [17:36] jan____: yeah, support from friends is often the biggest thing [17:37] jan____: my theory is that this is a great part of the reason digg & twitter went for cassandra. [17:37] isaacs: ncb000gt: if you wanted to put some html on top of npm's registry, even something dumb and ugly, it'd be great. [17:37] isaacs: ncb000gt: it's at http://github.com/isaacs/js-registry [17:37] ncb000gt: sounds good. I already have something, I just have to tailor it [17:37] kriszyp: isaacs: assuming I want to install the latest... I get this when I try to install: http://gist.github.com/400115 [17:37] ncb000gt: and yes, it's ugly [17:37] ncb000gt: :) [17:38] isaacs: kriszyp: d'oh. [17:38] isaacs: kriszyp: my bad. that's a bug. [17:39] micheil: isaacs: would it be better to rearchitect around having two parts to it, so, splitting the view from the repo? [17:39] kriszyp: should I wait for a fix, or use a tagged version? [17:39] isaacs: kriszyp: i'll have a fix in 10 minutes. [17:39] kriszyp: cool [17:40] kriszyp: no rush, I am not going anywhere [17:40] steadicat has joined the channel [17:40] rolfb has joined the channel [17:41] micheil: isaacs: eg, something that could be looked at is using mongodb's gridfs for storing the modules [17:42] isaacs: kriszyp: you should be able to just run "make" in the npm folder now and you'll get the new stable version with the fix (should be 0.1.9) [17:42] tsyd has joined the channel [17:42] isaacs: micheil: like i said, if it exposed the same api to npm (or reasonably close enough that i could abstract out the differences easily) then i'd be all for it. [17:42] isaacs: micheil: i'd even like to support multiple repositories. [17:42] micheil: okay [17:43] micheil: I disagree strongly with multiple repos, we need only one, imho. [17:43] isaacs: micheil: but, getting away from couchdb is a big hump to get over. i mean, i have at-the-ready support from two members of the couchdb core dev team [17:43] micheil: ACTION didn't realise that they were core dev team members ;P [17:44] ncb000gt: :) [17:44] isaacs: micheil: and while i'm sure mongo and redis are great and very clever and wonderful for many things, couchdb is CRAZY simple [17:44] kriszyp: did you push it isaacs? [17:44] isaacs: kriszyp: yeah, i published. [17:44] kriszyp: don't see any fresh commits in http://github.com/isaacs/npm/commits/master [17:44] isaacs: kriszyp: "make" uses the cli to install the currently stable version of npm. "make install" installs the code that yo'ure looking at. [17:44] micheil: fuck. only just realised it's 15mins to 4am [17:45] skampler has left the channel [17:45] micheil: and I've gotta get up at 7am [17:45] isaacs: kriszyp: that doesn't really matter. [17:45] isaacs: kriszyp: i did "npm publish ." [17:45] ncb000gt: micheil: hah [17:45] kriszyp: oh, it goes in your repository, I see [17:45] scudco has joined the channel [17:45] stepheneb has joined the channel [17:45] isaacs: yeah, i removed any dependence on github or any other particular server. it just uploads tarballs to the registry as an attachment now. [17:46] marktlang has joined the channel [17:48] isaacs: though, i really shouldn't do that, because untracked files can get into the package, which is sloppy. (just realized that if you now do "man npm-coding-style" you'll see my unfinished doc) [17:48] micheil: isaacs: any reason for using a http api? [17:48] isaacs: micheil: it's super easy [17:48] micheil: eg, we could use tcp and just stream using buffers :P [17:48] micheil: ACTION is crazy like that. [17:48] isaacs: micheil: i use buffers [17:48] micheil: night chaps. [17:48] isaacs: micheil: g'nite :) [17:49] ncb000gt: night [17:51] scudco has joined the channel [17:52] kriszyp: this looks cool isaacs [17:52] isaacs: kriszyp: thanks :) [17:52] kriszyp: isaacs: so right now my nodules script is kind of just an example, is there something I can put in it so works ootb with npm? [17:53] kriszyp: node /usr/local/lib/node/.npm/nodules/active/package/lib/nodules.js ? [17:53] kriszyp: can that be hardcoded, isaacs? [17:53] isaacs: kriszyp: you should create an executable cli script like npm has, and then refer to it in the "bin" hash [17:53] kriszyp: ok [17:54] isaacs: kriszyp: so you can do "npm install nodules" and then later just do "nodules my-program.js" or whatever. [17:54] kriszyp: right, that's what I want [17:54] isaacs: check out how npm's package.json does this [17:54] scudco has joined the channel [17:54] isaacs: it's not too tricky [17:54] isaacs: kriszyp: also, man npm-json has more info than you probably ever wanted ;) [17:55] kriszyp: so "activate" is run automatically on install? [17:56] scudco has joined the channel [17:59] behmann has joined the channel [18:00] isaacs: kriszyp: it's config-dependent [18:01] isaacs: kriszyp: i make npm activate itself automatically on install, because it's confusing otherwise. [18:01] teemow has joined the channel [18:01] isaacs: kriszyp: but, by default, auto-activate is set to "true", which means, "activate if there isn't already an active version" [18:01] isaacs: kriszyp: you can also set it to "false" to disable this behavior, or "always" to always activate everything you install. [18:15] derbumi has joined the channel [18:16] charlesjolley has joined the channel [18:19] voodootikigod has joined the channel [18:21] maushu has joined the channel [18:23] WALoeIII has joined the channel [18:24] nym has joined the channel [18:24] nym: heya [18:25] kriszyp: isaacs: Error: Cannot insert data into the registry without authorization and https. I need to install something for https to work? [18:25] kriszyp: oh, i need to npm adduser first... [18:26] keyvan has joined the channel [18:27] kriszyp: ok, I think it is published [18:29] kriszyp: oops, nm [18:29] loxs has joined the channel [18:29] kriszyp: isaacs: still getting Error: Cannot insert data into the registry without authorization and https [18:29] loxs: folks, how are you doing auth&auth in node.js? [18:31] loxs: I mean, are there any "standartized" tools for this? [18:38] saikat has joined the channel [18:44] brainproxy has joined the channel [18:47] mjijackson has joined the channel [18:47] admc has joined the channel [18:52] isaacs: kriszyp: you need to compile node with openssl in order to publish stuff [18:54] tilgovi has joined the channel [18:55] derbumi has joined the channel [18:58] mattly has joined the channel [19:01] jherdman has joined the channel [19:04] around has joined the channel [19:05] _ry: hello [19:05] JimBastard_: hello! [19:05] JimBastard_: are you new friend? can i help you with something [19:05] stepheneb has joined the channel [19:05] JimBastard_: :p [19:06] maushu: ACTION pokes _ry. [19:06] _ry: why does my web server have 2000 ms response time? [19:06] maushu: Eww, I think it's alive! [19:06] _ry: i thought this was supposed to be fast [19:06] maushu: What webserver? [19:07] DracoBlue: lol ;) [19:07] maushu: ...wait, I got it. [19:07] maushu: :P [19:07] blowery: 2000ms is really fast [19:07] JimBastard_: ahahahaha [19:07] JimBastard_: awesome [19:07] inimino: hehe [19:07] dgathright has joined the channel [19:07] maushu: _ry, I totally think we should change that example. [19:07] JimBastard_: why cant i run my java code in node? i thought node supported javascript [19:07] around has joined the channel [19:07] cruxst: kewl [19:07] JimBastard_: sop [19:08] cruxst: what up fellas [19:08] maushu: cruxst, your web server also has a 2000 ms response time? [19:08] cruxst: maushu: rofl [19:08] JimBastard_: dont abuse the noobs [19:08] JimBastard_: thats my job [19:08] maushu: Hail. [19:08] cruxst: actually i am here to ask whether anyone would be interested in helping me out with http://nodecasts.com [19:08] ncb000gt: maushu: doesn't everyone's? [19:09] cruxst: i plan to translate all howtonode content to screencasts for starters. [19:09] maushu: Outch. [19:09] maushu: Forget about me, my voice can kill kittens. [19:09] JimBastard_: creationix would be the man to talk to [19:09] JimBastard_: he runs that site [19:09] JimBastard_: hes been travelling , but hes usually online [19:10] JimBastard_: cruxst: you should hit the mailing list up [19:10] JimBastard_: also [19:10] cruxst: right on [19:10] JimBastard_: someone else was talking about this a few months ago on the list [19:10] JimBastard_: not about howtonode, but screencasts in general [19:11] JimBastard_: id consider helping out with the webcasts. i have a pretty good speaking voice but i dont know how much content i could produce [19:11] JimBastard_: a little busy :-\ [19:11] pandark_ has joined the channel [19:12] _ry: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob [19:12] maushu: Anyone has any idea how to design a communication between node.js sandboxes? [19:12] _ry: maushu: jefe [19:12] maushu: Huh, I mean design the *communication* between sandboxes. Not sandboxes. [19:13] maushu: Besides, I'm going to use long lived sandboxes. [19:14] JimBastard_: maushu: im curious, whats the downside to starting a new node instance opposed to trying to create multiple sandboxes on one instance? [19:14] JimBastard_: caus i have a sandboxing issue, and i solved it with multiple instances [19:14] mikeal has joined the channel [19:15] JimBastard_: or am i misunderstand? [19:15] maushu: If one of those sandboxes go while(true) {} your other sandboxes also go? [19:15] kriszyp: when you do watchFile with a polling interval, does it really poll? Watching files on a smb mounted folder seems to take like 20 seconds to trigger a watch event. Anything I can do to speed that up? [19:15] kriszyp: even though I have the polling interval at 300ms [19:15] kriszyp: should I manually poll? :/ [19:16] derRichard: isn't v8 thread safe? when i call js functions within a pthread node crashes or does nothing. [19:16] JimBastard_: kriszyp: its probaly the network no? [19:16] maushu: JimBastard_, if you run a script without context it might still crash the whole thing with a infinite loop. Using another process avoids this. [19:16] kriszyp: I don't think so, I can do a cat right after a change and it is updated [19:17] JimBastard_: i mean, the time it takes to get files over smb from your server [19:17] JimBastard_: are you doing cat on the server? [19:17] kriszyp: no, cat on the client [19:17] JimBastard_: there could be latency with the network share [19:18] JimBastard_: unless i misunderstand [19:18] kriszyp: it is a tiny file, it seems pretty immediate to show up as changed in ls -l [19:18] JimBastard_: hrmm [19:18] JimBastard_: no clue then [19:18] kriszyp: maybe I should look at how watchFile is implemented :/ [19:20] dshaw has joined the channel [19:20] isaacs: kriszyp: hey, i'm back. did you get the publish figured out? [19:20] JimBastard_: i'm doing a bit of watchFile stuff, havent had any strange issues really [19:20] kriszyp: installing openssl... [19:20] isaacs: ah, kewl [19:20] JimBastard_: except when i wasnt removing my handlers [19:20] JimBastard_: but no network shares [19:20] isaacs: kriszyp: yes, it does stubbornly refuse to expose your password. that's by design. [19:21] isaacs: speaking of which, anyone know if there's a way to read stdin without exposing the keystrokes? [19:21] mikeal has joined the channel [19:22] isaacs: like, read -s style? [19:23] kriszyp: how do I tell if I succeeded in getting openssl installed and available to node? [19:23] maushu: ./configure [19:24] kriszyp: Checking for openssl : yes [19:24] kriszyp: does that mean I can blame isaacs again? [19:24] maushu: Yay! make install [19:24] isaacs: kriszyp: probably. what's going on now? [19:24] mikeal: require('crypto') [19:24] maushu: You can blame isaacs for everything. [19:24] kriszyp: still getting: Error: Cannot insert data into the registry without authorization and https [19:25] mikeal: it'll fail if you don't didn't compile with support [19:25] isaacs: hmm... [19:25] kriszyp: and maushu says my openssl is good to go [19:25] mikeal: isaacs: you're SSL only to the registry? [19:25] maushu: kriszyp, you need to "make install". [19:25] mikeal: all secure and shit :) [19:25] kriszyp: I did make install [19:25] kriszyp: and make [19:25] kriszyp: and make clean [19:25] isaacs: kriszyp: what's 'typeof require("crypto")' in the node repl? [19:25] maushu: It's isaacs' fault. Lynch him! [19:26] isaacs: mikeal: yeah, since it's only using Basic auth, sending that over regular http is not safe. [19:26] mikeal: there is a session auth as well, which is even less secure over non SSL :) [19:26] isaacs: hm... kriszyp i see that your adduser worked. [19:26] isaacs: kriszyp: what's "npm config ls" say? [19:26] kriszyp: typeof require("crypto") == "object" [19:26] isaacs: wonderful [19:27] kriszyp: http://gist.github.com/400308 [19:27] isaacs: ok. wtf. [19:27] isaacs: yeah, blame isaacs [19:28] kriszyp: here is the full output: http://gist.github.com/400310 [19:28] isaacs: oh, hey, yeah, your auth doesn't seem to be there. [19:28] isaacs: that's really weird. [19:29] cruxst: JimBastard_: word. ill start working on it and ill let you know how it goes [19:29] isaacs: kriszyp: do you have base64 installed? which base64 [19:29] kriszyp: software is hard [19:29] isaacs: kriszyp: srsly! [19:29] JimBastard_: cruxst: hit me up on github, http://github.com/marak [19:30] kriszyp: apparently I don't have base64 [19:30] itistoday has joined the channel [19:30] kriszyp: bash: base64: command not found [19:30] isaacs: kriszyp: ok. i just deleted your user account. do npm adduser again. [19:31] isaacs: i don't know how it could manage to get your user account into the registry db and not put it in the config. [19:31] isaacs: that's really werid [19:31] kriszyp: it does end with: /usr/local/lib/node/.npm/npm/0.1.8/package/lib/utils/ini.js:2736: Uncaught Error: No private key found. [19:32] kriszyp: is that bad? [19:32] isaacs: aha. that's weird. [19:32] isaacs: you don't have any private keys? [19:33] isaacs: also, yeah, that's something i should really be handling better. i see it. [19:33] brianmario has joined the channel [19:33] isaacs: damn, users are AWESOME qa. [19:33] isaacs: this is SO much better than test coverage. [19:34] maushu: Yeah, crazy users. [19:34] kriszyp: is installing keys something I should know how to do it? [19:34] kriszyp: I know how to turn my computer on... :) [19:35] maushu: Thats good enough! You now have the power TO CONQUER WORLDS. [19:35] maushu: ..and blame isaacs which is so much fun. [19:36] isaacs: kriszyp: so, do this: pull the latest npm from my repo, and then "npm link ." in that folder. then it should work. [19:36] isaacs: i want to get you up and working without pushing a new version for each bug. [19:37] dgathright_ has joined the channel [19:37] kriszyp: can I just do a make to pull the latest? [19:37] isaacs: it'll yell at you a little bit about storing your auth info in the clear in your npmrc, but that's not so bad. [19:38] derekcollison has joined the channel [19:40] kriszyp: isaacs: do I need to adduser again? [19:40] kriszyp: (and get deleted by you again) [19:41] isaacs: kriszyp: yeah, but hopefully you won't have to be deleted by me :) [19:41] kriszyp: well adduser fails because the username already exists [19:41] kriszyp: do you want me to make a different user name? [19:42] isaacs: hm, just a second. [19:42] isaacs: yeah, it would [19:42] isaacs: i'm finding something else with my fix, though [19:42] ShaunR has left the channel [19:46] loxs: as far as I remember there is some node.js extension to work with web sockets etc. it's called something like stream.io, but I can't find it [19:46] nefD: socket.io [19:46] jherdman has joined the channel [19:46] nefD: server: http://github.com/LearnBoost/Socket.IO-node [19:47] nefD: client: http://github.com/LearnBoost/Socket.IO [19:47] isaacs: kriszyp: ok, update npm, "make install" or "make link" and then try adduser and publish [19:47] loxs: yeah, thanks again nefD :) [19:47] nefD: no prob [19:47] aho has joined the channel [19:47] loxs: how performant is this? can it handle thousands of simultaneous connections? [19:48] isaacs: kriszyp: it should warn a little about not encrypting your password, but not fail completely [19:49] loxs: nefD, any ideas? [19:50] nefD: I honestly haven't done any testing nor read any conclusive benchmarks or reports to know [19:50] kriszyp: isaacs: not sure if it is really installing correctly, npm exec node "scripts/install-docs.js" [19:51] kriszyp: Error: Cannot find module './lib/utils/exec' [19:51] isaacs: wtf... i so fixed that already... [19:51] nefD: I would suspect it would perform better than, say, floating thousands of long polling requests, but its just a hunch, I could be completely wrong [19:51] kriszyp: is it pulling from your registry/repo? [19:51] kriszyp: overriding what I download from git? [19:51] isaacs: kriszyp: hm.... when you do make install or make link, it should install from the folder you're in right now [19:51] isaacs: ie, whatever you downloaded from git [19:53] kriszyp: but it is running deactivate from the prior version (0.1.8) I think [19:53] isaacs: ohhh... yeah, that's lame. [19:53] kriszyp: so deactivate is failing in the same way that activate was failing [19:53] isaacs: ew. [19:53] kriszyp: can I manually get rid of 0.1.8? [19:53] _ry: mdns is so cool [19:53] isaacs: rm /usr/local/lib/node/.npm/npm/active [19:53] _ry: i feel like pulling it into node-core [19:53] _ry: i just wonder how portable it is [19:53] joshbuddy has joined the channel [19:54] isaacs: kriszyp: i'm still sketching transactional behavior. [19:54] _ry: Like what if we just decide that node is going to be a native mdns client/server [19:54] _ry: that would be very interesting [19:54] isaacs: kriszyp: it's tricky to roll back stuff on the filesystem. [19:55] kriszyp: hah [19:55] kriszyp: I published! [19:55] isaacs: w000ttt!!!! [19:55] isaacs: yay!! [19:55] isaacs: http://registry.npmjs.org/nodules [19:56] isaacs: kriszyp: you should do this, now: npm tag nodules 0.1.0 stable [19:56] isaacs: kriszyp: i'm going to build auto-tag-on-publish behavior tonight to mirror the auto-activate-on-install behavior [19:56] isaacs: also, i want to automatically manage a "latest" tag on whatever the highest version is. [19:56] mikeal: one command that did a git tag, a tarball, published and tagged [19:57] mikeal: awesome [19:57] kriszyp: ok [19:57] isaacs: mikeal: yeah. git sugar would be nice, too [19:57] isaacs: mikeal: not super high priority, though [19:57] mikeal: i always forget to tag my code [19:57] isaacs: yeah, it's handy [19:58] isaacs: but since the publish can actually tar the current folder, it's as good as a tag. better, actually, since it can't be moved as eaisly. [19:58] isaacs: it's an actual snapshot [19:58] mikeal: i want git tags for other reasons [19:58] mikeal: not just for the generated tarball on github [20:02] _ry: isaacs: i tried to publish node_postgres [20:02] freshtonic has joined the channel [20:02] _ry: it failed [20:03] JimBastard_: try / catch is my new if statement [20:03] JimBastard_: lol fail [20:03] JimBastard_: nothing like rushing some last minute code [20:03] isaacs: _ry: you need a package.json [20:03] JimBastard_: who needs complex conditionals when you can just try / catch the whole block! i feel dirty [20:03] isaacs: _ry: i'll send you a patch if you feel like being lazy about it. [20:03] _ry: isaacs: [20:03] _ry: { "name" : "node_postgres" [20:03] _ry: , "version" : 0.0.1 [20:03] _ry: , "description" : "very basic libpg binding to node" [20:03] _ry: , "author": "Ryan Dahl" [20:03] _ry: } [20:04] _ry: oh my version [20:04] JimBastard_: aye [20:04] isaacs: yeah, it needs to be valid json, too :) [20:04] _ry: isaacs: so picky [20:04] isaacs: _ry: also, you should name a "main" module [20:05] _ry: isaacs: ? [20:05] isaacs: "name" : "postgres" , "main" : "./postgres", "scripts" : { "preinstall" : "node-waf configure build" } [20:05] _ry: npm ! Error: Cannot insert data into the registry without authorization and https [20:05] _ry: See: npm-adduser(1) [20:05] _ry: ? [20:05] isaacs: _ry: man npm-adduser [20:05] _ry: oh i see [20:05] _ry: :) [20:05] isaacs: you have to create an account [20:06] isaacs: so, it'd be better if the name of the package doesn't have "node_" in it. [20:06] _ry: cool it worked [20:06] isaacs: if you want to specify that, you could do "engines" :{ "node" : ">=0.1.90" } or something [20:07] isaacs: _ry: right, but without a main or libs, it doesn't actually install anything ;) [20:07] isaacs: ACTION really gotta write that "developer quickstart" doc... [20:08] _ry: isaacs: yeah the docs are pretty good - but i like to have a list of commands to get me started [20:08] kriszyp: I didn't have a libs, did I need one? [20:08] isaacs: _ry: exactly [20:08] _ry: isaacs: it's nice - everything is mostly working as expected :) [20:08] isaacs: kriszyp: the default is "lib" in the root [20:08] isaacs: kriszyp: just like packages/1.1 says :) [20:09] kriszyp: oh, ok [20:09] isaacs: kriszyp: your lib folder, btw, is accessible via require("nodules/foo") to pick up your lib/foo.js [20:09] kriszyp: oh really? nice [20:09] isaacs: kriszyp: or relative requires always work. [20:10] kriszyp: did npm add something to my require.paths? [20:10] kriszyp: to make that work? [20:10] isaacs: kriszyp: not permanently [20:11] isaacs: kriszyp: it puts symlinks in your .node_library (user) or lib/node (sudo) and creates shims for your main script. [20:11] isaacs: kriszyp: and creates shims for bins [20:11] TobiasFar has joined the channel [20:12] kriszyp: ah, ok [20:12] kriszyp: I like that [20:12] isaacs: you guys have made my day. this is awesome. but unless you guys feel like writing me a regular paycheck, i gotta do some work for kakai. [20:12] isaacs: :) [20:12] kriszyp: yeah, I need to do some work for my employer too [20:13] isaacs: thanks for uncovering bugs. [20:13] isaacs: this was really helpful [20:13] darkf has joined the channel [20:13] kriszyp: no [20:13] kriszyp: np [20:13] _ry: ACTION goes back to reviewing patches [20:14] sztanpet has joined the channel [20:16] iheartnodejs has joined the channel [20:18] micheil has joined the channel [20:18] iheartnodejs: i wish all terminals supported tweaking the colors' rgb values :( [20:19] isaacs: iheartnodejs: which terminals support that? i always have to use the \033[ crap [20:19] iheartnodejs: i dunno exactly, the ncurses docs just mention that though [20:20] maushu: _ry, how well does Script.runInNewContext handle servers/listeners? [20:21] derbumi has joined the channel [20:23] maushu: I need to stop and draw on paper with a pencil. I'm not going anywhere in front of the computer. [20:24] mscdex: luddite! [20:24] mscdex: :P [20:24] V1: Ooh Cappuccino launched a nice node based app: http://githubissues.heroku.com/ [20:24] scudco has left the channel [20:24] whoahbot has joined the channel [20:25] tlrobinson: V1: it's more of a cappuccino based app but it does use node to proxy the github api and serve static files: https://github.com/280north/GithubIssues/blob/master/Server/server.js [20:25] mcarter has joined the channel [20:25] maushu: Sweet. [20:25] maushu: ...and damn, it's very similar to the theme I wanted. [20:28] tlrobinson: oops the correct link to the node part is http://github.com/280north/Issues/blob/master/Server/server.js [20:29] V1: Yeah i already found it, but still it's a nice showcase app ;) for both technologies :) [20:30] tlrobinson: oh i should give pkrumins credit for that bit of proxy code [20:30] mattly has joined the channel [20:36] tmpvar has joined the channel [20:41] mape: http://githubissues.heroku.com/#280north/cappuccino [20:43] mape: http://cappuccino.org/discuss/2010/05/13/github-issues-cappuccino-app-desktop-and-web/ [20:43] mape: running on node :) [20:44] isaacs: holy moly! http://githubissues.heroku.com/#isaacs/npm [20:44] isaacs: this is nice! [20:44] mape: :) [20:45] V1 has left the channel [20:46] iheartnodejs: does V8 have a special date formatting method of some kind? [20:46] iheartnodejs: like PHP's strftime or something? [20:48] DracoBlue: has anybody expirience with mongodb? ;) [20:49] DracoBlue: I am a bit lost when it comes to creating objects with a given id [20:49] DracoBlue: and not autogenerating it. [20:52] tmpvar: iheartnodejs, php.js [20:52] mjr_: Ext did buy me a nice dinner, but this Capuccino thing is really neat. http://githubissues.heroku.com/#ry/node [20:52] iheartnodejs: yeah, but i was curious if something existed without creating a custom function [20:52] iheartnodejs: doesn't look like it though :/ [21:00] peutetre_ has joined the channel [21:07] dshaw has left the channel [21:07] derbumi has joined the channel [21:11] ewdafa_ has joined the channel [21:14] nefD: cappucino seems really cool, but i can't say I like the idea of using "Objective-J" [21:16] mikeal: mjr_: who wrote that? [21:17] tjholowaychuk: looks slick, kinda misewell just use github's though nearly identical functionality from what i see [21:17] joshbuddy has joined the channel [21:17] mape: mikeal: check the links i pasted [21:19] mikeal: who does the UI [21:19] mape: atlas280? [21:20] mape: eh, 280north, with atlas [21:20] mikeal: so, by default when you go to github and double click to highlight your api token and copy/paste it, you can't tell that it includes a bunch of leading white space [21:20] mikeal: it would be nice is that field just removed leading whitespace [21:20] mikeal: this is still loading :) [21:20] mikeal: are we breaking somebodies codes? [21:20] mape: works fine here [21:20] pquerna has joined the channel [21:21] mikeal: it works after i reloaded it [21:22] tlrobinson: i think we're being rate-limited by github. oops [21:23] tjholowaychuk has left the channel [21:24] JimBastard_: lol github rate limits [21:24] tjholowaychuk has joined the channel [21:25] tlrobinson: if you log in you won't be rate limited, i think [21:25] JimBastard_: i would think so [21:25] JimBastard_: im glad someone stepped up and made a better issues app for github [21:27] mikeal: scrolling is a little slow [21:27] mikeal: but this is damn pretty! [21:27] mape: scolling has the momentum thingy? [21:27] tjholowaychuk: what do you guys recommend for a database right now as far as node clients go, looking for stability mainly [21:28] iheartnodejs has joined the channel [21:30] mikeal: node-couchdb [21:30] paul__ has joined the channel [21:30] mscdex: hmmm [21:30] mikeal: is pretty stable [21:30] mikeal: felix wrote it and i'm actively using it [21:30] mikeal: i think we even use it in production [21:31] mape: anyone looked at http://labs.learnboost.com/mongoose/ ? [21:31] mikeal: that just posted today [21:31] tjholowaychuk: mikeal: I will check it out :D [21:31] mikeal: i know early on people had a really hard time with getting the normal C bindings to work for Mongo [21:31] mikeal: so someone wrote a pure TCP client [21:31] mikeal: i'm wondering which that mongoose stuff is written on [21:32] mikeal: also, mongoose isn't on github, which means I've forgotten how to use it [21:32] mape: native [21:32] mikeal: i'm confused by how to work with software that isn't on github :) [21:32] iheartnodejs: ha [21:32] mape: node-mongodb-native [21:32] mikeal: which one is that? [21:32] mikeal: cause native can mean two opposite things [21:32] mikeal: native mongodb, or native node.js :) [21:32] DracoBlue: native nodejs [21:33] mikeal: cool [21:33] DracoBlue: using the native one right now, works great ;) [21:33] mape: native js [21:33] mikeal: I like the idea of node native clients > C bindings [21:33] drostie has joined the channel [21:35] iheartnodejs has joined the channel [21:36] kkaefer: does anyone know of an imap client library written in javascript? [21:37] iheartnodejs has joined the channel [21:37] mscdex: blargh [21:37] nym: bleh [21:37] mde: I love people asking questios like that. A year and a half ago, the idea would have been absurd. [21:38] kkaefer: hehe :) [21:38] franksalim: i think a year and a half ago i had already seen one [21:41] kkaefer: franksalim: any idea where too look? [21:41] MattJ: kkaefer: I'm working on one [21:41] kkaefer: MattJ: awesome, is the source available in some ay? [21:41] kkaefer: way [21:41] MattJ: Not yet [21:41] iheartnodejs has joined the channel [21:41] kkaefer: MattJ: what are you planning on doing with it? [21:41] franksalim: kkaefer, i don't have a link handy. have you tried just googling around? [21:41] mscdex: yay [21:42] MattJ: It's early days, I've spent most of my time reading the specs so far [21:42] kkaefer: franksalim: yes, but mostly crap [21:42] kkaefer: MattJ: sure [21:42] MattJ: Trust me, I've looked around already... there's nothing usable [21:42] kkaefer: MattJ: are you just writing it as an exercise? [21:42] mscdex: woot! ctcp replies working [21:42] kkaefer: or do you plan something specific with it? [21:42] MattJ: kkaefer: No, I need a mail client :) [21:43] aryounce has joined the channel [21:44] kkaefer: MattJ: so you're thinking of a mail client that runs in the browser and "proxies" over node js? [21:45] kkaefer: or a cli client? [21:45] MattJ: Web [21:45] mscdex: an ncurses mail client! :D [21:45] kkaefer: MattJ: cool, I'm interested :) [21:45] MattJ: kkaefer: I'm not involving node at the moment (gasp) [21:45] MattJ: But that'll perhaps come later [21:46] MattJ: I already have my own server-side framework I could use, and it was quicker to use that for development than code something new [21:47] kkaefer: so why are you developing a javascript imap library? [21:47] MattJ: Because I still need the client side? :) [21:48] kkaefer: how are you dealing with cross domain issues? [21:48] DracoBlue: good night! [21:48] kkaefer: or are you planning on serving the web front end from the same domain? [21:48] MattJ: Same domain or CORS at the moment [21:49] MattJ: Perhaps websocket in the future when people have made up their mind how it's going to work :) [21:51] davidsklar has joined the channel [21:52] JimBastard_: hrmmmm [21:52] JimBastard_: two of the diaspora guys are watching hook.io [21:52] JimBastard_: i did meet these guys the other month and told them about how awesome hook.io waas [21:53] mape: diaspora will never go anywhere [21:53] JimBastard_: define anywhere [21:53] mape: 1% of facebook users [21:53] JimBastard_: maybe less [21:53] JimBastard_: but who cares [21:53] JimBastard_: if they got money and press [21:53] JimBastard_: ill take those things if they want to build software [21:53] mape: Sure, good for them, but some people think they actually will be competition to facebook [21:54] mape: Which is just comical [21:54] JimBastard_: id be surprised if they actually launched working software [21:54] JimBastard_: i met the dudes [21:54] JimBastard_: they are not developers [21:54] JimBastard_: not even close [21:54] mscdex: :S [21:54] mape: Aren't they kids? [21:54] JimBastard_: i was at the NYU hackathon [21:54] JimBastard_: yeah [21:54] kkaefer: plus, one of the guy is called salzberg :D [21:54] JimBastard_: but then again, i talked to like 80+ students [21:54] JimBastard_: and didnt find one good developer [21:54] MattJ: mape: and being kids means what exactly? :) [21:55] mscdex: heh [21:55] mape: MattJ: No experience in releasing a product [21:55] mape: In this case :P [21:55] JimBastard_: shit, i consider myself a bad developer [21:55] JimBastard_: but i have experience [21:55] JimBastard_: yeah [21:55] MattJ: So people with no experience in releasing a product can't release a product? :) [21:55] JimBastard_: if you read their dev "sprints" you'll see [21:55] JimBastard_: i think iteration two says [21:55] JimBastard_: "implement UDP support" [21:55] JimBastard_: "add VOIP support" [21:55] mape: Not one that rivals facebook in any serious way [21:56] mape: The other thing is why would they need the cash at all, sure it makes it easier but not like throwing money at it will make it a sure thing [21:56] JimBastard_: facebook won the web identity monopoly as far as im concerned [21:56] MattJ: I don't think they'll get far either, but not for the same reasons - I have my expectations pinned on other similar efforts [21:56] JimBastard_: facebook owns web identity for at least another 4-5 years [21:56] JimBastard_: if not longer [21:56] mape: If only facebook could use oauth [21:57] JimBastard_: give it time [21:57] JimBastard_: the new web is all about [21:57] JimBastard_: identity, content, distribution [21:57] mscdex: if only facebook wouldn't pull ridiculous privacy violating stunts ;-) [21:57] JimBastard_: identity facebook is winning on [21:57] mape: have the diaspora guys done anything before? [21:57] JimBastard_: nope [21:57] mape: Nothing whatsoever? [21:58] JimBastard_: when i met them they had just heard of mongo for the first time [21:58] JimBastard_: and OODBMS [21:58] mape: :/ [21:58] JimBastard_: i was looking for people to help with opensource [21:58] JimBastard_: and i dismissed them after 5 minutes or so lol [21:58] mscdex: well, i didn't hear about mongo until not long ago either heh [21:58] mape: How did they manage to get the cash? Just random luck? [21:58] MattJ: kkaefer: Do you have a JID? [21:58] JimBastard_: mape - right place, right time, right press [21:58] JimBastard_: for sure [21:58] kkaefer: kkaefer@gmail.com [21:58] MattJ: Thanks, adding you if you don't mind [21:58] kkaefer: sure [21:58] JimBastard_: but they got the money and traction now [21:58] JimBastard_: thats a huge step [21:59] JimBastard_: id be willing to help them out [21:59] mape: Just seems strange they have no experience, have nothing to show, and just said we are building the good facebook. [21:59] mape: And people throw cash at it, I should try that. [21:59] JimBastard_: even better [21:59] JimBastard_: you should crunch the math on what they have promised [21:59] JimBastard_: they are gonna lose a shit ton of money to swag [21:59] JimBastard_: tshirts, mugs, stickers [21:59] JimBastard_: lol [21:59] mape: diaspora is lovingly made by:Daniel Grippi Maxwell Salzberg Raphael Sofaer Ilya Zhitomirskiy [22:00] mape: They haven't made anything yet? [22:00] mscdex: i doubt it. it was just mentioned not long ago [22:00] mape: Get everything above, plus we will send you a brand new computer fully configured so you can host your own Diaspora seed from right under your bed! [22:00] JimBastard_: nope [22:00] JimBastard_: nothing [22:00] mape: some janky atom server to put in your closet? [22:00] JimBastard_: if anything [22:00] JimBastard_: there is money to be made on the hardware [22:00] JimBastard_: make a cheap diapsora boxen [22:00] JimBastard_: lol [22:01] JimBastard_: but yeah [22:01] JimBastard_: i mean [22:01] JimBastard_: they have no experience, UI is soo important for this stuff [22:01] JimBastard_: UX [22:01] TobiasFar has joined the channel [22:01] mape: Guess some firm might step in to get press [22:01] JimBastard_: even if they can make something that works, it has to have good UX or people wont use it [22:01] mscdex: sux :P [22:01] JimBastard_: i think so mape [22:01] JimBastard_: they gonna get funded from a VC [22:01] JimBastard_: they made it on techcrunch [22:01] JimBastard_: thats like instant funding [22:03] mape: tell them to build it on node, then ry could sifon off some cash for the core project [22:03] JimBastard_: it looks like they are trying to decide between node and event machine [22:03] JimBastard_: if i was a business advisor i would probaly tell them to use ruby [22:03] JimBastard_: since they are all noobs [22:03] inimino: heh [22:03] JimBastard_: but if i was me, id tell them to use node and pay me money to finish hook.io [22:03] mscdex: node ftw! [22:04] JimBastard_: caus they need the pub sub and 3rd party api integration really badly [22:04] mape: JimBastard_: they should probly download some open source facebook clone to start with ;) [22:04] JimBastard_: probaly not [22:04] inimino: heh [22:04] JimBastard_: i would think a p2p app [22:04] JimBastard_: brb [22:04] mape: "Get all of the above stuff, plus access to the nightly build server for Diaspora, so you can check out our progress all summer!" [22:04] mape: isn't it suppose to be open source? [22:05] JimBastard_: lol [22:05] JimBastard_: nightlies != releases [22:05] JimBastard_: i guess [22:05] JimBastard_: ahaha [22:05] JimBastard_: thats crazy talk [22:05] JimBastard_: you can see why i didnt donate [22:05] mape: " but coders like us can never just talk-so we started building." [22:06] mape: But what?! Show some code :( [22:06] JimBastard_: dude [22:06] JimBastard_: you havent seen the repo? [22:06] JimBastard_: they built the website already [22:06] mape: what repo? [22:06] inimino: hm, ok [22:06] mscdex: heh [22:06] keyvan has joined the channel [22:06] JimBastard_: its the output from jekkly [22:06] JimBastard_: lol [22:06] JimBastard_: jeklyy [22:06] JimBastard_: whatever [22:07] inimino: "Right now, for the Diaspora team, we have to finish school/graduate. Then, we are going to spend a week or two getting ready for three months of intense coding." [22:07] mape: :D [22:07] inimino: so it sounds like there is not going to be a product that comes out of this [22:07] mape: And when we are done we are going to spring break [22:07] mjijackson: $80,000 for vaporware is not bad though [22:07] mape: Then we are building a google alternative [22:07] mape: mikeal: 80 ? They have 100 [22:07] mape: $115,077 [22:07] mape: rather [22:08] mscdex: how many cents? [22:08] mscdex: :P [22:08] mape: 2 [22:08] mjijackson: mape: oh. =D wow. last time i checked was a few days ago i think [22:08] mape: but they don't count [22:08] mape: Not sure what pledged means though [22:08] JimBastard_: 100k [22:08] mscdex: oh come on, let them get their 2 cents worth in :D [22:08] JimBastard_: they passed 100k [22:08] mape: if it is money in the bank or "I want to give this" [22:08] mjijackson: hey, i'd lie and tell you i'm going to do a way cooler facebook if you'd give me 115 G's [22:09] mape: I actually saw a rather neat thing on twitter, might have been someone in here that said it [22:09] JimBastard_: money in the bank, minus 5% [22:09] mjijackson: mape: they get the money when the money raising time is up [22:09] mape: What if you were to build a greasemonkey-script or a plugin for the browser that does end to end encryption [22:09] mape: So facebook stores all the data but they can't use it [22:10] mape: And when i become friends with someone we exchange keys [22:10] inimino: wow, anybody watch their video? [22:10] mape: inimino: Totally formal.. :P [22:11] inimino: heh [22:11] mape: The cuts are awsome [22:11] inimino: yeah [22:11] captain_morgan has joined the channel [22:12] mape: So.. I have sensitive stuff I only want to share with my 4 friends, but they are using another node [22:12] mape: Just means a lot of man in the middle issues [22:12] mape: If they are suppose to connect and share data [22:12] JimBastard_: yeah that was my point [22:12] JimBastard_: its a basic problem of trust based networks [22:12] mape: Hmm their video really doesn't say anything.. [22:12] JimBastard_: github is a trust based network [22:13] JimBastard_: but once you remove trust, thats it [22:13] inimino: hm... well those problems can be solved in PKI [22:13] JimBastard_: they have a fork but its old [22:13] mape: But github is open, for the most part [22:13] JimBastard_: in social networking, once your contact information is out, its gone [22:13] JimBastard_: yes [22:13] JimBastard_: exactly [22:13] inimino: but... people have been working on web-of-trust issues for a long time now [22:13] JimBastard_: unless you change your address and get a facelift [22:13] JimBastard_: your info is in the cloud [22:13] inimino: it's not like any of these ideas are new [22:13] mape: "your node is going to be secure by default".. ok? [22:13] inimino: but they got 100k in a week [22:13] JimBastard_: also think about 95% of the world [22:14] JimBastard_: 1. they dont care that the cia knows they like family guy [22:14] mape: "it will always be encrypted, super transperant" [22:14] JimBastard_: 2. they have no desire or ability to setup a custom software package [22:14] inimino: well, the guy in the video did say "encryption ...really strong encryption" so that's a comfort [22:14] mape: I love this video :D [22:14] JimBastard_: 3. none of their friends will be using the service [22:14] mape: inimino: well no reason it shouldnt be encrypted! [22:14] peutetre has joined the channel [22:15] mape: Why us? We are ready to work full time! [22:15] inimino: and no reason the encryption shouldn't be strong, right? [22:15] mape: After we finish school [22:15] inimino: "we are ready to give up, like, three months of our lives" [22:15] mape: inimino: Well strong encryption costs more, but they have the money now so it is cool [22:15] JimBastard_: i only use caesarean cyphers [22:15] mape: like twice as much for the strong encryption [22:15] mape: rot13 is cheap though [22:15] inimino: hehe [22:16] JimBastard_: wow 115k [22:16] JimBastard_: they might get to 150 [22:16] JimBastard_: im thinking about using http://www.kickstarter.com/ to fund the zztmmo [22:16] inimino: ok, so my take on this is... [22:16] mscdex: hehe [22:16] JimBastard_: but like i would hate to get a few K and then be stuck having to actually build something [22:16] mape: haha they totally just said that [22:16] mape: "give up 3 months of our lives" [22:16] mape: Have they ever had jobs? [22:17] ctp has joined the channel [22:17] inimino: two of them had internships? [22:17] foucist has joined the channel [22:17] mape: sweet internships! [22:17] isaacs_mobile has joined the channel [22:17] mape: so that is even more of a sacrifice [22:18] mape: Like the ultimate one [22:18] inimino: well, Facebook has enough users, and maybe enough of those users are disaffected or worried about security [22:18] gwoo has joined the channel [22:19] inimino: ... so if you write some nice not-too-technical copy about how you can solve everyone's social networking needs with decentralized vaporware, you can get people to fund it [22:19] inimino: is that the lesson here? [22:20] JimBastard_: i know what the lesson is [22:21] JimBastard_: publicity and timing is always more important then technical ability and reason [22:21] JimBastard_: (when it comes to starting companies) [22:21] JimBastard_: facebook isnt going anywhere [22:21] inimino: perception is reality? :) [22:21] JimBastard_: yep [22:21] JimBastard_: exactly [22:21] JimBastard_: i mean, i can get more watchers on a github repo with just a ReadMe file then most people can get with a perfectly valid working project [22:22] ctp has joined the channel [22:22] JimBastard_: thats a microscopic example though [22:23] mape: are you open sourcing brood? [22:23] airportyh has joined the channel [22:25] JimBastard_: mape - for sure [22:25] JimBastard_: my business partner just finished his semester at columbia, hes getting his masters [22:25] JimBastard_: and he quit his job [22:25] mape: hehe k, otherwise it is a real douch move to add it to github [22:25] JimBastard_: so we are going to be working on releasing nodejitsu soon [22:26] inimino: what's that? [22:26] JimBastard_: broodmother is gonna be a single machine app at first [22:26] inimino: "We already have a rudimentary prototype of Diaspora running on our machines, and are working like mad to make it all we can be. Our current implementations include GPG encryption, scraping Twitter and Flickr, awesome design aesthetics, and the initial stages of connection infrastructure (“friending” other Diaspora instances)." [22:26] mape: http://www.youtube.com/user/mbs348#p/a/u/2/9tuuiPHyc8I [22:26] JimBastard_: inimino: did you not see any of this? [22:26] inimino: so I guess they do have some code, but they aren't ready to share it [22:26] mape: hmm how does that presentation make sence? [22:26] JimBastard_: i have a automatic node.js app deployer [22:26] JimBastard_: like heroku [22:26] inimino: JimBastard_: I saw you talk about broodmother here, I don't remember nodejitsu [22:27] JimBastard_: http://zzt.nodejitsu.com/ [22:27] JimBastard_: http://chat.nodejitsu.com [22:27] mape: he states that dis**** is like a p2p info sharing? So you still use facebook dis*** just shares the info? [22:27] JimBastard_: those apps were deployed via a github url [22:27] JimBastard_: in our hive config [22:27] JimBastard_: which is fileWatched [22:27] JimBastard_: so its already up and working [22:27] JimBastard_: whats the point in building an automatic app deployer / load balancer / reverse proxy if you arent starting a hosting company [22:27] JimBastard_: :-D [22:27] inimino: oh, yeah, I saw that game [22:27] inimino: hehe [22:27] JimBastard_: i gotta go though, its NYC.js [22:28] mape: aren't there like 10 people starting a hosting comapany for node? [22:28] MattJ: Contest! [22:28] JimBastard_: as far as i know aside from heroku im the only one [22:28] mape: maushu ? [22:28] JimBastard_: that is real [22:28] mape: from what I gathered [22:28] JimBastard_: there is ellusive hippo, but there is nothing there [22:28] JimBastard_: ive done my research [22:28] maushu: mape, yes. BUT MINE WILL BE BETTER! [22:28] JimBastard_: aight i gotta go talk to NYC.js [22:28] JimBastard_: tmpvar too [22:28] trochala has joined the channel [22:28] JimBastard_: peace [22:29] mape: JimBastard_: VIDEO! [22:29] JimBastard_: sup mape [22:29] mape: well, yeah, capture video [22:29] JimBastard_: i gotta go [22:29] mape: later [22:29] inimino: later [22:29] mape: maushu: that is what all say :) [22:30] maushu: mape, yeah, BUT I SAY IT BETTER! [22:30] mape: the hosting is a lie [22:30] dandean has joined the channel [22:30] maushu: <- optimistic. [22:30] mape: <- pragmatic [22:32] mscdex: that maxwell guy has an uncanny resemblance to a guy i had some classes with in college [22:32] mscdex: even sounds like him [22:32] mscdex: heh [22:34] teemow has left the channel [22:35] maushu: "Later on mscdex notices that maxwell *IS* the guy he had classes with." [22:35] mscdex: hehe [22:36] mscdex: i don't know if he majored in CS though or not [22:37] airportyh has joined the channel [22:39] inimino: ctp: oh, right, welcome [22:39] ctp: inimino: hehe [22:39] inimino: node ftw :) [22:40] tylerstalder has joined the channel [22:46] BryanWB has joined the channel [22:46] towski has joined the channel [22:48] BryanWB: isaacs: have might npm work w/ virtual environments like narwhal's seas or python's virtualenv? [22:49] isaacs: BryanWB: npm isn't a virtual env tool. but if you use nvm, and then use npm with sudo, it'll use the current active node version's lib/node to install stuff. [22:50] BryanWB: isaacs: i figured that, as they are separate tools in narwhal and python, but curious about how to do it [22:50] BryanWB: will check out nvm [22:50] isaacs: BryanWB: well, narwhal actually spawns another shell for each sea, doesn't it? [22:50] BryanWB: isaacs: yup [22:51] BryanWB: isaacs: i really like seas but they don't have npm's wonderfully simple mechanism for activating versions [22:51] isaacs: aw, thanks <3 [22:51] isaacs: it'd be rad if nvm could work like sea [22:51] mape: isaacs: have you looked at homebrew? [22:51] isaacs: mape: yeah. it's been an inspiration. [22:51] mape: nice :) [22:51] isaacs: mape: but really, yinst is the best package manager EVER. [22:52] isaacs: homebrew is like a schoolyard sandcastle next to yinst's intergalactic spaceship. [22:52] BryanWB: isaacs: do u have a todo list for npm somewhere? i want to play w/ npm next week, and a todo list would give me some useful targets [22:52] mape: hehe [22:52] isaacs: BryanWB: http://github.com/isaacs/npm/issues [22:53] isaacs: BryanWB: i should have some helpful docs for you by then. [22:53] isaacs: (more of them, that is) [22:53] hassox has joined the channel [22:53] BryanWB: isaacs: cool, tks [22:53] mape: isaacs: regarding a frontend for the npm page, what did you have in mind? [22:54] isaacs: mape: i'm thinking just an enhancement to the existing couchapp that sniffs the Accept: header and returns html if it doesn't accept application/json [22:54] isaacs: as far as what the html looks like, meh. whatever. simple is good. and i like pretty things. [22:54] paul__ has joined the channel [22:54] mape: hehe k [22:54] isaacs: but even boring vanilla html would be better than returning json [22:55] isaacs: simple > pretty [22:55] BryanWB: yeah, packages.debian.org is ugly but soo useful [22:55] isaacs: sure [22:56] isaacs: but it should be somewhat relative to the currently small size of the package list. [22:56] isaacs: packages.debian.org would look pretty pitiful if it didn't have gillions of packages. [22:57] mape: kinds suprises me the lack of frontend people in the node community as it seems [22:57] inimino: ...the first rule of categorization is not to create categories until you have things that need to go in them [22:58] mscdex: tags! [22:58] mape: :S [22:58] isaacs: inimino: sometimes the vacuum created by empty categories can motivate people to create things. [22:58] MattJ: tag *cloud*! [22:58] mape: tags are categories decided by crazy people [22:58] isaacs: mape: yeah, it'd be cool to use the keywords on packages. [22:58] mscdex: ;) [22:58] isaacs: mape: but even if it just had an html representation of what the json shows today, that'd be cool [22:59] mape: I'll try to get something done tommorow, just need to poke some on the irc social graph thingy first [22:59] mscdex: hmm [23:01] mjijackson: man, the raphael code is not very readable [23:02] mscdex: is there an api for retrieving a list of packages and optionally extra details about a specific package? [23:02] mscdex: or even better, a query that includes the specific data to return for each package? [23:02] mscdex: :) [23:04] isaacs: mscdex: for npm? [23:04] mscdex: yeah [23:04] isaacs: mscdex: http://registry.npmjs.org/ gives you info about all the packages. [23:04] isaacs: http://registry.npmjs.org/abbrev/ gives you info about the "abbrev" package [23:04] isaacs: http://registry.npmjs.org/abbrev/1.0.1 gives you info about version 1.0.1 of the abbrev package [23:05] isaacs: http://registry.npmjs.org/abbrev/stable/ gives you info about the version of abbrev tagged as "stable" [23:05] mjr_: mscdex: how is the ncurses thing coming? [23:05] isaacs: mscdex: it's a really simple api, actually [23:06] mscdex: mjr_: it's pretty much done... but i'm thinking about removing the built-in line buffer in the binding [23:07] mscdex: mjr_: i still need to write documentation and stuff though, but there is an irc client example that comes with the binding [23:07] mjr_: awesome [23:07] keturn_ has joined the channel [23:07] mjr_: It looks like I'm going to be able to spend more time working on pcap bindings. [23:07] mjr_: Which I want to combine with ncurses to do some cool realtime network monitoring. [23:09] keturn_: blarg. I figured this out once and now I lost it. Where do I put things in the filesystem (like express) so node can actually find them? [23:09] mape: http://fastdesign7.com/ [23:09] mape: OH GOD JESUS [23:09] isaacs: mape, that's awesome. [23:09] isaacs: yeah, something like that. [23:09] mscdex: heh [23:09] isaacs: just, with packages instead of blinking gifs. [23:09] mape: hehe [23:09] isaacs: also, not stabbing me in the eyes. [23:10] JimBastard_ has joined the channel [23:10] mjr_: mape: thanks for putting everything in perspective with that link. [23:11] mape: :) [23:13] quirkey has joined the channel [23:14] JimBastard_: reporting live from NYC.js [23:14] JimBastard_: tmpvar on deck [23:14] mape: video? [23:14] JimBastard_: http://jsdom.org [23:14] JimBastard_: no vidya sorry [23:14] gf3 has joined the channel [23:15] mape: need a better htmlparser :( [23:15] keyvan has joined the channel [23:16] JimBastard_: word [23:16] isaacs: mape: I think Aria's working on one. http://github.com/aredridel/html5/ [23:17] mape: then we need jsdom working with that one.. ;) [23:17] isaacs: yep [23:17] captain_morgan has joined the channel [23:18] mape: should be able to fetch the top 100 websites on the net without the parser breaking [23:18] mape: *hopes* [23:22] quirkey has joined the channel [23:27] _ry: mape: that'd be a good test [23:28] mape: yeah just testing real life sites [23:30] derRichard: does node have something like a barrier? i'm looking for something which blocks until some other functions are done. step and flow-js are quite useful but not 100% what i need. [23:31] mape: what is it that step doesn't do with that? [23:32] Phazm has joined the channel [23:32] derRichard: when i wait for foo() and bar() i've to write everything into Step(...). [23:32] kriszyp_afk has joined the channel [23:32] harryv has joined the channel [23:33] mape: eh [23:33] derRichard: when the program is quite long this sucks [23:33] mape: k [23:35] stepheneb has joined the channel [23:35] CIA-74: node: 03Elijah Insua 07master * r9769263 10/ (lib/fs.js test/simple/test-fs-readfile-empty.js): Handle empty files with fs.readFile - http://bit.ly/9yKbgY [23:35] CIA-74: node: 03Ryan Dahl 07master * rce2d5ad 10/ Makefile : Change the 'make dist' to remove v8 test dir - http://bit.ly/dAaUNS [23:35] CIA-74: node: 03Ryan Dahl 07master * r23d680b 10/ (Makefile wscript): [23:35] CIA-74: node: Allow parallel jobs to be passed to V8 build [23:35] CIA-74: node: e.g. JOBS=2 make - http://bit.ly/9Zv4P0 [23:35] CIA-74: node: 03Ryan Dahl 07master * r0914d33 10/ (AUTHORS ChangeLog doc/api_header.html doc/index.html wscript): bump version - http://bit.ly/d6gZxG [23:35] derRichard: as far as i understood v8/node, such a barrier is not possible. but maybe i'm wrong :-) [23:35] _ry: derRichard: no [23:36] _ry: derRichard: there is a bit of sync file API [23:37] derRichard: yeah, but while read() or write() blocks node can do nothing else, right? [23:38] isaacs: _ry: hey, neat! [23:39] WALoeIII has joined the channel [23:39] _ry: isaacs: jobs? [23:39] isaacs: _ry: is that the remote build thing? [23:39] isaacs: _ry: or just using all my cores to build v8? [23:40] _ry: just will use more cores - basically run gcc commands in parallel instead of sequentially [23:40] isaacs: i see [23:40] isaacs: still neat :) [23:40] isaacs: not AS neat, perhaps [23:40] foucist: isaacs: yinst? not seeing anything on google except something old from 2004 ? [23:40] isaacs: foucist: it's a yahoo thing. [23:41] isaacs: foucist: if they ever open source it, i'll throw a huge party. [23:42] isaacs: foucist: if you've ever wished that a package manager could do something, chances are it's in yinst, and it's simple, and it works well. the whole thing is like one perl script. [23:42] mape: one big regex? [23:43] inimino: heh [23:43] isaacs: (well, one perl script that's built out of a bunch of perl scripts, and a network of distribution servers, and a yinst_create program, and a lot of good conventions) [23:43] isaacs: mape: yeah! [23:43] isaacs: mape: one regexp, it compiles your whole program, publishes it, whatever you want. [23:43] mape: regex, white space and black magic [23:43] isaacs: no, seriously, it's some of the most beautiful perl i've ever seen. [23:44] isaacs: very organized and tidy. [23:44] mape: still have it? [23:44] mape: (Leak!) [23:44] isaacs: mape: no, it doesn't do much without its dist network, and most of its packages only work on yahoo-blessed linux or bsd [23:45] mape: k [23:45] isaacs: but i took a lot of ideas out of it! [23:46] foucist: isaacs: and put the ideas whre? :P [23:46] mape: npm? [23:47] isaacs: foucist: a lot of design decisions on npm have come from yinst experience, yes. [23:47] isaacs: i've been thinking for a long time about what package managers should do, how they should work, etc. npm isn't there yet, not by a long shot. [23:48] isaacs: and the fact that commonjs modules are atomic and require.paths is mutable, means that npm can do a lot of things and solve a lot of problems that yinst never could. [23:48] isaacs: like handling dependency conflicts. [23:49] mjr_: _ry: JOBS=4 builds V8 WAY faster now, thanks. [23:50] keyvan has joined the channel [23:52] mjijackson: does anyone know what the "header_field" and "header_value" events got replaced with in http.js? [23:52] _ry: mjijackson: headerField and headerValue, probably [23:52] _ry: mjijackson: but that happened a while ago [23:53] mjijackson: _ry: i'm reading through the README for http-parser, and it pointed me to a certain commit http://github.com/ry/node/blob/842eaf446d2fdcb33b296c67c911c32a0dabc747/src/http.js#L284 [23:53] mjijackson: can't figure out how to do this nowadays in node [23:53] _ry: mjijackson: ah yeah - [23:54] _ry: that link should be updated [23:54] _ry: july 24, 2009 [23:54] _ry: very old. [23:54] mjijackson: especially in node time. :) [23:54] isaacs: it's probably better to link to the documentation [23:55] _ry: well - that link was about showing the logic of how to accumulate headers [23:55] _ry: which that still shows [23:56] derRichard: gn8 [23:57] CIA-74: node: 03Jérémy Lal 07master * r4e40e88 10/ src/node.cc : System EV compatibility fix : use EV_DEFAULT_UC - http://bit.ly/bhLhJf [23:57] _ry: derRichard: read, write don't block [23:57] derRichard: _ry: okay bad example. i meant a systemcall that blocks [23:58] ssteinerX has joined the channel [23:58] inimino: mjijackson: I saw you are working on parser generators in Ruby [23:58] _ry: derRichard: i'm very careful not to synchronously call any blocking syscalls [23:58] mjijackson: _ry: i don't understand. what happened to the events? [23:59] _ry: mjijackson: http://github.com/ry/node/blob/4e40e8804b831ac0b0ba87e145060b084b980263/lib/http.js#L38 [23:59] derRichard: _ry: in my case i've used a pthread_mutex to build a barrier. but when node blocks on the mutex, everything blocks. [23:59] mjijackson: inimino: yup.