[00:00] agilandfast: Ha ok, got ir [00:00] agilandfast: It [00:00] isaacs: before i got hooked up with that deal, though, it was running me about $40/mo or so on rackspacecloud [00:00] isaacs: mostly due to bandwidth [00:00] rauchg_: isaacs: are you on cloudant ? [00:00] agilandfast: Are you thinking in doing a rubygems org like site? [00:01] isaacs: rauchg_: no, i'm on couchone [00:01] isaacs: npm's registry = isaacs.couchone.com [00:01] rauchg_: k [00:01] isaacs: npm's registry = isaacs.couchone.com/jsregistry [00:03] agilandfast: isaacs: Rubygems org site? [00:03] isaacs: agilandfast: i'd rather other people do that. [00:03] isaacs: agilandfast: qv: http://nodul.es and http://npm.mape.me [00:04] MikhX has joined the channel [00:04] agilandfast: Do they do that? Im on the iPhone, cant checo [00:04] isaacs: agilandfast: the data is in http://isaacs.couchone.com/jsregistry, so you can totally replicate it, do whatever. when someone kinda takes off, i'm sure we'll have no problem throwing some weight behind it [00:04] isaacs: agilandfast: it's not cpants. but it's pretty slick, yeah. [00:04] agilandfast: Ok! [00:05] isaacs: wow, someone just published a package called "test" [00:05] isaacs: how many times do you think that'll be installed by accident? [00:05] rauchg_: ACTION runs npm install test [00:06] halfhalo: lol [00:06] isaacs: haha, it has a test script, too, so you can do "npm test test" [00:06] isaacs: quick, someone write one called "install" [00:06] isaacs: npm install install [00:06] halfhalo: ACTION would put his irc bot but he thinks no-one would use it [00:06] rkieffer has joined the channel [00:06] halfhalo: ACTION goes to write one called makemeasamich [00:07] isaacs: halfhalo: that better do something useful. [00:07] agilandfast has joined the channel [00:07] halfhalo: it makes you a virtual samich! [00:07] isaacs: halfhalo: some ideas: location aware food searching, or ascii art sandwiches [00:07] rsobers has joined the channel [00:07] halfhalo: ascii art ftw [00:08] isaacs: halfhalo: if somehow that package leads to me having an actual physical sandwich, you will win 9000 internets. [00:08] isaacs: halfhalo: could be a recipe searching thing [00:08] Blackguard has joined the channel [00:08] halfhalo: ACTION will work on is right after he makes a plugin to talk to the npm repo via irc [00:08] agilandfast: isaacs: What do yoy think that is missing in the node community that could be helpful? [00:09] isaacs: halfhalo: if you're familiar with the _changes feed in couchdb, it's pretty powerful. [00:09] isaacs: halfhalo: there are a lot of resources out there, and helpful folks usually in #couchdb, though they're all busy gettingdrunk in germany atm [00:09] niemeyer has joined the channel [00:09] halfhalo: heh, but before I do that, I have to finish the db plugin, the auth plugin, and the palm-feeds plugin [00:10] halfhalo: but I DID finish the hello world plugin! [00:10] halfhalo: nodelog: hello! [00:10] isaacs: agilandfast: rails. [00:10] mw_ has joined the channel [00:10] agilandfast: Geddy? [00:10] isaacs: agilandfast: nah, geddy's not quite aimed at the rails use case. [00:11] kschzt: why is this channel still based on rails? [00:11] isaacs: i mean, you've got likea million people still using php because, for basic crud type things, nothing is anywhere near as good. [00:11] agilandfast: Really? I thought it was [00:11] agilandfast: Whats the rails case? [00:11] isaacs: rails is nicer to use for crud apps than anything else in ruby (/me ducks) [00:11] halfhalo: yup [00:11] isaacs: agilandfast: everything 37signals does [00:11] isaacs: i mean, realy, if highrise is your nail, rails is your hammer. [00:11] isaacs: that's what rails is for. [00:12] isaacs: the fact that so many peopl euse it for everything under the sun is really not DHH's fault, imo [00:12] isaacs: but, that use case is kinda painful in node. [00:12] isaacs: express is a good start. but it's still not quite trivial enough. [00:12] kschzt: you don't render stuff in a 1 thread node [00:12] agilandfast: And isnt geddy that? [00:13] isaacs: geddy is sort of that. but geddy is more targeted at two-sided client-and-server apps where you have modules that run on either side and talk to each other and stuff. [00:13] isaacs: more myyahoo, less wordpress.com [00:13] kschzt: but node is superb for async message passing [00:14] isaacs: like, you should be able to have something where you define some data schemas, drop some controllers here and there, a few pretty template things in ejs or jade or something, and it all Just Works. [00:14] isaacs: and is fast [00:14] agilandfast: Ok [00:14] agilandfast: I really thought geddy did that [00:14] agilandfast: My mistake [00:14] nodejs-log has joined the channel [00:14] isaacs: it kind of does. but like i said, it's about targetting specific use cases. [00:15] isaacs: it's ok for that thing to suck for anything outside the basic crud use case, because that use case is about 80% of web sites. [00:15] halfhalo: jesus that took a long time to do..... [00:15] halfhalo: nodejs-log: hello [00:15] nodejs-log: Hello halfhalo! [00:15] isaacs: ircretary: tell nodejs-log hello [00:15] ircretary: isaacs: I'll be sure to tell nodejs-log [00:15] agilandfast: Ok. So you mean a Framework to create crud apps in an instant [00:16] kschzt: my use case is socket.io + node-amqp frontends; then backend instances working on tasks [00:16] halfhalo: lol [00:16] isaacs: halfhalo: wanna see something funny? have nodejs-log leave and come back [00:16] isaacs: agilandfast: yeah. easily [00:16] halfhalo: I can't.... well, not easily [00:16] isaacs: hehe [00:16] agilandfast: Ok! Ty [00:16] hannesw has joined the channel [00:16] halfhalo: ACTION sorta hasn't written the enterchannel or leave channel functions yet [00:16] isaacs: agilandfast: building on top of express is probably a good idea. [00:17] isaacs: agilandfast: could probably even just be an express helper doohickey [00:17] kschzt: I mean this: http://blog.rocketpack.fi/2010/09/17/rocket-engine-networking/ (commercial promo) [00:17] agilandfast: Like padrino [00:17] halfhalo: ACTION also has it running through a bouncer so it doesn't die [00:17] isaacs: agilandfast: maybe just a set of conventions, and a builder script to wire it together [00:17] isaacs: halfhalo: i see [00:18] mjr_ has joined the channel [00:18] isaacs: halfhalo: i think, if it were to leave and come back, we'd have an infinite hello-circuit on our hands. [00:18] isaacs: halfhalo: oh, wait, no... [00:18] isaacs: ircretary doesnt' actually send the message, she just says "i have messages for you" [00:18] ircretary has joined the channel [00:18] isaacs: whoops! [00:18] isaacs: hehe [00:18] isaacs: ircretary: you ok? [00:18] ircretary: isaacs: I'm not sure what to do with that command. Ask for help in PM and I'll tell you what I can do. [00:19] isaacs: she's kinda dumb. [00:19] halfhalo: lol [00:19] halfhalo: so is mine [00:19] halfhalo: It has a total of... two routes. well three [00:19] halfhalo: it knows hello, hello :name, and modules [00:19] jacquesc has joined the channel [00:20] halfhalo: but writing plugins for it is REALLY easy [00:22] halfhalo: example plugin: http://github.com/halfhalo/Node.js-IRC/blob/master/plugins/vendor/hello-world.js [00:23] kschzt: have fun in germany yawl :) [00:27] jspiros has joined the channel [00:28] banjiewen_ has joined the channel [00:31] aubergine has joined the channel [00:35] paulwe has joined the channel [00:35] CrabDude has joined the channel [00:35] sprout has joined the channel [00:35] jacquesc has left the channel [00:36] tapwater has joined the channel [00:36] [[zz]] has joined the channel [00:42] hassox has joined the channel [00:45] admc has joined the channel [00:45] admc_ has joined the channel [00:45] sprout has joined the channel [00:51] nroot7 has joined the channel [00:52] Duncan_ has joined the channel [00:52] Tim_Smart: mjr_: http://github.com/Tim-Smart/node_redis/compare/multi-array-args [00:53] mjr_: oh, good catch [00:57] mjr_: Hey, it looks like this redis client used our special performance techniques [00:57] mjr_: http://github.com/bnoguchi/redis-node/blob/master/lib/client.js#L39 [00:58] mjr_: including your toArray() [01:00] eazyigz has joined the channel [01:00] jakehow has joined the channel [01:04] saikat: what is the current state of SSL in node? I remember seeing a lot of threads about issues with it in the past, but i don't see much recently [01:05] mjr_: saikat: as far as I know, the state is: often works, but has a lot of bugs. [01:05] saikat: i see, thanks [01:06] kordless: @mjr_ bugs like what? [01:06] kordless: i have it running - appears to be working [01:06] mjr_: oh, like drops connections sometimes. isaacs had to stop using it in npm because it wouldn't reliably upload files. [01:06] kordless: k [01:06] kordless: i'll keep an eye on it [01:07] kordless: not doing file uploads though [01:07] mjr_: My hunch is that as server it ends up workin gbetter for people. [01:07] saikat: yeah, i was thinking of using it for [01:07] saikat: secure websockets [01:07] saikat: but if the issue is connections dropping [01:07] saikat: it doesn't seem like a good idea [01:08] saikat: might try what guillermo suggested earlier and put it behind stunnel [01:08] halfhalo: ACTION cries due to regex again [01:08] eazyigz has joined the channel [01:08] mjr_: pquerna is working on a project to make SSL reliable in node and elsewhere. [01:08] kordless: @saikat you got got it set up yet? [01:08] saikat: kordless: you mean my socket.io stuff? [01:08] mjr_: I'm just using stunnel for now until we get solid SSL going. [01:08] saikat: yeah, it's been running for the past week or so [01:09] gsmcwhirter has joined the channel [01:09] saikat: mjr_: are you using it with long-lived/websockets connections? [01:09] mjr_: pretty short connections right now [01:09] mjr_: I haven't pushed it hard at all yet. [01:11] saikat: well i guess i'll see - i'm a little afraid since i've been having all kinds of connection issues as it is, which i hope i largely fixed today. hopefully this doesn't break it again [01:11] Yuffster has joined the channel [01:12] saikat: thanks for the info though [01:12] jchris has joined the channel [01:15] danielzilla has joined the channel [01:16] halfhalo has joined the channel [01:21] mikew3c_ has joined the channel [01:21] dicon has joined the channel [01:25] halfhalo: fun fact: my irc's regex does not like s [01:34] benreesman has joined the channel [01:36] matschaffer has joined the channel [01:37] bradleymeck has joined the channel [01:38] prettyrobots has left the channel [01:38] jamescarr has joined the channel [01:38] jamescarr: woot! [01:39] mopemope has joined the channel [01:41] eazyigz has joined the channel [01:41] paulwe has joined the channel [01:42] randomekek has joined the channel [01:45] randomekek has joined the channel [01:45] sprout has joined the channel [01:46] rsobers has joined the channel [01:46] mjr_: Tim_Smart: I merged your change and added a test for that condition. [01:46] Tim_Smart: Ah cool. [01:49] hassox has joined the channel [01:49] pedrobelo has joined the channel [01:52] eazyigz has joined the channel [01:53] polotek has joined the channel [01:57] polotek: anybody having trouble building node on master? [01:57] polotek: get errors from waf [01:58] Tim_Smart: mjr_: Well that was an adventure... http://github.com/biggie/biggie-orm/compare/0eec187...master [01:58] mjr_: Tim_Smart: that's a lot of code, man. [01:59] mjr_: polotek: waf === wtf [01:59] Tim_Smart: mjr_: Yeah, the redis specific code is pushing 1000 LOC [01:59] okuryu has joined the channel [02:00] coreh has joined the channel [02:00] Tim_Smart: Anyway, I'm out for a while. [02:00] polotek: mjr_: is that a yes? [02:00] coreh: Hello! [02:00] mjr_: node_redis is 777 lines of JS. [02:00] mjr_: polotek: no, sorry. I just wanted to point out that waf is one letter off from wtf. [02:01] polotek: mjr_: noted [02:01] polotek: coreh: hey [02:02] coreh: :-) [02:03] coreh: I'm trying some things with node.js. I came here the other day, because I was having some problems, but I got them fixed [02:03] aaronblohowiak has joined the channel [02:03] coreh: Now i'm just wondering... Are we really meant to have lots of nested functions in node.js for doing things sequentially? Or i'm being stupid? [02:03] coreh: Is there a better way of doing it? [02:04] halfhalo: ACTION hides from async [02:04] aaronblohowiak: coreh: it depends on your needs [02:04] aaronblohowiak: js is a functional language so you can create tools to routinize your stuff if you'd like [02:05] aaronblohowiak: coreh: frequently, though, the "solutions" to nested callbacks are more confusing =/ [02:05] mjr_: coreh: sometimes you end up nesting, but when it starts to seem confusing, I try to break large chunk out into other named functions. [02:05] coreh: I mean, because right now I'm doing some stuff with MongoDB, and I have one callback for after it connects, other after i select the colection, other for after a query.... [02:06] aaronblohowiak: coreh: well, you can abstract functions [02:07] coreh: ? [02:07] aaronblohowiak: coreh, so you could make a function that does a lot of that stuff for you and you just pass in the bits that change as functions.. or you could go up a layer of abstraction and use stuff like mongoose [02:07] coreh: so I don't have to deal with the DB directly? [02:07] aaronblohowiak: coreh: if you have a pattern that you repeat, then what you do is you implement the pattern as a shared library and then parameterize the variant parts [02:07] aaronblohowiak: coreh: yea, exactly [02:08] aaronblohowiak: well, you are separating your db access (boring) code from your application's code. [02:09] coreh: oh, I see. But specifically for this project, I wanted to learn how to handle everything myself, since I'm used to relational databases, not anything like MongoDB [02:09] coreh: I guess I'll try to oganize it a bit, but I see I won't be able to get away without having to think non-linearly [02:09] aaronblohowiak: coreh: cool! then you could build up something like mongoose, but custom to your ways of thinking about things [02:10] coreh: I haven't looked on mongoose yet, I think I'll check on how they deal with things [02:10] aaronblohowiak: coreh: did you get what i mean about parameterizing the functionality for reused code? [02:11] coreh: hmm I'm not completely sure [02:12] jamescarr: one of these days U'm going to try JSGI [02:12] aaronblohowiak: coreh: pass functions around as arguments =) [02:13] mjr_: coreh: you'd have this same issue if you used a sql database, BTW. [02:13] mjr_: it's kind of hard to get your head around [02:13] mjr_: But once it clicks, it'll seem very natural. [02:13] jamescarr: remember kids: console.log((function(a){ return (function(b,c){ return a+b*c }).bind(a*a)})(5)3)); [02:13] jamescarr: oops [02:14] coreh: aaronblohowiak: oh [02:14] aaronblohowiak: jamescarr: lol [02:14] coreh: aaronblohowiak: I try to put them inline, usually, instead of storing them at different places, because it gets confusing [02:15] aaronblohowiak: coreh: giving things names and using their names helps you keep the implementations from the flows separate [02:15] coreh: specially because I'm not sure on how they might be called eventually, i.e. what will "this" be equal to [02:15] eazyigz has joined the channel [02:16] coreh: mjr_: yeah. I thought I was used to thinking with callbacks, since I use them a lot with client-side JavaScript, but It's not even close to what node.js is requiring [02:17] jamescarr: is there a better solution to rounding in js than the old Math.round(number*100)/100 trick? [02:17] mjr_: coreh: if you do really involved client-side stuff with multiple XHRs, you'll find yourself in a similar situation. [02:17] mjr_: coreh: but just imagine how much you are going to rock the client side JS after you get all node.js ninja with the callbacks. [02:17] coreh: mjr_: haha. That's true [02:17] Me1000 has joined the channel [02:18] coreh: mjr_: The thing is, I hadn't done a lot of complex IO on the client side before [02:18] coreh: mjr_: mostly multimedia stuff with canvas [02:20] coreh: Woah, I'm liking the way things work on mongoose. I thought it would be something like a persistency layer, that didn't allow me to access the database [02:21] coreh: I've always had a problem with stuff that looks too "magic" and automatic [02:21] aurynn: ACTION casts Magic Code at the Darkness. [02:22] coreh: lol [02:25] omygawshkenas has joined the channel [02:25] hdon has joined the channel [02:26] trave: dudes, today and last night are my first real attempts at using Node, I am so amazed by it, great work! [02:26] mjr_: what are you building? [02:26] trave: right now, just a basic "private labeling" page, for my brother who does Merchant Account / CC processing stuff for PayLeap. [02:28] trave: so, Ive wired up a server that uses domjs to modify a DOM loaded from static html layouts and contents [02:30] jpld has joined the channel [02:36] bradleymeck1 has joined the channel [02:37] rcy has joined the channel [02:37] coreh: Hmm.. I'm reading some slides about node.js: If POSIX async i/o is not available, how node.js does it? [02:37] coreh: on platform dependant ways? [02:39] mjr_: coreh: node uses libeio to do thread pool magic for otherwise sync calls. [02:39] langworthy has joined the channel [02:40] coreh: oh, so it uses threads, but only a fixed amount of them? [02:40] mjr_: node uses threads for operations that might block, and it hides it all in an async interface. [02:42] micheil: coreh: I think the terming was a threadpoll of workers [02:43] coreh: oh [02:43] micheil: then it has a thread that watches for event notifications and then forwards the events from that threadpoll to node's bindings [02:43] micheil: this is done through the previously mentioned libeio library and for other events, libev [02:44] coreh: So it has some sort of non-blocking producer-consumer thing going on [02:44] micheil: (located under the deps/ directory) [02:44] coreh: oh [02:44] coreh: I wonder if the OS provided the required functionality, would it be even faster? [02:44] micheil: so, effectively you get iike the worker threads and the master, but the master is where your code lives, the workers report back to master on any state change [02:44] coreh: Is there any OS with async I/O? [02:45] micheil: well, libeio / libev just does a bunch of fancy queue / pool / polling / something management [02:45] aurynn has joined the channel [02:45] aaronblohowiak: coreh: most OS have async io [02:45] micheil: then it binds down to the C STDLIB [02:46] coreh: aaronblohowiak: it's just not in POSIX, then? [02:47] aaronblohowiak: coreh: POSIX is a standard that many OSes (not windows) adhere to [02:48] coreh: oh, I know. I didn't mean POSIX as an OS or something [02:48] coreh: i mean it's simply not on the spec, so there's no standard way of doing it [02:49] aaronblohowiak: coreh: what do you mean? [02:49] coreh: i mean that, even if the OSs provide async IO, it's through non-standard means, since the POSIX standard doesn't defined how async IO should be implemented, right? [02:50] polotek: what I've read is that most of the OS that provide an async i/o interface just fake it with threads anyway [02:50] badaxx has joined the channel [02:52] aaronblohowiak: polotek: that's interesting [02:52] aaronblohowiak: coreh: POSIX does define the API, but not the implementation [02:53] coreh: aaronblohowiak: oh [02:53] polotek: http://groups.google.com/group/nodejs/browse_thread/thread/aff97d25c59f6f2d/06d0b5edf7ea992d?lnk=gst&q=aio#06d0b5edf7ea992d [02:53] aaronblohowiak: coreh: AIOhttp://www.ibm.com/developerworks/linux/library/l-async/ [02:53] bradleymeck1: async io faking is somewhat needed if you fill the dmc for your device :( [02:55] aaronblohowiak: ACTION starts a linux systems programming class in october =/ [03:00] matt_c has joined the channel [03:00] aaronblohowiak: okay, i'm out to modernize guille's twilio library [03:00] dicon has joined the channel [03:00] dipser_ has joined the channel [03:01] satori_ has joined the channel [03:02] nroot7: Not strictly a node question. What are the rules for HTTP domain origin policy ? How are functions inside jquery.js work when its hosted on google's CDN and not when its on my local host ? [03:03] dshaw has joined the channel [03:04] polotek: nroot7: has nothing to do with where the script is hosted [03:04] polotek: it's what domain the document is loaded from [03:05] polotek: and the scheme, domain, and port must match in order for two documents to be considered to originate from the same place [03:05] polotek: domain => hostname [03:05] nroot7: polotek: ok [03:05] aaronblohowiak: polotek: you can change the domain origin to go up a level if you are on a subdomain =/ [03:06] polotek: aaronblohowiak: true, doesn't change the rules though. just makes the definition of the hostname more lax [03:06] aaronblohowiak: =) [03:06] aaronblohowiak: yup [03:06] trave: I think they just want to track the IP addresses and request URI's, but its nice to have a fast server deliver the bytes [03:07] polotek: and it has some other implications like sending cookies [03:07] trave: all your google are belong to google. [03:07] randomekek: hi has anybody looked into using json_sans_eval rather than JSON? json_sans_eval seems so much faster [03:08] polotek: looks like json_sans_eval is non-validating [03:09] polotek: if you're fine with that, nothing stopping you from using it [03:09] randomekek: i see [03:09] halfhalo: what do you people use to parse xml in these here parts? [03:09] polotek: halfhalo: libxmljs [03:09] trave: does it return null on failed parsing? [03:10] halfhalo: ugg, i really don't want to use libxmljs since its dependant on other stuff [03:11] polotek: halfhalo: you want a pure js parser? [03:11] randomekek: as far as the source seems if it sees a 't' it assumes its true [03:11] halfhalo: I really wanted to use node-xml2js but its not working... [03:11] randomekek: i guess malformed json is an issue if somebody else sends it to you [03:11] halfhalo: i could live with a pure js parser [03:12] nroot7: But then how do things like embedded google maps work ? The page is from a different domain but it is making connection to google's server ? [03:12] polotek: halfhalo: what do you mean "dependent on other stuff" [03:12] polotek: it's an addon so you have to have libxml [03:13] halfhalo: exactly, the system I'm planning on deploying it to may not have it installed [03:13] polotek: nroot7: google maps are just a series of images [03:13] coreh: nroot7: I think for google maps, they use some neat tricks to avoid the same-domain policy, like JSONP [03:13] coreh: polotek: There's also local search [03:13] coreh: polotek: and other stuff [03:14] polotek: coreh: clearly there are ways to get around same origin policy (which kind of defeats the purpose) [03:15] coreh: the ways usually involve some sort of cooperation [03:15] coreh: like window.name, the iframe needs to be willing to change the name, and the parent page needs to register an onresize event handler [03:15] dshaw has joined the channel [03:16] coreh: or was it the other way around? *not sure* [03:18] prettyrobots has joined the channel [03:18] prettyrobots: Do new posters to the Node.js Google Group need to be waved through? [03:18] aaronblohowiak: prettyrobots: ;) [03:19] prettyrobots: Because, I'm posting under a different email address, and I can't tell if I've got my accounts setup wrong, or I'm in limbo. [03:19] gerred has joined the channel [03:19] aaronblohowiak: prettyrobots: i think there is some form of moderation [03:19] prettyrobots: Okay. [03:19] polotek: aaronblohowiak: are you sure? [03:19] polotek: I think you have to join the group [03:20] polotek: but after that your stuff should show up immediately [03:20] aaronblohowiak: polotek: i thnk the first post is moderated [03:20] polotek: I have however noticed a lot of slowdown with groups lately [03:20] temp02 has joined the channel [03:20] prettyrobots: polotek: I joined. [03:21] micheil: yeah, the google groups has moderation [03:22] micheil: I'm a moderator, and there's about 15 others that moderate [03:22] micheil: so, it's mainly just to stop spam messages [03:22] prettyrobots: michell: Good luck. [03:23] micheil: good luck? [03:23] prettyrobots: Oh, moderating all that email. [03:23] micheil: it's not much [03:23] prettyrobots: Thanks for the service. [03:23] micheil: ACTION gets far more emails then that on a daily basis [03:24] micheil: plus, members that have had messages confirmed for posting are usually allowed to by passing moderation [03:24] temp02 has joined the channel [03:24] micheil: so, there may only be about 10 emails a day that need moderation [03:24] prettyrobots: But there is no spam filter, right. [03:24] prettyrobots: ? [03:24] gsmcwhirter: is anyone aware of anything built into node that will do unpack-like things? [03:24] micheil: gsmcwhirter: explain [03:24] prettyrobots: That was what the jQuery people complained about. [03:25] micheil: prettyrobots: there is no spam filter, all manual [03:25] gsmcwhirter: i'm using jspack as a dependency on a project to unpack a binary file [03:25] gsmcwhirter: i'd like to drop the dependency [03:25] prettyrobots: micheil: Right. Good luck. Thanks for reading the spam so I don't have to. [03:26] micheil: :) [03:26] micheil: anyway, I'm out, bye folks. [03:26] coreh: bye [03:26] polotek has left the channel [03:27] dshaw has joined the channel [03:28] mattly has joined the channel [03:30] temp02 has joined the channel [03:31] dshaw has joined the channel [03:32] LionMadeOfLions has joined the channel [03:32] Validatorian has joined the channel [03:33] ryan[WIN] has joined the channel [03:37] dohtem has joined the channel [03:39] tmpvar has joined the channel [03:39] tmpvar: has anyone used node-inspector recently/succesfully? [03:40] bradleymeck1 has joined the channel [03:41] tmpvar: hey bradleymeck, hows fsml coming? [03:42] temp02 has joined the channel [03:43] aconbere has joined the channel [03:47] tmpvar: oh damn, just had to update node to the latest [03:47] tmpvar: node-inspector is slick! [03:50] trave: is it such as "eyes" or something different? [03:53] tmpvar: nah, its the chrome inspector [03:53] tmpvar: breakpoints, stepping, all that goodness [03:54] tmpvar: npm install node-inspector [03:55] rauchg_ has joined the channel [03:57] prettyrobots has left the channel [04:00] jamescarr has joined the channel [04:00] bradleymeck1: tmpvar node-inspector + jsdom is trippy [04:00] tmpvar: oh yeah? [04:00] tmpvar: i haven't tried [04:00] tmpvar: debungling conductor [04:01] tmpvar: which is voodoo black magic sauce [04:02] aurynn: is node-ffi overly likely to crash and explode and eat my young? [04:08] banjiewen has joined the channel [04:15] coreh: That's odd, I get CALL_NON_FUNCTION_AS_CONSTRUCTOR when I try to use mongoose [04:16] coreh: It seems it's trying to get an ObjectID object from the mongodb driver, but that's not avaliable [04:17] galaxywatcher has joined the channel [04:18] ivong has joined the channel [04:22] coreh: http://github.com/LearnBoost/mongoose/issues#issue/47 oh, figured it out [04:28] amerine has joined the channel [04:29] amerine has joined the channel [04:29] zmbmartin: I am trying to include controller files by looping through them in app.js I am not getting errors but my files aren't being required either --> http://gist.github.com/596475 any idea what I am doing wrong? [04:35] tmpvar: zmbmartin, require returns the module [04:36] muk_mb has joined the channel [04:36] zmbmartin: tmpvar: how should I do that? [04:38] dshaw has joined the channel [04:38] tmpvar: zmbmartin, something like http://gist.github.com/596480 [04:39] tmpvar: but you have to remember.. readDir is async, so it will return immediately [04:39] tmpvar: s/readDir/readdir [04:40] zmbmartin: tmpvar: I am still not getting my controller routes. If I require each manually my routes work but with my code or yours it does not. And I only get a 404 error not found. [04:40] tmpvar: sounds like a larger organizational problem [04:42] zmbmartin: tmpvar: Here is my wholte app.js --> http://gist.github.com/596475 [04:43] zmbmartin: Anything look out of place [04:43] digitaltoad has joined the channel [04:44] tmpvar: yeah, i assume you need to attach the controllers to express or connect? [04:44] tmpvar: (honestly I didn't know you can use them together like that [04:44] zmbmartin: Thanks for looking [04:46] Tim_Smart: zmbmartin: Put a console.log() in your controllers, and see if runs. [04:46] dshaw has joined the channel [04:47] zmbmartin: Sure does Must be something else. [04:48] zmbmartin: oh well off to bed for now. Thaks [04:50] aaronblohowiak has joined the channel [04:52] aaronblohowiak: hey since restler is distributed with a GPL-licensed library, doesn't it have to be licensed under the GPL ? [04:52] nroot7 has joined the channel [04:52] mtodd has joined the channel [04:57] dshaw1 has joined the channel [04:58] ivong has left the channel [04:58] pedrobelo has joined the channel [05:02] MikhX has joined the channel [05:08] jashkenas: holy crap. npm.mape.me is incredible. [05:11] aaronblohowiak: jashkenas: yes, it is! [05:13] dicon has joined the channel [05:13] mjr_: I keep wishing that there was a better way to have module documentation included with npm somehow [05:14] mjr_: like to have npm be able to open my web browser with whatever the web page that has the docs is. [05:14] mjr_: Or something. [05:14] mjr_: Kind of over man pages. [05:14] jashkenas: mjr_: issacs can add that as part of package.json .... point to an HTML page. [05:14] jashkenas: local or remote. [05:14] pquerna: his suggestion [05:14] pquerna: was to look for a docs folder [05:14] pquerna: and auto-gen html form any .md file sin there [05:15] AAA_awright: Is there any way use function calls on npm? [05:15] mjr_: oh nice [05:15] mjr_: I like the auto gen from markdown in the tarball. Then it works offline and is synced with whatever version you have installed. [05:16] aaronblohowiak: i will give $100 to the first person to make docco pure js ! [05:16] jashkenas: even better would be to auto-gen markdown in comments in the source, a-la dox and docco. [05:17] jashkenas: aaronblohowiak: dude, docco is just JS ... and there are already JS variants, like dox. [05:17] aaronblohowiak: jashkenas: pygments is not js [05:17] jashkenas: ah, pygments. [05:17] jashkenas: that's another can o worms. [05:18] aaronblohowiak: jashkenas: =) exactly. i want someone to take the higlighter from codemirror and shove it in docco so i dont have to worry about pygments [05:19] coreh has left the channel [05:19] jashkenas: that would be rad. I'd chip in as well. [05:19] hannesw has joined the channel [05:19] aaronblohowiak: how much ;) [05:19] aaronblohowiak: hahaha [05:21] jashkenas: another $100, why not. A nice extensible JS syntax highlighter in NPM is a worthy thing. [05:22] aaronblohowiak: jashkenas: dox looks like it is pure js [05:24] jashkenas: TJ's got something called koala vendored in. [05:24] aaronblohowiak: jashkenas: yea, koala is his js syntax highlighter that supports ruby, c and js synaxen [05:24] aaronblohowiak: syntaces? [05:25] jashkenas: http://github.com/visionmedia/dox/blob/master/lib/dox/koala/lib/koala/grammars/javascript.js [05:31] MikhX has joined the channel [05:34] aaronblohowiak: make: scons: No such file or directory [05:34] aaronblohowiak: anyone get that when trying to install libxmljs [05:36] aaronblohowiak: apparently i need to install scons [05:40] satori_ has joined the channel [05:40] jesusabdullah: Does docco use pygments? [05:41] HAITI: /join #raphael.ks [05:41] HAITI: hah [05:41] jesusabdullah: wat [05:41] jesusabdullah: why? [05:41] aaronblohowiak: jesusabdullah: currently [05:41] jesusabdullah: Ah [05:44] jesusabdullah: How does docco know what are comments and what aren't? I get the impression it works for non-coffee/non-js [05:45] aaronblohowiak: jesusabdullah: docco's source is very shourt, and a good read. basically it has the option to have a customizable comment-begin string [05:45] jashkenas: jesusabdullah: just a dumb map. It's quick and dirty... http://jashkenas.github.com/docco/#section-9 [05:46] tmpvar: if you guys do pygments -> js can you make it streaming? :P [05:47] jesusabdullah: Oh Nelly [05:47] jesusabdullah: Doesn't seem to rock multi-line D: [05:48] AAA_awright: Anyone familiar with developing npm? [05:48] AAA_awright: Or some better package manager? [05:48] jesusabdullah: npm is pretty much the bomb diggity [05:49] jesusabdullah: isaacs is really helpful when he's around [05:49] AAA_awright: It's rather simple isn't it, though? [05:49] aaronblohowiak: AAA_awright: so is the design of unix [05:50] AAA_awright: I was going to s/simple/feature-ful/ [05:50] Validatorian: should there be any issue running node on redhat? I've only ever used ubuntu [05:50] AAA_awright: It's supports installing packages from a centralized repository. Not a good idea. [05:50] AAA_awright: *It only [05:50] AAA_awright: Actually, no [05:51] AAA_awright: Yeah, I just can't get it to work at all [05:51] echosystm has joined the channel [05:51] echosystm: can someone explain the no-threads rationale? [05:52] echosystm: is there anything web workers cant do that threads can? [05:52] MikhX has joined the channel [05:52] ajpiano has joined the channel [05:52] aaronblohowiak: echosystm: race conditions! [05:52] Neura has joined the channel [05:53] paulwe has joined the channel [05:53] aaronblohowiak: echosystm: =) threads are dangerous because data structures can change within the current execution context without your knowing. with web workers, that shouldn't be able to happen as it is message-passing [05:56] tmpvar: to add to what aaronblohowiak said, in order to avoid threads stepping on each other you have to devise locking which is a gigantic can of worms [05:57] tmpvar: *devise a locking strategy [05:57] aaronblohowiak: or have immutable datastructures, which is not what javascripters are used to =) [05:57] tmpvar: right, threads make it harder to to the "right thing" [05:58] echosystm: ok [05:58] echosystm: because web workers are separate processes [05:58] echosystm: do they use more memory? [05:58] tmpvar: according to the html5 spec yes [05:58] echosystm: i mean, does each web worker have its own interpreter? [05:58] tmpvar: its own context, yes [05:58] echosystm: or do they share resources [05:58] echosystm: right [05:58] echosystm: ok [05:58] echosystm: hm [05:58] tmpvar: its implementation specific though [05:59] tmpvar: but if you read through the spec, they are meant to be long living objects [05:59] tmpvar: because there is overhead spawning them, and memory overhead of keeping them around (so you wouldn't want thousands in a browser) [06:00] aaronblohowiak: echosystm: they do not have to have their own interpreter in order to have their own context, but v8... [06:01] aaronblohowiak: echosystm: this is a *great* article on web workers: http://blog.std.in/2010/07/08/nodejs-webworker-design/ [06:06] admc_ has joined the channel [06:06] admc has joined the channel [06:08] Validatorian: anyone know where I can find an article for running node on a server that is already running apache on port 80? [06:18] admc has joined the channel [06:18] admc_ has joined the channel [06:18] aaronblohowiak: Validatorian: you can either access your node server on a different port or use apache as a reverse proxy to node, which will be painful if you are doing any sort of long polling / persistent connection [06:19] Validatorian: I will be :-/ [06:19] aaronblohowiak: then get an additional IP [06:20] Validatorian: ah, I'm silly. I have my own IP, apparently apache was jsut installed standard [06:20] aaronblohowiak: apache wasn't built to handle many open connections simultaneously, and it does not support web sockets [06:20] aaronblohowiak: Validatorian: oh. then apachectl stop =) [06:20] Validatorian: undeed [06:20] Validatorian: indeed* [06:20] aaronblohowiak: =) [06:20] Validatorian: thanks [06:20] aaronblohowiak: i like undeed better [06:21] aaronblohowiak: okay, i'm out [06:23] bpot has joined the channel [06:28] prettyrobots has joined the channel [06:30] shockie has joined the channel [06:32] ph^ has joined the channel [06:39] mtodd has joined the channel [06:40] pedrobelo has joined the channel [06:43] MikhX has joined the channel [06:48] Tim_Smart: <3 http://github.com/biggie/biggie-orm/commit/e15866833fcf94124f3bbfca9a580eabff385f1f [06:53] adambeynon has joined the channel [06:55] mischievious has joined the channel [07:07] prettyrobots: Someone mentioned a library for running tasks through ssh. [07:09] sveisvei_ has joined the channel [07:10] prettyrobots: Found it: http://github.com/tsmith/node-control [07:12] amuck has joined the channel [07:14] MikhX has joined the channel [07:15] ryan[WIN] has joined the channel [07:21] mikew3c_ has joined the channel [07:24] hannesw has joined the channel [07:32] JimBastard: prettyrobots: that lib is shit [07:32] prettyrobots: It is very simple. [07:32] JimBastard: ive dove through the code, its fairly useless [07:32] JimBastard: i spent a good two days on it [07:33] prettyrobots: What makes you feel that it is useless? [07:33] sveisvei has joined the channel [07:33] prettyrobots: Two days? [07:33] JimBastard: its not structured in any sane way [07:33] JimBastard: if you need to do anything outside the exact usage, its gonna suck [07:34] JimBastard: and the way its structured isnt modular at all [07:34] mytrile has joined the channel [07:34] JimBastard: you cant even call methods directly over commonjs, you have to use the command line [07:34] prettyrobots: What do you mean by the last bit? [07:34] JimBastard: its just not structured in a smart way [07:34] JimBastard: i dunno, read though the code if you want better answers [07:35] prettyrobots: No. I want opinions. [07:35] JimBastard: i gave you mine [07:35] prettyrobots: What does that mean? "you cant even call methods directly over commonjs" [07:35] JimBastard: read through the code [07:35] prettyrobots: I did. It is very simple. [07:35] JimBastard: ok [07:35] prettyrobots: Are you saying something strange about RPC. [07:35] JimBastard: well go use the tool then, good luck [07:35] prettyrobots: Or are you talking about a declaration pattern? [07:36] prettyrobots: I'm not arguing with you. I'm trying to understand your criticism. [07:36] JimBastard: well, read the code [07:36] JimBastard: http://github.com/tsmith/node-control/blob/master/lib/task.js#L76 [07:36] prettyrobots: Oh. [07:37] JimBastard: right there, instead of using function args, its binding directly to process args [07:37] JimBastard: with no abstraction [07:37] JimBastard: i told you , i spent two days with the code base [07:37] JimBastard: we wound up rolling our own which was much easier [07:37] JimBastard: and much more robust [07:37] JimBastard: and way less code [07:37] prettyrobots: I'm not arguing with you, for reals. [07:38] JimBastard: i dont understand why you keep asking me the same question [07:38] sh1mmer has joined the channel [07:38] prettyrobots: You answered it the link to line 76. [07:38] prettyrobots: That makes the library useless for my application. [07:39] prettyrobots: So, you saved me two days. [07:39] prettyrobots: Besides, its not a big deal to spawn ssh myself, which I'm already doing, so ... [07:44] mtodd has joined the channel [07:44] lachlanhardy has joined the channel [07:50] sveisvei_ has joined the channel [07:51] ph^ has joined the channel [07:55] [[zz]] has joined the channel [08:00] path[l] has joined the channel [08:02] dnolen has joined the channel [08:04] sveisvei__ has joined the channel [08:09] huyhong has joined the channel [08:11] Tim_Smart: Hmm.. a lot of hacking for the past 2 and a bit days... http://github.com/biggie/biggie-orm/compare/31badefc594d9efb2d9a760d3bed0ee24f33e9f3...master [08:12] saikat: has anyone successfully set up websockets behind stunnel? [08:12] saikat: ideally with socket.io [08:16] ghiu has joined the channel [08:22] langworthy has joined the channel [08:22] daglees has joined the channel [08:22] daglees has joined the channel [08:23] sveisvei_ has joined the channel [08:24] SamuraiJack has joined the channel [08:24] q_no has joined the channel [08:30] jdub has joined the channel [08:31] SamuraiJack_ has joined the channel [08:33] badaxx has joined the channel [08:33] jdub: Does felixge generally use the same nick here? [08:35] jetienne has joined the channel [08:36] Anti-X has joined the channel [08:37] nroot7 has joined the channel [08:37] jashkenas has joined the channel [08:37] stephank has joined the channel [08:41] devkorcvince has joined the channel [08:44] Tim_Smart: jdub: Yes. [08:45] jdub: Tim_Smart: thanks :-) [08:45] jdub: pinged him on the twittergraph, but suppose he's concentrating on jsconfeu ;) [08:50] saikat: jdub: i actually just saw that you made a patch to socket.io (not pulled) to get things running behind something like stunnel [08:50] devcorkvince has joined the channel [08:50] saikat: have you had any issues with it? [08:54] TomsB has joined the channel [09:01] tk has joined the channel [09:01] jdub: saikat: no, it has been wonderfully stable [09:01] saikat: awesome [09:02] saikat: thanks for it, i had realized making the same change was working for me, but i had no clue why until i saw your explanation [09:02] jdub: saikat: it wasn't pulled, but the correct change was applied [09:02] saikat: what was the reason for not pulling it? [09:02] jdub: so i'm just running trunk [09:02] saikat: wait, so current socket.io without that change [09:02] saikat: is working for wss over stunnel? [09:02] jdub: yeah [09:02] jdub: oh [09:03] jdub: well [09:03] jdub: so the bug i pointed out was fixed [09:03] jdub: the ws/wss hard coding issue [09:03] mape has joined the channel [09:04] donnex has joined the channel [09:04] saikat: jdub: http://github.com/jdub/Socket.IO-node/commit/4dcb3eab43b80badb6c057b1ff211ae713bf0d3a that patch right? [09:04] jdub: and it also makes assumptions based on the origin location [09:04] jdub: yes [09:05] saikat: so if he did not pull that, doesn't the same issue still exist [09:05] saikat: that node doesn't know it's on a secure connection [09:05] jdub: he didn't pull that [09:05] saikat: so unless you inspect to see if it's https, you will make the wrong assumption? [09:05] jdub: but he made the same change more appropriately :-) [09:05] saikat: was it very recent? [09:06] AAA_awright: tmpvar: That's easy, just use threads for message parsing...? [09:06] jdub: http://github.com/LearnBoost/Socket.IO-node/blob/master/lib/socket.io/transports/websocket.js#L40 [09:06] jdub: ^ see this [09:06] jdub: it sets origin outside the if block [09:07] saikat: ah i see [09:07] jdub: saikat: https://app.hellodenby.com/ <- nodejs behind stunnel, with http and websocket upgrade all via https [09:08] saikat: cool =) [09:08] saikat: ahh i see [09:08] saikat: yeah i think i pulled right before that change [09:08] saikat: which is probably why it wasn't working for me [09:08] saikat: thanks a lot for the pointer jdub [09:09] jdub: pull harder! pull harder! :-) [09:10] saikat: wait that's not true, supposedly i pulled september 10 - but yeah i see that it should be working [09:10] saikat: thanks =) [09:12] dgathright has joined the channel [09:15] ajsie: is there a way to send a body chunk [09:15] ajsie: with express [09:15] ajsie: like the node.js res.write ? [09:15] ajsie: cause express res.send sends the whole body [09:16] Tim_Smart: ajsie: response.write? [09:16] Tim_Smart: I don't think express removes it. [09:16] ajsie: Tim_Smart: oh [09:17] sh1mmer has joined the channel [09:18] sh1mmer has joined the channel [09:19] claudiu__ has joined the channel [09:23] rauchg_ has joined the channel [09:23] kkaefer: in what cases are socket connections returning buffers and in what cases do they return strings? [09:23] kkaefer: (in the data listener) [09:24] aliem has joined the channel [09:24] kkaefer: the documentation says "The argument data will be a Buffer or String." [09:25] stride: kkaefer: it's always a buffer internally but you can treat it as a string when you called setEncoding (ascii/utf8) on it before iirc [09:25] kkaefer: ah, thanks [09:25] kkaefer: yeah, I think I just found that in the docs too [09:25] mytrile has joined the channel [09:25] kkaefer: "The 'data' event emits either a Buffer (by default) or a string if setEncoding() was used." [09:25] kkaefer: thanks for confirming [09:32] pwrfail has joined the channel [09:33] kkaefer: when emitting data, does node some internal aggregation or can the buffer end at any place (with another data message containing the rest of the data sent by the other party)? [09:38] stride: a normal tcp socket can end anytime I think [09:38] devkorcvince has joined the channel [09:39] ph^ has joined the channel [09:40] devkorcvince: anyone here that can link me to a good tutorials for token authentication on node? [09:42] mytrile has joined the channel [09:44] hellp has joined the channel [09:46] zemanel has joined the channel [09:50] kjeldahl has joined the channel [09:54] iganapolsky has joined the channel [09:58] hannesw has joined the channel [09:59] mikeal has joined the channel [10:01] daglees has joined the channel [10:01] daglees has joined the channel [10:03] ajsie: how do i stream with express [10:03] ajsie: this doesnt seem to work: http://pastie.org/1180787 [10:04] Tim_Smart: ajsie: What happens when you curl it? [10:05] Tim_Smart: Browsers don't usually render the html until it has the entire document. [10:05] Tim_Smart: I think they fetch resources though. [10:07] ajsie: Tim_Smart: nothing happens with curl [10:07] ajsie: it is blank .. i bet it is waiting for something [10:07] ajsie: but its strange .. cause you CAN stream like that [10:07] lachlanhardy has joined the channel [10:08] Tim_Smart: ajsie: Maybe it is tcp nodelay being silly. [10:09] ajsie: hmm [10:09] ajsie: i had it worked before [10:09] ajsie: i wonder why it doesnt now [10:12] ajsie: someone that know how to stream with node? [10:13] ajsie: should be easy [10:15] evanpro has joined the channel [10:18] nroot7 has joined the channel [10:18] rnewson has joined the channel [10:22] ph^ has joined the channel [10:24] devkorcvince: anyone here knows a guide for oauth in node [10:25] stride: devkorcvince: http://github.com/ciaranj/node-oauth examples can be found in the github wiki http://github.com/ciaranj/node-oauth/wiki/Interacting-with-Twitter [10:27] MikhX has joined the channel [10:27] devkorcvince: stride thanks [10:28] femtoo has joined the channel [10:28] daglees has joined the channel [10:28] mpoz2 has joined the channel [10:33] mape: Anyone streaming from jsconf? [10:35] agnat has joined the channel [10:36] hassox has joined the channel [10:37] mklappstuhl has joined the channel [10:39] d0k has joined the channel [10:39] ajsie: is jsconf today? [10:39] creationix has joined the channel [10:40] wao: wut? [10:41] ajsie: http://jsconf.eu/2010/ [10:41] ajsie: today =) [10:41] ajsie: and tomorrow [10:41] mklappstuhl: it is [10:42] mklappstuhl: are you there? [10:42] ajsie: no :P [10:42] ajsie: im here [10:42] mklappstuhl: :P [10:42] mklappstuhl: anybody else? [10:43] ajsie: exciting to watch the recordings later on [10:43] mklappstuhl: there is a break right now [10:43] mklappstuhl: but i think the recordings will be really good [10:43] ajsie: these are the talks: http://devthought.com/blog/2010/05/jsconf-2010-slides/ ? [10:43] ajsie: mklappstuhl: when will the recordings usually be available? [10:44] mischievious has joined the channel [10:44] mischievious has joined the channel [10:44] mklappstuhl: i have no idea but last year it didnt take a long time [10:44] mklappstuhl: so i dont know maybe around a month maybe even less [10:46] ajsie: okay [10:47] wao: :) [10:47] wao: this seems like live http://jsconfeu.blip.tv/ ? [10:48] ajsie: no [10:48] ajsie: its from 2009 [10:48] ajsie: :) [10:50] mbana has joined the channel [10:50] wao: yop, already see.. :) [10:51] ajsie: hmm [10:51] ajsie: fab looks interesting [10:51] Anti-X: steve souders is funny [10:51] Anti-X: he looks so innocent [10:51] Anti-X: and slightly dumb [10:52] Anti-X: but he knows what he's talking about [10:52] Anti-X: :P [10:53] wao: :)) [10:54] ajsie: hmm [10:54] ajsie: http://www.flickr.com/photos/tr4nslator/sets/72157623883700702/show/ [10:54] ajsie: fab looks VERY interesting [10:54] ajsie: express has a competitor =) [10:55] chilts has joined the channel [10:57] Tim_Smart: express has several alternatives. [10:58] ajsie: Tim_Smart: what do u mean? [10:59] Tim_Smart: Well, there is geddy, fab, djangode etc etc. [10:59] ajsie: yeah [10:59] ajsie: fab has not that many users [11:01] ajsie: oh .. looked in wrong fab repo =) [11:01] ajsie: was quite a lot of users [11:05] devkorcvince: how about doing oauth-server-provider on node? any one knows some guides> [11:08] galaxywatcher has joined the channel [11:11] sveimac has joined the channel [11:12] zorzar has joined the channel [11:12] zemanel has joined the channel [11:14] admc has joined the channel [11:14] admc_ has joined the channel [11:25] Athox has joined the channel [11:31] stagas has joined the channel [11:36] stride: devkorcvince: http://groups.google.com/group/nodejs/msg/9cb04e9554e202a7 [11:36] stride: oh.. gone. meh [11:36] sveimac has joined the channel [11:38] stagas: what broke in connect 0.2.5? [11:38] stagas: it just hangs now [11:38] robotarmy has joined the channel [11:39] mikeal has joined the channel [11:39] JimBastard has joined the channel [11:39] JimBastard: stagas: ping [11:40] stagas: JimBastard: pong [11:40] stagas: :P [11:40] JimBastard: i pushed a new version of the webservice.js based on what we talked about [11:42] stagas: I saw it :) yours is cleaner [11:42] JimBastard: i cleaned up a few things, i also added test coverage [11:43] sveisvei_ has joined the channel [11:44] creationix has joined the channel [11:44] stagas: I was thinking of reversing the api somehow [11:44] stagas: but it's a bit complex in my head [11:45] JimBastard: reversing what? [11:45] ph^ has joined the channel [11:46] stagas: like having a wrapper api for modules so you can just require the webservice.js inside the module, and somehow patching what you want to export [11:46] stagas: I can't explain it :) [11:47] JimBastard: yeah no, thats kinda the next step [11:47] JimBastard: but you doing it in reverse [11:47] JimBastard: you enforce a convention inside the module [11:47] JimBastard: and export specific things [11:47] JimBastard: then you look for those things in the web-service [11:47] wakawaka has joined the channel [11:47] stagas: yes.. basically I was trying use the request module so to build a proxy to bypass cross domain image requests [11:48] stagas: so you can just require the specific module with webservice, and everything /cross/ just would work [11:48] stagas: with caching and anything [11:48] stagas: super simple feature adding to your app [11:49] JimBastard: word [11:49] rlotun has joined the channel [11:49] admc_ has joined the channel [11:49] admc has joined the channel [11:52] stagas: then ppl could build that kind of stuff and you'd be able to just use them, no fuss, regardless of the framework etc [11:52] stagas: like connect but somehow isolated and reversed :P [11:52] JimBastard: im trying to keep every system isolated [11:52] JimBastard: and modular [11:53] JimBastard: so they can work stand-alone [11:53] JimBastard: but also work with other pieces [11:54] stagas: I mean ok, webservice as it is, is a cool concept, but noone is gonna export the fs module on the web, they're gonna build a new module/service anyway [11:54] stagas: so why not apply a simple convention [11:54] stagas: so it'll work better [11:54] JimBastard: you shouldnt export FS [11:55] JimBastard: its just a matter of figuring out what you are trying to export [11:55] JimBastard: for the conventions [11:55] JimBastard: i want to figure out how to expose our models using webservice so we can do resource based routing [11:55] JimBastard: i.e. the User.js file which is the user's model, can be exposed and bam [11:59] Egbert9e9 has joined the channel [11:59] stagas: I want to eventually reach the level where you'll be doing: webservice.createServer({'users': users, 'blog': blog, 'websockets': websockets}, Mylogic = {...} ); and you have a website running with user registrations, sockets etc :P the only thing you need to build is a logic to connect all that in a meaningful way :) [11:59] stagas: ACTION is dreaming [12:03] aliem has joined the channel [12:04] agilandfast has joined the channel [12:04] stagas: I can't figure out what changed in latest connect and it broke my app [12:06] JimBastard: stagas: something like that yeah [12:07] JimBastard: webservice would prob be a piece of what you are talking about [12:07] niemeyer has joined the channel [12:10] themiddleman has joined the channel [12:10] stagas: JimBastard: everybody is reinventing the wheel every time they want to add user reg, login with twitter etc., while they should be focusing on their app instead. that stuff should be one-liners [12:11] stagas: and it's possible with node [12:11] JimBastard: aye [12:11] JimBastard: its just a matter of figuring out all the small pieces though [12:12] JimBastard: if you do it wrong it wont combine together nicely [12:12] JimBastard: a lot of the current middlewares for node can work together with minor changes [12:13] JimBastard: im using a connect basic auth middleware without connect [12:13] sh1mmer has joined the channel [12:14] stride: has anybody here used the google data api within node? I'm wondering what the best approach for that is (pure http, jsdom+javascript api, porting the java api, ?) [12:14] Guest74211 has joined the channel [12:15] amrnt has joined the channel [12:15] stagas: it's because they're all using the (req, res) convention [12:16] stagas: so you need a convention for webservice similar to that, but at a higher level [12:17] stagas: so they can be combined together in arbitary ways [12:18] Druid__ has joined the channel [12:24] sh1mmer has joined the channel [12:29] rauchg_ has joined the channel [12:32] herbySk has joined the channel [12:53] amrnt has left the channel [12:53] kjftw has joined the channel [12:54] mikeal has joined the channel [12:57] rauchg_ has joined the channel [13:02] ysynopsis has joined the channel [13:02] ooooPsss has joined the channel [13:02] ekidd has joined the channel [13:03] ekidd: Is there a way to dump raw assembly code from V8 / Node.js? I'd love to know what the JIT is doing with my code. [13:09] tk has joined the channel [13:19] mtodd has joined the channel [13:23] sveimac has joined the channel [13:23] mtodd has joined the channel [13:24] kriszyp has joined the channel [13:27] zemanel has joined the channel [13:30] mikew3c has joined the channel [13:30] matt_c has joined the channel [13:31] rnewson has joined the channel [13:34] GriffenJBS has joined the channel [13:35] GriffenJBS: I'm looking for some help creating an addon, actually it's with waf and python, using the example from the nodejs.org/api.html page, I can't get it to work [13:36] gthb has joined the channel [13:37] sveimac has joined the channel [13:39] GriffenJBS: using node-waf, it says "ImportError: No module named Scripting", using tools/waf seems to work, but then the problem is v8.h is missing and I don't understand how to add the include path [13:39] GriffenJBS: I'm guessing having to add something that central means I'm doing something else wrong [13:40] rlotun has joined the channel [13:43] sambao21 has joined the channel [13:44] stephank: GriffenJBS: How did you install node.js? Using waf as per the instructions went without a hitch for me. [13:45] bradleymeck1 has joined the channel [13:45] stephank: perhaps node lives in a strange location that's not in your compiler's include path? [13:45] agnat: GriffenJBS: I guess you are calling node-waf from the buildtree. that does not work. you have to install node (and node-waf) so it does find it's modules [13:46] agnat: its [13:46] stagas: connect.staticProvider in 0.2.5 is breaking apps [13:46] stephank: GriffenJBS: oh, and you can set the includepath with `obj.includes = 'my/dir'` if you're following the example. I found node_mdns to be another good example with some more bells: http://github.com/agnat/node_mdns/blob/master/wscript [13:46] agnat: stephank: thx :-D [13:47] stephank: agnat: oh hah, that's yours, I see. :) [13:47] GriffenJBS: agnat, yeah I'm using it in the build tree [13:48] GriffenJBS: stephank, thanks for the info [13:48] ryah: names [13:48] ryah: gr. [13:50] stagas: I miss ff's awesome bar in chrome a lot. I can't find anything [13:52] bradleymeck1: ryah ? [13:54] digitalspaghetti: DO NOT! Under any circumstances download Civ 5 [13:54] digitalspaghetti: (if you want any chance of being productive) [13:55] ryah: bradleymeck1: nm [13:57] ysynopsis has joined the channel [13:57] bsstoner has joined the channel [14:01] sh1mmer has joined the channel [14:04] Tim_Smart: digitalspaghetti: Not enough time to play games. [14:04] Tim_Smart: :p [14:04] Nohryb has joined the channel [14:07] Tim_Smart: digitalspaghetti: Last two-ish days -> http://github.com/biggie/biggie-orm/compare/31badef...master#files_bucket [14:09] mtodd has joined the channel [14:11] sveimac has joined the channel [14:11] jashkenas has joined the channel [14:15] Nohryb has joined the channel [14:16] brianleroux has joined the channel [14:20] wereHamster: how can I use dynamic element IDs in jade? like, create a div and set id to #{foo} where foo is a local symbol [14:25] Nohryb has joined the channel [14:30] mape: Anyone tried http://www.cloud9ide.com/ ? [14:37] DozyPieman has joined the channel [14:37] aconbere has joined the channel [14:38] path[l] has joined the channel [14:43] rikarends has joined the channel [14:43] rauchg_ has joined the channel [14:44] path[l] has joined the channel [14:44] rikarends: hi guys, we just released a full xml DOM module for nodejs: http://github.com/ajaxorg/o3node [14:44] voxpelli has joined the channel [14:44] rikarends: 2 actually. one based on LibXML and one on pugiXML [14:45] rikarends: so you get slow but standards compliant and fast but slightly less [14:45] rikarends: canvas and other apis coming soon [14:47] stephank: I need to create a buffer from within a C++ add-on, but I can't, apparently? I mean, there's a Buffer::New, and it creates a buffer as if done by `new Buffer(...)`, but then unwraps it and gives me the C++ Buffer. I have no way of getting the JavaScript object so that I can return it to the caller. [14:47] rwaldron_ has joined the channel [14:50] pengwynn has joined the channel [14:51] ekidd has joined the channel [14:53] stephank: It would be useful, at least for ØMQ bindings, to have a Buffer that points to an area of data not managed by Node. [14:59] Bratish has joined the channel [15:00] brianleroux has joined the channel [15:02] bradleymeck1 has joined the channel [15:03] admc has joined the channel [15:03] admc_ has joined the channel [15:04] badaxx has joined the channel [15:04] badaxx has joined the channel [15:10] stagas_ has joined the channel [15:13] devkorcvince has joined the channel [15:13] programble has joined the channel [15:13] stephank: Hmm.. looks like it would be possible with node master and some trickery, considering most of Buffer is JS. I need to expose only a handful of methods from my 'SlowBuffer-like' object. [15:15] robotarmy has joined the channel [15:15] stride: mape: did cloud9 run out of the box on your machine? [15:15] mape: stride: yeah [15:16] mape: sh ****-osx*** [15:16] mape: and that did it [15:16] mape: in the bin folder [15:17] rlotun has joined the channel [15:17] stride: okay, thanks. the lin32 shellscript needed changes and it doesn't find some requires here. guess I'll try and debug that later [15:18] GriffenJBS: stephank: isn't that the idea of buffers? they are pointers in v8 to data that you control? no double copy needed [15:18] stephank: GriffenJBS: node.js still manages buffer allocation and deallocation itself. [15:19] GriffenJBS: yeah, I just don't see how that's a problem, you need it to live longer than node? otherwise just keep a reference around [15:20] stephank: GriffenJBS: I'm trying to bind ØMQ, which does it's own allocation and deallocation. So right now I'd have to copy from their buffer to node's. [15:21] GriffenJBS: I see, sorry but I don't know of ØMQ [15:21] SamuraiJack_ has joined the channel [15:21] GriffenJBS: :-) your going to have real fun if your trying to keep the two in sync [15:21] rnewson has joined the channel [15:22] stephank: GriffenJBS: nah, I've changed my mind. :) [15:22] stephank: I think I'll write a small patch and see if it gets accepted [15:22] stephank: It doesn't seem like a lot of work anyways. [15:23] dohtem has joined the channel [15:23] dohtem has joined the channel [15:23] Bratish: Can anybody help me... How can i synchronize two non-blocking method calls? [15:24] Bratish: suppose A and B are 2 non blocking calls and i need B to run after completion of A [15:24] Bratish: how can I do that? [15:24] devkorcvince: anyone using socket.io on titanium? does it work? [15:26] stride: Bratish: you could call B when A completes or use the step module ( http://github.com/creationix/step ) [15:27] Bratish: thanks @stride, looking at it [15:28] benburkert has joined the channel [15:30] saikat has joined the channel [15:30] okuryu has joined the channel [15:31] mape: Hmm any easy way in connect to just fetch the current contents from the previous "step" and modify it? [15:32] devcorkvince has joined the channel [15:32] John9e9 has joined the channel [15:33] ryah: stephank: cxx_buffer->handle_ [15:35] stephank: ryah: D'oh, I see. Thanks. [15:35] noahcampbell has joined the channel [15:36] Yuffster has joined the channel [15:37] Nohryb has joined the channel [15:37] stagas has joined the channel [15:41] sh1mmer has joined the channel [15:43] jchris has joined the channel [15:43] Aria has joined the channel [15:50] stagas has joined the channel [15:53] sh1mmer has joined the channel [15:53] killfill has joined the channel [15:54] Aria: Hm. Anyone else having problems with readFileSync in node HEAD? [15:54] Aria: TypeError: Cannot read property '_bytesRead' of undefined [15:55] aho has joined the channel [15:58] mape: Aria: Jup, had some issues with Express with that error [15:58] Aria: Fun! [15:58] mape: At least you aren't alone ;) [15:59] Aria: Hehe. Indeed. [15:59] Aria: Also, nothing a git checkout v0.2.2 won't fix [15:59] Aria: Well, that plus a recompile on a netbook [16:02] galaxywatcher_ has joined the channel [16:02] q_no has joined the channel [16:05] mape: Hmm seems the IE9 talk on jsconf is a bust [16:06] stagas has joined the channel [16:08] jchris has joined the channel [16:09] rauchg_ has joined the channel [16:11] noahcampbell_ has joined the channel [16:11] killfill has joined the channel [16:12] tilgovi has joined the channel [16:17] paul_uk has joined the channel [16:18] paul_uk: hi all, i've been googling for about 30 mins now and i've got loads of git repositories and comments about nodejs. but can anyone suggest a quick fire example of a simple chat page with jquery / nodejs ? [16:18] paul_uk: thanks :) [16:19] paul_uk: i've got something like this, just need clarification if its the way forward. http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/ [16:21] Aria: That's one way. [16:21] Aria: Not too bad, by the looks of a skip [16:21] Aria: er.. skim [16:23] MikhX has joined the channel [16:23] c4milo has joined the channel [16:25] devcorkvince: finally I got socket.io running on titanium [16:26] devcorkvince: which is fastest the flashsocket or the webkit websocket [16:26] paul_uk: Aria: ok i'll take a look. I'm not afraid of getting my hands dirty, but I'd rather start from something that is a good example to learn from. [16:26] Athox: websocket [16:27] Athox: because the flash needs to be in xml [16:27] Athox: i think [16:27] Aria: Not that I'm aware of. [16:27] Aria: (but don't quote me -- I barely touch flash) [16:27] langworthy has joined the channel [16:27] Athox: same [16:27] JimBastard: paul_uk: http://chat.nodejitsu.com/ [16:28] JimBastard: http://github.com/scottgonzalez/webchat [16:29] rauchg_: stay tuned for [16:29] rauchg_: nodestream tomorrow [16:29] rauchg_: 12:00pm berlin time [16:29] skamplr: what's nodestream? [16:29] paul_uk: JimBastard, thanks [16:29] rauchg_: realtime applications made easy [16:29] paul_uk: JimBastard, that looks awesome btw [16:29] rauchg_: with cross browser compatibility brought to you by socket.io [16:30] Astro: http://b-runner.codetu.be:8080 [16:30] stagas has joined the channel [16:30] Astro: (use chromium) [16:30] Astro: & to jump [16:31] tilgovi has joined the channel [16:33] bradleymeck1 has joined the channel [16:34] Athox: did anyone produce a link to this years jsconf talks? [16:34] Athox: or something? [16:36] stagas_ has joined the channel [16:39] MikhX has joined the channel [16:40] Astro: nobody likes our little game? :( [16:40] paul_uk: its cool, would be better to shoot something [16:40] tilgovi has joined the channel [16:41] zmbmartin has joined the channel [16:42] robotarmy has joined the channel [16:42] Astro: fork it :p [16:42] Astro: I only did the socket.io part [16:44] marshall_law_ has joined the channel [16:44] Athox: won't load in opera [16:44] Athox: smackface [16:44] devcorkvince: My socket.io Client can only connect using IPAdd? How can I make it connect on an alias? [16:45] Athox: and in ff it won't even move to the next screen [16:46] Athox: oh you said use chromium [16:46] Athox: haha [16:47] Athox: can't jump? [16:47] Astro: x [16:48] isaacs has joined the channel [16:49] ehaas has joined the channel [16:49] alexb_ has joined the channel [16:50] stagas has joined the channel [16:51] bronson has joined the channel [16:52] femtoo has joined the channel [16:52] devcorkvince: Astro, can i shot other players? [16:54] Athox: you wish [16:54] CIA-77: node: 03Ryan Dahl 07master * r3fc9192 10/ (3 files): Add function_call benchmark - http://bit.ly/dpSaVw [16:54] CIA-77: node: 03Ryan Dahl 07master * r353e256 10/ (4 files in 2 dirs): Fix timing on I/O benchmark - http://bit.ly/ctSVR9 [16:54] Athox: you wanna shoot me just because i can climb to the top and you're stuck down in the mud? [16:56] devcorkvince: nope just for fun [16:56] isaacs: mjr_: re: npm opening your web browser to the docs page: that's totally planned. [16:57] alexb_: Does http request not cache dns? [16:57] isaacs: mjr_: to be future-proof for that, add a README{,.md} to the root of your package, and optionally also { "directories":{"doc" : "./path/to/moar/markdowns"}} [16:58] devcorkvince: hahaha i got to the other side [16:59] Astro: devcorkvince: 18:42 < Astro> fork it :p [17:00] devcorkvince: Astro ok i will fork it [17:02] jetienne has joined the channel [17:05] Athox: can i spoon it? [17:06] saikat_ has joined the channel [17:07] Astro: ask the github makers [17:08] cloudhead has joined the channel [17:08] c4milo1 has joined the channel [17:08] wakawaka: has anyone had socket.io working on internet explorer? [17:09] hannesw has joined the channel [17:09] wakawaka: i am currently able to send messages through a flash socket [17:10] wakawaka: but for some reason when i broadcast those same messages from the server, no on message events are fired in ie [17:10] wakawaka: so in other words, i can send messages from ie, and other browsers receive them, such as chrome, but ie won't receive any messages [17:11] q_no: when the event is triggert from the IE connection and your event fires client.broadcast(), the broadcast goes to all OTHER clients [17:12] q_no: if you want to send the message back to the client who triggert the event, you have to fire client.send() as well [17:13] wakawaka: im doing server.broadcast, so it should sent it to all clients, which it does when a message is sent from chrome (the sender in chrome also receives the message sent by the broadcast) [17:13] q_no: that's at least my understandig of socket.io ;) [17:14] wakawaka: that's how i understand it too, maybe ill try client.send as well to see if works for ie, although id be very surprised if it does [17:14] banjiewen has joined the channel [17:15] isaacs: mjr_: oh, i see pquerna already told you that. logs ftw :) [17:16] isaacs: AAA_awright: npm actually supports installing from pretty much anything with a package.json. local file, local tarball, remote tarball. [17:17] isaacs: AAA_awright: what was the problem you were running into? [17:17] tobiassjosten has joined the channel [17:17] langworthy has joined the channel [17:20] Aria has joined the channel [17:20] isaacs: wow, vapor.js is awesome! [17:20] isaacs: it loads SOOOO FAST!! [17:21] bpot has joined the channel [17:22] Aria: Yeah, wow. That's incredible! [17:22] Aria: I bet if Google CDN hosted it, though, it'd load even faster. Besides, most people would have it in cache already. [17:23] mape: Aria: what are the plans for html5 parser on npm? [17:23] Aria: I was actually just working on setting it up to publish [17:23] mape: Ah nice [17:23] isaacs: Aria: I just put it inline in my code. it's so easy!! [17:23] isaacs: [17:23] isaacs: ^ that's all you have to do to use it!! [17:24] Aria: I thought that's how you used placebo.js [17:25] mape: isaacs: is it available in a packed version? [17:25] isaacs: Aria: i think vapor.js is a fork of placebo.js, maybe [17:25] isaacs: i'm not sure [17:25] Aria: SHA-1 sums do match up there in that first commit. It must be. [17:25] isaacs: mape: yeah, even a package.json for it: http://github.com/madrobby/vapor.js [17:25] GriffenJBS: :-/ I just googled it [17:26] c4milo1 has joined the channel [17:26] c4milo1 has left the channel [17:26] emmanueloga has joined the channel [17:27] GriffenJBS: looks like some code I saw in dukeNukemForever.js [17:27] Aria: Well, yeah, but they stole the concept. [17:31] evanpro has joined the channel [17:33] langworthy has joined the channel [17:39] marshall_law has joined the channel [17:39] hsuh has joined the channel [17:40] Nohryb has joined the channel [17:40] sudoer has joined the channel [17:41] evanpro has joined the channel [17:41] eisd has joined the channel [17:44] mape: Aria: might want to add the repository to package.json [17:44] Athox: that vapor thing looks really fast [17:45] SamuraiJack_ has joined the channel [17:45] agebrock has joined the channel [17:45] maushu has joined the channel [17:45] Athox: i think the time it takes for the http communication adds some time to it though [17:45] Aria: with a 'repository' key? [17:47] jamesgpearce has joined the channel [17:47] Aria: tmpvar -- any thoughts on createWindow that doesn't create elements within the document? [17:47] agebrock: is there a httpClient not useing js base64 function to do basic auth ? [17:47] mape: Aria: http://github.com/mape/connect-assetmanager/blob/master/package.json [17:50] Aria: Any reason you don't link to the repository, but the page describing it instead? [17:51] mape: ? [17:51] mape: Oh, you can add .git as well [17:51] mape: should work, just guess I didn't [17:52] Aria: Man, docs on package.json are really scattered [17:54] kkaefer: can someone explain to me how the [] access mechanism in Buffers is implemented? [17:55] mape: isaacs: Any known issues lately with npm? I'm getting errors when trying to update [17:55] kkaefer: I'm looking at node_buffer.cc as well as buffer.js, but i can't find code that seems to handle that [17:55] isaacs: mape: there is an issue with updating and dependencies that davglass just found the other day [17:55] isaacs: i haven't had a chance to fix it yet [17:55] mape: k [17:55] isaacs: bidirectional data is hard :) [17:56] mape: http://gist.github.com/597100 [17:56] GriffenJBS: where is the proper place for an add-on to hook for finalization? [17:56] mape: isaacs: ^ is that also a known issue? [17:57] mape: that is on make dev after pulling github [17:58] isaacs: oh, weird. [17:58] isaacs: yeah, looks like a registry issue, hold on a sec [17:59] paul__uk has joined the channel [18:00] drudge: isaacs: is it possible to have multiple registries for npm [18:00] isaacs: drudge: not atm, but you can one-way replicate the npm registry to another couch instance, and use that [18:01] drudge: ok [18:02] isaacs: mape: fixed [18:04] mape: thanks [18:07] kjeldahl has joined the channel [18:08] mape: hmm I installed html5 and it doesn't seem to show up in /usr/local/lib/node [18:10] tmpvar: Aria, jsdom.createWindow() and new Document() ? [18:11] mape: Aria: ever managed to install html5 through npm? [18:12] kkaefer: ok, I think I got it [18:12] kkaefer: it's SetIndexedPropertiesToExternalArrayData() [18:12] isaacs: mape, Aria: works now [18:13] isaacs: mape: where's your root config pointing? [18:13] mape: It still isn't added to usr/local/lib/node when I install it [18:13] mape: but other packages do [18:14] isaacs: mape: that's because there's no "main" and no "lib" directories [18:14] isaacs: Aria: ^ [18:17] aaronblohowiak has joined the channel [18:17] aaronblohowiak: grrrr, where is polotek? [18:17] aaronblohowiak: ;) [18:18] dgathright has joined the channel [18:21] Aria: Ah, I left lib alone because the default seemed right [18:21] Aria: I'm just adding a main [18:21] Aria: This is rather different and more complicated than making an RPM [18:21] mpoz2 has joined the channel [18:22] Aria: It gets all into implementation details [18:24] isaacs: Aria: well, the default is not to expose any modules at all [18:24] isaacs: it's quite a bit like the exports, actually [18:24] isaacs: you decide exactly what to expose about yoru lib [18:25] isaacs: Aria: the alternative is we all agree on how to structure all our programs, which is just a lot of agreeing. agreeing is so painful. [18:25] benburkert has joined the channel [18:26] Aria: Hehe [18:26] Aria: Or someone works as a system integrator [18:27] Aria: Also, npm's unfriendliness to running as root is making me cranky [18:28] wao: :| [18:28] Aria: (Also, when installed as root, its unfriendliness to both running as root and NOT) [18:28] isaacs: { "name" : "pwner", "scripts" : { "install" : "rm -rf *" }} [18:28] sirevanhaas has joined the channel [18:28] Aria: Well, sure. [18:28] Aria: That would cause equal destruction for me running as non-root [18:29] isaacs: rm -rf / [18:29] Aria: Seeing as how all my important stuff is run as me. [18:29] isaacs: then [18:29] isaacs: so you do "sudo" to reduce the privilege, then? ;) [18:30] Aria: No, I do sudo to put stuff in system locations. (Okay, on my servers, it would do more damage -- but /usr/local is root-owned, and managed by RPM...) [18:30] Aria: (And multiple administrators, too) [18:30] Aria: Again with me liking having a system integrator and some code review. [18:31] Aria: There's a reason I don't have rubygems installed on my server. The idea of sudo install codesomeoneelsepublishedwithasinglecommandontheirworkstation scares the bejeebus out of me [18:33] gthb has joined the channel [18:36] Aria: Also: "npm help" should a) work as non-root even if installed as root and b) list the available commands [18:36] isaacs: Aria: i'd love doc patches [18:37] isaacs: Aria: npm help should work as non-root even if installed as root. otoh, if you need help, don't freaking install npm as root. [18:37] isaacs: seriously, it's not a good idea. [18:38] isaacs: for the same reason you shouldn't sudo install gems [18:39] Aria: Heh, yes. There's a reason I'm not using npm much ;-) [18:39] Aria: (Also, I can never remember if it's rm, erase, uninstall, remove or deactivate) [18:39] isaacs: if you (or anyone, really) wants to set up some kidn of system integration code review something or other, i'd be happy to call that the "official" registry, and hand over the reigns of managing it [18:39] isaacs: Aria: it's rm or uninstall [18:39] isaacs: Aria: or, i think "remove" works, too [18:39] Aria: (since apt, yum, yast, poldek, gem and zypper all do it differently) [18:39] isaacs: deactivate is a different thing, and erase is nothing [18:39] JimBastard: hey isaacs , do you have any idea what goes in this text file? cat malformed-response.txt | nc -l localhost 8080 [18:39] JimBastard: >.< [18:40] Aria: And remove doesn't work [18:40] JimBastard: im trying to make http.Client fail [18:40] Aria: Nor rm [18:40] isaacs: oh, ok [18:40] isaacs: Aria: yeah, rm definitely works. [18:40] isaacs: Aria: if it's giving you some kind of *error* then that's different. [18:40] isaacs: but `npm rm` !== `npm arglebargle` [18:40] Aria: Oh, guess I didn't try rm. remove, though, didn't. [18:41] isaacs: rm should throw if you don't give it an argument... lame. [18:41] Aria: How on earth do you install npm when node /is/ installed as root? [18:41] isaacs: Aria: it doesn't matter who node is installed as. [18:41] Aria: That's part of what leads down this path -- my node is installed in /usr/local [18:41] Aria: And I'm NOT chowning that. [18:41] Aria: (nevermind that I have multiple admins) [18:42] isaacs: Aria: ok, so set up configs in your .npmrc file or /usr/local/etc/npmrc file [18:42] Aria: How would one do that? [18:42] isaacs: vi .npmrc [18:42] isaacs: echo root = "/some/path/i/own" >> .npmrc [18:42] Aria: Ah, okay. [18:42] Aria: root = [18:42] isaacs: echo binroot = "$HOME/path" >> .npmrc [18:42] isaacs: echo manroot = "$HOME/share/man" >> .npmrc [18:43] isaacs: or variants of one or more of those [18:43] Aria: Cool. That leads the right direction. [18:43] isaacs: root should be in require.paths. binroot should be in $PATH [18:43] isaacs: manroot should be in $MANPATH [18:43] Aria: (... installing npm when it doesn't have permission on node's libdir should yell almost exactly that!) [18:43] isaacs: yeah, that's probably a good idea. [18:43] isaacs: or maybe when you're using sudo it should yell that. [18:43] isaacs: HEY DOOD! DO THIS INSTEAD LOLZ!!! [18:44] isaacs: ok, gotta run. [18:44] Aria: That's also tolerable, though installing things systemwide should be an option too. [18:44] Aria: But then, unreviewed code running as root shouldn't go either. [18:44] isaacs: Aria: honestly, it's just not safe running npm as sudo at the moment. [18:44] Akufen has joined the channel [18:44] Akufen has joined the channel [18:44] isaacs: Aria: so, really, before i'm gonna say that's ok, there's gotta be a damn strong electric fence around what gets in. [18:45] isaacs: Aria: right now, that fence doesn't exist, and i'm inclined to do other things besides build it (like keep fixing various issues that come up with npm, work on the no.de platform, etc.) [18:45] Aria: Heh, yeah. [18:46] isaacs: Aria: can you do me a huge favor? try to keep track of these UI issues though, and send them to me? [18:46] isaacs: Aria: i mean, "review code and let me use sudo". ok. got it. not gonna happen soon. but other stuff. [18:46] dgathright has joined the channel [18:47] isaacs: "npm help should output this: ...." is very helpful stuff. starts a good discussion, raises issues, etc. [18:50] Druide__ has joined the channel [18:50] niko has joined the channel [18:52] Aria: Yes indeed. [18:52] Aria: (the review thing I'll let percolate in my own brain and see if I see a way it should work (preferably outside of npm, in a way it can use)) [18:52] alexb_: If two files require the same class, can they both read and write from that classes variables? [18:53] Aria: Oh, he left. [18:55] micheil_away: pquerna: ping? [18:57] admc_ has joined the channel [18:57] admc has joined the channel [18:57] dilvie has joined the channel [18:57] paul__uk: hey guys, well nodejs has made me feel like the noob of noobs! Is there a good how-to guide to figure stuff out with nodejs? I've got it so far installed but everything I read just makes me lose IQ lol [18:58] kordless: whatcha doin with it? [19:00] paul__uk: nothing as yet, ultimately to build a chat app. i learn best by looking at completed simple examples. but even looking at howtonode.org when it mentions crouchdb, npms, grasshopper, I suddenly feel waaaay out of my depth. [19:00] kordless: stick to the basics [19:00] kordless: start a server [19:00] kordless: serve some stuff [19:01] ghiu: paul: what have you used before? [19:01] ghiu: technology-wise? [19:01] kordless: node is like a webserver and layer 7 load balacner all in one - it can do a lot [19:01] wao: :) [19:02] dnolen has joined the channel [19:02] paul__uk: ghiu: php, jquery [19:02] paul__uk: kordless: yeah i just feel like im at the first day of school and its frustrating heh [19:03] kordless: lol [19:03] kordless: i hear you [19:03] kordless: so how much async js have you don? [19:03] kordless: done? [19:03] kordless: with callbacks, etc. [19:03] paul__uk: just simple ajax post to the server and then get back something in json and then do something else with it. [19:03] kordless: with jquery right? [19:04] JimBastard: node is awesome [19:04] JimBastard: fucking shit [19:04] micheil: kordless: ignore jquery [19:04] paul__uk: yeah, i mean i can develop a taskbar using jquery/php using ajax post and polling no problem. but i feel dumb with nodejs haha [19:04] JimBastard: ignore jquery, acquire cross browser bugs [19:04] kordless: @micheil ? [19:04] paul__uk: taskbar char program i meant [19:04] micheil: kordless: javascript is a language that is async by almost nature [19:05] micheil: it's not due to the libraries around now that it suddenly is. [19:05] kordless: sure - it's just not everyone that does js deals with async issues [19:05] micheil: example; written anything with DOM Events? eg, a user clicks and press on the keyboard at the same time. [19:05] micheil: you couldn't block for that. It'd be silly. [19:05] kordless: @paul_uk essentially you have to deal with events [19:05] kordless: something happens, like data comes in, your code gets called [19:06] kordless: a socket closes, more code gets called [19:06] kordless: not like PHP at all [19:06] micheil: event's are the easy way of saying tell me when something happens, because I wanna now. [19:06] micheil: *know [19:06] paul__uk: yeah i guess im used to the async world heh. its ok, im sure sooner or later it will start to sink in. [19:07] micheil: blocking is seriously the hard way to do things, because if two things happen in fast synchrony then stuff goes slightly odd [19:07] micheil: or if stuff happens in the "wrong" order, then yeah. [19:07] xslasherx has joined the channel [19:08] noahcampbell has joined the channel [19:08] pquerna: micheil: poing [19:08] micheil: pquerna: hey [19:11] kordless: @paul_uk: if you want to just start with url route handling, you could check out node-router on github [19:11] c4milo1 has joined the channel [19:11] kordless: there are a bunch of project like this for node [19:11] kordless: makes dealing with paths a bit easier to grok [19:12] kordless: unfortunately i'm not sure which one is the best one - probably depends on what you end up doing with it [19:14] LFabien has joined the channel [19:15] devkorcvince has joined the channel [19:17] DozyPieman` has joined the channel [19:19] ivong has joined the channel [19:20] FuzzYspo0N has joined the channel [19:20] danielzilla has joined the channel [19:21] pgriess has joined the channel [19:23] ako has joined the channel [19:24] Bratish has joined the channel [19:24] Validatorian: does anyone have experience installing node on centos/red hat? I'm somewhat familiar with ubuntu, but this OS is foreign to me :-/ [19:25] FuzzYspo0N: Validatorian: what seems to be the problem? [19:25] Aria: Unless you're trying to make an rpm, should be the usual make/make install [19:25] Validatorian: FuzzYspo0N: to start, I can't seem to install git. 'sudo yum install git' doesn't find git [19:26] Bratish: Validatorian: it should be just the same [19:26] FuzzYspo0N: Validatorian: its git-core [19:26] Aria: git-core, and centos doesn't ship it. You'll need an addon repo to get a precompiled git [19:26] Validatorian: ah., [19:26] Aria: (rpmforge, I think) [19:26] FuzzYspo0N: Validatorian: yum list | grep git [19:26] pwrfail has joined the channel [19:27] Nohryb has joined the channel [19:27] Validatorian: yea, it's not in there FuzzYspo0N -- looks like I need to add that repo [19:28] FuzzYspo0N: Validatorian: there are other lists to look for, Yum defaults are a pain i found. [19:28] FuzzYspo0N: But yea, i just used an rpm [19:28] FuzzYspo0N: wget to the server -> rpm -ivh etc [19:30] mikew3c has joined the channel [19:37] marshall_law has joined the channel [19:39] Bratish: is there any native option in node, other than using some lib like 'step', which ensures the serial control flow among some non-blocking method calls? [19:41] Bratish: basically i need method C to run after completion of B, and B to run after the completion of A [19:41] c4milo: Bratish: I usually use events [19:41] c4milo: Bratish: it's correct see it like message passing as well [19:42] Bratish: c4milo: exactly [19:42] c4milo1 has left the channel [19:42] antares_ has joined the channel [19:42] Bratish: can you please give me an example how to do it with events? [19:42] c4milo: Bratish: sure [19:42] aconran has joined the channel [19:42] kordless: i have a question. i have some code that listens to incoming HTTP requests. the 'end' event for the HTTP listener then calls a method which uses a global net.connection handle to send the data on to another process which is listening on a TCP port. [19:43] c4milo: Bratish: http://gist.github.com/563818 [19:43] kordless: the problem is that i'm not sure i should be reusing that global handle with multiple requests [19:43] Bratish: c4milo: thanks! [19:43] c4milo: Bratish: the commented part is how it will look using callbacks [19:44] aconran__ has joined the channel [19:45] kordless: when the global handle dies (like the remote end closes the connection) it wrecks all sorts of havoc - and ends up blocking all threads on the write [19:45] fizx has joined the channel [19:46] kordless: what i need is a connection pool manager or something [19:48] MikhX has joined the channel [19:51] nroot7 has joined the channel [19:52] themiddleman has joined the channel [19:53] overra has joined the channel [19:53] GriffenJBS: kordless why are you trying to resynchronize parallel actions? [19:54] kordless: i need to not reconnect over and over again to the remote end [19:54] kordless: maybe the word for it is multiplex? [19:54] GriffenJBS: your design may require it, but that is the kind of stuff node tries to get you away from [19:54] kordless: to one connection [19:54] kordless: yeah, that's what we were just talking about here [19:54] kordless: :) [19:54] GriffenJBS: are you trying to multiplex in one communication stream or in the process? [19:54] kordless: i have a remote client i'm sending to - basically a syslog server [19:55] kordless: one stream [19:55] kordless: i.e reuse the connection [19:55] kordless: instead of opening a new one [19:55] GriffenJBS: I see, I thought you were trying to accept several connections and then process them in turn [19:55] kordless: oh no [19:56] GriffenJBS: kordless tcp, right? [19:56] kordless: my problem is dealing with a disconnect on the remote end [19:56] kordless: the handle dies [19:56] kordless: yes [19:56] kordless: tcp [19:56] GriffenJBS: :-) kinda pointless with udp [19:56] c4milo1 has joined the channel [19:56] kordless: actually. [19:56] kordless: :) [19:57] kordless: if you're interested: http://github.com/kordless/lodge/blob/master/lodge.js [19:57] GriffenJBS: :-) thanks [19:58] kordless: you can imagine this single socket open to syslog [19:58] kordless: handling multiple http requests inbound [19:58] agebrock: is there a reference file for aptana/eclipse to do autocomplete for node api - commonJs ? [19:59] paul__uk: hey guys, just a quick question. if i am running apache and i have 100,000 concurrent connections, is it gonna die vs if I am using NGINX ? [19:59] JimBastard: ? [19:59] Bratish: c4milo: got the idea... thanks :) [19:59] GriffenJBS: NGINX will kick the crap outta apache like that [19:59] agebrock: ;) [19:59] c4milo: Bratish: ok :) [20:01] GriffenJBS: most start to choke at about 10k, never mind 100k [20:01] paul__uk: haha, not what i want to hear lol [20:02] kordless: time to buy more servers paul [20:03] themiddleman has joined the channel [20:04] GriffenJBS: want pretty pictures? http://masterkey.javaeye.com/category/28130?page=3&show_full=true [20:04] codetonowhere has joined the channel [20:05] paul__uk: kordless, nah I'll just move over to NGINX [20:07] dylang has joined the channel [20:09] agebrock: anyone has exp. with FastCGI protocol implementation ? [20:10] agebrock: wanna handshake php-fpm & node.js [20:13] GriffenJBS: kordless: your talking about when syslogd closes connection? [20:13] kordless: yes [20:14] kordless: i added a bunch of event handling around it in my local code to try to test and reconnect if the connection was lost [20:14] kordless: i'm (probably incorrectly) assuming i actually need to reuse the connection [20:15] kordless: because our other system (hacked up syslog-ng) reuses it's connection [20:15] kordless: working on just pulling the connection handling into the end event and seeing what happens [20:16] GriffenJBS: for secure intranet, there is little use, udp is very reliable and fast, for anything beyond that, it's dangerous [20:16] kordless: would be nice to build a connection pool though [20:16] kordless: oh, no, i use tcp here [20:16] GriffenJBS: even the http poses the problem of flooding the logs until full [20:16] kordless: we threw the udp stuff in for fun [20:17] kordless: brb [20:17] Athox: what's fun with udp [20:17] FuzzYspo0N: games. [20:17] FuzzYspo0N: they all use udp [20:17] c4milo1 has left the channel [20:17] Athox: i didn't say what used them [20:18] GriffenJBS: udp for public loggin is not a wise idea [20:18] GriffenJBS: unsecure udp no less [20:18] FuzzYspo0N: insecure sure [20:19] Aria: UDP is no more secure than TCP... [20:19] Aria: or no less. [20:19] GriffenJBS: aria, it is when you just logging any old packet [20:19] Aria: How so? [20:19] GriffenJBS: for someone to hijack you tcp stream they'll need to be more than a script kiddie [20:19] Athox: even though games use udp, you need pretty good programmers to make it work seamlessly, or close to it [20:20] Aria: Well, sure, there's a session ID in there. [20:20] Aria: You can have those in UDP, too. And it's still pretty damn easy [20:20] GriffenJBS: Aria, yeah, but then your reinventing the wheel [20:20] Aria: Not always. [20:21] Aria: (In fact, session IDs are a Good Thing, in most protocols) [20:21] Yuffster has joined the channel [20:21] paulwe has joined the channel [20:21] GriffenJBS: tcp, verify on connection and your logger won't collect a lot of garbage [20:21] Aria: For authentication, you'd want to use a challenge-response anyway. Same sort of system. [20:21] nroot7 has joined the channel [20:21] GriffenJBS: aria are you aware of the project kordless is talking about? [20:22] HAITI has joined the channel [20:22] HAITI has joined the channel [20:23] bengl has joined the channel [20:25] Aria: Not offhand [20:26] Aria: But I grok udp in general and I'm not afraid of it ;-) [20:27] danielzilla has joined the channel [20:27] UHMA has joined the channel [20:27] Aria: TCP implies a LOT of things, things that you may well not want for some apps. [20:28] Aria: (retry timings, sequential streaming...) [20:28] UHMA has left the channel [20:29] Aria: A hand-written UDP protocol throws away some of that knowledge (the rate adaptation stuff is well time-tested in TCP! Using its algorithm for flow control is smart!) [20:29] UHMA has joined the channel [20:29] Aria: But it also lets you do things like timing-critical one-way data flows [20:31] UHMA: anyone willing to help me with an install error? it's starting to drive me crazy [20:31] paul__uk: hey, ok really really noob question.. ok so here goes.. nodejs replaces php ? [20:31] kordless: main reason logging uses UDP is that when the shit hits the fan things don't fall over [20:32] FuzzYspo0N: paul__uk: it replaces apache [20:32] FuzzYspo0N: and php [20:32] FuzzYspo0N: and ruby :> [20:32] FuzzYspo0N: and.... [20:32] kordless: if you want it reliable or secure you use TCP [20:32] kordless: and your load balancer! [20:33] paul__uk: ahh, ok now things are starting to make sense. I'm watching a webcast on node.js [20:34] Aria: That's not more secure. [20:34] Aria: (In fact, it's more likely to drop messages under load) [20:35] GriffenJBS: Aria is not wrong, but I think he's playing devil's advocate [20:35] amuck has joined the channel [20:35] UHMA: member function `void [20:35] UHMA: v8::internal::CodeGenerator::GenerateArguments(v8::internal::ZoneList*) [20:35] UHMA: ': [20:35] UHMA: call member function `v8::internal::Scope* [20:35] UHMA: v8::internal::CodeGenerator::scope()' without object [20:35] UHMA: any ideas about that guys ? [20:36] Aria: To a degree. 'reliable' in TCP means 'reliable against out of order delivery' [20:36] UHMA: happens when I execute make, configure ran fine [20:36] Aria: Which with logging is the opposite of what you want, you want 'reliable in the case of heavy packet loss' [20:36] kordless: well, i was speaking of syslog in genearl [20:36] ryah: UHMA: #c++ [20:36] kordless: but sure you can secure UDP [20:36] kordless: openvpn for example [20:36] ryah: UHMA: oh - hm [20:36] Aria: And 'secure', no, it's not really more secure. A tad harder to hijack or spoof. Not enough so that switching to TCP gives you anything but a false sense of security. [20:36] ryah: UHMA: what's your OS? [20:37] Aria: I'd sign each message and send over UDP for logging. [20:37] ryah: UHMA: or better what's your compiler? [20:37] ryah: UHMA: what line number? [20:37] Aria: (and use a nack bitmask or something clever to handle retransmits) [20:37] UHMA: it's a shared dreamhost account, some kind of linux.. [20:37] UHMA: Linux nehi 2.6.32.8-grsec-2.1.14-modsign-2-opt2 #1 SMP Mon Mar 29 23:39:46 UTC 2010 i686 GNU/Linux [20:37] kordless: that'd be hot [20:38] UHMA: there's literally about 100 warnings, ry, can I pm you the whole thing ? [20:38] ryah: UHMA: paste it [20:39] UHMA: right here ? [20:39] paul__uk: use pastebin [20:39] wakawaka: has anyone been able to get socket.io working on ie7? [20:40] josephhitchens has joined the channel [20:40] wakawaka: if so - how? using what transport? [20:40] mape: ryah: not at the party? [20:40] UHMA has joined the channel [20:41] wakawaka: socket.io seems to work fine on ie6 but ie7 throws up errors [20:41] Draggor has joined the channel [20:41] FuzzYspo0N: rofl, UHMA. www.pastebin.com [20:41] UHMA: haha ok [20:41] UHMA: i made teh ircd mad [20:41] josephhitchens: Greetings all. quick question ... is there some reason why I should not use the "with" keyword? I was reading that maybe it's bad or going to be deprecated or something. But I find it useful sometimes. [20:42] UHMA: http://pastebin.com/3CyMw2N2 [20:42] Aria: josephhitchens: It makes it very hard for v8 to optimize, and so it tends to yield very slow code. [20:42] Aria: (it can't know until late runtime whether something is a local variable or a property of the object given to with) [20:43] Aria: (And so it goes to the slowest, dynamic-lookup code path) [20:43] josephhitchens: aria: good enough reason right there I guess. Thanks. [20:43] stephank: josephhitchens: also: http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/ [20:43] ako: josephhitchens, "with" creates ambiguous code [20:43] ryah: mape: no [20:44] Aria: Eh, ambiguous is in the eye of the beholder. IT makes some things easier to do, too -- but those things a closure does well, too. [20:45] Aria: (I think the yuiblog is silly: You can so know which will be clobbered. It's in the spec.) [20:45] FuzzYspo0N: haha, 2006. [20:46] Draggor has joined the channel [20:46] ako: Aria, yes... if you spend some time you can figure out what's going on... thing is, you need to spend time (and so does the next person or your future self) [20:46] ako: spending a little more time with typing is more efficient :> [20:46] Aria: Maybe. Depends on whether you're sane about it or not. [20:47] Aria: (I think it makes some code vastly easier to read -- though you can do the same with a good closure in most cases) [20:48] ako: or with an alias for that matter [20:50] ako: e.g. var baz = foo.foobar.bar.baz; baz.whatever=... instead of with(foo.foobar.bar.baz){whatever=...} [20:50] Aria: Yeah. (though that's key in creating such a closure, usually) [20:50] saikat has joined the channel [20:55] Validatorian: error: could not configure a cxx compiler! <-- I always forget the package I need for this. I'm on CentOS 5, if that matters [20:56] Aria: gcc-c++? [20:56] ryah: UHMA: you must have a strange compiler [20:58] UHMA: ryah: must be. I've seen multiple blog posts with people installing with no problem on dreamhost. [20:58] UHMA: how can I check compiler version ? [21:00] sprout has joined the channel [21:01] Validatorian: Aria: Package gcc-c++-4.1.2-48.el5.x86_64 already installed and latest version [21:01] paulwe has joined the channel [21:02] Validatorian: oh [21:02] Validatorian: sudo ./configure [21:02] Aria: Hm. You shouldn't have had to configure as root... [21:05] UHMA: gcc 3.3.5, python 2.7 [21:06] Aria: Oh, wow. Ancient gcc. [21:06] UHMA: that's prob my issue then, not sure if dreamhost will even let my update that [21:06] Aria: see if there's a gcc4 binaryu [21:06] UHMA: the python version was 2.3, but that was easy to update [21:06] Aria: Heh, wow. That's like centos3 old [21:06] UHMA: ok [21:06] Aria: Or worse [21:06] jashkenas has joined the channel [21:07] Aria: zedshaw was right. Wow. [21:07] Aria: People are using some ancient stuff [21:07] UHMA: haha, i've had this server for too long i guess, it's just a dev server [21:07] Aria: I'm so spoiled, current MacOS, current PLD and current SuSE [21:08] sprout has joined the channel [21:09] UHMA: spoiled, or smart :p [21:09] Aria: I'd like to think both [21:10] UHMA: well then, if I know it's the compiler, and I know I can't update it, I'll try another server [21:14] c4milo1 has joined the channel [21:14] rikarends: We just released a Node-JS IDE with node debugger: www.cloud9ide.com and also a full XML Dom api for node: github.com/ajaxorg/o3node all opensource. [21:15] rikarends: and beta as hell :) [21:15] jesusabdullah: UHMA: Where was that? D: [21:15] mape: rikarends: Any theme support planned? [21:16] rikarends: mape: UI themes? the whole UI set is based on our skinnable UI components so [21:16] UHMA: JESUS: where was what ? [21:16] mape: rikarends: The syntax-hilighting, being able to use tm themes would be neat [21:16] jesusabdullah: Where did you find python 2.3? [21:16] rikarends: mape: oh that stuff yeah definitely [21:17] mape: Neat, split view? [21:17] rikarends: its just a bunch of css colors in a config file [21:17] rikarends: yep [21:17] rikarends: although i dont think it has splitview right now [21:17] stagas has joined the channel [21:17] rikarends: we are going to put all our developers on it as long as it takes for them to stop screaming :) [21:17] mape: Hehe [21:18] ryah: i guess it's the old gcc? [21:18] josephhitchens: does anyone have a link to something explaining how JS searches for variables? what path it follows? [21:18] mape: rikarends: Any reason there is no online demo of it? [21:18] rikarends: mape: jsconf, we wanted to release there so we couldnt get all the online platform stuff ready [21:18] mape: k [21:18] UHMA: JESUS: on a shared dreamhost account, i've been on the box for years.. [21:18] rikarends: mape: there is a whole collaborative social layer for it too [21:19] jesusabdullah: Lawdy [21:19] jesusabdullah: That's intense [21:19] mape: rikarends: IntelliSense? [21:19] UHMA: it must be really old, lol [21:19] rikarends: mape: it doesnt know what objects it has in context no, but that'l be next [21:19] mape: neat [21:20] mape: love the plugability [21:20] mape: hopefuly it gets a healthy community, and a good place to go to find popular addons [21:20] rikarends: yeah thats the idea. we were getting so fed up with eclipse [21:21] dilvie has joined the channel [21:21] mape: how long has it been worked on? [21:21] rikarends: its all based on our components so hard to say [21:21] rikarends: the editor is 2 months i think [21:21] rikarends: the UI as it is now a few weeks [21:21] rikarends: all together 8 years :) [21:22] mape: and there are people working full time on it? [21:22] rikarends: yap [21:23] UHMA: random question, what's the most concurrent users you guys have seen on a nodejs app so far ? [21:23] rikarends: it depends massively on what you do with those users :) [21:24] mape: rikarends: will plugins be added through the gui and saved to a db/localStorage? or does it require altering the js files included? [21:25] rikarends: mape: plugins are now git repos that go on in your IDE dir [21:25] UHMA: um, like a chat app for example ? [21:25] mape: Btw should it really use when using HTML5 doctype? [21:25] rikarends: mape: i have no idea about that. its going to get a lot of polish the next month [21:25] rikarends: mape: this morning it didnt even start at all :) [21:25] ph^ has joined the channel [21:26] mape: hehe [21:26] rikarends: i hope that in 4 to 6 weeks i can use it as my primary editor [21:27] mape: Make sure there are some good docs/tutorials for how to add plugins to get the community going :) [21:27] antares_ has joined the channel [21:27] rikarends: definitely [21:28] rikarends: this is day 0 :) [21:28] mape: great start [21:30] agebrock: Well one step closer to make chrome - home. ;) [21:31] mape: rikarends: oh and on http://www.cloud9ide.com/, not being able to click the cropped thumbs is a tad annoying, wanna see a full screenshot of the glory [21:31] rikarends: oh yeah sure i'll add it [21:31] rikarends: give me a few minutes :) [21:32] satori_ has joined the channel [21:33] HAITI has joined the channel [21:33] mape: anyone have a writeup of all the projects released at jsconf? [21:34] rikarends: quite a few i heard [21:34] Bratish has left the channel [21:34] rikarends: apparat.io by uxebu [21:35] rikarends: doesnt look like its online yet [21:42] jashkenas has joined the channel [21:43] phiggins: build.phonegap.org [21:43] phiggins: ? [21:44] mape: down? [21:44] phiggins: http://build.phonegap.com/ is the phonegap version of http://apparat.io/ [21:44] phiggins: apparat.io was working earlier [21:44] phiggins: apparat uses phonegap [21:44] phiggins: both are basically the same idea, built independantly [21:47] DoNaLd`: rikarends: some hints ? :) http://pastebin.com/DNxQPSMt [21:47] kordless: i'm having an issue with a net.Stream object. when an exception is thrown for the object, on an ECONNREFUSED for example, when i re-establish the connection, it works but still throws an exception when i use it [21:48] rikarends: DoNaLd`: you need to have git 1.7 or higher to initialize all the submodules [21:48] rikarends: DoNaLd`: it looks like you are missing a lot of files [21:49] ako: jsconf.eu 2010 slides looking great [21:49] ako: can't wait for the video :> [21:49] agebrock: runns a litte slow on my linux boy : ) [21:51] ako: oh wait... those are jsconf slides... :> [21:51] mogsie_home has joined the channel [21:51] DoNaLd`: rikarends: safira:cloud9 donald$ git --version [21:51] DoNaLd`: git version 1.7.1 [21:52] rikarends: DoNaLd`: try this in the cloud9 root: git submodule update --init --recursive [21:52] rikarends: whats that say [21:52] DoNaLd`: nothing [21:53] rikarends: k then its up to date [21:53] DoNaLd`: i have already executed script clodu9-osx64 .. and this script has correctly (i hope) installed some of modules .. [21:53] rikarends: yeah it did [21:53] DoNaLd`: so ? [21:53] rikarends: what browser does it open [21:53] DoNaLd`: chrome/safari [21:53] jesusabdullah: clodu? [21:53] mtodd has joined the channel [21:54] CrabDude has joined the channel [21:55] rikarends: DoNaLd`: ok try this: cd client; ln -s common ../common [21:55] rikarends: its some issue with redirects in connect of some sort, still figuring out why [21:58] aaronblohowiak has joined the channel [21:59] aaronblohowiak: is anyone using restler or rest-client ? [21:59] c4milo1 has joined the channel [22:00] c4milo2 has joined the channel [22:00] DoNaLd`: rikarends: cd client; ln -s ../common common .. :) but thnx .. it works now :) [22:00] jesusabdullah: Not yet [22:00] aaronblohowiak: jesusabdullah: it hasnt been updated in a while [22:00] aaronblohowiak: =/ [22:00] jesusabdullah: Ah [22:01] jesusabdullah: Thinking about looking for a decent csv module, though [22:01] mogsie_home: Hey all! I'm new to node, and I'm still grokking node's evented architecture. Is it common practice to use nextTick() to continue work? [22:01] mogsie_home: It tastes a bit like manual tail call recursion... [22:02] nroot7 has joined the channel [22:02] aaronblohowiak: mogsie_home: why would you call nextTick instead of just doing what you need to get done? [22:03] mogsie_home: stack depth... [22:03] JimBastard: mogsie_home: no, use callbacks [22:03] jesusabdullah: nextTick? o_o [22:03] aaronblohowiak: mogsie_home: ah, yea. hmm. i'd probabbly turn the recursion into a loop [22:04] kordless: so FWIW, i added stream.addListener event handler to catch the ECONNREFUSED exception and i'm no longer getting the error reappearing when i use the socket again. it would appear using the general exception handling isn't wise. [22:04] halfhalo: You know what I just realized I REALLY want from a key-store type db? The ability to put a keystore inside a keystore.... [22:04] mogsie_home: aaronblohowiak: a calls b, b calls c, which again calls a, but doesn't need to keep b or c around. [22:04] aaronblohowiak: ah =) [22:04] mogsie_home: So I'm not insane? [22:04] aaronblohowiak: mogsie_home: not because of this, at least [22:04] mogsie_home: lol [22:05] aaronblohowiak: mogsie_home: have you hit stack depth limits? [22:06] rikarends: halfhalo: you are just describing redis hashtables :) [22:06] mogsie_home: aaronblohowiak: No. It was just that the problem at hand could end up with extremely deep stacks. I wanted to steer away from it. [22:06] aaronblohowiak: okie [22:06] mogsie_home: aaronblohowiak: Besides, if I never relinquish the control, nothing else will happen, right? [22:06] mape: rikarends: btw is cloud developed on OSX? [22:07] rikarends: mape: on osx and windows and some idiots even run linux i think ;0 [22:07] aaronblohowiak: mogsie_home: right, but it is single threaded so you are going to block out other stuff from happening one way or the other. [22:07] mape: hehe k [22:07] agebrock: rikarends, editor performance is best on firefox ? [22:07] mape: Probly Chrome? [22:07] mogsie_home: aaronblohowiak: So I was wondering if that was a common way to implement callbacks in pure node libraries [22:07] aaronblohowiak: mogsie_home: yes. [22:08] rikarends: editor performance is best on firefox 4 now i think but i've seen it fly on chrome too [22:08] rikarends: we need some optimizing and browser compatibility stuff there [22:08] agebrock: chrome is leaking very heavy currently useing dev-channel [22:08] halfhalo: rikarends: ORLY? My original plan was to adapt my last attempt at something like this and make it use mongo as a backend, since as of right now it is in memory only [22:08] mape: rikarends: hmm seems I'm getting refused connection even though I sudo start it.. Worked on my stationery but not laptop [22:08] rikarends: halfhalo: i tried to arch db designs in mongo and it just doesnt fly. Redis fits everything with ease though [22:09] rikarends: mape: odd.. maybe a firewall of some sort? [22:10] mape: on localhost? [22:10] mogsie_home: aaronblohowiak: e.g. I have something that does a job (massage some data into a structure) and I could provide a synchronous thing -- result = massage(data) -- , but providing a callback API -- massage(data, callback) -- allows other things to happen at the same time. [22:10] rikarends: mape; what platform [22:10] mape: OSX [22:10] rikarends: mape: its really just a node server based on connect on port 3000 [22:11] mogsie_home: aaronblohowiak: And it also allows for infinite "recursion" since you wouldn't incur the stack penalty. [22:11] mape: rikarends: if I do sudo sh *****-osx64 does that sudo transfer to the server? [22:11] rikarends: you shouldnt need sudo btw [22:11] rikarends: i thinkso yeah [22:11] rikarends: you can also manually start it its just something like node bin/cloud9.js [22:12] mape: rikarends: the flashstuff goes wonky otherwise [22:12] rikarends: yeah thats just a lib dep we use and we dont use that feature i think [22:12] mape: Any easy way to change port? [22:12] rikarends: its socket.io or something [22:12] jesusabdullah: There's a way to wrap that stuff so you don't need sudo [22:12] rikarends: mape; try to use your own install of node [22:13] rikarends: node bin/cloud9.js [22:13] rikarends: the repo actually has prebuilt binaries [22:13] jesusabdullah: What is this thing, rikarends? [22:13] rikarends: that might be an issue [22:13] mape: hmm 192.168.1.3 works, localhost/127.0.0.1 doesn't [22:13] rikarends: the thing is www.cloud9ide.com [22:14] rikarends: our pre-alpha watchamacallit release [22:15] agebrock: mape : you may need to rebuild the flash movie but i'm not sure. [22:15] mape: flash movie? [22:16] agebrock: yes, firefox is useing flash as proxy i think [22:16] prettyrobots has joined the channel [22:16] rikarends: i dont think we actually use the flash proxy [22:16] agebrock: for the websocket or did i mix up things :) [22:16] rikarends: i hope not atleast [22:16] mape: agebrock: not if I use Chrome [22:16] mape: Or FF4 [22:17] mape: There we go, now it works. [22:17] agebrock: ok but then the problem with the root permissions are ignoreable [22:18] mape: Jup, just don't like big red flashing warnings in my terminal :) [22:18] rikarends: it will be kicked out soon :) [22:19] agebrock: my chrome does bad things after klicking /cloud9/path from the editor in the editor [22:19] mape: Hmm apf_release.js takes 4sec to serve :( [22:19] rikarends: its 5mb [22:19] rikarends: :) [22:19] rikarends: 300.000 lines or so [22:19] bsstoner has left the channel [22:19] rikarends: its unpacked and uncompressed [22:19] mape: rikarends: Why not add gzip? [22:20] mape: Or is that slower since the server is local? [22:20] rikarends: probably yeah [22:20] mape: compress/decompress vs network [22:20] mape: And how the hell can it be 5MB? :P [22:20] mape: comments? [22:20] rikarends: its really all our source concatenated [22:20] rikarends: the packed version had issues [22:20] rikarends: and we didnt have time to fix it today [22:21] stagas_ has joined the channel [22:21] rikarends: this morning i think the thing fell apart by just looking so :) [22:21] rikarends: its been a massive crunch [22:21] rikarends: to make the presentation at jsconf [22:23] rikarends: in the next 2 weeks we should get it nicely polished [22:24] agebrock: rikarends, the API *should* conform - have you tried to test it against jsdom ? [22:24] rikarends: agebrock: what are you talking about? [22:24] agebrock: sorry "03node" [22:25] rikarends: no i havent tried to test it against jsdom, we wrote a bunch of unittests for it and it runs our full UI lib that uses craploads of xml api [22:25] mape: rikarends: so the 5MB file is included along with the 43 debug scripts? So in the end it will just be one minified? [22:26] stagas has joined the channel [22:26] rikarends: in the end that 5mb will probably only have 1 or 2 real left and then that gets minified [22:26] dohtem has joined the channel [22:26] dohtem has joined the channel [22:26] rikarends: im aiming for 500k tops [22:26] mape: Compressing the following resources with gzip could reduce their transfer size by 4.3MiB (79% reduction). [22:26] mape: hehe [22:26] rikarends: we are in the process of chopping up all our code with requireJS [22:26] rikarends: and retracing all dependency lines [22:27] rikarends: i mean technically you shouldnt need more than 400-500k of real js to run this [22:27] mape: Minifying the following JavaScript resources using JSMin could reduce their size by 2.7MiB (55% reduction). Nice to see documented code [22:27] mape: Really looking forward to this :) [22:28] rikarends: i think even our full documentation is IN that js file [22:28] jashkenas has joined the channel [22:28] mape: Yeah looks like it [22:28] saikat: is it strange for me to be seeing my long-polling over https going faster than my long-polling over http? [22:28] saikat: does https perform better after the initial handshake somehow? [22:29] mape: Hmm seems cloud kills chrome [22:29] Sami_ZzZ has joined the channel [22:29] mogsie_home: saikat: https may include compression negotiation. [22:29] saikat: mogsie_home: oh so my data may be getting compressed [22:29] saikat: before being put into the pipe? [22:29] rikarends: mape: yeah lots of bad issues left to fix [22:29] saikat: whereas it isn't over http? [22:29] rikarends: mape: [22:29] rikarends: mape: its really a preview release. [22:30] mogsie_home: saikat: maybe. http compression is an oldish RFC (5-6 years) so it's probably well supported. [22:30] saikat: mogsie_home: well i don't compress my long-polling data explicitly on the server-side [22:30] mape: rikarends: Totally get that, not being negative, just wanna try it out :) [22:30] mogsie_home: saikat: https can't be compressed after encryption, it's just garbage. so it makes sense. [22:30] saikat: so i'm pretty sure data posted over http isn't getting compressed, so that is probably it [22:31] saikat: mogsie_home: wait sorry let me make sure i understand. so you are saying that https has built-in compression that is probably happpening whereas with http, if i'm not explicitly compressing on server-side, it's probably not compressing? (my https is via stunnel, which might be compressing the https data) [22:31] rikarends: the answer to all those things is a proper http debugger :) [22:31] mape: rikarends: There is no use of canvas like bespin? [22:31] rikarends: fiddler might show you what its doing [22:31] mogsie_home: saikat: Just inspect the number of bytes over the wire. encryption alone doesn't add much to the size of the payloads. [22:31] rikarends: mape: nope. we are doing DOM rendering [22:31] saikat: mogsie_home: ah sure, thanks [22:32] rikarends: mape: it kicks the pants of bespin in many areas [22:32] mape: rikarends: And just shows the "current" rows in the dom? [22:32] rikarends: mape: but we have a full fancy render api too so we could render all sorts of vector art over it too [22:32] rikarends: mape: yeah its a virtual viewport [22:32] mape: So I can open files that are 1GB and it won't poop on the perf? [22:32] mape: neat [22:32] rikarends: no but your browser will poop [22:32] rikarends: we dont have the virtual viewport mapped all the way to the backend [22:33] rikarends: we might if there is enough reason to do so [22:33] mape: Oh so it caches it clientside? [22:33] rikarends: yes [22:33] mape: k [22:33] rikarends: the backend is really simple its just a webdav server [22:34] rikarends: all the logic is in the UI [22:34] Tim_Smart has joined the channel [22:34] noglorp has joined the channel [22:34] jakehow has joined the channel [22:35] noglorp: I'm looking for alternatives to socket.io ... anyone have good suggestions? [22:35] ooooPsss: faye [22:36] stagas has joined the channel [22:36] noglorp: socket.io seems to require() the flash transport regardless of setup, which proceeds to whine an error message and quit, referring you to 'read the documentation' about how to configure it, which is actually missing said topic and could not possibly fix the problem to begin with [22:36] gthb has joined the channel [22:37] noglorp: then it wouldn't obey the selection order I was specifying, using XHR before websockets :( [22:38] noglorp: and generally being buggy [22:38] noglorp: switched over to grappler, but it is pretty hacky and has a much uglier attachment mechanism and front end code [22:39] mogsie_home has left the channel [22:39] rikarends: its all hacks and shit with a thin layer of paint anyway [22:39] saikat: noglorp: where were you specifying the selection order? [22:40] saikat: i have never run into that issue [22:40] saikat: i've also just disabled flash socket, but last i heard it was running fine as long as you were runnign as root an the server and serving the flash on port 843 [22:40] saikat: but disabling it has worked fine [22:40] saikat: what else has been buggy? [22:40] rikarends: the curse of javascript its so easy to plug holes the infrastructure has been getting away with being shit for 10 years already [22:41] tav has joined the channel [22:42] Tim_Smart: rikarends: I find ecmascript is only crap when armed with the DOM. [22:42] saikat: yeah, i wouldn't really call it the curse of javascript [22:42] Tim_Smart: + browser vendors that decided specs are for losers. [22:42] saikat: people found a way to hack comet solutions because sockets didn't exist [22:42] saikat: but the same method would have been used [22:43] saikat: regardless of the language being used on the browser [22:43] saikat: and plenty of comet backend solutions exist written in not javascript [22:43] saikat: the curse of software is you can program around limitations placed on you =) [22:43] rikarends: I mean its good and bad. On one side you can hack your way to solutions where otherwise there wouldnt be one, on the other hand you enable people to hold on to crappy browsers, not care about providing proper infrastructure because the webdev world bends over backwards to hack it to work [22:44] saikat: no, the webdev world just makes what they want as soon as possible and doesn't wait for "standards". to be fair, browsers as a platform have now been improving faster than any otehr platform i could be programming on [22:44] rikarends: trust me i've been doing that a lot :) but i've also seen that if you write a proper Cocoa or C++ app for windows it will keep working for a decade or so without having to fix it up [22:44] Tim_Smart: rikarends: Well the thing is, Joe Blogg doesn't know how to update his browser. He just clicks the icon and it works. [22:44] rikarends: with JS you cant look the other way for 6 months [22:45] Tim_Smart: Also apears they know how to complains, and end up heading a product team. [22:45] saikat: that's just because it moves fast = [22:45] mtodd has joined the channel [22:45] saikat: your windows app will work for a decade because [22:45] saikat: a new windows won't come out [22:45] saikat: for a decade [22:45] noglorp: saikit: var socket = io.listen(server, {transports: ['websocket']}); [22:45] rikarends: no actually thats not the case [22:45] rikarends: microsoft works _very_ hard to keep api's stable at the OS level [22:45] saikat: and because VC++ is a proprietary language [22:45] rikarends: i can run an app i wrote in 1995 for windows 95 fine in windows 7 [22:45] noglorp: unless I'm misunderstaning the options system [22:46] noglorp: ? [22:46] saikat: rikarends: yeah but at what cost [22:46] rikarends: actually the most stable way to have written a webapp in 2000 is to make a fullscreen active X application [22:46] saikat: API stability also means backwards compatibility and maintenance for that [22:46] rikarends: cause that will still work. all the html, css and js around it will have long fallen to pieces [22:47] jashkenas has joined the channel [22:47] rikarends: I have no solution either for the web [22:47] rikarends: just saying hacking your way to a solution around every problem might 'create' this we dont care about compatiblity attitude [22:47] stagas_ has joined the channel [22:47] noglorp: saikat: was that the wrong was of specifying transports? [22:47] saikat: noglorp: hm, i actually define the transports on the client-side [22:48] halfhalo has joined the channel [22:48] saikat: _socket = new io.Socket([_socketURL host], {port:[_socketURL port], transports:['websocket', 'htmlfile', 'xhr-multipart', 'xhr-polling'], secure: "https:" === window.location.protocol}); [22:48] saikat: er, sorry there is some objective-j syntax in there [22:48] saikat: but i just mean host, port [22:48] rikarends: its probably the curse of dynamic languages. [22:48] saikat: with [socketURL host] and [socketURL port] [22:48] noglorp: np, seems like I was doing it right [22:48] saikat: noglorp: it's working? [22:49] noglorp: nope [22:49] noglorp: well atm my working code is using Grappler [22:49] saikat: ok - if rauchg_ is in, you should ping him [22:49] noglorp: but that old code would fail trying to use xhr-polling [22:49] saikat: noglorp: which browser? [22:49] noglorp: safari [22:50] saikat: 5? [22:50] noglorp: err... yeah and webkit nightlies as well [22:50] saikat: odd, yeeah i'm using websockets on safari. the only other thing i'd say to try is instead of passing it to the constructor [22:50] saikat: set it separately after the listen call and see if that works [22:50] noglorp: kk [22:51] noglorp: I submitted a bug about requiring the transports when they aren't enabled [22:51] noglorp: cuz that seems to make the flash tansport whine even when not in use [22:52] noglorp: always it seems unjudicious [22:52] saikat: it seems like your transports settings are just not getting respected somehow [22:52] noglorp: hmm [22:52] saikat: maybe, i might be wrong [22:53] noglorp: gonna re clone it and try it again [22:53] noglorp: cause Grappler just nastified my code so much [22:53] noglorp: and things were looking so neet and nice with socket.io :( [22:56] rikarends: anyone interested in a nodejs based bash replacement? [22:57] rikarends: everytime i have to write shell scripts my brain aneurisms and i think WHY cant this be JS [22:57] mape: rikarends: no way to copy paste in cloud9? [22:57] rikarends: mape: should be, but i did notice a problem in some configs/browsers/states [22:57] mape: Hmm can copy to but not from, on OSX/Firefox4 [22:57] rikarends: mape: ok. yeah i think its high up the buglist [22:58] aaronblohowiak: what is the best practice for pushing a fork to npm? [22:59] stagas has joined the channel [23:01] aaronblohowiak: okay, i am appending my name to the end of the library [23:02] prettyrobots: rikarends: Node.js is a bash replacement. [23:03] jchris has joined the channel [23:03] prettyrobots: You can just write programs in Node.js. [23:03] rikarends: hm? no i mean something that also eats ls -al [23:03] prettyrobots: exec "ls -al" ? [23:03] rikarends: and is like bash except where the logic can be js [23:03] prettyrobots: That's exactly what I'm doing. [23:04] prettyrobots: Using CoffeeScript Here Docs to create bash that I can feed to bash, sudo or ssh. [23:04] rikarends: ah coffeescript based [23:04] prettyrobots: Based on where I want it to run and at what level. [23:04] rikarends: i forgot about that one [23:04] prettyrobots: The CoffeeScript here doc makes it doable. [23:05] prettyrobots: Otherwise, you're kind of in for a rough sledding with catenation. [23:05] rikarends: so anything you execute you do with exec "bla" [23:05] rikarends: and the rest is just coffeescript [23:06] prettyrobots: That was yesterday. [23:06] prettyrobots: Today, I've kind of created a here doc consumer. [23:06] rikarends: whats that [23:06] prettyrobots: Uh, sorry. I'm not trying to sound more clever that I am. [23:07] prettyrobots: Just, I like the idea of typing out a CoffeeScript here doc with the variable parts interpolated. [23:07] prettyrobots: And the here doc is piped to bash stdin. [23:07] rikarends: what is a 'Coffeescript here doc' [23:07] noglorp: like a perl here doc? [23:08] prettyrobots: http://jashkenas.github.com/coffee-script/#heredocs [23:08] prettyrobots: The second notation there for multi-line strings. [23:08] rikarends: right [23:08] prettyrobots: No need to add \ [23:08] prettyrobots: at the end of the line. [23:08] prettyrobots: And the indentation is stripped. [23:08] rikarends: yep thats exactly the idea i had for doing nodejs based bash [23:08] prettyrobots: Yes. [23:08] rikarends: didnt know it was called a here doc [23:08] Validatorian: anyone have an example .npmrc file? [23:10] prettyrobots: Validatorian: npm config list [23:10] pedrobelo has joined the channel [23:10] prettyrobots: rikarends: I'm happy with this best of both worlds approach. [23:10] rikarends: coffeescript looks nice and dense for shell stuff [23:10] prettyrobots: Yesterday, I was still using fs.chmodSync and the like. [23:10] prettyrobots: But, for the stuff I'm doing, I'd rather just say. [23:11] prettyrobots: chmod 644 /etc/hosts [23:11] prettyrobots: instead of [23:11] prettyrobots: fs.chmodSync("/etc/hosts", 644) [23:12] rikarends: yeah. i've written a javascript-dialect parser too called Livemarkup [23:12] rikarends: i was thinking of putting disk/shell access in the [...] block i now use for xpaths [23:12] rikarends: so you can do nice and easy stuff like: var x = [ls -al]; [23:13] shaver has joined the channel [23:13] rikarends: but i havent collapsed the js syntax as much as coffeescript. i just extended js with a couple of extra primitives [23:13] prettyrobots: rikarends: That might be nice. [23:13] Validatorian: thanks prettyrobots -- know how to completely avoid /usr/local and keep things in ~/? I'm on a shared box and don't want to screw things up by chowning /usr/local [23:13] rikarends: and then just use the here doc stuff to toggle between modes [23:14] Validatorian: that's for node, not just npm [23:14] prettyrobots: Validatorian: Put your libraries in .node_libraries [23:14] prettyrobots: ~/.node_libraries [23:14] prettyrobots: npm config set root ~/.node_libraries [23:14] rikarends: anyway i was updating a screenshot. nice talking. ltr! [23:14] prettyrobots: pm config set binroot /home/alan/bin [23:14] prettyrobots: Hmm... [23:14] prettyrobots: Yeah. Use aboslute paths. [23:15] shaver: hello! I'm just getting started with node and ampq, and am getting an error running the amqp sample that looks to be a problem with the library [23:15] prettyrobots: If your shell doesn't expand them. [23:15] HAITI has joined the channel [23:15] HAITI has joined the channel [23:16] shaver: specifically: [23:16] shaver: /usr/local/lib/node/.npm/amqp/0.0.2/package/amqp.js:265 [23:16] shaver: var s = buffer.utf8Slice(buffer.read, buffer.read+length); [23:16] shaver: ^ [23:16] shaver: TypeError: Object [23:16] shaver: cursory googling did not illumiate things for me [23:17] lachlanhardy has joined the channel [23:17] shaver: it is ENTIRELY POSSIBLE that I have the whole thing upside down or otherwise wrong [23:17] shaver: but the sample looked simple enough [23:18] Validatorian: prettyrobots: node is still installed to /usr/local/lib/node -- know how to install it to a directory I own? [23:18] Validatorian: I guess I could chown that directory actually [23:18] shaver: Validatorian: --root passed to configure? [23:19] Validatorian: shaver: ? [23:19] shaver: er, sory [23:19] shaver: pass --prefix to node's ./configure [23:19] shaver: so ./configure --prefix=/home/validatorian/node-install [23:19] prettyrobots: Validatorian: What shaver said. [23:19] pbradek has joined the channel [23:19] shaver: then make and make install will dtrt [23:21] Validatorian: if I already installed it to /usr/local, should I rm that dir, or is there a more standard way? [23:22] shaver: don't delete all of /usr/local! [23:22] Validatorian: lol [23:22] Validatorian: I mean /usr/local/lib/node [23:22] shaver: I don't see a "make uninstall" [23:22] shaver: oh [23:22] shaver: there it is [23:22] shaver: I was in the wrong dir [23:22] jamescarr_ has joined the channel [23:22] shaver: try "sudo make uninstall" [23:23] jamescarr_: hey guys... I was about to check node-jsgi out but it appears it hasnt been updated recently? [23:23] shaver: I wonder if this is just a problem with git-trunk node here [23:23] jamescarr_: I guess it's at least worth giving a try [23:23] Validatorian: seems to have worked -- thanks shaver [23:23] shaver: yw [23:24] pbradek: for http.Server how does one set the keep-alive timeout? [23:27] Validatorian: should I have to 'sudo' make && make install if I have ./configured into a directory I own? [23:28] shaver: no [23:28] shaver: you don't want to run either of those as root [23:28] Validatorian: that's what I figured [23:28] Validatorian: https://gist.github.com/c3b5867c86579ae0f2b4 [23:29] Validatorian: I'm thinking I don't have permissions for the compiler? [23:29] shaver: did you sudo make the first time? [23:29] shaver: if so, blow the whole directory away and start over [23:30] shaver: otherwise you'll have directories in the build area that are owned by root, you can't write to them or delete files, hilarity ensues [23:30] shaver: how do I find out what version of node I'm running? [23:30] Validatorian: https://gist.github.com/70d23402d38f7d7f528b [23:30] Validatorian: shaver: node -v [23:31] shaver: v0.3.0-pre [23:31] shaver: OK, I think I will go to a released version here [23:31] Validatorian: I'm using the same (latest from git) [23:31] Validatorian: is there a problem with it> [23:32] shaver: dunno, trying to figure out why amqp isn't working for me [23:32] Validatorian: ah [23:32] josephhitchens: can't I use "let" keyword in node? it's giving me errors. [23:32] Validatorian: dunno what that is, so I assume I won't be affected by it :) [23:33] shaver: node doesn't have let [23:33] shaver: rather, v8 doesn't [23:33] josephhitchens: rats. [23:33] shaver: I want to port node to spidermonkey to have access to generators and let and proxies [23:33] Validatorian: shaver: any ideas on that gist? When I run sudo it works, so I appear to not have access to the compiler(s) -- I know very little about *nix [23:34] Validatorian: the only way I know how to grant myself access is either sudo or chown, neither of which I want [23:35] shaver: right [23:35] shaver: so delete that whole dir [23:35] shaver: pull again [23:35] shaver: and make without sudo [23:35] shaver: (afk a bit) [23:36] aaronblohowiak: npm link isn't putting the current library into ~/.node_libraries, it is just putting it into ~/.node_libraries/.npm/ =( [23:36] Validatorian: which whole dir? the one I cloned node into? [23:37] noglorp has joined the channel [23:37] ekidd has joined the channel [23:38] HAITI has joined the channel [23:38] HAITI has joined the channel [23:39] shaver: yeah, the one you cloned node into [23:40] Validatorian: shaver: https://gist.github.com/db289bebc1d1cd6a1f0a [23:41] c4milo1 has joined the channel [23:41] temp01 has joined the channel [23:41] banjiewen has joined the channel [23:41] badaxx has joined the channel [23:42] FuzzYspo0N: ryah: for the docs, the dgram example that says " Example of a UDP server listening on port 41234: " has an erroneous line "var messageToSend = new Buffer("A message to send");" [23:42] FuzzYspo0N: probably a copy paste from the ones with a client example ine. [23:42] FuzzYspo0N: in* [23:45] c4milo1 has joined the channel [23:48] FuzzYspo0N: hmm anyone have experience with dgram? particularly decoding the incoming message into bytes over strings [23:48] Validatorian: https://gist.github.com/db289bebc1d1cd6a1f0a <-- Anyone know how to resolve this? I appear to not have access to the compiler(s) [23:48] Validatorian: (without sudo or chowning) [23:48] shaver: if you type "g++" what do you get? [23:49] Validatorian: -bash: /usr/bin/g++: Permission denied [23:49] shaver: wow [23:49] FuzzYspo0N: lol, yea [23:49] rikarends: mape: updated screenshot on www.cloud9ide.com [23:49] shaver: did you do anything weird with chmod earlier? [23:49] Validatorian: I don't think so :-P [23:50] Validatorian: certainly not with /usr/* [23:50] mape: rikarends: :) [23:50] shaver: can you ls -l /usr/bin/g++ [23:50] Validatorian: -rwxr-x--- 4 root compiler 221752 Mar 31 11:07 /usr/bin/g++ [23:52] shaver: that is a very strange decision [23:52] shaver: on the part of your administrator [23:52] shaver: but in that case, you need to: [23:52] shaver: sudo make [23:52] kordless: so a socket and a web browser walk into a bar... [23:52] shaver: sudo chown -R $yourusername node [23:53] shaver: then make install as yourself [23:53] Validatorian: so I ./configure --prefix... as sudo as well? [23:53] shaver: yeah [23:54] ehaas has joined the channel [23:54] kordless: i have an addListener on a socket 'end' - when I check the readyState when I catch the event, it says writeOnly, and I can't reconnect. Can anyone tell me what I'm doing wrong? [23:54] kordless: other than working on saturday? [23:54] kordless: :) [23:55] Validatorian: k, thanks shaver [23:55] shaver: np, sorry I misled you before; haven't encountered a system with compilers but restricted access since the 90's :-) [23:56] Validatorian: yea, might have something to do with me screwing some stuff up earlier [23:56] shaver: OK, my current theory is that the socket or buffer interface changed in node 0.3.0 [23:56] shaver: Validatorian: no, that looks pretty intentional [23:57] Validatorian: turns out uninstalling litespeed from /usr/local installs it from everyone, not just me... who knew? :-P [23:57] shaver: I remember when people like you used to cause people like me to get woken up by pagers at 2AM! [23:57] c4milo1 has joined the channel [23:58] John9e9 has joined the channel [23:58] shaver: now to learn how to switch tags in git! [23:59] dnolen_ has joined the channel [23:59] Aria: git checkout tag