[00:00] devinus_: ryan_gahl: oh, did that a long time ago :P [00:00] ryan_gahl: or my favorite: a checkers game that's unbeatable [00:00] ryan_gahl: but i guess that's just a big btree [00:02] ryah_: isaacs: wrap your commit msgs :) [00:02] technoweenie: whats a good version of socket.io to use? the js client looks busted [00:02] ryah_: isaacs: gqq in vim [00:04] aconbere: mikeal1: I did [00:05] skm has joined the channel [00:05] sonnym: technoweenie: using commit c1e08318cabc3e3f60a625c9a6972759f3abf726 works fine for me [00:05] masm has joined the channel [00:05] technoweenie: sonnym: i'm talking about the js client actually [00:05] technoweenie: io.Socket is undefined [00:05] aconbere: mikeal1: hmmm, but I might just ignore it :P [00:06] stagas has joined the channel [00:06] ryan_gahl: aconbere: is mikeal1 talking to you invisibly? [00:07] mrjjwright has joined the channel [00:07] technoweenie: sonnym: ah screw it, i see the readme has a cdn url for the 'stable' js file. thanks though [00:08] Tim_Smart has joined the channel [00:09] technoweenie: protip: dont try pasting the socket.io source into a chrome address bar [00:10] crodas has joined the channel [00:10] aconbere: ryan_gahl: wow... no I don't think so... which means I am TOTALLY going crazy [00:10] aconbere: or I need more sleep [00:11] ryan_gahl: ok, just checking... cuz in my client i don't see him talking... except his initial "someone rang" [00:12] CIA-72: node: 03isaacs 07master * r4c514a7 10/ src/node.js : Let exit listeners know the exit code - http://bit.ly/9Mme01 [00:12] CIA-72: node: 03isaacs 07master * r987cbbc 10/ (lib/fs.js test/simple/test-fs-realpath.js): [00:12] CIA-72: node: Handle cyclic links smarter in fs.realpath [00:12] CIA-72: node: Rather than aborting in the face of *any* repeated link in a given path, [00:12] CIA-72: node: instead only abort if such a cycle actually makes a given path unresolvable. [00:12] CIA-72: node: Test for this by doing a normal stat. Still use the seenLinks object to [00:12] CIA-72: node: cache link contents so as to cut own a little bit on readlink calls. [00:12] CIA-72: node: Also add a pathological test that fails without the change to fs.js. - http://bit.ly/cvfZom [00:12] Uierth_ has joined the channel [00:13] Tim_Smart: Node.js now has style. [00:15] halfhalo: Style IS pretty important! [00:15] murz has joined the channel [00:16] Tim_Smart: http://groups.google.com/group/nodejs-dev/browse_thread/thread/a44011ecfdf6a5a6 [00:17] Tim_Smart: ryah_: You should have said something about semi-colons. [00:17] ryah_: i guess [00:18] Tim_Smart: So we don't get those annoying threads about ASI. [00:18] TheEmpath: so you can't shift off of associative arrays, correct? [00:18] tjholowaychuk: TheEmpath: assoc arrays? [00:18] TheEmpath: where the keys are strings [00:18] halfhalo: And/or write a script to correctly format the code... Because people are retarded [00:18] tjholowaychuk: object literals? [00:18] ryan_gahl: Tim_Smart: trust me, nothing will stop the annoying threads, not even snarky remarks... i tried [00:19] tjholowaychuk: TheEmpath: no [00:19] Tim_Smart: Objects? [00:19] erobit: http://dpaste.com/265488/ - I get this error when trying to build node-mongodb-native - any ideas? [00:19] TheEmpath: they get treated like objets? [00:19] TheEmpath: aww damn it [00:19] erobit: wondering if it could by node path??? [00:19] tjholowaychuk: TheEmpath: they are objects [00:19] rikarends has joined the channel [00:19] Tim_Smart: ryan_gahl: Well, before we couldn't go "Node.js has a style guide, get over it" [00:19] TheEmpath: and i guess thers no way to get the "first" property of an object [00:19] CIA-72: node: 03Rasmus Andersson 07master * r899fffa 10/ (66 files in 21 dirs): (log message trimmed) [00:19] CIA-72: node: Build system improvements: (cross compilation, libnode, etc) [00:19] CIA-72: node: - utilizing autoconf configure.guess to output canonical $target_{cpu,vendor,os} [00:19] CIA-72: node: - normalizing $target_cpu --> $arch according to v8 naming scheme [00:19] CIA-72: node: - normalizing $target_os --> $platform according to v8 naming scheme [00:19] CIA-72: node: - renamed c-ares platform-arch directories to represent v8 canonical names [00:19] CIA-72: node: - new targets in Makefile: libnode-{static,dynamic}[-debug] [00:20] ryah_: \o/ [00:20] Tim_Smart: Yay. [00:20] Tim_Smart: <3 rsms [00:20] tjholowaychuk: TheEmpath: there is, but... its weird and you probably dont need it obj[Object.keys(obj)[0]] [00:21] TheEmpath: i am treating an array like a registry, where each key is a string and each key can only occur once [00:21] Tim_Smart: TheEmpath: First as in order of declaration, or alphabetically, or what? [00:21] jamund has joined the channel [00:21] TheEmpath: well since order is difficult to preserve for object properties [00:21] TheEmpath: any order really [00:22] TheEmpath: order in which the properties are added [00:22] Tim_Smart: Yeah Object.keys() is your best bet. [00:22] TheEmpath: im gonna need a custom data type, aren't i? [00:22] devtime_ has joined the channel [00:22] Tim_Smart: Object.keys() returns the order they were added. [00:22] tjholowaychuk: TheEmpath: they are ordered unlike ruby's hashes [00:23] tjholowaychuk: unless those are now, but they were not when I was using ruby [00:23] Tim_Smart: You could also go: for (key in object) if (object.hasOwnProperty(key)) { ... break; } [00:25] TheEmpath: now that i think abot it [00:25] TheEmpath: the way im handling this, this array isnt going to be all that big [00:25] TheEmpath: i could just index by numbers [00:25] TheEmpath: and get my shift() back [00:25] TheEmpath: that would be best [00:25] TheEmpath: thank s folks [00:26] JimBastard: dammit [00:26] sivy: hrm. [00:27] JimBastard: either indexzero or tmpvar broke my god damn test [00:27] tjholowaychuk: git blame [00:27] tjholowaychuk: :D [00:27] AAA_awright: I've got three flavors of functions that a user can define, asynchronous, synchronous blocking, and synchronous nonblocking, what's the sugguested naming scheme? function, functionSync, functionNonblock? [00:27] sivy: since require() loads code into it's own namespace, how would one load code that extends Date.prototype ? [00:27] AAA_awright: hm [00:27] AAA_awright: functionAsync, functionSync, function [00:28] themiddleman has joined the channel [00:28] sprout has joined the channel [00:28] tjholowaychuk: sivy: you would just require it and thats it, but every module would be effected [00:28] jacobolus has joined the channel [00:28] sivy: tjholowaychuk: ah, that's ok [00:28] Me1000 has joined the channel [00:30] SubStack_ has joined the channel [00:37] quirkey_ has joined the channel [00:38] stagas has joined the channel [00:39] Tim_Smart: pquerna: Around? [00:39] ryah_: is anyone in london? [00:40] nerdEd has joined the channel [00:40] Tim_Smart: The queen :) [00:41] Tim_Smart: Is that list on the wiki still there? [00:42] Tim_Smart: ryah_: http://github.com/ry/node/wiki/Node-Users [00:44] JohnDav: installing from the master [00:44] sprout has joined the channel [00:44] JohnDav: autoconf ? [00:44] ysynopsis has joined the channel [00:46] erobit_ has joined the channel [00:49] ryah_: yes, autoconf [00:49] ryah_: yes, it uses autoconf [00:49] ryah_: you shouldn't need to run autoconf [00:51] JohnDav: got it [00:51] Tim_Smart: Yay no more replacing on the Makefile. [00:52] Tim_Smart: I miss the pretty colors though :p [00:52] jpld has joined the channel [00:52] jpld has joined the channel [00:52] Tim_Smart: Also, `make doc` is hanging here. [00:52] JohnDav: make install seems to take too long now.. or is it just me? [00:52] Tim_Smart: Which in turn hangs `make install` [00:53] JohnDav: ubuntu@ip-10-245-119-133:~/node$ make install [00:53] JohnDav: build/node tools/ronnjs/bin/ronn.js --roff doc/api.markdown > doc/node.1 [00:53] JohnDav: stuck here [00:54] ryah_: hm - not for me.. [00:54] Tim_Smart: JohnDav: Yup, I'm seeing that too, on Ubuntu also. [00:56] Tim_Smart: JohnDav: Just edit the Makefile's 'install' task for the time-being. [00:56] JohnDav: that fixed it? [00:56] amerine has joined the channel [00:59] jamund has joined the channel [01:01] dmcquay has joined the channel [01:02] EyePulp has joined the channel [01:03] EyePulp: yo ho ho! [01:03] ryan_gahl has joined the channel [01:04] stepheneb has joined the channel [01:04] Yuffster has joined the channel [01:05] banjiewen_ has joined the channel [01:05] crodas has joined the channel [01:06] siculars_ has joined the channel [01:14] ryan_gahl has joined the channel [01:17] matt_c has joined the channel [01:18] kawaz_air has joined the channel [01:23] zentooo has joined the channel [01:23] ryan_gahl1 has joined the channel [01:24] dquestions has joined the channel [01:24] zentooo has joined the channel [01:27] ryanfitz has joined the channel [01:29] ThePub has joined the channel [01:31] Gruni has joined the channel [01:32] langworthy has joined the channel [01:33] robotarmy has joined the channel [01:35] evanmeagher has joined the channel [01:37] overra has joined the channel [01:39] dysinger has joined the channel [01:42] Oliv_Oil has joined the channel [01:42] gJ|Alex has joined the channel [01:43] kawaz_air has joined the channel [01:43] nerdEd has joined the channel [01:45] dnolen has joined the channel [01:52] terite has left the channel [01:53] skm has joined the channel [01:53] c4milo has joined the channel [01:53] saikat has joined the channel [01:53] ThePub: ical library anywhere? [01:56] micheil: not that I know of. [01:57] micheil: check the modules list: http://github.com/ry/node/wiki/Modules [01:57] micheil: ryah_: would you be interested in a patch for mkstemp and tmpfile (one or the other)? [01:58] o_o has joined the channel [01:58] ThePub: which would be why I asked :) google not too effective, github search not-so-either, and nothing been there :) [01:59] micheil: ryah_: actually, now I read the man file, both would be needed. [02:01] Uierth has joined the channel [02:03] peutetre has joined the channel [02:10] o_o has joined the channel [02:12] rpflo has joined the channel [02:16] bradleymeck has joined the channel [02:18] evanmeagher has joined the channel [02:19] evanmeagher_ has joined the channel [02:21] nerdEd_ has joined the channel [02:24] mbrochh has joined the channel [02:24] tmpvar has joined the channel [02:26] tmpvar: using the new autoconf build system, has anyone had any trouble with libcrypto or is it just me? [02:27] jarfhy has joined the channel [02:27] saikat has joined the channel [02:34] ryan_gahl has joined the channel [02:34] gsmcwhirter has joined the channel [02:37] bentruyman has joined the channel [02:41] faust45 has joined the channel [02:44] rpflo has joined the channel [02:44] Oliv_Oil_ has joined the channel [02:46] noahcampbell has joined the channel [02:48] mrjjwright has joined the channel [02:48] Tim_Smart: ryah_: Not sure if will speed things up yet http://github.com/Tim-Smart/node/commit/242cda986dbb095e744d378c88eeb99ca59ab134 [02:49] crodas has joined the channel [02:50] technoweenie has joined the channel [02:51] sh1mmer has joined the channel [02:51] c4milo has left the channel [02:54] erobit_ has joined the channel [02:58] bradleymeck has joined the channel [02:59] davidascher has joined the channel [03:00] bentruyman has joined the channel [03:04] galaxywatcher has joined the channel [03:05] hzin has joined the channel [03:07] rnewson has joined the channel [03:08] banjiewen has joined the channel [03:09] rcy has joined the channel [03:10] nathanhammond: Assertion failed: (b[1] == 0), function DecodeWrite, file src/node.cc, line 933. [03:11] nathanhammond: Abort trap [03:11] bpadalino: IT'S A TRAP!! [03:11] nathanhammond: it is! [03:11] nathanhammond: no stack trace, nothing. [03:13] kawaz_ai_ has joined the channel [03:13] rwaldron_ has joined the channel [03:14] nathanhammond: happens shortly after trying to init a socket connection using socket.io [03:14] nathanhammond: trying to track it down now. [03:17] cardona507_ has joined the channel [03:19] ryan_gahl1 has joined the channel [03:19] rwaldron_ has joined the channel [03:27] Me1000 has joined the channel [03:30] johngbrooks has joined the channel [03:31] nathanhammond has left the channel [03:31] JimBastard has joined the channel [03:33] polotek has joined the channel [03:33] saikat has joined the channel [03:37] yhahn has joined the channel [03:37] mbrochh has joined the channel [03:38] nateanderson_ has joined the channel [03:39] jamund has joined the channel [03:40] nolan_d has joined the channel [03:41] rictic has joined the channel [03:42] devinus_ has joined the channel [03:43] jacobolus has joined the channel [03:45] mechanate has joined the channel [03:47] mechanate: does anyone have a good example of a form based authentication for connect/express? [03:50] mechanate: are there search-able irc logs anywhere? [03:51] micheil: there's only the debuggable logs [03:51] polotek: mechanate: http://nodejs.debuggable.com/ [03:51] micheil: feel free to wget them all and then run a unix find on them [03:51] mechanate: right but not easily searchable [03:51] polotek: + google [03:51] mechanate: yep [03:51] mechanate: thanks [03:51] chapel: yeah [03:51] polotek: site:nodejs.debuggable.com auth [03:52] langworthy has joined the channel [03:52] dysinger has joined the channel [03:52] robmason has joined the channel [03:52] chapel: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=site:nodejs.debuggable.com [03:53] jgautier has joined the channel [03:53] mechanate: polotek: thanks for some reason I forget that...duh [03:54] dysinger has joined the channel [03:54] polotek: what other irc channels do people frequent? anyone know a good one for asking about C/C++ [03:54] jgautier: if i wanted to use the version of npm currently installed programmatically how would i require it? [03:54] hdon has joined the channel [03:55] jamescarr has joined the channel [03:56] jgautier: how would i know the path to npm.js to require it? [03:56] jamescarr: hmmmm [03:57] micheil: polotek: if it's related to libev / libeio, try irc.schmorp.de #schmorpforge [03:57] polotek: micheil: thanks, I'm actually looking for general stuff [03:57] polotek: I need to know about compiling and linking [03:57] ajpiano has joined the channel [03:57] jamescarr: man! how many couchdb modules does node.js need!? :) [03:57] polotek: and how to set up a build that is resilient across environments [03:58] micheil: polotek: is there a #c or #cpp? [03:58] micheil: jamescarr: hey [03:58] jamescarr: micheil, yo [03:58] polotek: I'm sure there is, but I wanted a recommendation. I'm sure they're full and/or devolve into incoherence [03:58] dysinger has left the channel [03:58] JojoBoss has joined the channel [03:59] micheil: jamescarr: so, any feedback on cross-eventemitters? [03:59] micheil: polotek: maybe poke ryah_ or someone, maybe rsms [03:59] jamescarr: well, the usergroup tonight had a small turn out, those who show up are still poking around in node.js and havent even used event emitters [04:00] saikat has joined the channel [04:00] jamescarr: but they were impressed by it [04:00] rpflo has joined the channel [04:00] micheil: ha, okay [04:00] jamescarr: micheil, on the drive back from stl, I was thinking about it though... [04:00] polotek: ryah_: poke [04:01] jamescarr: micheil, I defiinitely think that amqp is a good option :) [04:01] micheil: well, yeah [04:01] jamescarr: I'm going to take the example and spin off a module for it [04:01] micheil: or just a network / dgram socket? [04:01] gerad has joined the channel [04:01] micheil: like, the idea of overriding the functions is sweet. [04:01] jamescarr: well, I like amqp because it's proven and battle tested :) [04:02] micheil: heh [04:02] rbranson: i like 100% experimental [04:02] jamescarr: I'm interested in how the websocket setup works though ... it looks neat [04:02] micheil: I'd be not relying on another dep. [04:02] jamescarr: how does each node find each other? [04:02] micheil: jamescarr: yeah, the websocket approach is fairly cool. gives you the same api client and server side [04:02] rbranson: node.js head compiled with clang running on an ARM implementation of GNU/Hurd [04:02] cloudhead has joined the channel [04:02] micheil: jamescarr: you tell it where to find the other [04:03] jamescarr: that was what I didnt get when I looked at it. If node A publishes an event, how does node B and C get it [04:03] jamescarr: ah [04:03] jamescarr: so publishers and subscribers aren't decoupled [04:03] micheil: xee.EventEmitter("unix://tmp/appstate.emitter") [04:04] jamescarr: micheil, fuck... you just gave me an ephiny [04:04] micheil: well, yeah, when node A emits, it actually writes to the sockets of B and C, which are connected to A [04:04] jamescarr: *epiphany [04:04] jamescarr: are you familiar with camel? [04:04] jamescarr: apache camel [04:05] micheil: nup [04:05] jamescarr: it uses urls to define logical channels [04:05] jamescarr: maybe that would make sense here too [04:05] enoch2038_ has joined the channel [04:05] jamescarr: xee.EventEmitter("amqp://servername:port/exchange") [04:05] micheil: heh heh [04:06] micheil: xee.EventEmitter should inherit from events.EventEmitter [04:06] micheil: then you just replace what you don't what. [04:06] micheil: in the case of eventstream, that was events.EventEmitter#emit [04:06] ajpiano has joined the channel [04:07] jamescarr: the only problem I see with eventstream's approach is it's hard to dynamically add instances it seems [04:07] jamescarr: unless there can be some kind of master setup that manages the replication (in which case it's a broker) [04:07] micheil: well, it's pure thing is having it between one server and clients [04:08] siplux has joined the channel [04:08] nerdEd has joined the channel [04:08] micheil: so, in my case, it's not client emits to other clients [04:08] micheil: but clients emit to server [04:08] jamescarr: yeah, that makes the server the broker and the clients are clients in the sense of rabbitmq [04:08] micheil: and then server emits to clients [04:08] bartt has joined the channel [04:08] jamescarr: I see [04:09] jamescarr: very provocative :) [04:09] micheil: because that's what I needed. [04:09] micheil: you could easily adapt how that's done to make the events go via unix socket and then you just listen on that unix socket for events [04:10] jamescarr: I'm actually working on a plugin for rabbitmq to support STOMP over websockets [04:10] micheil: essentially, es.emit("event", data, data, data); -> {"evt":"event","data":[data,data,data]} [04:11] enoch2038 has joined the channel [04:11] micheil: jamescarr: give me about 20 minutes and I'd be happy to collaborate and discuss stuff further [04:11] Yuffster has joined the channel [04:11] jamescarr: cool [04:12] micheil: (kinda up and down between mbp, scanner and printer atm) [04:13] jamescarr: :) [04:13] micheil: jamescarr: also, I was just mentioning to hassox some stuff about evented or online databases, which may interest you. [04:13] rictic1 has joined the channel [04:13] gf3 has joined the channel [04:14] micheil: jamescarr: think redis pub/sub + map reduce in realtime. [04:14] jamescarr: yeah, I've been investigating redis as well [04:14] hassox: not much int the way of google results :( [04:14] micheil: yeah [04:14] micheil: I only found some stuff through a contact at a greek university where his professors were researching into the field [04:14] rpflo has joined the channel [04:14] Yuffster has joined the channel [04:15] jamescarr: sigh, I'm such a slacker. just hacked together slides for my intro to node.js presentation tomorro [04:15] Raevel: the key to debugging is listening to Steely Dan - I Can't Function [04:15] micheil: steely dan, gaint pnuematic steam powered dildo. [04:15] Raevel: :_/ [04:16] micheil: Raevel: what? that's what the story behind the bands' name is. [04:16] jamund has joined the channel [04:17] murphy has joined the channel [04:17] aconbere has joined the channel [04:18] jgautier: has anyone here used npm programmatically? [04:18] jamescarr: sigh... is it okay if I just say I don't care about the performance metrics that usually get touted in intro to node.js and just focus on how cool it is? [04:20] matjas has joined the channel [04:20] micheil: Raevel: "Since both of them were avid readers of 1950's "Beat" literature, they decided to name the band "Steely Dan" after a dildo in William Burroughs' "Naked Lunch."" [04:20] micheil: source: http://www.steelydan.com/faq.html [04:20] micheil: jamescarr: yeah [04:20] micheil: becuase all performance metrics are generally wrong. [04:21] polotek: finally listening to the noded podcast [04:21] micheil: and mean piss all [04:21] micheil: polotek: enjoy. [04:21] polotek: pretty cool. [04:21] jamescarr: micheil, heh, I think I'm focusing more on how cool it is, how much it makes sense, and show tons of examples from process manipulation, file io, and websockets :) [04:21] mattly has joined the channel [04:21] jamescarr: and the ES5 features it supports [04:21] Draggor: anyone get node running on win7? [04:21] jamescarr: imho, those are more important than performance metrics [04:22] micheil: Draggor: node is not supported on windows. [04:22] jamescarr: Draggor, no... not even in cygwin [04:22] micheil: it may run (with difficulties) on cygwin [04:22] jamescarr: i installed it fine on XP in cygwin, but no luck in windows 7 [04:22] Draggor: Really I'd like linux to run on this device, heh [04:22] jamescarr: my laptop dual boots OpenSuse, Ubuntu, and Windows 7... [04:22] jamescarr: Windows7 is only used for printing :) [04:23] jamescarr: because our printer doesn't work with linux :) [04:23] a_meteorite has joined the channel [04:23] Draggor: that laptop wouldn't happen to be a viliv n5 would it? [04:23] benburkert has joined the channel [04:23] stepheneb has joined the channel [04:24] jamescarr: nah, its sony vaio [04:24] micheil: Draggor: you can install linux on any device, including a potato... [04:24] a_meteorite has joined the channel [04:24] Draggor: This one kernel panics atm [04:24] jamescarr: hmmm... what other big names are using node besides Yahoo? [04:25] micheil: jamescarr: imho, the ES5, the event driven nature, and the awesome community are far better then benchmarks [04:25] jamescarr: micheil, yeah, thats what I was focusing on [04:25] micheil: jamescarr: Yahoo, Plurk, Github, and a fair few others [04:25] a_meteorite has joined the channel [04:25] micheil: those are the ones I know off head [04:25] jamescarr: btw, suggestions for my "Get Involved" slide? [04:25] micheil: oh, shit. How could I forget Storify? [04:26] micheil: Get Involved: join the mailing list, chat in #node.js on freenode, offer help, try to patch things if possible, report bugs (nicely), umm.. yeah [04:27] micheil: I wonder if anyone has done avahi or bonjour bindings for node? [04:27] kawaz_air has joined the channel [04:27] jamescarr: yeah, I mention that... "look at the module list... see something missing you know about? Contribute!" :) [04:28] tekky: micheil: you mean saying, 'your code is fucking busted, fix it' and filing it as a bug report isnt nice? :P [04:29] chapel: has anyone made an aim or similar IM protocol bindings for node? [04:29] Tim_Smart: "It doesn't work on Windows. You suck." [04:29] rictic has joined the channel [04:30] jamescarr: Tim_Smart, "Suck it Trebek." [04:30] rbranson: jamescarr: "write something using node-ffi" [04:31] yumike has joined the channel [04:32] polotek: rbranson: what do you have built on node-ffi right now? [04:32] ngw has joined the channel [04:33] micheil: chapel: not that I know of. [04:33] chapel: hmm [04:33] rbranson: polotek: nothing :) [04:33] chapel: just like there are irc bouncers/proxies I would like to see one for IM [04:33] micheil: I could make a guess and say that that'd be something Meebo may be interested in (but I don't know if they are using node) [04:33] saikat has joined the channel [04:33] chapel: and honestly I think node.js would be perfect for it [04:34] micheil: it would. [04:34] rbranson: polotek: an sqlite example, i've tossed around tokyo cabinet bindings, and SysV IPC stuff [04:34] Tim_Smart: chapel: There are xmpp bindings, so it shouldn't be hard to do GTalk etc. [04:34] micheil: you just need to write the bindings [04:34] chapel: yeah [04:34] chapel: maybe I should work on that [04:34] chapel: :P [04:34] Tim_Smart: Rather xmpp modules, I think they are pure ecmascript - which is nice. [04:34] micheil: chapel: go. go. go. go. [04:34] chapel: haha [04:34] micheil: :P [04:35] chapel: well I need to finish my 1st script first [04:35] Tim_Smart: Maybe except the XML parser. [04:35] polotek: rbranson: :P [04:35] polotek: I'm gonna try it out soon [04:35] rbranson: great... if it breaks, file a github issue :D [04:36] micheil: fork and fix boys.. fork and fix. [04:36] chapel: I really enjoy the node.js community [04:37] chapel: and I think github helps a lot, with its way of fostering coding interaction [04:39] dohtem has joined the channel [04:39] dohtem has joined the channel [04:40] SINPacifist has joined the channel [04:40] jamescarr: chapel, yes [04:40] chapel: :) [04:41] polotek: micheil: is there only one podcast on thenoded right now? [04:42] rauchg_ has joined the channel [04:42] beawesomeinstead has joined the channel [04:42] beawesomeinstead has joined the channel [04:43] hornbeck has joined the channel [04:43] micheil: polotek: yes [04:44] polotek: fuck [04:44] polotek: I had a billion tabs open and I just lost all of them [04:44] technoweenie: using chrome? [04:44] polotek: cmd-q right next to cmd-tab === FAIL [04:44] polotek: technoweenie: indeed [04:44] technoweenie: i did that today, and realized the chrome start page can re-open them all [04:44] jamescarr: what is github using node.js for? [04:44] polotek: holy shit [04:45] jamescarr: someone will ask I'm sure [04:45] polotek: I just noticed that too [04:45] polotek: is that new? [04:45] technoweenie: jamescarr: serving git archives [04:45] tekky: practically all the modern browsers have that :P [04:45] jamescarr: technoweenie, thanks [04:45] technoweenie: polotek: no idea. but i hated chrome and then loved it a second later [04:45] technoweenie: jamescarr: http://github.com/blog/678-meet-nodeload-the-new-download-server [04:46] springmeyer has joined the channel [04:46] dicon has joined the channel [04:46] technoweenie: i worked on it today actually. its been getting shitty with me lately, so i spent the afternoon upgrading it from node 0.1.98 [04:47] polotek: tekky: only when it crashes and you want to recover your session [04:47] bradleymeck has joined the channel [04:47] polotek: but when you close it yourself it's like "oh I guess you're done with these tabs" [04:47] chapel: oh and polotek you should get this: https://chrome.google.com/extensions/detail/npecfdijgoblfcgagoijgmgejmcpnhof [04:47] tekky: polotek: firefox has an option "save and quit" and unless you tell it to "dont show" it asks everytime ;) [04:47] chapel: you can save windows with all the tabs, and sync them in the cloud to other browsers you are logged into [04:48] polotek: chapel: thanks, but I don't think that's what I need [04:48] polotek: I don't sync tabs [04:48] chapel: well no, it isn't exactly what you need, but it sure is nice [04:48] polotek: I have tabs and at home and tabs at work [04:48] polotek: rarely do they contaminate each other [04:48] chapel: but you can use it to save a window full of tabs that you want to have around in case you ever close out everything [04:48] polotek: tekky: yep I have that turned on for ff [04:49] polotek: I would have it turned on for chrome if it existed [04:49] polotek: but this start page history thing is fine for now [04:49] polotek: the other thing chrome is missing imo is something like tab mix plus [04:49] polotek: where you can setup shortcuts to do common things [04:49] polotek: like reopen the last closed tab [04:50] chapel: well tmp wasn't too bad, just wasn't pretty :P [04:50] polotek: or duplicate a tab with history included [04:50] chapel: well chrome does that [04:50] chapel: cmd+shift+t [04:50] polotek: chapel: not with mouse gestures [04:50] chapel: opens last closed tab [04:50] chapel: well I dont use gestures so eh [04:50] chapel: and any time you duplicate a tab, the history is included [04:51] jamescarr: are joyent node betas still available? [04:52] polotek: chapel for some reason I can never remember that keyboard shortcuts in browsers [04:52] polotek: they're different in every one and none of them really make sense [04:52] chapel: well chromes do imo [04:52] chapel: adding shift is restore [04:52] chapel: for tabs [04:53] chapel: adding shift to cmd+n opens an incognito window [04:53] chapel: standard modifier key [04:53] rauchg_ has joined the channel [04:53] ryanfitz has joined the channel [04:53] rictic has joined the channel [04:53] chapel: anyways, I haven't had too many issues losing windows full of tabs [04:54] polotek: it's probably more so because I have to switch between os x at home and windows at work [04:54] noahcampbell has joined the channel [04:54] chapel: hmm, you use chrome on both right? [04:55] chapel: do you have syncing for bookmarks/extensions/prefs? [04:55] chapel: curious, when you reopened chrome, on the start page did you not have an option to open xx(number) of tabs? [04:55] chapel: in the history part? [05:00] JimBastard has joined the channel [05:02] patientfox has joined the channel [05:03] patientfox: hey.. so I was previously using Script.runInNewContext() to get a kind of "more secure eval()" .. in that, from looking at the code I had.. I could expect the result of an expression to returned from the call [05:03] patientfox: and it seems that runInNewContext() returns undefined, now.. ? this is in 0.2.4 [05:04] o_o has joined the channel [05:04] patientfox: that is.. if the js you passed into runInNewContext was an expression that returned a value, you could capture that in the output and do sys.inspect() on it.. seems like it worked in some past version [05:04] enoch2038 has joined the channel [05:05] patientfox: not so much now. am i speaking nonsense here or what? [05:06] patientfox: hm. api docs say that this is still the behavior. huh. [05:06] micheil: patientfox: one moment, and I'll try to figure it out. [05:06] SubStack has joined the channel [05:08] micheil: patientfox: so, you have something like: script.runInNewContext("return true;") ? [05:08] micheil: then you'd do: [05:08] patientfox: var output = script.runInNewContext("1 + 1") [05:08] micheil: var sandbox = {}; script.runInNewContext("return true;", sandbox); [05:08] patientfox: console.log(sys.inspect(output)); // 2 [05:08] patientfox: yes, re: sandbox [05:08] micheil: but, you'd have to set the value to be something like: [05:09] micheil: script.runInNewContext("this.result = "+input, sandbox); [05:09] micheil: then you could do: [05:09] patientfox: yeah, i know i could pass values out through the sandbox [05:09] micheil: sandbox.result == 2 [05:09] patientfox: i understand that [05:09] jamescarr: anyone mind reviewing these slides for me? [05:09] jamescarr: http://github.com/jamescarr/intro-to-nodejs [05:09] micheil: that's the only way, iirc. [05:09] patientfox: im using this for an irc chan eval bot for coffeescript code [05:09] yrashk has joined the channel [05:09] jamescarr: most of the presentation will be live coding though :) [05:09] patientfox: anyways.. its previously worked [05:10] patientfox: doesn't now.. just curious if anyone was hip to that. [05:10] polotek: chapel: sorry, got distracted [05:11] dquestions has joined the channel [05:11] polotek: when I open chrome on the start page it seems to be grouped by window [05:11] micheil: patientfox: there's a difference between runInThisContext and runInNewContext [05:11] polotek: reopen (11) tabs from last window [05:11] micheil: jamescarr: sure thing. [05:11] polotek: then reopen (18) tabs from window before that [05:11] micheil: patientfox: also: var Script = process.binding('evals').Script; [05:11] polotek: I was using xmarks for syncing bookmarks but that's going away [05:11] micheil: that's wrong. [05:12] micheil: it's now (in 0.3.X) var Script = process.binding('script').Script [05:12] micheil: probably. [05:13] SubStack_ has joined the channel [05:13] micheil: erm. [05:13] micheil: or not. [05:13] micheil: shit that code is confusing [05:13] patientfox: as i mentioned, im using 0.2.4 [05:13] micheil: that should really be moved. [05:13] patientfox: yeah, prolly should do a lot of things [05:13] patientfox: but first i need to make it work [05:13] patientfox: refactor later [05:14] patientfox: anywho, thanks for the input [05:14] Raevel: class explosion incoming [05:14] micheil: patientfox: uhh, by "that should be moved" I meant within node. [05:15] jamescarr: oooh... I should possibly demo nodjitsu's webservice module [05:16] jamescarr: the one that turns any commonjs module into a rest service [05:19] BryanWB has joined the channel [05:20] patientfox: ooooooooooh. [05:21] dquestions has joined the channel [05:21] sh1m has joined the channel [05:23] Me1000 has joined the channel [05:24] jchris has joined the channel [05:24] jchris has joined the channel [05:24] amerine has joined the channel [05:24] micheil: jamescarr: that's a little too magic for introduction [05:24] jamescarr: true [05:25] micheil: jamescarr: just loading up the slides. [05:25] micheil: ACTION hates' ppt. [05:26] jamescarr: yeah, should have thrown it on slide share or something ;) [05:26] micheil: heh [05:26] micheil: also. seriously,you should check out dshaw's slides. [05:27] galaxywatcher has joined the channel [05:27] gsmcwhirter: jamescarr, slide 12 has a typo "budle" [05:28] jamescarr: lol [05:28] jamescarr: micheil, ah, link? [05:28] micheil: sorry, no [05:28] jamescarr: blast [05:29] micheil: jamescarr: I wouldn't claim runs on cygwin, that's asking for trouble [05:30] gsmcwhirter: jamescarr, the google group is just nodejs i think (without the ., slide 18) [05:30] micheil: jamescarr: actually, here: http://www.slideshare.net/dshaw/nodejs-the-new-new-hotness [05:31] micheil: yeah, no dot on nodejs [05:31] micheil: also, dark slides generally work better, as projectors are mainly blackout projectors [05:32] micheil: (they'll project colours, but won't project black [05:32] jakehow has joined the channel [05:33] micheil: jamescarr: under users, definitely add Storify. [05:33] matjas has joined the channel [05:33] jamescarr: AH [05:33] elijah-mbp has joined the channel [05:33] jamescarr: thanks for linking dshaw's presentation [05:34] micheil: man.. some of the emails we filter out of the mailing list are lolable. [05:34] micheil: like, something in all chinese characters with about 100 links to the same site. [05:36] jamescarr: :-P [05:36] jamescarr: I liked the one that issac thought was well targeted spam, then it turned out to be someone really asking a question [05:36] jamescarr: isaacs even [05:37] mbrochh has joined the channel [05:38] patientfox has left the channel [05:39] igorgue has joined the channel [05:39] polotek has left the channel [05:40] sveimac has joined the channel [05:41] erobit has joined the channel [05:42] micheil: yeah, this really is spam. [05:43] micheil: jamescarr: I'm thinking I might do up some general purpose slides at some stage. [05:44] tekky: lol [05:46] gerad has joined the channel [05:47] micheil: hey gerad [05:47] gerad: micheil: yo [05:48] gerad: micheil: how's it? [05:48] micheil: sup? [05:48] micheil: quite good, busy with university & school stuff while doing node core work [05:48] gerad: i'm sure [05:49] micheil: gerad: working on the documentation at the moment, so far I think I have a reasonable patch coming along. [05:49] Tim_Smart: Haha I saw 'university & school' and was like "shouldn't that be 'university && school'" [05:49] Tim_Smart: I then came back to real life. [05:50] micheil: haha [05:50] micheil: actually, they're bitwise flags in my case: [05:51] micheil: unversity == 0x02 and school == 0x01 [05:51] micheil: so, I'm at like, 0x03 [05:51] gsmcwhirter: that would need an |, not an &, no? [05:51] micheil: yeah? [05:52] micheil: hmm, both work [05:52] banjiewen has joined the channel [05:52] gsmcwhirter: 0x02 & 0x01 I would expect to give 0x00 [05:52] micheil: nup [05:52] gsmcwhirter: though i could just be tired [05:52] micheil: 0x02 & 0x01 = 0x00 [05:52] micheil: v8: 0x02 & 0x01 [05:52] v8bot: micheil: 0 [05:52] micheil: v8: 0x03 & 0x01 [05:52] v8bot: micheil: 1 [05:53] micheil: (it's almost like draft 04 flags.. [05:55] jamescarr has joined the channel [05:55] micheil: ish james. [06:03] Tim_Smart: v8: var school = 0x01, uni = 0x02, both = school | uni; [school, uni, both, school & uni, both & uni, both & school] [06:03] v8bot: Tim_Smart: [1, 2, 3, 0, 2, 1] [06:04] Tim_Smart: & is used for comparison. [06:04] StanAngeloff_ has joined the channel [06:04] Tim_Smart: So yeah, "school | university" if it was flags. [06:06] muk_mb has joined the channel [06:07] path[l] has joined the channel [06:07] aurynn has joined the channel [06:07] aubergine has joined the channel [06:08] jackowayed has joined the channel [06:08] aurynn: Woo. postgres.js appears to be reasonably stable [06:09] jackowayed: anyone know of something like Socket.IO in other languages? [06:09] aurynn: where reasonable is of potentially non-stable reasonability [06:09] Tim_Smart: jackowayed: Apparently python has a socket.IO server. [06:10] Tim_Smart: There might be one for ruby too, not sure. [06:10] jackowayed: Tim_Smart: oh, awesome. thanks [06:10] jackowayed: SocketTornad.IO [06:12] Max-Might has joined the channel [06:13] micheil: Tim_Smart: I think I've got a viable documentation patch. [06:13] micheil: I'll commit and push to a fork [06:13] micheil: I'm looking for a review of it,. [06:13] Tim_Smart: Nice, chuck it on the list. [06:13] micheil: hmm.. [06:14] micheil: although.. I haven't done the makefile, manpage or styling yet. [06:21] cagdas has joined the channel [06:26] daglees has joined the channel [06:28] ollie has joined the channel [06:35] SamuraiJack has joined the channel [06:35] mr_daniel has joined the channel [06:46] admc has joined the channel [06:48] Utkarsh has joined the channel [06:53] jetienne has joined the channel [06:53] Tim_Smart: I don't :) [06:53] Tim_Smart: Err, wrong chat. [06:54] dgathright has joined the channel [06:55] ph^ has joined the channel [06:55] sonnym has joined the channel [06:57] ph^_ has joined the channel [06:59] aurynn has joined the channel [07:00] deepthawtz has joined the channel [07:03] Anti-X has joined the channel [07:04] mikew3c has joined the channel [07:05] muhqu has joined the channel [07:06] Viriix has joined the channel [07:06] Utkarsh has joined the channel [07:06] matjas has joined the channel [07:08] stride: morning [07:11] pferdefleisch has joined the channel [07:14] dquestions has joined the channel [07:16] sid3k has joined the channel [07:20] ollie has joined the channel [07:21] pferdefleisch has joined the channel [07:22] oberhamsi has joined the channel [07:24] sonnym has joined the channel [07:25] klaytonix has joined the channel [07:25] Nohryb has joined the channel [07:26] dgathright has joined the channel [07:27] meatmanek has joined the channel [07:28] Druid_ has joined the channel [07:28] ivanfi has joined the channel [07:28] MikhX has joined the channel [07:28] StanAngeloff has joined the channel [07:32] hellp has joined the channel [07:33] herbySk has joined the channel [07:44] siplux has left the channel [07:46] teemow has joined the channel [07:49] aubergine_ has joined the channel [07:51] zomgbie has joined the channel [07:52] Utkarsh has joined the channel [07:53] agnat has joined the channel [07:53] technoweenie: micheil: are the new node docs just a bunch of markdown files [07:53] micheil: yeah [07:54] technoweenie: have you thought about using gollum [07:54] micheil: see: http://d.pr/UA5v [07:54] micheil: well, if gollum can be written in node.js, then I would think of that. [07:54] micheil: (I'm not wanting to introduce a dependency) [07:55] micheil: this is the current build script: http://gist.github.com/650873 [07:55] micheil: does the job & works nicely [07:55] micheil: (I'm not even wanting to have dependencies to npm modules) [07:55] technoweenie: ok cool [07:56] technoweenie: yea you cant do gollum in node until there's a decent git lib [07:56] technoweenie: and decent syntax highlighting and text parsing libs [07:56] micheil: technoweenie: so, if Gollum can be written in node without many dependencies, then I'd look at that. [07:56] micheil: syntax highlighting can be done in the browser. [07:56] technoweenie: not well [07:56] micheil: markdown is done on the build script [07:57] micheil: technoweenie: true, but it's good enough [07:57] StanAngeloff has joined the channel [07:57] micheil: as for git, it's done via `make doc` [07:57] micheil: and it's all in the one branch [07:57] micheil: no need to use git there. [07:57] technoweenie: ok [07:58] technoweenie: we may have some stuff brewing, thought i could use you as a test subject [07:58] micheil: technoweenie: so, if you have a gollum builder in just node without deps, then yeah, I'd look at gollum [07:58] micheil: technoweenie: I would, however, look at possibly using gollum on node-websocket-server [07:58] technoweenie: there is no gollum 'builder', it renders dynamically [07:58] micheil: well, you know what I mean. [07:59] micheil: you could surely be able to make it save to disk. [08:00] technoweenie: oh yea, i updated socket.io finally for nodeload. this one has node-websocket-server [08:00] micheil: anyway, bbl, taking the dog for a walk. [08:01] micheil: also, socket.io should soon be using nws. [08:01] micheil: bbl. [08:01] delapouite has joined the channel [08:05] __mn__ has joined the channel [08:05] virtuo has joined the channel [08:05] rikarends has joined the channel [08:05] kawaz_air has joined the channel [08:06] JohnDav has joined the channel [08:06] __mn__: I have this funny problem where I SSH into a server, and I run Node... but if my computer hibernates, the server shuts down because the SSH gets cut. Is there anyway I can fix this in Node or is this a server thing? [08:07] mjr_: __mn__: try screen or tmux [08:07] mjr_: on the server I mean [08:07] rubyphunk has joined the channel [08:08] Ori_P has joined the channel [08:08] Tim_Smart: Or nohup [08:08] Tim_Smart: `nohup node app.js &` [08:08] Tim_Smart: Most unix systems have it [08:08] dgathright has joined the channel [08:08] Tim_Smart: then you just `tail -f nohup.out` [08:08] __mn__: with the & ? [08:08] Tim_Smart: Yeah [08:09] Tim_Smart: Forces it to become a daemon. [08:10] adambeynon has joined the channel [08:10] __mn__: nohup ignoring input and appending output to 'nohup.out' is that good? [08:11] Tim_Smart: Basically means it has no stdin, and std{out,err} gets sent to nohup.out [08:12] __mn__: okay, and then I need to do tail -f nohup.out (?what does this do) [08:12] Tim_Smart: Tails the log so you can see the program output. [08:12] Tim_Smart: Not necessary, but useful. [08:14] Tim_Smart: nohup is definitely not something to use for productions stuff, but for small little daemons it does the job just fine. [08:14] __mn__: oh [08:14] __mn__: this is production [08:14] __mn__: thats why I need it to stay online. I never had a problem with the server going down while my computer slept. [08:15] __mn__: rr *its an alpha release of my program, not quite production, but random people are using it. [08:15] Tim_Smart: Oh, then you might want to use a proper process monitoring tool. [08:15] StM has joined the channel [08:15] Tim_Smart: I usually use upstart and monit. [08:15] mjr_: tmux is not proper enough either. [08:15] __mn__: okay so obviously this isn't node stuff, and I don't want to ask stuff unecessarily, what are some good googles phrases to search for? [08:16] mjr_: If you use ubuntu, you can use upstart, which is included and fine. [08:16] __mn__: yeah ubuntu 10.10 server [08:16] Kung_Fu_Hamster has joined the channel [08:16] Tim_Smart: I made an article on it, but it needs updating. [08:16] alexb_ has joined the channel [08:16] __mn__: upstart command not found? [08:16] jwcooper_ has joined the channel [08:17] mjr_: upstart is the init replacement used in ubuntu [08:17] mjr_: you don't run it manually, you put .conf files in /etc/init [08:17] hecticjeff has joined the channel [08:17] mjr_: man upstart should have more information [08:17] elijah-mbp has joined the channel [08:18] __mn__: I only have shell access and I'm totally unfamiliar with this stuff :P so I won't be able to pick it up from your guys comments. what should I google for tutorials and sorts? [08:18] __mn__: and any related to Node? [08:18] __mn__: there's no setting that you can change like... "settings -nosleep" type thing? [08:19] mjr_: __mn__: put a file like this: http://gist.github.com/650898 [08:19] mjr_: in /etc/init/some_server.conf [08:19] chapel: __mn__: http://howtonode.org/deploying-node-upstart-monit [08:20] Tobias|: ACTION wonders what a purely event-based operating system would like [08:20] Crshman_ has joined the channel [08:20] __mn__: thanks [08:20] chapel: c/o Tim_Smart :P [08:20] alxc1 has joined the channel [08:21] tmm1: ryah_: http://github.com/tmm1/http-parser/commit/3d7aae37c71de1e1e8f91db596f42971318a0aa3 [08:22] beawesomeinstead has joined the channel [08:22] beawesomeinstead has joined the channel [08:23] Tim_Smart has joined the channel [08:26] dicon has joined the channel [08:26] alexb_ has joined the channel [08:26] shripadk has joined the channel [08:27] alexb_: Finding it pretty hard to avoid memory leaks in my daemons :( [08:28] __mn__: yeah... speaking of which... how secure are those sorts of things? I heard the JSON.parse had a memory leak? [08:28] aliem has joined the channel [08:28] shripadk: anyone tried riak on joyent no.de smart machine? how would you install the binary: http://downloads.basho.com/riak/riak-0.13/BASHOriak-0.13.0-2-OpenSolaris11-i386.pkg.gz ? i used gzip to extract... what should i do with the pkg file now? sorry m not good at opensolaris.. btw joyent does not have riak in the pkgsrc repo... [08:29] alexb_: Haven't heard about that but there is another parser on github i think [08:29] __mn__: alexb_: hmm, better? [08:29] alexb_: Not sure, I just use the v8 one [08:30] shripadk: __mn__: node-msgpack [08:30] alexb_: My biggest issue with json parsing is that it is slow [08:30] omarkj has joined the channel [08:30] shripadk: alexb_: check node-msgpack [08:30] __mn__: shripadk: thanks [08:30] alexb_: Yeah i have seen that but I am just keeping my objects in memory instead [08:31] shripadk: k.. :) [08:31] mAritz has joined the channel [08:31] shripadk: anyone tried riak on no.de smartmachine? [08:31] Tim_Smart: Let me check my daemon I have had running for about a week. [08:31] __mn__: does node-msgpack work fine with clientside json2.js? [08:31] SamuraiJack_ has joined the channel [08:31] xla has joined the channel [08:31] shripadk: worked for me... [08:32] Tim_Smart: Err it wouldn't. msgpack isn't json. [08:33] shripadk: sry... i dint read your question properly.... yeah Tim_Smart is right... [08:33] mikew3c has joined the channel [08:33] __mn__: ...javascrpt objects? isn't that the O in jsOn? [08:33] alexb_: Is msgpack for sure the fastest serializer? [08:34] shripadk: msgpack has its own types... check github readme [08:34] __mn__: reading through it now. [08:35] shripadk: alexb_ definitely faster than protobuf... hence is faster than native JSON serializer [08:36] shripadk: http://msgpack.org/ [08:36] __mn__: so msgpac is used when you want to save your JSON objects and then read them later, but nothing for server/client mesages. [08:37] Nohryb: Tim_Smart: BIG THANKS : arguments.callee.toString() does the trick nicely. ( Jorge ) Cheers! [08:37] shripadk: you can pass around in server side... if you want to pass to client then use native JSON to stringify... [08:37] __mn__: shripadk: gotcha, thanks for clarifying. [08:37] Tim_Smart: Nohryb: Oh nice. It only works because modules are just wrapped in a function. [08:38] Nohryb: Tim_Smart: Yeah, I know, that's been really smart ! [08:39] Tim_Smart: __mn__: Heh, the daemon I have been running for around a week has actually gotten smaller in memory. [08:39] Tim_Smart: RSS went from 15M to 13M [08:39] __mn__: Tim_Smart: nice, and thats using upstart? [08:39] Tim_Smart: Using no.de [08:40] Tim_Smart: (Joyent hosting) [08:40] __mn__: if I'm looking for scale, do I really want to use no.de in contrast to EC2? [08:40] Tim_Smart: Well, upstart is just a process monitor, it doesn't affect memory usage. [08:41] __mn__: my app is realtime intense with all client/server through JSON and then the JSON is automatically appended in a stream to a file. [08:41] mbrochh has joined the channel [08:41] mbrochh has joined the channel [08:41] __mn__: in some instances... each message is sent per mouse movement. [08:41] Tim_Smart: Don't use JSON for that. [08:42] Tim_Smart: Use comma seperated values or something. [08:42] Tim_Smart: JSON parsing can get pretty expensive. [08:42] __mn__: really? I originally was going to write these regexp for @who/when#where?what messages [08:42] __mn__: but I do'nt know regexp and things got complicated fast and JSON was a piece of cake. [08:42] murphy has joined the channel [08:43] __mn__: wouldn't JSON still be faster than any custom regexp I write? [08:43] Tim_Smart: I can find an example of using websockets + recording mouse movements. [08:43] __mn__: its not the mouse movement that is recorded though [08:43] Tim_Smart: The guy found JSON was too slow, and didn't scale. [08:43] __mn__: its data that correlates to the mouse movements. [08:44] mr_aleph has joined the channel [08:44] __mn__: so I'm still passing chunks of data [08:44] TomY has joined the channel [08:44] __mn__: or... realtime typing, that too. so per key-up [08:44] Tim_Smart: Yeah definetly not JSON for that. [08:45] __mn__: mmkay. [08:45] shripadk: __mn__: something like speedo? http://screenr.com/Gxn [08:45] Tim_Smart: Let me find this blog post. [08:46] __mn__: Tim_Smart: thanks, shripadk: I'll watch the video and let you know, then send you my own if you ar einterested. [08:46] Tim_Smart: __mn__: http://mrdoob.com/blog/post/701 [08:46] shripadk: sure :) [08:47] __mn__: Tim_Smart: thanks. [08:47] shripadk: i was using json for my app too. which is pretty similar to yours. its still in alpha. for analytics. then i switch to csv [08:47] __mn__: eh... realtime like speedo, but just a lot more stuff - here's a 5 minute presentation http://vimeo.com/14939921 of it [08:48] deepthawtz has joined the channel [08:48] __mn__: but note, that presentation isn't hooked up to a backend. That's what I've coded this last month and now have avaiable for testing. [08:48] __mn__: *available. [08:50] shripadk: checking it out.. [08:50] __mn__: cool let me know your thoughts. we launched the alpha today, developer preview. [08:51] Throlkim has joined the channel [08:52] Anti-X: what's the point of having a 'Node-Users' wiki page? [08:52] Anti-X: just seems like an excuse to get your name on a list [08:52] Tim_Smart: So I can stalk you. [08:52] __mn__: haha. [08:52] Anti-X: you can't stalk me [08:53] Anti-X: i'm invisible [08:53] Anti-X: very few people have actually seen me [08:54] mr_aleph has joined the channel [08:54] Anti-X: even so i don't see the point [08:54] Anti-X: you can still stalk them, they're mostly in here [08:55] Tim_Smart: There is no point. That is the point. [08:56] Anti-X: but.. but... [08:56] Anti-X: EEEEEEEEEEEK [08:57] Anti-X: looks like i would be the first norwegian on the list if i actually cared [08:57] Anti-X: does that make me invaluable? [08:57] Anti-X: well there's one norwegian but he works in spain so that doesn't count [08:58] shripadk: __mn__: just awesome :) so i signed up for your alpha release... [08:58] AAA_awright: Could Node.js be used to, say, create an audio stream for an Internet radio station? [08:59] Tobias|: Probably [08:59] __mn__: shripadk: thanks :) been working hard on it, would you like a preview now? [08:59] Tim_Smart: AAA_awright: Yeah. [08:59] AAA_awright: I wonder how hard it would be to write up a C module [08:59] shripadk: sure i would :) [09:01] tek has joined the channel [09:01] Anti-X: AAA_awright, wouldn't be hard to write it in C, but it would be hard to write it in C if you needed more than one connection :p [09:01] AAA_awright: It would have to be C++ I guess [09:01] freeall has joined the channel [09:02] Tim_Smart: AAA_awright: Just write it in ecmascript :) [09:02] __mn__: how do I send a private IRC chat? :P [09:02] AAA_awright: Anti-X: Just to create the stream, or create it for other dedicated streaming servers [09:02] AAA_awright: Tim_Smart: D: [09:02] Tim_Smart: __mn__: /msg user [09:02] AAA_awright: NIH syndrome a problem at your workplace? :p [09:02] __mn__: thanks :P IRC newb [09:02] stride: why would you reimplement that AAA_awright? you'd have to handle getting the audio data, transcoding, connection throtteling, whatever yourself [09:03] AAA_awright: To create and mix the audio from multiple sources, and do it based on outside data [09:03] stride: -e [09:03] Tim_Smart: That would be pretty hot in node though, pipe a file read stream to a transcode stream, then pause() and resume the transcode stream to throttle it. [09:04] __mn__: shripadk: I can't figure out IRC private chat, can you send me a message? [09:04] stride: AAA_awright: and why don't you use an existing system and write something to automate that? [09:04] AAA_awright: NIH syndrome, of course [09:05] stride: I'm pretty sure it would make more sense to use icecast, or whatever the enterprise grade alternative to that is and work on top of that :) [09:05] stride: oh, I see, go ahead then :) [09:08] mAritz has joined the channel [09:08] pferdefleisch has joined the channel [09:14] alexb_ has joined the channel [09:16] AAA_awright: Actually, I need to be able to mix audio files and live audio, depending on their contents and outside conditions [09:16] AAA_awright: Imagine writing a noise gate, etc [09:16] agnat has joined the channel [09:18] SamNZ has joined the channel [09:18] byrus has joined the channel [09:22] Tobias|: Is it better to use memcached, or just store a hashtable? [09:22] Tim_Smart: Tobias|: What for? [09:23] Tobias|: Arrays of user information, I suppose [09:23] alexb_ has joined the channel [09:24] mjr_: Tobias|: Redis is a very popular choice these days in nodeland. [09:24] Tobias|: Irrelevant [09:24] Tobias|: s/memcached/redis, if you want [09:24] maushu has joined the channel [09:24] Tobias|: The point of the question is whether to use an external app or nodejs :p [09:24] mjr_: Obviously it all depends on the details. [09:25] Tim_Smart: hashtable is fine if don't need the data in other processes. [09:25] chapel: does this information change often? is it tied to a database? [09:25] stephank has joined the channel [09:25] mjr_: Unless it is going to be a very large one, and you'll start to run into the V8 GC penalty. [09:25] micheil: looks like people've been talking [09:26] micheil: technoweenie: in a few minutes, could I get you to fill me in on details about gollum? [09:26] Tobias|: I imagine it would, chapel, but node.js would be the only one doing the changing of that information [09:26] chapel: okay [09:26] Tim_Smart: Putting it in an external app makes it easier to scale horizontally. [09:27] Tim_Smart: So I would have to go with an external data store. [09:27] javruben has joined the channel [09:28] Tobias|: I see [09:28] Tobias|: Alright then [09:30] micheil: Tim_Smart: hmm, what was the monitoring tool joyent were using? [09:30] Tim_Smart: micheil: Dunno. [09:31] micheil: tmm1: with http://github.com/tmm1/http-parser/commit/3d7aae37c71de1e1e8f91db596f42971318a0aa3 email it to nodejs-dev@googlegroups.com [09:32] shripadk_ has joined the channel [09:33] themiddleman has joined the channel [09:33] micheil: __mn__: yeah, I can confirm json is bad for massive amounts of data [09:35] micheil: Anti-X: the Node User's page is useful for gathering stats on community locations, timezones, and being able to know realnames to irc nicks and vica verse. [09:35] sideshowcoder has joined the channel [09:36] micheil: AAA_awright: yes, node can stream audio, there's a module for it. [09:36] AAA_awright: Already? Seriously? [09:37] aubergine has joined the channel [09:37] micheil: yeah [09:37] micheil: someone wrote simple bindings a few months back [09:37] mbrochh has joined the channel [09:37] micheil: it's on the module list [09:37] mbrochh has joined the channel [09:38] Anti-X: micheil, sure, the idea might be good, but in practice you probably won't even catch 1% of all the users, as well as catching some users that aren't actually users, but just tried it out and claim to be experts [09:38] Anti-X: with users i mean highly active ones [09:38] micheil: Anti-X: well, it doesn't matter. [09:39] Anti-X: from a statistics perspective it's worth 0 [09:39] Anti-X: is all i'm saying [09:39] micheil: like, if you want to add your self, feel free to, I encourage it, if you don't, then it doesn't matter [09:39] Anti-X: but the nick to name thing is a fine reason [09:39] micheil: also, the timezones are really useful [09:39] chapel: I think its nice to find local people [09:40] micheil: and if you can see that there are atleast 4 people in your city doing node, then maybe you can start a meetup or join a meetup [09:40] chapel: as I said on the group email, I would like to do a node get together locally [09:40] agnat has joined the channel [09:40] Anti-X: there's already a node.js group in oslo, with 35+ alledged noders [09:41] ctp has joined the channel [09:41] Anti-X: 0 on the node users list [09:43] micheil: Anti-X: so? maybe they'll add them selves. like, I mean, it's nothing great or massively important to waste time discussing over [09:43] Anti-X: agreed, but i just thought it was odd to have one on the official node repo wiki, for whatever reason [09:44] micheil: like, I know from looking at the list that there may be interest in me running a node course within australia. [09:44] micheil: because I know there are a few more node users [09:44] micheil: Anti-X: it's common ground, everyone can edit, it's simple. [09:46] JohnDav has joined the channel [09:46] micheil: AAA_awright: see: http://github.com/TooTallNate/node-radio-stream [09:49] AAA_awright: NICE [09:49] Anti-X: speaking of radio [09:49] Anti-X: new thenoded soon? [09:49] kawaz_air has joined the channel [09:50] digitalspaghetti: D: http://thedailywtf.com/Articles/Diseased.aspx [09:51] jetienne has joined the channel [09:51] JohnDav: v8bot++ [09:51] v8bot: JohnDav has given a beer to v8bot. v8bot now has 7 beers. [09:51] micheil: Anti-X: not for a while, I still haven't had a chance to do the mixdown. You [09:52] micheil: 'll know when it's out. [09:52] zomgbie has joined the channel [09:52] JohnDav: v8bot: 2+2 [09:52] v8bot: JohnDav: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [09:55] chapel: v commands [09:55] Anti-X: micheil, you should grab some random audio student and have him do it [09:55] chapel: `v commands [09:55] v8bot: chapel: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help, macro. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. [09:55] MattJ has joined the channel [09:55] pquerna: Server: twisted-web-i-dislike-you-so-much; not-node.js; [09:56] chapel: I would mix it down if you wanted micheil, I am no expert, but have the software and time [09:56] micheil: Anti-X: no can do. [09:56] micheil: chapel: there's a few issues with the audio, also, the files are kind of massive (it's about 1Gb of data) [09:57] chapel: well not an issue for me, but possibly for your isp [09:57] micheil: chapel: so, when I finish up this bit of work on the documentation, I'll start doing it. [09:57] Tim_Smart: pquerna: I got a few commits on my http-streams branch [09:58] digitalspaghetti: pquerna: yea, twisted is an apposite name [09:58] Tim_Smart: I have rebased them on top of yours, I might do some more hacking on server soon. [09:59] pquerna: Tim_Smart: kk [09:59] pquerna: i'm about to crash [09:59] pquerna: shipped streams.cloudkick.com thingy in 18 hours \o/ [10:00] pquerna: s/streams/stream/ [10:00] pquerna: but it used twisted [10:01] Tim_Smart: Oh right. I haven't used twisted before. [10:01] AAA_awright: Anti-X: thenoded? [10:01] Anti-X: podcast [10:01] chapel: hmm [10:01] chapel: pquerna: are you apart of cloudkick? [10:04] pquerna: chapel: yes [10:05] Tim_Smart: Hmm http://tinyurl.com/23wqaaz [10:05] chapel: ah sweet, found out about that recently, want to use it, but waiting for the monitoring software source code so I can install it [10:05] pquerna: yes, open sourcing the agent is on my list of things to do. [10:05] pquerna: its not insane, and happy to answer any questions about it; just need to finish renaming it and some cleanups [10:06] chapel: ah, someone emailed me asking me how I liked the service, told him I couldn't use it yet, he said he didn't have a timeline but it was in progress :P [10:06] pquerna: if node was less buggy i'd have more time for that.. :) [10:06] chapel: :) [10:06] chapel: Im in no hurry, but really want to check out the service [10:07] rikarends has joined the channel [10:08] chapel: hmm Tim_Smart, why did you link that? [10:08] Tim_Smart: It was interesting. [10:08] rubyphunk has joined the channel [10:10] chapel: well I read the part about cooking somewhere else describing asynchronous programming [10:10] chapel: cant remember off the top of my head [10:10] Tim_Smart: Well the fact that PHP and async were in the same article. [10:11] chapel: heh yeah [10:12] AAA_awright: Are there any plans to replace the python scripts with Node.js scripts? [10:12] AAA_awright: Is that just build? [10:13] Tim_Smart: python is only used for builds and node-waf [10:14] AAA_awright: :/ [10:14] digitalspaghetti: AAA_awright: i wouldn't see why that wouldn't eventually happen (javascript itself is turing complete) but lets get node stable first :p [10:15] micheil: that is so annoying. [10:15] micheil: str.replace doesn't mutate the string [10:15] stride: so to make node I'd need node? [10:15] AAA_awright: I would prefer just to write a semantic build system from scratch, actually [10:15] digitalspaghetti: micheil: yea, it makes a copy [10:15] micheil: yeah [10:15] AAA_awright: So you plain don't need scripting [10:16] Tim_Smart: Well V8 needs python to build, so meh. [10:17] Tim_Smart: Node.js itself is migrating to autoconf though. [10:18] maushu: Hmmm, so I removed node.js from cygwin and tried to run it as "standalone"... [10:21] micheil: this is kinda awesome. http://gist.github.com/651071 [10:22] micheil: (allows you to write documentation in markdown, and optionally include extra files within them, so, like @include _toc.html [10:22] micheil: or rather, .markdown. [10:26] DoNaLd`: http://primaxstudio.com/stuff/scale_of_universe/ [10:28] SamNZ: Holy crap [10:28] SamNZ: That's amazing [10:32] bearnard has joined the channel [10:35] Br|ce has joined the channel [10:36] koichik has joined the channel [10:36] koba789 has joined the channel [10:37] koba789 has joined the channel [10:38] saschagehlich has joined the channel [10:40] koba789 has joined the channel [10:47] margle has joined the channel [10:50] koichik has left the channel [10:52] Anti-X has joined the channel [11:00] Blink7 has joined the channel [11:03] Anti-X: in jade is there a decent way to nest templates, or do i just render the inner ones first and then apply them to the outer ones? [11:04] gregerolsson has joined the channel [11:05] micheil: Anti-X: not sure, ask tjholowaychuk when he's about. [11:05] Neil__ has joined the channel [11:05] Anti-X: i would but he wasn't about [11:05] Anti-X: ;) [11:08] masahiroh has joined the channel [11:10] fbits has joined the channel [11:13] masahiroh has joined the channel [11:14] zorzar_ has joined the channel [11:15] micheil: yeah, but anyway. [11:18] kawaz_air has joined the channel [11:18] __mn__ has joined the channel [11:20] ctp has joined the channel [11:22] Ori_P has joined the channel [11:26] ooooPsss has joined the channel [11:31] johngbrooks has joined the channel [11:36] mr_daniel has joined the channel [11:40] ntelford has joined the channel [11:41] Br|ce has joined the channel [11:44] mikew3c has joined the channel [11:47] nerdEd has joined the channel [11:50] stepheneb has joined the channel [11:52] jetienne: Error: process.mixin() has been removed. <- grumble [11:57] micheil: util.inherit [11:57] micheil: wait. not. [11:57] micheil: probably create a patch to add it to util [11:57] micheil: that's where it should go at anyrate, if ryah_ wants to accept it, he will. [11:59] ryanfitz has joined the channel [11:59] leeeb has joined the channel [12:00] digitalspaghetti: yea, mixin should go back in but on util [12:00] digitalspaghetti: maybe call it .apply [12:00] digitalspaghetti: util.apply(object, extra) [12:01] digitalspaghetti: http://dev.sencha.com/deploy/dev/docs/source/Ext.html#method-Ext-apply [12:06] d0k has joined the channel [12:07] c4milo has joined the channel [12:08] fermion has joined the channel [12:11] kriszyp has joined the channel [12:11] micheil: noooo... not .apply. [12:12] micheil: ƒ.apply(thisArg, arguments[]) [12:14] Anti-X: yeah apply is for functions, don't make it confusing now [12:14] digitalspaghetti: good point [12:14] micheil: util.extend or util.mixin [12:14] micheil: I prefer util.mixin [12:14] micheil: it sounds like what it does. [12:15] Anti-X: if it overwrites existing properties by the same name, then mixin [12:15] Anti-X: if it doesn't, extend [12:15] stephank: gf3: hah, “jerk” is like the perfect name for an irc library :) [12:15] Mikeeee has joined the channel [12:15] Mikeeee: Hello! [12:16] Anti-X: jirc already exists [12:17] stephank: Anti-X: hadn't even thought of that. I just find jerk really apt, given what I've seen from irc (outside of freenode) [12:17] stephank: it's full of jerks :p [12:18] Anti-X: why not go all in ironic... IRL... in real life / internet relay lame [12:18] sveimac has joined the channel [12:18] Mikeeee: I'm wanting to send small packets of data from a .NET app to node.js. Anyone got any opinion on how to go about this? should I use some kind of rpc module? [12:18] stephank: Anti-X: good one. :) [12:18] Anti-X: Mikeeee, what about just opening a socket and sending JSON? [12:19] stride: Mikeeee: there's no rpc module with .Net bindings iirc [12:19] Mikeeee: Ok. I was looking at msgpack and stuff like that, but no .net bindings.. hmm [12:19] Mikeeee: Yeah I could just send json [12:19] Mikeeee: I'll do that. [12:19] Anti-X: if both apps know each other, that is [12:20] Anti-X: so to speak [12:20] micheil: Mikeeee: I'd say, if you don't need to do RPC, then just open a network socket, and send data [12:20] Mikeeee: They're best buddies. [12:20] Anti-X: cool. [12:20] micheil: Mikeeee: although, depending on the data, it may be wise not to use JSON [12:20] Mikeeee: It's nothing that needs hiding [12:20] micheil: like, the overhead of JSON may be too high [12:20] micheil: depends how much data [12:21] micheil: the other options would be to use a worker queue (like resque does) [12:21] micheil: (resque currently does not have a node implementation.) [12:21] Mikeeee: Hmm [12:21] Mikeeee: I think i'll go with json [12:21] Mikeeee: or bson [12:21] micheil: okay [12:21] micheil: bson would have higher overhead then JSON [12:22] erobit has joined the channel [12:22] micheil: once again, data formats depend on the application. [12:22] Anti-X: well let's ask [12:22] Anti-X: what kind of data is it? [12:22] micheil: like, is it very large amounts of small data? [12:22] micheil: or is it just an occasional message [12:23] AAA_awright: Are there any collaborative rich text editors? [12:23] Anti-X: no. never. [12:23] micheil: AAA_awright: you could try bespin. [12:23] micheil: or cloud IDE [12:23] Anti-X: google wave [12:23] AAA_awright: I don't think that's a rich text editor, just code [12:23] stride: google docs? [12:23] AAA_awright: I am looking at that though, I know they are moving to Node.js which is awesome [12:24] AAA_awright: The Google Wave rich text editor is written in... [12:24] AAA_awright: wait for it... [12:24] AAA_awright: Java [12:24] Anti-X: totally [12:24] AAA_awright: It's completely useless for Node.js use [12:24] Blink7 has joined the channel [12:24] micheil: boom. http://static.brandedcode.com/node-doc/ [12:25] micheil: http://github.com/miksago/node/commits/doc-split [12:25] digitalspaghetti: micheil: now output it to .mobi format and i'll <3 you forever [12:25] micheil: .mobi? [12:25] digitalspaghetti: ebook format, for kindle/sony reader, etc [12:26] digitalspaghetti: basically just XML for ebook readers [12:26] micheil: :/ [12:26] Mikeeee: Sorry, had to turn away from my desk for a second [12:26] Mikeeee: it's lots of small packets of data [12:26] micheil: it wouldn't be terrible hard to do, but it'd take more work and is out of the scope of this patch / changeset [12:27] Mikeeee: well, by small I mean something like... { "process" : "processname", "x":10, "y":100, time:123466344} [12:27] Mikeeee: kinda thing. nothing huge. [12:27] micheil: Mikeeee: okay, in which case, using JSON or BSON may go against you, strings may be better [12:27] matt_c: .mobi is really more Palm Database Format and less XML :) [12:27] Anti-X: digitalspaghetti you need to fill out a 27b-6! [12:27] Crshman_ has joined the channel [12:27] micheil: Mikeeee: something like csv would be faster [12:27] bentruyman has joined the channel [12:27] Mikeeee: yeah, but the keys I'm sending will vary a lot [12:27] micheil: ["processname", 10, 100, 123455322].join(",") [12:27] Mikeeee: (the x, y..etc.. could be "health", "mana",..etc.) [12:27] micheil: okay, in which case you'd have to use json. [12:28] Mikeeee: ok :) [12:28] micheil: or similar [12:28] sveimac has joined the channel [12:28] micheil: if the data is consistent, for instance, mouse movements, then you would get a great boost out of using csv [12:28] Br|ce has joined the channel [12:29] Utkarsh has joined the channel [12:29] stride: why would json be any better if the keys change? [12:30] jdalton has joined the channel [12:30] micheil: stride: note the "or similar" [12:30] jdalton has left the channel [12:31] micheil: if the keys change a lot, then it'd be difficult to use csv, as the data is doesn't have a schema [12:31] AAA_awright: I'm having a hard time imagining no one has bothered to port the GWT rich text editor for Node [12:31] micheil: AAA_awright: feel free to. [12:32] AAA_awright: Way out of my specialty [12:32] AAA_awright: I don't need it that bad that I can abandon the other Node.js things I'm working on [12:34] V1 has joined the channel [12:38] kuatto has joined the channel [12:38] micheil: Woooo! I've solved the big problem I had with how-to run the tests for node-websocket-server [12:38] micheil: and the testing style! [12:38] micheil: felixge rocks! [12:39] Mikeeee: ACTION wonders if it's worth getting his javascript color library working in node.. [12:39] SubStack: tests! [12:39] Mikeeee: ACTION stops wondering [12:39] Ari-Ugwu has joined the channel [12:39] SubStack: tests are great when they're easy to write [12:40] Mikeeee: http://www.mikeefranklin.co.uk/tests/test/ <-- tests [12:40] Mikeeee: 221 failed :( [12:40] Mikeeee: I should probably improve that one day. [12:42] charlenopires has joined the channel [12:43] Mikeeee: are the node mysql modules any good? [12:43] micheil: node-mysql [12:43] micheil: by felixge [12:43] Mikeeee: ok [12:43] micheil: they use it in production at transload.it [12:44] shripadk: dunno... i moved from mysql/postgresql long back... (during my days with rails) now i use couchdb and riak... so i cannot say anything about node-mysql bindings... [12:44] shripadk: :) [12:44] shripadk: haven't tested it myself... [12:44] shripadk: but it should be good... [12:45] shripadk: ooppss wrong channel [12:45] shripadk: haha [12:45] shripadk: sry [12:45] shripadk: :P [12:45] Mikeeee: .NET app talking to node.js, storing stuff in mysql, with a symfony php app using that database. hmm. :) [12:45] Mikeeee: wonder if I can throw any other languages in [12:46] derencius has joined the channel [12:47] Br|ce has joined the channel [12:47] SubStack: rpc! [12:49] micheil: Mikeeee: well, through symphony you probably have xml as well and xslt [12:49] Mikeeee: xslt makes me want to vomit [12:49] Mikeeee: used xslt on disney.co.uk [12:49] Mikeeee: and it was a nightmare [12:50] Lorentz: Throw in straight-up C in there [12:50] Mikeeee: Ok, so this app.. It monitors memory from different processes running (games). And sends certain stats back to my web server whenever a stat changes. So, it could be PvP ranking, for example. [12:50] Mikeeee: trying to estimate the amount of data. It could potentially be huge, right? [12:51] Mikeeee: even with a small number of users [12:51] Mikeeee: Maybe I need to rethink this.. [12:52] AAA_awright: Mikeeee: It's all floating point rounding errors... [12:52] AAA_awright: Does that test support number comparison? [12:52] Mikeeee: AAA_awright: Yeeah I know. That's why im nervously ignoring them for now [12:52] ysynopsis has joined the channel [12:52] Mikeeee: I dont think so. I might make my own function to do it instead [12:53] AAA_awright: 0.0001 error... com'on [12:53] Mikeeee: :) [12:53] Oliv_Oil has joined the channel [12:54] vastak has joined the channel [12:54] Mikeeee: A users stat changes every, say, 1 minute on average. he plays for an average of 25 hours a week. I have, say, 30 regular users.. [12:54] Mikeeee: hmm [12:54] jedschmidt has joined the channel [12:54] Mikeeee: 45000 records per week [12:54] Mikeeee: could get out of hand :/ [12:56] micheil: Mikeeee: I'd seriously recommend looking at something like bigtable or riak or redis for that data.. [12:56] Mikeeee: Ok [12:56] Mikeeee: http://enterprise-js.com/ [12:58] SubStack: node -e would be handy [12:58] micheil: SubStack: node -e == node --eval [12:58] SubStack: orly [12:58] micheil: 0.3.X [12:59] micheil: getwiththetimesdude. [12:59] micheil: :P [12:59] SubStack: ah still running 0.2.0 here [12:59] SubStack: ancient [12:59] micheil: not at all [12:59] micheil: 0.2.4 is latest stable [12:59] micheil: 0.3.X is unstable [13:00] ntelford has joined the channel [13:03] jedschmidt: hey, can anyone take a look at this and tell me why it doesn't work on webkit? [13:03] jedschmidt: http://gist.github.com/651218 [13:04] jedschmidt: it's serving a javascript file while also serving an html file. [13:04] pablort has joined the channel [13:05] ysynopsis has joined the channel [13:05] CrabDude has joined the channel [13:06] sideshowcoder has joined the channel [13:06] SubStack: jesusabdullah: Uncaught SyntaxError: Unexpected token < [13:06] SubStack: er [13:06] SubStack: *jedschmidt [13:07] jedschmidt: SubStack: did you try it on firefox? [13:07] SubStack: chrome [13:08] vastak: res.end( "" ) [13:08] SubStack: jedschmidt: it only ever serves up html [13:08] vastak: where do you open the html tag? [13:08] jedschmidt: vastak: line 32 [13:08] SubStack: seems like a confusing way to structure routes [13:09] zentooo has joined the channel [13:09] vastak: jedschmidt, url gets evaluated first, then the function that is using it [13:09] zentooo has joined the channel [13:09] aubergine has joined the channel [13:10] SubStack: there aren't any urls to match the javascript part of it [13:10] jedschmidt: SubStack: it's a proof of concept. the idea is that the server serves html, which contains a script tag, and then waits for the script to be fetched. if it's not fetched within a second, it writes html. if it is fetched, it writes javascript. [13:11] jedschmidt: SubStack: the urls that match the javascript are created on line 12 [13:12] jtsnow has joined the channel [13:12] SubStack: ah [13:13] SubStack: jedschmidt: but the url population happens after the check at line 8 [13:13] Sembiance: So I follow Node.js based projects, and remember seeing several elegant REST type frameworks. However now that I actually need one, I don't remember the names of any of them. I tried searching the NPM site for 'REST' but didn't really get many results. [13:13] Sembiance: Anyone have any good REST libraries they like? [13:14] jedschmidt: SubStack: that's because it's looking for a previous request. [13:15] shripadk: Sembiance: express/connect, geddy, grasshopper... [13:15] jedschmidt: SubStack: it works on firefox, but there's something about webkit that's preventing the files from being evaluated in the right order. [13:16] SubStack: looks like a race condition [13:16] SubStack: chrome is still in the middle of processing the html output when it makes the script request [13:17] JohnDav has joined the channel [13:17] Sembiance: shripadk: thanks :) [13:18] Anti-X has joined the channel [13:19] jedschmidt: SubStack: is there anyway i can abort the HTML file when the script is called? [13:19] jedschmidt: moving the script response to before the html response doesn't seem to help. [13:20] shreekavi has joined the channel [13:20] erobit has joined the channel [13:21] SubStack: jedschmidt: I would restructure it so that when the user hits the index page the id goes into a scripts hash [13:21] aubergine has joined the channel [13:21] jedschmidt: SubStack: how is that different than what i'm doing here? [13:21] SubStack: oh right [13:21] SubStack: well you could have an interval that checks the queue but that seems wrong too [13:23] okuryu has joined the channel [13:23] jedschmidt: hmmm. [13:24] aubergine has joined the channel [13:24] jedschmidt: the problem is both the setTimeout and the urls[ url ] functions are being called. [13:25] SubStack: why not if (url.match(/^\/vapor\.js/)) ? [13:26] jedschmidt: SubStack: because i still need to find the right function. it's a closure that contains a reference to the original HTML response. [13:27] SubStack: oh wait, timeout is local to the request [13:27] SubStack: it doesn't persist [13:28] SubStack: oh but it's closed over the previous request [13:28] jedschmidt: SubStack: right. [13:29] jedschmidt: SubStack: the fact that it works in firefox makes me think it's a browser connection ordering issue. i just don't know how to work around that. [13:30] aubergine_ has joined the channel [13:31] TomsB has joined the channel [13:31] bradleymeck has joined the channel [13:32] aubergine has joined the channel [13:32] Twelve-60 has joined the channel [13:33] path[l] has joined the channel [13:33] davidsklar has joined the channel [13:34] ben_alman has joined the channel [13:34] oal has joined the channel [13:34] MikhX has joined the channel [13:36] boaz has joined the channel [13:36] aubergine_ has joined the channel [13:38] SamNZ has joined the channel [13:40] SamNZ has left the channel [13:40] danielrmz has joined the channel [13:40] margle has joined the channel [13:43] trotter has joined the channel [13:46] rpflo has joined the channel [13:47] Ori_P has joined the channel [13:47] mbrochh has joined the channel [13:47] mbrochh has joined the channel [13:53] bentruyman has joined the channel [13:56] jacobolus has joined the channel [13:57] mbrochh has joined the channel [13:57] mbrochh has joined the channel [13:58] jedschmidt has joined the channel [13:58] mikew3c_ has joined the channel [13:59] stepheneb has joined the channel [14:02] dylang has joined the channel [14:03] bradleymeck has joined the channel [14:04] EyePulp has joined the channel [14:05] nerdEd has joined the channel [14:06] MrNibbles: Go to goole maps > Click directions > Enter from Japan to China > look at number 43 of the itinerary [14:06] MrNibbles: :D [14:08] Mikeeee: hahaha [14:08] matt_c has joined the channel [14:11] sivy has joined the channel [14:12] Anti-X: lol! [14:13] aubergine has joined the channel [14:14] MrNibblesFreenod has joined the channel [14:14] mbrochh_ has joined the channel [14:14] nerdEd has joined the channel [14:14] ctp_ has joined the channel [14:15] mrjjwright has joined the channel [14:15] Anti-X: also: "go left at 県道"... yeah sure ok... that place... totally [14:16] Yuffster_work has joined the channel [14:17] ivanfi has left the channel [14:20] rubyphunk_ has joined the channel [14:21] micheil: hmm, no jamescarr.. [14:21] micheil: who was the other person I was talking cross-emitters with? [14:22] EyePulp: aka emitters in drag [14:22] micheil: EyePulp: not quite [14:22] SubStack: cross emitters eh? [14:22] jedschmidt: angry emitters? [14:22] EyePulp: hrm [14:22] micheil: EyePulp: setup two node processes, and emit events using the eventEmitter style interface between them [14:22] SubStack: micheil: require('dnode/events') ;) [14:22] matt_c: emo emitters? [14:23] EyePulp: something that spews out religious symbols? [14:23] micheil: infact, be able to be called as: xee.setup(httpServer) [14:23] SubStack: you can actually do that using regular emitters but RemoteEmitter just cleans up the callbacks when one side disconnects [14:23] EyePulp: emo emitters ignore their own events. [14:23] micheil: or something, which mutates an existing event emitter to be a cross eventemitter [14:23] matt_c: EyePulp: they also attempt to destroy themselves sometimes. [14:24] EyePulp: the best lawns are all emo grass - they cut themselves. [14:24] SubStack: also DNode(fn).listen(httpServer) ^_^ [14:24] micheil: matt_c: lol. [14:24] EyePulp: matt_c: right on [14:24] micheil: SubStack: yeah, but DNode is like rpc, no? [14:24] SubStack: yes [14:25] SubStack: how would two node processes talk any other way? [14:25] EyePulp: sorry micheil, I haven't had any caffiene this morning - cross emitters sound interesting - I just need to wake up a bit. [14:25] micheil: simple. [14:25] micheil: not by rpc. [14:25] SubStack: note: rpc doesn't have to suck [14:25] SubStack: it just almost always does [14:25] micheil: the idea is that if you have two server's linked via cross emitters, say: [14:25] micheil: server A, server B [14:26] micheil: and server A emits "request", then that emit triggers handlers on both server A and server B [14:26] SubStack: yes you can do that with dnode's RemoteEmitters [14:26] aheckmann has joined the channel [14:26] SubStack: just .attach() the conn object then .subscribe on the remote's callback [14:27] micheil: SubStack: example? [14:27] SubStack: then you can .on() on the remote and the local emitter [14:28] Me1000 has joined the channel [14:28] SubStack: here's one: http://github.com/substack/dnode/blob/master/examples/saturate/ [14:28] SubStack: uses the browser version of dnode but the interface is the same [14:28] yhahn has joined the channel [14:28] SubStack: it doesn't do anything on the server side with the emitter but you can do em.on(), em.emit(), etc [14:29] micheil: SubStack: I dunno, it just looks weird in dnode [14:29] micheil: I'm also thinking it'd be cool to have it as a auto-clustering thing [14:30] SubStack: also building one of those at http://github.com/substack/node-dmesh [14:30] micheil: so, like, you add a new node process, it automatically pings another process (given an ip) and gets back the other peers [14:30] SubStack: note: not complete yet [14:30] micheil: but for xee, it should be as small as possible. [14:30] micheil: (like, similar footprint to ee) [14:31] willwhite has joined the channel [14:31] micheil: so, super small stuff [14:31] aconbere has joined the channel [14:31] micheil: sort of like what my node-eventstream is [14:31] SubStack: so it just does peering? [14:32] micheil: it cross emits via websockets server->client and client -> server [14:32] micheil: yeah, pretty much you just give it a host to connect to and then it'll listen for events from that host. [14:32] SubStack: I'm aiming for a more role-based approach [14:33] SubStack: so nodes connect to a manager process with a role that they fulfill [14:33] micheil: like, var emitter = new xee.EventEmitter(port, host); [14:33] micheil: xee.EventEmitter inherits from events.EventEmitter [14:33] micheil: no manager [14:33] SubStack: then nodes request available roles and there's a wait queue [14:34] micheil: so, pretty much so you can link two node processes together by events [14:34] SubStack: so updates get broadcast to everything, multicast? [14:34] micheil: yeah, multicast would be the structure [14:34] micheil: but it also emits on the originating xee [14:34] SubStack: hmmm that would make deployment simpler [14:35] micheil: so, both server A and server B would get the event triggered if server A emits [14:35] micheil: it would make deployment easier [14:36] SubStack: that's how remote emitters work [14:36] SubStack: you just have to make a few calls to guard against the connection dropping [14:36] micheil: yeah, but this would be without the extra, it'd be a pure binary protocol between emitters [14:36] ceej has joined the channel [14:36] micheil: and there may be some ping/pong stuff to keep up with which peers are available [14:37] micheil: I'm thinking very similar to the redis clustering stuff [14:37] micheil: http://redis.io/presentation/Redis_Cluster.pdf [14:37] dshaw has joined the channel [14:37] benburkert has joined the channel [14:38] stride: isn't the small json overhead dnode has irrelevant if you have to pass event arguments anyway? [14:38] micheil: stride: well, there is a slight reason for the binary protocol. [14:38] SubStack: stride: pretty much [14:39] SubStack: I push down huge binary blobs with it [14:39] SubStack: framebuffer updates [14:39] SubStack: it's been plenty fast so far [14:39] SubStack: also dnode already has ping/pong stuff :p [14:39] micheil: also, I don't really need to be sending from xee to clients [14:39] micheil: it's pure node process to node process [14:40] jmcantrell has joined the channel [14:40] micheil: like, dnode's cool, but I think I can do it better. [14:41] gf3 has joined the channel [14:42] femtoo has joined the channel [14:43] Anti-X: anything you can do, i can do better. i can do anything. better than you. [14:43] Anti-X: ACTION whistles [14:44] micheil: Anti-X: naturally [14:45] Anti-X: i spy with my little eye, north korea on google maps.. with no names.. at least put names on the cities! it's not like those are secret! [14:46] case__: Anti-X, they probably have been re-named, and the new names are secrets :) [14:46] o_o has joined the channel [14:46] ehaas has joined the channel [14:47] chapel: o_o << great love the nick [14:47] chapel: lol [14:48] karboh has joined the channel [14:48] jpld has joined the channel [14:49] tapwater has joined the channel [14:49] mikew3c has joined the channel [14:50] rauchg_ has joined the channel [14:52] micheil: rauchg_: morning' [14:52] cferris has joined the channel [14:52] jimma_ has joined the channel [14:52] jimma_: hi all [14:52] chapel: hola [14:53] rauchg_: hi micheil [14:54] micheil: rauchg_: I'm after feedback on: http://static.brandedcode.com/node-doc/ [14:54] micheil: rauchg_: if you've got a few minutes, I'd appreciate it. :) [14:56] rauchg_: love it [14:56] rauchg_: love hte code blocks [14:57] rauchg_: can we add commenting, make it a wiki [14:57] chapel: yeah looks great imo [14:57] micheil: I can't do commenting. [14:57] rauchg_: like jquery docs [14:57] chapel: well thats the doc output he has been working on [14:57] micheil: and it's not a wiki [14:57] chapel: :P [14:57] chapel: its for when you install you can build the docs [14:57] micheil: it's a rework of the flat documentation node has [14:57] chapel: right micheil ? [14:57] rauchg_: oh this is the markdown rendering [14:57] rauchg_: i thought it was a new approach [14:57] micheil: chapel: yeah [14:57] rauchg_: k [14:57] rauchg_: this is much better imho [14:57] micheil: rauchg_: this should replace the current documentation [14:58] chapel: but I dont see how would would be hard to take the content and make a wiki with it :P [14:58] bradleymeck has joined the channel [14:58] micheil: I'm thinking if I added something like the commenting it, it'd just open an issue on github, tag it with docs and yeah [14:58] chapel: why not use github for doc discussion? [14:59] micheil: well, all the content is on multiple pages, and it's all in markdown and somewhat follows the lines of gollum, so it could be put on github's wiki [14:59] chapel: since its a wiki [14:59] chapel: yeah thats what I was thinking :) [14:59] Ori_P has joined the channel [14:59] micheil: but the documentation shouldn't be a wiki at this stage [14:59] chapel: not complete enough? [14:59] micheil: as it's also got to be able to be accessed locally. [14:59] chapel: or what? [14:59] Anti-X has joined the channel [14:59] chapel: well I think the idea would be to have the wiki one for additions, fixing as needed, updating [14:59] micheil: and the current way of github's gollum would mean the documentation would be a different branch [15:00] chapel: and then it would get ported into the local doc code you are working on [15:00] micheil: any changes go through patches. [15:00] chapel: so the wiki would be more like the master code branch [15:00] chapel: always being updated [15:00] chapel: but patched in as needed [15:00] micheil: if github supported something were I could specify a branch & directory to look within for the wiki, then I'd move it completely to gollum style, (hint hint technoweenie ) [15:01] micheil: chapel: I would see that the two would become disjointed, so that's a -1 there. [15:01] tj has joined the channel [15:01] yumike has joined the channel [15:01] micheil: (I wonder when/if node's going to go from being a repo on ry/node to being node/node [15:02] micheil: (node being a group / organisation account) [15:02] leeeb has joined the channel [15:02] micheil: morning tjholowaychuk [15:02] chapel: idk, have you asked ryah_ ? [15:02] Sembiance: woot! I'm working on ditching apache+php+postgresql in exchange for node.js+connect+redis :) [15:02] micheil: not yet. It always slips mind when speaking with him. [15:02] tjholowaychuk: micheil: hey man, morning. brb gotta grab coffee [15:02] micheil: Sembiance: smooth. [15:02] micheil: tjholowaychuk: haha, fair enough dude. [15:03] Sembiance: except I'll be using nginx to serve images, CSS, HTML. The node.js+connect+redis will just be for all the AJAX activity that sends back and forth actual data [15:03] micheil: Sembiance: I'd agree on that setup. [15:04] tjholowaychuk: Sembiance: good plan stan [15:04] chapel: use nginx for what its good at [15:04] micheil: it'd be pretty cool if someone offered a service where you pay say X amount per download or something and then they mirror a directory on your server automatically, and allow you to cname them, and they just do file distribution [15:05] chapel: node.js can make a very capable static file server, but why waste cpu cycles on it when you could devote it to something it excels at :) [15:05] micheil: because /etc/hosts doesn't allow things to channel via different ports [15:05] halfhalo: shits n giggles? [15:05] micheil: seriously, if that was possible, it'd be awesome [15:05] micheil: you could have like static.site.com -> localhost:8080 (nginx) [15:05] chapel: umm akai and the like [15:05] micheil: site.com -> localhost:80 [15:06] c4milo: tjholowaychuk: !!! [15:06] noahcampbell has joined the channel [15:06] tjholowaychuk: !!! [15:06] johngbrooks has joined the channel [15:06] tjholowaychuk: i watched that facebook movie last night [15:06] chapel: $$$ [15:06] micheil: tjholowaychuk: isitgood? [15:06] tjholowaychuk: hearing the words "php" and "apache" in a movie, makes me laugh [15:06] chapel: lol [15:06] Sembiance: micheil, tjholowaychuk: what is extra exciting is that this is a production site. node.js+connect will be handling over 2 million requests a day :) [15:06] chapel: I enjoyed the movie [15:06] tjholowaychuk: and makes my gf rage [15:06] tjholowaychuk: haha [15:06] micheil: tjholowaychuk: ha, cool. [15:06] Sembiance: I'm gonna have to test it, like, a lot before I push it live ;) [15:06] micheil: Sembiance: very nice!@ [15:06] tjholowaychuk: Sembiance: very nice :) [15:06] tjholowaychuk: woah [15:07] chapel: there should be a movie on ryah_ and his hacking node.js together and creating a phenomenon that is happening right now! [15:07] micheil: chapel: give it a few years, and probably. [15:07] chapel: :) [15:07] micheil: like, I wouldn't put it past someone to do it. [15:07] hsuh has joined the channel [15:07] tjholowaychuk: ya i give them props, probably the first site to have its own movie [15:07] chapel: doesn't have enough drama for hollywood to pick it up :) [15:08] tjholowaychuk: wheres my twitter movie [15:09] micheil: tjholowaychuk: it'll probably be the next in the sequel,.. :D [15:09] chapel: twitter movie: first half of it is them freaking out in the server room for days because it is always down [15:09] halfhalo: no, the sequel is the fall of myspace [15:09] halfhalo: twitter is the prequel [15:09] micheil: facebook: The fall of myspace. [15:10] tjholowaychuk: "the fail whale" [15:10] micheil: The fall of valkery? [15:10] chapel: honestly there is meat of a story for myspace, since I have heard that the guys that created it were spammers and used it to spam people at first [15:10] micheil: (or whatever it was) [15:10] davidwalsh has joined the channel [15:11] daniellindsley has joined the channel [15:13] clynx has joined the channel [15:13] clynx: hey. [15:13] sonnym has joined the channel [15:14] clynx: I've a question about the javascript support in node.js [15:14] mikew3c has joined the channel [15:14] margle has joined the channel [15:14] tjholowaychuk: clynx: whats the q [15:15] gkatsev: `ask [15:15] clynx: are there any getter or setter methods? I assume this __defineGetter__ would work, but that's just not right for my idea [15:15] gkatsev: guess v8bot doesn't have that. [15:15] tjholowaychuk: clynx: yeah there are 3-ish ways to define them [15:16] tjholowaychuk: __defineGetter__. Object.defineProperty(obj, 'prop', { get: function(){}}). and { get foo(){} } [15:16] tjholowaychuk: clynx: ^^ [15:16] jedschmidt has joined the channel [15:16] gkatsev: tjholowaychuk: is this standard or part of v8 or part of node? [15:16] micheil: it's ES5 [15:17] clynx: but with all of them I have to know the properties in advance, which is quite … (almost) useless. [15:17] micheil: there isn't a catch all getter / setter, no. [15:17] tjholowaychuk: gkatsev: standard [15:17] clynx: I guess that's what I'm looking for. [15:17] micheil: you could proxy it through function calls though [15:17] gkatsev: cool, thanks [15:17] clynx: micheil: how? [15:17] tjholowaychuk: __defineGetter__ and that jazz is deprecated, defineProperty is the "better" way [15:18] micheil: store.get("key"), store.set("key", value) [15:18] clynx: yeah, that's kind of what I want. still I would like store.key to use get ;) [15:19] micheil: well, store.set("key", value) [15:19] micheil: could in theory defineProperty on store [15:19] pTa_armi has joined the channel [15:19] micheil: but it'd still error if you tried to call an undefined key [15:19] micheil: that's what the function call protects you from [15:20] clynx: and there is no method for "this object does not respond to this key/method", right? [15:20] micheil: no [15:20] noahcampbell has joined the channel [15:20] softdrink has joined the channel [15:20] micheil: mozilla did implement __noSuchMethod__ in rhino and tracemonkey, but it's non-standard and not in v8 [15:21] _CrabDude has joined the channel [15:21] clynx: In general such things would need to be implemented in v8 not in node.js, right? [15:21] micheil: yes [15:21] aurynn: Yes. [15:21] aurynn: and nosuchmethod can be perilous at best. [15:22] micheil: and there is a patch to add __noSuchMethod__ to v8, but they won't until it's either standard or until JSC implements it [15:22] jetienne has joined the channel [15:22] clynx: sorry, JSC? [15:22] micheil: I think ES-harmony proxies change this. [15:22] aurynn: javascriptcore [15:22] micheil: JavaScript Core [15:22] clynx: ah, ok. [15:22] micheil: the safari js engine [15:23] micheil: see http://wiki.ecmascript.org/doku.php?id=harmony:proxies [15:23] micheil: for ES-harmony proxies. [15:23] igorgue has joined the channel [15:23] clynx has joined the channel [15:24] micheil: can't wait until ES-harmony is written into a spec and released, some of the stuff looks really really good [15:24] clynx: thanks for the infos. [15:24] micheil: (other stuff looks kinda crap, but they have their reasons for it) [15:24] Yuffster has joined the channel [15:25] Sembiance: so does anyone have any experience running node.js in production? things I should watch out for? I plan on using fugue (http://github.com/pgte/fugue) with connect [15:26] aubergine has joined the channel [15:27] micheil: like, ES-harmony isolation/modulation doesn't make sense for node, unless we abandon the commonjs module pattern [15:27] hornbeck has joined the channel [15:27] faust45 has joined the channel [15:28] zentooo has joined the channel [15:30] clynx: hm. the harmony proxies seems to solve my requirements. [15:30] clynx: is there any timeframe on implementing that? ;) [15:31] tjholowaychuk: clynx: i think bradleymeck has, but its c++ of course [15:31] tjholowaychuk: he has something similar if not the same [15:32] clynx: you are talking about http://github.com/bmeck/node-overload, right? [15:32] micheil: clynx: it won't be soon. [15:34] rictic has joined the channel [15:35] Crshman_ has joined the channel [15:37] pablort has joined the channel [15:37] mbrochh has joined the channel [15:38] zentooo has joined the channel [15:38] boaz has joined the channel [15:39] clynx: anyone related to node-overload here? [15:39] clynx: it does not build for me: http://gist.github.com/651614 [15:39] davidwalsh has joined the channel [15:40] Gruni has joined the channel [15:44] digitalspaghetti: tjholowaychuk: (tanepiper here) - I'll look to debug them soon, but basically I;ve been trying since yesterday, it;s all been very weird - but i have a lot of client side stuff to finish, and my old code did work [15:44] digitalspaghetti: it's just fugly [15:44] gf3: stephank: thanks :( [15:45] tjholowaychuk: digitalspaghetti: ah :) [15:45] digitalspaghetti: but the basics of it was, i have a getView middleware I'd pass to and do couchdb stuff, and while the req 404'ed on the client side, the database req did happen [15:46] digitalspaghetti: but for some reason, next never got called. but then if I click on the combobox it would do teh request again and it worked fine [15:47] Uierth has joined the channel [15:48] dmcquay has joined the channel [15:48] c4milo has left the channel [15:50] micheil: bradleymeck: see clynx's message. [15:50] clynx: yeah, please! ;) [15:51] sschuermann has joined the channel [15:51] zentooo has joined the channel [15:53] deepthawtz has joined the channel [15:55] devinus_ has joined the channel [15:55] bradleymeck: mmmm [15:56] bradleymeck: clynx, seems v8 changed its api slightly, give minute [15:56] clynx: no problem. take your time ;) [15:57] gerred has joined the channel [15:57] hellp has joined the channel [15:57] elijah-mbp has joined the channel [15:57] gerred has joined the channel [15:57] bradleymeck: ah, just swapped an Integer and Boolean, mmmm wonder if i can detect that... probably not :/ ok, putting up a patch once i change that [15:58] cardona507 has joined the channel [15:58] micheil: ryah_: ping? [15:59] micheil: ryah_: I'm wanting to talk some documentation + repo management stuff [16:00] dicon has joined the channel [16:00] matt_c has joined the channel [16:01] matt_c has joined the channel [16:06] jarfhy has joined the channel [16:06] cferris has joined the channel [16:07] sebastiandeutsch has joined the channel [16:09] aconbere has joined the channel [16:10] sebastiandeutsch: Hi guys, anyone experienced with mongoose? Is it good? [16:10] bradleymeck: clynx, updated, tests pass, let me know if you find any issues since that [16:10] clynx: 'build' finished successfully (0.678s) [16:10] clynx: thank you. [16:11] tjholowaychuk: sebastiandeutsch: we are releasing a new version soonish [16:11] tjholowaychuk: so watch for that [16:11] Sembiance: darn, redis-node-client hasn't been updated in months... [16:12] saschagehlich: Sembiance: true... but did you have problems with it lately? [16:12] rpflo has joined the channel [16:12] bradleymeck: ACTION shakes fist at the v8 gods for a way to get property accessor info [16:13] sebastiandeutsch: tjholowaychuk: I have some strange behaviour on this issue: http://github.com/LearnBoost/mongoose/issues#issue/71 Just wanted to clear if I'm doing something wrong (which could probably be, I node.js novice) [16:13] micheil: Sembiance: try tim_smart's node_redis [16:13] tjholowaychuk: sebastiandeutsch: i dont know much about the previous version [16:13] tjholowaychuk: just helping on the new one sorry :s [16:13] micheil: node-redis from mjr [16:14] Sembiance: saschagehlich: had some problems a while ago, but I submitted a github issue and a patch. Just noticed that it's been forked a lot and some of those forks are actively updating it to work with new node versions and new redis versions (http://github.com/fictorial/redis-node-client/network/members) [16:14] sebastiandeutsch: tjholowaychuk: Is somewhere available? Any preview branch that I can test? [16:14] tjholowaychuk: sebastiandeutsch: 1.0 is thebranch [16:16] chapel: micheil << I thought Tim_Smart's was node-redis and mjr_'s was node_redis? [16:16] JohnDav: rauchg_: uptime so far: 13 hours [16:16] micheil: chapel: what ever.. :P [16:16] micheil: rauchg_: any news on socket.io / nws integration? [16:16] chapel: Interesting, I have a script that has been running for a couple days now, its memory usage has gone down over time [16:17] chapel: started at 19.5MB not its at 18.1MB [16:17] chapel: this is osx [16:17] bradleymeck: could be a large number of reasons [16:18] sebastiandeutsch: tjholowaychuk: thx, will digg into that branch [16:18] chapel: all it does is every minute, hits up a website, checks something, outputs to console if not changed, if it has, it sends a msg to twitter [16:18] chapel: :) [16:18] chapel: dead simple [16:18] rubyphunk_ has joined the channel [16:19] matjas has joined the channel [16:19] rauchg_: JohnDav: not too shabby [16:20] rauchg_: how many hits [16:20] rauchg_: micheil: almost there [16:20] micheil: rauchg_: any commits? [16:20] JohnDav: rauchg_: current connected users: 700 [16:20] rauchg_: not yet [16:20] micheil: (like, could you push to a branch so I could take a preview?) [16:20] rauchg_: JohnDav: not too shabby [16:20] rauchg_: :D [16:20] JohnDav: rauchg_: i think its something else, not what we are suspecting [16:20] JohnDav: rauchg_: i noticed, once node is started stable... it doesnt crash for hours [16:21] JohnDav: but when its started unstable... it crashes within a few mins [16:21] JohnDav: weird [16:21] micheil: JohnDav: unstable is? [16:21] chapel: JohnDav << link to your node site? [16:21] kriszyp_ has joined the channel [16:21] JohnDav: micheil: process crashes with an assertion [16:21] rauchg_: JohnDav: what do you mean when it starts unstable [16:21] rauchg_: micheil: there's a weird problem with timeouts [16:21] JohnDav: rauchg_: i mean, it happens within the few seconds or minutes of starting the server, when it has to [16:22] rauchg_: i see [16:22] micheil: rauchg_: hmm.. [16:22] JohnDav: but if it continues to work for long, then its stable for hours [16:22] micheil: this may be relating to the recent net.cc and net.js changes. [16:22] micheil: JohnDav: could you test on ry/node:master? [16:23] rauchg_: micheil: ryah_ said those shouldn't affect this [16:23] JohnDav: yeah [16:23] JohnDav: ryah_ said those changes wouldnt affect this [16:23] JohnDav: and secondly, im not able to install master on my ubuntu [16:23] JohnDav: it gets stuck on make install [16:23] micheil: JohnDav: it shouldn't. [16:23] JohnDav: it does, other people were having the same problem [16:23] micheil: :/ [16:23] JohnDav: when its building the doc [16:23] JohnDav: it gets stuck [16:24] jacobolus has joined the channel [16:24] micheil: make install should work [16:25] micheil: or, edit the makefile [16:25] micheil: line 278, remove doc [16:25] JohnDav: k ill do that [16:26] benburkert has joined the channel [16:26] micheil: it may not like trying to install the man page [16:26] bradleymeck has joined the channel [16:26] bartt has joined the channel [16:27] JohnDav: yeah [16:27] jacobolu_ has joined the channel [16:28] micheil: JohnDav: did that solve the install issue? [16:29] JohnDav: micheil: im checking, one sec [16:29] micheil: k [16:30] Aria has joined the channel [16:31] JohnDav: micheil: line 278 is something already commented [16:31] micheil: should currently say: [16:31] micheil: install: all doc [16:31] femtoo has joined the channel [16:31] micheil: replace that line with: [16:31] micheil: install: all [16:32] JohnDav: oh ok line 314 [16:32] JohnDav: install: cannot stat `doc/node.1': No such file or directory make: *** [install] Error 1 [16:32] mikew3c has joined the channel [16:33] JohnDav: should i remove this too: [16:33] JohnDav: ? [16:33] JohnDav: $(INSTALL) doc/node.1 '$(PREFIX)/share/man/man1/' [16:33] micheil: oh [16:33] micheil: and comment out.. [16:33] disq has joined the channel [16:33] disq has joined the channel [16:33] micheil: line 321 [16:33] Anti-X: did you remember to grind up the left leg of a chicken and sprinkle it on a tiger striped cat in the cemetary at midnight? [16:33] PyroPeter has joined the channel [16:34] JohnDav: ok worked [16:34] JohnDav: ubuntu@ip-10-245-119-133:~$ sudo node -v v0.3.1-pre [16:34] micheil: sweet. [16:34] springmeyer has joined the channel [16:34] micheil: so, do you know another ubuntu user? [16:35] micheil: if so, could you see if they can reproduce & patch the same way on their machine? [16:35] JohnDav: yes there was a user yesterday Tim_Smarts [16:35] JohnDav: he had the same issue [16:35] JohnDav: on ubuntu [16:35] micheil: (that would tell us for sure that installing man-pages that was is wrong.) [16:35] micheil: okay [16:36] Aria: man-pages? To get, say, groff? [16:36] bentruyman has joined the channel [16:36] sebastiandeutsch: tjholowaychuk: what does mongoose.documentation, if I leave it out the app hangs (probably cause something is in the event loop). I though db.close might be sufficient. [16:36] robinduckett has joined the channel [16:36] robinduckett: afternoon slackers [16:36] sprout has joined the channel [16:36] micheil: Aria: I'm unfamiliar with install/make tools to be honest [16:37] Anti-X: it's not afternoon, 'tis evening now. [16:37] Aria: I came in after this started, but it sounds like someone's missing the tool that can actually make the docs -- not sure how much Ronnjs uses the standard manpage tools though. [16:37] Aria: I've not looked. [16:38] robinduckett: someone was complaining about ronn yesterday [16:38] micheil: Aria: for some reason something in there hangs on the manpage / docs. [16:38] Aria: Hm. Hangs, eh? [16:38] cagdas has joined the channel [16:38] micheil: JohnDav: could you add in the `doc` to that line 314? [16:38] Aria: No error? [16:38] micheil: Aria: on ubuntu [16:38] Aria: Hm. [16:38] Aria: Which ubuntu edition? [16:38] Aria: I've a VM around here somewhere... [16:38] micheil: JohnDav: ^^ [16:39] softdrink has joined the channel [16:39] JohnDav: Ubuntu 10.04 LTS [16:39] Aria: Hm. Okay. I've got 10.10, but I'll try there. [16:40] micheil: JohnDav: yeah, try making line 314 read: install: all doc [16:40] micheil: JohnDav: (that'll narrow the issue) [16:41] Aria: The line in the install section is what causes node.1 missing, can't be copied. [16:41] fbits has joined the channel [16:41] Aria: The doc rule, the install: all doc being what triggers it, is what'd have the hang in it [16:41] Aria: (install depends on the 'all' and 'doc' targets) [16:41] micheil: Aria: yeah [16:42] micheil: but, it may be hanging at a missing file in the line 321 [16:42] Aria: I'll look. A mere missing file shouldn't cause a hang though [16:43] Anti-X: http://www.adesignaward.com/competitions/custom/Language-Icon-Graphic-Design-Competition.html [16:43] micheil: anyway, hopefully I'll have a patch to that section soon. [16:43] nefD: http://bit.ly/2FQm64 - ☭ In Soviet Russia, bomb must look like manhood! ☭ [16:43] Aria: And which node are you compiling, JohnDav ? [16:44] micheil: HEAD [16:44] micheil: Aria: ry/node:master [16:44] Aria: Aright [16:44] micheil: JohnDav: ping? [16:44] bpot has joined the channel [16:44] JohnDav: Aria: the latest one [16:44] JohnDav: from master [16:44] JohnDav: just cloned [16:45] Aria: Yeah. I'm cloning that now and we'll see. [16:45] Aria: Looks like I've got 10.04 on this system too. [16:46] JohnDav: ok cool [16:48] JohnDav: My ubuntu is on EC2 instance btw [16:48] JohnDav: if that matters [16:48] micheil: JohnDav: probably not. [16:48] JohnDav: k [16:49] evanmeagher has joined the channel [16:49] micheil: hmm.. I just got a splitting ache in the temple... [16:50] Anti-X: it's the alien [16:50] jacobolu_ has joined the channel [16:52] derencius has joined the channel [16:53] micheil: hmm.. that's good. the pain disappeared. [16:54] meandi has joined the channel [16:57] EyePulp: must have fixed itself [16:57] rpflo has joined the channel [16:57] frode has joined the channel [16:58] Aria: Oof. I'll have to submit patches to actually check for openssl, g++, etc. [16:58] jherdman has joined the channel [16:58] meandi2 has joined the channel [16:59] saschagehlich: is there some kind of debugger command for node as it exists in rails? [16:59] ollie has joined the channel [17:00] Aria: node ... in rails? [17:00] halfhalo: hmmmmm [17:00] halfhalo: That would be... interesting [17:01] saschagehlich: well rails has got a debugger console [17:01] Aria: Aaah, okay. [17:01] jchris has joined the channel [17:01] saschagehlich: at some point of your code you just write "debugger" and the script will stop there and open up an interactive console [17:01] Aria: There's node-inspector and all sorts of things that can use the v8 infrastructure. [17:01] sschuermann has joined the channel [17:02] Aria: ACTION waaiiits for V8 to compile in her vm [17:02] micheil: saschagehlich: try the repl mode.. or yeah, node-inspector [17:02] aurynn: oh, right, I need to update to a later Node [17:03] rbranson has joined the channel [17:03] Aria: Okay, this is interesting. I have no trouble on my Ubuntu vm. [17:03] Aria: No hang. [17:03] micheil: ryah_: http://github.com/miksago/node/compare/ry:master...miksago:doc-split [17:04] micheil: that's where we stand at the moment. [17:04] Aria: I'd love a copy of the output you get before the hang, JohnDav. I'll be back shortly. [17:05] ryan[WIN]: hah i think i found a bug in python [17:05] ryan[WIN]: error: 'str' not iterable [17:05] clynx: bradleymeck: maybe you have to seconds? Isn't this supposed to be working? https://gist.github.com/a91e165acf14094772da [17:05] clynx: two. [17:06] daniellindsley has joined the channel [17:06] herbySk has joined the channel [17:06] bradleymeck: it should be [17:06] bradleymeck: but proxy from overload isnt just proxy [17:06] clynx: var me = new require('').Object(); console.log( me.foo ); throws an exception. [17:06] bradleymeck: to require* [17:06] clynx: TypeError: Cannot read property 'foo' of undefined [17:07] rubyphunk_ has joined the channel [17:07] bradleymeck: and me is not undefined? [17:07] programble has joined the channel [17:07] JohnDav: Aria sure [17:07] sudoer has joined the channel [17:07] bradleymeck: fin v8, if you just need proxies http://github.com/brickysam26/node-proxy might have the v8 api updated, idk [17:08] bradleymeck: going to take me a bit to hunt down wth is going on, add a new test case etc [17:10] sebastiandeutsch: tjholowaychuk: where in the 1.0 branch of mongoose do I find which field methods like oid, and string are possible? [17:10] SubStack_ has joined the channel [17:10] tjholowaychuk: sebastiandeutsch: what do you mean... [17:10] tjholowaychuk: i dont get the question [17:11] evanmeagher: micheil: is there anything i can do to help out with the doc reformat? I've been meaning to ask about it, but it seems like you've got it under control. [17:11] micheil: evanmeagher: well, I've gotta find out where we want to go with the manpage and the make process [17:11] sebastiandeutsch: tjholowaychuk: I define a document and I want to know which types are there aswell, I could guess that there is an array function, but I would like to know where the types in the lib are implemented? [17:11] micheil: but yeah, it's pretty much done. [17:12] rbranson: wow, linode uses battery-backed raid controllers [17:13] tjholowaychuk: sebastiandeutsch: oh, they should be documented in the readme [17:13] tjholowaychuk: or view ./lib/mongoose/types.js [17:13] pquerna: no tim smart? [17:13] pquerna: hmmm [17:14] pferdefleisch has joined the channel [17:15] sebastiandeutsch: tjholowaychuk: thx [17:16] benburkert has joined the channel [17:16] langworthy has joined the channel [17:18] karan has joined the channel [17:19] karan: hey guys, i used npm to install teh carrier module, but when i run a nodejs script, it can't find the carrier module [17:19] karan: any ideas? [17:21] fermion has joined the channel [17:22] zomgbie has joined the channel [17:23] micheil: rbranson: is that bad? [17:23] rbranson: no, it's awesome [17:23] micheil: pquerna: nup, no tim, he's in new zealand [17:23] rbranson: the RAID controller has a write cache on it that has a little battery, so if the power plug gets pulled, it holds the cached writes until the system comes back up [17:23] rbranson: which allows you to safely use write caching [17:23] rbranson: on important data [17:24] aurynn: yeah, don't use writeback unless you have battery backing. [17:24] aurynn: Or you will wreck your data. [17:24] rbranson: which means an append-only log, like what's used in PostgreSQL or InnoDB or whatever, can be written at sequential speed [17:24] rbranson: instead of limited to disk IOPs [17:24] rbranson: which is like 20-50x faster [17:24] micheil: wow, nice. [17:25] rbranson: I think only Joyent and Linode provide BBWCs right now [17:25] micheil: BBWC? [17:25] rbranson: battery-backed write cache [17:25] micheil: oh. [17:25] micheil: *slow* [17:25] micheil: ACTION isn't much of a hardware geek [17:25] rbranson: on my laptop, Redis append-only mode in safe mode (always fsync) gets like 100 writes/sec [17:25] jimma has joined the channel [17:25] rbranson: on linode, configured identically, it gets 20k writes/sec :O [17:26] micheil: *jawdrops.* [17:26] micheil: wow. [17:27] jimma: what is the difference between __proto__ Object.getPrototypeof() and .prototype? Or are they the same? [17:27] frodenius has joined the channel [17:27] pquerna: micheil: hating timezones never gets old [17:27] micheil: pquerna: heh, I'm in AEST. [17:27] Lorentz: I sure enjoy my SSD in my laptop. [17:27] micheil: in other words, it's like 4:30am [17:28] rbranson: Lorentz: BBWC > SSD :) [17:28] rbranson: well, at least for append-only files :) [17:28] rbranson: and of course, they aren't mutually exclusive [17:28] rbranson: you could have a BBWC infront of an array of SSDs :O [17:29] shadow_walker has joined the channel [17:29] micheil: so.. like, that'd be 1000k op/s? [17:29] micheil: :OP [17:29] rbranson: actually yes [17:29] rbranson: Sun has a box that will do 1m ops/s [17:29] micheil: shite. [17:29] rbranson: it is brick shit worthy [17:29] ryan[WIN]: <3 ssd [17:29] Anti-X: i've never seen it referred to as 1000k before [17:29] Anti-X: that's like kk [17:29] Lorentz: Too bad those kind of things won't fit in my laptop. [17:30] micheil: rbranson: what do you mean, brick shit worthy? [17:30] rbranson: like, if I saw 1m ops/sec in a benchmark, bricks would be shas [17:30] rbranson: shat [17:30] sebastiandeutsch: big probs to the new mongoose 1.0 api, it feels great [17:30] rbranson: http://www.oracle.com/us/products/servers-storage/storage/flash-storage/index.html [17:30] micheil: oh, haha [17:30] rbranson: Fastest Flash array?up to 1.6 million IOPS [17:30] benburkert has joined the channel [17:30] rbranson: I fucking hate the Oracle site [17:30] Anti-X: prepare to squeeze out bricks [17:30] rbranson: the old Sun site was way better [17:31] aubergine has joined the channel [17:31] Lorentz: That said, I abuse my RAM a lot to do a lot of large caching, so it's no biggie. [17:32] rbranson: RAM is useless as a write cache [17:32] sh1mmer has joined the channel [17:32] sebastiandeutsch: Question about TDD, there are many testing frameworks like vows, or expresso, which one would you suggest for TDD? [17:32] Lorentz: I don't write much. [17:32] muk_mb has joined the channel [17:33] rbranson: well then, aren't you lucky :) [17:33] technoweenie has joined the channel [17:34] jimma: sebastiandeutsch: expresso is very good [17:36] micheil: sebastiandeutsch: On TDD, I like this approach: http://github.com/felixge/node-mysql/blob/master/Makefile [17:36] deepthawtz has joined the channel [17:36] micheil: it's very similar to the way that node.js tests are written [17:36] Gruni has joined the channel [17:37] evanmeagher: what about jasmine? [17:37] agnat has joined the channel [17:38] dgathright has joined the channel [17:38] Anti-X: jasmine is behaviour oriented [17:39] Anti-X: if you know the difference [17:39] Anti-X: "i wanna add an article" -> perform steps -> "is article added?" [17:40] sebastiandeutsch: micheil: thx [17:41] bearnard has joined the channel [17:43] pferdefleisch has joined the channel [17:45] softdrink: for future reference: /usr/lolcat/bin does not exist. [17:45] softdrink: *headdesk* [17:45] ryan[WIN]: why not [17:45] ryan[WIN]: make it exist [17:45] softdrink: well, on *my* machine [17:45] Anti-X: you typed lolcat for local? that's pretty freudian of you [17:45] ryan[WIN]: create that and then create a /usr/lolcat/invisiblebin [17:45] softdrink: i know. i'm embarrassed. [17:45] softdrink: rofl [17:46] rauchg_ has joined the channel [17:46] Anti-X: symlink it to local/bin.. people will be all 'dude wtf?' [17:46] softdrink: sudo -H -u ceilingcat... [17:46] ryan[WIN]: today i learned that you can crash python by making a symlink to a parent directory and doing os.walk [17:46] zomgbie has joined the channel [17:46] Anti-X: hah [17:46] ryan[WIN]: what kind of kindergarten coding is that [17:47] softdrink: you used to be able to make mac os x barf with something similar [17:47] Anti-X: by barf you mean core dump? [17:48] hukash has joined the channel [17:48] ryan[WIN]: does nobody keep an internal graph and mark visited levels [17:48] ryan[WIN]: a filesystem is almost never going to have more than a depth of a few thousand [17:48] ryan[WIN]: and that's like a few kb in ram which is throwawy [17:48] Anti-X: someone could make a lisp filesystem [17:48] Anti-X: you'd be fucked [17:49] Anti-X: metadata is one level per entry [17:49] ryan[WIN]: looooooooooooooool no there has to be a max depth in filesystems otherwise halting problem [17:50] ryan[WIN]: like on windows they just have a 255 char limit for filenames+dirs [17:50] ryan[WIN]: well ntfs, specifically [17:51] muhqu has joined the channel [17:51] ryan[WIN]: silent failure also [17:51] ryan[WIN]: that one trips up a lot of lunix porters [17:51] softdrink: UGH there has to be a way to keep mac os x from adding the damned quarantine xattr to all js files i download [17:52] Athox has joined the channel [17:53] aheckmann has joined the channel [17:54] dtrasbo has joined the channel [17:54] adambeynon_ has joined the channel [17:56] diorahman has joined the channel [17:56] sebastiandeutsch: Is it wise to share a mongodb connection between models, or should I instanciate it all the time? [17:57] nerdEd has joined the channel [18:02] ashb: so whats involved in getting a package into npm? [18:02] halfhalo: money [18:02] aurynn: ashb, a package.json file [18:02] aurynn: and money. [18:02] ashb: got the first, and the 2nd is mine ;P [18:02] aurynn: the money may or may not be spent on blow. [18:03] halfhalo: and hookers [18:03] halfhalo: not necessarialy in that order [18:03] ph^ has joined the channel [18:04] gilesgoatboy has joined the channel [18:04] gJ|Alex has joined the channel [18:04] softdrink: i <3 pbcopy [18:04] sprout has joined the channel [18:05] dguttman has joined the channel [18:06] jimma: ashb check the npm docks of one of the other node modules, just a package.json file. Its quite easy [18:06] jimma: *docs [18:06] ashb: i've had a package.json before npm supported em ;) wonder if its still in the right format [18:06] ashb: and then how do i actually submit it [18:07] aurynn: I have to get on creationix to get the postgres namespace [18:07] agnat: ashb: i think you want 'npm help developers' and 'npm help json' [18:07] bentruyman has joined the channel [18:07] ashb: what you mean i have to install it? thats totally like effort [18:07] ashb: >_> [18:08] halfhalo: I know, right? [18:08] micheil: ryah_: :O v8 2.4.9.6 tagged.. [18:09] modular has joined the channel [18:09] micheil: actually.. totally nevermind that. [18:11] mr_aleph: micheil: sorry for all that rubbish with 2.4.9.6 tagging :-( [18:11] Anti-X has joined the channel [18:11] micheil: mr_aleph: heh, had me confused there for a moment. [18:12] boaz has joined the channel [18:15] matjas has joined the channel [18:15] benburkert has joined the channel [18:18] adambeynon_ has joined the channel [18:19] eddanger has joined the channel [18:21] banjiewen has joined the channel [18:22] MattJ100 has joined the channel [18:22] isaacs has joined the channel [18:23] aubergine has joined the channel [18:23] hukash has left the channel [18:24] isaacs: micheil: hey [18:24] jstemmer has joined the channel [18:24] micheil: isaacs: hey [18:24] isaacs: micheil: yeah, every publish tags whatever you're publishing as "latest" [18:24] micheil: okay [18:24] isaacs: micheil: that's why every package has a latest tag :) [18:24] micheil: a while back it didn't [18:24] mikew3c has joined the channel [18:24] isaacs: micheil: yeah, back when "stable" was the magic default, instead of "latest" being the magic default [18:24] micheil: okay [18:25] micheil: well, yeah, after I write the package.json generator, I'll have my complete release stuff on Make instead of Rake [18:25] isaacs: micheil: have you seen "npm init" in the latest release? [18:25] micheil: which will be sweet [18:25] micheil: npm init? [18:25] isaacs: yep [18:25] isaacs: interactive "create a package.json file" thing [18:26] isaacs: i still need to put in dependency lookup stuff, though [18:26] micheil: oh, this is just to auto grab the git tag and stuff [18:26] isaacs: yeah [18:26] isaacs: just to init, guesses the name, etc [18:27] micheil: well, yeah, pretty much all my package.json generator does is replace the version based on the current git tag [18:29] isaacs: i see [18:30] aubergine: hi all.... anyone know if it's possible to specify the source ip address of an outbound Stream ie I have multiple addresses bound to a box's interface and want to be able to specify which one to use [18:32] isaacs: WOW, i just noticed the ctrl-shift-G commands in textmate's git integration thing [18:32] igorgue has joined the channel [18:33] mjr_: aubergine: I think something went in for that not too long ago, but it might not be documented yet. [18:34] frio80 has joined the channel [18:34] aubergine: cool, thanks... [18:34] aubergine: ACTION goes to read the sauce ;-) [18:34] halfhalo: is it bbq sauce? [18:35] waratuman has joined the channel [18:35] aubergine: looks like chilli sauce from here... I'll let you know when I get back [18:35] halfhalo: nice [18:37] sprout has joined the channel [18:37] frio80: So, I'm moving some of my JS code to nodeJS and wondering if a setTimeout methodology is needed anymore to break up long running tasks? [18:37] waratuman: Trying to build a METAR (weather report) parse for node.js using Ragel. Any pointers on how to get started? Ideally I'd just like to parse in C and return a javascript object with all the attributes set. Any pointers on how to get started? [18:45] eddanger: Hi anyone familiar with http://github.com/ciaranj/connect-auth and creating custom auth strategies? [18:46] charlenopires has joined the channel [18:46] dnolen_ has joined the channel [18:47] blackbrrr has joined the channel [18:47] blackbrrr has left the channel [18:48] mtodd has joined the channel [18:52] jchris has joined the channel [18:54] yviktorov has joined the channel [18:55] eazyigz has joined the channel [18:55] rcy has joined the channel [18:55] eazyigz: hi, using node's file system api, how can I delete a file? [18:56] tjholowaychuk: unlink [18:56] eazyigz: thx [18:56] eazyigz: does that mean I have to link it first? [18:57] eazyigz: I only used fs.writefile and it created the file for me. Now I just wanna delete it [18:58] boaz_ has joined the channel [18:59] aubergine has joined the channel [19:00] micheil: eazyigz: man unlink [19:00] rubyphunk has joined the channel [19:00] micheil: that'll tell you what the function does, essentially [19:01] kawaz has joined the channel [19:02] norviller has joined the channel [19:02] tjholowaychuk: man 2 unlink [19:02] micheil: man 2? [19:02] micheil: I thought man 1 unlink or man unlink did the job? [19:03] tjholowaychuk: 2 is sys calls [19:03] micheil: ah, yeah [19:03] micheil: fair enough [19:03] norviller has joined the channel [19:03] tjholowaychuk: i think if there is no man 1 it tries man 2 etc [19:04] micheil: yeah, I don't know the schematics of man. [19:04] teemow has joined the channel [19:04] norviller has joined the channel [19:04] unomi: weird stuff on the ml [19:05] tjholowaychuk: lol microsoft using jquery [19:05] tjholowaychuk: faillll [19:05] bartt: ACTION published his 1st node package: trust-reverse-proxy [19:05] norviller has joined the channel [19:05] unomi: micheil: does it seem to you that you are sharing a point with the good sir Gahl? [19:06] bartt: Connect middleware, see http://github.com/zazengo/trust-reverse-proxy [19:06] micheil: unomi: ? [19:06] unomi: yeah, well, alot of companies are falling for that good ol' its popular so it must be good line, tjholowaychuk [19:06] micheil: unomi: you mean the mailing list? [19:06] unomi: yeah [19:06] unomi: the self = this thread [19:06] micheil: I'm just getting sick of it. [19:06] bradleymeck: frio80 if you are doing purely synchronous stuff (ie heavy duty math) yes [19:06] micheil: it's like everyone feels they need to prove something. [19:06] norviller has joined the channel [19:07] micheil: and some people seem to feel they need to correct everyone [19:07] unomi: its not a bad discussion to have, closures and self referencing are important and often misunderstood issues for people learning javascript [19:07] unomi: the dig on you was pretty lame, imo [19:07] micheil: like, the whole thread could've been answered in one email, but no, we some how need to have a thread of about 50 emails. [19:07] eazyigz: for some reason fs.unlink does not remove my file. Do I need to do chmod first? I am confused [19:08] stride: the david hasselhoff thread? [19:08] aconbere has joined the channel [19:08] unomi: no, the self-echo chamber [19:08] micheil: fs.unlink(path, [callback]) [19:08] micheil: eazyigz: it should work. [19:08] frio80: bradleymeck: Thank you for your reply. [19:09] unomi: I meant to do some benchmarks on what happens if local vars have the same name as global vars [19:09] unomi: I believe to remember that it could cause a hit [19:09] unomi: unlikely to matter much, but still.. [19:09] micheil: it's a scope bubbling thing [19:09] micheil: if it's not in the current scope, try the next one up, then repeat until at global scope. [19:10] eazyigz: I am getting an error "no such file or directory," even though the file is there [19:10] unomi: yeah, looking at it rationally, it should just look at it like bubbling, if that is what actually happens though.. [19:10] micheil: eazyigz: check that you're removing the right file. [19:10] micheil: console.log(fs.statSync(path)) [19:10] micheil: where you're calling the fs.unlink [19:11] micheil: unomi: I believe so. [19:11] micheil: unomi: or, at least at it's simplest for. [19:11] micheil: *form [19:11] unomi: I mean, it could be looking up the labels in a list, if it finds more than one it then checks which is closer etc. [19:12] unomi: I have no idea, but I doubt it actually is modelled like a set of nested closures internally [19:12] micheil: well, there's always a this context,. [19:12] micheil: (literally, always) [19:13] unomi: right, I was just thinking about since there is a 'global self' etc.. when considering names. [19:13] unomi: again though, unlikely to really matter that much [19:13] jchris has joined the channel [19:13] micheil: at module level, this == exports [19:13] unomi: when you were talking about it being an endorsement for using the name 'self' [19:14] micheil: well, in the browser, this at the global level [19:14] unomi: sure [19:14] micheil: so, outside of all functions, this == window [19:14] micheil: so, this == window == window.self [19:15] micheil: so, based on the logic that if it's good enough for the browsers to use, then it's good enough for me. [19:15] micheil: and it's also just a standard I've seen everywhere. [19:15] micheil: dojo, jquery, node, narwhal, etc. [19:15] unomi: totally, that just got me thinking of whether I was right in thinking that there were performance issues. [19:16] micheil: unomi: well, if you have say, a call 1000 function nests deep, then yes, there may be a performance hit. [19:16] drudge has joined the channel [19:16] unomi: too busy to test, and it wouldn't be much if at all, I am sure. [19:16] micheil: but v8 is probably a lot smarter then just a simple if/else bubble [19:16] unomi: nod [19:17] micheil: but the if/else bubble is an easy way to understand basically what happens. [19:17] unomi: well, as they say: theory destroys facts. [19:18] micheil: that's a new one to me, but I get what you mean [19:19] Anti-X has joined the channel [19:23] norviller has joined the channel [19:24] norviller has joined the channel [19:25] micheil: isaacs: I'm not going to even bother replying.. [19:25] norviller has joined the channel [19:25] bradleymeck: v8 will attempt to flatten any unused closures (which is possible as long as you avoid eval), but there is still a performance hit when you go up a closure to find stuff [19:25] micheil: >_> [19:25] bradleymeck: its minor though [19:25] isaacs: haha [19:26] Oliv_Oil has joined the channel [19:27] norviller has joined the channel [19:27] micheil: hmm, I wish node was on a group account or something, so that people could help out with triaging bugs and stuff [19:28] norviller has joined the channel [19:29] norviller has joined the channel [19:30] micheil: isaacs: I think the doc-rework is coming along nicely.. [19:30] micheil: http://static.brandedcode.com/node-doc/index.html [19:30] micheil: and [19:30] micheil: http://github.com/miksago/node/compare/ry:master...miksago:doc-split [19:30] norviller has joined the channel [19:31] tjholowaychuk: micheil: cool man, should work some of my ebook magic on that :D [19:31] micheil: heh [19:31] tjholowaychuk: looks good [19:31] micheil: it's all markdown [19:31] dal9k has joined the channel [19:31] norviller has joined the channel [19:32] tjholowaychuk: yeah thats all i used for the ebook, you can generate epub, mobi, pdf, etc [19:32] norviller has joined the channel [19:32] micheil: tjholowaychuk: using? [19:33] micheil: is this a node tool? [19:33] tjholowaychuk: micheil: http://gist.github.com/652154 [19:33] tjholowaychuk: is the makefile from that project [19:33] mjr_: micheil: are we going to get tables in your new doc omnibus? [19:34] mjr_: I think tables would really help for a bunch of documentation patterns [19:34] norviller has joined the channel [19:34] sschuermann has joined the channel [19:34] JimBastard has joined the channel [19:34] micheil: mjr_: well, what do you mean? [19:34] micheil: markdown supports tables. [19:35] tjholowaychuk: micheil: feel free to grab some of that makefile [19:35] norviller has joined the channel [19:35] micheil: tjholowaychuk: so, htmldoc converts html to pdf? [19:35] tjholowaychuk: a little out of scope lol but would be interesting to have i think [19:35] tjholowaychuk: yup [19:35] tjholowaychuk: and ebook-convert handles the others [19:36] micheil: nice [19:36] tjholowaychuk: pretty cool to read on the ipad [19:36] micheil: maybe it's be an idea to generate a all.html [19:36] norviller has joined the channel [19:36] micheil: or something, that's like all the documentation on one page. [19:37] norviller has joined the channel [19:37] ossareh has joined the channel [19:38] naturalethic has joined the channel [19:39] JimBastard: hrmm, chunk.copy (buffer, offset, 0); [19:39] JimBastard: time to read the changelog me thinks [19:43] stride: meh, where's felixge when you need him.. :) [19:44] norviller has joined the channel [19:45] micheil: tjholowaychuk: catch! http://static.brandedcode.com/node-doc/all.html [19:45] ph^ has joined the channel [19:45] tjholowaychuk: cool cool [19:46] micheil: the source? [19:46] micheil: http://gist.github.com/652183 [19:46] micheil: @include voodoo ftw. [19:46] micheil: (it does fs.readFileSync though to do it.) [19:47] micheil: but, hey, simple is good sometimes. [19:47] ajpiano has joined the channel [19:49] muhqu_ has joined the channel [19:53] dgathright_ has joined the channel [19:53] unomi: http://edition.cnn.com/2010/US/10/28/us.spy.spending/?hpt=T2 [19:53] unomi: US spy spending revealed for first time, tops $80 billion [19:53] unomi: err, sorry, wrong chan [19:54] Gehhilfe has joined the channel [19:55] yhahn: lol [19:55] Gehhilfe: hi guys [19:55] stride: $80 billion against people who write passwords on sticky notes? heh [19:55] micheil: unomi: they obviously aren't using node.js then.. [19:55] micheil: :P [19:55] stride: hi Gehhilfe [19:56] pquerna: no, lots of lucene. [19:56] Gehhilfe: my first time on this channel [19:57] Anti-X: congratulations [19:57] Anti-X: what does geh mean? hilfe means help, right? [19:57] stride: Anti-X: geh==walk [19:58] Gehhilfe: yes [19:58] Anti-X: walkhelp'? [19:58] Gehhilfe: right [19:58] Anti-X: oh like newbie [19:58] sschuermann has joined the channel [19:58] Anti-X: need to learn how to walk before you can run [19:58] stride: more like walking aid as in walking sticks [19:59] Anti-X: so he's a crutch? [19:59] stride: maybe he just likes hiking [19:59] Gehhilfe: right translation is walking stick, dont ask why i use this name [20:01] StanAngeloff has joined the channel [20:02] micheil: I love it when I can make things far simpler. path.join(doc_root, "..", "template.html"); [20:02] micheil: erm [20:02] micheil: http://github.com/miksago/node/compare/ry:master...miksago:doc-split [20:03] unomi has joined the channel [20:03] Anti-X: 3500 deletions! [20:03] micheil: yeah [20:03] Anti-X: you monster [20:03] micheil: :D [20:04] micheil: and there's about 5000 insertions [20:04] micheil: Showing 43 changed files with 5,947 additions and 3,408 deletions. [20:04] micheil: so, 6000. [20:04] Anti-X: so basically you didn't simplify it, you doubled it [20:04] Anti-X: but i like the split [20:05] micheil: heh, not quite [20:05] micheil: the insertions are through the build scripts [20:05] micheil: plus the templates & extra files. [20:05] MikhX has joined the channel [20:05] Anti-X: now all that's needed is having nodejs.org/ redirect to the correct api page [20:05] Anti-X: like the php docs [20:06] pedrobelo has joined the channel [20:06] micheil: ha. [20:06] micheil: maybe not. [20:06] micheil: that'd be a pain in the ass to maintain [20:07] Anti-X: yeah and the docs aren't eight hundred and smash-your-face thousand pages either [20:07] igorgue has joined the channel [20:07] trotter has joined the channel [20:07] drudge: http://php.net/eval [20:07] micheil: Anti-X: not yet. [20:07] micheil: >_> [20:07] Anti-X: yeah if you start including docs for all the 3rd party modules [20:08] Anti-X: but just don't [20:08] Anti-X: please [20:08] Anti-X: never do that [20:08] micheil: haha [20:08] drudge: Among other things, this can be useful for storing code in a database text field for later execution. [20:08] micheil: if it needs that much documentation, I'll document it. [20:08] stride: hm, anchors at the h2s / h3swould be nice to link them though [20:08] Anti-X: drudge, that's hilarious [20:08] drudge: blew my mind [20:08] micheil: drudge: what can I say? it's php. [20:08] Anti-X: eval shouldn't have a doc page [20:09] Anti-X: it should exist, just not documented [20:09] drudge: it certainly shouldn't be encouraged to do that kind of stuff in the official docs [20:09] ctp_ has joined the channel [20:09] Anti-X: btw who the f stores code in the database anyways? [20:09] Anti-X: for anything [20:09] Anti-X: ever [20:10] technoweenie: ACTION whistles [20:10] Anti-X: oh [20:10] Anti-X: feel free to leave [20:10] MikhX has joined the channel [20:10] drudge: haha [20:11] trotter has joined the channel [20:12] dguttman: delayed_job stores code in the db [20:13] Anti-X: wazzat [20:13] mw has joined the channel [20:13] pedrobelo has joined the channel [20:13] igorgue has joined the channel [20:14] Anti-X: oh that must hurt [20:14] shadow_walker has joined the channel [20:15] JimBastard_ has joined the channel [20:16] ben_alman_ has joined the channel [20:16] pengwynn has joined the channel [20:17] ben_alman_ has joined the channel [20:17] pedrobelo has joined the channel [20:18] ben_alman has joined the channel [20:19] pedrobelo has joined the channel [20:20] matjas has joined the channel [20:20] sschuermann has joined the channel [20:21] peutetre has joined the channel [20:22] karboh has joined the channel [20:24] JimBastard_: hrmm [20:24] Sembiance: :) [20:25] JimBastard_: i think i goofed up [20:26] micheil: ryah_: you about? [20:27] JimBastard_: http://gist.github.com/652260 [20:27] JimBastard_: does that look right to you? [20:28] JimBastard_: node-static is acting funny with 0.3.0 [20:28] JimBastard_: the change was http://github.com/cloudhead/node-static/commit/996dc6e43daf3604b86c0d7bd3f492a40b483cdb to fix it [20:29] micheil: JimBastard: why not just stream.Stream#pipe it? [20:29] bradleymeck has joined the channel [20:29] pquerna: +1, use pipe [20:29] pquerna: break it [20:30] JimBastard_: easy change right? [20:30] JimBastard_: where is cloudhead when you need him [20:30] micheil: pretty much [20:30] micheil: var filestream = fs.createReadStream(...) [20:30] bradleymeck: he is in the clouds? [20:30] micheil: acutally.. [20:31] isaacs: fs.createReadStream(path).pipe(res) [20:31] micheil: stream.Stream#pipe(response) doesn't work [20:31] isaacs: orly? [20:31] micheil: does it? [20:31] JimBastard_: im seeing this crazy issue with this code [20:31] isaacs: yeah, you just have to writeHead first [20:31] micheil: pipe expects a while.. [20:31] micheil: *write [20:31] JimBastard_: where its failing to load pngs from the cache [20:31] JimBastard_: serving bad data [20:31] isaacs: fs.createReadStream(path).pipe(res.writeHead(200, {})) [20:31] hellp has joined the channel [20:31] isaacs: micheil: like res.write(chunk)? [20:31] isaacs: ;) [20:31] micheil: :/ [20:32] micheil: I've been working on documentation all night.. [20:32] JimBastard_: no docs for .pipe yet? [20:32] JimBastard_: ahhh [20:32] micheil: ironic that i forget then. [20:32] isaacs: hehehe [20:32] JimBastard_: isaacs: do you know the eta of the new nodejs.org site? [20:32] isaacs: micheil: it's ok, you've done other smart things, you get a few brainfart moments without judgement [20:32] isaacs: JimBastard: no eta [20:32] isaacs: in talks with some folks who wanna build it though, which is exciting [20:33] JimBastard_: ohh i thought it was already done [20:33] isaacs: nope [20:33] isaacs: the data's there, but not hte preso [20:33] micheil: isaacs: seriously. this doctool is awesome. [20:33] isaacs: micheil: which tool are you using? [20:33] aheckmann_ has joined the channel [20:33] micheil: isaacs: http://github.com/miksago/node/blob/c21fa9ee16d2f0441a6c5896432b9a445e740d02/tools/doctool/doctool.js [20:33] micheil: :D [20:33] isaacs: (these two conversations are very relevant to one another!) [20:34] micheil: isaacs: yes, they are! [20:34] vnguyen has joined the channel [20:34] micheil: isaacs: I know rob righter is currently doing stuff with it. [20:34] sschuermann has joined the channel [20:34] isaacs: interesting [20:34] micheil: I've seen: http://node.robrighter.com/ [20:34] halfhalo: Psh, documentation [20:34] micheil: halfhalo: f. u. :P [20:35] JimBastard_: micheil: that site is ugly [20:35] micheil: ACTION agrees.. [20:35] micheil: but it is better content wise I think [20:35] JimBastard_: case closed. [20:35] halfhalo: It needs blinking tags [20:35] isaacs: i would like documentation like that for every package in npm that provides a doc directory [20:35] tjholowaychuk: medium's stuff is usually amazing looking [20:35] isaacs: CRAP [20:36] isaacs: doc directory. that's the other thing i forgot on my email. [20:36] micheil: JimBastard: also, I like my node.js logo: http://dribbble.com/shots/55813-Node-js-Logo-Concept [20:36] halfhalo: Fake it [20:36] isaacs: ah well, once we start doing something with it, people will follow along. [20:36] JimBastard_: so wait, isaacs what gets sent as arguments to pipe? [20:36] halfhalo: ACTION wont [20:37] isaacs: halfhalo: you'll get points! [20:37] halfhalo: Dammit man, if I don't comment my code for myself why would I make docs for others! [20:37] micheil: JimBastard: another stream.Stream [20:37] isaacs: halfhalo: 10 points from gryffindor! [20:37] pandark_ has joined the channel [20:37] isaacs: JimBastard: readableStream.pipe(writableStream) [20:37] isaacs: JimBastard: it's like | in bash [20:37] halfhalo: Becha can't say a spell before I pull this trigger! [20:38] isaacs: cat your-mom | make-joke [20:38] isaacs: yourMom.pipe(makeJoke) [20:38] JimBastard_: would it be at all possible to show me using this as the example? http://gist.github.com/652260 . sorry to bother im noobing out hard on this [20:39] cloudhead has joined the channel [20:39] JimBastard_: hey cloudhead [20:39] JimBastard_: im actually talking about trying to fix something in node-static. [20:39] JimBastard_: i think there is an issue with the new streaming code [20:40] sudoer has joined the channel [20:40] JimBastard_: ( i created issue on the github: http://github.com/cloudhead/node-static ) [20:40] JimBastard_: err [20:40] JimBastard_: http://github.com/cloudhead/node-static/issues#issue/12 duh [20:42] halfhalo: Bug trackers never have an option to put "hell no" as a resoluton time... it makes me sad [20:44] JimBastard_: we are gonna launch nodejitsu with 0.3.0, and like i think i have 6 node-static sites [20:44] JimBastard_: lol [20:44] cardona507: halfhalo: we can only wish [20:45] halfhalo: Yup... [20:46] tjholowaychuk: wow thats a first: return('black'); [20:46] tjholowaychuk: ACTION eyes bleed [20:46] micheil: tjholowaychuk: lolwhere? [20:46] halfhalo: I wish my code returned colors... [20:46] halfhalo: "OH GOD IT RETURNED RED!!! WE'RE ALL GONNA DIE!!!" [20:47] EyePulp: hah [20:47] StanAngeloff_ has joined the channel [20:48] halfhalo: my level of boredom in this class is monumental [20:49] murz has joined the channel [20:49] mraleph has joined the channel [20:49] JimBastard_: tjholowaychuk: im a fan of: return('true'); [20:49] foertel has joined the channel [20:49] JimBastard_: :p [20:49] foertel: hey guys [20:50] JimBastard_: sup foertel [20:50] Guest51655 has joined the channel [20:50] Gehhilfe: hi foertel [20:50] halfhalo: psh, returns... their more useless than arrays [20:50] tjholowaychuk: JimBastard_: haha ya thats awesome [20:50] sprout has joined the channel [20:50] JimBastard_: if(eval(isLoggedIn(user)) [20:50] JimBastard_: easiest api ever [20:51] halfhalo: That IS easy... [20:51] frode has joined the channel [20:51] mattonrails has joined the channel [20:52] webr3 has joined the channel [20:53] foertel: i got some client server app where the client is supposed to pull data to the listening server once in a while … should i work with a loop and setTimeout or start the client per cronjob every time it has to pull something? [20:53] rwaldron has joined the channel [20:54] foertel: the client is supposed to pull infos about it's health to the server let's say every two minutes [20:54] foertel: like disk quota, used bandwidth and stuff [20:55] murz has joined the channel [20:56] jvolkman-work has joined the channel [20:56] mmattozzi has joined the channel [20:57] admc has joined the channel [20:57] micheil: that'd be s/pull/push [20:57] foertel: ah aight, sorry :D [20:57] halfhalo: thats what she said [20:57] micheil: wouldn't it? [20:57] micheil: halfhalo: you just wish you'd said it. [20:57] foertel: ya … the client should push info to the server through tcp [20:58] Anti-X: THAT is what she said [20:58] micheil: okay, you could do it using setTimeout() in node [20:58] halfhalo: lol [20:58] micheil: or you could use cron, but via cron would mean reconnecting to the server each push [20:58] foertel: aight [20:59] Blink7 has joined the channel [21:00] JimBastard_: yeah, i cant figure this out. fuck [21:00] JimBastard_: lol [21:00] halfhalo: WELCOME to my world JimBastard_ [21:01] fermion has joined the channel [21:01] JimBastard_: im kinda blocked unless i rollback. hrmm gonna try a bit longer [21:01] Me1000 has joined the channel [21:02] foertel: ah setInterval would make more sense ;) [21:04] jfd1 has joined the channel [21:04] robmason has joined the channel [21:05] dgathright has joined the channel [21:05] micheil: JimBastard: hmm.. well, in the context of that particular module, I have no idea. [21:05] micheil: but I know you should / could be using stream.Stream#pipe and fs.readStream [21:05] JimBastard_: its a very small amount of code [21:05] JimBastard_: you can see the whole problem in like one screen [21:05] micheil: problem doesn't tell me everything [21:06] JimBastard_: http://github.com/cloudhead/node-static/blob/master/lib/node-static.js#L207 [21:06] JimBastard_: http://github.com/cloudhead/node-static/blob/master/lib/node-static.js#L239 [21:07] JimBastard_: im fairly certain that is has to do with those two lines [21:07] breccan has joined the channel [21:08] JimBastard_: i think the way the buffer is stored in memory is wrong [21:08] JimBastard_: but in a strange way [21:08] JimBastard_: because it mostly works [21:08] clynx has joined the channel [21:08] JimBastard_: pngs are choking for me though [21:08] halfhalo: "its working... but not really" [21:08] jpld has joined the channel [21:08] jpld has joined the channel [21:09] JimBastard_: halfhalo: most files are serving [21:09] JimBastard_: maybe any binary files are failing [21:10] JimBastard_: gifs arent working [21:10] xla has joined the channel [21:10] JimBastard_: yeah, hrmmm [21:11] shadow_walker has joined the channel [21:12] seporaitis has joined the channel [21:12] micheil: JimBastard: man, all that prototype foo in there was confusing me, now that I see the code, I can tell what was happening [21:12] rwaldron has joined the channel [21:13] JimBastard_: yeah cloudhead and indexzero love using prototype [21:13] JimBastard_: fuuuuuuuu [21:13] JimBastard_: im like, what happened to being able to search the codebase for stuff [21:13] frode has joined the channel [21:14] technowe_ has joined the channel [21:15] dgathright has joined the channel [21:16] jpld has joined the channel [21:17] SvenDowideit_ has joined the channel [21:19] dguttman has joined the channel [21:20] seporaitis: hello, is it possible in node secure http.Server to disable client certificate verification. Something like Apache has "SSLVerifyClient none"? Problem is that if I don't provide CA certificate when creating credentials for the server - browser says it can not verify the certificate issuer, but when I do - some browsers (IE) ask for client to provide their certificate [21:21] JimBastard_: micheil: any ideas? [21:21] micheil: JimBastard: yeah. [21:21] micheil: JimBastard: just prototyping something. [21:21] JimBastard_: thanks [21:22] hober has joined the channel [21:22] aurynn: throw code at the wall until you have some spaghetti. [21:22] Aria has joined the channel [21:23] Aria: Well, that took longer than I anticipated. [21:23] Aria: Sorry about that, JohnDav [21:23] aubergine: mjr_: re: specifying source address in outbound connection.... I went and delved in the current unstable and got lost :-( any hints where I might look welcome [21:24] micheil: JimBastard: streamable mem-cache ftw. http://gist.github.com/652359 [21:26] dquestions: Hi, it seems i cant get POSt to work (GET from forms works fine)... console.log(app.param('something') [21:26] dquestions: but it doesnt seem to work with post [21:27] dquestions: i'm using express btw [21:27] JimBastard_: micheil: i dont understand, where do you read the files in [21:27] micheil: JimBastard: you have to do that. one sec. [21:27] rwaldron has joined the channel [21:27] pengwynn has joined the channel [21:27] Oliv_Oil has joined the channel [21:27] MattJ100 has joined the channel [21:27] jarfhy has joined the channel [21:27] jwcooper has joined the channel [21:27] [[zz]] has joined the channel [21:27] AAA_awright has joined the channel [21:27] mjr_ has joined the channel [21:27] nefD has joined the channel [21:27] deoxxa has joined the channel [21:27] sstephenson has joined the channel [21:27] lstoll has joined the channel [21:27] nodejs-log has joined the channel [21:27] halfhalo has joined the channel [21:27] jvolkman has joined the channel [21:27] pzich has joined the channel [21:27] buu has joined the channel [21:27] paulwe has joined the channel [21:27] LionMadeOfLions has joined the channel [21:27] foca has joined the channel [21:27] chapel has joined the channel [21:27] v8bot has joined the channel [21:27] sstreza has joined the channel [21:27] inimino has joined the channel [21:27] shajith has joined the channel [21:27] pquerna has joined the channel [21:27] Tim_Smart has joined the channel [21:27] joshpeek_ has joined the channel [21:27] dquestions: any ideas on why it would not work for post? [21:27] sstephenson has joined the channel [21:28] JimBastard_: i just want to understand how to quickly fix this issue so i can commit and move on. im not trying to rewrite the whole thing [21:28] JimBastard_: i dont understand where its breaking [21:28] pquerna: mm? [21:28] JohnDav: Aria: no problem [21:28] devinus_ has joined the channel [21:29] aconbere has joined the channel [21:29] aliem has joined the channel [21:30] ThePub has joined the channel [21:30] JimBastard_: i guess i cant just res.end(buffer) ? if buffer is from memory? [21:30] jpld has joined the channel [21:31] dquestions: ? [21:31] Tim_Smart: response.end(buffer); is fine. [21:31] dquestions: i have looked at the examples and they all seem to do this.param('blah'); [21:32] springmeyer has joined the channel [21:32] micheil: JimBastard: see the end of: http://gist.github.com/652359 [21:32] tjholowaychuk: dquestions: sorry missed that q [21:32] tjholowaychuk: use bodyDecoder middleware [21:32] micheil: JimBastard: yeah, I was going to rewrite it. [21:32] JimBastard_: micheil: i see. do you know why it was breaking with the old code? [21:32] tjholowaychuk: dquestions: and that data will be in req.body [21:32] tjholowaychuk: or for multipart/form-data use connect-form [21:32] dquestions: tjholowaychuk: i think i troed body too [21:32] dquestions: hmm [21:32] JimBastard_: you wanna do a patch to node-static? [21:33] dquestions: but thanks i'll try again [21:33] micheil: not very, and I don't have much time to read all the code, but I thought you might've been interested in that code. [21:33] tjholowaychuk: http://img.skitch.com/20101028-btfn4ugkdqkipg1518qekjwwra.png [21:33] zemanel has joined the channel [21:33] JimBastard_: so why did it break? [21:33] jimma has joined the channel [21:33] micheil: tjholowaychuk: you've either got require() working in browser, or, that's fucking sweet. [21:34] naturalethic has joined the channel [21:34] tjholowaychuk: micheil: :D [21:34] tjholowaychuk: lots to go [21:34] dquestions: lol cool stuff [21:34] tjholowaychuk: but pretty rad so far [21:34] tjholowaychuk: 3x faster than FF haha [21:34] tjholowaychuk: got some streaming png stuff in [21:35] micheil: nice [21:35] micheil: tjholowaychuk: what do you think of this as a concept? http://gist.github.com/652359 [21:35] saschagehlich: hey, I'm using socket.io for my website. in chrome (mac) everything is working fine but in firefox 3.6.12 it does not work. looks like it tries to open up a websocket but fails and after a few seconds I get the error "this.socket undefined".... did anyone see something like that before? [21:35] JimBastard_: thank for all the help micheil [21:36] seporaitis: is it possible to disable peer verification in node secure http server? [21:36] JimBastard_: seporaitis: whats the point running secure if you want to do that? [21:36] micheil: JimBastard_: to me, node-static looks over complicated. [21:37] tjholowaychuk: micheil: greedy caching doesnt seem to go a long way IMO, but it totally depends on the usage [21:37] dquestions: tjholowaychuk: maybe i didn't understand.. but you said req.body? that seems to be undefined ... and is bodyDecoder/connect-form not part of express.js? [21:37] davidascher has joined the channel [21:37] tjholowaychuk: for example connect's cache(), is pretty much useless [21:37] micheil: tjholowaychuk: just the idea of having a cache that can be stream.Stream#pipe()'d to [21:37] Tim_Smart: JimBastard_: You just want to serve static files? [21:37] tjholowaychuk: dquestions: what express version? [21:37] JimBastard_: Tim_Smart: i just want to figure out why the change in 0.3.0 is causing this to break [21:38] JimBastard_: so i can patch node-static and be on my way [21:38] micheil: Tim_Smart: y'know on ubuntu about make install failing? We found out it was the documentation that was breaking it. [21:38] tjholowaychuk: micheil: im not there yet :D (0.3.x) [21:38] Tim_Smart: micheil: Yeah I knew that, I just edited the install task. [21:38] tjholowaychuk: will have some catching up to do haha [21:38] micheil: Tim_Smart: right. [21:38] tjholowaychuk: dquestions: $ express --version [21:38] Tim_Smart: JimBastard_: What is 'this' [21:38] dquestions: 1.0.0rc3? [21:38] micheil: Tim_Smart: do you know where it breaks? [21:38] dquestions: sorry [21:39] Tim_Smart: micheil: Didn't look into it. [21:39] micheil: Tim_Smart: is it on compiling the docs or on installing the manpage? [21:39] dquestions: thats the version [21:39] pquerna: Tim_Smart: heya [21:39] Tim_Smart: micheil: What ever uses roff [21:39] seporaitis: JimBastard_: I want client to verify server :) everything is fine with peer verification in all browsers except IE - which somewhy shows a popup asking for a client certificate [21:39] Tim_Smart: pquerna: Hey :) [21:39] JimBastard_: Tim_Smart: this commit was made to node-static to upgrade it to 0.3.0, its wrong. when serving files from the static cache, its breaking [21:39] JimBastard_: http://github.com/cloudhead/node-static/commit/996dc6e43daf3604b86c0d7bd3f492a40b483cdb#diff-0 [21:39] codemanki has joined the channel [21:39] micheil: Tim_Smart: right, so it's roff that's dead? [21:39] tjholowaychuk: dquestions: hmm well yeah, do app.use(express.bodyDecoder()); app.use(app.router) [21:39] micheil: that's good. I just replaced it. In a way,. [21:40] pquerna: Tim_Smart: i think its down to bug fixing and passes all the test cases [21:40] pquerna: *passing [21:40] tjholowaychuk: dquestions: but if you are POSTing multipart you will need to $ npm install connect-form [21:40] pquerna: Tim_Smart: currently trying to get Connection: close working [21:40] Tim_Smart: pquerna: Solid. I'll rebase my branch and take a look. [21:40] tjholowaychuk: and app.use(require('connect-form')()); [21:40] Tim_Smart: JimBastard_: Do you need to modify the file data before it hits the socket? [21:41] Tim_Smart: I.e. gzip etc. [21:41] JimBastard_: Tim_Smart: i dont think so [21:41] saschagehlich: btw - one of the socket.io maintainers available here? [21:41] dquestions: tjholowaychuk: i assume thats for uploading files.. but fo rnow i'm not doing that.. eventually i'll need it [21:41] Tim_Smart: JimBastard_: sendfile()! [21:41] dquestions: thanks [21:41] JimBastard_: Tim_Smart: the problem is when calling the buffer back from memory [21:41] JimBastard_: i think its being stored wrong [21:41] JimBastard_: or something [21:42] tjholowaychuk: dquestions: k, then bodyDecoder() will do [21:42] Tim_Smart: JimBastard_: sendfile() lets the *nix kernel do all the caching for you. [21:42] Tim_Smart: Well, actually any file op does. [21:42] tjholowaychuk: dquestions: req.param() is only useful for checking the querystring/request body/route segments [21:43] Tim_Smart: pquerna: Did my write aggregation code work at all? [21:43] Tim_Smart: I didn't test it. [21:43] __mn__ has joined the channel [21:44] pquerna: Tim_Smart: it broke some chunking stuff, and the buffers weren't being identtifiied rigt, but fixed it up [21:44] Tim_Smart: Nice. [21:44] dquestions: tjholowaychuk: i see.. well your solution worked great [21:44] dquestions: and when i need the multipart stuff... any tutorial on that you would recommend? [21:44] pquerna: Tim_Smart: not sure it belongs, though I guess it will make the benchmarks at least not go down 2000% from this rewrite :) [21:44] dquestions: do i need to keep on looping on the data?o [21:44] dquestions: or how does it work [21:45] mikeal has joined the channel [21:45] __mn__: how come socket.io doesn't work when I run my program with upstart? [21:45] Tim_Smart: pquerna: Yeah we might want to take it out when writev lands. [21:45] pquerna: hopefully fixing this connection close stuff [21:45] pquerna: will get `ab` working [21:45] pquerna: then get some baselines [21:46] mikeal has joined the channel [21:46] rauchg_: __mn__: really? [21:46] __mn__: well [21:46] __mn__: if I sudo start program [21:46] __mn__: rather than sudo node server.js [21:46] __mn__: same code... it doesn't ... send [21:46] aurynn: what's the popular choice for unit testing? [21:47] seporaitis: here is popup I get when using secure http server: http://oi56.tinypic.com/5cj66f.jpg any ideas how to avoid this? [21:47] Tim_Smart: pquerna: You might want to rebase on 'ry/master' sometime too. [21:47] rauchg_: aurynn: expresso [21:48] pquerna: Tim_Smart: ya, will do that within the next hour [21:49] __mn__: is there anything special you have to add in order for socket.io to work with upstart? [21:49] Tim_Smart: __mn__: Nope. [21:49] saschagehlich: rauchg_: did you already have a look at this issue? http://github.com/LearnBoost/Socket.IO/issuesearch?state=open&q=undefined#issue/59 [21:49] Tim_Smart: __mn__: You will need to make sure your file-paths are right though. [21:49] Kung_Fu_Hamster has joined the channel [21:49] rauchg_: saschagehlich: indeed, but i don't seem to understand what causes it [21:50] sirevanhaas has joined the channel [21:50] rauchg_: that method shouldn't be triggered if this.socket hasn't been defined yet [21:50] __mn__: Time_Smart: my app loads with both sudo start program and sudo node server.js (not at the same time) [21:50] Tim_Smart: __mn__: I ran into some problems with relative file paths and upstart. [21:50] rauchg_: i think it has to do with flashsocket? [21:50] jtsnow_ has joined the channel [21:50] micheil: aurynn: I like the felixge/node-mysql way [21:50] saschagehlich: rauchg_: hm okay.. [21:50] __mn__: Tim_Smart: but start doesn't send anything. Even if it is XHR-multipart or websockets [21:51] ysynopsis has joined the channel [21:51] eazyigz has joined the channel [21:51] aurynn: micheil, which is? [21:51] Tim_Smart: Hmm not sure on that one then. [21:51] __mn__: Tim_Smart: know of any fix for that? [21:51] aurynn: I don't want to bake my own unit testing lib [21:51] micheil: http://github.com/felixge/node-mysql [21:51] micheil: check the makefile [21:51] __mn__: for instances, my CSS images load, and they're relative. [21:52] aurynn: ahh [21:52] Tim_Smart: __mn__: I think I know. Can you gist your upstart config? [21:52] __mn__: yeah [21:52] Tim_Smart: __mn__: You will need to make sure it starts as root, then degrades later on. [21:53] micheil: isaacs: I don't suppose you know if ryah's in the office today? [21:53] isaacs: he's working on writev, i believe. [21:53] isaacs: de-internetted [21:53] Tim_Smart: <3 [21:53] micheil: ah, okay [21:53] aurynn: That's workable for a test runner [21:53] __mn__: Tim_Smart: http://pastie.org/1256637 thanks its the same one from the tutorial you sent me earlier as running as a service. [21:53] Gehhilfe: bye [21:54] Tim_Smart: __mn__: My article needs fixing. [21:54] micheil: isaacs: yeah, needing feedback from him before finishing this doc-rework patch [21:54] __mn__: all the HTTP requests load with __dirname in it [21:54] __mn__: Tim_Smart: oh okay [21:54] Tim_Smart: __mn__: OK the paths should be fine then. [21:54] ryah_: micheil: hey [21:54] ryah_: micheil: just came back [21:54] micheil: ryah_: oh, wow, talk about timing [21:54] micheil: ryah_: http://static.brandedcode.com/node-doc/index.html [21:54] frio80 has joined the channel [21:55] micheil: and http://github.com/miksago/node/compare/ry:master...miksago:doc-split [21:55] CIA-72: node: 03Ryan Dahl 07dumper * rf49a6f5 10/ src/node_io_watcher.cc : Add some comments (+12 more commits...) - http://bit.ly/crARH3 [21:55] micheil: (styles and layout can be changed later, I just wanted something nice looking without much hacking) [21:56] __mn__: Tim_Smart: I don't get any errors client side or server side. So socket.io isn't complaining [21:56] CIA-72: node: 03Ryan Dahl 07master * r1eb547f 10/ lib/net.js : Lazy load modules in net.js (+5 more commits...) - http://bit.ly/94O3Ym [21:56] ryah_: looks good [21:57] ryah_: let's merge it [21:57] micheil: ryah_: what I need to know though: how should I do the makefile changes and the man page? [21:57] ryah_: micheil: lets do those later [21:57] __mn__: Tim_Smart: in fact, I get a 200 response on all socket.io sends from an XHR_Multipart. [21:58] micheil: ryah_: you're sure? [21:58] micheil: in which case I'll clean up from the old docs. [21:58] Yuffster has joined the channel [21:58] rnewson has joined the channel [21:59] Tim_Smart: __mn__: http://pastie.org/1256657 [21:59] pquerna: Tim_Smart: rebased [21:59] __mn__: Tim_Smart: thanks I'll try that. [22:00] Tim_Smart: I don't it will change much __mn__, but could change something. [22:00] Tim_Smart: think it* [22:00] Tim_Smart: pquerna: Brilliant. Will take a look. [22:00] micheil: ryah_: give me five minutes and I'll rebase it. [22:01] ryah_: already done [22:01] micheil: >_> you're too quick. [22:02] micheil: k, there's another commit in that branch [22:02] micheil: http://github.com/miksago/node/commit/dec1b5120617e7fc787661d07d913013b42e7e81 [22:03] __mn__: Tim_Smart: nope, now it doesn't work at all. [22:03] ryah_: would like 'make doc' to work [22:03] boaz_ has joined the channel [22:03] Tim_Smart: __mn__: Well, I'll leave you to it. upstart isn't my strong point. [22:03] __mn__: mmkay, thanks for your help though. [22:04] micheil: ryah_: that could be a simple mapping to node tools/doctool/doctool.js [22:05] Aria has joined the channel [22:06] Aria has joined the channel [22:08] Tim_Smart: pquerna: I'll try and get test-http-server.js passing :p [22:08] rikarends has joined the channel [22:08] micheil: ryah_: okay, I'm testing a removal of doc/node.1 (for now) and having doc/node.html -> node tools/doctool/doctool.js [22:09] micheil: uh, that's api.html not node.html [22:11] pquerna: Tim_Smart: yeah, i think there are some problems with draining [22:11] pquerna: (knowing when a request/response is done) [22:11] micheil: the reason for disabling manpages is because they aren't supported in this version of the doctool / doc-splot [22:11] saschagehlich: rauchg_: well, changing the line to if(this.socket) { this.socket.close(); } fixed it [22:11] rauchg_: saschagehlich: k [22:11] rauchg_: will push it then [22:11] rauchg_: until we figure out [22:11] rauchg_: what's going on [22:12] saschagehlich: rauchg_: okay but firefox supports websockets, right? so I don't understand why this.socket is still undefined then... [22:12] bearnard has joined the channel [22:12] rauchg_: saschagehlich: nop [22:12] rauchg_: firefox 4 beta supports websockets [22:12] rauchg_: firefox 4 supports flash, multipart, polling [22:12] rauchg_: firefox 3 sorry [22:13] pedrobelo has joined the channel [22:13] saschagehlich: rauchg_: ah okay, so changing the order of the transports for firefox will speed it up... the connection is delayed for 5 seconds until socket.io understands that websockets will not work [22:14] rauchg_: i see [22:14] rauchg_: so flashsocket [22:14] rauchg_: is not working on firefox [22:14] rauchg_: so the connectTimeout fires [22:14] Anti-X: i had this problem a few weeks ago, and firefox just wouldn't connect [22:14] Anti-X: and it would throw from inside the close function [22:14] ryah_: micheil: fixed make doc [22:14] Anti-X: for some reason [22:14] micheil: ryah_: :/ okay [22:15] __mn__: Anti-X: do you have any problem with socket.io while runnig your app in the background / daemon? [22:15] Anti-X: i don't know why it would try to close when it never even connected [22:15] ryah_: micheil: why don't we just write the makefile by hand [22:15] aurynn has joined the channel [22:15] yhahn has left the channel [22:15] ryah_: er [22:15] ryah_: man page [22:15] ryah_: then we can dump ronn.js [22:15] Anti-X: __mn__ not particularly related to that, no [22:15] micheil: ryah_: okay, that'd be the best way to go. [22:16] rauchg_: Anti-X: cause a connection is only considered a connection after it handshaked [22:16] Anti-X: there are issues, but not because it's daemonized [22:16] rauchg_: so it might be "connected" [22:16] micheil: ryah_: I'm actually using the markdown.js from ronn atm in doctool's [22:16] __mn__: Anti-X: mm okay. [22:16] rauchg_: and we still have to disconnect it [22:16] micheil: ryah_: although, that's only because showdown is messy. [22:16] Anti-X: rauchg_, but shouldn't it log on the server then? [22:16] Anti-X: client connected using transport whatever the smack [22:17] ryah_: ACTION has always wanted to write pure troff [22:17] micheil: ryah_: also, you did see: http://static.brandedcode.com/node-doc/ and http://static.brandedcode.com/node-doc/all.html, right? [22:17] ryah_: micheil: yep, i've got it all working locally [22:17] micheil: one's the multipage the other singlepage [22:17] micheil: k [22:17] ryah_: it's good- it's progress :) [22:17] micheil: ryah_: I'm actually going to fork the code out into an npm module. [22:18] Anti-X: you did well mike [22:18] isaacs: micheil: i want this for npm, too. [22:18] sechrist: Anybody know of any good decks/slideshows on why nodejs is so kickass? [22:18] webr3 has left the channel [22:18] isaacs: micheil: not included in npm's lib, necessarily, but for the npm registry [22:18] sechrist: I have this recurring problem of explaining it properly [22:18] isaacs: like, auto-generated for every pakage. [22:18] micheil: isaacs: that's what I mean by forking to a node module. [22:18] Anti-X: sechrist, two things.. async I/O and buttloads of concurrent connections [22:18] micheil: I can't do auto-gen yet. [22:18] sechrist: I keep saying that [22:19] sechrist: but people are like DJANGO DJANGO [22:19] micheil: I was toying with live-docs [22:19] Anti-X: django can't do smack [22:19] micheil: (fs.watchTree ftw.) [22:19] sechrist: I know [22:19] Tim_Smart: sechrist: The jsconf.eu 2009 slides are pretty good. [22:19] isaacs: micheil: nono, autogen shouldn't be in the node-doc thing [22:19] micheil: (if we had fs.watchTree) [22:19] davidascher has joined the channel [22:19] sechrist: I mean like practical usecases and some example code to go along with it [22:19] sechrist: to show django people they're retarded [22:19] micheil: isaacs: well, yeah, I was toying with that idea, but thought against it. [22:19] Anti-X: sechrist, is it for your coworkers? [22:19] sechrist: yes [22:19] evanmeagher has joined the channel [22:19] sechrist: CTO actually [22:19] Anti-X: any examples of apps you have? [22:19] sechrist: I might build my own deck [22:19] ehaas has joined the channel [22:19] isaacs: micheil: but there should be a site that sits on the _changes feed, does an `npm cache add whatever@latest` to get the contents every time a package changes, and then does a doc thing in the docs dir. [22:20] Anti-X: apps you make or use that could be 'better' with node [22:20] micheil: isaacs: mainly it'll be a bin script that allows you to do: doctool template.html doc_directory/ [22:20] isaacs: micheil: rad. [22:20] micheil: or something similar [22:20] sechrist: Anti-X: that's pretty much it -- I'm going to propose we re-write performance critical sections of our infrastructure in node instead of python [22:20] micheil: (I pretty much wrote it as a vendored module) [22:20] sechrist: when I say javascript people cringe around here [22:20] pquerna: hmm [22:20] micheil: currently it's pretty fixed on the locations and stuff [22:20] pquerna: streams question [22:20] pquerna: the new api [22:21] pquerna: doesn't let you express 'drain' [22:21] pquerna: how do you know when all your data is 'out' [22:22] Anti-X: sechrist, i don't know... really. people who are still living in the javascript-sucks-age may not be changeable [22:22] aurynn: Javascript sucks as much as every other language! [22:22] Anti-X: ask them if they still use IE6 too [22:22] micheil: ryah_: uhh, make doc/node.1 is dead. [22:23] micheil: because I removed the api.markdown file, thinking that was safe to remove. [22:24] Anti-X: aurynn, nooo javascript is the answer to everything! let's write the internet in javascript! uhm... let's rewrite every compiler to javascript! [22:24] klaytonix has joined the channel [22:24] Anti-X: make every other language a sublanguage of javascript [22:24] aurynn: I know! Let's add network.EventEmitter to Node! [22:24] Anti-X: hm. [22:24] Anti-X: yes let's change the internet protocol to be event driven! [22:25] aurynn: Yes! [22:25] aurynn: though actually I was thinking of just putting json blobs on the wire and doing inter-node events. [22:25] Anti-X: oh [22:25] Anti-X: but still! [22:25] Anti-X: json to the people! [22:26] Anti-X: i find it odd that you still need to 'poll' for events [22:26] ooooPsss has joined the channel [22:26] Anti-X: it should be completely possible to implement that as a hardware switch of sorts [22:27] aurynn: Because clearly having network events is sensible. [22:27] Anti-X: on power -> fire! [22:27] aurynn: Especially if they appear to be transparent! [22:27] jpld has joined the channel [22:27] sonnym has joined the channel [22:27] Anti-X: sounds like i'm tired [22:28] Anti-X: listening to prog rock and discussing making networks event driven [22:28] devinus_ has joined the channel [22:28] kuatto has joined the channel [22:29] __mn__: Anti-x: so you'd have no clue on why socket.io doesn't work with upstart? [22:29] aurynn: networks are event-driven. You send packets to your switch and it deals with them. Ta-da [22:29] kuatto: I see that in a lot of constructors an assignment is made: "self = this;" and then self is used throughout the object constructor. Why is this done? [22:30] kuatto: self = this; [22:30] aurynn: kuatto, allows closures to keep the outerly-scoped this [22:30] kuatto: good! thank you [22:31] technowe_ has joined the channel [22:33] aurynn: someEmitter.on("event", networkemitter.re_emit); // Muahaha [22:34] aurynn: This is such a bad idea. [22:34] Tim_Smart: pquerna: Currently .end() isn't signaling that the response is finished. [22:37] pquerna: ys [22:37] Tim_Smart: Um. Need a way for this to work in with your client stuff. [22:38] pquerna: one sec [22:38] pquerna: about to push [22:38] Tim_Smart: Sure. [22:39] pquerna: Tim_Smart: pushed [22:41] naturalethic has joined the channel [22:41] evanmeagher: are many of the items on the GSoC2010 still open? http://github.com/ry/node/wiki/Google-Summer-Of-Code-2010:-Ideas [22:41] evanmeagher: a quick scan makes me think that many of them should be crossed out [22:42] megamic has joined the channel [22:42] pquerna: evanmeagher: port to windows [22:42] megamic: seen isaacs [22:42] isaacs: yo [22:42] pquerna: evanmeagher: thrift/avro/etc [22:42] evanmeagher: right. protos are done, i thought. [22:43] megamic: hi =) trying to run npm with node 2.4(?) ... getting zero output from 'node npm.js' [22:43] pquerna: except nothing uses protobufs except drizzle :) [22:43] isaacs: megamic: yeah, that's not how you use it :) [22:43] kuatto: aha http://www.alistapart.com/articles/getoutbindingsituations [22:43] evanmeagher: would thrift be more useful? [22:43] isaacs: megamic: make install, and then "npm -h" for details [22:44] pquerna: evanmeagher: yes [22:45] Tim_Smart: pquerna: OK pushed some changes. [22:45] Tim_Smart: Not quite actually. [22:45] megamic: isaacs...thanks [22:45] Tim_Smart: pquerna: OK there we go. [22:46] pquerna: Tim_Smart: hmmm. [22:46] pquerna: Tim_Smart: actually wanted that comment in there [22:47] pquerna: Tim_Smart: the old code has a whole specialization for a 'hot' path [22:47] Tim_Smart: pquerna: Add it back in, but the write aggregation stuff achieves the same thing. [22:47] Tim_Smart: Except it would have already been compacted by that stage. [22:47] pquerna: - if (!this._header) { [22:47] pquerna: 50 [22:47] pquerna: + if (!this._headerSent) { [22:47] pquerna: 52 51 [22:47] pquerna: bleh [22:47] pquerna: that doens't seem right [22:48] pquerna: because header sent is not the same has writeHead being called [22:48] pquerna: http://github.com/Tim-Smart/node/commit/ae1a26453eaef6638416c3510d81750cdebce5b0#L0L50 [22:48] Tim_Smart: pquerna: Yeah, before headerSent was set to true when the header was buffered. [22:48] pquerna: Tim_Smart: yeah, i don't get what this is doing to the header writing [22:49] pquerna: Tim_Smart: hmm, oh i see. hmm. [22:49] pquerna: Tim_Smart: kill the console.log(this._parent);? [22:49] Tim_Smart: pquerna: Haha yeah, let me amend that. [22:50] isaacs: http://github.com/isaacs/npm/commit/4f8b35ef2506f37184c779ac59cead7e517f496b [22:50] isaacs: just made npm commands a lot more tweetable [22:50] megamic has joined the channel [22:51] evanmeagher: pquerna: is this not sufficient? http://github.com/wadey/node-thrift [22:51] hsuh has joined the channel [22:51] ajpiano has joined the channel [22:51] pquerna: evanmeagher: its existed for 13 days, but looks sweet [22:52] pquerna: evanmeagher: its not done though, doesn't ahve compiler support [22:53] ryah_: isaacs: i'm considering pulling node_modules [22:53] evanmeagher: gotcha. I'm trying to find ways to contribute, so maybe I'll poke around on the thrift front. [22:53] Tim_Smart: pquerna: test-http-server seems to be throwing "Stream is not writable" here. [22:53] isaacs: ryah_: yeah, you mentioned that in passing the other day [22:53] isaacs: ryah_: what's up? [22:53] softdrink has joined the channel [22:53] isaacs: that feature is awesome. [22:53] ryah_: isaacs: too complicated... [22:53] softdrink: what feature is awesome? [22:53] isaacs: really? what's complicated about it? [22:53] ryah_: people can manage their paths themselves... [22:54] ryah_: anyway - i won't do it yet - but just to let you know. [22:54] isaacs: ryah_: in practice, people don't manage their paths themselves, they have npm do it. [22:54] ryah_: yeah... [22:54] ryah_: then maybe we should make a hook so npm can get into the require and do special things [22:55] digitalspaghetti: i don't think i've ever used .node_modules [22:55] ryah_: e.g. no looks at ~/.node_libraries/loader.js [22:55] isaacs: digitalspaghetti: this isn't about the ~/.node_libraries thing [22:55] ryah_: s/no/node/ [22:55] isaacs: ryah_: yeah.. [22:55] digitalspaghetti: oh, well i've never used that either :D [22:55] ryah_: i hate modules [22:56] ryah_: anyway - lets discuss later [22:56] isaacs: ryah_: actually, i'd vote more for doing away with everything *but* the node_modules lookup paths. [22:56] isaacs: yeah [22:56] ryah_: i dont like how npm does these symlinks [22:56] isaacs: you and me both [22:56] mmattozzi has joined the channel [22:56] kuatto: do people here typically use semicolons? [22:57] aurynn: Yes. [22:57] ryah_: kuatto: yes [22:57] isaacs: i'd like to have a system where we can just realpath() the modules, and have predictable lookup paths based on that location [22:57] kuatto: good! [22:57] isaacs: kuatto: no [22:57] kuatto: ahh! [22:57] jacobolus has joined the channel [22:57] isaacs: oh, wait, i'm not typical. [22:57] isaacs: i mean, "yes" [22:57] kuatto: hah [22:57] isaacs: but i don't typically use semicolons, unless i'm winking [22:57] kuatto: then it's settled! [22:57] isaacs: ;) [22:58] kuatto: :) [22:58] CIA-94 has joined the channel [22:58] davidascher has joined the channel [22:58] kuatto: I;ve been programming too much python.. and now I have the option of not using semicolons...but I want to adopt good style [22:58] isaacs: ryah_: with the node_modules lookup path thing, and a few more small tweaks to make realpath work, then npm can be completely shimless. [22:59] dgathright has joined the channel [22:59] isaacs: kuatto: just pick a style. if you contribute to someone else's program, use their style. beyond that, we don't have to agree on much [22:59] saschagehlich: kuatto: use coffeescript. no semicolons needed. no "self = this" needed (in most cases). love it. [22:59] MikhX_ has joined the channel [22:59] pquerna: Tim_Smart: fixed an issue with parser allocation [22:59] kuatto: isaacs, very true! [22:59] pquerna: Tim_Smart: looking at test-http-cat now [23:00] Tim_Smart: pquerna: OK. [23:00] ryah_: pquerna, Tim_Smart : you is that branch working? [23:00] ryah_: s/you// [23:00] saschagehlich: btw, is anyone of you using coffeescript? [23:00] kuatto: saschagehlich, I have no exposure to coffeescript, it's compiler ? [23:00] Tim_Smart: ryah_: Getting close. [23:00] pquerna: ryah_: its getting closer; going through the test cases now. [23:00] pquerna: (there are many failures) [23:00] kuatto: compiles some grammar down to javascript? [23:00] isaacs: kuatto: if you are going to forego semis on every line, then you should be aware of the few cases where they're relevant. [23:00] saschagehlich: kuatto: exactly [23:01] saschagehlich: kuatto: http://coffeescript.org [23:01] Tim_Smart: saschagehlich: I use coffeescript on personal projects. [23:01] kuatto: isaacs, I took that semicolon test that was floating around a while back ;) [23:01] saschagehlich: Tim_Smart: ah cool. but not for public github stuff? [23:02] Tim_Smart: saschagehlich: Well for node libraries I want to share, using ecmascript means more people can read the code. [23:02] saschagehlich: Tim_Smart: well yeah that's right. sometimes coffeescript does strange things which lead to crazy code [23:03] kuatto: saschagehlich, gotta love the abstraction though huh? [23:03] isaacs: _announcer: clean the tubes! [23:03] _announcer: Cleaning the tubes for great justice! [23:03] Tim_Smart: /ignore _announcer [23:03] Tim_Smart: Ever since I did that, my chat logs have been nice and clean. [23:04] softdrink: ugh i don't want another step between me and the browser. that's why i hate GWT so much. [23:04] saschagehlich: kuatto: definitely ;) [23:04] softdrink: [23:04] kuatto: softdrink, GWT is a beast! [23:05] softdrink: GWT is on the absolute bottom of my list-o-frameworks [23:06] saschagehlich: Tim_Smart: just to underline that "crazy code" thing... http://github.com/phunkwork/hotnode/commit/055420d271fa4b47e7db78a8e917c28af1170c61 [23:07] micheil: isaacs: hmm, well, with ES harmony, modules may be deprecated.. [23:07] isaacs: HA! [23:07] isaacs: micheil: ES harmony will be written in TextMate 2 [23:07] micheil: isaacs: true. but, here's to hoping. [23:07] bpadalino: nice [23:07] pquerna: more likely haskel, just like perl6. [23:07] isaacs: micheil: it will have syntax to satisfy all three parts of the CAP theorem [23:08] Tim_Smart: isaacs: Meh. ES Harmony will be written in vim. [23:08] softdrink: ACTION licks vim [23:08] isaacs: Tim_Smart: thats.... kinda missing the point of the joke... [23:08] isaacs: i'm saying it'll never happen [23:08] micheil: isaacs: http://wiki.ecmascript.org/doku.php?id=strawman:module_loaders [23:08] isaacs: just like textmate2 [23:09] sveimac has joined the channel [23:09] bpadalino: tm2 is close to almost being somewhat conceived as an abstract idea in allan's head! [23:10] softdrink: we need more modal editors. [23:10] aurynn: We need more redcar-on-unity [23:10] Nohryb has joined the channel [23:11] isaacs: i'd be happy with a tm1.5 that doens't crash as much on snow leopard, honestly [23:11] aurynn: tm1.5 crashes on SL? [23:11] bpadalino: hrm .. that is a bit weird [23:11] bpadalino: are you using any plugins ? [23:11] aurynn: I can make it crash by doing stupid things, like very wide project searches [23:11] Me1000 has joined the channel [23:11] aurynn: but mostly it's very stable [23:12] softdrink: i tried to like textmate, but my muscle memory for vim is just too strong :( [23:12] softdrink: (nothing against textmate though) [23:12] aurynn: MacVim, when I switched, was crap [23:13] aurynn: and I disliked console Vim [23:13] aurynn: macvim is nowadays quite lovely [23:13] softdrink: macvim has gotten a LOT better in the past few months [23:14] Tim_Smart: Console vim <3 [23:14] Tim_Smart: But I'm on ubuntu, so yeah. [23:14] softdrink: i hop back and forth on 'em [23:15] Tim_Smart: I use gnu screen + vim. Killer combination. [23:15] [[zzz]] has joined the channel [23:15] Tim_Smart: Ninja-like almost. [23:15] softdrink: true-dat. [23:15] aurynn: I was starting to enjoy redcar [23:15] aurynn: but I have to hack it [23:15] softdrink: do you use byobu or regular screen? [23:16] Tim_Smart: Regular screen [23:16] Tim_Smart: Or whatever comes in the Ubuntu ppa [23:16] aurynn: and I have to go annoy the ubuntu people. [23:16] ryah_: man [23:16] ryah_: node is a champ [23:16] ryah_: ACTION is doing some benchmarks.. [23:17] softdrink: ryah_: you're preaching to the choir dude. [23:17] softdrink: hehe [23:17] softdrink: are you going to post them? [23:17] ryah_: i'm trying to see how many clients i can load up sending 500bytes/sec in both directions [23:18] ryah_: getting less than 200 bytes behind [23:18] ryah_: (the server echos the response) [23:18] Tim_Smart: ryah_: Let you feelings loose in #ruby [23:18] softdrink: multiple cores? [23:18] ryah_: just one server process [23:18] softdrink: *nod* [23:19] softdrink: speaking of… any good advice for making node take full advantage of multiple cores? [23:19] aurynn: how fast is it going? [23:19] aurynn: softdrink, spin up multiple processes [23:19] galaxywatcher has joined the channel [23:19] softdrink: then what, reverse proxy? [23:19] Tim_Smart: softdrink: Take a look at pgriess's web-worker module. [23:20] Tim_Smart: You can use the kernel to load balance. [23:20] aurynn: I am feeling compelled to do terrible things in Node. [23:20] pquerna: Tim_Smart: bleh, i busted it; outgoing.end is a PITA. [23:20] pquerna: Tim_Smart: needs some thought. [23:20] Tim_Smart: pquerna: Yeah. [23:21] ryah_: so i max out my ephemeral ports at 28k - and it handles all those connections [23:21] pquerna: over the network? [23:21] ryah_: no [23:23] polotek has joined the channel [23:23] pquerna: bbiab, heading home! [23:24] polotek: anybody here use flux or something like it to adjust their monitor light output? [23:25] evanmeagher: i use flux a bit [23:25] aurynn: So what's a good method for benchmarking a library? [23:25] evanmeagher: nice for reading/watching videos just before bed [23:25] polotek: aurynn: depends on the library [23:25] SvenDowideit has joined the channel [23:25] bentruyman has joined the channel [23:25] polotek: evanmeagher: it's usually too dark when I'm in my nerd cave [23:25] polotek: have you been able to adjust it? [23:26] ollie has joined the channel [23:26] micheil: isaacs: fairly good slides, but I like the tools/doctool/doctool.js's step function. :D [23:26] isaacs: micheil: of course. it's the one you wrote. [23:26] ngw has joined the channel [23:27] isaacs: micheil: that's the point of hte slides ;) [23:27] isaacs: but, you can't have a step in your step, can you? [23:27] rauchg_: that was very controversial [23:27] rauchg_: the note about promises :D [23:27] isaacs: rauchg_: yeah [23:27] isaacs: very :) [23:28] mtodd has joined the channel [23:28] micheil: isaacs: yeah [23:28] polotek: oh, random question for the room. why do lots of people seem to argue against including dependencies in their library? [23:28] micheil: isaacs: we should create a wiki page: Node.js Slides [23:28] polotek: micheil: +1 [23:29] micheil: but then again it might not be 100% accurate. >_> [23:29] micheil: [23:29] aurynn: I'm thinking a for loop [23:29] aurynn: that rams as much into the library as fast as possible [23:29] sebastiandeutsch has joined the channel [23:32] micheil: ryah_: oooh, dup(2) support looks interesting. [23:32] micheil: (see the dev ml) [23:33] isaacs: polotek: i havenothing against it [23:33] isaacs: polotek: but it doesn't make sense for all cases. [23:33] polotek: isaacs: sure, isn't that the answer to everything :) [23:34] polotek: just seems I hear it a lot [23:34] isaacs: polotek: sometimes building the dep is more complicated than you feel like dealing with, or likely to already be installed [23:34] isaacs: or perhaps you only use a very stable part of its api, and want to benefit from upgrades [23:34] isaacs: (without making those upgrades yourself) [23:34] ThePub has joined the channel [23:35] polotek: isaacs: with dynamic languages you can build in the ability to use the included dep or an external version right? [23:35] polotek: why don't more people do this? [23:35] sebastiandeutsch has left the channel [23:35] sschuermann has joined the channel [23:37] softdrink1 has joined the channel [23:38] isaacs: polotek: dunno [23:38] isaacs: polotek: that being said... you should totally put libxml2 in libxmljs [23:39] isaacs: polotek: like, just put it in your git repo, compile it and link to it locally on the "make" or whatever. [23:39] isaacs: polotek: but, doing that with libfuse would be in freaking sane [23:39] polotek: isaacs: I thought about it. [23:39] isaacs: polotek: since it needs a bunch of actual separately-maintained patches to even work on a mac, etc. [23:40] softdrink1: "me lost me cookie at the disco..." [23:40] polotek: I just don't know enough about the C/C++ build environment yet [23:40] polotek: the scons script for libxmljs sucks righ tnow [23:40] polotek: and I haven't had time to study up on how to improve it [23:41] polotek: there are lots of good books on the language [23:41] polotek: bu the build environment is just as important [23:41] galaxywatcher has joined the channel [23:41] polotek: and there's just not a lot of solid info on best practices, tip, tricks, gotchas, etc [23:41] isaacs: nope [23:41] isaacs: i like make best. [23:42] isaacs: cuz it just runs whatever commands you give it [23:42] polotek: isaacs: yeah but I don't just mean the tool [23:42] polotek: if someone sends me a message and says libxmljs doesn't build on Free BSD or the new Ubuntu or whatever [23:42] polotek: I have no idea what to tell them [23:43] igorgue_ has joined the channel [23:43] aurynn: You spin up a VM and attempt the build [23:43] mmso has joined the channel [23:43] cognominal has joined the channel [23:43] micheil: ryah_: ha! on that lib_eio bug report, I actually said to forward to nodejs-dev, so, yeah, I'll follow up with details on schmorp [23:43] polotek: aurynn: okay after I do that and it fails, I have no idea what to tell them ;) [23:45] aurynn: :) [23:45] gf3 has joined the channel [23:46] dguttman__ has joined the channel [23:46] naturalethic has joined the channel [23:47] ThePub has joined the channel [23:48] jpld has joined the channel [23:53] fallsemo has joined the channel [23:56] micheil: ryah_: pull request for a fix to disable the manpage building [23:56] ryan_gahl has joined the channel [23:57] muk_mb has joined the channel [23:57] hsuh has joined the channel