[00:00] jesusabdullah: Does seem like node changes pretty fast [00:00] nex3: All right [00:00] DTrejo__: I wrote about this just the other day hehe [00:00] DTrejo__: isaacs' tools make your life ez [00:01] creationix: anybody from jsconf.eu in here or are they all asleep? [00:01] creationix: (it is like 2am there) [00:01] micheil: prob not. [00:02] jesusabdullah: There are some Euros light up on the wargamez <_< [00:02] jesusabdullah: BUT they're probably not actually at jsconf.eu [00:03] JimBastard has joined the channel [00:03] micheil: JSConf,eu isn't on atm is it? [00:03] jesusabdullah: ihnfi [00:04] jesusabdullah: All the more reason to believe they're at home and not at jsconf.eu! [00:04] ehaas has left the channel [00:04] softdrink has joined the channel [00:05] micheil: Sep. 26-27 [00:05] creationix: no, I mean people who organize it [00:05] micheil: 25-26 rather [00:05] micheil: yeah [00:05] micheil: creationix: contact them on twitters or email, probably [00:05] blaines_ has joined the channel [00:06] creationix: heh, sorry for the confusion [00:06] blaines_ has joined the channel [00:08] blaines has joined the channel [00:09] stride: jesusabdullah: I can confirm that I am not at jsconf.eu [00:09] blaines has joined the channel [00:09] stride: *switching on lights in wargamez* [00:10] creationix: is anyone who's going to jsconf getting there early and want to hang out in berlin? [00:10] creationix: I'm trying to decide when to fly in [00:10] jesusabdullah: Hmm [00:10] micheil: creationix: maybe talk to the @uxebu guys? [00:11] micheil: I'm not sure what time they'd be getting there though [00:11] micheil: they're based in munich [00:11] creationix: I think I met some of them in Sweden [00:11] micheil: yeah [00:11] micheil: you probably would've [00:11] micheil: they do a lot of mobile dev with dojo toolkit [00:13] micheil: they also did the coffee at JSConf.us [00:14] hellp has joined the channel [00:15] micheil: anyway, I'm off. [00:15] dnolen has joined the channel [00:17] dnolen has joined the channel [00:17] twoism has joined the channel [00:19] gwoo has joined the channel [00:20] sudoer has joined the channel [00:21] pgriess has joined the channel [00:22] khug has joined the channel [00:22] khug has left the channel [00:23] isaacs: nex3: did that solve the problem? [00:23] x_or has joined the channel [00:24] nex3: isaacs: Yes, sorry, should have said [00:24] isaacs: ok, cool [00:24] isaacs: np [00:24] isaacs: i'm gonna make 103 required for the next version of npm [00:24] isaacs: implemented relative links probably a bit sooner than i should have. [00:25] _announcer: Twitter: "Node.js is just sooooo hoootttt and sexy." -- Jason Torres. http://twitter.com/jasontorres/status/20749784970 [00:29] steadicat has joined the channel [00:32] maryz has joined the channel [00:33] maryz has left the channel [00:37] jamescarr: finally [00:38] jamescarr: secured a meeting place for our St.Louis node meetup [00:38] creationix: jamescarr: fun [00:38] creationix: ACTION loves meetups [00:39] jamescarr: yeah, I'm just envious of you Palo Alto/ Silicon Valley/ SF guys [00:39] jamescarr: :) [00:39] jamescarr: sides, node.js has started garnering a lot of interest lately in the midwest [00:41] creationix: where is midwest anyway, I never understood that? [00:41] creationix: (I grew up in NE Texas for reference) [00:42] jamescarr: Ah, missouri, illinois, iowa I guess [00:42] cardona507 has joined the channel [00:42] _announcer: Twitter: "node.js knockout to cancel out, then I ever I can join 04 teams! http://nodeknockout.com/" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/20751022376 [00:42] jspiros has joined the channel [00:42] jamescarr: perhaps those other traditionally agriculture states. Honestly by midwest I really mean Columbia, MO and St.Louis, MO ;) [00:44] creationix: lol [00:45] zemanel has joined the channel [00:46] ashleydev has joined the channel [00:50] sh1mmer has joined the channel [00:52] MikhX has joined the channel [00:52] MikhX: creationix: is there any spots left for the meetup tomorrow? [00:52] creationix: we can make room, you want to come? [00:52] MikhX: creationix: i would love to come [00:53] creationix: MikhX: what's your real name? [00:53] creationix: got it thanks [00:53] MikhX: creationix: thanks! [00:54] benburkert has joined the channel [00:55] ryan[WIN]: NODEJS MEETUP [00:55] ryan[WIN]: only problem is i'm in orlando florida [00:55] ryan[WIN]: people don't even know what internet is down here much less nodejs [00:56] teemow has joined the channel [00:57] ajsie has left the channel [00:57] MikhX: ryan[WIN]: dont you have hashrocket? [01:01] ryan[WIN]: yeah but there's still hardly anything here [01:01] ryan[WIN]: and they're in jacksonville [01:02] jamescarr: ryan[WIN], theres a big conference going on right now in orlando [01:02] ryan[WIN]: o ya? [01:02] jamescarr: ha!they do! [01:02] Yuffster has joined the channel [01:02] bradleymeck has joined the channel [01:03] jamescarr: yay... Id be there drinking and having fun, but couldnt go due to other responsibilities [01:05] dnolen has joined the channel [01:09] matt_c has joined the channel [01:09] allengeorge has joined the channel [01:15] technoweenie has joined the channel [01:16] creationix has joined the channel [01:16] creationix has joined the channel [01:17] jimt has joined the channel [01:17] tav_ has joined the channel [01:17] karboh has joined the channel [01:17] spaceman has joined the channel [01:24] zemanel has joined the channel [01:26] ditesh|cassini has joined the channel [01:28] jimmybaker has joined the channel [01:29] jimmybaker: greetings. anyone able to get this working? http://github.com/andregoncalves/twitter-nodejs-websocket [01:29] jimmybaker: It says I'm connected but not getting any tweets from it [01:31] jbrantly has joined the channel [01:32] Tim_Smart has joined the channel [01:35] wattz: anyone here love node-waf? [01:36] tjgillies has joined the channel [01:37] twoism has joined the channel [01:37] jimmybaker: wattz: what's that? [01:37] wattz: :D [01:38] dgathright has joined the channel [01:38] ben_alman has joined the channel [01:38] jimmybaker: wattz: would mind testing something for me. (a complete stranger) [01:38] jimmybaker: ? [01:39] wattz: what's that? [01:39] wattz: if you can tell me how to make node-waf set architecture [01:39] jimmybaker: wattz: I can't figure out why I'm not getting any tweets from this http://github.com/andregoncalves/twitter-nodejs-websocket [01:39] jimmybaker: it's easy to setup. just clone, run node server.js and open index.html in a browser. [01:40] wattz: ACTION is a C++ guy [01:40] wattz: but i can try [01:41] jimmybaker: wattz: what arch are you trying to set it to? [01:41] wattz: either [01:41] wattz: i have one i386 and one x86_64 [01:42] bradleymeck has joined the channel [01:42] wattz: i can't test your code on this machine [01:42] wattz: no browser that can do websockets [01:42] wattz: this is an old console machine im testing some build code on [01:42] bradleymeck: flash fallback! [01:42] jimmybaker: wattz: what are you trying to compile? [01:43] wattz: a node addon [01:43] jimmybaker: which one? [01:43] wattz: one i wrote ;) [01:43] jimmybaker: are you getting "g++ unable to fine 32-bit libstdc"? [01:44] wattz: file was built for unsupported file format which is not the architecture being linked (i386) [01:44] wattz: g++ -arch i386 -Ideps/v8/include -Isrc/headers src/bob.cc src/filesys.cc -o build/bob deps/v8/libv8.a -lpthread [01:44] wattz: but if i wrote another app through command line using ^ [01:44] wattz: it works [01:45] wattz: cc1plus: error: unrecognized command line option "-archi386" [01:45] wattz: that's the error i get when i pass the option through node-waf [01:47] bradleymeck: isnt it -march? [01:47] jimmybaker: wattz: did you try ARCH=i386 node-waf..? [01:47] wattz: let me try [01:47] jimmybaker: it looks like bradleymeck is right [01:48] wattz: -march i386? [01:48] _announcer: Twitter: "Side Project: node.js Drag and Drop Image Sharing (Firefox only) - http://su.pr/21WZy6" -- eBot. http://twitter.com/kicauan/status/20755919692 [01:49] wattz: cc1plus: error: invalid option ‘arch i386’ [01:49] wattz: let me paste my wscript [01:52] wattz: got it [01:52] wattz: CXX=/usr/bin/g++ node-waf build [01:52] wattz: worked [01:52] wattz: seems waf was using the wrong g++ [01:55] twoism has joined the channel [02:01] _announcer: Twitter: "I really want to mess with #nodejs & #mongodb; is there a way to just drop it into a folder and go like #XAMPP? Or good guide for beginner?" -- Zac Avery. http://twitter.com/zacavery/status/20756833234 [02:03] tjgillies has joined the channel [02:14] tjgillies has joined the channel [02:19] paulwe has joined the channel [02:19] saikat: i have an implementation to hash javascript objects so that the unorderedness of properties doesn't affect the hash - http://gist.github.com/516540 . anyone around who has any suggestions for how i could do this faster/better? [02:20] saikat: i'm basically just ordering the properties in objects so something like {"z" : 90, "y" : 5} turns into [{"y" : 5}, {"z" : 90}] [02:20] saikat: and then stringifying that and md5 hashing it [02:21] saikat: unfortunately, i have a use case where i need to be running this very often (essentially on every user action), and for really large json objects, it's too slow. if there isn't some easy way to make this faster, i'll just take a different approach [02:22] saikat: but thought i should ask some of the smarter javascript gurus in here before i give up simply hashing the entire document at once =) [02:25] sh1mmer has joined the channel [02:25] _announcer: Twitter: "fixed my issue on how to write js in browser and in node.js ... far from satisfied but at least it is no more blocking #jscommon" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/20758561535 [02:25] SubStack: saikat: you could keep the sorted list of keys in a separate structure [02:26] saikat: a global variable you mean [02:26] saikat: ? [02:26] saikat: so i don't incur the object creation cost? [02:26] saikat: or am i misunderstanding? [02:26] SubStack: a global? not necessarily at all [02:27] saikat: oh you mean just caching it within the object [02:27] saikat: yeah my other plan was just to keep a cache of hashes in my app [02:27] saikat: instead of serializing and hashing every time [02:27] SubStack: just a standard ordered hash [02:28] SubStack: { keys : [ 'a', 'b', 'c' ], hash : { b : 4, c : 10, a : 11 } } [02:29] saikat: i see - so you're saying that in the object i pass into that method [02:29] saikat: the object would be required to have that sorted keys property [02:29] saikat: that might not be too much extra work, i'll try it [02:29] saikat: thanks [02:30] SubStack: another approach would be to associate an index with each element [02:30] SubStack: but that is only good if you already know which keys you need [02:30] saikat: hm, i might [02:31] saikat: though i'm not entirely sure i understand what you mean [02:31] saikat: so if i know my object only has keys x and y [02:31] saikat: what are you suggesting i do? [02:37] chrischris has joined the channel [02:39] SubStack: { x : { value : 'foo', index : 0 }, y : { value : 'baz', index : 1 } } [02:39] SubStack: probably the first way is more appropriate for your problem but I don't have the specifics [02:40] mtodd has joined the channel [02:43] _announcer: Twitter: "http://www.youtube.com/watch?v=jDWBJOXs_iI "Writing Go Packages" may be of interest as node.js community is discussing packages" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/20759823270 [02:43] saikat: ah i see - thanks for the ideas SubStack [02:44] _announcer: Twitter: "Show HN: I made a browser-based chat app. Based on node.js and nodechat. - http://su.pr/1t3xHi" -- eBot. http://twitter.com/kicauan/status/20759921094 [02:44] pzich has joined the channel [02:44] tmpvar has joined the channel [02:46] SubStack: browser-based chat apps are like the hello world of nodejs [02:46] jimmybaker: can anyone connect to the twitter streaming api? I'm getting 400 status codes [02:46] _announcer: Twitter: "neat node.js app idea for websockets. Ouiji board which pulls the moving piece based on where most people have their pointers." -- Justin Lilly. http://twitter.com/justinlilly/status/20760085007 [02:50] _announcer: Twitter: "Why You Should Pay Attention to Node.Js http://redmonk.com/sogrady/2010/05/13/node-js/" -- Cong Lin . http://twitter.com/Lin_Cong/status/20760323293 [02:50] tjgillies has joined the channel [02:52] mtodd has joined the channel [02:52] jakehow has joined the channel [02:56] mtodd has joined the channel [02:57] creationix has joined the channel [03:00] softdrink has joined the channel [03:03] nano` has joined the channel [03:04] isaacs: saikat: i think that your algorithm can be optimized more. [03:04] wattz: i love "Bus Error" [03:04] saikat: isaacs: what is your idea? I just tried out substack's suggestion and it made it about 3 orders of magnitude faster [03:04] isaacs: saikat: but you should be using a different data structure perhaps [03:04] saikat: though i'm still verifying that it actually did what i think it should [03:04] isaacs: so that the sort is faster. [03:04] saikat: well his way [03:04] saikat: i don't even make a call to sort [03:04] saikat: it means having to keep the sorted keys around on the passed in object but [03:05] saikat: that's not a huge deal for me [03:05] saikat: since i control the JSON structure [03:05] saikat: but out of curiosity [03:05] saikat: what data structure would you suggest? [03:05] isaacs: well, if you really need a crazy amount of speed, you could take a look at something fancier like a red-black tree or some other kind of btree [03:06] saikat: also i lied about the speed upgrade, just noticed an error [03:06] saikat: ah fair point [03:06] isaacs: so you make the write a bit slower, but you end up with a consistent hash for any given set of data. [03:06] isaacs: because it remains ordered. [03:06] saikat: right [03:06] saikat: hm, i might do that as a last resort if nothing else works [03:06] saikat: it would mean changing my project structure entirely [03:06] saikat: which would be kind of a pain to do at this point [03:07] saikat: but that's a very good suggestion [03:07] isaacs: you can also keep around an array of values (or tuples), and insert them in the array at the appropriate spot each time, so it's alwasy pre-sorted [03:07] isaacs: where the array is basically teh BFS traversal of objects. [03:07] isaacs: left, middle, right [03:07] saikat: right [03:07] isaacs: so when you walk down the tree to know where to put something, you also keep track of where in the array that is, and splice it into that spot each time [03:08] isaacs: again, slower writes, but faster hashing [03:08] isaacs: adds a bunch of complexity, of course. so that depends on your needs. [03:08] saikat: that option would also mean [03:08] saikat: changing the fundamental way my data is stored correct? [03:08] saikat: unless i'm misunderstanding [03:09] bradleymeck: fing heck, my vm of ubuntu is blowing up node's http stuff [03:10] isaacs: saikat: well, you'd still do it in js [03:10] isaacs: saikat: but yah [03:10] saikat: i see, thanks isaacs [03:10] isaacs: saikat: you'd keep a "sorted-key" object, and an array of tuples, and the lookups would walk a few steps down the btree [03:10] bradleymeck: sounds more like a db role at this point than a simple hashmap :/ [03:11] isaacs: saikat: if that is awful, you could also maybe try this. untested, probably has bugs, but maybe simpler/faster/more native code: http://gist.github.com/516591 [03:11] saikat: isaacs: yeah currently, i'm just keeping a "sorted-key" object as an additional property on each object without going into a full-fledged b-tree [03:11] mcarter has joined the channel [03:11] saikat: and just changing my algorithm to use that sorted-keys object instead of doing the sort at hash-time [03:11] MikhX has joined the channel [03:12] jimmybaker: where are things like sys and http located? where does require() look? [03:12] isaacs: jimmybaker: sys and http are in node's lib folder, and they're statically compiled into the binary. [03:12] isaacs: jimmybaker: require() also looks at the require.paths array [03:13] saikat: isaacs: that is basically doing what i do right now but way shorter correct? also it would change arrays to be key/value pairs? [03:13] isaacs: jimmybaker: that's populated by the NODE_PATH env var, {node's location}/../lib/node, and ~/.node_libraries [03:13] bradleymeck: isaacs you ever experience http.createServer not working inside of a ubu vm? [03:13] isaacs: saikat: yeah, i guess it'd turn arrays into {"0":"foo","1":"bar"}... [03:13] saikat: not a big deal [03:14] isaacs: saikat: you could add an Array.isArray(obj) in there [03:14] saikat: ok cool - yeah i'm going to see first if i can get away with not doing a sort at all [03:14] mattly has joined the channel [03:14] tilgovi has joined the channel [03:14] saikat: since i'm pretty sure that's the main slowdown [03:14] saikat: but if not, that implementation is way neater [03:14] isaacs: sort is only slow if your data isn't already sorted. [03:14] saikat: right [03:14] saikat: which it isn't [03:14] jimmybaker: isaacs: thank you [03:14] hsuh has joined the channel [03:15] jimmybaker: isaacs: know if the twitter streaming api is down at the moment? i keep getting 400 status codes [03:15] isaacs: jimmybaker: no clue [03:15] saikat: well, sort + keys. maybe Object.keys is faster than my keys method [03:15] saikat: ro well, it probably is [03:15] saikat: but i don't think every browser has Object.keys? [03:15] bradleymeck: no most dont [03:15] saikat: (this is client-side code, i forgot to mention) [03:15] isaacs: saikat: no, that's an ES5 thing [03:15] isaacs: ahhh [03:15] isaacs: nvm [03:15] saikat: well [03:15] saikat: it's both [03:15] saikat: shared client/server code [03:16] stalled has joined the channel [03:17] bradleymeck: where could port.h be lost to... [03:18] teemow has joined the channel [03:18] lhardy has joined the channel [03:21] lachlanhardy has joined the channel [03:22] Dmitry1 has joined the channel [03:26] tmpvar: mmmm, connect makes me happy [03:26] mrHalodri has joined the channel [03:27] bradleymeck: bleh, i can never get http to work on my ubuntu boxes for some reason [03:27] bradleymeck: and yes, connect is very happy [03:27] mjijackson has joined the channel [03:28] lhardy has joined the channel [03:31] bradleymeck: mmmm ryah you about? [03:32] lachlanh has joined the channel [03:34] mjr_ has joined the channel [03:36] MikhX_ has joined the channel [03:38] MikhX has joined the channel [03:38] joshbuddy has joined the channel [03:41] ChrisPartridge has joined the channel [03:42] dnolen has joined the channel [03:45] derferman has joined the channel [03:46] lachlanhardy has joined the channel [03:48] mscdex: bradleymeck: what problem? [03:48] dnolen has joined the channel [03:49] lhardy has joined the channel [03:50] dnolen_ has joined the channel [03:50] bradleymeck: http.Client posts dont see to be picked up by http.Server [03:50] mjr_: "picked up"? [03:50] bradleymeck: no response event, nada [03:51] lachlanhardy has joined the channel [03:51] mjr_: does the connection drop? [03:51] mjr_: or the connection stays up and mysteriously nothing seems to happen [03:51] mjr_: ? [03:52] bradleymeck: doesnt seem to drop client side [03:52] mjr_: Are you sure you are ending the request? [03:53] bradleymeck: oh, yea [03:53] bradleymeck: i can change the method to put and it works fine [03:53] mjr_: oh shit [03:54] mjr_: But just switching it to POST makes it silently break? [03:54] bradleymeck: seems so [03:54] mjr_: that sucks [03:54] mjr_: Have you tried wrapping each of your callbacks with a try/catch? [03:54] mjr_: Sometimes exceptions in parser callbacks get silently swallowed. [03:55] mjr_: Under conditions that I haven't fully identified yet. [03:55] bradleymeck: it finished em, no console.log at start/end, the parser doesnt seem to error in a place where i can pick it up w/ a catch :/ [03:55] DTrejo has joined the channel [03:55] DTrejo: hello [03:55] bradleymeck: yo [03:55] DTrejo: is anyone coming from the east bay to the meetup tomorrow? [03:55] DTrejo: hi bradleymeck [03:55] MikhX has joined the channel [03:57] MikhX has joined the channel [04:03] derferman has joined the channel [04:05] joshbuddy has joined the channel [04:06] mscdex: bradleymeck: did you try listening on the 'connection' event of the http.Server for POST requests? [04:07] mscdex: to see if that event is at least firing [04:07] MikhX has joined the channel [04:10] dannycoates has joined the channel [04:10] jimmybaker: If I want to send an object down to the client using the ws Websocket library, how might I do that? When I call client.write(myObject); It says: http://pastie.org/1083182 [04:10] bradleymeck: i did not, sec [04:11] ryah: bradleymeck: hey [04:11] ryah: do you have an awful bug? [04:12] jimmybaker: nevermind [04:12] jimmybaker: making it a string fixes it [04:12] bradleymeck: connection did get fired [04:12] konobi: ryah, is there an easy way to get access to a C++ level object from an addon? [04:13] konobi: (ie: to extend/override methods) [04:13] bradleymeck: ryah, an oddity http.Client doesnt seem to work when POSTing to a http.Server, it connects but dies before the server(req,res) handler [04:13] mjr_: bradleymeck: I use node's http client to talk to node's http server all the time, even with posts. [04:14] knuckolls has joined the channel [04:14] bradleymeck: mmmm [04:14] mjr_: But you said that if you change POST to PUT that it works. [04:14] mjr_: That's not good. [04:14] ryan[WIN]: http://pilot.ryanbroomfield.com:8030/icorn.html [04:14] ryan[WIN]: someone come play with me [04:14] ryan[WIN]: game is fully functional [04:14] mape: mornin [04:15] ryah: bradleymeck: :/ [04:15] ryah: bradleymeck: test case? [04:15] ryah: konobi: c++ object from an addon? [04:16] ryah: konobi: addons are mostly c++ [04:17] konobi: ryah: get access to "process" for example [04:18] mape: ryah: How is the dtrace effort moving along? :) [04:19] bradleymeck: http://gist.github.com/516656 , it seems straight forward, ubuntu in a vm, gave the configure results too [04:20] ryah: konobi: v8::Context::GetCurrent()->Global()->Get(String::New("process")); [04:20] konobi: ta [04:20] mscdex: bradleymeck: what if you set a content-type and content-length? [04:21] mape: isaacs: Know of npm update issues? More specificly npm ! Error: ENOENT, No such file or directory 'package.json'at node.js:773:9 [04:21] mape: Or do you want a gist? [04:21] ryah: bradleymeck: it's because "post" is lower case [04:21] jimmybaker: anyone know a javascript library for twitter text that might turn the text of a link into something clickable? [04:22] mjr_: but "put" lowercase works? [04:23] bradleymeck: mmm odd in the simplified version the uppercase POST works, but in the big project it doesnt seem to... so it needs capitalization [04:24] ryah: mjr_: ? [04:24] mjr_: bradleymeck said that if he changed "post" to "put" that it worked [04:24] CIA-77: node: 03Ryan Dahl 07master * r1c5d5e0 10/ lib/http.js : uppercase request methods - http://bit.ly/bZxwgz [04:24] sudoer has joined the channel [04:24] mscdex: lol [04:24] mjr_: boom! [04:25] softdrink has joined the channel [04:25] bradleymeck: PUT uppercase was working, POST wasnt, idk it seems fixed, maybe i was mistaken [04:26] mscdex: go nodebuilder go! [04:26] tpryme has joined the channel [04:26] mjr_: well, I guess after this exciting 30 minute episode, everything is back to normal again. [04:26] mjr_: roll the credits [04:26] mscdex: but i wanted to see a Crockford Files rerun! [04:27] mjr_: time for bed, young man. [04:27] mscdex: aw shucks [04:27] ryah: where is node builder ? [04:27] mscdex: ryah: the status update for it is broadcasted on mscdex.net [04:27] bradleymeck: fing heck, i wish i had time to work on node when im not half asleep [04:27] mscdex: and a link to the debs/rpms [04:28] riottaba has left the channel [04:29] mjr_: bradleymeck: yeah, me too. I have so much ambition, but so little extra time when I'm productive [04:29] MikhX_ has joined the channel [04:31] DTrejo has joined the channel [04:31] danielzilla has joined the channel [04:31] mscdex: hrm methinks i spy a bug [04:32] mscdex: or an update broke something [04:34] MikhX has joined the channel [04:37] DTrejo: whois mscdex [04:37] DTrejo: oops hehe [04:37] mscdex: i am me! [04:37] mscdex: :-D [04:38] DTrejo: I wanted to follow you on twitter [04:38] DTrejo: you've been super helpful and I figure you have other helpful things to say [04:38] isaacs: mape: hey [04:38] mape: hey [04:38] isaacs: so, no package.json? did you get that figured out? [04:38] mape: sudo npm update [04:39] mscdex: DTrejo: i don't have twitter, sorry :S [04:39] isaacs: ohh... [04:39] isaacs: i see [04:39] isaacs: yeah... if you update npm itself. [04:39] mape: sudo doing it? [04:39] isaacs: sudo shouldn't matter. [04:39] isaacs: it'snot an EPERM [04:39] isaacs: so, here's the issue: [04:39] dgathright has joined the channel [04:39] isaacs: when you update npm *itself*, it installs the new version of npm, then uninstalls the current one, and then activates-----oh, fuck that file doesn't exist. [04:40] isaacs: since the "current one" is the thing running [04:40] isaacs: tomorrow i'm gonna trace through update carefully [04:40] isaacs: and probably release 0.1.24 [04:41] mape: k, neat [04:42] isaacs: mape: does that sound like what you were seeing? [04:42] isaacs: if so, i think i can justmake sure that the rm doesn't happen until the very very end [04:42] mape: isaacs: http://gist.github.com/516685 [04:43] MikhX has joined the channel [04:43] isaacs: mape: ah! yes, i already fixed this in HEAD [04:44] mape: ah good then, guess I'll just wait for the release [04:44] isaacs: mape: the issue is that it has things to relink, but nothing to install, so then it tries to install [] (empty list), and when you do "npm install" with no args, it tries to install $PWD [04:44] isaacs: and youer' not happening to be in a dir which is a package. [04:44] mape: ah k [04:44] DTrejo: *what node.js tutorial do you guys think is the stickiest?* I'm going to be making another tutorial and I want it to be as compelling and good as possible, so I figure I'd better look at some examples [04:45] mscdex: oh i know what the problem is [04:45] isaacs: DTrejo: you should ask creationix about what howtonode.org articles are the most popular [04:45] derferman has joined the channel [04:45] mscdex: nodebuilder got bit by that bug where process.env wasn't the default for child_process.spawn [04:45] mscdex: :S [04:45] ryah: is there a way to make npm less verbose? [04:46] DTrejo: isaacs: k [04:46] ryah: npm config verbose 1 ? [04:46] isaacs: ryah: sure. 2>/dev/null [04:46] ryah: :) [04:46] isaacs: ryah: ;P [04:46] mscdex: make it like node-waf and use less v's [04:46] mscdex: :p [04:46] isaacs: ryah: http://github.com/isaacs/npm/issues#issue/144 [04:46] ryah: just upgrade npm to 0.1.23, worked flawlessly [04:46] isaacs: sweet [04:46] isaacs: ryah: 0.1.23 has some bugs. don't use npm update yet. [04:47] isaacs: i mean, you can, it's ok, but it kind of has weird issues. [04:47] isaacs: ryah: er, i meant this: http://github.com/isaacs/npm/issues#issue/124 [04:48] ryah: that's some hardcore issue docs :) [04:48] ryah: oh yeah, loglevel [04:49] ryah: ACTION votes for it [04:49] isaacs: ryah: yeah, i usually spec out significant features quite a bit in the issue. [04:49] mscdex: woot! [04:49] isaacs: ryah: you could do it. it's not hard. just some js and a lot of grepping the codebase for the word "log" [04:49] mscdex: back in business. nodebuilder is back at work [04:50] ryah: isaacs: yeah, i probably could :) [04:50] MikhX_ has joined the channel [04:50] ryah: my backlog of things to do is only growing longer [04:50] ryah: though :~ [04:51] knuckolls has joined the channel [04:51] isaacs: heh [04:51] isaacs: there's no rush. rushing makes things slower. [04:52] isaacs: better to be slow and careful so that you get there sooner. software is very paradoxical like that. [04:53] bradleymeck: cost in time per bug is enormous :( [04:54] dannycoates: could anyone speculate on the linux/osx ratio for node installs? [04:54] mjr_: Experts in many fields will tell you, "smooth is fast" [04:54] mjr_: driving race cars, shooting guns, many sports, etc. [04:54] isaacs: yes, totally [04:54] MikhX_ has joined the channel [04:55] ryah: dannycoates: uh - 50/50 ? [04:55] ryah: no idea, really [04:56] dannycoates: i've got heap snapshots close to working in osx, but im hitting a crash bug with linux [04:57] ryah: what is it? [04:58] dannycoates: ryah: http://gist.github.com/516705 [04:59] dannycoates: thats with node_g [04:59] ryah: what code? [05:01] dannycoates: debug-debugger.js in v8 around line 2074 [05:02] ryah: what are you doing - hitting it throght the debug tcp thing? [05:02] dannycoates: ryah: yes, any tips on debugging v8? [05:03] creationix has joined the channel [05:03] ryah: dannycoates: hm [05:03] ryah: gdb ? :) [05:03] ryah: dannycoates: you should report it to v8 [05:05] bradleymeck: is there a way to get npm to say what username it is currently using in npmrc? [05:05] dannycoates: ryah: i've been trying to pin it down a bit more before submitting it, but it doesn't happen with any of their samples [05:05] isaacs[away]: bradleymeck: npm config get username [05:05] isaacs[away]: bradleymeck: or npm config ls [05:09] bradleymeck: isaacs just finished testing enough to have the github hook publish itself lol, now just needs a host i thinks [05:18] micheil has joined the channel [05:18] micheil: creationix: you about? [05:18] micheil: gots an awesome idea for tomorrow / tonight [05:18] pedrobelo has joined the channel [05:19] teemow has joined the channel [05:20] amerine has joined the channel [05:21] hansek has joined the channel [05:21] b_erb has joined the channel [05:21] creationix: micheil: sure [05:21] micheil: k [05:21] micheil: good idea for tomorrow night: uStream or Justin.tv it [05:22] mjr_: I could bring my video camera + tripod if you want. [05:23] DTrejo: (anyone driving from the east bay to tomorrow's meetup? I'd be happy to pitch in gas money) [05:24] bronson has joined the channel [05:26] mjr_: DTrejo: I'm in the East Bay, but I'm driving to SF in the morning and leaving from there. [05:26] DTrejo: ah [05:27] DTrejo: mjr_: would you know of anyone going straight from the east bay? [05:27] mjr_: My office is in SF, you see. [05:27] mjr_: If you want to BART over to SF, I could give you a ride from there. [05:27] DTrejo: oh, that would be killer [05:27] DTrejo: Hmm [05:28] DTrejo: What time will you be heading out, and from where? [05:28] micheil: mjr_: is your camera able to talk to your mac/pc over firewire? [05:28] micheil: or usb [05:28] mjr_: micheil: my camera is AVCHD, I dunno if it has firewire transport. I'm guessing not. [05:29] micheil: hmm.. [05:29] micheil: one moment [05:29] DTrejo: mjr_: maybe the better question for me to ask: which bart station should I go to and when should I be there? [05:29] creationix: keep in mind guys that I asked my boss about the recording thing and he said no. Maybe that just means he doesn't want to bother with it himself. [05:29] creationix: mjr_: you taking a car down? [05:30] mjr_: It has USB, but I think that's just mass storage, not IEEE 1997 when that people still cared about that stuff. [05:30] micheil: hmm.. [05:30] micheil: well, just a logitech webcam works good [05:30] mjr_: creationix: yeah, I'm taking my ridiculous pickup truck [05:30] creationix: I'm telling you, I have a great camera, just not sure if I want to record everything [05:30] creationix: maybe just the talks [05:31] creationix: but I don't have a tripod [05:31] micheil: well, yeah, anything that acts to your computer as a video input device, Justin.tv will read [05:31] creationix: and I don't want to have to handle any of it [05:31] creationix: oh, for livestreaming, nevermind [05:31] micheil: ACTION would do it if he were there [05:31] micheil: yeah [05:31] creationix: someone can just open their laptop [05:31] mjr_: Just use your laptop's camera for live streaming [05:32] micheil: as for audio, just setup Audio Hijack to capture the stream [05:32] mjr_: DTrejo: I think Montgomery at, hmm, 6? [05:32] micheil: and yeah [05:33] mjr_: creationix: starts at 7 then? [05:33] mjr_: are you guys getting dinner before? [05:33] creationix: mjr_: 7, yes, we're just going to order pizza this time [05:33] creationix: save time [05:33] mjr_: At the Cheescake Factory, where they produce industrial cheesecakes? [05:33] creationix: hah [05:33] mjr_: OK, sounds good. [05:35] pdelgallego has joined the channel [05:35] MikhX_ has joined the channel [05:36] tilgovi has joined the channel [05:41] x_or has joined the channel [05:41] creationix: wow, I've got over 30 people on my RSVP list! [05:42] mape: For the meetup? [05:43] creationix: yep [05:43] mjr_: mape: did you get your flight set up? [05:43] mape: mjr_: Wha? [05:43] creationix: it's like organizing a mini conference, I got to choose speakers and everything [05:43] mape: Oh yeah.. [05:43] mape: Em, later today? :P [05:43] mjr_: I assume you are flying into SFO tomorrow afternoon, right? [05:43] mjr_: How else would you get here in time? [05:44] mape: Totally, I assume I'm being sponsored by you right? [05:44] mjr_: I can commit to giving you a ride from the airport. [05:44] micheil: >_> Pity flights from here cost about 3000$. :P [05:45] creationix: mape: what airport are you near (just out of curiosity, I want to see just how expensive it would be) [05:46] mjr_: Sencha surely would fly mape out for a recruiting visit, right? [05:46] mape: Closest would probly be Landvetter [05:46] mjr_: I mean, they bought us all dinner that one time, how much more expensive could airfare from some obscure airport in Sweden be? [05:47] saikat has joined the channel [05:47] mape: Probly around $600-800 on short notice [05:47] micheil: actually, they may be on par. [05:48] creationix: 600?! [05:48] creationix: you must know something I don't I'm seeing more like 3000-4000 [05:48] micheil: a good dinner + 2 bottles of wine / drinks and you're looking at 600$ [05:48] creationix: oh, I'm talking about the flight [05:48] creationix: anyway it's too late [05:48] micheil: I'm not [05:48] DraX: i've flown SF->Landvetter for 600ish this year [05:48] micheil: but I think mape was [05:48] creationix: you can't book a flight now and make it here by 7pm tomorrow [05:48] DraX: in feb [05:49] creationix: that's only 20 hours from now [05:49] mape: DraX: that is what I payed, that was from Bryssle though to New Ark [05:49] creationix: I'll bet the 600 wasn't last minute [05:49] DraX: i did sf->landvetter, copenhagen->sf for 600ish but that was about 2 months advance [05:49] creationix: DraX: nice [05:50] mape: creationix: Hehe yeah, it would be like 10h > flight [05:50] mape: But appriciate looking into it [05:50] creationix: :) [05:50] jesusabdullah: no stops? o_o [05:50] creationix: I went straight from SFO to munic [05:50] creationix: that was pretty long [05:50] DraX: yeah i had a stop in chicago [05:50] jesusabdullah: jesus [05:50] micheil: that wasn't for SWDC, was it? [05:50] creationix: yep [05:50] DraX: and a stop in nj on the way back [05:50] jesusabdullah: Every national flight I've been on has had at least one stop I think [05:51] micheil: hmm, well, flights here it's 20 hours to SF, then another 3 to DC [05:51] DraX: non stop sf -> europe would be hell [05:51] creationix: micheil: yeah, you're on the other side of the world [05:51] mape: $924 for GBG -> Frankfurt -> Houston -> SF [05:51] DraX: at least in steerage [05:52] creationix: mape: that just sounds exausting [05:52] mape: Hehe yeah, and just spending a day or two makes the 20h+ flying sound non awsome [05:52] mape: but a webcam solves that ;) [05:53] micheil: hmm.. then again. I was awake for 28 hours yesterday.. so *shrug* [05:53] creationix: yeah, I spent most of a week on Stockholm, it was nice [05:53] micheil: so 20 hours isn't really that long [05:53] DraX: Goteburg and Malmo were awesome [05:53] Tim_Smart: Awesome - http://experiments.instrum3nt.com/markmahoney/ball/# [05:53] creationix: micheil: it is on a plane [05:54] mape: micheil: For your sake I hope your home is more pleasant then sitting in an airplane ;) [05:54] micheil: true [05:54] cardona507_ has joined the channel [05:55] micheil: creationix: also, on a plane wouldn't be too bad. I mean, you can still do whatever on your laptop/macbook, etc. [05:55] mjr_: oh, woah, you guys use Macs? [05:55] mape: mjr_: Should one use Windows instead? :S [05:55] mape: Or much about in gnome? [05:56] jesusabdullah: Tim_Smart: Fun! Though a tiling window manager takes some of the fun outta it [05:56] Tim_Smart: I use a Macbook Pro, but I run Ubuntu [05:56] mjr_: heh [05:56] micheil: I do, but previously I've used each of ubuntu and windows for 4 years [05:56] mape: *muck [05:56] jesusabdullah: lennox4lyfe! [05:56] mjr_: I should be writing the codes. [05:56] jesusabdullah: (until I can afford a macbook) [05:56] jesusabdullah: (I want to try a macbook, even if I eventually nuke the OS) [05:57] micheil: mjr_: same here — busy working on an object modeller for some clientside js [05:57] bradleymeck: how do you copy an npm username/pass to a new machine? [05:57] isaacs[away]: bradleymeck: npm adduser [05:57] micheil: jesusabdullah: I think they're the best hardware you can get, but some of the good parts break without os x [05:57] micheil: (such as the trackpad) [05:58] jesusabdullah: micheil: No trackpad sans-osx?! >:O [05:58] micheil: it's there, but there a lack of driver support for some parts [05:58] jesusabdullah: Or do you mean, it just takes work? [05:58] micheil: like the multi touch doesn't work 100% [05:58] jesusabdullah: Oh, the fun stuff doesn't work [05:58] jesusabdullah: I see [05:58] micheil: or can even not work at all [05:58] jesusabdullah: Hmm [05:58] Tim_Smart: jesusabdullah: Cool to start up 'expose' while the ball is flying across the windows [05:59] jesusabdullah: Oh shit, I bet [05:59] jesusabdullah: I'd wanna make tunnels [05:59] jesusabdullah: :) [06:00] jesusabdullah: I haven't had the chance to, well, give OSX a chance [06:00] jesusabdullah: I've always used other peoples' computers, none of which has The Good Shit installed [06:00] jesusabdullah: I'd have to hit up macports and homebrew and all that jazz before I really made a decision [06:01] micheil: just go straight with homebrew, macports I found was really buggy [06:01] evadne has joined the channel [06:01] bradleymeck: ok, bmeck.homedns.org:8888 is experimental github hook, need to add the npm-github-service author to your package and run with it if the package is already on npm, also you have to have a commit after a tag for github to deal w/ it so... bleh [06:01] jesusabdullah: Yeah, I got good feelings from homebrew [06:01] jesusabdullah: I get the impression there's a lotta stuff on macports though [06:02] bradleymeck: sleeeep [06:02] jesusabdullah: not that I know wth I'm talking about :D [06:02] isaacs[away]: :) [06:03] bradleymeck: well someone hit it with something funky [06:03] mattly has joined the channel [06:03] shreekavi has joined the channel [06:03] jesusabdullah: an http request? <_< With The Google Chromes? [06:03] bradleymeck: yea thats not a github thing... should make it ignore those [06:04] jesusabdullah: Or send html that says, "WTF UR NOT GITHUB [06:04] jesusabdullah: JESUS AB DULLAH !" [06:04] jesusabdullah: to which I would respond, "touche. :C" [06:05] sveimac has joined the channel [06:05] bradleymeck: there we go [06:05] bradleymeck: no more of the chrome crashies [06:06] sudoer has joined the channel [06:08] rnewson has joined the channel [06:08] rnewson has joined the channel [06:08] ph^ has joined the channel [06:14] hellp has joined the channel [06:14] steadicat has joined the channel [06:18] joshbuddy has joined the channel [06:28] creationix: http://mrdoob.com/83/Youtube_now_in_Super_HD! [06:29] mape: sync is the wack [06:30] DTrejo: I always knew mrdoob rocked [06:35] ChrisPartridge: great, now that song is going to be in my head for weeks [06:48] femtoo has joined the channel [06:51] DTrejo: ChrisPartridge: http://mixest.com/#xdd [06:52] DTrejo: gnight everyone! [06:52] DTrejo: sleep well, and see you tomorrow! [06:53] MikhX has joined the channel [06:54] CIA-77 has joined the channel [06:55] evadne has joined the channel [07:01] evadne has joined the channel [07:02] BryanWB has joined the channel [07:03] BryanWB: good morning node! [07:11] slaskis has joined the channel [07:11] dgathright_ has joined the channel [07:12] astrolin has joined the channel [07:32] sstreza has joined the channel [07:33] zedas has joined the channel [07:33] dispalt has joined the channel [07:34] joshthecoder has joined the channel [07:34] teemow has joined the channel [07:35] foobarfighter has joined the channel [07:35] isaacs[away]: ryah: 3dbc28f321728ab54f0a4cae6a4576874d3d4b76 [07:35] virtuo has joined the channel [07:35] isaacs[away]: ryah: http://github.com/isaacs/npm/3dbc28f321728ab54f0a4cae6a4576874d3d4b76 rather [07:36] isaacs[away]: ryah: third tim'es the charm: http://github.com/isaacs/npm/commit/3dbc28f321728ab54f0a4cae6a4576874d3d4b76 [07:36] Tim_Smart: :D [07:36] Tim_Smart: bout to say haha. [07:38] claudiu__ has joined the channel [07:39] sh1mmer has joined the channel [07:41] mape: http://www.meetup.com/BayJax/calendar/14371278/ [07:41] mape: Again. In the Loop of History, it has all happened before, but it has never happened like this. This is why you should care about the emergence of server-side JavaScript and the excitement around projects like Node.js -- not because they're at the sharp end of a trend, but because they're paving the road toward the next big revolution in software." [07:42] mape: from mr crock [07:43] tpryme: Anyone here have a recommendation for a node.js beanstalkd client? [07:45] x_or has joined the channel [07:46] stagas has joined the channel [07:49] saikat: anyone know if most implementations of hasOwnProperty is O(1)? Seems like it should be since JS objects are pretty much hash lookups? [07:50] nano` has joined the channel [07:51] tpryme has joined the channel [08:00] BryanWB has joined the channel [08:05] FransWillem has joined the channel [08:07] beanie___ has joined the channel [08:08] paulwe has joined the channel [08:09] teemow has joined the channel [08:10] maushu has joined the channel [08:10] WT has joined the channel [08:10] emmanueloga has joined the channel [08:12] astrolin has joined the channel [08:13] WT: Hello :) Maybe someone knows. Is Geddy.js has a layout system? I found about Partials, but layout - it's the most usabe feature and there is no information about it [08:15] x_or: Does anyone know how to make a post using httpClient with data posted. Do I need to do something with them? Passing a hash like client.request( "POST", "/foobar", {}, { a : 'c' } ) does not seem to properly pass the data. [08:15] Tim_Smart: WT: It has a EJS templating implementation by the looks of things. [08:18] stagas: can you have multiple node web apps on the same ip? different node apps, different domain, same ip, single vps [08:18] stagas: do I need something like haproxy? [08:19] Tim_Smart: stagas: nginx can also do it. [08:19] Tim_Smart: Or in node.js you just route depending on host name. [08:20] shockie has joined the channel [08:21] stagas: Tim_Smart: yeah but how do I start a new node instance on a new app, I need something like node_proxy start/stop/restart my_new_app.js [08:22] stagas: run the apps on another port and exec and sys.pump everything to that other port? would that work? [08:23] stagas: maybe I'll go with nginx :P [08:23] stagas: thanks [08:23] Tim_Smart: Hmm doesn't seem ideal. I wonder how heroku deploys node [08:23] Tim_Smart: nginx works pretty well, yeah [08:26] WT: Hm, thanks, i'll try to figure out how this works :) [08:27] Tim_Smart: stagas: I might have a stab at implementing a instance / domain deployment tool for node [08:34] FireFoxIXI has joined the channel [08:35] TomY has joined the channel [08:36] caolanm has joined the channel [08:36] caolanm: morning all [08:36] caolanm: ...or the appropriate greeting for your timezone [08:36] ewdafa has joined the channel [08:39] mizerydearia has joined the channel [08:42] royi has joined the channel [08:43] xla has joined the channel [08:50] jblanche has joined the channel [08:50] stagas: some strange bug in firefox/jquery, if an div id has a - the animation works, else it jumps to the end of the animation [08:51] mAritz has joined the channel [08:52] everton has joined the channel [08:55] everton has left the channel [08:56] FransWillem has joined the channel [09:00] pdelgallego has joined the channel [09:00] sideshowcoder has joined the channel [09:04] royi has joined the channel [09:07] sveimac has joined the channel [09:11] blaines_ has joined the channel [09:16] charlesjolley- has joined the channel [09:18] TobiasFar has joined the channel [09:20] chrischris has joined the channel [09:22] [[zz]] has joined the channel [09:22] tyfighter has joined the channel [09:26] jkreeftmeijer has joined the channel [09:26] zomgbie has joined the channel [09:33] omarkj has joined the channel [09:53] sveimac has joined the channel [09:58] shreekavi has left the channel [09:59] jetienne has joined the channel [10:00] Tim_Smart has joined the channel [10:01] SamuraiJack has joined the channel [10:05] omarkj: Is there something like virtualenv (python) available for node? [10:06] Dmitry1 has joined the channel [10:12] rsms has joined the channel [10:13] Dmitry1 has left the channel [10:20] hellp has joined the channel [10:22] cnu has joined the channel [10:29] fermion has joined the channel [10:30] karboh has joined the channel [10:35] rsms: anyone here who have dealt with OS::GetMemory (platform_*.cc)? Why isn't getrusage used for e.g. Linux instead of reading from /proc? [10:36] maushu has joined the channel [10:37] maushu: Woah, captchas? In my webirc?! [10:42] omarkj: haha [10:42] maushu: http://jobs.github.com/positions/c97c8d2e-a04f-11df-8c60-be468719ed86 <- What the hell Jim. [10:43] frekw: what are people using to auto reload .js-files in development? [10:43] stride: :-D [10:48] tahu has joined the channel [10:53] fermion has joined the channel [10:55] PyroPeter has joined the channel [10:58] zemanel has joined the channel [11:03] Dmitry1 has joined the channel [11:03] stagas: frekw: I use this: http://dracoblue.net/dev/hot-reload-for-nodejs-servers-on-code-change/173/ [11:04] sideshowcoder has joined the channel [11:04] FireFoxIXI has joined the channel [11:04] mcarter has joined the channel [11:04] adelcambre has joined the channel [11:04] sechrist has joined the channel [11:05] stagas: frekw: it works ok, has about a second of downtime when you upload the new version [11:18] d0k has joined the channel [11:19] omarkj: So, rolling up custom events.. [11:19] omarkj: (wrong channel) [11:22] frekw: stagas: thanks [11:25] BryanWB has joined the channel [11:26] cnu has joined the channel [11:30] rsms: frekw: stagas: FYI it simply restarts the process. No code reloading afaik. Robust but as bas as manually restarting the server thus leaving room for failed foreign connections. [11:30] everton has joined the channel [11:31] stagas: rsms: yeah, it's enough for development though [11:31] hoodow has joined the channel [11:31] rsms: frekw: stagas: even better would be to perform graceful restarts in a series of processes so that there's always one process running which can respond to connections. [11:31] rsms: stagas: definitely [11:32] astrolin has joined the channel [11:34] stagas: rsms: that is hard to do in a clean way, if the old process is updating while you restart, how will the new process know about it? [11:35] stagas: it's better to have few hundreds of ms of downtime, than those headaches [11:35] rsms: stagas: that's the way you roll out updates in most live systems. Simply start with process 1, send it a HUP or similar signal, wait for it to restart, move one to process 2 and so on. [11:37] rsms: stagas: all critical systems in Spotify is upgraded (or downgraded) like this. It also makes spotting mistakes easy and you can stop a roll out before all processes have been "infected", leaving your system online. [11:38] stagas: rsms: is there an easy way to do that? [11:43] mAritz: maushu: i believe jim is on some very heavy drugs. just look at his rainbow work... [11:44] maushu: mAritz: True. [11:44] mAritz: he's still more capable of writing valid sentences than _announcer though :P [11:44] maushu: LIES! [11:45] mAritz: btw: is he down or is it just a slow day on twitter? [11:49] dnolen has joined the channel [11:51] pkrumins: hey guys, check out the StackVM demo #2: http://www.catonmat.net/blog/stackvm-demo-video-two [11:52] blackdog_ has joined the channel [11:53] zemanel_ has joined the channel [11:54] mape: pkrumins: nice [11:55] mape: Not sure about the UI design but the tech looks awsome [11:56] OmIkRoNiXz has joined the channel [11:56] [[zz]] has joined the channel [11:57] philhawksworth has joined the channel [11:58] mape: pkrumins: btw might wanna tag tweets with #nodejs to listed in tweet bots/nodejs.se/people who keep that as a search [11:58] srveit has joined the channel [11:58] omarkj: Ok guys, I'm making a using EventEmitter to create a custom emitter. I haven't really noticed a 'coding style' for it, but how does this look: http://gist.github.com/517141 [11:59] pkrumins: kk, i usually just sneak 'node.js' in there to get tweetbot to pick it up [12:00] mape: k, think #nodejs works better with twitters tag integration+their api [12:00] pkrumins: noted, will use that in the future. [12:00] mape: np, looking forward to an invite to stackvm [12:00] SubStack: omarkj: why var RabbitClient = function () { ... }, why not function RabbitClient ? [12:01] SubStack: I usually just do Foo.prototype = new EventEmitter [12:01] omarkj: SubStack: It's pretty much the same..? [12:02] SubStack: omarkj: yeah, but just curious why you did it that way [12:02] omarkj: SubStack: Just out of habit I guess. [12:19] [[zz]] has joined the channel [12:21] shreekavi has joined the channel [12:21] ntelford has joined the channel [12:27] rvanrooy has joined the channel [12:32] BryanWB has joined the channel [12:32] saikat has joined the channel [12:35] saikat_ has joined the channel [12:35] mjijackson has joined the channel [12:38] zemanel has joined the channel [12:43] sonnym has joined the channel [12:44] nano` has joined the channel [12:44] matt_c has joined the channel [12:48] b_erb has joined the channel [12:50] zapnap has joined the channel [12:51] evadne has joined the channel [12:57] ditesh|cassini has joined the channel [12:58] figital has joined the channel [12:59] rwaldron_ has joined the channel [13:01] Gruni has joined the channel [13:06] Tim_Smart has left the channel [13:06] romainhuet has joined the channel [13:07] maushu: Oh man, I love stackvm logo style. [13:09] mw___ has joined the channel [13:10] kriszyp has joined the channel [13:11] SubStack: maushu: ^_^ [13:13] bradleymeck has joined the channel [13:13] ben_alman has joined the channel [13:14] stride: I'd have prefered comic sans [13:15] evadne has joined the channel [13:16] dnolen has joined the channel [13:17] jherdman has joined the channel [13:18] wattz: Good morning [13:19] bradleymeck: mornin [13:20] rvanrooy has left the channel [13:21] wattz: bradleymeck: im starting to believe that you never sleep @_@ [13:21] wattz: you know what an awesome error report from v8 is? [13:21] wattz: Bus error. [13:22] wattz: memory alloc error, but i hate i don't get a line number [13:22] khug has joined the channel [13:22] khug has left the channel [13:23] royi has joined the channel [13:24] tisba has joined the channel [13:24] nrstott has joined the channel [13:26] wattz: is it weird that I like programming C++ for node/v8 as much as i like writing the js? [13:26] wattz: :D [13:26] hpoydar has joined the channel [13:26] jetienne: wattz: gdb + a core may give you the line number [13:27] wattz: yeah, i threw it in [13:27] wattz: thanx [13:27] jtsnow has joined the channel [13:28] jetienne: pkrumins: nice video. will it be possible to "export" my own desktop like that ? or just hosted vm ? [13:28] wattz: im finding myself writing stuff for v8 then porting to node, or 'wrapping it' [13:28] jetienne: wattz: what do you add to v8 ? [13:28] BryanWB: express users, where is the best place to store that a user has logged on to my express site? req.sessionStore.cookie.user? [13:28] BryanWB: wattz, i don't think so, if i had the skills, i would love to [13:28] pkrumins: jetienne: yeah, it's super easy to export your own desktop [13:29] wattz: jetienne: Cargo is node mysql on github (it's blocking) [13:29] wattz: will get back to that [13:29] pkrumins: jetienne: just run vnc server on it, and configure stackvm to use it. and done. [13:29] wattz: I have a build system im working on like jake/make/rake but with svn and git hooks [13:29] bradleymeck: wattz i sleep, just not very much [13:29] wattz: bradleymeck: :D [13:29] khug has joined the channel [13:29] wattz: bradleymeck: i have a 3, 2, 1month old [13:29] jetienne: pkrumins: cool. what is the bizmodel of this project ? pay for hosting, free if i run the server ? [13:29] wattz: so sleep isn't even an option [13:30] bradleymeck: haha [13:30] wattz: jetienne: and I have ImageMagick wrapper for v8 [13:30] wattz: native C++ instead of cmd line calls [13:30] feroz_ has joined the channel [13:30] pkrumins: jetienne: yep [13:30] pkrumins: jetienne: the software is open source even. [13:30] wattz: but i was thinking of switching to GD because it seems a lot less bloated [13:31] jetienne: wattz: i tend to do cmdline calls. it adds latency but this avoid the nasty crash in a dependancy [13:31] jetienne: wattz: i would take the most stable [13:31] wattz: jetienne: i try to write my addons to crash gracefully unless you tell it to be verbose [13:31] jetienne: wattz: i had some bad experience with ruby crashing randomly for month, until i figured out which native dependancy crashed [13:32] wattz: the mysql driver was just my learning addon, and I will go back to it [13:32] wattz: but i have a weird hangup about async for certain things [13:32] jetienne: wattz: what do you mean ? you are running in the same processus context, no ? [13:32] wattz: jetienne: with node yes [13:32] wattz: with v8 im building in some threading routines for certain aspects [13:33] jetienne: wattz: so any of those deps shooting at random in the ram will crash iot [13:33] jetienne: wattz: a sugbus in a thread will shutdown the thread or the whole process? [13:33] jetienne: i guess they have that with chrome + flash [13:33] wattz: jetienne: aye, i see what you're saying now [13:33] jetienne: sugbus=sigbus [13:33] wattz: jetienne: going to try to lock focus on the thread, so it only kills the thread [13:34] wattz: working on my v8 app server (don't shoot, I love node, this is for something very specific) [13:34] jetienne: :) [13:35] maushu: SubStack: I'm going to steal your logo for nefarious actions. [13:35] jetienne: pkrumins: it seems to go well, thats for sure [13:35] SubStack: k [13:36] wattz: although the V8 docs are 'awesome' [13:36] wattz: ACTION did air quotes [13:36] pkrumins: google opensources their libs and then hides docs on purpose [13:36] quirkey has joined the channel [13:37] SubStack: maushu: as I recall I just typed out some text in inkscape then went over the edges with my wacom and the pencil tool [13:37] wattz: pkrumins: yeah.... i get that [13:37] khug has left the channel [13:37] figital has joined the channel [13:38] saikat has joined the channel [13:38] wattz: pkrumins: yeah.... i get that for printf (im i just having a brainfart?!) [13:38] wattz: wow [13:39] bradleymeck: well at least v8 has some documentation, a lot of things barely have anything but function signatures [13:39] wattz: lag messed that all up [13:39] wattz: bradleymeck: spidermonkey! [13:39] wattz: "We release new builds, but the docs are from the 90s" [13:39] maushu: SubStack: and you somehow got exactly the style I wanted. Damn you. [13:39] wattz: pkrumins: how do you cast a V* String back to a char* for printf? [13:39] volve has joined the channel [13:39] wattz: V8 [13:40] bradleymeck: wattz "dont use this feature it was outdated by X" ... wtf is X? <- like 1/2 my exp with spidermonkey [13:40] wattz: bradleymeck: yeah, same here [13:40] wattz: bradleymeck: i was writing a point of sale system that was Webkit/C++ [13:41] wattz: embedded spider to make it faster to dev with. [13:41] wattz: 2 day battle with spider and i quit [13:41] bradleymeck: uggg webkit can be brutal too [13:41] teemow has joined the channel [13:41] wattz: bradleymeck: I ended up using pyqt [13:42] bradleymeck: i worked on it for a bit, sometimes i would ask "what does getTable do?" "it gets the table in the document" "what table?" "the table"... good times [13:42] wattz: haha [13:42] nerdEd has joined the channel [13:42] bradleymeck: i never did figure out what exactly it got [13:42] wattz: bradleymeck: my fav spidermonkey question: "So do I need to release every js var i create in C++ or will the SM gc get it?" [13:42] wattz: answer: "Yes." [13:43] bradleymeck: lol [13:43] bradleymeck: that sounds soo painful now [13:43] saikat_ has joined the channel [13:43] bradleymeck: not to mention object templates are funky [13:44] wattz: I would like to printf a Handle [13:44] wattz: im feeling lame. [13:44] wattz: UTF8value. [13:44] wattz: ftw. [13:44] malkomalko has joined the channel [13:44] [[zzz]] has joined the channel [13:44] streampunk has joined the channel [13:47] charlesjolley- has joined the channel [13:47] crohr has joined the channel [13:48] [[zzz]] has joined the channel [13:50] easternbloc has joined the channel [13:51] easternbloc: anyone in here using jade much? [13:51] shockie: using it, but can't say i'm using it much [13:52] easternbloc: having a few issues with attributes [13:52] easternbloc: a(href: #{somevalue}) [13:52] easternbloc: this doesnt work [13:52] easternbloc: how do I inject a value like that in jade? [13:53] shockie: a(href="#{somevalue}")? [13:53] easternbloc: erm nope, just answered my own question [13:53] easternbloc: looks like it's this a(href:value) [13:53] easternbloc: it must expect it to be coming from the object [13:54] easternbloc: ah well, I spent ages looking at this trying different things and the second I ask, I answer it :S [13:54] shockie: lol [13:54] easternbloc: :S [13:55] dylang has joined the channel [13:55] davidwalsh has joined the channel [13:55] [[zzz]] has joined the channel [14:01] Nohryb has joined the channel [14:01] shockie: where can i find the port number where a socket is listening to? (http.createServer instance)? [14:02] EyePulp has joined the channel [14:03] sr: shockie, lsof | grep TCP [14:04] [[zz]] has joined the channel [14:05] shockie: lol not in the terminal but in node.js:) [14:05] shockie: when i handle a request, i want to know on which port it's running [14:06] JimBastard has joined the channel [14:07] mjijackson has joined the channel [14:08] daniellindsley has joined the channel [14:10] JimBastard: SubStack: , pkrumins has a way nicer internet voice then you :p [14:10] sr: shockie, request.url or something? [14:10] SubStack: JimBastard: I know :( [14:10] shockie: sr: that only returns the path and query parameters [14:11] SubStack: I wish I had an eastern european accent [14:11] softdrink has joined the channel [14:11] pkrumins: SubStack, JimBastard, this: http://www.reddit.com/r/videos/comments/cz480/what_21_different_mostly_english_accents_sound/c0wct64 [14:11] pkrumins: that comment is very accurate. [14:11] pkrumins: "Every accent sounds good except the one that you have, and then it sounds horrible. [14:11] JimBastard: lulz [14:12] knuckolls has joined the channel [14:12] sr: shockie, connect.headers.host [14:12] wang: even south african? [14:12] zaach has joined the channel [14:13] stride: sr: isn't that only what the client sent? [14:13] shockie: sr: that's true but i need to verify the host header:), so i can't rely on host header [14:14] JimBastard: stackvm is coming along nicely pkrumins and SubStack [14:14] JimBastard: whats the goal with this? [14:14] wattz: wtf [14:15] pkrumins: goal with stackvm? [14:16] wattz: i really hate that these command line argv[1] is a const char ptr, and strcpy craps when i try copy the arg value to it [14:16] alex__ has joined the channel [14:16] SubStack: JimBastard: to make money somehow! [14:17] pkrumins: yep. [14:17] daleharvey has joined the channel [14:18] nefD: gifcast ftw [14:18] pkrumins: nefD: ah you already seen one [14:19] nefD: yeah :D you were telling me about it the other day, i ended up checking out node-gif [14:20] shockie: ah got it [14:20] shockie: process.mainModule.connectEnv.port [14:23] philhawksworth has joined the channel [14:24] bradleymeck has joined the channel [14:24] loincloth has joined the channel [14:26] wattz: ACTION hits me desk [14:28] dylang: any node dj fans? it seems to have broke for me after upgrading to node 0.1.103. Instead of starting my code i get "execvp(): No such file or directory" - this is in osx. [14:29] wattz: os x is becoming a real pain in my ass. [14:30] Neil___ has joined the channel [14:31] nefD: wattz: You should write Steve Jobs and ask him to be a little more gentle with the public.. oh, and it'd be nice if he wore a rubber, too.. [14:31] shockie: dylang i think you're holding it wrong [14:32] deepthawtz has joined the channel [14:32] dnolen has joined the channel [14:33] wattz: nefD: haha [14:33] ceej has joined the channel [14:33] Neil___ has joined the channel [14:34] wattz: nefD: why? At this point we fanboys are more open than goatse [14:34] wattz: [14:34] nefD: wattz: HAH [14:34] nefD: guffaw! [14:34] dylang_ has joined the channel [14:34] dylang_: this is the build i'm using: http://github.com/lrbabe/node-DJs [14:35] wattz: i wish this worked... http://pastie.org/1083919 [14:36] matt_c has joined the channel [14:36] wattz: pkrumins: you around? [14:36] pkrumins: y [14:36] wattz: you see that pastie? [14:36] wattz: am I missing something? [14:36] pkrumins: looking [14:36] wattz: thanx [14:36] blowery_zzz has joined the channel [14:37] pkrumins: yes [14:37] pkrumins: fileNameArg(argv[i + 1]); [14:37] pkrumins: is wrong [14:37] micheil has joined the channel [14:37] pkrumins: do fileNameArg = argv[i + 1]; [14:37] wattz: but argv[x] is a const char. still ok? [14:37] pkrumins: yes still ok [14:37] pkrumins: string class overloads operator=(const char *) [14:37] pkrumins: also if (argc > 1) [14:37] volve has joined the channel [14:38] pkrumins: and for (int i = 1 [14:38] pkrumins: cause argv[0] is program's name itself. [14:38] wattz: wow [14:38] wattz: awesome thanx [14:38] pkrumins: you're welcome! [14:39] wattz: C++ is getting easier, C is getting pushed out [14:39] wattz: objc spoiled me [14:39] pkrumins: also don't use tabs [14:39] pkrumins: use 4-spaces. [14:39] wattz: why does that matter? [14:39] wattz: :D [14:39] BryanWB: w/ express, do I have to set up routes to send my JavaScript files? [14:39] pkrumins: it brings harmony to everyone around. [14:39] pkrumins: cause it's a good coding style. [14:39] zemanel has joined the channel [14:39] wattz: pkrumins: i will run a convert when im done for community [14:40] aliem has joined the channel [14:40] BryanWB: wattz, convent? looking for nuns? [14:40] nefD: BryanWB: I believe if you use the static file server somewhere within your routes it'll serve up the js files as normal [14:40] wattz: but good coding style is an opinion, i have met people on both sides of that fence [14:40] wattz: i don't care either way tbh [14:40] BryanWB: nefD, the static file server? [14:40] TomY has joined the channel [14:40] BryanWB: ACTION goes to look at express docs [14:41] nefD: theres a static file plugin (or whatever nomenclature they use) [14:42] nefD: BryanWB: I think the docs for it are on the connect site [14:42] nefD: BryanWB: http://senchalabs.github.com/connect/staticProvider.html [14:42] BryanWB: nefD, tks [14:42] nefD: BryanWB: No problem [14:46] philhawksworth has joined the channel [14:47] philhawksworth_ has joined the channel [14:49] ajpiano has joined the channel [14:50] mtodd has joined the channel [14:50] d3x7r0 has joined the channel [14:51] bradb has joined the channel [14:53] sudoer has joined the channel [14:54] bradleymeck: you know what would be odd and useful, but only in the most extreme of situations, an inline assembler for node [14:56] BryanWB: nefD, that worked nicely, tks, though I am not exactly sure how it works [14:57] nefD: BryanWB: *MAGIC* [14:57] nefD: BryanWB: Actually im not too sure either.. i only messed with express for a few hours.. all i know it, you include it in your plugin chain, point it to a directory, and it'll serve static files out from it [14:58] mikeal has joined the channel [15:03] Yuffster has joined the channel [15:05] omarkj: What's used to debug node.js apps ? [15:05] omarkj: Like, a debugger or something ? [15:06] omarkj: Just writing out to terminal get's a bit annoying at times. [15:06] royi has left the channel [15:07] bradleymeck: http://github.com/dannycoates/node-inspector <- what i use [15:07] hansek has joined the channel [15:10] nerdEd has joined the channel [15:11] nerdEd_ has joined the channel [15:12] Nohryb has joined the channel [15:14] steadicat has joined the channel [15:16] jakehow has joined the channel [15:16] jetienne: bradleymeck: its working well ? [15:16] bradleymeck: for me it is, just watch the known issues [15:17] jetienne: ok [15:18] xla has joined the channel [15:18] jetienne: "Chrome 5 users MUST use 127.0.0.1 NOT localhost or the browser will not connect to the debugger" hehe dunno why... but i find it funny [15:18] elliottcable: Happy birthday to me. :3 [15:18] daniellindsley has joined the channel [15:18] elliottcable: I’m 21 :O [15:19] caolanm: \o/ [15:19] jetienne: clap [15:19] bradleymeck: jetienne, prolly the cookies [15:20] bradleymeck: congrats [15:20] elliottcable: I get cookies? What? [15:21] ceej: elliottcable: what are you doing in here? Go get drunk :) [15:21] joshbuddy_ has joined the channel [15:21] elliottcable: ceej 3↼ meh. [15:21] elliottcable: ACTION is a prude [15:22] nerdEd has joined the channel [15:22] ceej: ha don't be 21 is a good age to go crazy :) [15:25] proppy has joined the channel [15:25] saikat has joined the channel [15:26] stride: congratulations elliottcable [15:28] pdelgallego has joined the channel [15:28] d3x7r0: happy birthday elliottcable :) [15:28] tisba has joined the channel [15:29] quirkey has joined the channel [15:30] saikat_ has joined the channel [15:31] jpld has joined the channel [15:31] nerdEd_ has joined the channel [15:31] amerine has joined the channel [15:32] proppy: Hi, is String.supplant and other crockford stuff already packaged in node ? [15:32] MattJ has joined the channel [15:33] proppy: (stuff from http://javascript.crockford.com/remedial.html) [15:33] proppy: or are there v8 equivalents ? [15:35] bradleymeck: proppy no, just drop it in though and it should work w/ some work on the object "global" [15:35] Aria has joined the channel [15:35] bradleymeck: though messing w/ prototypes of natives is considered bad juju [15:35] sveimac has joined the channel [15:35] mscdex: someone ported jquery to php [15:36] mscdex: :o [15:36] bradleymeck: woot? hows the performance of that? [15:36] mscdex: i dunno, just found out about it [15:36] mscdex: http://code.google.com/p/phpquery/ [15:37] micheil: probably kinda shit [15:37] micheil: because you need a DOM implementation / context for each usage probably [15:37] nano`: b.. but.. why? [15:37] bradleymeck: its main use would be for templating, thats about it [15:38] proppy: bradleymeck: ah I should do String.prototype.supplant = ? [15:39] bradleymeck: just copy and paste the source, any globals should be attached ala "global.myglobal = ..." [15:42] proppy: http://playground.mekensleep.com/hg/games/proppy/rev/742e950525fd [15:42] proppy: so instead of String.prototype.supplant I should do global.String.prototype.supplant ? [15:43] bradleymeck: you dont have to put global in front of an already global object like String [15:44] omarkj: bradleymeck: I'll check it out (the debugger). Graacias! [15:45] proppy: bradleymeck: thanks for the confirmation [15:46] proppy: hihi, String.supplant doesn't pass jslint, how ironic :) [15:46] omarkj: It's running on port 8080 [15:46] omarkj: haha [15:46] omarkj: That's my port! [15:46] qschzt has joined the channel [15:48] nerdEd has joined the channel [15:49] tmpvar has joined the channel [15:52] dgathright has joined the channel [15:55] Sembiance: :) [15:55] zemanel has joined the channel [15:55] bradleymeck: jslint and me never pass eachothers standards [15:57] mw_ has joined the channel [15:58] fod has joined the channel [15:58] sh1mmer has joined the channel [16:00] proppy: bradleymeck: yes, but I was supposing that jslint and crockford standards would match :) [16:00] ryah: "think RabbitMQ without the stupid API)" [16:00] ryah: lol [16:01] proppy: ryah: from where ? [16:01] ryah: http://twitter.com/jsconfeu/status/20804795039 [16:02] qschzt: haha [16:03] dgathright has joined the channel [16:03] bradleymeck: idk, i think crockford needs to update some of his thoughts, especially on semicolon use, parsers generally dont work like he says [16:03] proppy: ryah: it also works with postgres "listen/notify;" [16:03] proppy: bradleymeck: send him an email :) [16:03] bradleymeck: anyone know how to use a pre-commit hook in git to add a file to the commit? [16:04] bradleymeck: proppy, i argue with enough of the ecma ppl regularly as it is [16:04] bradleymeck: strict mode... modes are almost never the answer, look at html doctype hell [16:05] proppy: bradleymeck: I asked him about the license of jslint because "It should not be used for evil" was not compatible with debian Free Software guidelines, and he said that debian guidelines are not acceptable :) [16:05] proppy: he has pretty strong opinion [16:06] proppy: bradleymeck: did you read his book, "Javascript: the good part" ? [16:06] JimBastard has joined the channel [16:06] technoweenie has joined the channel [16:06] proppy: I like how he argues that removing feature make a language better :) [16:07] bradleymeck: i am all for removing some things, but removing eval, and arguments.caller are a nono [16:07] proppy: I guess that the same logic could be applied to node.js removing of deferred from core. [16:07] bradleymeck: well not exactly [16:08] proppy: yes, because deferred were not broken in the first place :) [16:08] nano` has joined the channel [16:08] bradleymeck: both those features being outside of native JS would be destructively bad for situations you need them [16:08] MikhX has joined the channel [16:08] proppy: while his these is that some javascript language feature are broken by design [16:09] bradleymeck: and strict mode affects all calls inside of it, so if you need something instead of asking if it adheres to strict mode, you just barrel through [16:09] mscdex: removing arguments.callee is a nono :p [16:10] bradleymeck: pfff name your freaking functions [16:10] mscdex: nein [16:10] bradleymeck: let my stacktraces mean something! [16:10] mscdex: then name your functions. in the meantime i will be using anonymous functions and callee [16:10] mscdex: ;-) [16:10] bradleymeck: with (if we get proxies), Function, and callee can go the way of the dino [16:11] bradleymeck: you take a perf hit as well so ok [16:11] bradleymeck: lookups hurt [16:11] mscdex: i've never noticed any issues [16:11] mscdex: in real world usage [16:11] creationix has joined the channel [16:11] bradleymeck: i dont see perf issues generally, but i do see stack tracing issues quite often [16:12] mscdex: most of the anonymous function references in stack traces i've seen have a line number, so it doesn't matter imho [16:12] wink_ has joined the channel [16:13] bmavity has joined the channel [16:13] bradleymeck: i generally see multiple anons which means me stepping through rather than having a name to associate where it could be dying / on what [16:14] stride: http://thechive.com/2010/08/10/girl-quits-her-job-on-dry-erase-board-emails-entire-office-33-photos/ [16:14] isaacs has joined the channel [16:14] hellp has joined the channel [16:14] weepy has joined the channel [16:15] bradleymeck: plus it allows you to use the function as a statement rather than expression if you can pull it out to improve closure perf [16:15] jelveh has joined the channel [16:15] weepy: hey - some of you chaps might find this useful : http://github.com/weepy/brequire [16:15] weepy: its a client side commonJS compiler [16:17] bronson has joined the channel [16:17] x_or has joined the channel [16:18] ryah: good apis are hard [16:18] ryah: :) [16:18] bradleymeck: indeed [16:18] nerdEd_ has joined the channel [16:18] bradleymeck: creationix you around? [16:19] creationix: for a second [16:20] tjgillies has joined the channel [16:20] bradleymeck: got a post-recieve hook for github to npm in beta, does having to add a commit after you tag sound fine for change of workflow to support npm? [16:21] omarkj: bradleymeck: Thanks, this is an excellent debugger. [16:22] bradleymeck: thank danny not me [16:22] volve has joined the channel [16:22] weepy: omarkj - wha tis a a great debugger ? [16:22] omarkj: Hah, I'll do that. [16:23] mjijackson has joined the channel [16:23] bradleymeck: http://github.com/dannycoates/node-inspector [16:26] jakehow has joined the channel [16:27] paul__ has joined the channel [16:27] dmcquay has joined the channel [16:28] CIA-77: node: 03Ryan Dahl 07master * ra5be730 10/ (54 files in 7 dirs): Upgrade V8 to 2.3.6 - http://bit.ly/bKoetQ [16:28] proppy: mikeal: http://kerneltrap.org/mailarchive/git/2010/4/11/28040 (about git json output) [16:29] ryah: i think it's about time to break the docs up [16:29] sveisvei has joined the channel [16:29] ryah: getting too large [16:29] micheil: okay [16:29] micheil: ryah: what about the manpage? [16:33] weepy: some of you chaps might find this useful : http://github.com/weepy/brequire [16:33] weepy: its a client side commonJS compiler [16:33] weepy: thanks omarkj [16:34] ryah: micheil: it should probably also be smaller [16:34] micheil: okay [16:35] ryah: i'm not sure what the best way to do it is... [16:35] gwoo has joined the channel [16:35] micheil: I've long been an advocate of having the manpage just be the CLI documentation, and have the online / ./docs/ be the API docs [16:36] ashleydev has joined the channel [16:36] creationix: bradleymeck: sorry, baby girl attacked me [16:37] creationix: what was your question? [16:38] gb|work has joined the channel [16:38] gb|work: hi there, my node.js + mongo set up dies after it accepts 100 req/sec. is there anything i should be doing like connection pooling for mongo or something inherently wrong? i understand that node.js + mongo should be brutally fast [16:39] wink_: gb|work: which binding are you using if you dont mind me asking? [16:39] stride: are you opening a new connection for every request? [16:41] gb|work: stride: i think i'm [16:41] wink_: gb|work: are you using the binding to the c library or the native js implementation [16:41] gb|work: wink_: just native node.js extension for mongo [16:43] wink_: ah ok, i probably can't help with your problem, im just trying to sort out which binding i want to use...i'd prefer orlandov's c binding but i seem to break it :p [16:43] gb|work: wink_: i don't think there is anything wrong with native js implementation [16:44] gb|work: that's kind of what i'm doing http://pastie.org/1084177 [16:45] wink_: oh yeah from what i've seen the implementation works...but surely the c binding is much faster [16:45] zomgbie has joined the channel [16:46] wink_: so connection frequency is breaking it? will it sustain 50 req/sec indefinitely? [16:46] gb|work: wink_: yah, the server essentially dies when it gets about 100 req/sec [16:47] stride: gb|work: I haven't worked with this library but I'd suggest trying to open the connection outside of your request conext and reuse it [16:47] wink_: well, the one bonus of the native implementation is you could likely use: http://github.com/dannycoates/node-inspector to help debug it? [16:47] stride: not 100% sure but maybe it helps [16:47] gb|work: stride: connection to mongo right? [16:47] stride: yeah [16:48] gb|work: stride: not a bad idea [16:48] wattz: hahahahahhahaha... .it works...ish. [16:48] stride: worksish? :D [16:48] TobiasFar has joined the channel [16:48] wattz: yeah [16:48] wattz: haha [16:48] stride: okay.. ;) [16:48] wattz: stride: dammit, just be excited for me ok!? [16:49] stride: I'm in the last to weeks of my thesis, any excitment has been eradicated, sorry :)( [16:49] mscdex: wattz up? [16:49] gb|work: stride: woah, didn't even know of it [16:49] mscdex: huhu [16:49] wattz: mscdex: working on Bob :D [16:49] wattz: mscdex: ._. [16:49] mscdex: Microsoft Bob? :-D [16:49] stride: gb|work: of what? [16:49] wattz: mscdex: no no [16:49] gb|work: stride: of node-inspector [16:49] wattz: C++ build prog [16:49] stride: gb|work: wattz suggested that :) [16:49] mscdex: byob? build your own builder? [16:50] wattz: mscdex: my 3 year old named it [16:50] wattz: Bob "The Builder" [16:50] mscdex: are you sure he did and it wasn't you? :p [16:50] stride: what is it? bindings for Microsoft Agent to bring the paperclip to node? :p [16:50] wattz: mscdex: i wub bob da bewlder [16:50] mscdex: heh [16:50] wattz: stride: yes. [16:50] wattz: it's like jake but in C++ and works :D [16:51] mscdex: node-clippy [16:51] wattz: i have a lot of issues with the different versions of Jake [16:51] stride: "So you're trying to open a HTTP connection, can I help you with that?" [16:51] ryah: micheil: let's do it [16:51] micheil: okay [16:51] wattz: mscdex: you are welcome to help build it, lol [16:51] mscdex: node-clippy: a COM-binding for node [16:51] mscdex: LOL [16:51] wattz: Im going to start writing all my AOL PRoGGiEZ in N0D3 [16:51] BryanWB: i am waiting for the corba binding for node lol [16:51] micheil: ryah: I'll start on it in about an hour two [16:52] wattz: can you do Handle method(const Arguments &args) [16:52] wattz: ? [16:52] wattz: i don't want to return SHIT [16:52] ryah: wattz: ? [16:52] derferman_ has joined the channel [16:53] wattz: when you write v8 methods, you do the infamous Handle blah(...) [16:53] mscdex: has anyone here used this framework called Vork? [16:53] wattz: but I don't want to return any value [16:53] derferman_ has joined the channel [16:53] wattz: because if i return Undefined(); v8/C++ console prints the undefined.... [16:54] gb|work: should i open mongo connection outside of node.js? if that's the case, when would i close the connection? [16:54] mscdex: wattz: it's going to return something afaik [16:55] mscdex: always [16:55] wattz: yeah [16:55] wattz: just don't want it to print to screen is all [16:55] mscdex: huh? [16:55] wattz: return String::New(''); [16:55] wattz: -_- [16:55] wattz: mscdex: you do much C++? [16:55] jblanche has joined the channel [16:55] mscdex: i don't understand what you mean [16:55] mscdex: how is it getting printed to the screen? [16:55] wattz: when you run a v8 program from the commandline [16:56] wattz: i wrapped printf [16:56] wattz: so utils.print("hello world"); [16:56] wattz: on the script it shows: [16:56] wattz: hello worldundefined [16:56] wattz: because i return Undefined(); [16:56] gb|work: anybody using mongo + node.js? [16:57] wink_: gb|work: im trying, i think you may want to look into orlandov's driver [16:57] mscdex: wattz: so you're running utils.print() from node or plain v8? [16:57] wattz: mscdex: plain [16:57] wattz: Bob is agnostic [16:57] wink_: so you can attach a listener to the connect event and then start your gear [16:58] gb|work: wink_: not sure it's about the driver though. i just want to understand where/when to establish connections to mongo [16:58] mscdex: i dunno, maybe that's just a side effect of evaluating something on the command line with v8 [16:58] stride: gb|work: did you try my suggestion? [16:58] wattz: anoyne here play "Words With Friends" on iphone? [16:58] cardona507 has joined the channel [16:58] mscdex: wattz: if you execute utils.print() in a script and run it through v8 does the same thing happen? [16:59] wink_: gb|work: establish the connection before your createserver call [16:59] wattz: mscdex: i can show you [16:59] wattz: you can see the source [16:59] wattz: mscdex your github name? [16:59] wink_: issue the .insert inside your createserver callback [16:59] gb|work: wink_: when would i close the connection [17:00] wink_: to mongo? i'd close it when you close the http listener [17:00] stride: you can use the process events for that [17:00] gb|work: stride: about to, i want to understand when to close the connection [17:00] wattz: haha node-ncurses <3 [17:00] gb|work: so would i have one connection open? [17:00] wink_: yes [17:01] gb|work: for thousands and thousands connections? [17:01] gb|work: ouch [17:01] stride: gb|work: process.on('exit', function () { [17:01] wink_: you only have one http connection open :p [17:01] gb|work: stride/wink_: did you see my pastie? [17:02] stride: wink_: he might have a point there, while this one connection to mongo is busy [17:02] stride: gb|work: yep [17:02] wink_: i did, im looking at it right now in fact [17:02] gb|work: http://pastie.org/1084177 [17:02] wink_: opening a new connection shouldnt offer any benefit over using an existing one [17:03] gb|work: wink_: i agree, it slows down the server any way, i just don't understand how parallel requests would use the same connection [17:03] mjijackson has joined the channel [17:04] mape: pkrumins: around? [17:05] MikhX has joined the channel [17:06] wattz: invalid init of reference type const Arguments... really? [17:06] wattz: Handle mkdir(const Arguments &args) [17:06] wattz: it's exactly like the others [17:06] wattz: wait... mkdir is reserved [17:07] nerdEd has joined the channel [17:07] DTrejo has joined the channel [17:08] DTrejo: good morning everyone [17:08] wattz: afternoon! [17:09] pgriess has joined the channel [17:09] V1 has joined the channel [17:09] wattz: im gitty right now because this is all starting to work well [17:10] wattz: once you get the hang of v8 life is good [17:10] aurynn: close to 600 messages unread on the node list.. [17:10] aurynn: I think I'm declaring list bankruptcy. [17:12] sh1mmer has joined the channel [17:12] wattz: mscdex: where did you go!? [17:12] nerdEd_ has joined the channel [17:13] gb|work: stride: if you don't mind, how would my code change if opened the connection outside of the server initiation? not sure where should i close the connection [17:14] MikhX_ has joined the channel [17:14] benburkert has joined the channel [17:16] Neil__ has joined the channel [17:19] bradleymeck: creationix, was just asking if throwing a commit after a tag was a reasonable solution to supporting npm w/ github post-recieve url service [17:19] Neil__ has joined the channel [17:20] isaacs: anyone wanna come to mountain view and pick up some CS books? [17:20] isaacs: i got some good ones. [17:20] stride: gb|work: s [17:20] stride: gb|work: meh, wait :) [17:20] nerdEd has joined the channel [17:21] gb|work: stride: k :) [17:21] SteveDekorte has joined the channel [17:21] stride: gb|work: process.on('exit', function () { db.close(); }); I guess [17:22] bryanl has joined the channel [17:22] jakehow has joined the channel [17:22] brianmario has joined the channel [17:23] deepthawtz has joined the channel [17:23] ghiu has joined the channel [17:23] ghiu: is any of you aware of any node.js markdown / textile module? [17:24] gb|work: stride: server.on, not process.on right? i don't have a process object [17:24] stride: ghiu: wheat has markdown support according to google, might want to look what that uses [17:24] isaacs: stride, gb|work: process.on('exit' can't do async things [17:24] isaacs: stride: at that point, the event loop is over. [17:25] stride: isaacs: oh, close is async there? sorry, didn't know that [17:25] isaacs: stride: i dunno. but if it's a db, with an async interface, it might well be. [17:25] stride: yeah, true [17:25] ghiu: oh, i've jst found out showdown. it's javascript, so it could work. maybe with some light modification http://attacklab.net/showdown/ [17:25] isaacs: i believe the reason for that is that you want ^C to ACTUALLY close your program, not close it in 20 seconds. [17:26] nerdEd_ has joined the channel [17:26] bradleymeck: ghiu i use http://jrm.cc/extras/live-textile-preview.php, not 100% but pretty easy to modify [17:26] isaacs: otherwise you can get into situations where you kill -9 the thing, and it goes "Oh, ok, i'm closing, just a second... just one more thing..." [17:26] astrolin_ has joined the channel [17:27] drudge: ghiu: wheat uses a modified version of showdown [17:27] stride: isaacs: sure, makes sense, any suggestions where to put code for a clean shutdown then? another process event? [17:28] isaacs: stride: you could do a process.on('SIGINT') handler [17:28] ghiu: thank you all, i'll investigate those :) [17:28] stride: mhm [17:28] grahamalot has joined the channel [17:28] isaacs: stride: oh, also, "exit" fires when the event loop has no more things on it, and has been closed [17:28] nex3 has left the channel [17:28] wattz: i should get better at writing macros [17:29] matt_c: ghiu: you might look in to wrapping http://www.pell.portland.or.us/~orc/Code/discount/ if that other stuff falls through. [17:30] drudge: there are node bindings for dicsount [17:31] matt_c: oh cool. [17:31] matt_c: ACTION watches http://github.com/visionmedia/node-discount [17:32] x_or has joined the channel [17:36] joshbuddy has joined the channel [17:37] isaacs: whoaaaa..... [17:37] isaacs: stride: if you put a process.loop() in your on("exit") handler, you can do one more pass [17:37] mattly has joined the channel [17:37] isaacs: that's probably not a good idea though. not sure if that should work, or is a bug. [17:38] dgathright has joined the channel [17:39] astrolin_ has joined the channel [17:40] JimBastard has joined the channel [17:41] stagas has joined the channel [17:41] huyhong has joined the channel [17:41] stagas: I was waiting to add more features but it's too cool to keep it to me http://node.stagas.com/ [17:41] huyhong has left the channel [17:42] mattly_ has joined the channel [17:42] stagas: and http://node.stagas.com/stats.html [17:42] stride: isaacs: eh,okay, yeah that sounds hacky :) [17:43] isaacs: stagas: neato! [17:43] daleharvey has joined the channel [17:43] stagas: isaacs: thanks :) [17:43] charlesjolley- has joined the channel [17:44] isaacs: stagas: need a better url, though. [17:44] stagas: isaacs: yeah I have it on my mind [17:44] stagas: :P [17:44] isaacs: stagas: a friend of mine asked, like JUST yesterday, if anyone had a good breakbeats/electronica streaming service. [17:44] isaacs: stagas: and added: "Paid ok" [17:44] sr: yay minimal [17:44] stagas: isaacs: it's just going to keep a quality listing of radios [17:44] stagas: so you can 'scan' like you do on the radio [17:45] stagas: in your car [17:45] twoism has joined the channel [17:45] DTrejo: interesting [17:45] DTrejo: stagas: it somehow gets the music from the radios and then plays them? [17:46] stagas: it's logging every 5 secs on what you're listening in http://node.stagas.com/stats.html [17:46] stagas: and I almost added suggestion in http://node.stagas.com/suggest.html [17:47] stagas: but I'm too drunk to do it now [17:47] stagas: :P [17:47] stagas: my roommate is complaining about loud music [17:48] rauchg_ has joined the channel [17:48] stagas: I had the rockits to the red [17:48] stagas: 6" [17:48] DTrejo: stagas: do the radio stations have an api or something? [17:48] stagas: DTrejo: no it's just a streaming url [17:48] DTrejo: ah [17:48] stagas: DTrejo: RadioSure has them all, with their streaming urls altogether [17:49] DTrejo: (I work on a semi similar project, which is why I ask) [17:49] stagas: DTrejo: you need to add ;.mp3 for soundManager2 [17:49] DTrejo: I'll have to check that out [17:49] volve_ has joined the channel [17:49] stagas: DTrejo: to the url [17:49] stagas: (which I'm using) [17:49] isaacs: DTrejo: yeah, this is like the electronica version of mixest's indie rock [17:49] jpld has joined the channel [17:50] ngw has joined the channel [17:50] stagas: isaacs: I have a larger project on the php side but gave up on it after node [17:50] isaacs: DTrejo: less discovery-focused, but electronica is a bit different than indie rock, at least, for me. [17:50] DTrejo: yeah [17:50] stagas: it's a different world [17:50] Nohryb has joined the channel [17:50] isaacs: with rock music, i want to know the artist and hear that song again. electronic music is just "fill my earholes with pleasing noise while i code" [17:51] DTrejo: yeah, different music has different purposes for me also [17:51] stagas: isaacs: I was building on this: http://beatorate.com/ in php but I gave up and probably will go on to it on node after I finish some other stuff I have in mind [17:52] isaacs: stagas: neat! [17:52] stagas: isaacs: it basically takes the data from beatport and gives them to youtube, so you listen an electronic track, from, beatport, in youtube as full [17:53] stagas: and you can make playlists and stuff [17:54] isaacs: stagas: imo, it's best to not give me playlists and all that crap. itunes is better for that anyway. [17:54] isaacs: hard to compete with native app [17:55] isaacs: but for streaming/radio, the "just open a tab and put your headphones on" is awesome. [17:55] stagas: yeah [17:55] stagas: the UI is totaly crap [17:55] stagas: :P [17:55] isaacs: itunes doesn't do that so well. there are some stations, but meh [17:55] isaacs: web interface can be specilized to just that [17:55] stagas: the radio is simpler as it can get though [17:55] stagas: and I like it better [17:55] stagas: I'm gonna work on that stuff [17:56] stagas: simple, easy, fast [17:56] qschzt has joined the channel [17:56] isaacs: totally [17:56] stagas: it's the future [17:56] stagas: I even did the google hide controls, show on mousemove thing hehehehe [17:57] technoweenie has joined the channel [17:57] stagas: whoever wants to copy any code it's free [17:59] dylang has joined the channel [18:00] mrHalodri has joined the channel [18:01] DTrejo: stagas: oh hey that's a good idea [18:02] DTrejo: I should add that to my site haha [18:02] stagas: go ahead [18:02] stagas: you want an api? [18:02] isaacs: stagas: your js is almost npm-style [18:02] isaacs: ACTION approves of this. [18:02] stagas: isaacs: I'm heavily influenced by that style [18:03] stagas: why almost is the question [18:03] stagas: :P [18:03] stagas: it is clearly 300% percent better, faster, more readable code [18:05] derferman has joined the channel [18:05] isaacs: stagas: the first thing on the line by itself with no , [18:05] isaacs: stagas: http://gist.github.com/517706 [18:05] isaacs: it's not a very significant difference, really. [18:05] isaacs: clearly the same principles at work; [18:06] isaacs: but i just usually put the ( or { on the same line as the first thing [18:07] stagas: isaacs: oh yeah, certainly on the same line, but I like content after { to be in a new line, it's a matter of preference actually [18:07] stagas: and after [ some times [18:07] isaacs: yeah, like i said, clearly the same principles at work [18:07] isaacs: actually, i kinda dig how the first thing looks like an extra indent in your style. [18:09] stagas: isaacs: yeah because the parent and the children are clearly visible because you're used to the 2 spaces tab [18:09] stagas: isaacs: being stuff after { and [ right below the character is a bit strange [18:09] isaacs: stagas: all code is strange :) [18:09] creationix has joined the channel [18:09] stagas: not exactly shows the relation [18:10] stagas: unless you want to point the strangeness [18:10] DTrejo: isaacs: I like your coding style too, makes for fewer trailing comma errors and annoyances like that [18:10] DTrejo: I used it for the clock I made and also this chrome addon I'm almost ready to show people [18:10] stagas: it's a bit alerting [18:10] isaacs: i sort of think of the vertical {,,,,,,} line being like a curtain. the object is to the right of that curtain. [18:11] isaacs: or in a function call, the vertical line of (,,,,,,) is the same [18:11] isaacs: args on the right, caller on the left. [18:12] stagas: http://node.stagas.com/#deep-mix-moscow this is my favorite [18:13] blowery: the leading comma style still makes my eyes hurt [18:13] stagas: blowery: it's supposed to do that [18:13] stagas: :P [18:13] stagas: blowery: how else you're going to notice a comma missing [18:13] blowery: i look at code 6 ~ 10 hours a day. i really don't want it to hurt. [18:13] blowery: stagas: javascriptlint catches it [18:14] blowery: js2-mode in emacs catches it [18:14] stagas: blowery: I use notepad++ [18:14] blowery: unit tests may catch it, depending [18:14] bradleymeck: linting catches many things, but for readability being able to glance and know its a continuation of something is nice [18:15] blowery: i find it the opposite of readable [18:15] blowery: but, just my taste [18:15] bradleymeck: why? [18:15] blowery: why do like mozart and hate bach? [18:15] stagas: oh you just need to oppose me somehow [18:15] guybrush: today is the node-meeting at sencha's office, right? any updates regarding recordings? :p [18:16] bradleymeck: no, i just want to know why the other style is more readable [18:16] creationix: woot, I'm speaking at jsconf! http://jsconf.eu/2010/speaker/techniques_and_tools_for_tamin.html [18:16] stagas: use it, then speak [18:16] blowery: bradleymeck: it's just what i'm used to i suppose [18:16] stride: grats [18:16] blowery: bradleymerk: like i said, it's a taste thing. runtime doesn't care, as long as it's valid. [18:17] creationix: guybrush: no updates that I know of, our uplink is pretty bad so I know a livestream is practically impossible if anyone else wants internet [18:17] bradleymeck: agreed, i just like to learn both sides in case i can improve something [18:18] bradleymeck: even an audiostream? [18:18] guybrush: creationix: ok - i guess there will be slides at least, cant wait to see them :D [18:20] naveenk has joined the channel [18:23] backthatzachup has joined the channel [18:24] pkrumins: mape: now around. [18:25] hdon has joined the channel [18:27] ghiu: is anyone aware of any project concerning the implementation of an openid client in node? [18:28] Aria has joined the channel [18:29] DTrejo: isaacs: I wish jslint didn't bother me about leading commas, at least javascript lint doesn't do that [18:29] isaacs: DTrejo: jslint doesn't bother me about anything. [18:29] isaacs: DTrejo: it just sits there doing nothing. [18:29] isaacs: (it helps that i don't run it) [18:29] DTrejo: heh [18:29] DTrejo: textmate runs javascript lint whenever I save, pretty helpful [18:30] DTrejo: (jslint != javascript lint, in case this is confusing) [18:31] jesusabdullah: Is it the same idea? [18:31] jesusabdullah: Looks like it! [18:33] DTrejo: yes, but javascript lint is more like protective parent that let's you go drinking on the weekend, but no during the week [18:33] creationix: I wish javascript lint could find misnamed variables like jslint does [18:34] DTrejo: whereas jslint is like a regular protective parent, no drinking [18:34] jakehow has joined the channel [18:35] jesusabdullah: You could run BOTH :v [18:35] zomgbie has joined the channel [18:36] jesusabdullah: You could also just ignore most everything jslint says [18:36] DTrejo: yeah [18:37] bradb has joined the channel [18:38] wattz: woot, segfault. [18:38] DTrejo: the very few times i ran jslint it felt slow [18:38] jesusabdullah: I ran it once [18:38] jesusabdullah: It seems like a good idea, right? javascript code can be pretty loosey-goosey sometimes [18:38] jesusabdullah: but then it's like, "oh my God this isnt FORTRAN" [18:39] tsyd has joined the channel [18:39] mde: I've just hacked it to shut it up about certain stuff. It gets so noisy. :) [18:40] jesusabdullah: Aren't there switches? [18:40] jesusabdullah: I know the online version has them [18:40] mape: pkrumins: got pretty stoked about the stackvm video, got some ideas and felt like throwing something together, http://stackvm.mape.me/ not sure if you care or get anything out of it but figured I might as well show it [18:40] kuya: isnt the command line version just slow because of slow rhino startup times? thats what iv always presumed [18:42] Gruni has joined the channel [18:42] wattz: oh look, it's mde [18:42] wattz: ._. [18:42] jesusabdullah: mape: pretty! [18:42] jesusabdullah: mape: You could link that in their wiki! [18:43] jesusabdullah: http://wiki.github.com/substack/stackvm/ideas [18:46] mape: Ah yeah [18:46] bradb_ has joined the channel [18:46] sh1mmer has joined the channel [18:46] ryah: 300 [18:46] mape: ? [18:47] ryah: 14:46 -!- Irssi: #Node.js: Total of 300 nicks [0 ops, 0 halfops, 0 voices, 300 normal] [18:47] mape: Ah, hehe [18:47] SteveDekorte has joined the channel [18:48] justin_ has joined the channel [18:48] pkrumins: mape, holy cow! [18:48] pkrumins: that looks awesome [18:49] mape: A lot of dummy stuff but should get the general idea across [18:49] hellp has joined the channel [18:49] wink_: anyone seen orlandov today? [18:49] malkomalko: that looks nice mape [18:49] pkrumins: that looks amazing [18:49] pkrumins: i am all wowowowowow [18:50] malkomalko: custom styling around those black boxes or is that a plugin? [18:50] malkomalko: I like the opacity [18:50] mape: Guess the main menu is at the top left but you didn't show that in the screencast so didn't know what to put ;) [18:50] mape: malkomalko: it is all custom styling, with jQuery ui to do the dragging [18:51] DTrejo: mape: that's really cool lookin [18:51] malkomalko: nicely done sir [18:51] ngw: hm [18:51] mape: so pretty slim (but the shadows/gradients) are making it kinda slow, can be optimized though, just did this as a proof of concept [18:51] pkrumins: we could totally adapt this [18:51] ngw: someone knows in express.js how to have the html output to process in other ways instead of rendering [18:51] dnolen_ has joined the channel [18:52] pkrumins: mape, yes, it's a sidebar on top left [18:52] ngw: seems like the documentation is wronk, and render doesn't accept a callback [18:52] creationix: ryah: we're going to have a full house tonight, I got about 30 confirmed people coming [18:52] pkrumins: the main menu, where screencasts and screenshots get listed, contacts and will probably have a link to account stuff [18:52] ryah: creationix: okay [18:53] ryah: i guess i should make a presentation :) [18:53] creationix: ryah: yeah ;) [18:53] ryah: any suggestions? [18:53] matt_c has joined the channel [18:53] creationix: hmm [18:53] pkrumins: mape, we were just actually thinking of putting small thumbnails of vms at the bottom [18:53] mape: pkrumins: hmm yeah, guess all those sites will work in modal boxes? Or be fetched through ajax and overlayed so you don't have to leave screen? [18:53] matt_c has joined the channel [18:53] pkrumins: mape, so you can click one and it takes the whole screen [18:53] creationix: ryah: maybe overview of node API structure? [18:54] mape: pkrumins: yeah, like win 7, should be easy enough [18:54] ryah: creationix: hm - what would that mean? [18:54] nano`: anyone tried google's Go language? I wonder if it would be a good platform for node-like apps [18:54] Sembiance: ick [18:54] creationix: ryah: just a sampling of what libraries come included with node and small examples of how to use them [18:54] wink_: i've found a bug in orlandov's mongo binding, the binding has debug disabled, i enabled it so it should be printf() now, is node going to print those in my console if they're coming out of a module? [18:55] pkrumins: mape, what do you mean 'all of those sites'? [18:55] pkrumins: mape, all those links? [18:55] creationix: ryah: people like hands on stuff, of course there is always the talk about why single threaded is fast [18:55] mape: pkrumins: like "my account" [18:55] mape: if I click that I don't move to another page it is just overlayed [18:56] pkrumins: mape, ah, so when you click "my account" i guess all vms disappear and you're presented with your account information (vm fades out, account info fades in) [18:56] pkrumins: mape, so then you edit some, like order more ram, or update some preferences, click ok, and this menu fades out, and vm that you had fades back in. [18:56] pkrumins: mape, like that [18:56] creationix: ryah: maybe explain your irc and live-chat demos [18:57] mindeavor has joined the channel [18:57] mape: pkrumins: yeah [18:57] pkrumins: mape, wow could you update this design with small thumbnails of vms at the bottom? [18:57] pkrumins: mape, and put disk images in the "main menu" [18:57] pkrumins: mape, like we have in the demo, when I click "disk images" it opens up with a list of your images, and then you can spawn one or more new instance! [18:58] pkrumins: mape, the main menu can actualy be acordeon design (like in jquery-ui), it looks really nice [18:58] pkrumins: mape, like you have 'my account', 'disk images', 'screenshots', 'screencasts', and when you click 'my account' the other three slide down, and the 'my account' expands [18:59] mape: Yeah, think there will be enough in the menu so the disk images can't always be shown? [19:00] mape: Seems like the kinda thing you always want to have a mouse click away [19:00] pkrumins: mape, check it with opera, it doesn't work btw! [19:00] pkrumins: mape, and dragging is very slow actually for some reason! [19:00] mjr_ has joined the channel [19:00] mape: Oh, yeah, Opera only has like 1% marketshare here in sweden so don't usually check it, will though [19:00] stagas__ has joined the channel [19:01] wattz: pkrumins: what's a good buffer size for a char that is getting file contents? [19:01] mape: And the slow part is most likely because of shadows and whatnot [19:01] pkrumins: wattz, 4096kb [19:01] pkrumins: sorry [19:01] pkrumins: wattz, 4096bytes [19:01] pkrumins: 4kb. [19:01] wattz: haha, better [19:01] wattz: ok [19:01] wattz: thanx [19:01] pkrumins: yw! [19:01] wattz: ACTION <3 pkrumins  [19:01] wattz: lol [19:01] pkrumins: :) [19:02] drudge: mape: what is this new awesome thing? [19:02] pkrumins: drudge: it's this -- www.stackvm.com [19:03] pkrumins: drudge: my and SubStack's startup -- here is the announcement -- http://www.catonmat.net/blog/i-am-doing-a-startup [19:03] pkrumins: drudge: mape is just very enthusiastic about it and he created this awesome design! [19:03] DTrejo: just signed up :) [19:03] pkrumins: sweet [19:04] ngw: ah ! I've got to use jade directly ! [19:04] jesusabdullah: huh? [19:04] jesusabdullah: What's jade? :/ [19:04] dipser has joined the channel [19:05] DTrejo: some templating language? [19:06] dipser has joined the channel [19:06] drudge: very neat pkrumins [19:07] googol has joined the channel [19:08] wattz: hmmm [19:08] skampler has joined the channel [19:09] jesusabdullah: ngw: I see! [19:09] wattz: eh [19:09] wattz: char *buffer = malloc(4096); wrong ._o [19:10] dylang: has anything about child_process.spawn changed from 0.1.101 to 0.1.103? spawn('ls', ['-al']) works, but spawn('node', ['app.js']) gives me the error: execvp(): No such file or directory [19:10] wattz: heh, should it be a t_size.. [19:10] wattz: no b.. [19:10] wattz: sorry, thinking through irc again.. [19:10] justin_ has joined the channel [19:10] pkrumins: drudge, thanks! [19:11] pkrumins: wattz: no size_t [19:11] isaacs: dylang: it has changed, but that should still work. [19:11] isaacs: dylang: is node in your PATH? [19:11] wattz: okcan i paste this method and get your input, see if it's the approach? [19:11] pkrumins: wattz, char *buffer = malloc(sizeof(*buffer)*4096); [19:11] wattz: ahhhhhhhh [19:11] pkrumins: but the previous one should have still wroked [19:11] dylang: isaacs: yup in path. env hasn't changed, just upgraded node yesterday. [19:11] pkrumins: wattz: make sure is included. [19:11] jetienne: just in case a chat is not an octet ? :) [19:11] jetienne: char [19:12] mape: pkrumins: there, should work in opera now, without all the gradients though [19:12] isaacs: dylang: does it work if you do spawn(process.execPath, ['app.js'])? [19:12] mjr_: Over 300 members in #node.js [19:12] pkrumins: jetienne: no, just in case you ever change buffer type. [19:12] mjr_: craziness [19:12] pkrumins: mape, looking [19:12] wattz: http://pastie.org/1084475 [19:12] wattz: pkrumins: ^ [19:13] wattz: the error i keep getting is: error: invalid conversion from ‘void*’ to ‘char*’ [19:13] pkrumins: k so it's full of errors. [19:13] jesusabdullah: Huh, Jade actually looks kinda cool [19:13] wattz: NIFTY [19:14] jetienne: wattz: yuk, why not read the file size and then malloc this. realloc will fragment your ram [19:14] dylang: isaacs: thanks - '/usr/local/bin/node' and process.execPath work. so i guess it's a path issue? [19:14] pkrumins: wattz: i don't even know where to begin [19:14] isaacs: dylang: i guess.. that's odd, though. [19:14] hansek has joined the channel [19:14] wattz: lol [19:14] jesusabdullah: Ouch :( [19:14] isaacs: dylang: what if you pass in a third arg: { env : {PATH:"/usr/local/bin"}} [19:15] pkrumins: it's just wrong, so you alloc a buffer then read one char at a time. [19:15] wattz: this is my first attempt at read file to string [19:15] beelzabub: there's no way to have the buffer realloc it's buffer, right? [19:15] wattz: in C [19:15] jesusabdullah: ACTION pats wattz on the back [19:15] pkrumins: you're using malloc and not new. you could be using malloc but then you have to cast to the right type. [19:15] pkrumins: wattz: you're not using scope handle [19:15] pkrumins: wattz: you're not closing the scope. [19:15] wattz: pkrumins: oh i know [19:15] jetienne: wattz: use stat() to get the filesize, then malloc this size, preferably in a String already, then read the data and write in it the alloced ram [19:16] jetienne: the scary part is the "i + 2" :) [19:16] wink_: in a module, is there a way to sniff any event that is being emitted? im trying to hunt down a bug and i'd like to see all the events and their order :> [19:16] beelzabub: stat doesn't always return file-size [19:16] pkrumins: jetienne: that's wrong [19:16] pkrumins: the file can be > ram [19:16] jetienne: beelzabub: ? [19:16] wattz: pkrumins: I put this in it's own little little file before adding it to the fileio namespace [19:16] beelzabub: there are fake files all over linux [19:16] wattz: test outside of V8 all together [19:16] sh1mmer has joined the channel [19:16] jetienne: pkrumins: read again [19:16] beelzabub: e.g. /proc [19:16] V1: Sucks balls that ES5 doesn't have iterators like Mozilla's JavaScript 1.7 has. That is so useful for conditional looping combined with callbacks. ;( [19:16] beelzabub: etc [19:16] beelzabub: /syc [19:16] wattz: throw the Handle bac in there just for the paste [19:16] jetienne: beelzabub: ? and stat doesnt return the size ? [19:16] beelzabub: it returns 0 [19:17] jetienne: beelzabub: gimme the path [19:17] beelzabub: /proc/self/smaps [19:17] pkrumins: jetienne: reading `use stat() to get the filesize, then malloc this size` [19:17] beelzabub: pretty much anything in proc [19:17] dylang: isaacs: spawn('echo', ['$PATH']); returns $PATH - not the path. could that be related? [19:17] beelzabub: i know because i encountered this write now - fs.readFileSync is broken for those files [19:17] jetienne: beelzabub: ok [19:17] pkrumins: wattz: also you're not freeing buffer after you're done [19:17] beelzabub: i just patched it to work [19:17] jetienne: wattz: do you plan to read normal files ? or more like video ram ? [19:17] pkrumins: wattz: and you're doing sizeof(buffer) instead of sizeof(*buffer) [19:18] isaacs: dylang: echo doesn't do variable expansion, that's sh doing that. spawn('sh', ['-c', 'echo $PATH']) [19:18] wattz: I had the * in there, sorry, tested both ways [19:18] wattz: without the * was the later [19:18] jetienne: sizeof(buffer) = 4 or 8 [19:19] jetienne: just to be sure we all agree on this :) [19:19] wattz: so many people do it some many different ways [19:19] wattz: i fumbled through this [19:19] nano` has joined the channel [19:19] dylang: isaacs: that returned a path, but not my path. it returned /usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:. Running that in bash returns the correct path. [19:19] pkrumins: there is just one way [19:19] pkrumins: there aren't many ways to do it, wattz [19:19] wattz: ACTION lowers head.. [19:19] wattz: ACTION kicks dirt [19:20] jetienne: :) [19:20] isaacs: dylang: what's console.log(process.env.PATH)? [19:20] wattz: ok, back to the docs [19:20] beelzabub: btw - the entire fs thing is broken when it comes to reading files [19:20] dylang: isaacs: that returns my correct path [19:20] beelzabub: you cannot use the result of stat as the amount to read [19:20] beelzabub: there's a race condition that could be exposed as a security hole [19:21] isaacs: dylang: this is weird. it should be inheriting from process.env if you don't specifically supply it with an env object. [19:21] beelzabub: you can only use the information from stat if you use fstat (stat on open file handle) [19:21] beelzabub: even if you do this, there's still no guarantee - you might be reading what someone else is writing [19:22] beelzabub: & fuse filesystems could easily return fake values because they expect you to use the result of read like most people do [19:22] technoweenie has joined the channel [19:23] codemariner has joined the channel [19:23] wattz: yay, it's technoweenie [19:24] hobson has joined the channel [19:24] dylang: isaacs: should i file a bug? [19:25] tyfighter has joined the channel [19:26] nerdEd has joined the channel [19:26] bradb_ has joined the channel [19:28] bradleymeck: V1 were you talking about the yield state,ent? [19:28] bradleymeck: *statement [19:28] V1: bradleymeck: Yeah, it's only supported in Firefox ;( [19:29] bradleymeck: the only real problem i have with that is it saves a whole stack to be popped into [19:29] herbySk has joined the channel [19:29] bradleymeck: if you went down into v8 you could replicate it as a function i guess though [19:29] JimBastard has joined the channel [19:29] JimBastard: god someone please save me [19:30] bradleymeck: Go back to zerging! [19:30] JimBastard: if i have to pair program on ruby for another day im gonna segfault [19:30] wattz: ACTION get's and old priest and young priest [19:30] V1: Yup, but there are usecases where iterators come in handly, especially if you want to advance a loop based on the values of a returned callback. [19:30] JimBastard: Enumerables V1 ? [19:31] bradleymeck: yea, but then the loop itself implements another coroutine ontop of the yield one [19:31] V1: might work. [19:31] bradleymeck: and so on [19:33] nerdEd_ has joined the channel [19:33] daleharvey has joined the channel [19:34] benburkert has joined the channel [19:34] DTrejo: JimBastard: is ur partner attractive? [19:34] JimBastard_ has joined the channel [19:34] JimBastard_: :-( [19:34] V1: Yups, but i'm just glad i got my minimal iterator styled fn working now. I can finally continue with building a redundant connection [19:35] bradleymeck: ill take that face as "he/she is a neckbeard" [19:38] JimBastard_: i got discon [19:38] JimBastard_: dunno if that was directed at me [19:40] bradleymeck: is there a high level db module for something that can scale replicate across machines that is mature? [19:41] bradleymeck: mongodb-native is borking on collection.find :( [19:42] JimBastard_: what do you mean scale replicate across machines [19:42] JimBastard_: wouldnt each machine just include the db module and you'd scale the db server? [19:42] bradleymeck: the db replicates across machines [19:43] bradleymeck: but yea [19:43] JimBastard_: couch replicates [19:43] JimBastard_: you talking about replications or sharding [19:43] weepy has joined the channel [19:43] astrolin_ has joined the channel [19:43] Aria has joined the channel [19:44] bradleymeck: dont know the diff well enough to say, but full replication in case 1 of 2 machines goes down [19:44] JimBastard_: bradleymeck: you should check out http://wiki.apache.org/couchdb/Replication [19:44] JimBastard_: to my understanding couchdb owns face at replication [19:44] JimBastard_: its very very fast and cheap [19:47] bradleymeck: just trying to find a good node module for it now [19:48] isaacs: couchdb does indeed own face at replication [19:48] isaacs: that's how i back up the npm registry, actually [19:48] isaacs: i just replicate it down locally [19:48] aglemann has joined the channel [19:48] aglemann has left the channel [19:49] isaacs: bradleymeck: also, you don't really need a "good node module" for couchdb. it's just plain old http [19:49] isaacs: bradleymeck: couchdb's http api is better than most node modules' apis. [19:49] isaacs: in terms of guessability, error reporting, etc. [19:49] isaacs: it's pretty amazing. [19:50] jesusabdullah: there are a few of them, though [19:50] isaacs: ACTION is totally a couch fanboi [19:50] bradleymeck: yea, i know its http, but i dislike dealing w/ http when i can use functions, might have to use raw http though [19:50] isaacs: bradleymeck: you could use mikeal's "request" program [19:50] jesusabdullah: node-couch, cradel and lawnchair I believe [19:50] jesusabdullah: cradle* [19:50] isaacs: bradleymeck: in npm, i wrap up the things i do with it in a few helper functions. it's kinda like an ad-hoc couchdb client. [19:50] jesusabdullah: are some of the big three [19:51] mikeal: lawnchair is something else [19:51] bradleymeck: i have a similar one that i use when i have to [19:51] mikeal: it's not a couch client, it's a couch-like interface for the browser [19:51] jesusabdullah: Oh, is it? Whups [19:51] jesusabdullah: Thanks mikeal [19:51] mikeal: i just use the HTTP API directly [19:51] mikeal: with request [19:51] isaacs: bradleymeck: http://github.com/isaacs/npm/tree/master/lib/utils/registry [19:51] mikeal: http://github.com/mikeal/node-utils/tree/master/request/ [19:51] stagas__ has joined the channel [19:52] mape: pkrumins: Updated the page a little, added the thumbnails, http://stackvm.mape.me/ [19:52] weepy: hey guys [19:52] weepy: i just made a short but sweet lib for using CommonJS in the browser [19:53] weepy: check it out : [19:53] weepy: http://github.com/weepy/brequire [19:53] bradleymeck: mikeal thanks, but im using a stripped down Witch, since i dev on that i want it to be something i know the weaknesses of [19:53] weepy: v grateful for feedback [19:53] stagas has joined the channel [19:53] pkrumins: mape: looking [19:53] jhuckestein has joined the channel [19:53] mikeal: cool [19:54] pkrumins: mape: cool, can you do some more changes? [19:54] mape: depends on how long it takes ;) [19:54] pkrumins: mape, like bring the visible desktop area a bit up and put those thumbnails visible in that freed-up area [19:54] pkrumins: mape, i hope you understand what i mean [19:54] jhuckestein: Hey guys, I just checking whether somebody is driving from SF to the node meetup tonight. If there's still space I'd love to chip in :) [19:55] mape: always showing? right now the instances are just centered [19:55] saikat has joined the channel [19:55] DTrejo: hi jhuckestein :) [19:55] pkrumins: mape, i mean thumbnails are always showing [19:56] mape: k, 1sec [19:56] pkrumins: :) [19:56] pkrumins: mape, we have planned on updating those thumbnails [19:56] mape: ah live view [19:56] pkrumins: so the user knows what's going on in other vms! [19:56] pkrumins: while he's using some other [19:56] pkrumins: so he at least gets some idea [19:56] pkrumins: so he at least gets some idea of what's going on. [19:58] SteveDekorte has joined the channel [19:58] jhuckestein: hi DTrejo :) [19:58] mape: pkrumins: there [19:59] blaines has joined the channel [19:59] jhuckestein: mjr_, is there still space in your car? [19:59] pkrumins: mape, checking [19:59] mjr_: jhuckestein: full at the moment [19:59] pkrumins: mape, so awesome [20:00] jhuckestein: I'll ride on the roof then [20:00] mape: guess one could center the one being clicked, might be handy? [20:00] jhuckestein: j/k, could you let me know if somebody cancels? [20:01] mjr_: jhuckestein: if we were back in Michigan, you could ride in the pickup bed. But sadly, we are not. [20:01] mjr_: actually, it's not sad [20:01] jhuckestein: it is sad. [20:01] pkrumins: mape, yeah [20:01] pkrumins: center and clear others [20:01] pkrumins: like have only one vm at a time [20:01] pkrumins: for now [20:02] pkrumins: and then if you drag another one specifically out from thumbnails then you have the 2nd [20:02] pkrumins: etc [20:03] pkrumins: mape, also the disk images has lower zindex now [20:03] pkrumins: like the spawn qemu/vmware appears below thumbnails [20:04] mape: they should be above? [20:04] pkrumins: mape, i mean you can't clikc qemu/vmwaer [20:04] pkrumins: mape, because thumbnails are above them [20:04] pkrumins: mape, the menu appears below thumbnails [20:04] pkrumins: so you can't use it [20:04] pkrumins: try hovering on one of the images [20:05] pkrumins: mape, it would also be cool to minimize thumbnails and send sidebar to the left [20:05] pkrumins: so that the screen is just fro vms [20:05] pkrumins: but leave a little arrow that when clicked brings them back [20:05] pkrumins: that would be totally awesome. [20:06] jetienne: weepy: seems nice [20:06] jetienne: weepy: standard and simple [20:06] Sembiance: so, anyone using any template engines with node? JSON-template? nun? jazz? [20:08] weepy: jetienne - thanks - yes exactly [20:08] weepy: vanilla [20:08] jetienne: http://wiki.github.com/ry/node/modules#templating <- Sembiance i dont use them. but here is a list [20:09] jelveh has joined the channel [20:09] jetienne: weepy: im just implementing something similar. but not standard. i will try your tomorrow and use it. if it works for me :)= [20:10] weepy: jetienne - cool hit me up on github if you like it /dont like it etc [20:10] jetienne: http://ejohn.org/blog/javascript-micro-templating/ <- Sembiance this one is small. [20:10] wattz: lol [20:10] Sembiance: jetienne: aye, was wondering if anyone had actual experience using them, or any opinions. I'm currently evaluating which one I'd like to use for a new project, have about 20 browser tabs open right now ;) [20:11] JimBastard has joined the channel [20:13] JimBastard: i have a dumb question, i must have asked this a bunch already. is base64 encoding decoding baked into node now? [20:13] Sembiance: Currently I've narrowed it down to json-template, nun or jazz [20:14] JimBastard: i have like 4 different implementations of it spanned across 3-4 projects, just got a pull request for ANOTHER one. [20:15] JimBastard: anyone? [20:15] kriszyp_ has joined the channel [20:15] Sembiance: JimBastard: I looked a few months ago. [20:15] jesusabdullah: another implementation of base-64? [20:15] stagas__ has joined the channel [20:16] Sembiance: JimBastard: but I forget which one I chose :) [20:16] JimBastard: jesusabdullah: like this http://github.com/Marak/pdf.js/blob/master/lib/pdf.js#L318 [20:16] bradb_ has joined the channel [20:16] JimBastard: Sembiance: i have a few working versions, im just curious if it hit core yet [20:16] stagas has joined the channel [20:16] Sembiance: I don't keep close tabs on core developments/changes, so dunno :) [20:16] JimBastard: i just dont want to have 4 different implementations floating around [20:19] Sembiance: ACTION smiles. [20:20] jetienne: weepy: require("./a") will run the 'a' module every time i do a require, no ? am i reading the code ok ? [20:20] jetienne: weepy: is that the case in node.js ? [20:20] bradleymeck: it is not, node caches [20:22] jetienne: bradleymeck: here i mean 'run' not 'read the file'... is it what you mean to ? just to be sure [20:22] bradleymeck: both? [20:23] jetienne: well to cache the file is just perf optim. to run once is another story... i believed ryah told me the same [20:23] bradleymeck: node wont reread a file path, and it will only fire it off once [20:23] slaskis has joined the channel [20:23] jetienne: bradleymeck: ok thanks [20:24] creationix: jetienne: what are you trying to figure out? [20:24] jetienne: http://github.com/weepy/brequire/blob/master/lib/require.js#L6 <- so it seems to be a bug here [20:24] mape: pkrumins: there now you can minimize them [20:25] jetienne: creationix: looking at weepy implementation of commonjs in a browser. it is standard and simple [20:25] creationix: ahh, I see [20:25] creationix: yeah, node doesn't re-run the module each time it's required, just returns the cached result of the last require [20:26] creationix: my favorite pattern is to have the contents of the module be a function that generates an "instance" of the module [20:27] jamescarr has joined the channel [20:28] ghiu has joined the channel [20:29] voodootikigod has joined the channel [20:29] jetienne: weepy: what about calling the module function in the require.module(), is that possible ? [20:30] Guest6565 has joined the channel [20:32] pkrumins: mape, looking :) [20:33] pkrumins: mape, :D [20:34] pkrumins: mape, excellent quality job! [20:34] mape: hoping I'll get a beta key ;) [20:35] JimBastard has joined the channel [20:36] JimBastard: woah can npm handle custom c add-ons ? [20:36] micheil: JimBastard: man.. in that JSConf talk, you remind me of that guy "Someone is wrong on the internets!" [20:37] JimBastard: micheil: lolwut [20:37] pkrumins: mape, you sure will! [20:37] JimBastard: what did i do [20:37] isaacs_mobile has joined the channel [20:37] micheil: JimBastard: I dunno, just the idea of: "Yeah, I just yell at people" [20:37] maushu has joined the channel [20:38] JimBastard: micheil: you cant argue with results [20:38] JimBastard: or me, apparently :p [20:38] JimBastard: YELLS AT micheil [20:38] JimBastard: is it working? [20:38] micheil: no, you can't, but either way :D [20:38] JimBastard: "yell sourcing" [20:39] creationix: JimBastard: I have more subtle ways than yelling ;) [20:39] bradleymeck: jimbastard, yes [20:39] JimBastard: i still cant believe they let me on stage [20:39] JimBastard: ahahaha [20:39] creationix: twice even [20:39] jesusabdullah: That was awesome [20:39] jesusabdullah: sweet hat Jim [20:39] dmcquay has joined the channel [20:39] JimBastard: ahaha thanks jesusabdullah [20:39] DTrejo: JimBastard: yellsource.com is available [20:39] JimBastard: jesusabdullah: have you seen my rap videos [20:39] Blackguard has joined the channel [20:40] JimBastard: DTrejo: ahaha my new blog [20:40] creationix: JimBastard: you should make videos for couch.io, they would love it [20:41] bradleymeck: which video were you yelling in? [20:41] JimBastard: creationix: im all over it [20:41] DTrejo: this is jim http://www.jimbastard.com/ [20:41] JimBastard: ahahaha [20:41] JimBastard: jesusabdullah: http://www.youtube.com/watch?v=IrkDqh9ZVog [20:41] JimBastard: creationix: i have the couchdb rap laid out, i just gotta get filming going. i've been sick for the past week or so [20:41] creationix: I understand being sick [20:42] creationix: I had a 105F fever all day Friday [20:42] creationix: probably suffered massive brain damage [20:42] isaacs_mobile: JimBastard: yes. (Re npm love for c addons) [20:42] DTrejo: JimBastard: link to your talk? [20:42] JimBastard: isaacs_mobile: thats awesome, i didn't know that [20:43] DTrejo: gangstas have a tough life yo, gotta take yo vitamin c [20:43] JimBastard: DTrejo: http://blip.tv/file/3881880 [20:43] isaacs_mobile: If yow have a wscript in your pkg root, it'll even nodewaf it up for you by default in the next version [20:43] ac94 has joined the channel [20:45] JimBastard: isaacs_mobile: thats kinda huge, i had no idea. i just get worried though about starting to use things like http://github.com/pkrumins/node-base64 though, because you've pretty much bound the person to using npm. i guess thats not a bad thing [20:45] JimBastard: ACTION thinks on it some more [20:46] pengwynn has joined the channel [20:46] DTrejo: love your talk subtitle [20:48] JimBastard: ? [20:49] DTrejo: arg i wanted to read this http://www.jimbastard.net/The_World_Famous_Priceless_story.html [20:50] DTrejo: "stuff is happening on the internet. you want to do stuff when that stuff happens." [20:50] steadicat has joined the channel [20:50] JimBastard: hahaha yeah DTrejo [20:50] JimBastard: DTrejo: one sec [20:50] hpoydar has joined the channel [20:50] DTrejo: oh it's .com [20:50] DTrejo: cause it got moved [20:50] JimBastard: DTrejo: im allowed to link you to http://nymag.com/news/features/27341/index5.html [20:51] JimBastard: thats about it though [20:51] DTrejo: btw, all the .nets are broken [20:51] DTrejo: for me [20:51] JimBastard: yeah, that sounds about right. i dont know why those links are pointing to .net [20:52] JimBastard: ill try to fix when i get home, i let the .net domain lapse a while ago [20:52] JimBastard: which page has .net links? [20:52] DTrejo: http://www.jimbastard.com/Jim_programs_a_true_WTF.html [20:53] JimBastard: ahh i see, i dont even have the blogging engine i wrote that builds this site lol [20:53] JimBastard: i havent updated it in years [20:53] JimBastard: one sec [20:53] jesusabdullah: What the world-famous priceless story? [20:53] jetienne: JimBastard: you want to be the arrington of node.js ? :) [20:53] JimBastard: http://nymag.com/news/features/27341/index5.html [20:54] JimBastard: whats an arrington? [20:54] wattz: don't ask [20:54] DTrejo: hehe [20:54] jesusabdullah: He's some guy [20:54] jesusabdullah: reports on tech stuff [20:54] pgriess has joined the channel [20:54] pquerna: are there any other noders at the cassandra summit? [20:54] jesusabdullah: (from techcrunch? Mebbs?) [20:54] wattz: if you say his name three times he appears and starts to brag about how awesome he is [20:54] mde: They just moved into our building. [20:54] jesusabdullah: He's a massive troll [20:54] wattz: jesusabdullah: ^ [20:54] mde: Two of our guys got stuck in the elevator with him. [20:55] wattz: mde: im so sorry... [20:55] jesusabdullah: There's a video of there with Leo Laporte saying, "Screw you Mike! SCREW. YOU." [20:55] jesusabdullah: It's awesome [20:55] mde: They didn't know him, just wondered "who is this asshole?" [20:55] jesusabdullah: Haha [20:55] SvenDowideit has joined the channel [20:55] wattz: i was at a conf and he was there, talking with some devs and he came up and just started talking, so we just walked away :P [20:55] _aron has joined the channel [20:55] JimBastard: DTrejo: fixed [20:55] jetienne: mde: go figure :) [20:55] jesusabdullah: Arrington, wattz? Or Marak? [20:55] jesusabdullah: XD [20:56] mde: Carol Bartz is well known for telling him to fuck off: http://www.sfgate.com/cgi-bin/blogs/abraham/detail?blogid=95&entry_id=64235 [20:56] jesusabdullah: "Is that a Domo hat? Screw this I'm outta here" [20:56] DTrejo: I was there when she did it last time [20:56] DTrejo: or the last time I heard it [20:56] DTrejo: and the first time [20:56] JimBastard: im not trying to be anyone but me [20:56] reid has joined the channel [20:57] mjr_: mde: I hadn't seen that Bartz thing. Hilarious. [20:57] mde: Definitely, respect. I love her potty-mouth. [20:58] wattz: JimBastard: and always try to be the best you you can be! [20:58] wattz: hmmm write is working, but seems to hang.. [20:59] dmcquay has joined the channel [21:02] jelveh has joined the channel [21:02] weepy: jetienne - r u still here ? [21:02] jetienne: weepy: a bit... why ? [21:03] weepy: just getting back to u [21:03] weepy: what was the bug ? [21:03] weepy: node will give you a different scope every time you use require within different files [21:03] weepy: so in that respect it should be the same [21:04] jetienne: weepy: if i require a module in 2 files, the module will be run only once <- this is what i have been told [21:04] weepy: it's not correct [21:05] jetienne: weepy: sure ? [21:05] mattly has joined the channel [21:05] weepy: jetienne - if you write require("A") in fileA.js and require("A") in fileB.js [21:05] weepy: you'll have two different scopes [21:05] weepy: sure [21:05] hpoydar has joined the channel [21:05] weepy: i think it caches the code itself [21:05] weepy: but it will give you a different context [21:05] daleharvey has joined the channel [21:05] jetienne: weepy: so if A does console.log("foo"); it would be printed once or twice ? [21:06] weepy: well there's only one scope at once [21:06] weepy: ? [21:06] hpoydar has joined the channel [21:06] jetienne: weepy: im not sure what you mean by "scope"... i mean the same executable [21:07] weepy: well it's single threaded [21:07] jetienne: hmmm ok let me check [21:07] weepy: so there's only one file that's currently 'running' [21:07] joshbuddy has joined the channel [21:07] weepy: i just did a check - there is a small difference [21:08] weepy: within one file in node : require("sys").hello = "hello"; console.log(require("sys").hello) // => hello [21:08] weepy: but i dont think that matter's particularily [21:09] weepy: since you don't typically include the same file more than once per file [21:09] jetienne: http://gist.github.com/518013 <- this is what i mean [21:10] jetienne: weepy: notice how a.js is required twice and how it display 'foo' only once [21:10] jetienne: weepy: brequire got the same behavior [21:10] weepy: what does brequire do ? [21:11] Sembiance: hrm... mustache.js vs nun vs json-template vs normal-template.... decisions decisions. [21:11] jetienne: weepy: i havent tried :) but http://github.com/weepy/brequire/blob/master/lib/require.js#L6 will run the function no ? [21:11] DTrejo: Sembiance: if you don't want to use templates, I have a hint for you [21:11] jetienne: Sembiance: mustache is trendy [21:11] weepy: yes it probably will acutally [21:12] weepy: hummmm [21:12] DTrejo: Sembiance: if you set it up right, you could just code normal css and html and you'll have all the power of function composition [21:12] jetienne: weepy: so it would do 2 foo and not once [21:12] DTrejo: Sembiance: if that appeals to you [21:12] weepy: 2 i think [21:12] weepy: i will have to have a little play ! [21:12] jetienne: weepy: in the issue i filed, i asked if it is possible to run the funtion in the require.module() instead [21:12] Sembiance: DTrejo: is this idea of yours described in more depth anywhere? [21:13] Sembiance: jetienne: being trendy... is that a good thing in this case? :) [21:13] weepy: i'm sure there's a work around [21:13] weepy: but u know that within node if you require("A").hello = "hello" in fileA.js [21:13] weepy: and you have fileB.js -- require("A").hello won't be set ? [21:14] jetienne: Sembiance: dunno. it seems ok when i looked... if i needed a template, i would use it [21:14] creationix: weepy: it should be set [21:14] jetienne: weepy: oh no [21:14] dipser has joined the channel [21:14] weepy: hrm [21:14] jelveh_ has joined the channel [21:15] weepy: i must be missing something here .......... [21:15] DTrejo: Sembiance: I'm going to write a tutorial soon, but if you feel like doing it yourself, it takes great inspiration from http://github.com/swannodette/enlive-tutorial and would involve jsdom jquery. possibly apricot [21:15] creationix: weepy: there is the new context per module flag ryah added, but it's not default [21:15] isaacs has joined the channel [21:15] DTrejo: Sembiance: to be honest I think at this point it would be too much work, maybe soon this will change [21:16] weepy: creationix: im sure there's a problem somewhere - has the behaviour changed at all ? [21:17] jetienne: weepy: it seems set. i just checked [21:17] weepy: ok - [21:17] jetienne: http://gist.github.com/518027 [21:17] weepy: should be ok to change then [21:18] dylang: anybody have an example of using connect's staticProvider to host robots.txt and favicon.ico via express? [21:18] weepy: im not sure that quite the same [21:18] JimBastard: ahaha my github job post went live [21:18] JimBastard: http://jobs.github.com/positions/c97c8d2e-a04f-11df-8c60-be468719ed86 [21:20] jetienne: weepy: i missed something ? [21:20] weepy: jetienne - im just doing some of my own tests ---- i'll let u know what i find [21:20] maushu: JimBastard, I saw it a few hours ago. [21:20] jetienne: weepy: cool [21:21] maushu: Completely useless job description though. [21:21] bradb has joined the channel [21:22] ollie has joined the channel [21:22] dylang: JimBastard: that's great. i'm working on a whole recruting site/engine using express/connect. i'll publish to github when it's stable. http://opowerjobs.heroku.com/ [21:23] creationix: dylang: what about connect? [21:23] dylang: creationix: OF COURSE connect! no worries. [21:23] dylang: creationix: did you see my question a few lines up? [21:24] JimBastard: dylang: let me know if you have any positions open for drug smoking rappers [21:24] creationix: dylang: just put the files in the folder you're serving from [21:24] creationix: ? [21:24] wattz: woot, file io done. [21:24] creationix: or am I missing something [21:24] dylang: creationix: oh i think i mis-read your question in my head [21:24] MstrOfPppts has joined the channel [21:25] MstrOfPppts: Hello [21:25] MstrOfPppts: anybody alive here [21:25] wattz: hi [21:25] MstrOfPppts: I have a question regarding node js installation in cygwin [21:25] weepy: jetienne - ok i think it got it [21:26] jetienne: weepy: :) [21:26] MstrOfPppts: I tried the installation as described (done the rebase cos my CYGWIN is on D:) [21:26] MstrOfPppts: and then after running make I wait and get this: [21:26] dylang: creationix: app.use('/robots.txt', connect.staticProvider(__dirname + '/public')); [21:26] weepy: jetienne : http://gist.github.com/518050 [21:27] MstrOfPppts: Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} make: *** [all] Error 1 [21:27] Nohryb has joined the channel [21:28] weepy: which supports your theory :) [21:28] creationix: dylang: no, that won't work [21:29] DTrejo: MstrOfPppts: hey [21:29] DTrejo: MstrOfPppts: I think I saw that error once [21:29] MstrOfPppts: Do you know the solution? [21:29] DTrejo: MstrOfPppts: trying to think how I solved it :| [21:29] creationix: dylang: the route parameter (the first one) is stripped form the url before it's passed to the middleware [21:29] jetienne: weepy: nice [21:29] creationix: think of it as unix style mounting [21:29] DTrejo: MstrOfPppts: you have the latest version of python and all that? [21:29] MstrOfPppts: yes [21:30] isaacs: JimBastard: re: compiled modules... npm actually supports *any* kind of package, it's just got facilities for handling things that are handy for node programs. [21:30] isaacs: JimBastard: but for instance, nave is a shell scrit [21:30] weepy: jetienne - ok - i'm going to alter how the binding is done - should be easy enough - though it's always a bit of a mind backflip [21:30] DTrejo: (I think I got that error when I was using the default windows version) if that's the case, then I'm drawing a blank MstrOfPppts, sorry [21:31] creationix: dylang: to use staticProvider, you just need to create a folder somewhere with a real robots.txt file in it [21:31] creationix: and point the static provider to that (mounted at "/") [21:31] jetienne: weepy: ok [21:31] creationix: dylang: the layer will fall through if the route doesn't match [21:31] MstrOfPppts: DTrejo: I dont have python installed on Win and my friend did exactly the same steps and works fine for him! [21:32] DTrejo: I think windows bundles python into itself [21:32] DTrejo: you might try updating it anyway and see what happens [21:32] DTrejo: MstrOfPppts: which install guide are you using? [21:33] dylang: creationix: it has a real robots.txt. i'm serving up css, js, and images this way fine. [21:33] creationix: dylang: then it should work [21:33] MstrOfPppts: DTrejo: http://www.devcomments.com/Re-can-t-build-in-cygwin-at216603.htm [21:34] MstrOfPppts: that's what i found [21:34] dylang: creationix: oh i understand now - if it doesn't find the file it does a next() automatically. [21:34] DTrejo: http://wiki.github.com/ry/node/building-node-on-windowscygwin [21:34] creationix: dylang: yep [21:34] DTrejo: try this, I don't like devomments [21:34] DTrejo: since it is just a spam wrapper on the google gorups [21:34] DTrejo: *groups [21:35] MstrOfPppts: DTrejo: Yeah found that as well, that's were I was told to do the rebase [21:36] tav has joined the channel [21:36] MstrOfPppts: but don't see any other differences [21:37] hellp has joined the channel [21:37] dylang: creationix: now that i understand that i feel so much smarter. that's happened a lot since starting on node. i really like that. [21:37] creationix: :) [21:38] DTrejo: MstrOfPppts: hmm I've never tried to move my cygwin directory, so this is totally new to me. At this point you probably know more than I do [21:39] MstrOfPppts: DTrejo: Ok thanks anyway [21:40] DTrejo: I suppose there's a reason you're not putting it in C: [21:44] weepy: jetienne - i think ive fixied it [21:44] jetienne: weepy: commit commit, i m going to bed :) [21:44] weepy: its commited [21:47] MstrOfPppts: DTrejo: Low on disk space - bad Win installation configuration :) [21:47] MstrOfPppts: Didn't know Win 7 was that greedy [21:48] DTrejo: cygwin is a real beast too [21:48] MstrOfPppts: but if only needed compnents are installed it's about 500 Megs [21:50] olegp has joined the channel [21:51] quirkey_ has joined the channel [21:53] DTrejo: good luck MstrOfPppts, I'm off [21:53] DTrejo: see you guys later, especially those going to the meetup tonight [21:54] daleharvey has joined the channel [21:55] JimBastard: quirkey in the house [21:55] creationix: ACTION smells bacon [21:56] streampunk: creationix: yum... I need to attempt making that bacon sometime. [21:56] voodootikigod: http://www.unlimitednovelty.com/2010/08/multithreaded-rails-is-generally-better.html [21:57] aho has joined the channel [21:59] streampunk: voodootikigod: I'm not even going say anything about rails but I will say it can be made fast (2k+ req/s) for non-trivial rack apps in heaps under 50MB. [22:00] twoism has joined the channel [22:03] wattz: anyone have an example of how to use js objects in C++ when passed as an argument? :X [22:03] wattz: does it get mapped? [22:03] JimBastard: voodootikigod: EventMachine is a project I've been using and have contributed to since 2006. I really can't say I'm a fan. [22:03] JimBastard: lulz [22:03] JimBastard: not the first time i've heard that [22:04] wattz: nvm [22:04] wattz: :D [22:04] sonnym has joined the channel [22:04] weepy: jetienne - still about ? [22:05] jetienne: weepy: but not my brain [22:05] weepy: lol [22:05] weepy: well - i made a few fixups [22:06] weepy: there was a problem with it adding methods onto window [22:06] creationix: voodootikigod: interesting how they he says that event based is upside down and wrong, but natural for js developers [22:06] weepy: have a look in the morning - :D [22:06] nerdEd has joined the channel [22:06] JimBastard: i like threads, as long as i dont have to ever touch them / see them / use them / hear about them [22:07] voodootikigod: sum of it in terms of "node.js bad" is that node.js is not in ruby [22:07] voodootikigod: as best i can tell [22:07] voodootikigod: i didnt see anything other [22:07] wattz: i thought ruby was in everything. :D [22:07] creationix: voodootikigod: correct [22:07] JimBastard: i generally dont trust anyone who takes the time to write long blog posts [22:08] wattz: lol, why? [22:08] weepy: creationix - i wonder if you know --- in Rails it mostly saves your app from crashing due to exceptions --- is that possible in node ? ---- ?? ? [22:08] JimBastard: unless they are already millionaire playboys [22:08] wattz: JimBastard: then they should have pictures of naked women. [22:08] creationix: weepy: what do you mean? [22:08] JimBastard: wattz: or at least tales of how to become millionaire playboys [22:08] creationix: rails will show 500 responses right? [22:08] bradleymeck: ruby has some good things, and many bad things [22:09] JimBastard: i had to do 6 hours of ruby pair programming today, i hate it [22:09] wattz: JimBastard: put naked women in an article about becoming a millionaire... [22:09] wattz: you sir, will become a millionaire. [22:09] weepy: creationix : yes exactly -- im using express -- but if i get an exception in one of my libraries it sometimes crashes out [22:09] weepy: app closes [22:09] jimmybaker_ has joined the channel [22:09] JimBastard: yeah that happens weepy [22:10] creationix: weepy: ahh, so the solution is to not use bad libraries [22:10] weepy: creationix - what if they are my own :P [22:10] JimBastard: what would you like it to do? keep it running? restart it? you can easily go into a fucked up loop of bad state [22:10] creationix: the author of every callback has to be vigilint to catch errors and forward them to the right place [22:10] JimBastard: weepy: i got something for you [22:10] weepy: i don't think its good [22:10] JimBastard: weepy: http://github.com/indexzero/node-experiments/blob/master/uncaught-exception/index.js [22:10] bradleymeck: whats the want / current status of this? [22:11] JimBastard: thats a great way to shoot yourself though [22:11] weepy: how so ? [22:11] JimBastard: http://github.com/indexzero/node-experiments/tree/master/uncaught-exception [22:11] JimBastard: Problems handling uncaughtException While handling the uncaughtException event can keep your application running, it may put it in an unexpected state which may cause more exceptios than you originally thought. [22:11] weepy: yes sure [22:12] weepy: Im prepared to take that risk [22:12] JimBastard: weepy: the way we handle it for broodmother, is on every request we check if the app is up [22:12] JimBastard: if its not up, we spawn an instance to server the request [22:12] JimBastard: so if it dies, it will come back [22:12] weepy: yes that's fair [22:12] JimBastard: but if its the same error....its just gonna keep crashing [22:12] creationix: weepy: the problem with uncaughtException is that you have no reference to the request that caused the exception [22:12] JimBastard: yeah that too [22:12] creationix: that particular request will just be stuck in limbo till it times out [22:13] JimBastard: you are better off having proper error handling for your app [22:13] creationix: but it's better than crashing your whole server [22:13] JimBastard: you shouldnt really ever be in a spot where the server will crash [22:13] JimBastard: if you know how the code works [22:13] weepy: ahem [22:13] weepy: im writing a complex game [22:13] weepy: so there's alot of state [22:13] JimBastard: so, have complex input validation [22:13] creationix: if you code involves async code you just need to make sure to make everything save [22:13] JimBastard: and complex error handling [22:13] weepy: ill just have to do a nice big try/catch [22:13] creationix: weepy: Step helps a lot with error handling [22:14] weepy: ah yeh ? [22:14] JimBastard: weepy: why is your code failing to begin with? [22:14] creationix: as long as you write all your async calls using Step steps functions all exceptions will be caught [22:14] creationix: but if some external library doesn't do it right, then there is nothing you can do externally [22:14] weepy: it's a shame that node seems to provide a fair bit less infomration on caught exceptions than say the browsers [22:15] creationix: weepy: it's because there are more async events on the server [22:15] creationix: most everything in the browser is only one level of events [22:15] weepy: i see [22:15] creationix: an ajax response, a click [22:15] aheckmann has joined the channel [22:16] weepy has left the channel [22:17] bradleymeck: i just noticed, all of the big flaming blog posts about node vs X are written by large contributors to X [22:17] creationix: and node is evil because it's hyped [22:17] creationix: not because it's wrong [22:18] bradleymeck: also, continuation style = fail for keeping code in logical chunks [22:18] joshbuddy has joined the channel [22:19] creationix: bradleymeck: did you see my jsconf talk title? [22:20] romainhuet has joined the channel [22:20] creationix: "Techniques and Tools for Taming Tangled Twisted Trains of Thought" [22:20] bradleymeck: nope [22:20] creationix: aka CPS isn't evil [22:21] bradleymeck: can i just call it the T7 talk? [22:21] creationix: "Techniques and Tools for Taming Tangled Twisted Trains of Thought by Tim" [22:21] creationix: T8! [22:21] creationix: :D [22:21] hober: CPS is rad [22:22] creationix: I don't understand what's wrong with the concept, it's very transparent [22:22] creationix: "go do this and let me know when it's done" [22:22] creationix: or "go do this and then do this" [22:24] rauchg_: does anyone know how much ram each ruby thread takes? [22:25] rauchg_: for like merb or rails3 ? [22:27] satori_ has joined the channel [22:28] bradleymeck: rauchg_ its fairly low for good thread impls, idk about ruby, the problem is the context switch cost [22:29] mikeal: node has a function somewhere for escaping special characters in urls right? [22:31] bradleymeck: encodeURIComponent [22:31] ehaas has joined the channel [22:33] creationix: what does escape do? [22:33] creationix: I thought it was for urls [22:34] creationix: hmm, seems like the same thing, but less strict [22:34] joshbuddy_ has joined the channel [22:40] isaacs: creationix: what time's the shindig? [22:40] isaacs: 6? [22:40] creationix: starts at 7, you want to come early and help setup? [22:40] isaacs: yeah, sounds fun [22:40] isaacs: my talk's about 20 minutes, hopefully there won't be many questions. ^_^ [22:40] drudge: this being recorded? [22:41] creationix: I plan to start clearing people out and moving tables about 6 [22:41] bradleymeck has joined the channel [22:41] creationix: drudge: I think mjr_ plans to record it [22:41] twoism has joined the channel [22:42] drudge: creationix: nice man [22:42] creationix: I didn't know http://gitorious.org/ offers github like hosting, when did that start? [22:42] drudge: long time ago [22:43] drudge: it has recently become more useful and less ugly [22:44] isaacs: ACTION rushes to grab the "isaacs" username... [22:46] ryah: hi [22:46] isaacs: yo [22:46] mape: creationix: will there be any video? :) [22:47] creationix: mape: not sure, I'm not responsable for video [22:47] creationix: I've heard people saying there will be some [22:47] mape: k [22:48] isaacs: i think mjr_ was gonna bring a camera and stuff [22:48] mjr_: I'm bringing an AVCHD camera and tripod. [22:48] mape: mjr_: double neat, and the faster you make it available the more neats you get [22:48] overra has joined the channel [22:49] mjr_: Sometimes there are technical glitches though, but I'm going to do a "best effort" level of service. [22:50] mape: as long as one can hear and see at least some of the stuff going on it is way nice [22:50] ashleydev: any know if there will be food at the node meetup tonight? [22:51] ashleydev: hmm I'm told yes [22:51] ehaas has left the channel [22:51] creationix: ashleydev: I hear pizza [22:51] WALoeIII has joined the channel [22:51] creationix: but yes, there will be something [22:52] ashleydev: just seeing if I should scrounge up dinner first [22:52] overra has left the channel [22:53] overra has joined the channel [22:54] lachlanhardy has joined the channel [22:54] mape: isaacs: yay new npm [22:54] mape: uh oh :/ [22:55] mau has joined the channel [22:55] mape: isaacs: http://gist.github.com/518161 [22:56] mape: and now npm is gone from the system [22:56] isaacs: mape: yeah, that's that error i was telling you about before, where it can't activate after updating. [22:56] isaacs: mape: npm-0.1.24 activate npm@0.1.24 [22:57] mape: oh, thanks [22:57] mape: Thought you said you fixed it in the latest version? [22:57] isaacs: yeah, i fixed it in 0.1.24. but you're using 0.1.23 to install it :) [22:57] isaacs: so, NEXT time, it'll be fixed [22:57] mape: duh [22:58] isaacs: ACTION beginning to see why most package managers have a special "self-update" command... [22:58] mape: just add a back door so you can root peoples machines and fix the bugs by hand [22:58] isaacs: hehe [22:58] creationix: mjr_: btw, I haven't seen my mini-display-port-to-vga adaptor since out last meeting up there [22:59] creationix: I remember someone giving it back to me, but I can't find it [22:59] jamescarr: hmmm... how come Object.keys doesnt s how properties that exist on the prototoype but Object.getOwnPropertyNames does? [22:59] mjr_: creationix: I can look around, but I dunno if I've seen it. It's been a while since that meeting. [22:59] creationix: jamescarr: because that's what they do [22:59] creationix: err, not prototype [23:00] creationix: keys shows all enumerable keys, getOwnPropertyNames shows all keys [23:00] creationix: mjr_: no biggie, just thought I'd mention since you're coming down this way in a bit [23:01] ajpiano has joined the channel [23:01] mjr_: creationix: well, there is one up in the conference room. I'll just decide that it is yours and bring it. [23:02] creationix: mjr_: ok, sounds good [23:02] creationix: I think someone handed it to me and I set it back on the table and left it [23:02] jamescarr: creationix, d'oh, thats right [23:03] jamescarr: somehow it slipped my mind that keys only shows those that are enumerable [23:04] JimBastard has joined the channel [23:05] JimBastard: i wonder how hard it would be to port http://github.com/alexyoung/zalgo/blob/master/lib/zalgo.rb to node [23:05] Dmitry1 has joined the channel [23:06] reid has joined the channel [23:06] ryah: okay - so - suggestions on a topic for my talk? [23:07] ryah: anything people want to hear about? [23:07] ryah: :/ [23:07] JimBastard: ryah: talk about the node.js community [23:07] mjr_: ryah: I vote for what is coming next, what you are working on, what you'd like help with. [23:07] creationix: ryah: something about how node is "doing it right" [23:07] ben_alman has joined the channel [23:07] mape: ryah: the end all be all why not to use coroutines? [23:07] ryah: i'd rather something technical [23:07] ryah: or slightly technical [23:07] JimBastard: hrmmm [23:07] ryah: but not on what's coming next [23:07] shimondoodkin has joined the channel [23:07] mape: How dtrace will benefit node? [23:07] creationix: crockford might be coming, I assume you saw his bayjax talk for next week [23:07] mape: duh [23:07] ben_alman has joined the channel [23:08] maushu has joined the channel [23:08] mikeal: ryah: have you talked about EventSource to anyone but me, mjr, creationix, isaacs and pquerna [23:08] mjr_: Yeah, Crockford mentioned node in his talk description. [23:08] shimondoodkin: hello [23:08] ryah: mikeal: might be too technical [23:08] shimondoodkin: look at this: http://groups.google.com/group/nodejs/browse_thread/thread/1fffe268eaea33c5 [23:08] mikeal: well, it's really about how we get these awesome new stack traces [23:09] mape: "Again. In the Loop of History, it has all happened before, but it has never happened like this. This is why you should care about theemergence of server-side JavaScript and the excitement around projectslike Node.js -- not because they're at the sharp end of a trend, but because they're paving the road toward the next big revolution insoftware." [23:09] bradleymeck: ryah, explain how you can do callbacks that dont nest constantly, like how you can pull out logic into functions [23:09] mjr_: ryah: how about a the idea of throttling, like how to use pause/resume, sys.pump, etc. [23:10] mde: mape: Yeah, I was thinking it sounds kind of like Crockford has been reading GEB or something. [23:10] bradleymeck: the whole idea that callbacks should/have to be nested that some people think is bothering me lately [23:11] mape: hehe [23:12] creationix: nesting is a convenience [23:12] creationix: but not at all required [23:12] mikeal: creationix: didn't you do work at one point on a generic parser? [23:12] jetienne: http://www.paulbarry.com/node/ <- anybody knows the software used to generate those slides ? [23:12] bradleymeck: true, but most people seem to just keep nesting, rather than noticing it could be a function outside of the nesting that bothers them soo much [23:13] creationix: mikeal: a code transformer? [23:13] sztanpet has joined the channel [23:13] mikeal: na [23:13] creationix: bradleymeck: yeah, my jsconf talk topic isn't the most exciting topic, but it sure comes up a LOT [23:13] shimondoodkin: my friend just started to code for node js , he knows javascript and php. the most hard and strande was to him that all is call backs and the whole topic of async, he says you need to get use to the whole idea of useing the call backs and the step library, and all the callback usual tricks like closures... [23:13] mikeal: i seem to write the same code often [23:14] bradleymeck: that it does, im having that talk at the local js meetup next tues basically [23:14] ryah: mjr_: okay [23:14] ryah: mjr_: that's a good topic [23:14] ryah: and probably people don't know about it [23:15] ChrisPartridge has joined the channel [23:15] creationix: I still need to add proper throttling and streaming to connect [23:15] shimondoodkin: s/strande/strange [23:15] mape: creationix: how has the middleware production for connect been since the release? [23:16] creationix: mape: what do you mean? [23:16] mjr_: It's my favorite topic [23:16] mape: are there a lot of people developing stuff for connect, rather then on connect [23:16] isaacs[away]: jetienne: http://meyerweb.com/eric/tools/s5/ [23:17] creationix: mape: I'd say so [23:17] creationix: mape: heck, even most the development in connect is to the built-in middlewares [23:17] creationix: s/middlewares/modules/layers/? [23:17] isaacs[away]: ryah, mjr_: yeah, i think we need a really good "This is what streams are and how they work" talk, rather than just repeatedly sorta mentioning them. [23:17] jetienne: isaacs[away]: thx [23:18] mape: Yeah, just feels like the web frameworky parts of the node community could need some momentum [23:18] creationix: my talk will be a practical tutorial on making a simple apps with connect, very hands on [23:19] creationix: mape: you've seen this right http://wiki.github.com/senchalabs/connect/ [23:19] creationix: I assume so, your asset manager is in there [23:19] mape: yeah [23:20] rsms: Hey guys, anyone at Sencha? [23:20] isaacs[away]: hahaha [23:21] creationix: I am! [23:21] mape: ACTION throws creationix at rsms  [23:21] rsms: mape: ow! [23:21] isaacs: if anyone installed npm 0.1.24, help is broken. un/re-published a new 24 [23:21] nerdEd has joined the channel [23:21] creationix: hehe [23:21] isaacs: (this is the "ohshit" bit of my typical workflow.) [23:21] mscdex: it'd be neat to have one or some of these meetups be streamed live through ustream or somewhere where people that can't attend could ask questions or join in on the conversation [23:21] creationix: that makes support a nightmare [23:21] creationix: which version of 0.1.24 do you have? [23:21] isaacs: hehe [23:21] isaacs: exactly [23:22] rsms: I'm on vacation and have spend the full day (15 hours) on this: http://hunch.se/stuff/process-local-load-calculation-for-nodejs-100811.pdf (if anyone is interested I'd love to get some feedback) [23:22] isaacs: if it's more than an obvious one-line fix, or more than an hour later, i bump the version. [23:22] JimBastard: ohh heh creationix and isaacs , please let the meetup know that nyc node contingent says hello :-D [23:23] mape: isn't 0.0.* for minor patches? [23:23] mape: 0.*.0 is for features and *.0.* is never reached? [23:23] bmavity has joined the channel [23:23] chrischris has joined the channel [23:24] isaacs: mape: depends who you ask [23:24] shimondoodkin: rsms: you are have a very good knowlage of calculations [23:24] mape: isn't that what semantic versioning is about? [23:24] creationix: mape: sounds good to me [23:24] rsms: shimondoodkin: I'm self-taught and have a _totally_ different profession though ;) [23:25] nuba has joined the channel [23:25] mape: rsms: is spotify engineer heavy? Or is there a wide spectrum? [23:26] isaacs: tmpvar: hey, you around? [23:26] rwaldron_ has joined the channel [23:26] rsms: mape: very wide. We have ppl who used to write operating systems for batteries, build fiber networks in japanese cars and build jvms :P [23:26] mape: Hehe, k [23:27] daleharvey: oh, someone at spotify [23:27] daleharvey: would it be creepy if I said I wanted to kiss you [23:27] rsms: daleharvey: :) [23:27] rsms: daleharvey: a bit. haha. protected from violent kisses by the mighty internets [23:28] shimondoodkin: i want also feedback i did a time saver auto reaload modules for node js : http://github.com/shimondoodkin/nodejs-autorestart/blob/master/autoreload_example.js [23:28] daleharvey: spotify is majorly awesome though, huge fan [23:29] rsms: daleharvey: glad to hear! I've been shaping Spotify since day one, but have just decided to move on. It's been 4 good years. [23:29] creationix: JimBastard: how goes the Zalgo port? [23:29] freshtonic has joined the channel [23:29] JimBastard: creationix: i just literally discovered it 15 minutes ago, so its pretty much done [23:29] JimBastard: :p [23:29] mape: rsms: Doing startup or just taking some time off? [23:29] creationix: neat huh [23:29] JimBastard: creationix: i havent actually started yet, but i love the idea. surely someone has a javascript port of this already [23:30] daleharvey: rsms: I just left my rather less successful startup last week :P good luck with it [23:30] rsms: mape: time off now, then moving to San Francisco and working at Facebook [23:30] JimBastard: zalgofy.js or something [23:30] mape: Ah k, helping with their music service? [23:30] joshbuddy has joined the channel [23:30] JimBastard: i see traces of it on the internet, i saw that omegle thing too [23:30] rsms: daleharvey: =D You know, you gotta run into 9 walls before there's a door the tenth time ;) [23:31] daleharvey: shimondoodkin: I took a less subtle approach - http://github.com/daleharvey/dropup/blob/master/start.sh :) [23:31] isaacs: and v0.1.25 hot on its heels. [23:31] rsms: mape: haha... I would never even dare to answer that question in any way lol [23:31] isaacs: (had to change a feature. apparently not all wscripts support "node-waf configure build") [23:31] cce_ has joined the channel [23:31] mape: rsms: ;) [23:31] mape: I take that as a yes [23:32] shimondoodkin: daleharvey: thanks. [23:32] JimBastard: creationix: do you know of a js port for that guy? [23:32] rsms: mape: What are you doing for food and shelter now again? (sorry, I forget stuff) [23:32] softdrink has joined the channel [23:33] mape: rsms: front end developer [23:33] creationix: JimBastard: no sorry, but looks pretty easy [23:33] JimBastard: ima do it! [23:33] rsms: shimondoodkin: what happens if I do this: var a = mymodule.functionA then reload the module? [23:33] rsms: mape: :) [23:33] shimondoodkin: i don't know [23:34] rsms: shimondoodkin: :P a from the old module will stay and the new code will not be used [23:34] shimondoodkin: my application takes like 15 seconds to load fully, if i do front end staff by trial and error it takes a lot of time to reaload everything.. so this saves me time.. [23:34] rsms: shimondoodkin: hot-reloading of code in node (or any js machine, really) is tricky business unfortunately [23:34] JimBastard: shimondoodkin: why so long to load? [23:35] shimondoodkin: it caches all files from disk to memory reads like 2500 files (fck editor) [23:35] mape: I just assume all the dynamic reloading solutions are broken since if they weren't it would probly be in core or everyone would be using it [23:36] rsms: shimondoodkin: you may want to investigate freezing the world (Object.freeze everything) and rewrite parts that use mutable objects (to make copies). [23:36] sh1mmer has joined the channel [23:36] rsms: mape: yeah... problem is basically that any object can be changed and you can't know what changed and from where it originated. [23:37] rsms: mape: erlang and other system which lack mutable objects have a much easier life when it comes to hot-reloading [23:37] mape: yeah, and then you end up restarting the server anyway [23:38] shimondoodkin: i dont know waht is mutables [23:38] daleharvey: everything :( [23:38] rsms: mape: yeah. IMHO a good server (or program) should not need finalization (be able to crash without causing problems) and be light-weight. Then running multiple instances and restarting then in a sequence should cover most upgrades etc. [23:39] rsms: shimondoodkin: a mutable object is an object which can be modified. for example an array. A immutable object is (you guessed it right) an object which can not be changed -- only created, passed around and deleted. [23:40] shimondoodkin: rsms,mape: i have found a my solution for modifications of objects .. because you are the developer and you know what you do.... so i did a callback in it to update what i remember i have changed in initialize tec... [23:40] ryah: rsms: regarding your dns patch [23:40] rsms: ryah: hiya! yeah? [23:40] ryah: it's breaking some tests [23:41] rsms: ryah: oh. they all ran OK on my checkout though. Which tests break? [23:41] ryah: rsms: i squashed them into this, http://gist.github.com/518237 [23:42] ryah: let me see [23:42] ryah: i'm running "make test-all [23:42] ryah: with ./configure --debug [23:42] rsms: ryah: I'll try to do the same in my patched branch... hold on [23:43] Sembiance: DTrejo: I look forward to your tutorial :) [23:43] tsts has joined the channel [23:44] codemariner has joined the channel [23:44] mw___ has joined the channel [23:45] ryah: rsms: Command: build/debug/node_g /Users/ryan/projects/node/test/pummel/test-http-client-reconnect-bug.js [23:45] ryah: rsms: build/debug/node_g /Users/ryan/projects/node/test/pummel/test-net-pause.js [23:45] rsms: daleharvey: BTW, have you seen http://github.com/liesen/libspotify-node ? It's a side project me and a friend have been poking around with for a while. [23:46] ryah: build/default/node /Users/ryan/projects/node/test/pummel/test-http-client-reconnect-bug.js [23:46] ryah: i think those are the ones [23:46] rsms: ryah: who... that's scary. I'll look into it (my checkout is still building) [23:46] Sembiance: rsms: I still buy CD's and rip them as they give me the best quality when stored as FLACs:) [23:47] JimBastard: whats a CD? [23:47] JimBastard: (like a dvd) [23:47] JimBastard: whats a DVD? [23:47] JimBastard: is that like the things that torrents come from? [23:48] rsms: Sembiance: In a few blind tests we did on Spotify with high-end equipment most people failed to hear the difference between FLAC, Ogg q9 and even Ogg q5. [23:48] JimBastard: rsms: WHAT ABOUT THE MONSTER CABLES [23:48] shimondoodkin: JimBastard: it is the default information transfer holder of the 90s [23:49] rsms: JimBastard: lol [23:49] JimBastard: :p [23:49] daleharvey: nope, that looks cool though [23:49] daleharvey: I have always wanted a web played for spotify, I always kinda ssumed it would be out of the question to write one [23:50] shimondoodkin: what is spotify? [23:51] mape: shimondoodkin: head of rdio? [23:51] Sembiance: rsms: well, wake me up once it comes to the united states :) [23:51] shimondoodkin: yes [23:51] jamescarr: man... been useing jade with express and had to shift gears to java today :( [23:51] jamescarr: forgot how refreshing jade and haml are to the bloated markup of spring mvc :( [23:51] mape: shimondoodkin: spotify is pretty much that from what I've gathered, only that it is better, and Swedish ;) [23:52] mape: Subscription music service with huge archive and good quality/application [23:52] daleharvey: spotify is just itunes + all the music in the world for free :P [23:52] shimondoodkin: ACTION :) confused  [23:52] MikhX has joined the channel [23:52] mape: and xul so works in win/osx/linux if I'm not misstaken [23:53] JimBastard_ has joined the channel [23:53] shimondoodkin: daleharvey: thanks [23:53] daleharvey: well not quite all, but a good chunk [23:53] Tobsn has joined the channel [23:53] shimondoodkin: so i can listen to music instantly and buy some music if i want... [23:54] daleharvey: yup [23:54] mape: yeah, really no need to buy though [23:54] davidwalsh has joined the channel [23:54] mape: you can cache files for offline access to bring on ipod/laptop when you don't have net access [23:54] topfunky has joined the channel [23:55] shimondoodkin: rsms: is it yours? [23:55] mape: spotify? [23:55] shimondoodkin: yes [23:56] mape: he was lead creative and designer [23:56] mape: but spotify is huge [23:56] Tobsn: i have grooveshark on my iphone :P [23:56] mape: http://en.wikipedia.org/wiki/Spotify [23:57] Sembiance: sadly, if techcrunch is to be believed, it may never actually be available in the US. [23:57] Sembiance: at least not in it's current 'awesome' form. [23:57] Tobsn: btw. i subscribed with hulu plus to unsubscribe just a couple hours later [23:58] Tobsn: well grooveshark does exactly the same thing as spotify... just btw. [23:58] mjr_: Need to get some sort of Spotify proxy server. [23:58] mape: it has 8 million commercial tracks? [23:59] ryah: mape: isn't it like the middle of the night there? [23:59] mape: ryah: yeah, and I have work in 4h :S [23:59] justin_: Tobsn: I don't think grooveshark has the business model to survive though