[00:02] paulrobinson has joined the channel [00:03] Evet: connect, express, socket.io, jade, stylus, node-static, hiredis, redis [00:03] Evet: are what im going to try [00:03] Ond: :thumbsup: [00:03] drudge: good list [00:03] drudge: there was a redis orm called rapid [00:03] drudge: maybe look at that too [00:04] drudge: not sure if tjholowaychuk has given it much love [00:04] tjholowaychuk: drudge: not really, I removed it because I wasnt using it [00:04] drudge: oh :P [00:04] samcday: Does anyone know how to compile Node with debugging symbols and gdb support? ./configure --gdb --debug gives me compiler errors when compiling V8 =\ [00:04] tjholowaychuk: :D [00:04] drudge: i've started 3 projects with it and switched to mongoose everytime [00:05] Evet: and, what else you would add to the list? [00:05] pHcF has joined the channel [00:05] tjholowaychuk: drudge: yea it didnt have enough features, I didnt have time to finish indexing or anything [00:05] tjholowaychuk: might revisit it some day for fun [00:06] drudge: definitely a cool idea [00:06] tjholowaychuk: even for the simple stuff it's nice to have an object model around redis [00:06] tjholowaychuk: and validation [00:06] drudge: yeah i agree [00:06] drudge: objects are our friends [00:07] samcday: Anyone? [00:07] echosystm: tjholowaychuk: you're the connect guy right? [00:07] techwraith has joined the channel [00:07] tjholowaychuk: echosystm: yup [00:07] tjholowaychuk: whats up [00:08] samcday: Compiling node v0.4 branch with --gdb configure flag chokes on compiler.cc in V8 :< [00:08] echosystm: just noticed connect.static - static is one of those weird not-used-but-reserved words [00:08] echosystm: is that going to be a problem? [00:08] tjholowaychuk: nope [00:08] tjholowaychuk: if you use jslint and trust it [00:08] tjholowaychuk: yes [00:08] tjholowaychuk: but no [00:08] echosystm: ok [00:09] skm has joined the channel [00:09] echosystm: thanks [00:09] seivan_ has joined the channel [00:12] Evet_ has joined the channel [00:14] jetienne: dropin require() in browser is 35lines of js :) [00:14] jetienne: i like it [00:14] FireFly|n900 has joined the channel [00:17] technoweenie has joined the channel [00:17] doubletap has joined the channel [00:18] fusspawn has joined the channel [00:18] [[zz]] has joined the channel [00:19] techwraith: is there a way to rewrite a request header before closing out the request? [00:20] doubletap has left the channel [00:20] techwraith: for example : headers['content-length'] = 'dummy value'; [00:20] techwraith: send some data [00:20] techwraith: then : headers['content-length'] = data.length; [00:21] techwraith: ? [00:21] fusspawn: I woudlve thought that the headers wouldve already been flushed to the browser no? [00:21] mikegerwitz: techwraith: You cannot modify headers after data has been sent [00:21] techwraith: Thought so [00:21] mikegerwitz: techwraith: what are you trying to accomplish? [00:22] mikegerwitz: techwraith: There may be a better way of doing it [00:22] sveimac has joined the channel [00:22] sechrist: Man, these lazy loaders and stuff bother me [00:22] fusspawn: You could buffer the output till you know the content size, then write the headers and the buffed output. [00:22] fusspawn: buffered* [00:22] sechrist: For a browser, do you really want all of your js modularized so that you're including like 50 js files? [00:23] mikegerwitz: sechrist: no :) minified. [00:23] sechrist: then lazy loaders won't work for you [00:23] mikegerwitz: sechrist: Though I assume your question was rhetorical ;) [00:23] sechrist: unless the lazy loader like waits up until a delay to know if more are coming or something [00:23] sechrist: then batches [00:23] sechrist: and the server/cdn has a copy of the combined ones [00:23] sechrist: similar to facebook's bootstrapper [00:23] NuckingFuts has joined the channel [00:24] fusspawn: Server can combine on the fly. request and url with the js names tagged up, combine the files echo out. [00:24] mikegerwitz: sechrist: I do see merit in lazy loading. But not 50 separate files. I'd rather lazy load featurse. Like, if you click "photo album" lazy load the interface. Then if you want to edit a photo, lazy load the photo editing...not each class/something like that though.. [00:24] sechrist: yeah [00:24] sechrist: I just fear people going overboard [00:24] mikegerwitz: sechrist: dojo's an excellent example of overboard ._. [00:25] NuckingFuts: deviantART does that, and it pisses me off. [00:25] fusspawn: Its got to be an excellent example of something.. [00:25] copenhas has joined the channel [00:25] tjholowaychuk: NuckingFuts: my friend is friends with the guy who started DA [00:25] NuckingFuts: They made this DWait thing, which combines oft-used things into sets, which are then setn together [00:25] tjholowaychuk: lots of $$ :D [00:26] NuckingFuts: tjholowaychuk: I know who started deviantART lol but there were 3 of the founders =P [00:26] ryanfitz has joined the channel [00:26] NuckingFuts: Angelo Sotira, Scott Jarkoff, and... Shit, I forget #3's name. [00:27] sechrist: tjholowaychuk: is learnboost used by any schools outside of CA yet? [00:27] sechrist: terrible school software needs to be destroyed [00:27] tjholowaychuk: sechrist: not sure off hand, I believe so [00:28] fusspawn: Wish they would start using it over here in the uk :/ [00:28] fusspawn: Or wouldve done back when i was studying, We had some useless stuff to use :/ [00:28] sechrist: if you write something to make migration stupidly simple from like SASI or something [00:28] sechrist: somebody will love you [00:29] sechrist: Pearson has terrible technology >:( [00:31] l8rs: Figured it out! (how to build on cygwin) [00:31] Evet has joined the channel [00:31] fusspawn: Yay, grats l8rs. [00:32] sprout has joined the channel [00:32] GriffenJBS: how can I return an value from an event to a procedural function? [00:33] HAITI has left the channel [00:33] ryankirkman has joined the channel [00:33] sechrist: Has anybody made node support blocking code yet? That's all it's missing :) [00:33] Evet: is node-static the best static file serving module? [00:33] [[zzz]] has joined the channel [00:34] fairwinds: tjholowaychuk: hi. do you know if jqtpl works in express. Try to switch my server side templates to jquery templates but getting TypeError: Object # has no method 'compile' [00:34] ryankirkman: In express.js, can I pass my request on to another non-matching route? [00:34] tjholowaychuk: Evet: I dont think it supports Range [00:34] isaacs: Just 12 issues left!!! https://github.com/isaacs/npm/issues [00:34] sechrist: gogogo [00:34] techwraith has joined the channel [00:34] fairwinds: I am on express 2 with 0.4.2 [00:34] tjholowaychuk: fairwinds: hmm it probably supports express 1.x [00:34] Evet: tjholowaychuk: what do you suggest instead? [00:35] tjholowaychuk: ryankirkman: not unless you name the callback function and manually call that, or replace req.url and next() [00:35] sechrist: isaacs: are you in oakland too? [00:35] techwraith: mikegerwitz: trying to proxy an upload from the browser, through our node server, to S3 [00:35] GriffenJBS: sechrist: you mean like libeio? [00:35] sechrist: what is with all of the node peoples living in oakland [00:35] tjholowaychuk: Evet: connect's is pretty solid [00:35] sechrist: GriffenJBS: no I was kidding [00:35] isaacs: sechrist: yeah [00:35] ryankirkman: tjholowaychuk: How would I name the callback function? [00:36] ryankirkman: tjholowaychuk: Is there any negative side-effects from changing req.url and calling next()? [00:36] tjholowaychuk: ryankirkman: or just redirect [00:36] tjholowaychuk: there could be yeah [00:36] tjholowaychuk: depending on what you are doing [00:36] tjholowaychuk: I recomment just redirecting [00:36] tjholowaychuk: recommend*, kinda lame to hack ways around a redirect [00:37] KragenSitaker_ has joined the channel [00:37] KragenSitaker_: hi. I [00:37] ryankirkman: tjholowaychuk: Cool, thanks [00:37] KragenSitaker_: oops [00:37] fairwinds: tjholowaychuck: just found something that talked about similar issue with haml. Up to now using ejs however would like to consolidate templates on client and server with jquery. [00:37] tjholowaychuk: fairwinds: yeah it depends, my haml supports 2.x, but tim's does not [00:38] techwraith: mikegerwitz: But I need to do it without buffering the upload into memory first [00:38] tjholowaychuk: or you can use app.register() to tie a non-compliant engine in [00:38] seivan has joined the channel [00:38] KragenSitaker_: hi. I'm trying to compile node.js on MacOS 10.5. ./configure completes successfully if I set C_INCLUDE_PATH and LIBRARY_PATH and PATH, but then the build fails because it can't find any header files. if I add -isys [00:38] KragenSitaker_: uh [00:38] Evet_ has joined the channel [00:39] KragenSitaker_: if I add -isysroot /Developer/SDKs/MacOSX10.5.sdk to one of the g++ command lines, it builds a .o file successfully [00:39] mikegerwitz: techwraith: node by deafult uses the 'chunked' encoding. That does not require knowning the file size in advance - it's sent in chunks. You could try that [00:39] KragenSitaker_: how do I get node's ./configure to add the -isysroot option to the cflags, cxxflags, etc.? [00:39] mikegerwitz: techwraith: http://en.wikipedia.org/wiki/Chunked_transfer_encoding [00:39] techwraith: Amazon doesn't support chunked encoding [00:39] KragenSitaker_: also, why am I having this problem in the first place? [00:40] KragenSitaker_: am I supposed to somehow configure a system default -isysroot somewhere? [00:40] KragenSitaker_: I am a total novice on MacOS development [00:40] mikegerwitz: techwraith: I'm pretty sure you just write the chunks, then end the request. I think node will do the rest for you (don't need to output the chunk sizes manually) [00:40] tiemonster has joined the channel [00:40] Evet_: tjholowaychuk: is that included in connect module, or any additional?? [00:40] tjholowaychuk: Evet_: yeah it's in connect [00:40] Evet_: great [00:40] tiemonster: If I want to pass an Array to Node.js, what type do I use in v8? [00:41] techwraith: mikegerwitz: http://docs.amazonwebservices.com/AmazonS3/latest/API/ [00:41] KragenSitaker_: can anyone hear me? [00:41] astropirate: no [00:41] KragenSitaker_: darn [00:41] insin: who said that? [00:42] fairwinds: tjholowaychuk: currently doing app.set('view engine', 'html'); [00:42] fairwinds: app.register('.html', require('jqtpl')); [00:42] KragenSitaker_: my full sad tale of woe is written out at https://gist.github.com/863264 [00:42] tjholowaychuk: fairwinds: yeah you could do app.register('.html', { compile: function(){ } } hack that together [00:42] tjholowaychuk: look at the markdown example in express [00:42] softdrink has joined the channel [00:43] eyesUnclouded has joined the channel [00:43] fairwinds: tjholowaychuk: k, thanks. [00:43] PDR has joined the channel [00:44] Evet__ has joined the channel [00:45] PDR: I have a problem that I think is due to my lack of linuxy knowledge. I have this node.js HTTP server. I can access it fine for localhost, but it does not respond if I try to come at it from a 192.168 address or my global IP address. Does anyone know what my problem could be? [00:45] Evet__ has joined the channel [00:45] paul_k has joined the channel [00:46] GriffenJBS: PDR what host is it bound to? [00:46] PDR: Oh! [00:46] fusspawn: you binding specifically to localhost in the listen call? [00:46] PDR: Yes, thanks. [00:46] PDR: Sigh... [00:46] GriffenJBS: problems are easy when they aren't yours [00:46] fairwinds: hey [00:47] PDR: That did it, thanks. [00:47] skm has joined the channel [00:48] rchavik has joined the channel [00:50] atiti has joined the channel [00:50] KragenSitaker_: anybody have experience building node.js on OS X? [00:50] KragenSitaker_: I don't understand what I'm doing wrong. [00:51] JojoBoss has joined the channel [00:52] echosystm: KragenSitaker_: 1. download the tar 2. tar -xf ... 3. ./configure --prefix=~/Node 4. make 5. make install [00:52] KragenSitaker_: echosystm: yeah, that's what I did, except --prefix=~ [00:52] KragenSitaker_: echosystm: but it couldn't find gcc until I added /Developer/usr/bin to the $PATH [00:53] echosystm: 6. open ~/.profile and add PATH=/Users/yourusername/Node/bin:$PATH [00:53] KragenSitaker_: echosystm: and then gcc couldn't find its include files and libraries [00:53] squeeks_ has left the channel [00:53] GriffenJBS: ..? crypto.createHash(algo) errors are not catchable? [00:53] echosystm: do what i said there, from 1-6 [00:53] echosystm: exactly as i said [00:53] KragenSitaker_: okay. I am on step 3 now [00:54] doubletap has joined the channel [00:54] KragenSitaker_: echosystm: results are at https://gist.github.com/863356 [00:55] doubletap has left the channel [00:55] KragenSitaker_: echosystm: as you can see, ./configure is failing because gcc does not know where to find pthread.h [00:55] JojoBoss: anyone know why node wont bind to port 53 on ubuntu? [00:56] KragenSitaker_: echosystm: if I pass -isysroot /Developer/SDKs/MacOSX10.5.sdk to gcc, then I can build things. how do I get the configure script to pass that flag? [00:56] echosystm: what version of the osx developer tools do you have installed? [00:56] KragenSitaker_: or why do I need it? I am clearly doing something odd to have this problem, right? [00:56] echosystm: and what version of osx are you using [00:56] KragenSitaker_: how do I find that out? [00:57] echosystm: did you even install the osx develoepr tools? [00:57] KragenSitaker_: Darwin Black-Beauty 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 [00:57] bradleymeck has joined the channel [00:57] echosystm: http://developer.apple.com/technologies/tools/ [00:57] KragenSitaker_: I think my wife did install them a long time ago, yes. at any rate they are present [00:57] echosystm: install this [00:58] KragenSitaker_: Xcode? [00:58] fusspawn: if it was "a long time ago" i wouldnt be supprised to find there outdated, at any rate a fresh copy wouldnt hurt. [00:58] KragenSitaker_: but it's four gigabytes [00:58] echosystm: the developer tools [00:58] KragenSitaker_: how can I tell if the developer tools are installed already? [00:58] Evet has joined the channel [00:58] Evet has joined the channel [00:58] PDR: JojoBoss: Normal users can't bind to ports that low. It works for me (also on Ubuntu) if I do "sudo node whatever.js" [00:58] GriffenJBS: JojoBoss: you have dns running? [00:59] KragenSitaker_: echosystm: thanks very much for trying to help, by the way [00:59] [[zz]] has joined the channel [00:59] echosystm: if you dig around in /Developer you might be able to find the version somewhere [01:00] KragenSitaker_: well [01:00] KragenSitaker_: in /Developer/SDKs [01:00] KragenSitaker_: there are directories named MacOSX10.4u.sdk and MacOSX10.5.sdk [01:00] echosystm: ok that is old as fuck lol [01:00] echosystm: what version of OSX are you running? [01:00] KragenSitaker_: 10.5 [01:00] echosystm: hrm [01:01] KragenSitaker_: 10.5.8 specifically [01:01] echosystm: i cant really help you here, your OS and dev tools are both out of date [01:01] KragenSitaker_: heh [01:01] KragenSitaker_: I appreciate the effort! [01:01] eventi has joined the channel [01:02] echosystm: if you want to get up and running quickly, you're probably best off just running a linux vm or something [01:02] echosystm: the latest dev tools wont run on 10.5, as far as i am aware [01:02] echosystm: and you'll probably need them to build node [01:02] KragenSitaker_: the latest dev tools won't run on 10.5, that is correct [01:03] KragenSitaker_: I have an actual linux machine three meters away [01:03] KragenSitaker_: two of them actually [01:03] KragenSitaker_: three if you count the router [01:03] echosystm: are they up to date? [01:03] KragenSitaker_: ha, well, two are [01:03] KragenSitaker_: but I want to build a MacOS binar [01:03] KragenSitaker_: y [01:03] bradleymeck has joined the channel [01:04] KragenSitaker_: and I suspect that configuring node to cross-compile is probably not easier than adding a flag to its C compiler invocation :) [01:04] GriffenJBS: I used npm to install a package and it's not working, how do I debug it? [01:04] GriffenJBS: require() doesn't find it [01:04] isaacs: GriffenJBS: did you install node with Homebrew? [01:04] GriffenJBS: btw, npm normally works [01:04] isaacs: thanks [01:05] GriffenJBS: no, brew isn't installed (I don't think) [01:05] isaacs: GriffenJBS: echo "export NODE_PATH="$(npm config get root -s) >> ~/.bash_profile [01:05] isaacs: maybe that^? [01:05] GriffenJBS: npm doesn't list it [01:05] isaacs: whats your NODE_PATH environment [01:05] isaacs: ? [01:05] isaacs: echo $NODE_PATH [01:05] isaacs: npm config get root -s [01:05] KragenSitaker_: echosystm: thanks again for trying to help! I really appreciate it [01:05] isaacs: what do those two commands output? [01:05] GriffenJBS: empty, but node root, as listed by npm is in require.paths [01:06] isaacs: GriffenJBS: are you sure? [01:06] tiemonster: Can anyone point me at an example of how to use an Array in v8? [01:06] isaacs: GriffenJBS: whats `node -e require.paths`? [01:06] isaacs: tiemonster: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array [01:06] techwraith: isaacs: Do you get a notification whenever someone mentions NPM in here or something - you're crazy fast to respond :P [01:06] isaacs: technoweenie: yeah [01:06] isaacs: ircretary: hi [01:06] ircretary: isaacs: Hello :) [01:07] isaacs: ircretary: tell techwraith hello [01:07] ircretary: isaacs: I'll be sure to tell techwraith [01:07] Evet_ has joined the channel [01:07] isaacs: technoweenie: i also have npm set up as a watchword in Colloquy [01:07] GriffenJBS: yeah, just checked, ran 'npm config get root' returned /usr/local/lib/node [01:07] GriffenJBS: and that is the last entry in require.paths [01:07] techwraith: ircretary: hi [01:07] ircretary: techwraith: Hello :) [01:07] isaacs: GriffenJBS: what version of node? [01:07] copenhas has left the channel [01:07] GriffenJBS: 0.4.1 [01:08] isaacs: ok, what did you install that doesn't work? [01:08] GriffenJBS: mmap 0.0.2 [01:08] isaacs: npm ERR! couldn't read package.json in /var/folders/R3/R3EA-a2UE2OcM6kNMZeg0E++Lz2/-Tmp-/npm-1299719298167/1299719298168-0.22055156785063446/contents/package [01:08] isaacs: npm ERR! Error installing mmap@0.0.2 [01:08] isaacs: npm ERR! Error: Failed to parse json [01:08] isaacs: npm ERR! Unexpected token } [01:08] isaacs: there ya go [01:08] GriffenJBS: the current package doesn't work, I dl'd it, fixed it and did npm install local.tgz [01:08] isaacs: email $(npm owner ls mmap) and tell them that their json is broken [01:08] isaacs: oh, ok [01:09] GriffenJBS: install gave no errors [01:09] mike5w3c has joined the channel [01:10] KragenSitaker_: oh hey, I solved the problem [01:10] isaacs: GriffenJBS: yeah, there's no "main" field, that's why [01:11] isaacs: it needs: "main":"./build/default/mmap" [01:11] JojoBoss: GriffenJBS: I was trying to test out the dns package from the modules page and couldn't get it to bind even while under root. Although I had my network interfaces screwed up at the time, so maybe thats why. [01:11] KragenSitaker_: dear whoever may be reading these IRC logs in the future: LINKFLAGS='-isysroot /Developer/SDKs/MacOSX10.5.sdk' CXXFLAGS='-isysroot /Developer/SDKs/MacOSX10.5.sdk' CFLAGS='-isysroot /Developer/SDKs/MacOSX10.5.sdk' ./configure --prefix=$HOME --without-ssl makes it partly work, although it still bombs out later [01:11] GriffenJBS: he's been email the fix [01:11] charlenopires has joined the channel [01:12] Murugaratham has joined the channel [01:12] isaacs: kewl [01:12] darshanshankar has joined the channel [01:12] Hello71 has joined the channel [01:12] Hello71 has joined the channel [01:13] darshanshankar has left the channel [01:14] Hello71 has joined the channel [01:14] Hello71 has joined the channel [01:15] Hello71 has joined the channel [01:15] Hello71 has joined the channel [01:15] tiemonster: crap [01:16] tiemonster: I meant in C++ [01:16] tiemonster: hmm - I'm about to lose internet connection [01:18] GriffenJBS: npm xmas !? [01:22] echosystm: is it bad to use __proto__ ? [01:22] echosystm: i see a lot of people using it, but i thought it was deprecated [01:22] wav1 has joined the channel [01:22] stephenlb has joined the channel [01:23] dyer has joined the channel [01:24] xla has joined the channel [01:24] themiddleman_itv has joined the channel [01:26] Evet: what is the best ORM module for Redis backend? [01:27] chiel has joined the channel [01:28] tiemonster has joined the channel [01:28] tiemonster: and I'm back [01:29] tiemonster: and he's gone [01:29] vnguyen has joined the channel [01:29] tiemonster: I meant in C++ [01:31] tiemonster: hello? [01:31] echosystm: what do you want tiemonster [01:31] GriffenJBS: echosystm: it's been around and will be for a while, checkout Object.getPrototypeOf [01:32] tiemonster: create an Array from C++ [01:32] brianloveswords has joined the channel [01:32] tiemonster: wasn't sure if my questions were getting through. working off wifi in the rain. :_( [01:32] echosystm: what do you mean create an array from c++ [01:33] echosystm: you are writing a c++ module and want to create a javascript array within that module, which is accessible from js? [01:33] tiemonster: yeah. sorry. [01:33] tiemonster: C++ extension for node. I have a method that returns an array. [01:34] echosystm: http://bespin.cz/~ondras/html/classv8_1_1Array.html [01:34] softdrink has joined the channel [01:35] mikeal has joined the channel [01:36] strmpnk has joined the channel [01:36] tiemonster: yeah - I was trying to decipher that [01:36] echosystm: GriffenJBS: __proto__ is a magic thing that they added and then deprecated according to mozdev [01:37] echosystm: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto [01:37] echosystm: see here [01:37] echosystm: so... why are people still using it? [01:37] tg has joined the channel [01:37] echosystm: isnt that really bad? [01:37] tiemonster: because its magic [01:37] tiemonster: people like magic [01:39] tiemonster: opa! it compiled! [01:39] tiemonster: craziness [01:39] zeqeiroz has joined the channel [01:39] tiemonster: coordinate->Set(Number::New(0), Number::New(new_latitude)); [01:39] sprout has joined the channel [01:40] tiemonster: to be honest, I wasn't convinced C++ was the way to go. we coded it up in javascript to begin with. [01:40] tiemonster: but it's significantly faster in C++ [01:41] echosystm: cool story bro [01:43] tiemonster: lol [01:43] GriffenJBS: significantly faster in C++ might mean you were doing in wrong in JS [01:43] tiemonster: ACTION goes back into his corner [01:43] Croms_ has joined the channel [01:43] tiemonster: it's simple algebra. hard to get wrong. [01:44] tbranyen: faster in c++ *shocked* [01:44] zentoooo has joined the channel [01:44] xla has joined the channel [01:44] tbranyen: j/k not shocked at all [01:44] Gregor: Uhhh, simple algebra is EXACTLY the kind of thing that's going to be faster in C++. [01:45] ryankirkman: Is there a version of JSON.parse that doesn't raise an exception if it encounters an ILLEGAL token? [01:45] GriffenJBS: if you just have one main function code that in c/c++ and glue it all together with js [01:45] MikhX has joined the channel [01:45] echosystm: c++ is neither guaranteed to be faster or slower than js [01:45] Gregor: ryankirkman: Yes, the one you make by wrapping JSON.parse in a try-catch. [01:45] echosystm: many times, js will be faster [01:45] Gregor: Hello bits, are you an int32 or a double? Oh, you're a string? Well I'll just parse that for you hyukkahyukk! HEY THERE BITS I'MMA MUL YOU NOW [01:45] ryankirkman: Gregor: and that is currently best practice? [01:46] Gregor: ryankirkman: Best practice is to handle the exception properly :P [01:46] soulofpeace has joined the channel [01:46] GriffenJBS: Gregor: play with dolls much as a kid? [01:46] Gregor: GriffenJBS: Your humar it ar so funnies. [01:46] Gregor: Not that mine's so great, but *eh* X-P [01:47] GriffenJBS: :-) [01:47] GriffenJBS: I read your JS/C++ convo and it reminded me of my G.I. Joes [01:48] Gregor: When I was a kid I played with BASIC and LOGO [01:48] samcday: Hi guys, I was wondering if anyone could give me some tips to getting debugging symbols for a C++ node addon working? [01:48] GriffenJBS: Gregor: I played with those too [01:48] samcday: Empty gdb stracktraces make me sad :( [01:49] tiemonster: samcday: if you figure it out, let me know :-( [01:49] samcday: tiemonster: Challenge accepted! [01:50] tiemonster: :-) [01:50] samcday: Surely there must have been poor sap out there who wrote some bindings and was getting raped by segfaults and found a way to get debugging symbols out of a .node addon? [01:52] lukus: hey - checkout this node.js chatroom ... http://fzysqr.no.de:8000/ [01:52] Croms has joined the channel [01:53] zachsmith: lukus what is it? [01:54] lukus: zachsmith, http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/ [01:54] lukus: from that article [01:54] lukus: on there at the moment.. it's neat [01:54] lukus: no boobietraps [01:54] lukus: (I hope) [01:55] tiemonster: v8bot: [ 29.034681, -81.303774 ] == [ 29.034681, -81.303774 ] [01:55] v8bot: tiemonster: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [01:55] tiemonster: [ 29.034681, -81.303774 ] == [ 29.034681, -81.303774 ] [01:55] tiemonster: eh [01:55] tiemonster: code [ 29.034681, -81.303774 ] == [ 29.034681, -81.303774 ] [01:55] tiemonster: `v [01:55] Ond: v8 prefix [01:55] v8bot: Ond: v8 is no longer supported (except in PM). Try v8: or v8> [01:55] tiemonster: fine then [01:55] Evet_ has joined the channel [01:56] Ond: v8: [ 29.034681, -81.303774 ] == [ 29.034681, -81.303774 ] [01:56] v8bot: Ond: SyntaxError: Unexpected token < [01:56] tiemonster: v8bot: code [ 29.034681, -81.303774 ] == [ 29.034681, -81.303774 ] [01:56] v8bot: tiemonster: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [01:56] tiemonster: wth? [01:57] wadey: v8: 1 === 1 [01:57] v8bot: wadey: true [01:57] tiemonster: ah [01:57] tiemonster: v8: [ 29.034681, -81.303774 ] == [ 29.034681, -81.303774 ] [01:57] v8bot: tiemonster: false [01:57] tiemonster: what? [01:57] tbranyen: ref not val [01:57] tbranyen: >_> [01:57] tiemonster: awesome [01:57] tbranyen: read a 101 js book >_< [01:57] tbranyen: stuff will become clear :D [01:58] piscisaureus_ has joined the channel [01:59] tiemonster: yeah - I just try to cheat every now and then [01:59] tiemonster: plus I work in 7 languages daily, so I forget what you can do in which [01:59] tbranyen: i hear you on that [01:59] technoweenie: which 7 [01:59] constantx has joined the channel [01:59] tbranyen: huh? [02:00] technoweenie: tiemonster: which 7 languages do you work on daily [02:00] tbranyen: i can't tell if i'm being trolled [02:00] tbranyen: i need an adult [02:00] technoweenie: i'm definitely trolling you [02:00] zachsmith: Thats a lot of languages! [02:00] eventi has joined the channel [02:01] tiemonster: not all programming languages [02:01] tbranyen: i so impressed i don't even now how to convey how much i envy you [02:01] tbranyen: i think i am going to write a song [02:01] tiemonster: in order of frequency: Python, SQL, Javascript, C++, Java, XML and CSS [02:02] tbranyen: yeah i often confuse javascript syntax with css [02:02] technoweenie: english! [02:02] zachsmith: dont forget english! [02:02] tiemonster: so 4 programming languages daily [02:02] jpstrikesback has joined the channel [02:02] tiemonster: right? [02:02] tiemonster: yeah [02:02] tiemonster: seriously - XML should die a slow painful death [02:03] tiemonster: as should the person that set up Tomcat to require manual editing of hundreds of XML files [02:03] tbranyen: heh apache 4 lyfe [02:03] tiemonster: apache+mod_wsgi isn't any more fun to set up [02:03] hipe: xml is like violence, if it a first it does not succeed, use more of it [02:03] tiemonster: I'll stick to programming, and continue to pay my sysadmin well [02:03] technoweenie: i think cassandra just switched from xml config to yaml [02:04] tiemonster: yaml I can handle [02:04] tiemonster: it's like python [02:04] tbranyen: heh if only apache2 configs could be moved over [02:04] zachsmith: yaml needs more symbols [02:04] tbranyen: <3 nginx simplicity [02:04] tiemonster: every now and then someone tries to talk me into writing PHP [02:04] zachsmith: not enough { } and [ ] [02:04] KragenSitaker_: I finally figured out how to get Node to build on MacOS 10.5.8 for real. Answer is about 7 lines long, and is at https://gist.github.com/863264 in case anyone is looking in this log. Solved the GCC and G++ errors with -isysroot. [02:05] tiemonster: never understand programmers' affinity for OS X [02:05] Nietecht has joined the channel [02:05] kawaz_air has joined the channel [02:06] tbranyen: surprised its much different from 10.6.4 [02:06] tbranyen: (which is what i'm on) [02:06] tbranyen: really easy to install node [02:08] kawaz_work has joined the channel [02:08] jpstrikesback has joined the channel [02:08] wadey: tiemonster: for a long time, linux on a laptop was painful (that's why I switched) [02:09] danfo has joined the channel [02:09] tiemonster: yay tickless kernel! [02:09] matschaffer has joined the channel [02:09] zachsmith: tiemonster: I use it because I want people to like me [02:09] tiemonster: finally - someone is honest [02:09] tiemonster: ;-) [02:09] tbranyen: wadey: yeah i use arch linux on my laptop and its still painful [02:09] tiemonster: lol [02:10] tiemonster: didn't know that was still around [02:10] Murugaratham has joined the channel [02:10] tbranyen: "still around" as if it was that old to begin with [02:10] tbranyen: sorry i'm an arch linux fanboy and it pains me to hear that :( [02:10] arpegius has joined the channel [02:11] tbranyen: bleeding edge or bust [02:11] Evet has joined the channel [02:11] tiemonster: I need an assert.kindaEqual() [02:12] tiemonster: it's hard to do unit testing with floating point arithmetic [02:13] monokrome has joined the channel [02:13] davidascher has joined the channel [02:14] wadey: assert.ok(Math.abs(a - b) < .0001 } [02:16] Me1000 has joined the channel [02:16] tiemonster: yeah - but the failure is less clear [02:16] tiemonster: false == true? [02:16] wadey: add a nice message to the assert [02:16] AphelionZ has joined the channel [02:16] tiemonster: Yeah - I'll have to think about how to word it [02:17] wadey: a + " != " + b ? [02:17] Lion2Leo has joined the channel [02:17] andrewfff has joined the channel [02:18] Evet has joined the channel [02:19] bwinton has joined the channel [02:20] tiemonster: yeah [02:20] tiemonster: but it's GPS coordinates [02:20] tiemonster: "Point was not where expected. You may be lost" :-) [02:22] tiemonster: ack. .0002 miles off [02:24] GriffenJBS: with crypto.createHash, how do you detect/catch errors? [02:25] Evet_ has joined the channel [02:25] GriffenJBS: tiemonster: if your off but within arms reach I think your close enough [02:26] tiemonster: I'm off from the tolerance that much [02:26] GriffenJBS: 0.0002 miles is like 0.32m or 1.05 foot [02:26] GriffenJBS: ..?! what kind of tolerance do you have? [02:27] tiemonster: 5m [02:27] tiemonster: I'm like 5.02m off or something like that [02:27] tiemonster: I see something [02:28] tiemonster: haha. yeah. I found it. [02:28] GriffenJBS: nice [02:28] tiemonster: forgot that the earth isn't spherical [02:28] tiemonster: it's football shaped [02:28] tiemonster: kind of [02:28] GriffenJBS: :-) only if your far enough away when you look at it [02:28] davidascher has joined the channel [02:29] GriffenJBS: oblique? [02:29] Ond: No [02:29] GriffenJBS: that's not right... too much schooling has fallen out of my head [02:29] Ond: Oblate spheroid [02:29] GriffenJBS: Oblate, thank you [02:31] constantx_ has joined the channel [02:31] locks has joined the channel [02:31] danfo has joined the channel [02:31] GriffenJBS: oblate and prolate spheroids, it's still in there I guess [02:31] locks: I heard expressjs is the cats pants, does it have a channel? [02:33] zemanel has joined the channel [02:34] technoweenie has joined the channel [02:35] gkatsev: #node.js [02:35] mscdex: the cat's wearing pants? [02:35] gkatsev: no, he's wearing boots [02:35] gkatsev: or a hat [02:35] gkatsev: cat's don't wear pants [02:36] Ond: Not even when it's cold or raining? [02:36] Ond: I'm not buying your theory. [02:37] zemanel has joined the channel [02:37] Evet has joined the channel [02:37] Evet has joined the channel [02:37] gkatsev: Ond: a cat would be outside when it's raining? [02:38] Ond: Cats have things to do they don't let a little weather get in the way. [02:38] zemanel has joined the channel [02:38] tiemonster: ah - wrong tolerance [02:38] tiemonster: .003 [02:38] tiemonster: I'm good [02:38] gkatsev: Ond: you're wrong. a cat wouldn't risk getting wet, even by wearing pants [02:39] tiemonster: locks: express is awesome. I love it. [02:39] locks: I'm getting into the whole thing [02:39] slickplaid: express is wonderful [02:39] locks: express seems cool, have you used it with mustache? [02:39] tiemonster: I put my callbacks into a separate module. It really cleans things up. [02:40] danfo: But if a cat's expressjs layouts were rendering without any body, would #nodejs fix it for them? [02:40] tiemonster: we're doing strictly a json API, so no [02:42] seivan has joined the channel [02:42] tiemonster: I'm not a fan of embedding user information in pages. It defeats caching. [02:42] tiemonster: I load everything async [02:43] tiemonster: and cache the crap out of everything [02:43] dschn has joined the channel [02:43] seivan has joined the channel [02:44] AAA_awright: Is a node_chat example hosted somewhere? [02:44] Qix_ has joined the channel [02:45] throughnothing has joined the channel [02:45] tiemonster: you missed it [02:45] tiemonster: ACTION scrolls back [02:45] Evet_ has joined the channel [02:46] tiemonster: ah - never mind [02:47] tiemonster: AAA_awright: here's the one from the web site - http://chat.nodejs.org/ [02:47] ibolmo has joined the channel [02:47] ibolmo has left the channel [02:47] AAA_awright: Huh I didn't see that [02:47] tiemonster: it's in the midst of that really long explanation text [02:48] tiemonster: anyways, I'm off to bed [02:48] tiemonster: more C++ tomorrow [02:48] tiemonster: :-( [02:48] tiemonster: night [02:48] tiemonster: o/ [02:48] Emmanuel__ has joined the channel [02:49] bentruyman has joined the channel [02:49] possibilities has joined the channel [02:49] RichardJ has joined the channel [02:50] seivan has joined the channel [02:53] unlink: Where might this be coming from? https://gist.github.com/41f3f90028e5faf562c9 [02:53] Lion2Leo: Hmm yeah that's one example. There's also one on the screencasts from nodetuts.com using socket.io [02:54] Lion2Leo: The chat from node doesn't have the source on git, last time I tried getting it the link was broke [02:54] monokrome: Oh no. Anonymous function :| [02:54] monokrome: Wait... Is the line number not right? [02:55] unlink: that's on master. [02:55] bradleymeck has joined the channel [02:55] mikeal has joined the channel [02:57] c4milo1 has joined the channel [03:01] matschaffer has joined the channel [03:02] constantx has joined the channel [03:03] unlink: Why isn't export NODE_DEBUG=http working as expected? [03:04] ryah: unlink: only works with node_g [03:05] ryah: unlink: configure --debug && make [03:06] Evet_: should i switch from redis to mongodb since mongo supported by most modules? [03:06] kawaz_air has joined the channel [03:07] davidascher has joined the channel [03:08] p0ns has joined the channel [03:08] Murugaratham has joined the channel [03:09] Draggor: SubStack: Do you have any interest in helping writing bigint as a .node module? [03:09] hij1nx has joined the channel [03:10] DTrejo has joined the channel [03:13] bwinton has joined the channel [03:14] unlink: ryah: Thanks, trying that now. [03:15] brainless has joined the channel [03:15] tedsuo has joined the channel [03:15] kawaz_air has joined the channel [03:16] Yuffster_work has joined the channel [03:17] Murugaratham_ has joined the channel [03:18] Murugaratham_ has joined the channel [03:18] unlink: Here is the traceback updated with debug info: https://gist.github.com/41f3f90028e5faf562c9 [03:18] dguttman_ has joined the channel [03:19] bartt has joined the channel [03:19] Croms_ has joined the channel [03:19] JimBastard has joined the channel [03:19] zakabird has joined the channel [03:21] jasonTheNorris has joined the channel [03:25] Evet_ has joined the channel [03:27] DTrejo: check it outttt: Jazzroom, collaborative real-time music hack in Node.js: http://news.ycombinator.com/item?id=2307813 [03:28] jasonTheNorris has left the channel [03:29] Evet has joined the channel [03:32] f1lt3r_ has joined the channel [03:33] nilyt has joined the channel [03:35] Aria has joined the channel [03:37] Evet_ has joined the channel [03:38] asimismo has joined the channel [03:38] nodrr has joined the channel [03:39] nodrr: For some reason I keep seeing my node CPU usage jump up to 99.9% for about 60 seconds then drop down for five minutes and repeat ... can anyone think why this would happen? [03:39] Spion_ has joined the channel [03:43] MikhX_ has joined the channel [03:44] Evet has joined the channel [03:46] DTrejo has joined the channel [03:47] unlink: For what it's worth, I'm only encountering this issue on ia32 (not x86_64). [03:49] ryan[WIN] has joined the channel [03:51] yhahn has joined the channel [03:51] Evet_ has joined the channel [03:54] sub_pop has joined the channel [03:56] Ond: Great label [03:59] tmzt_: this doesn't make any sense, if I have the css class 'placeholder' on some node it can be selected, otherwise even firebug doesn't see it and sees something else in the hierarchy instead [04:00] tbranyen: tmzt_: its firebug -_- try google chrome tools :D [04:00] bradleymeck has joined the channel [04:00] JimBastard: tmzt_: lolsup? [04:00] JimBastard: ive lost countless hours of my life due to firebug losing state [04:00] tbranyen: JimBastard: are you coming to bocoup to do training? [04:00] tbranyen: hoping we can split a beer :D [04:01] tmzt_: it's not just firebug, the same thing is happening in my page [04:01] tmzt_: and it's consistent [04:01] JimBastard: tbranyen: i'm not sure, no one has talked to me about it yet. im currently on the west coast [04:01] tmzt_: I know mozilla has a selectable style but I'm not using it [04:02] boaz_ has joined the channel [04:02] tmzt_: chrome has it's own problems here, probably need outline: none to get rid of the orange box [04:02] JimBastard: tmzt_: bad markup? duplicate dom ids? bad selector code? [04:02] JimBastard: are you using jQuery? [04:02] meso_ has joined the channel [04:03] davidascher has joined the channel [04:03] mynyml has joined the channel [04:04] tmzt_: oh [04:04] tmzt_: it's a div overlay [04:04] tmzt_: of course [04:04] tmzt_: why it only affects some nodes though and not all I don't know [04:04] piscisaureus has joined the channel [04:05] tmzt_: JimBastard: I'm trying to do inplace editing with placeholders [04:05] tmzt_: a lot of workarounds needed [04:06] JimBastard: inplace editing of dom elements? [04:06] tmzt_: yep, and selectors are the problem, needed > to keep a css selector in scope [04:06] tmzt_: yes [04:06] JimBastard: best strategy is prob not directly modifying the dom until you are done editing. create a clone of the section you are working with and hide it or something [04:06] JimBastard: the scope would be inside your clone [04:07] JimBastard: im speaking in broad strokes, sorry [04:07] tmzt_: d.jobitr.com signup code node1, click on resumes [04:07] creationix_ has joined the channel [04:07] tmzt_: yeah, that seems unneccessary, just have to remember tha using generic classes liek .left and .right can backfire [04:11] blueadept has joined the channel [04:12] jonrh has joined the channel [04:13] mike5w3c has joined the channel [04:13] msilverman2 has joined the channel [04:14] davemo: what would be the best way to get myself a "document" object that I can query with .getElementById and such within a node request? [04:14] davemo: sorry, an HTTP clientRequest [04:16] Aria: jsdom [04:16] Aria: possibly plus the html5 parser. [04:17] davemo: cool, just found it browsing npm :D [04:17] Evet has joined the channel [04:17] Aria: (the stock parser is much faster but not nearly as smart) [04:17] paulrollo: Hi, I'm keen to simplify an app.js by creating a functions.js and putting my functions in there. How do I include this in app.js? [04:17] Evet_ has joined the channel [04:17] Aria: paulrollo: you don't include it, but you can require it. [04:17] Aikar: damn, i was hoping to be able to share an UNIX FD with child processes and write data to it and also let the kernel LB the read like it can do for accepting connections, but the reads still get buffered up between all childs :( [04:17] JimBastard: paulrollo: use require() [04:17] JimBastard: paulrollo: you know about require and exports / module scope? [04:18] hornairs has joined the channel [04:18] Evet has joined the channel [04:19] paulrollo: Jim, I'm trying to get to grips with it! I did var functions = require('./functions'); but maybe a scope issue. [04:19] paulrollo: ? [04:19] sivy_ has joined the channel [04:19] mikegerwitz: paulrollo: http://nodejs.org/docs/v0.4.2/api/modules.html [04:20] paulrollo: Mike, Sweet, thanks, I'll peruse that. I've been googling for the wrong thing I think ;) [04:21] atiti has joined the channel [04:21] ryan[WIN] has joined the channel [04:22] JimBastard: paulrollo: its pretty easy, just experiment a little. look at how other modules work. you are going to want to define methods on the exports scope of your required module [04:22] JimBastard: by defining methods on "export" they will import into the scope you specify with require() [04:22] JimBastard: ( or something like that ) [04:22] sivy has joined the channel [04:22] JimBastard: i can point you to a few easy modules if you want [04:22] tim_smart: s/"export"/"exports"/ [04:23] paulrollo: ah... beginning to make sense! all pointers appreciated [04:23] jasonTheNorris has joined the channel [04:23] jakehow has joined the channel [04:23] tim_smart: exports === module.exports [04:23] JimBastard: paulrollo: check out https://github.com/Marak/say.js/blob/master/lib/say.js and https://github.com/Marak/say.js/blob/master/examples/demo.js [04:23] jasonTheNorris has left the channel [04:23] tim_smart: So you can: module.exports = Constructor [04:23] creationix_: I think my node book will have a chapter on writing parsers ;) [04:23] tim_smart: and require('./name') will directly return the Contructor [04:24] tim_smart: Constructor* [04:24] creationix_: paulrollo: https://github.com/creationix/stack/blob/master/stack.js [04:24] malpeli has joined the channel [04:24] bartt has left the channel [04:25] paulrollo: brilliant, thanks so much guys :) [04:25] malpeli: hy folks! [04:26] Ond: ACTION tips hat [04:26] Ond: Whatcha working on malpli [04:27] malpeli: I'm facing a problem with connect session... I have the session Id but I dont have access to req... could I search with this ID string where the sessions are stored? [04:27] malpeli: Ond: :D [04:28] davemo: anyone written a decent debugger for node yet? [04:28] AAA_awright: davemo: ..."Yet"? There's several [04:28] mikegerwitz: davemo: I use node-inspector [04:28] mikegerwitz: davemo: Looks just like Chrom(ium)'s developer console :) [04:28] davemo: sorry AAA_awright: i'm just starting out ;) [04:28] davemo: thx mikegerwitz [04:28] AAA_awright: davemo: https://github.com/dannycoates/node-inspector is THE BEST DEBUGGER I have ever used hands down [04:28] tim_smart: Node has one built in - if you like gdb you will like it [04:28] davemo: will check that out [04:29] nodrr: For some reason I keep seeing my node CPU usage jump up to 99.9% for about 60 seconds then drop down for five minutes and repeat ... can anyone think why this would happen? [04:29] Ond: The sessions are normally stored in the request object to my understanding malpeli, and if you had access to that then sure [04:29] AAA_awright: Well, it's just a UI, technically the debugger ships with V8, which is what Node.js uses [04:29] Ond: Why don't you have access to the request object? [04:29] tim_smart: nodrr: Could possibly be GC. Depends on what your code does. [04:29] malpeli: Because the event was fired by socket.io [04:29] luke`_ has joined the channel [04:30] malpeli: Im trying to see if the user is authenticated... im trying to use sessions to do that [04:30] cnu has joined the channel [04:30] davemo: damn, that is slick (node-inspector) thanks AAA_awright and mikegerwitz [04:30] davemo: <3 webkit inspector [04:30] Ond: Ah, that's a pretty common problem I think [04:30] malpeli: How do you solve this? [04:31] nodrr: tim_smart: that would make sense hmmm whats the best way to fight it [04:31] tim_smart: nodrr: Write your code better :p [04:31] tim_smart: Refactor so you aren't keeping references to things you don't want. [04:32] nodrr: tim_smart: deleting objects/functions etc after use? [04:32] tim_smart: I got no idea what your code is doing (as I said before) so I'm just taking stabs at random things. [04:32] nodrr: it makes sense because im relying on the GC to take care of everything [04:32] JJMalina has joined the channel [04:32] tim_smart: nodrr: Nope, the GC does that for you. Just making sure things don't get locked up with scopes etc. [04:32] tim_smart: *within [04:33] nodrr: tim_smart: what's an example of that happening? [04:33] malpeli: Ond: I see the connect.sid on cookie... Im passing that to a external function and I will try to see if that sessionId has some user_id recorded... I dont know... Im getting desperate hehe [04:33] tim_smart: The idea is to let the GC clean up after yourself, but you can makes it job easy or hard. [04:33] tim_smart: *its [04:34] nodrr: tim_smart: that makes sense, I guess I'd like to learn more about how to make its job easy [04:34] tim_smart: nodrr: Lots of chained anonymous function usually sets alarm bells off. [04:35] tim_smart: Just experiment and look at heap snapshots with node-inspector [04:35] tim_smart: Anyway I got to go [04:35] nodrr: ok, thank you very much [04:35] tim_smart: Good luck [04:36] Ond: malpeli, I see nothing wrong with that [04:36] paulrollo: nailed it guys, my node vocabulary was a bit off! 4.35am, must be bedtime, gnight. [04:37] Ond: You could just externalize everything you need at least until you find a better solution [04:37] Ond: I don't really have one [04:38] malpeli: Ond: did you know if there is a way to access req.session outside of req object? [04:39] Ond: By default no [04:40] Ond: Not unless you keep an external map of session ID's and attach a general use() function to reference whatever you need per request (assuming you are using express) [04:40] Ond: Attach a general use function to the server I mean. [04:40] davidascher has joined the channel [04:40] malpeli: Ond: :) I will try that then .... thanks Ond! [04:41] dominic__ has joined the channel [04:41] yozgrahame has joined the channel [04:42] dominic__ has joined the channel [04:42] wadey has joined the channel [04:42] unlink has joined the channel [04:45] piscisaureus has joined the channel [04:47] bwinton has joined the channel [04:51] hangar_ has joined the channel [04:51] davemo: hmm, anyone else have issues fetching jquery 1.5.1 from http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js using jsdom? [04:52] mikeal has joined the channel [04:53] davemo: yeah i definitely get a parse error in jsdom when it tries to inject jquery from that url into the window [04:53] davemo: weird [04:54] davemo: hmm, seems it's 1.5.1 in particular [04:54] MikhX has joined the channel [04:55] mnot has joined the channel [04:55] aredridel has joined the channel [04:56] Evet has joined the channel [04:56] malpeli: Ond: I get it :) [04:57] Me1000 has joined the channel [04:57] astropirate: Where is the optimal place to use util.inherits()? inside the constructor function or after it? [04:57] malpeli: Ond: you have to instanciate your memorystore before pass to express ... instead of "new MemoryWhatever " [04:57] astropirate: they both work but wondering if there is a convention [04:58] malpeli: Ond: then you can access the session anytime with the cookie id [04:58] malpeli: Ond: memory_store.get(session_id, function (error, session) { console.log(session); }); [04:59] tbranyen: oh man the new path.resolve is bitchin' [04:59] tbranyen: i like a lot :D [04:59] malpeli: Ond: thankyou again for your help man ... have a great day! :D [05:00] aredridel: astropirate: Outside of -- you don't want to be doing it every time you create an object! [05:00] aredridel: Once is plenty! [05:01] astropirate: aredridel, ahh good point [05:02] Shrink has joined the channel [05:02] Shrink has joined the channel [05:03] darshanshankar has joined the channel [05:03] Shrink has left the channel [05:03] Evet_ has joined the channel [05:05] malpeli: For God sake ... someone has to write a node cookbook :) [05:05] bwinton has joined the channel [05:05] davemo: could someone else sanity test this for me to see if they get the same error? https://github.com/tmpvar/jsdom/issues/165 [05:06] timmywil has joined the channel [05:10] MikhX has joined the channel [05:10] tbranyen: hmmm hard to decide if i use path.resolve since it requires the latest version of node [05:10] tbranyen: and by removing that i could target slightly behind folks [05:11] tbranyen: should use* [05:14] dwww has joined the channel [05:14] firedman has joined the channel [05:16] noahcampbell has joined the channel [05:19] mlncn has joined the channel [05:19] doctrine has joined the channel [05:23] dominic_ has joined the channel [05:23] langworthy has joined the channel [05:23] prof-freud has joined the channel [05:24] mlncn has joined the channel [05:24] Evet has joined the channel [05:25] guybrush: hm i cant build the master-branch https://gist.github.com/863611 [05:26] mikegerwitz: guybrush: Are you building on *BSD? [05:26] guybrush: debian [05:26] mikegerwitz: guybrush: Are you able to build v0.4.2? [05:26] guybrush: yes [05:26] mikegerwitz: guybrush: Ah :) Alright. Just reminded me of an error I've seen on Free/OpenBSD. [05:27] mikegerwitz: haven't tried master recently [05:29] jakehow has joined the channel [05:30] guybrush: hm well i guess it is because of the upgrade to V8-3.1.6 [05:31] Egbert9e9 has joined the channel [05:31] muhqu has joined the channel [05:34] mikeal has joined the channel [05:34] guybrush: ah nvm [05:36] noahcampbell has joined the channel [05:36] weepy has joined the channel [05:36] mlncn has joined the channel [05:37] snearch has joined the channel [05:37] p0ns has joined the channel [05:37] Evet has joined the channel [05:38] DevX101 has joined the channel [05:38] creationix_ has left the channel [05:40] tedsuo has joined the channel [05:40] mattikus has joined the channel [05:43] Evet_ has joined the channel [05:45] tbranyen: just pushed the 0.0.1 release of nodegit and added to NPM :D [05:45] tbranyen: https://github.com/tbranyen/nodegit [05:46] davidascher has joined the channel [05:47] mdoan has left the channel [05:52] chrisdickinson: tbranyen: cool -- I wrote a native node git client too: http://github.com/chrisdickinson/tempisfugit/ (it's... a bit uglier) [05:52] sleeplessinc has joined the channel [05:52] tbranyen: oh cool [05:53] tbranyen: looking :D [05:53] chrisdickinson: it can read loose and packed refs (v2, I think, haven't tried it on v1); downside is that it requires a patched node-compress install to get the zlib bits working [05:54] tbranyen: :/ [05:54] chrisdickinson: (has to do with the compression window size, if memory serves.) [05:55] chrisdickinson: (yeah: it's a one line fix that makes things work: https://github.com/chrisdickinson/node-compress/commit/70df710857cc2344af4b752c90fd39706f0484d7) [05:56] sivy has joined the channel [05:56] tbranyen: chrisdickinson: hmm i think libgit2 will handle pretty much all that for me, yours is just an implementation based off libgit2? [05:57] jake has joined the channel [05:57] chrisdickinson: tbranyen: yeah, I wanted to see if I could write an all-js git library [05:57] chrisdickinson: except, of course, the zlib bits. [05:57] siculars has joined the channel [05:58] Astro has joined the channel [05:58] chrisdickinson: I've got a weird half-thought-out-goal of using the new TypedArray objects in ff/webkit to provide an in-browser implementation. for whatever reason :\ [05:59] Aria: ++ [06:00] breccan has joined the channel [06:01] deepthawtz has joined the channel [06:01] pcardune has joined the channel [06:02] usmanity has joined the channel [06:04] aredridel has joined the channel [06:05] confoocious has joined the channel [06:05] confoocious has joined the channel [06:05] jake: Using express/connect, can anyone think why req.session data wouldn't save? [06:06] jake: (sorry if this isn't the appropriate place to ask) [06:12] possibilities has joined the channel [06:14] mape: jake: Did you write to res before saving? [06:14] jake: write to res? I'm just doing req.session.foo = 'bar'; [06:14] mape: what do you do before that? [06:15] mape: And what session store are you using? [06:15] jake: using redis store. I'm parsing a file before then though [06:15] brianmario has joined the channel [06:16] mape: jake: Make sure you are getting the same session id on the client [06:16] mape: Know of multiple people having issue like that before, on each pageload a new id is assigned [06:16] harth has joined the channel [06:16] mape: so data is saved but it just gets decoupled on each pageload [06:16] jake: I've simplified this code a bit and am tracking something odd down. If I comment out the parser it works okay [06:17] mape: parser? [06:18] jake: File upload -> parser/display -> next [06:18] jake: Everything works fine until I run this parser code (just custom stuff for pulling apart files) [06:18] TomY_ has joined the channel [06:18] TomY has joined the channel [06:19] mape: gist it? [06:19] jake: sure, one sec [06:19] jake: (and thanks) [06:22] fairwinds: curious whether folks are fronting node or just putting something like cluster in front [06:22] mape: fairwinds: I'm using nginx [06:22] fairwinds: I currently have nginx in front myself [06:23] jake: mape I think I figured it out. I'm using DateJS as a module, which changes the behavior of Date. If I comment out that require, everything works fine [06:23] mape: I prefer it since there isn't really a good way of gziping content right now (that I know of) [06:23] mape: jake: Ok [06:23] jake: That's annoying :) [06:23] mape: Jup, changing core things around is no good [06:24] jake: No kidding. I'll just write my own date parser. Banged my head against that for an hour. [06:25] mike5w3c has joined the channel [06:26] breccan has joined the channel [06:26] constantx has joined the channel [06:26] constantx has left the channel [06:30] SamuraiJack has joined the channel [06:30] masahiroh has joined the channel [06:34] Quine_ has joined the channel [06:34] Quine_: hey [06:35] mnot1 has joined the channel [06:37] zomgbie has joined the channel [06:38] Bonuspunkt has joined the channel [06:41] mape: hey [06:42] alek_br has joined the channel [06:42] Quine_: any node diehards in here who could explain something to me? [06:45] Draggor: anyone know offhand where NODE_SET_PROTOTYPE_METHOD is declared? [06:46] justgord has joined the channel [06:47] suckerpunch has joined the channel [06:47] tbranyen: Draggor: urghhhhh its in node.h i think [06:48] tbranyen: its a macro defined at the top i believe [06:49] Draggor: tbranyen: are you free to help with some c++ addon stuff? [06:49] tbassetto has joined the channel [06:51] muk_mb has joined the channel [06:53] tbranyen: Draggor: sorta yea [06:54] tbranyen: Just about to hop into bed [06:54] tbranyen: so i might drift off =p [06:54] yozgrahame has joined the channel [06:54] Draggor: I've been using this as a starting point: https://github.com/ry/node_postgres/blob/master/binding.cc [06:54] tbranyen: Yeah i did too [06:54] Draggor: I just want to have a bound function called test that returns a string, heh. [06:55] tbranyen: what do you have so far? [06:55] Draggor: lemme pastebin it [06:55] GriffenJBS has joined the channel [06:55] tbranyen: kk [06:56] Draggor: tbranyen: http://pastebin.com/m4t8nVVW [06:57] Draggor: so obviously the Test method I have isn't doing much of anything right now [06:57] tbranyen: yea [06:57] tbranyen: does it return correctly? [06:58] Draggor: well [06:58] tbranyen: to return a string you'd just do v8::String::New("something") [06:58] tbranyen: return v8::String::New("hello world"); [06:59] doctrine has left the channel [06:59] breccan has joined the channel [06:59] Draggor: tbranyen: woohoo it does! [06:59] tbranyen: :D [07:00] Draggor: Now on to writing a BigInt module [07:00] Draggor: that doesn't use FFI [07:00] Draggor: so I can use it in cygwin [07:00] Draggor: and pray I don't memory leak everywhere [07:00] tbranyen: Draggor: [07:00] tbranyen: 02:04 < Draggor> Now on to writing a BigInt module [07:00] tbranyen: 02:04 < Draggor> that doesn't use FFI [07:00] tbranyen: shit [07:00] tbranyen: paste fail [07:00] Draggor: hehe [07:00] pascalopitz has joined the channel [07:00] pascalopitz: morning [07:00] brainless has joined the channel [07:00] Draggor: Every so often I'll have accidentally highlighted something, and middle click just at the wrong time [07:01] tbranyen: http://github.com/tbranyen/nodegit << check that out [07:01] tbranyen: might help you [07:01] Draggor: Ooh, interesting, thanks [07:01] tbranyen: i didn't want to use libgit2 through ffi either so i did this [07:02] tbranyen: npm isn't working in windows for me atm tho :-/ [07:02] tbranyen: so i can't test if my 0.0.1 actually installs [07:02] tbranyen: heh [07:02] Draggor: did you set your dns to google's servers? [07:02] Draggor: I had that issue to start with in cygwin [07:02] tbranyen: heh [07:02] tbranyen: thats exactly my issue right now [07:02] tbranyen: dns fail [07:02] unfo-: 8.8.8.8 and 8.8.4.4 [07:03] tbranyen: yeah i'm def using google's dns [07:04] tbranyen: well not def... double checking the router conf [07:04] samcday: Anyone know if V8's GC runs in a different thread? [07:04] dspree has joined the channel [07:04] dspree has joined the channel [07:04] tbranyen: yep... [07:04] tbranyen: so Draggor [07:04] tbranyen: do i need to change off of google's? [07:04] samcday: tbranyen: Saying yes to my question? [07:04] tbranyen: no sorry :-p [07:04] fangel has joined the channel [07:04] samcday: Kk lol [07:05] Draggor: tbranyen: I mean I had to set mine to use google explicitely in cygwin [07:05] tbranyen: word [07:05] tbranyen: i see that step in the node docs [07:06] tbranyen: excellent [07:06] muhqu has joined the channel [07:06] tbranyen: thx Draggor you repaid the help :) [07:07] Draggor: woohoo! [07:08] breccan has joined the channel [07:08] Draggor: tbranyen: Got time for one more question? [07:09] Draggor: Right now it's setting a property on target. Instead I would like to make target a function. Know how to do this offhand? [07:10] andrewfff has joined the channel [07:10] wadey: I think the easiest thing for that is to right a wrapper module in JS that calls your c++ methods, then that wrapper module can easily just be a function [07:10] wadey: write* [07:11] Draggor: That also works [07:11] wadey: if you want some more really easiy examples: https://github.com/wadey/node-microtime/blob/master/src/microtime.cc [07:12] tbranyen: yeah i never tried reassigning target [07:12] wadey: gah, I can't type. It's too late. [07:12] tbranyen: might be possible ? [07:12] elliottcable: ryah: Why libeio instead of librt? Any particular reason for that choice? (Get back to me whenever you see this message.) [07:12] seivan has joined the channel [07:12] Draggor: what's scope.Close() doing in that line? [07:13] wadey: Draggor: Look at HandleScope on here: http://izs.me/v8-docs/ [07:13] samcday: Does anyone know why I'd be getting segfaults when V8 is lazy compiling? [07:13] samcday: Is it possible I've fucked memory that bad? :S [07:14] Draggor: wadey: thanks for the info! [07:14] wadey: I didn't know about these v8 docs for the first month of working on native modules [07:14] wadey: it's a lot easier with them :) [07:14] hans_ has joined the channel [07:15] Egbert9e9 has joined the channel [07:15] Quine_: anyone here who doesn't mind answering a few design of node questions for me? [07:16] Draggor: it's particularly awkward for me as this is the first time I've touched c++ in years [07:16] Draggor: and the last time I did it was QT development [07:16] samcday: Draggor: Same man [07:16] samcday: I'm grapping with bizarre pointer issues and V8 niceties, and I come from a Java background mostly haha [07:16] samcday: Check out the node-gd bindings, and the libmysql bindings, good reference points for C++ addon development [07:16] tbranyen: javascript background with msvc++ experience :_/ [07:17] samcday: Also, this link is pretty good: https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/ [07:17] Draggor: I do java at the dayjob, been doing node.js for personal projects, and have been learning haskell for funsies. Last job was common lisp. [07:17] tbranyen: yeah that guide is choice [07:17] samcday: One of the best articles on C++ addons I've found so far, quite detailed [07:17] kal-EL_ has joined the channel [07:19] jesusabdullah: how did lisp suit you Draggor? [07:19] elliottcable: Oi, and didn’t Node drop C-ares at some point? Or am I mis-remembering something? *ponders* [07:20] FireFly has joined the channel [07:25] tedsuo has joined the channel [07:26] prettyrobots has joined the channel [07:26] prettyrobots: Any good timezone handling for Node? [07:27] Draggor: jesusabdullah: Absolutely love lisp. I moved over to doing things in clojure for a while, but I keep trying to do collaborative efforts, and everyone I know is scared of all the parens [07:27] Draggor: JS is a lot like lisp without macros. give JS macros and I'd be a happy camper. [07:27] admc has joined the channel [07:27] jesusabdullah: hah :D [07:28] prettyrobots: Hmm... [07:28] prettyrobots: https://github.com/gsmcwhirter/node-zoneinfo [07:28] prettyrobots: Guess that answers my question. [07:28] marcello3d has joined the channel [07:28] Draggor: Common Lisp actually annoyed me greatly with the split namespacing between variables and functions. [07:29] Draggor: Clojure became a godsend as it embraced the more functional side of things. [07:31] aways|bnc: ACTION Hi [07:31] luke` has joined the channel [07:32] Quine_: hey [07:32] atiti has joined the channel [07:32] teemow has joined the channel [07:32] rchavik has joined the channel [07:33] andrewfff has joined the channel [07:34] dominic_: Quine_: whats your question? [07:35] samcday: Repeat of a question before: does anyone know if V8 runs GC stuff in separate threads? [07:35] herbySk has joined the channel [07:36] Jonasbn_ has joined the channel [07:37] TomY has joined the channel [07:37] insin has joined the channel [07:38] Quine_: so i just wrote my first app in node.js, and liked it a lot, but i'm left wondering: how is it superior to a system like erlang's which automatically does async io as well as green thread management so long calculations can't lock up the server? or if it's not superior, how is the problem of all the callback clutter / long computation lockups dealt with elegantly in node projects? [07:39] mnot has joined the channel [07:39] suckerpunch has joined the channel [07:40] brainless has joined the channel [07:40] astropirate: Quine_, I am no expert. But, One can get rid of the callback clutter by abstracting. lots and lots of abstractions :D [07:41] mraleph has joined the channel [07:41] Quine_: do you mean via streamline and similar preprocessors, modules like seq, or some other strategy? [07:42] sechrist has joined the channel [07:44] mlncn has joined the channel [07:44] dominic_: what astropirate said + node js is totally hip and all the cool kids are using it. <<< sounds like nonsense, but actually quire important. [07:44] amerine has joined the channel [07:45] tbranyen: fun being cool [07:45] dominic_: he just means async control flow, like github.com/creationix/step for example. [07:46] Quine_: ok, step iirc is like seq right? easier parallel/sequential execution of functions [07:46] Quine_: and yes, i looked at erlang and haskell and despite their claimed superiority, their communities didn't seem to care that much about web development [07:46] secoif_ has joined the channel [07:47] Quine_: or non-academic development except in rare cases [07:47] makuchaku has joined the channel [07:47] dominic_: yeah, there is a bunch of them. I suspect it's best to NIH your own though, so you really understand it. [07:47] AAA_awright: Quine_: Node.js had to do a lot of work-arounds for otherwise blocking system calls like DNS and such that could be part of it [07:47] ghost has joined the channel [07:48] hmm has joined the channel [07:49] tbranyen: https://github.com/joyent/node/issues/766 [07:49] tbranyen: jikes [07:49] tbranyen: yikes* [07:49] amerine has left the channel [07:50] AAA_awright: "Not Node.js report upstream" [07:50] insin: ACTION reminds himself never to do that 1,000,000,000 times [07:50] Quine_: right, and the those work arounds seem to impose some requirements on the programmer that i'm not seeing as necessary, such as callback chaining (or using a library to simplify it) rather than implementing its own system under the hood to make those commands transparently asynchronous [07:50] sechrist: yikes [07:50] breccan has joined the channel [07:50] Quine_: or is there a reason i'm not seeing why that is not possible? or a bad idea? [07:51] AAA_awright: Quine_: Javascript [07:51] AAA_awright: How would you do it? [07:51] redmind has joined the channel [07:51] AAA_awright: Quine_: If you have well modularized code it's actually not a problem [07:51] Quine_: i'm no expert, but erlang's threading system seemed like a good solution to me [07:51] dominic_: if javascript had continuations it would not be a problem, but no continuations. [07:52] sechrist: Has anybody found a buffer overflow or similar in node yet? [07:52] AAA_awright: Quine_: Describe how erlang's system differs [07:52] emattias has joined the channel [07:52] sechrist: remote code execution [07:52] AAA_awright: Quine_: Note that Node.js uses a constant amount of threads, i.e. there's worker threads for DNS and such but no new threads are ever created once Node.js is loaded [07:52] redmind: i doubt it, v8 tends to die on overflows [07:53] sechrist: remote crash is pretty bad too [07:53] AAA_awright: I wouldn't rule out any bugs in Buffer [07:53] sechrist: new Buffer.overflow(payload); [07:53] sechrist: :) [07:53] AAA_awright: I can read beyond the length of the buffer somehow, and read compiled code among other things [07:54] AAA_awright: I would imagine writing is the same [07:54] redmind: e_e [07:54] AAA_awright: I would think not [07:54] Quine_: erlang's system, from what i know, simulates processes and queues things up when necessary without blocking [07:54] sechrist: you can read compiled code? [07:54] sechrist: that's dangerous [07:54] AAA_awright: Actually I'm not sure exactly what it was... [07:54] sechrist: depending on the application that information could return back to the user [07:54] sechrist: and leak encryption keys, passwords, anything in node memory [07:55] abc has joined the channel [07:55] AAA_awright: sechrist: At the very least Buffer(integer) creates memory without setting it, which I use and xor with random numbers to create random strings [07:55] JimBastard has joined the channel [07:55] sechrist: it doesn't calloc? [07:56] sechrist: or anything similar? [07:56] sechrist: ehhhhh [07:56] Quine_: and since the 'processes' don't share state and use async message passing, they dont have to block on each other [07:56] Quine_: in my understanding at least [07:56] AAA_awright: sechrist: Probably just malloc [07:56] AAA_awright: I actually haven't read that part of the code [07:56] sechrist: I mean any vuln I can think of is going to be very implementation specific [07:57] sechrist: but something in connect for example could be pretty bad too [07:57] ph^ has joined the channel [07:57] AAA_awright: connect what? [07:57] __tosh has joined the channel [07:57] sechrist: the connect library, or express [07:57] redmind: connect the framework [07:57] AAA_awright: Oh Connect [07:57] sechrist: widely used libraries. [07:57] dominic_: Quine_: from my investigations, i decided that although it may be possible to do something clever to make the callback thing less, you could never completely remove it with standard js, [07:58] Quine_: since it doesn't have first class continuations, correct? [07:58] redmind: btw, talk of threads and stuff... why not take a look at node-fibers? [07:58] dominic_: absolutely. [07:58] dominic_: you'd have to hack something up, [07:58] Quine_: ok, so that's a tolerable missing feature of js [07:58] sechrist: fibers aaargh [07:58] Quine_: at least with the modules that mitigate it, code beauty wise [07:58] dominic_: like make everything into async, before it's run. [07:59] Quine_: but what about the issue of long calculations locking up node? [07:59] andrewfff has joined the channel [07:59] mape: Quine_: use webworkers [07:59] AAA_awright: Quine_: They lock up Node.js :p [07:59] dominic_: well, it's a matter of programming style. [07:59] AAA_awright: Fork a worker process if you're doing calculations[ [08:00] yhahn has left the channel [08:00] dominic_: or make your long calculations able to work in chunks. [08:00] Quine_: could node perhaps do something to make this easier, so i don't have to think about whether a given process will be long? [08:00] Aria: What, programming without thinking? [08:00] mape: Quine_: The idea is that you have to think about it [08:00] mape: Things that take a long time should have a callback [08:01] sechrist: I program without thinking all the time [08:01] astropirate: Quine_, thats an intresting point that i hadn't really thought about... [08:01] AAA_awright: mape: I think the issue is things that take a long time shouldn't hold other queries [08:01] ttpva has joined the channel [08:01] dominic_: I don't think you really need to worry about it. have you actually encounted these long calcs in practice? [08:01] Quine_: nope, but i could [08:01] mape: AAA_awright: Then you use workers [08:01] Quine_: say i leave the quick site i wrote in node up for a week [08:01] Quine_: it currently has a command to list all user submitted quizzes [08:02] Quine_: if i got someone submitting 10,000,000 quizzes [08:02] Quine_: it'd kill my server, right? [08:02] Quine_: once someone requested a list [08:02] sechrist: 10m per second [08:02] Aria: Only if you think it's smart to lis them ALL right at once. [08:02] AAA_awright: dominic_: Parsing an n3 file takes ~10 seconds, probably really inefficent code [08:02] dominic_: well how are you storing them? [08:02] Aria: It's also dumb to load 10,000,000 records into RAM all at once, more than likely. [08:02] AAA_awright: Parsing RDF data out of n3 [08:03] Quine_: right, i agree, i wouldnt want to actually do that [08:03] dominic_: sorry, whats n3? [08:03] Aria: That's the thing, though -- you usually want to break tasks up into pieces. [08:03] mape: Quine_: The client would shit itself if it had to display 10,000,000 entries [08:03] AAA_awright: A file format for expressing RDF data [08:03] Quine_: but if i wanted to do say, make a collaborative music service [08:03] Quine_: and the server had to run complex audio algorithms [08:04] mape: use a worker [08:04] AAA_awright: dominic_: Substitute a fairly complex data format/programming language of your choice [08:04] ngs has joined the channel [08:04] Aria: Aside multiple cores, computers don't do more than one thing at a time. And even then, it's often limited by IO or RAM contention. [08:04] Aria: With threads, it's still switching. With node, you just switch at convenient times instead of constantly. [08:04] techwraith has joined the channel [08:04] dominic_: quine_: your talking about scaleability. [08:05] Quine_: i guess i'm wondering, is needing to split things like that out into workers "good enough" that any sort of green threading or pseudo-process system isn't necessary? [08:05] Aria: If you need a worker, use a worker, and let the OS do timeslicing. Or, process your audio 20ms at a time. [08:05] dominic_: if you REALLY want scaling, threads isn't enough, you want parallelism. [08:05] sechrist: this just in, threads suck [08:05] Aria: Workers are full on processes. Threads without shared memory ;-) [08:05] Quine_: lol yes, os threads suck [08:05] Quine_: but what about green threads and pseudo-processes? [08:05] mape: sechrist: what about coroutines? [08:05] AAA_awright: This just in, threads suck [08:05] Aria: What would make them suck less? [08:06] astropirate: somethign that sucks more [08:06] AAA_awright: ...system resources [08:06] Aria: green threads suck more, usually. They're usually even less efficient, at least for ones not added deeply in the compiler. [08:06] AAA_awright: Especially because they're not optimized [08:07] SubStack: reasoning about concurrency sucks [08:07] Quine_: it does, it's so overly complicated [08:07] Aria: Well, or because they're the compiler mixing two streams of code together but not actually doing two things at once. [08:07] sechrist: mape: most coroutine implementations suck too [08:07] mape: sechrist: bad joke [08:07] aabt has joined the channel [08:07] Aria: Coroutines, too, tend to leave you with lots of state on the stack. [08:07] ryankirkman: Does cradle support compex keys (for couchdb)? [08:07] sechrist: Are generators any better? [08:07] SubStack: and then fighting the thread scheduling algorithm is hard too [08:07] ryankirkman: * on views [08:08] sveimac has joined the channel [08:08] hwinkel has joined the channel [08:09] ezmobius has joined the channel [08:09] dominic_: quine: you want to look into MapReduce or Pregel -- thats how google does it's massive calculations. [08:09] bergie has joined the channel [08:09] mikeal has joined the channel [08:09] groom has joined the channel [08:09] Quine_: yea, i'm going to be looking into that, but i'm mostly just curious about the design of node and its paradigm vs ones in erlang and haskell [08:10] Quine_: since it seems to me that node, erlang, racket, and haskell are all insanely faster than just about every other languag [08:10] mAritz has joined the channel [08:11] matjas has joined the channel [08:12] eschnou has joined the channel [08:14] Quine_: and with that...i haven evidently killed the conversation [08:14] neshaug has joined the channel [08:15] redmind: this room is full of co-routine haters anyway [08:15] SubStack: fact [08:15] Quine_: seems like it [08:15] Quine_: i don't see what's so bad about green threads [08:15] SubStack: well it's not like it's even an option [08:16] ryankirkman: Quine_: node is not a language [08:16] SubStack: the chrome v8 team decides how the language works [08:16] dominic_: it seems to me node's approch is: don't even try. [08:16] SubStack: node is just some wrappers for file and network i/o [08:16] Quine_: right [08:16] dominic_: let the programmer handle the async how they feel best. [08:16] redmind: is https://github.com/laverdet/node-fibers not basically green threads? [08:16] Quine_: dunno, i'm a full time student and i just started working with node a week ago :P still finding out all the cool modules [08:17] sechrist: no threads are green [08:17] sechrist: if there was a smog test for code [08:17] sechrist: it would not pass [08:17] Quine_: lol [08:17] redmind: lol [08:17] Aria: redmind: fibers are explicitly scheduled. [08:18] redmind: i see [08:18] dominic_: I gotta go, catch you dudes later. [08:18] sechrist: I don't like the idea of having to start my application with fiber instead of node [08:18] floby has joined the channel [08:18] sechrist: too hacky for my uses [08:18] sechrist: facebook can do whatever they want [08:18] fangel has joined the channel [08:18] mscdex: node-cowbell [08:19] Quine_: lol [08:19] Quine_: ok so it seems the reason that all of those other strategies are bad is because....theyre bad (or unimplementable in js) [08:19] jesusabdullah: Sounds like a good ad for jsonloops [08:21] redmind: no cowbell.json in jsonloops/loops :( [08:21] Druid_ has joined the channel [08:21] jesusabdullah: I think one of the tracks is a cowbell. [08:23] troessner has joined the channel [08:24] ajnasz has joined the channel [08:25] pietern has joined the channel [08:26] mscdex: no cowbell? this is madness! [08:27] Quine_: so, another question: any recommended modules to try out? i've found it's hard to get a sense of what the most well respected ones are beyond base things like connect. for example, anyone have a favorite code beautifying module like streamline or kaffeine? [08:27] mytrile has joined the channel [08:30] jesusabdullah: Beautifying module? Not me [08:30] jesusabdullah: What do you want to do, Quine? [08:30] jesusabdullah: Because what's cool *really* depends on what you want to do [08:30] Quine_: hm [08:31] jesusabdullah: You may like dnode [08:31] jesusabdullah: https://github.com/substack/dnode [08:31] jesusabdullah: He's written lots of other cool modules, too [08:31] SubStack: http://search.npmjs.org/ has a list of the most-depended-on modules [08:32] SubStack: not the same as most required however [08:32] jesusabdullah: Basically, here are some authors to look at: https://github.com/substack https://github.com/visionmedia https://github.com/nodejitsu https://github.com/isaacs [08:32] jesusabdullah: There are lots more [08:32] MrTopf has joined the channel [08:33] jesusabdullah: Underscore is pretty nice, actually. [08:33] jesusabdullah: Like, I think there may be better ways of doing those things, but it's a good drop-in tool for a lot of the goodies you might miss from a small standard library [08:33] msucan has joined the channel [08:34] Quine_: awesome, thanks [08:34] Quine_: ill look over those [08:34] jesusabdullah: You're welcome! [08:34] JimBastard: nodejitsu! [08:34] Quine_: i can also use those to see how modules are built so i can contribute soon as i have time to [08:34] Quine_: is there anything like a templating system that'd let me easily setup callbacks when writing it? [08:34] SubStack: contribute by scratching your own itches [08:35] SubStack: and then publish them to npm! [08:35] jesusabdullah: I'm not sure what you mean by that, but there are lots of templating systems for node [08:35] Quine_: for example, i could say {{button, submitAnswer}} [08:36] [AD]Turbo has joined the channel [08:36] Quine_: and it'd generate a button with a jquery (or other system) callback executed clientside that would call the submitAnswer function (or i guess i'd pass it a url to GET and then a function to run with the data [08:36] Quine_: so i can write fewer $("#button").click()s [08:37] jesusabdullah: Quine_: https://github.com/joyent/node/wiki/Modules [08:37] redmind: i think that is slightly more than just a mere 'templating system'.... [08:37] jesusabdullah: Look under templating languages [08:37] Quine_: mk [08:37] Quine_: yea it is [08:37] jesusabdullah: Quine_: You may also like nodejitsu's weld [08:37] Quine_: i got the idea from erlang's nitrogen [08:38] Quine_: which writes a lot of client-side js logic for you for basic things [08:38] Quine_: like an async form submit [08:38] suckerpunch has joined the channel [08:38] Quine_: i figure if there isn't a module out there to do something like that, perhaps ill write one [08:38] jesusabdullah: Quine_: Also, dnode is great for slick rpc action. I don't know if it's what you have in mind, but who knows? [08:39] Quine_: it's not but heck, i'll go try it out and learn more about RPC in the process [08:39] Quine_: my goal is just to learn new things through node dev [08:39] Quine_: since i already finished my classwork for the quarter [08:40] madewulf has joined the channel [08:42] jesusabdullah: Ah [08:42] jesusabdullah: I have a while before my shit is done. [08:43] [AD]Turbo: hi there [08:44] Quine_: hey [08:45] MattJ has joined the channel [08:47] emattias_ has joined the channel [08:47] dubbe has joined the channel [08:48] sechrist: is there an html -> jade converter [08:48] sechrist: so I can save time [08:49] tbassetto has joined the channel [08:50] sfoster has joined the channel [08:50] jollyroger has joined the channel [08:51] SamuraiJack has joined the channel [08:51] jollyroger: hi [08:51] jollyroger: guys anybody of you is using mysql-node? [08:53] mikl has joined the channel [08:53] mjr_ has joined the channel [08:53] Quine_: i'm not, sorry [08:54] sdozono has joined the channel [08:54] msucan has joined the channel [08:54] jollyroger: nobody? buuuuu [08:54] Quine_: the room just got oddly quiet, maybe everyone went afk [08:57] SamuraiJack_ has joined the channel [08:57] gozala has joined the channel [08:59] sechrist: maybe everybody is writing node code [08:59] Quine_: that'd be awesome [08:59] seivan has joined the channel [09:01] mraleph has joined the channel [09:01] emattias has joined the channel [09:01] floby: I am =) [09:04] eventi has joined the channel [09:04] jollyroger: we are as well [09:04] jollyroger: we are 2 [09:04] jollyroger: but more interesting, where you guys from? [09:04] echosystm has joined the channel [09:04] jollyroger: lets do some chit chat [09:04] echosystm: anyone around whos pretty good with js? [09:04] jollyroger: i suck [09:04] jollyroger: sorry [09:04] mlncn has joined the channel [09:05] echosystm: i've been using __proto__ to extend classes, but i'm trying to find an alternative now that it is deprecated [09:06] samcday: Repeat of a question before: does anyone know if V8 runs GC stuff in separate threads? [09:06] samcday: Oops. [09:06] samcday: Disregard that lol [09:07] breccan has joined the channel [09:07] echosystm: does anyone know how to do inheritance without using __proto__ ? [09:08] nilyt has joined the channel [09:08] __tosh has joined the channel [09:10] zakabird: seen this http://ejohn.org/blog/simple-javascript-inheritance/? [09:10] astropirate: echosystm, Foo.prototype.__proto__ = Bar.prototype; [09:11] fly-away has joined the channel [09:11] astropirate: lol i should learn to read :( [09:11] echosystm: :P [09:11] framlin: echosystm: what is the problerm with __proto__ [09:11] echosystm: reading now zakabird [09:11] echosystm: __proto__ is deprecated and non-standard [09:12] aklt has joined the channel [09:12] astropirate: what do you know.. mdn agrees [09:12] floby: echosystem: I know it's non standard, since when is it deprecated ? [09:12] dve has joined the channel [09:12] framlin: you may use Foo.prototype = new Bar(); but that is not adviced, becaus you are calling/running Bar() with that [09:12] mlncn has joined the channel [09:13] echosystm: i'd like to know how to do this without writing all kinds of meta-programming-ish shit [09:13] astropirate: echosystm, have yous een this? http://nodejs.org/docs/v0.4.2/api/util.html#util.inherits [09:13] echosystm: yeah [09:13] echosystm: thats meta-programing-ish :P [09:14] echosystm: i dont want to call other another function to extend something [09:14] herbySk has joined the channel [09:14] echosystm: i want to know how to do it from scratch [09:14] echosystm: ...in a spec-compliant way [09:14] astropirate: echosystm, you and me. if yo ufind a solution please do tell me [09:14] echosystm: i think i might have found something [09:14] adambeynon has joined the channel [09:14] echosystm: hang on [09:14] xla has joined the channel [09:15] framlin: use Foo.prototype = new Bar() works [09:15] astropirate: it works if you you want to call the constructor too [09:15] zakabird: the methods described in 'javascript the good parts' arn't very metaish [09:15] stagas has joined the channel [09:16] jollyroger: anybody who know how to use mysql-node has a second to help me out? [09:16] framlin: to make it "save" you should check if your "constructor"-paramas are undefined, to recognize, that it is called "while parsing" [09:16] nook has joined the channel [09:17] jollyroger: How do i understand is the connection to a mysql database is successfull? [09:17] framlin: or you give a "special" param for "constructor-inheritance-call" [09:17] futuredarrell has joined the channel [09:18] hasenj has joined the channel [09:19] romainhuet has joined the channel [09:19] echosystm: ok, ive found it [09:19] echosystm: let me paste bin it [09:19] FireFly|n900 has joined the channel [09:20] FireFly|n900 has joined the channel [09:20] christophsturm has joined the channel [09:21] framlin: Foo.prototype = new Bar() is working for us in a very large fat-client system, but we have changed to __proto__, because the "constructor"-call can raise errors, that are tricky to find [09:21] emattias has joined the channel [09:21] andrewfff has joined the channel [09:21] echosystm: http://pastebin.com/1sVrUve8 [09:21] echosystm: there [09:22] echosystm: Sub.prototype.__proto__ = Super.prototype; [09:22] echosystm: becomes... [09:22] echosystm: Sub.prototype = Object.create(Super.prototype); [09:22] futuredarrell: noob here trying to get my first local node install going. node is installed but if i try to run server.js its hanging. looks like a couple things failed in config.log but i got a successful build [09:22] dubbe has joined the channel [09:24] futuredarrell: not found: openssl, rt, readahead(2), and then a couple headers from libev [09:24] framlin: ah, ok, thats fine [09:25] Emmanuel__: futuredarrell: which system ? [09:25] futuredarrell: os [09:25] futuredarrell: osx [09:26] Twelve-60 has joined the channel [09:26] Emmanuel__: huh [09:26] Emmanuel__: well, you need to find a way to install those library [09:26] Emmanuel__: + the development headers that goes with them [09:26] stagas: futuredarrell: you're using the example http server from nodejs.org ? [09:26] christophsturm has joined the channel [09:26] Emmanuel__: but I have no idea on how to do that on OSX [09:27] Emmanuel__: for I don't use evil OSes [09:27] Quine_: all of those libraries are included with the xcode devtools [09:27] Quine_: do you have those installed, futuredarrell? [09:27] christophsturm has joined the channel [09:27] futuredarrell: hmm i have xcode and use it for ios dev [09:27] Quine_: if you which openssl you get that it's installed? [09:28] V1 has joined the channel [09:28] futuredarrell: yeah /usr/bin/openssl [09:28] Quine_: hm [09:28] Quine_: os x 10.6? [09:28] astropirate: echosystm, simply beautiful [09:28] christophsturm has joined the channel [09:29] Croms has joined the channel [09:29] futuredarrell: yeah [09:29] narayan82 has joined the channel [09:30] Quine_: thats weird, i got the latest from the site with just the xcode devtools installed and everything installed and build perfectly [09:30] jetienne has joined the channel [09:31] yozgrahame has joined the channel [09:31] futuredarrell: maybe the paths on my machine are messed up? [09:31] futuredarrell: which node [09:33] Quine_: 0.4.1 [09:33] Quine_: and 0.4.2 [09:33] liquidproof has joined the channel [09:34] DoNaLd`: big fail .. https://github.com/joyent/node/issues/766 [09:34] Quine_: yea we were looking at that earlier [09:34] DoNaLd`: :( [09:34] Quine_: solution: don't count that high :P [09:34] san has joined the channel [09:35] DoNaLd`: Quine_: thanx for your great hint :) [09:36] ghost has joined the channel [09:37] [AD]Turbo: DoNaLd`, big fails suck :( [09:38] [AD]Turbo: it seems V8 related [09:38] breccan has joined the channel [09:38] unlink has joined the channel [09:39] unlink has joined the channel [09:40] muhqu_ has joined the channel [09:40] zemanel has joined the channel [09:40] markwubben has joined the channel [09:42] gozala has joined the channel [09:43] Quine_: any improvements darrell? [09:44] astropirate: Is it considered bad practice to use module.exports to export just a class? for example: var foo = module.exports = function foo() {}; [09:45] adelcambre has joined the channel [09:45] Shrink has joined the channel [09:46] Shrink has left the channel [09:46] soulofpeace has joined the channel [09:46] dve has joined the channel [09:47] futuredarrell: working on it - i think its just pathing problems installed as a user rather than at root [09:48] Aikar has joined the channel [09:48] san: hi... anyone can help??? i am installing the clone the Git repository and build node.js but it gave me error that it's not in the path... the command is ./configure [09:48] floby: san: what is not in the path ? [09:49] san: the /bin/env: python: directory not found [09:49] Quine_: what os and where is python? [09:50] san: Quine:Windows OS and in my C drive [09:50] mbrochh has joined the channel [09:50] mbrochh has joined the channel [09:50] halfhalo has joined the channel [09:50] astropirate: i thought node only supported windows through cygwin [09:51] Quine_: afaik it does [09:51] halfhalo has joined the channel [09:51] Quine_: and this is out of my area, i stay far away from windows [09:51] astropirate: :D [09:51] halfhalo has joined the channel [09:52] halfhalo has joined the channel [09:52] halfhalo has joined the channel [09:53] san: any suggestion where can i search for help [09:53] halfhalo has joined the channel [09:53] Fullmoon has joined the channel [09:53] halfhalo has joined the channel [09:54] halfhalo has joined the channel [09:54] halfhalo has joined the channel [09:55] halfhalo has joined the channel [09:55] halfhalo has joined the channel [09:56] halfhalo has joined the channel [09:56] insin: san: just run the Cygwin setup.exe and pick all the packages listed here: https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-%28Windows%29 [09:56] sms has joined the channel [09:56] sms: hello [09:56] halfhalo has joined the channel [09:56] suckerpunch has joined the channel [09:57] sms: i want to pass the port number to listen on, as a command line parameter [09:57] sms: how i do that? [09:57] ttpva has joined the channel [09:57] andrewfff has joined the channel [09:57] kawaz_air has joined the channel [09:58] andoma has left the channel [09:58] sms: anybody can help me??? [09:58] WINNING has joined the channel [09:58] floby: sms: you can use process.argv [09:58] floby: sms: which contains command line arguments as an array of strings [09:58] breccan has joined the channel [09:59] sms: please explain how i use it [09:59] sms: i use express [10:00] floby: sms: if you do `node app.js 8080` then in your script process.argv[2] contains "8080". use parseInt() to get a Number value and then give it as argument to listen [10:06] yozgrahame has joined the channel [10:07] futuredarrell: Checking for openssl : not found [10:07] futuredarrell: Checking for function SSL_library_init : yes [10:07] futuredarrell: Checking for header openssl/crypto.h : yes [10:07] futuredarrell: ? [10:08] jetienne: confusing hey :) [10:08] futuredarrell: yeah not sure what is going on there [10:08] jetienne: http://jeromeetienne.github.com/dropinrequire.js/ new toy :) dropin replacement of require() in the browser... in 20lines of js :) [10:09] jetienne: futuredarrell: dunno, try make clean and do it again ? [10:09] jetienne: futuredarrell: maybe it is just the output being broken. [10:09] kwatch has joined the channel [10:10] Emmanuel__ has joined the channel [10:11] bzinger has joined the channel [10:11] Quine_: and openssl is definitely in your PATH? [10:12] markwubben has joined the channel [10:12] jetienne: oh nice point, maybe the "openssl" is the cmdline tool and not a lib [10:13] jetienne: but i bet on broken display. [10:13] Quine_: also, jetienne, that looks cool and useful! also you have a typo "and is willing to share" -> "and are willing" [10:14] jetienne: Quine_: thanks. fixed [10:15] futuredarrell: i think node and openssl are at different paths right now [10:16] jetienne: futuredarrell: if you run ubuntu, i got a .deb which would make it faster to install [10:17] futuredarrell has joined the channel [10:18] skm has joined the channel [10:19] Quine_: he's on os x i think [10:19] jetienne: ok [10:20] Quine_: so you have /usr/local/bin and /usr/bin in your PATH i assume futuredarrell? and any modifications to your path are in your .profile? [10:21] futuredarrell: right [10:21] Quine_: and when you run the make install, it aborts? [10:23] futuredarrell: not it finishes successfully [10:23] futuredarrell: no* [10:23] Quine_: are there any ill effects besides the display errors? [10:23] futuredarrell: other than configure missing the libraries everything went well [10:24] futuredarrell: but if i try and run the basic server.js it hangs [10:24] eventi has joined the channel [10:25] Quine_: hmm [10:26] futuredarrell: arrrrghhhh [10:26] futuredarrell: fixed it [10:27] Quine_: what was it? [10:28] futuredarrell: well its kind of embarrasing hahaha [10:29] Quine_: :P most issues are [10:29] futuredarrell: i think because i didnt have a console.log telling me the server was up i thought it was hanging [10:29] futuredarrell: bhahahaha [10:29] Quine_: ahh [10:29] futuredarrell: sorry about that [10:29] Quine_: no prob :) [10:30] Quine_: i spent 20 mins trying to figure out why my try catch block didnt catch anything the other day [10:30] Quine_: before realizing duh, the calls are async...it's long gone [10:30] futuredarrell: cant wait to try all this sweetness out [10:31] seivan has joined the channel [10:31] Quine_: ya, you just getting started with node i'm guessing? whats your programming background? [10:32] futuredarrell: ive done front-end development for about 5 or 6 years [10:33] futuredarrell: im not so strong with back-end or command line things but i really enjoy writing javascript [10:33] Quine_: you're gonna love node [10:33] ukev has joined the channel [10:33] futuredarrell: so im probably on "that side" of people coming to node [10:34] Quine_: if you need a good easy to use backend framework with routing and such, grasshopper is pretty good to play around with [10:34] futuredarrell: and i just got a coupon for a no.de smartmachine so im pumped [10:34] Quine_: express seems to be the most loved one but it's not quite ready for node 0.4.x yet (a week or two left) [10:34] Quine_: nice, i just got mine a few days ago [10:34] Emmanuel__: guys, do you know of any situation where fs.fileRead(my_file, callback(err,data)) will NOT call the callback ? [10:34] hurling has joined the channel [10:34] Emmanuel__: it's bugging me, I spent hours on that [10:34] AphelionZ has joined the channel [10:34] Emmanuel__: I just don't know why, there is no error, it just looks like the function is a dead end [10:35] floby: fileRead is a function ? [10:35] floby: isn't it readFile ? [10:35] Quine_: yea i think it's readFile [10:35] Emmanuel__: my bad : readFile [10:36] Quine_: dang, i was hoping the issue was the wrong name :P [10:36] Emmanuel__: :) [10:36] Emmanuel__: so, it works most of the time [10:36] Emmanuel__: I checked chunks of code with readFile, it works [10:36] ivaldi: hi - is there a way to change the color of the "output" from node (in the shell - if you use node in interactive mode)? [10:37] breccan has joined the channel [10:37] Emmanuel__: but I have a point in my app where fs.readFile is called (checked with jasmine) [10:37] Emmanuel__: but never call the callback [10:37] Quine_: hmm [10:37] Emmanuel__: typically, for debugging [10:38] Emmanuel__: I have something like : [10:38] Emmanuel__: console.log("I'm here"); [10:38] Emmanuel__: fs.readFile("/etc/motd", 'utf8', function(err,data){ console.log(data) } [10:38] Quine_: when you step debug it, can you go into fileRead? im assuming at that point its bound to compiled c++ code so you can't, but just to be sure [10:38] Emmanuel__: I haven't try that [10:39] Quine_: might be worth a shot, just in case [10:39] Emmanuel__: I'm a beginner, I debug using console.log :p [10:39] Quine_: even pros do that i hear [10:39] Quine_: :P [10:39] Emmanuel__: ahah [10:39] Quine_: if you haven't tried it, node-inspector is great tho [10:39] Quine_: really nice step debugging with the web inspector [10:39] Emmanuel__: (note in my example : the callback could just be function(err,data){ console.log("I passed") }, ie, not depend at all on (err,data), the result is the same [10:39] Emmanuel__: the callback is not called [10:40] Quine_: yea [10:41] lukus has joined the channel [10:42] Quine_: oh good [10:42] Quine_: you can step into readFile [10:42] Quine_: and see what it's doing [10:43] Emmanuel__: where can I find that ? [10:43] Quine_: you have npm? [10:43] Emmanuel__: (ie : is it a c++ source, hence I should check the node.js sources, or is it a .js somewhere ?) [10:43] Emmanuel__: yes [10:43] Quine_: sudo npm install node-inspector [10:43] Quine_: then open a spare tab and run node-inspector [10:44] Quine_: then node --debug server.js [10:44] Quine_: make sure not to run your app on 8080 [10:44] Quine_: cuz the debugger runs on that [10:44] Emmanuel__: alright [10:44] Quine_: then hit localhost:8080 [10:44] Quine_: and itll show the web inspector with your server.js [10:44] Quine_: and you can set breakpoints and step debug it [10:44] Quine_: just lmk if you hit any snags [10:47] Emmanuel__: hm [10:47] Emmanuel__: problem is, it's not a server that I'm running for now [10:47] Emmanuel__: (I'm actually testing and app somebody developped) [10:48] Quine_: thats fine, it can be anything [10:48] Emmanuel__: (trying to have the unit test to pass) [10:48] Quine_: the default filename is just server-js [10:48] Quine_: for example node apps [10:48] Quine_: you can use it to inspect anything [10:48] Emmanuel__: hm [10:49] swistak has joined the channel [10:51] Quine_: here's a good post on it [10:51] Quine_: http://grenzgenial.com/post/1210106964/debugging-node-js-with-node-inspector [10:52] Quine_: if you do --debug-brk itll break on the first line of your program [10:52] Emmanuel__: ah, thanks a lot, I'll take a look at that [10:53] Quine_: hope it helps :) [10:53] Quine_: im off to sleep [10:53] Quine_: good luck! [10:54] Emmanuel__: ah, this time it works [10:54] Emmanuel__: I'm off for beers ! [10:54] Emmanuel__: thanks ! [10:54] fusspawn: Sleep? I just got up, Morning all. [10:55] Quine_: haha [10:55] Quine_: :) [10:55] sebaz has joined the channel [10:56] Emmanuel__: it's 7pm for me, it's beer o'clock ! [10:56] bx2 has joined the channel [10:58] bigjay has joined the channel [10:58] kwatch: Is it possible to invoke OS command synchronously (non-asynchronously)? I read 'child_process' module document but I can't find invoke process synchronously. [11:00] jetienne: kwatch: ? this is async [11:00] jetienne: kwatch: reread :) [11:01] kwatch: I'm creating Rake-like tool for myself, and it needs 'system()' to invoke OS command. [11:02] jetienne: oh my bad i misread. i understood you wanted asyn [11:02] jetienne: c [11:02] jetienne: kwatch: have you looked at the "sequencer". stuff which help you write sync code [11:02] kwatch: I tried 'child_process' module, but it seems only asynch way. [11:02] jetienne: http://substack.net/posts/e0741f/Seq-Chainable-Asynchronous-Flow-Control-in-Node-js this is one [11:03] jetienne: https://github.com/creationix/step this is another [11:03] jetienne: kwatch: there is no native call to make it sync [11:03] redmind: underscore.js has chaining too [11:04] jetienne: redmind: with sync/async ? [11:04] redmind: oh async [11:04] redmind: nvm [11:04] marcello3d has joined the channel [11:05] kwatch: jtienne: thank you a lot information! I'll check them now. [11:05] jetienne: kwatch: my pleasure [11:09] McMAGIC-- has joined the channel [11:10] jpstrikesback has joined the channel [11:12] kristsk has joined the channel [11:13] kristsk has joined the channel [11:13] tc77 has joined the channel [11:15] futuredarrell has joined the channel [11:17] hij1nx has joined the channel [11:19] fusspawn: Theres a fantastic article for those wanting to know about how redis works under the hood, http://pauladamsmith.com/articles/redis-under-the-hood.html#redis-under-the-hood <- Not my work, Just something im reading. [11:20] Croms: Does "process.pid" work on Windows / Cygwin? [11:20] V1: fusspawn: It's already out of date :) [11:20] hassox has joined the channel [11:20] confoocious has joined the channel [11:21] fusspawn: V1 Doesnt supprise me at all. I just found it ammusing to read (I dont even use redis) and thought i would share. [11:21] Sorella has joined the channel [11:22] christophsturm has joined the channel [11:24] ngs has joined the channel [11:26] Ori_P has joined the channel [11:28] notostraca has joined the channel [11:29] notostraca: any users of Express/Connect here? [11:29] notostraca: I can't seem to figure out how to update this code to work with the latest stable Node [11:29] raphdg has joined the channel [11:30] hij1nx_ has joined the channel [11:30] astropirate: notostraca, lets see it [11:31] notostraca: https://github.com/dannytatom/muddy/blob/master/init.js -- not my code, i am just trying to run it! [11:31] notostraca: the problem is on line... [11:31] notostraca: uh, need to switch VMs to check [11:32] notostraca: line 16:19 [11:32] notostraca: Object # has no method 'staticProvider' [11:33] notostraca: and that makes sense, i think, because Express 2.0 does not appear to have that in that place [11:33] sebaz has left the channel [11:33] notostraca: but I don't know how to get it to work the Right Way for Express 2.0 [11:34] redmind: its connect/express.static 'path' [11:34] redmind: just the name is changed and there is no longer a cache option [11:34] notostraca: so change 'staticProvider' to 'staticPath'' [11:34] notostraca: right? [11:35] redmind: static(__dirname+'/public') for example [11:35] notostraca: oh ok [11:35] notostraca: i will try it, thanks a bunch! [11:35] redmind: *express.static(__dirname+'/public') [11:36] ttpva_ has joined the channel [11:36] axfraxfr has joined the channel [11:41] mike5w3c has joined the channel [11:43] lupomontero has joined the channel [11:45] d0k has joined the channel [11:45] xsyn has joined the channel [11:46] notostraca: you guys rule! [11:46] notostraca: it works locally [11:46] pt_tr has joined the channel [11:47] notostraca: thanks redmind and astropirate [11:51] ttpva_ has joined the channel [11:55] msch has joined the channel [11:56] p0ns has left the channel [12:00] unlink has joined the channel [12:01] mhausenblas has joined the channel [12:02] tomask has joined the channel [12:08] eee_c has joined the channel [12:11] charlenopires has joined the channel [12:11] seivan has joined the channel [12:11] AphelionZ has joined the channel [12:16] DoNaLd` has joined the channel [12:17] pastak has joined the channel [12:20] incon has joined the channel [12:21] ttpva_ has joined the channel [12:22] aabt has joined the channel [12:23] mraleph has joined the channel [12:24] mraleph: ryah: ping [12:26] okuryu has joined the channel [12:26] wav1 has joined the channel [12:26] jetienne: SubStack: http://www.rfc-editor.org/rfc/rfc6143.txt i saw this one and thought about you. fyi [12:31] erikcorry has joined the channel [12:32] seivan has joined the channel [12:34] seivan has joined the channel [12:38] Binario has joined the channel [12:39] emattias has joined the channel [12:39] broofa has joined the channel [12:39] fairwinds has joined the channel [12:41] mike5w3c has joined the channel [12:42] stalled has joined the channel [12:44] eyesUnclouded has joined the channel [12:45] Binario: Hi guys, I'm starting to get interested in node.js, I understand that node.js is event driven, but this works only server -> client, or server -> clients. For instance, imagine a chat app, can node.js send an update to the other participants as soon as one visitor typed something ? [12:46] Binario: My first phrase was actually a question, sorry about that [12:46] kristsk: Binario: it works well for both purposes. [12:46] mscdex: yeah [12:46] Binario: oh great [12:47] floby has joined the channel [12:47] hwinkel has joined the channel [12:48] eventi has joined the channel [12:48] jetienne: Binario: yes. http://easywebsocket.org/contrib/chat/ here is an demo [12:48] Binario: also, from what I saw, you need to run nodejs on a port. But, do you use apache or nxing as a proxy or not ? [12:48] MrTopf has joined the channel [12:49] jetienne: Binario: it is possible but not required. depends on your case [12:49] kristsk: Binario: depends on protocol [12:50] Binario: jetienne: awesome demo, exactly what I was looking for :) thank you [12:50] kristsk: if you are using http, then it sometimes makes sense to use apache/nginx for load balancing [12:50] Nevtus_ has joined the channel [12:52] Binario: because, from what I saw on the nodejs.org you have to declare the Content-Type: etc.. so I imagine you would have to handle the 404, 503 ,etc.. I'm asking regarding a regular web app with event-driven model in mind [12:53] GriffenJBS: Binario: Node.js is just a way to pull v8 out of the browser and provides modules and event loop for it [12:54] GriffenJBS: if you don't want to handle details like 404, use middleware [12:54] GriffenJBS: a few already exist https://github.com/joyent/node/wiki/modules [12:56] Murugaratham has joined the channel [12:56] Binario: amazing [12:56] Binario: thanks ;) [12:57] dmaincrash has joined the channel [12:58] suckerpunch has joined the channel [13:02] Bugzu has joined the channel [13:03] asabil has joined the channel [13:03] Bugzu has left the channel [13:05] fly-away has joined the channel [13:06] froak has joined the channel [13:07] seivan has joined the channel [13:07] tiemonster has joined the channel [13:07] narayan82 has joined the channel [13:08] tktiddle has joined the channel [13:09] emattias_ has joined the channel [13:09] emattias has joined the channel [13:10] axfraxfr has joined the channel [13:12] piscisaureus has joined the channel [13:13] framlin: GriffenJBS: are there any meta-information available concerning the node-modules. Ratings or something else that helps to see what is warth to look at? [13:13] xla has joined the channel [13:18] tiemonster: If they're in the npm repository, they're usually worth looking at [13:18] seivan has joined the channel [13:22] augustl: http://nodejs.org/docs/v0.4.2/api/https.html - can't find docs on how to pass key, cert and ca to https requests. [13:22] augustl: are the options the same as the https server? I.e key, cert and ca. [13:24] boaz has joined the channel [13:24] jmar777 has joined the channel [13:25] augustl: seems like that's the case :) [13:27] saikat has joined the channel [13:29] piscisaureus_ has joined the channel [13:30] hellp has joined the channel [13:34] ElDios has joined the channel [13:35] davemo has joined the channel [13:35] madewulf has joined the channel [13:36] madewulf has left the channel [13:36] Muon has joined the channel [13:36] Muon has joined the channel [13:36] AphelionZ has joined the channel [13:36] augustl: open source ftw https://github.com/joyent/node/pull/768 ;) [13:38] perlmonkey2 has joined the channel [13:39] ximo has joined the channel [13:39] kriszyp has joined the channel [13:42] dnolen has joined the channel [13:42] jlecker has joined the channel [13:43] eventi has joined the channel [13:44] GriffenJBS: framlin: not realy, they are all useful tools, but we don't know what job your doing, only you can make that judgement [13:45] pHcF has joined the channel [13:46] V1: Wooot!, the new Safari in iOS 4.3 supports websockets! [13:47] V1: It's still not broken :D [13:49] AphelionZ has joined the channel [13:49] framlin: GriffenJBS: thats right, but there are a lot of modules under the same category and its difficult to see, if one is more ore less suitable for my concernes [13:50] fumanchu182 has joined the channel [13:50] eyesUnclouded has joined the channel [13:53] V1 has left the channel [13:57] seivan has joined the channel [13:58] matclayton has joined the channel [14:03] trotter has joined the channel [14:04] themiddleman_itv has joined the channel [14:05] jbpros has joined the channel [14:05] c4milo has joined the channel [14:08] arpegius has joined the channel [14:09] mlncn has joined the channel [14:11] Remoun has joined the channel [14:13] dyer has joined the channel [14:16] heythisisdave_ has joined the channel [14:16] Muon: hm, what was the hullabaloo over WebSockets anyway? [14:16] amacleod has joined the channel [14:17] Muon: I thought they worked fine [14:17] augustl: mozilla blogged about their concerns iirc [14:17] stalled has joined the channel [14:18] paulrobinson has joined the channel [14:18] trotter: Muon: I'm pretty happy with them... but the fact that they don't support binary data definitely tripped me up the other day [14:20] saschagehlich has joined the channel [14:23] eaton has joined the channel [14:25] groom: I have written a module that processes some data. I want to implement two functions doing the same thing, one taking a stream as an argument, another one taking a string. since I don't want to write the code twice, I want to use one function by the other. Can I create a readable stream that get's it's content from a string? [14:29] paulrobinson has left the channel [14:30] statik has joined the channel [14:30] floby: groom: this looks doable. what you need is an object that conform to the stream interface and tha yields the content of your string [14:31] zzak has joined the channel [14:31] zzak has joined the channel [14:33] groom: floby I thought about a stream that is readable and writable, but I'm somehow incapable to create a stream and call write() on that stream [14:33] marcello3d has joined the channel [14:34] floby: groom: do you mean a stream.ReadStream ? [14:34] groom: floby would that be readable *and* writable? [14:34] floby: groom: no [14:35] floby: groom: these stream are for file systems purpose [14:35] floby: groom: you just have to implement a stringstream that follows the Writable and Readable interfaces [14:35] ElDios has left the channel [14:36] hwinkel has joined the channel [14:37] groom: floby: where are these interfaces defined? [14:38] floby: groom: in the docs =) just a sec [14:38] codelotus has joined the channel [14:38] floby: groom: http://nodejs.org/docs/v0.4.2/api/streams.html#streams [14:39] rfay has joined the channel [14:39] colinclark has joined the channel [14:40] mrsrikanth has joined the channel [14:40] strmpnk has joined the channel [14:40] groom: floby: I think I see how that works. Thank you. I'll dive into it. [14:46] ajashton has joined the channel [14:46] floby: groom: I implemented a readableStream in my attempt at writing a template engine back in the days. http://github.com/floby/node-blue [14:47] troessner has joined the channel [14:48] matschaffer has joined the channel [14:49] davidsklar has joined the channel [14:49] groom: floby: I'll have a look, thx [14:50] Croms has joined the channel [14:51] mlncn has joined the channel [14:51] muk_mb has joined the channel [14:53] axfraxfr has joined the channel [14:54] FireFly|n900 has joined the channel [14:54] FireFly|n900 has joined the channel [14:55] boaz has joined the channel [14:55] halfhalo has joined the channel [14:56] FireFly has joined the channel [14:57] __tosh has joined the channel [14:59] nonnikcam has joined the channel [15:00] kriszyp has joined the channel [15:01] bradleymeck has joined the channel [15:03] NuckingFuts has joined the channel [15:03] Venom_X has joined the channel [15:04] akahn has joined the channel [15:04] heythisisdave_ has joined the channel [15:06] ximo has joined the channel [15:06] timmywil has joined the channel [15:07] akahn has left the channel [15:11] NuckingFuts: Ugh.I got an email from no.de telling me I got a coupon, but when I hit up the API, it returned an empty array. [15:12] NuckingFuts: I want to get some services running on this bitch. [15:12] ceej has joined the channel [15:13] heythisisdave_ has joined the channel [15:15] julienXX has joined the channel [15:15] unlink has joined the channel [15:15] unlink has joined the channel [15:15] bradleymeck: mmm cygwin sconscript->lib error with gcc4/g++4 & SHELL=/bin/bash , anyone know what else could cause this? [15:15] eee_c has joined the channel [15:15] eresair has joined the channel [15:17] rachel has joined the channel [15:17] L4rd0: xml or json for objects < 10k char? [15:18] rachel44: Is there any 'official' way in node to hot reload included files? [15:18] zemanel has joined the channel [15:19] ximo has joined the channel [15:20] bradleymeck: L4rd0 json, always. Its faster to parse and JSON.* is built into v8 [15:21] L4rd0: ace, thanks [15:21] sivy has joined the channel [15:21] floby: rachel44: not in core, but there are several modules that allow this [15:21] mscdex: anyone know if there are any websocket draft 06 clients out there? browser or otherwise? [15:22] sivy has joined the channel [15:22] rachel44: floby: I've looked a couple, but they actually shut down the process entirely and restart it [15:22] mscdex: bradleymeck: what exactly is the error? [15:22] bmavity has joined the channel [15:23] rachel44: not very hot! [15:23] bradleymeck: with scon's usual verbosity: Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} [15:24] jmar777: does v8 publish any sort of a "release summary" for dot release? i check out the changelog occasionally (http://code.google.com/p/v8/source/browse/trunk/ChangeLog), but details are sparse [15:24] Muon: I am going to set ciaranj on fire [15:24] Muon: his OAuth library has the worst API ever [15:24] kristsk: do not use it then. [15:25] Muon: it is the only OAuth client library that works with 0.4. [15:25] bradleymeck: muon, not really, i like his api compared to most oauth libs (ones that automagic the hookups do not count) [15:25] Muon: "automagic the hookups"? [15:26] bradleymeck: where you just say : login to twitter, and it says "ok!" [15:26] strmpnk_ has joined the channel [15:26] mscdex: bradleymeck: i mean above that line? [15:27] bradleymeck: obj/release/mksnapshot.exe obj/release/snapshot.cc --logfile "/home/bmeck/node/build/default/obj/release/snapshot.log" --log-snapshot-positions [15:27] bradleymeck: scons: *** [obj/release/snapshot.cc] Error 127 [15:27] Muon: bradleymeck: there are only 2 OAuth libs for Node [15:27] Muon: *client [15:27] bradleymeck: im talking about all languages though :O [15:27] prof-freud has joined the channel [15:27] Muon: bradleymeck: I don't give a damn [15:27] bradleymeck: indeed [15:28] mscdex: bradleymeck: what version of node is this? master or 0.4.2 or ? [15:28] bradleymeck: 4.2.0 [15:28] deepthawtz has joined the channel [15:29] Muon: I'd implement RFC 5849 on my own right now, but I'm on a deadline [15:29] Muon: I HATE DEADLINES [15:31] ggordan has joined the channel [15:31] blowery: the thing i've learned about deadlines: no one dies [15:31] blowery: it's like GI Joe [15:34] saschagehlich has joined the channel [15:37] mynyml has joined the channel [15:37] dwww has joined the channel [15:40] axfraxfr has joined the channel [15:40] msch has joined the channel [15:41] andrewfff has joined the channel [15:42] ximo has joined the channel [15:42] RusAlex has joined the channel [15:43] eventi has left the channel [15:48] timmywil_ has joined the channel [15:48] unomi has joined the channel [15:48] unomi has joined the channel [15:49] AphelionZ has joined the channel [15:50] felixge has joined the channel [15:50] felixge has joined the channel [15:51] rachel44: Does anyone know any hotloading modules that work? [15:51] rachel44: I'm trying to use https://github.com/saschagehlich/hotnode [15:51] rachel44: but it just says "var: command not found" [15:51] rfay has joined the channel [15:52] losing has joined the channel [15:52] lessthanzero has joined the channel [15:55] floby: rachel44: that's because hotnode.js is not shebanged [15:55] floby: rachel44: do node hotnode yourapp.js [15:55] floby: rachel44: well not exactly but you get the idea [15:55] Sembiance: wow. 523 people in here. That's more than #php #javascript #c #java #asp [15:56] kristsk: coz its trendy and hip! [15:56] Sembiance: hehe [15:56] floby: half of us are bots :D [15:56] Sembiance: and it works, well. I'm so glad I switched my production site over to it about 2 months ago [15:56] halfhalo: ACTION is a bot [15:56] floby: ACTION is a bot [15:56] halfhalo: Beepboop [15:57] mjr_: fucking bots [15:57] halfhalo: Only On fridays [15:57] floby: ACTION floby is a kitchen bot so it doesn't make any sound [15:57] briznad has joined the channel [15:58] eventi has joined the channel [15:59] ramsin has joined the channel [15:59] rachel44: hey floby [15:59] rachel44: how do I do that if the program is being like this: [15:59] rachel44: #!/usr/bin/env node [15:59] rachel44: var Server = require('../lib/server.js').Server; [16:00] rachel44: I tried changing node to hotnode but nope [16:01] floby: rachel44: I guess the creator of hotnode forgot to shebang his stuff. but I'd do `node /path/to/hotnode server.js` [16:01] Me1000 has joined the channel [16:01] BillyBreen has joined the channel [16:01] fusspawn: Anyone whos got the standard "mongodb" module on npm working got a moment? [16:02] floby: fusspawn: no, I always use mongodb-native or mongoose [16:03] fusspawn: Im not sure im not using mongodb-native myself, its what ever one npm installs under a npm install "mongodb" I think i folled the links in it earlier and it took me to the github for mongodb-native [16:03] fusspawn: followed* [16:05] floby: fusspawn: oh yeah, there used to be a module called mongodb that was just some bindings but it doesn't seem to be published in npm [16:06] floby: fusspawn: so yeah, I guess it's the same [16:06] softdrink has joined the channel [16:06] floby: fusspawn: gotta go tho, sorry [16:06] mraleph: jmar777: ChangeLog always mentions important changes. if something is not mentioned --- then it is not important. [16:06] fusspawn: No worries, [16:06] fusspawn: least i know which package im using now :P [16:07] mraleph: ryah: ping? [16:08] markbao_ has joined the channel [16:08] markbao_: hey [16:08] eaton has joined the channel [16:08] eaton has joined the channel [16:08] markbao_: is there a way to tell the node.js http request to follow 301s? [16:08] floby: fusspawn: oh wait, mongoose doesn't seem to be depending on mongodb anymore [16:09] rachel44: thanks for the tip floby, had to add #!/usr/bin/env node to the top of the hotnode file [16:09] floby: rachel44: welcome, maybe the author would be happy to get a patch ;) [16:09] fusspawn: Im still yet to play with mongoose, just tried a simple save/load using mongodb, I can save just fine just having issues getting data back out :/ [16:10] rachel44: gggggggggggggggfdsadfgdsc [16:10] rachel44: hotnode kills/restarts the connection too [16:10] floby: fusspawn: nevermind, it's just that mongodb ships with its drivers bundled in its lib/ folder [16:10] rachel44: why can't I just have a node ircd where I can make changes without kicking every user off [16:10] rachel44: ;o; [16:11] Andi5 has joined the channel [16:11] Aikar: you could if you coded it in regards to doing that [16:11] floby: rachel44: store your session in DB! if you're using connect or express, there are modules [16:11] bradleymeck: well you could make it plugin oriented and then you could do that pretty easy [16:11] tfe_ has joined the channel [16:11] rachel44: yes I know I should completely rewrite my own ircd instead of using someone's from github :< [16:12] Aikar: fork -> modify [16:12] bradleymeck: but remember, if you have running callbacks/eventlisteners they will not be updated w/ liveedit [16:12] rachel44: le sigh! [16:12] Aikar: and then submit your changes back to the autor [16:12] Aikar: author [16:12] Aikar: r [16:12] bradleymeck: where was that liveedit module... [16:13] axfraxfr has joined the channel [16:13] bradleymeck: rachel44: https://groups.google.com/forum/#!topic/nodejs-dev/OjeKPsyXNeM might be the most apt since it actually uses liveedit rather than restarts [16:13] groom: floby: i have a stringstream module implementing resume, pause etc. but they aren't called. i would expect, that util.pump calls resume, but it does not. [16:13] bradleymeck: but unsure that will be 100% [16:13] rachel44: thanks, I'll check it out [16:14] BrianTheCoder has joined the channel [16:14] aways|bnc: ACTION A+  [16:14] sub_pop has joined the channel [16:15] tmzt_: fusspawn: what kind of issues? [16:15] eee_c has joined the channel [16:16] tmzt_: fusspawn: I'm using the sample code in node-shorten, works pretty good [16:16] fusspawn: http://pastebin.com/wbhHasEm <-- Stupid ones, collection objects not having a find method being the key one >.> [16:16] felixge_ has joined the channel [16:17] ximo has joined the channel [16:18] rachel44: bradleymeck: Do you know if this reloads included files too? [16:18] jakehow has joined the channel [16:18] bradleymeck: not off top of my head [16:19] tmzt_: yeah, until there's a clean framework for overridding (middleware) require these things won't work [16:19] ryanfitz has joined the channel [16:20] EyePulp has joined the channel [16:23] unomi has joined the channel [16:23] softdrink has joined the channel [16:25] dthompson has joined the channel [16:26] jscheel has joined the channel [16:28] broofa has joined the channel [16:28] sleeplessinc has joined the channel [16:30] jscheel: hey guys, having some trouble with nodeio. I have a job here: http://pastie.org/1656182. I want to run it with my own error handling, so according to chriso I should do it like so: http://pastie.org/1656186. But, I get Object has no method 'getHTML' on my job when I run it. Any thoughts? [16:33] msch has joined the channel [16:34] Andi5 has left the channel [16:34] Astro has joined the channel [16:35] vipaca has joined the channel [16:35] vipaca has joined the channel [16:35] sprout has joined the channel [16:35] nuba has joined the channel [16:39] confoocious has joined the channel [16:39] losing has joined the channel [16:42] adedip has joined the channel [16:43] adedip: hi everyone :) [16:43] tbranyen: sup [16:43] noahcampbell has joined the channel [16:45] yyamano has joined the channel [16:47] Sorella has joined the channel [16:47] pHcF has joined the channel [16:47] hwinkel has joined the channel [16:51] pom_ has joined the channel [16:51] hoodoos: hello, guys, if anybody interested in my memory leaking problem. I couldn't find simple way to examine process memory, but found my leak in leaking events for one of eventemitters. Thanks for warning in 0.4.2. I couldn't notice it at once, because warning was given only one time and after load it went up too fast in console(my error catching regexp wasn't tuned to catch that kind of errors). happy end. nodejs is the best :) [16:52] losing_ has joined the channel [16:53] bingomanatee has joined the channel [16:53] possibilities has joined the channel [16:54] bingomanatee: Hey Yo! [16:55] bartt1 has joined the channel [16:55] gerad has joined the channel [16:57] zachsmith has joined the channel [16:58] Utkarsh has joined the channel [16:59] tjholowaychuk has joined the channel [16:59] narayan82 has joined the channel [16:59] aelaguiz has joined the channel [16:59] broofa has joined the channel [16:59] aelaguiz: Anyone got some constructive criticism for the way I'm doing this? https://gist.github.com/864454 [17:02] tim_smart has joined the channel [17:03] zachsmith: amirpc|home: well, once you've found a path that doesn't exist you can assume that the rest of the paths don't exists [17:03] amirpc|home: touche [17:03] zachsmith: amirpc|home: kindof a stupid nitpicky thing [17:03] amirpc|home: not stupid, stupid of me to not break on first fail [17:04] amirpc|home: more was thinking that I've been coding in node.js/v8 for like 2 months now wondering if my way of doing things is "nodeish" [17:05] wadey has joined the channel [17:06] brianc: anyone going to sxsw? [17:06] sprout has joined the channel [17:07] Muon: eek [17:07] bradleymeck: i live here so somewhat [17:07] brianc: or anything node.js related happening there? [17:07] brianc: bradleymeck: ditto [17:07] Muon: TypeError: Cannot read property 'methods' of undefined [17:07] Muon: at Object. (/home/electro/opt/lib/node/.npm/express/2.0.0beta3/package/lib/http.js:15:21) [17:08] Muon: tjholowaychuk: ping [17:08] aabt has joined the channel [17:08] tjholowaychuk: Muon: pong [17:08] tjholowaychuk: wrong version of connect [17:08] bradleymeck: brianc it comes up in austinjs a lot so that party will prolly have something [17:08] Muon: tjholowaychuk: what then? [17:08] brianc: bradleymeck: killer. do I need a badge & all that for the austinjs party? [17:08] bradleymeck: 2 cans food [17:08] hornairs has joined the channel [17:09] tjholowaychuk: Muon: what does require('connect').version at the top of the script give you? [17:09] brianc: bradleymeck: oh yeah i remember reading that now, sorry [17:09] pcardune has joined the channel [17:09] willwhite has joined the channel [17:09] Muon: tjholowaychuk: undefined [17:10] jasong_at_apache has joined the channel [17:10] amirpc|home: is there an easy way to recursively iterate a sparse array without checking every item from 0 to length? [17:10] Muon: er [17:10] Muon: wtf [17:10] Muon: no [17:10] Muon: tjholowaychuk: 1.0.6 [17:10] Muon: sorry [17:10] DoNaLd`: tjholowaychuk: hi .. plz. i have installing new verzion expressjs beta 2 and my application crashed on some issues with express .. do you have link to all changes, which you have make in this beta ? [17:11] tjholowaychuk: Muon: hmm that should be ok then, what about the require('express').version ? one of those would be wrong [17:11] tjholowaychuk: for that to happen [17:11] bradleymeck: amirpc use objects for sparse not arrays (i can go on at length, lets just say arrays in js are meant for contiguous indexes) [17:11] bradleymeck: then just for ... in [17:11] amirpc|home: bradleymeck: okay, same question for objects [17:11] tjholowaychuk: DoNaLd`: http://expressjs.com/migrate.html [17:11] biscarch has joined the channel [17:12] mraleph: amirpc|home: Object.keys(obj).forEach(function (key) { }); [17:12] amirpc|home: oh hey I'm in Austin, is this austinjs party gonna be cool? I could totally get some of my fellow nerds there [17:12] amirpc|home: mraleph: omg thank you, I can't believe I didn't know that existed [17:12] ossareh has joined the channel [17:12] brianc: amirpc|home: "var o = { boom: 1, bang: true }; for(var key in o) { console.log(o[key]) };" [17:13] bradleymeck: mraleph youll never get me to use your high level voodoo, nevar! ... unless its inlined [17:13] brianc: Object.keys & Array.forEach are radical, but do not work in IE fyi [17:13] mraleph: that is not very "optimal" but should be good enough. [17:13] DoNaLd`: tjholowaychuk: ok .. but i don't see on this site, why is this error in my application ? express.use(express_lib.conditionalGet()); -> ^ [17:13] DoNaLd`: TypeError: Object # has no method 'conditionalGet' [17:13] amirpc|home: I've been using for key in for a while, whats the diff between that and keys.forEach [17:14] tjholowaychuk: DoNaLd`: conditionalGet() was removed from connect 1.x [17:14] tjholowaychuk: it was not a good solution [17:14] mraleph: for-in iterates over everything in prototype chain. [17:14] amirpc|home: ah, I see [17:14] brianc: amirpc|home: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/foreach [17:14] biscarch: quick question, Can I have a child process's stdout be used as the parents stdin? [17:14] springmeyer has joined the channel [17:14] amirpc|home: brianc: thanks [17:15] amirpc|home: I never think to look at js docs I always think to look for "node.js" docs, I have to get out of that habit [17:15] DoNaLd`: tjholowaychuk: ok .. next ? express.use(express_lib.cache()); -> ^ [17:15] DoNaLd`: TypeError: Object # has no method 'cache' [17:15] brianc: the mozilla js docs are pretty good [17:15] tjholowaychuk: DoNaLd`: removed as well [17:15] tjholowaychuk: not useful at all [17:15] DoNaLd`: tjholowaychuk: :) [17:15] tjholowaychuk: it just cached _everything_ [17:15] DoNaLd`: tjholowaychuk: gzip also ? [17:15] tjholowaychuk: which is both dangerous and pointless [17:16] tjholowaychuk: gzip was hella buggy [17:16] DoNaLd`: ok so also removed ? [17:16] tjholowaychuk: yup [17:16] tjholowaychuk: until a good solution is available [17:16] DoNaLd`: erroHandler ? [17:16] tjholowaychuk: that is still in [17:16] DoNaLd`: ok [17:16] DoNaLd`: :) [17:16] tjholowaychuk: the rest are in iir [17:16] DoNaLd`: thnx [17:17] mlncn has joined the channel [17:17] DoNaLd`: tjholowaychuk: bodyDecoder ? [17:17] ocirs has joined the channel [17:17] tjholowaychuk: DoNaLd`: bodyParser, and cookieDecoder is now cookieParser [17:17] tjholowaychuk: decoder was a dumb name [17:17] DoNaLd`: tjholowaychuk: ok [17:19] Muon: tjholowaychuk: http://codepad.org/OaAKXrx0 [17:20] tjholowaychuk: right right, hmm. did you require('connect') above the express require in your script? not the repl [17:20] tjholowaychuk: the require may not be resolving correctly [17:20] zemanel has joined the channel [17:20] tjholowaychuk: because that really seems like the wrong connect [17:20] piscisaureus: v8: setTimeout [17:20] v8bot: piscisaureus: ReferenceError: setTimeout is not defined [17:20] ocirs has left the channel [17:23] gerad: any tips for installing node-monogodb-native on no.de? (npm install mongodb dies) [17:23] Muon: tjholowaychuk: un and reinstalled express and connect, now it seems to work [17:23] Muon: only complains about staticProvider [17:23] tjholowaychuk: Muon: ah, yeah just read the connect readme, staticProvider -> static, bodyDecoder -> bodyParser etc [17:24] Muon: right, right [17:26] piscisaureus: I can't even create 3M timers with node ... :-/ [17:26] Muon: tjholowaychuk: errrrrr, what changes have there been made to template local var passing? [17:26] Muon: tjholowaychuk: I can't get at this.url [17:26] Muon: for that matter, this is empty [17:26] losing has joined the channel [17:27] kevinliu has joined the channel [17:27] tjholowaychuk: "this" is no longer the request, I may switch that back some time but I dont really like people using "this" in a view, just seems strange [17:27] tjholowaychuk: just do app.dynamicHelpers({ url: function(req, res){ return req.url; } }) [17:27] tjholowaychuk: or return the req and use req.url in your view [17:27] tjholowaychuk: IMO that is a better solution [17:27] springmeyer has joined the channel [17:28] ocirs has joined the channel [17:29] pom_: anyone here happen to know at what point the udp impl start dropping messages? it doesn't seem to like any interaction going on, e.g. data from udp messages being sent to a database, it'll easily drop half of the messages [17:29] Me1000 has joined the channel [17:29] msch has joined the channel [17:32] ryah: mraleph: regarding issue 588 - i believe crankshaft is working on solaris [17:32] mraleph: ryah: how? [17:32] mraleph: ryah: I looked at platform-solaris.cc and found no calls to RuntimeProfiler::NotifyTick [17:33] mraleph: ryah: http://dtrace.org/blogs/bmc/2011/03/09/when-magic-collides/#comment-2467 [17:33] Vasyuta has joined the channel [17:33] ryah: mraleph: ah - okay - we were seeing sigprofs and i figured it was crankshaft running [17:33] ryah: i'll fix it today [17:34] mraleph: ryah: port from platform-linux.cc should be straightforward. [17:35] mlncn has joined the channel [17:37] mike5w3c has joined the channel [17:37] ryah: mraleph: somehow we're seeing many sigprofs at the moment on sun [17:37] ryah: mraleph: are you saying that can only be caused by the cpu profiler? [17:37] springmeyer has joined the channel [17:38] Muon: tjholowaychuk: partial templates are not in views/partials any more? [17:38] tjholowaychuk: Muon: nope, relative to the parent view [17:38] Vasyuta: Hello! Realy newby in node, want to bind libircclient library - where to read a little bit more about modules/add-ons writing? [17:38] tilgovi has joined the channel [17:38] tjholowaychuk: so if rendering ./views/users/index.jade you can partial('user') and it will grab ./views/users/user.jade etc [17:38] davidascher has joined the channel [17:38] tjholowaychuk: and you can do partial('../foo') etc as well [17:38] Muon: mhm [17:38] mraleph: ryah: that's because Crankshaft enables sampling thinking that it will only get stack interrupts, but because sampler was not refactored it sends SIGPROFs instead. [17:39] ryah: i see [17:39] ryah: mraleph: okay - thanks for the info [17:39] kriszyp2 has joined the channel [17:39] mraleph: on Linux it will start sanding SIGPROFs only if you enable CPU profiler, but sampler itself is always active. [17:39] yozgrahame has joined the channel [17:40] noahcampbell_ has joined the channel [17:40] Muon: COOL [17:40] Muon: I segfaulted node [17:40] Muon: >_> [17:40] tjholowaychuk: hahaha [17:40] ryah: Muon: stacktrace, coredump? [17:40] Muon: ryah: never mind, it's in my magic module [17:40] bradleymeck: dont see that often [17:41] Muon: (magic C++ module, that is) [17:41] Muon: ryah: move along, nothing to see here yet [17:41] Muon: woo, null pointer [17:42] perezd has joined the channel [17:42] Aikar: thou shall not deref null pointers! [17:42] viewsrc has joined the channel [17:42] possibilities has joined the channel [17:44] perezd has joined the channel [17:44] Muon: that's odd [17:44] fabian has joined the channel [17:44] jiggliemon has joined the channel [17:45] colinclark has joined the channel [17:46] kei has joined the channel [17:46] m4dv0y has joined the channel [17:47] m4dv0y has left the channel [17:49] springmeyer has joined the channel [17:49] dyer_ has joined the channel [17:49] Vasyuta has joined the channel [17:50] harth has joined the channel [17:50] colinclark has joined the channel [17:51] Muon: ryah: er, have you made any synchronous POSIX I/O-breaking changes? [17:51] Muon: pread is returning 0 [17:51] vnarang has joined the channel [17:54] matclayton has joined the channel [17:54] matclayton has joined the channel [17:55] wav1 has joined the channel [17:55] Muon: ryah: ping [17:56] sleeplessinc has joined the channel [17:56] losing has joined the channel [17:58] tiemonster: synchronous I/O? [17:58] atiti has joined the channel [17:59] tiemonster: what's the use case for that? [18:02] Muon: tiemonster: you don't want to know [18:02] tiemonster: fair enough [18:02] tiemonster: :-D [18:02] Muon: tiemonster: but it is related to emergency stopgap measures [18:02] tiemonster: I can't begin to guess what that means [18:03] zakabird has joined the channel [18:04] jamesarosen has joined the channel [18:06] Plouj has left the channel [18:06] possibilities has joined the channel [18:07] deepthawtz has joined the channel [18:08] arthabaska has joined the channel [18:08] jakehow has joined the channel [18:08] Muon: ACTION shakes ryah all about [18:09] slickplaid: making him do the hokey pokey? [18:10] rauchg_ has joined the channel [18:10] Gruni has joined the channel [18:10] hobodave has joined the channel [18:11] hobodave: hey guys, just upgraded from 0.2 to 0.4.2, trying to get my app working. I'm getting this error: "SyntaxError: Use of const in strict mode." this occurs in the http-digest library. I can't find any docs via Google that seems to address this. What can I do here? [18:11] technoweenie has joined the channel [18:12] dguttman has joined the channel [18:12] dguttman has joined the channel [18:12] xandrews has joined the channel [18:13] onar_ has joined the channel [18:13] yyamano has joined the channel [18:13] sprout has joined the channel [18:13] kiddphunk has joined the channel [18:15] Vasyuta has joined the channel [18:15] Vasyuta has left the channel [18:17] mnot has joined the channel [18:18] astrolin has joined the channel [18:19] hobodave: sigh [18:19] hobodave: hey guys, just upgraded from 0.2 to 0.4.2, trying to get my app working. I'm getting this error: "SyntaxError: Use of const in strict mode." this occurs in the http-digest library. I can't find any docs via Google that seems to address this. What can I do here? [18:19] pietern_ has joined the channel [18:19] astrolin has joined the channel [18:20] deepthawtz has joined the channel [18:20] mraleph: remove const? [18:21] Muon: okay, who killed Ryan? [18:24] felixge has joined the channel [18:24] felixge has joined the channel [18:25] amacleod has joined the channel [18:26] ter has joined the channel [18:26] hornairs has joined the channel [18:27] aho has joined the channel [18:27] steffkes has joined the channel [18:27] ryah: Muon: [18:27] ryah: ? [18:28] ter: got this error while building node.js on a windows 7 machine: obj/release/snapshot.cc:10805: warning: converting of negative value `-0x00000007b' to `v8::internal::byte' [18:28] Muon: ryah: did you do anything that would break sync posix i/o? [18:28] ter: I've tried the different fixes, workarounds on the Git wiki. nothing seems to work [18:28] patcito has joined the channel [18:28] Muon: ryah: pread is returning 0 [18:28] Muon: ryah: worked fine with 0.2.6 [18:28] ter: not sure, I'm using a new cygwin install [18:29] ryah: Muon: maybe it's the end of the file [18:29] Muon: ryah: no [18:29] Muon: ryah: read 0 bytes at offset 9980 [18:29] Muon: 13024 bytes in file [18:29] mscdex: ter: are you building the master branch or 0.4.2? [18:30] ncb000gt has joined the channel [18:30] saschagehlich: rauchg_: ping [18:31] ter: I followed the instructions on "https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)" [18:31] Muon: though [18:31] ter: I think it must be the latest stable version [18:31] Muon: then it wouldn't read the index file [18:32] ncb000gt: Muon: what wouldn' [18:32] ncb000gt: t? [18:32] ncb000gt: <-- just arrived [18:33] tbassetto: hi. a colleague just installed node. whenever he wants to use "http.get()" in a script, the script seems to freeze [18:33] Muon: ryah: apparently a write to the index file failed somewhere [18:33] Country has joined the channel [18:33] Muon: ryah: never mind [18:33] eee_c has joined the channel [18:33] jeremyselier has joined the channel [18:34] tbassetto: for instance: node app.js … and nothing happens [18:34] Muon: stupid corrupt file [18:34] gozala has joined the channel [18:34] ncb000gt: tbassetto: can you put up a gist with the usage? [18:35] jeremyselier: ncb000gt : I'm using this: http://nodejs.org/docs/v0.4.2/api/http.html#http.get [18:35] tbassetto: jeremyselier is my colleague [18:35] tbassetto: :) [18:35] ncb000gt: :) [18:35] ncb000gt: ok [18:35] jeremyselier: I just add var http = require('http') at the beginning [18:35] ncb000gt: jeremyselier: ok [18:36] ncb000gt: add method: 'GET' to the options hash [18:36] brapse has joined the channel [18:36] ncb000gt: assuming correct punctuation and such :) [18:37] jeremyselier: sure [18:37] jeremyselier: same problem [18:37] stephank has joined the channel [18:38] jeremyselier: no feedback at all after executing "node get.js" [18:38] ncb000gt: oh right, maybe i should read the example- you don't need get if you're calling http.get [18:38] mike5w3c_ has joined the channel [18:39] ncb000gt: jeremyselier: give me a sec [18:40] Vasyuta has joined the channel [18:40] Vasyuta has left the channel [18:41] bergie has joined the channel [18:42] sleeplessinc: Question for the experts ... [18:42] V1 has joined the channel [18:42] sleeplessinc: My facebook game server is still just running a single process/core on AWS large instances. [18:42] sleeplessinc: If I fork and start using 2 or more cores for node on each instance, is that going to help me any? Because wouldn't the [18:42] sleeplessinc: virtual NIC become the bottle neck long before I could get any more throughput from the extra node processes? [18:43] ncb000gt: jeremyselier: i just recompiled my node version and got "Got response: 200" [18:43] ncb000gt: from that example [18:43] ncb000gt: jeremyselier: https://gist.github.com/864630 [18:44] jetienne: anybody actively using webworker ? [18:44] jeremyselier: my node is installed from brew [18:44] ncb000gt: sleeplessinc: you could either spin up another node process on the same server or move across servers [18:45] ncb000gt: sleeplessinc: it really would depend on the networking demands i would think [18:45] mscdex: sleeplessinc: probably not, as long as you're not doing a lot of long blocking operations [18:45] ncb000gt: jeremyselier: hmm, i don't trust that [18:45] jeremyselier: yep still not working with yours [18:45] ncb000gt: compile from source for me :) [18:45] ncb000gt: ok [18:45] jeremyselier: what's weird is that https://gist.github.com/864636 [18:45] ncb000gt: do this [18:45] ncb000gt: node --version [18:45] jeremyselier: is working fine [18:45] ncb000gt: out of curiousity [18:46] possibilities has joined the channel [18:46] Muon: sigh [18:46] jeremyselier: eremy$ node --version [18:46] jeremyselier: v0.4.2 [18:46] ncb000gt: o.0 [18:46] sleeplessinc: Thanks guys. anyone know what kind of realistic bandwidth I can get from a single large aws instance? [18:46] ncb000gt: ACTION scratches his head. [18:46] Muon: TypeError: Object # has no method '_reconnect' [18:46] Muon: at Client.request (/home/electro/opt/lib/node/.npm/oauth-client/0.1.7/package/lib/oauth.js:116:44) [18:46] ncb000gt: sleeplessinc: no idea sorry [18:46] jeremyselier: the first thing that comes to mind is that maybe there's a firewall or something [18:47] ncb000gt: jeremyselier: very possible [18:47] jeremyselier: but there is not [18:47] tbassetto: ncb000gt: is there a verbose mode? to see what happen when executing get.js [18:47] jeremyselier: at least not that I'm aware [18:47] fly-away has joined the channel [18:47] ncb000gt: tbassetto: you can use node-inspector [18:47] ncb000gt: i believe it allows you to step through code [18:47] ncb000gt: and functions to analyze the goings on [18:47] mscdex: yep, definitely looks like 0.4.2 is borked on cygwin [18:47] mscdex: ACTION sigh [18:48] ncb000gt: jeremyselier: try using a different domain and path? [18:48] mscdex: time to try 0.4.1... [18:48] ryah: mscdex: :/ [18:49] TooTallNate has joined the channel [18:49] ryah: mscdex: patch please [18:49] mscdex: heh [18:49] mscdex: it's a mksnapshot issue [18:49] ryah: mscdex: compile v8 with snapshot=off [18:50] hornairs has joined the channel [18:50] ryah: mscdex: look for v8_cmd in wscript [18:50] mscdex: that'll probably work, but snapshots are good :) [18:50] ryah: *shrug* [18:50] ryah: saves you a few ms on startup time [18:50] ryah: not so important [18:50] mscdex: i thought it helped during runtime also? [18:51] ryah: not that i know of [18:51] mscdex: hrmm [18:51] Muon: ryah: found this in an old shim, what should I do? [18:51] ryah: just a faster boot [18:51] Muon: if (this.readyState === 'closed') this._reconnect(); [18:51] pom_ has joined the channel [18:52] peol has joined the channel [18:52] ryah: Muon: !this.writable && !this.readable [18:52] jeremyselier: ncb000gt : so I've set up a node server listening on 8000 and with get.js I requested 127.0.0.1:8000 and it's working [18:52] jeremyselier: so I guess my mac is fucked up in some way [18:52] ncb000gt: jeremyselier: haha yea, possibly dns, possibly firewall [18:52] Muon: ryah: what about reconnect? [18:52] Muon: ryah: it's not there [18:52] dguttman_ has joined the channel [18:52] Muon: *_reconnect [18:53] ter has left the channel [18:54] ryah: Muon: oh - i don't know [18:54] ryah: Muon: it's a net.Socket ? [18:54] Muon: ryah: http.Client [18:54] Muon: ryah: it's old (don't ask) [18:54] Muon: actually, do bother unscene about it [18:55] Muon: its his library :P [18:55] Muon: *it's [18:55] ryah: Muon: port it to the new interface [18:55] ryah: you wont have to worry about reconnectin [18:55] Muon: ryah: I can't quite rewrite someone else's library right now [18:56] Muon: ryah: can I get a band-aid? [18:56] jeremyselier: ncb000gt : a dscacheutil -flushcache solved it, thanks for the help! [18:56] pcardune has joined the channel [18:56] ryah: Muon: client.connect() will connect [18:56] blueadept has joined the channel [18:56] ryah: Muon: but you need to know the address [18:57] Muon: ryah: what do I pass to it? [18:57] Muon: old interface isn't documented in docs [18:58] ncb000gt: jeremyselier: sure :) [18:58] CIA-75: node: 03Ryan Dahl 07v0.4 * r62f06fb 10/ lib/tls.js : CryptoStream.prototype.destroySoon shouldn't die if not writable - http://bit.ly/hOhvMa [18:58] CIA-75: node: 03koichik 07v0.4 * r4e047d3 10/ doc/api/net.markdown : Document net.Socket() constructor - http://bit.ly/fimy7i [18:59] Muon: ryah: nvm [18:59] Muon: net.Stream.connect? [18:59] unomi has joined the channel [18:59] ryah: Muon: yes [19:00] possibilities has joined the channel [19:00] matschaffer has joined the channel [19:00] ryah: Muon: http.Client is a subclsas of net.Strema [19:00] Muon: mmkay [19:00] jiggliemon_ has joined the channel [19:01] langworthy has joined the channel [19:01] Muon: :S [19:01] jelveh has joined the channel [19:02] Utkarsh_ has joined the channel [19:02] troynt has joined the channel [19:02] Muon: ryah: wait, I need to know the IP? [19:03] ryah: yes [19:04] malpeli has joined the channel [19:04] jelveh: mikeal: I think I found a bug with that happens when using the request lib and piping the output to a file [19:04] jelveh: it just stops after 5 requests [19:04] malpeli: hy every one! [19:04] mikeal: hrm... [19:04] mscdex: 0.4.1 is a no go on cygwin as well [19:04] mikeal: are you sure it's a request issue? [19:04] jelveh: you can fix it by upping the maxSocket [19:04] jelveh: no [19:05] malpeli: connect sessions are inconsistent with firefox 4... someone noted? [19:05] mscdex: so something broke pre 0.4.1 release [19:05] mikeal: wait, what? [19:05] jelveh: could be an agent/http issue mikeal [19:05] fusspawn: node 0.4.1 runs fine on windows? [19:05] mscdex: diff time [19:05] mikeal: maxSockets effects it? [19:05] jelveh: I got a little scripts [19:05] mikeal: that is crazy [19:05] jelveh: to show it off [19:05] jelveh: hehe [19:05] jelveh: yes it is [19:05] mscdex: fusspawn: it doesn't compile with v8 snapshots [19:05] jelveh: it's like the agents don't clean up after themselves [19:05] jelveh: or I'm doing something wrong [19:05] ximo has joined the channel [19:06] fusspawn: Ahh. dont think i had snapshots on when compiling. [19:06] mikeal: so [19:06] mikeal: i mess with that a *little* in request [19:06] mikeal: i create an agent for the domain [19:06] mikeal: out of a pool of agents [19:06] mscdex: yeah i can't remember if i had to disable snapshots when i installed this version of 0.4.1-pre i currently have or not [19:06] mikeal: but all the code for maxSockets and pooling the requests is in node core [19:06] jelveh: let me gist it [19:06] mikeal: we have other bugs we're tracking in the agent right now too [19:07] jelveh: ok [19:07] mscdex: oh well, as long as performance isn't affected during runtime, i'm fine with that [19:07] jelveh: this one drove me nuts [19:08] kevinliu has joined the channel [19:09] steffkes has joined the channel [19:09] rfay has joined the channel [19:10] unlink has joined the channel [19:10] unlink has joined the channel [19:11] jelveh: mikeal: https://gist.github.com/864690 [19:11] jpstrikesback has joined the channel [19:11] V1 has joined the channel [19:11] jelveh: I've got some more infos, it's writing the files out correctly [19:11] V1: ^_^ howdy [19:11] jelveh: but doesn't run the callback for all requests [19:11] mikeal: what is parseUrl [19:12] jelveh: mikeal: require("url").parse [19:12] mikeal: ok [19:12] mikeal: you can just pass a string and i convert it [19:12] mikeal: :) [19:13] mscdex: oh no [19:13] mscdex: 0.4.2 no worky after successful compilation with no snapshots [19:13] jelveh: just updated the gist [19:13] jelveh: yeah [19:13] jelveh: but I was trying around and thought it might have had to do with this [19:13] mscdex: it silently dies [19:14] possibilities has joined the channel [19:14] mraleph: if you can't build with snapshots (i.e. mksnapshot fails) that usually indicates that something is not feeling well inside V8 [19:15] mscdex: i thought so [19:17] ezmobius has joined the channel [19:17] jetienne: anybody actively using webworker on node ? [19:18] Muon: ACTION glares at an OAuth library [19:19] tr0ynt has joined the channel [19:20] roidrage has joined the channel [19:20] jiggliemon has joined the channel [19:21] saschagehlich: rauchg_: did you ever have issues with opera and jsonp-polling? I've got the same bug here as I had with internet explorer: only the first request is being sent, all the following ones are not sent [19:22] admc has joined the channel [19:22] piscisaureus has joined the channel [19:22] piscisaureus: ryah: hey [19:23] MrNibbles: hey guys, if anyone has a sec it would be awesome to get some feedback on my game: http://msa.software.eu.playstation.com/ [19:23] fusspawn: Ill take a look. [19:23] piscisaureus: ryah: do we currently guarantee that with [19:23] piscisaureus: setTimeout(cb1, 0); setTimeout(cb2, 0) [19:23] piscisaureus: cb1 is executed before cb2? [19:24] ryah: piscisaureus: i don't think so [19:24] MrNibbles: fusspawn: :) [19:24] AphelionZ: is there a cleaner way to do this? basically I want to get the last 5 tutorials viewed by the user http://pastie.org/1656752 [19:24] piscisaureus: ok thanks [19:24] fusspawn: MrNibbles Autoplaying videos are evil. [19:24] fusspawn: Someone us have limited bandwith. [19:25] mscdex: AphelionZ: that's PHP [19:25] MrNibbles: fusspawn: :( not my choice unfortunately [19:25] mlncn has joined the channel [19:25] MrNibbles: i heartily agree, and they are an accesibility nightmare [19:25] AphelionZ: oops, wrong room! [19:25] AphelionZ: sorry [19:25] ryah: piscisaureus: we don't even guarentee the ordering of setTimeout(cb1, 0); setTimeout(cb2, 1); [19:25] mscdex: :) [19:26] piscisaureus: ryah: that could be a source of gotchas, but not my problem atm [19:27] mikeal: jelveh: https://gist.github.com/864727 [19:27] mikeal: ryah: https://gist.github.com/864727 [19:28] mikeal: that's a nasty bug [19:28] mikeal: the agent is basically broken if you append more than maxSockets before nextTick() [19:28] mscdex: blargh i can't even debug the problem with gdb [19:28] mscdex: it just tells me "unknow target exception" [19:28] mscdex: *unknown [19:29] jelveh: mikeal: nasty indeed [19:29] mscdex: program exited with code 0200 [19:29] mscdex: :\ [19:29] mikeal: i need to show this to matt ranney [19:29] mikeal: cause i can't debug this today, i have day job shit and i gotta run to the DMV [19:29] eb4890 has joined the channel [19:30] jelveh: mikeal: no problem! thanks for lookin' into this... [19:31] dguttman has joined the channel [19:31] tiemonster has left the channel [19:34] qFox has joined the channel [19:34] gwoo has joined the channel [19:34] gwoo has joined the channel [19:35] doubletap has joined the channel [19:35] Vasyuta has joined the channel [19:35] doubletap has left the channel [19:36] ryah: mikeal: can you show me that sample without request library? [19:36] johans_ has joined the channel [19:36] mikeal: ryah: it is :) [19:37] mikeal: i forgot to pull out the require [19:37] mikeal: but i wasn't using it [19:41] Vasyuta has joined the channel [19:41] rauchg_: saschagehlich: [19:41] rauchg_: yeah there's a known issue with opera and jsonp-polling [19:41] rauchg_: but the real known issue is that opera should use XHR, i think it should support CORS [19:41] rauchg_: a quick fix [19:41] rauchg_: would be uncommenting [19:41] rauchg_: the check in flashsocket [19:41] rauchg_: for opera [19:41] rauchg_: cause flashsocket works on opera now [19:42] saschagehlich: alright [19:42] saschagehlich: i just posted another issue regarding the "transports" option [19:42] saschagehlich: looks like socket.io doesn't care anymore what transports options are set [19:43] mscdex: alright, it looks like the v8 3.1.5 upgrade or the following v8 cygwin compat patch broke cygwin [19:43] V1: rauchg_: the flashsocket is already uncomment in my pull request :) [19:43] mscdex: :S [19:44] matschaffer has joined the channel [19:45] __tosh has joined the channel [19:45] ossareh has joined the channel [19:46] wadey: announcing node-syncrepl (will post to the mailing list later): https://github.com/wadey/node-syncrepl [19:46] techwraith_ has joined the channel [19:47] mnot has joined the channel [19:47] wadey: i got annoyed one to many times with calling async functions from the REPL [19:49] tc77 has joined the channel [19:50] maushu has joined the channel [19:51] tc77 has left the channel [19:51] ncb000gt: as a note- if anyone is interested in using elasticsearch from nodejs, I'm working on a module for that. [19:52] yhahn has joined the channel [19:52] ncb000gt: https://github.com/ncb000gt/node-elasticsearch [19:53] piscisaureus: mscdex: weird. I see no evil. On the buildbot cygwin's working alright. [19:54] mscdex: piscisaureus: bradleymeck had the same issue earlier too [19:55] mscdex: i'm trying some things now [19:55] benreesman has joined the channel [19:55] piscisaureus: git clean -fdx maybe (careful!) [19:55] isaacs has joined the channel [19:55] mscdex: not using git [19:55] mscdex: fetching tarballs [19:55] maushu: WAT. [19:55] mscdex: :) [19:55] maushu: BLASPHEMER! [19:56] maushu: IN HIS NAME, YOU SHALT BURN! [19:56] ximo has joined the channel [19:59] mmattozzi has joined the channel [20:01] jelveh: I came here because I heard there's someone not using git, is this true? [20:01] Gregor: Instead of using git I use hg with the hg-git plugin. [20:01] tc77 has joined the channel [20:01] Gregor: <-- blasphemer * 10 [20:01] jelveh: lol [20:01] maushu: Actually, blasphemer / 2. [20:01] maushu: Blasphemer * 10 would be if you used svn-git. [20:02] Gregor: maushu: Does there exist such a thing in that direction? [20:02] mnot has joined the channel [20:02] maushu: If it does, it doesn't anymore. [20:03] maushu: Since it BURNED IN GLORIOUS FIRE! [20:03] tjholowaychuk has joined the channel [20:07] tktiddle has joined the channel [20:07] felixge: ryah: http.get / http.request callbacks violate the "error" argument first convention, would you accept a patch fixing that? [20:07] saikat has joined the channel [20:08] ncb000gt: felixge: you mean in terms of the response being the only arg? [20:08] ncb000gt: or at least the first? [20:08] felixge: ncb000gt: yes [20:08] Vasyuta has joined the channel [20:08] felixge: it's very confusing [20:08] ncb000gt: felixge: yea, it does break convention [20:08] jiggliemon has joined the channel [20:08] ukev has joined the channel [20:09] mikegerwitz has joined the channel [20:10] mscdex: success! [20:10] mscdex: :-D [20:11] Xano has joined the channel [20:12] mscdex: bradleymeck: ping [20:13] ncb000gt: felixge: +1 for that, even if it means i have to update my modules...again [20:13] ncb000gt: :) [20:13] felixge: ncb000gt: well, it should go into 0.5.x at the very least [20:14] ncb000gt: felixge: yea [20:14] V1: tjholowaychuk: In cluster, is there any reason you have chose TCP streams to IPC instead of UDP? [20:14] felixge: but whoever did the API for that in v0.4.0 needs to get his node driver license revoked :) [20:14] ncb000gt: haha [20:14] V1: have chosen* [20:14] felixge: (even if that means ryan won't get to write node stuff for a while : ) [20:14] zachsmith has joined the channel [20:14] ncb000gt: felixge: that would be a travesty... [20:15] wao: v8bot: [20:15] v8bot: wao: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [20:15] tjholowaychuk: V1: because its reliable [20:15] felixge: ncb000gt: https://github.com/joyent/node/commit/4125822b#L0L1103 [20:15] tjholowaychuk: V1: not much IPC is done anyway it does not need to be insanely fast, i dont see why you would use UDP instead [20:15] felixge: looks like he did it on purpose [20:16] felixge: reckless callbacking [20:16] tjholowaychuk: V1: not like master is being hit with realtime data or anything [20:16] V1: tjholowaychuk: but UDP is faster, I'm wondering this because we are currently in the process of writing a middleware layer that needs to sync data between different workers [20:17] jeremyselier has joined the channel [20:17] tjholowaychuk: V1: yes, and unreliable [20:17] tjholowaychuk: local TCP is plenty fast [20:17] tjholowaychuk: but I gotta run for lunch [20:19] troynt has joined the channel [20:19] hosh_work has joined the channel [20:21] Me1000 has joined the channel [20:22] mscdex: piscisaureus: out of curiousity, what version of cygwin are you running on the cygwin buildbot? i ask because cygwin 1.7.8 was released recently... [20:22] ximo has joined the channel [20:22] mscdex: not sure if that has anything at all to do with the node compilation issues [20:22] piscisaureus: mscdex I don't know, how do I tell? [20:22] V1: saschagehlich: https://github.com/LearnBoost/Socket.IO/issues/#issue/106 [20:22] mscdex: probably uname -a [20:23] slickplaid: tcp gets bogged down when ping times are high... we were forced to use UDP with error checking when we were transferring data to/from luxomburg to usa (ping times were horrid, even on gbit boxes) [20:23] piscisaureus: oh 1.7.7. [20:23] mscdex: actually wait nvm, now that i think of it i think i was using 1.7.7 when i was building 0.4.2 initially [20:23] mscdex: so it's not that :/ [20:24] hassox has joined the channel [20:24] piscisaureus: mscdex: you untarred a fresh source tree and got rid of all the cruft? [20:24] mscdex: yep [20:24] piscisaureus: and what do you get if you `gdb node_g` ? [20:24] mscdex: i tried that, it results in an "unknown target exception" and gdb can't do anything with it [20:25] saschagehlich: V1: yup, just read it. [20:25] saschagehlich: ty btw [20:25] mscdex: basically i had to undo all the changes made to platform-cygwin.cc after the upgrade to v8 3.1.5 [20:26] V1: yw :) [20:26] piscisaureus: mscdex :-/ [20:26] mscdex: heh [20:26] mscdex: but it works now [20:26] mscdex: :) [20:26] piscisaureus: there should be no changes to platform-cygwin.cc after that upgrade [20:26] mscdex: i meant the cygwin patch that was pushed right after the upgrade [20:26] piscisaureus: mscdex: commit link? [20:27] piscisaureus: mscdex: I think I know what could be the reason [20:27] mscdex: piscisaureus: https://github.com/joyent/node/commit/b1664daeb99e35d322aa4e56e5ba80b2b29ac712 [20:28] piscisaureus: mscdex: hmm :-/ [20:28] mscdex: i only replaced the platform-cygwin.cc file, nothing else from that commit [20:29] piscisaureus: mscdex: I don't get it. You reverted to that version of platform-cygwin.cc? [20:29] piscisaureus: pretty weird because that patch went upstream :-p [20:29] mscdex: yeah, to the one prior to that commit [20:29] zpao has joined the channel [20:29] mscdex: piscisaureus: fwiw, here is what i ended up applying for 0.4.2: https://gist.github.com/351408b4c1b291614537 [20:30] piscisaureus: mscdex: I see. [20:30] mscdex: maybe not everything had to be reverted in there but... [20:30] piscisaureus: mscdex: so now you're back having a non-working profiling sampler and no crankshaft [20:31] mscdex: according to the previous commit for platform-cygwin.cc, you mentioned crankshaft should be enabled? [20:32] mscdex: https://github.com/joyent/node/commit/a293f90db465b6e561eb62f5ac4c2e352c73740a [20:32] piscisaureus: mscdex: yeah well. Initially it seemed to work but eventually we found out that it didn't. [20:32] mscdex: ah [20:32] ncb000gt: felixge: you're looking at making errors return with https://github.com/joyent/node/blob/4125822bedfb84b052ead699946296ce3cfa691c/lib/http.js#L1044 yea? [20:33] ncb000gt: which is ideally where errors with setting up the response would go [20:33] mscdex: i dunno what is causing it then [20:33] unomi has joined the channel [20:33] bradleymeck: mscde mmm? [20:33] stephank has joined the channel [20:33] felixge: ncb000gt: no, only changing the callback signature [20:33] felixge: not that of the event emitter [20:33] mscdex: bradleymeck: i managed to create a patch to get 0.4.2 to compile -- but piscisaureus says it means crankshaft won't be enabled (still) [20:34] mscdex: for cygwin [20:34] bradleymeck: w/e works i say [20:34] mscdex: bradleymeck: https://gist.github.com/351408b4c1b291614537 [20:34] ncb000gt: felixge: right, that line would change to `req.emit('response', err, res)` assuming err had anything [20:34] mscdex: bradleymeck: what version of windows are you running this under? [20:34] piscisaureus: mscdex: can you send me your node.exe and node_g.exe somehow? [20:34] slickplaid: what is everyone's facination with running it under windows? [20:35] mscdex: slickplaid: for me it's because i'm using node to interact with legacy software [20:35] ncb000gt: slickplaid: people have different preferred dev environments [20:35] mscdex: piscisaureus: the one that i have now with my patch applied? [20:36] ncb000gt: also, there may be requirements from other places, clients, management, etc. [20:36] piscisaureus: mscdex: no the ones that don't work :-0 [20:36] mscdex: oh the one without the snapshot [20:36] slickplaid: hmm.. i guess I have more choice in the environment than other people do in my line of work [20:36] mscdex: have to recompile, gimme a min [20:37] ncb000gt: slickplaid: i do too, but i can see why people would need to be running node in windows [20:37] ncb000gt: felixge: am I missing something about what you'd be wanting to change there? [20:37] felixge: ncb000gt: yes [20:37] felixge: ncb000gt: the 'response' event should only fire on receiving a response, not on error [20:37] brapse has joined the channel [20:38] felixge: ncb000gt: https://gist.github.com/40f5ac3413c6d59a66a0 [20:38] felixge: is what I'm working on [20:38] slickplaid: I guess people like fitting a square peg into a round hole :D [20:39] bartt has joined the channel [20:39] ncb000gt: felixge: hmm, always passing null? i get your point about not passing an error there [20:39] felixge: ncb000gt: it's not done yet [20:39] DevX101 has joined the channel [20:39] ncb000gt: but i suspect the point was to not always pass null, even though it breaks convention [20:39] ncb000gt: aha [20:39] mscdex: slickplaid: trust me, i wouldn't mind running the app under wine, but wine still lacks enough features that it doesn't work for me yet [20:40] mscdex: plus i'm not sure performance would be great, which this app depends on [20:40] asabil has joined the channel [20:43] Venom_X has joined the channel [20:43] razvandimescu has joined the channel [20:47] hij1nx has joined the channel [20:48] piscisaureus: mscdex: "gdb: unknown target exception 0xNUMBER". What was the number? [20:48] mscdex: 0xc0000139 [20:49] mikeal has joined the channel [20:49] mscdex: i'm building the debug exe now [20:49] piscisaureus: mscdex: that means dll not found [20:49] mscdex: :S [20:50] CIA-75: node: 03Ryan Dahl 07v0.4 * re14aa64 10/ deps/v8/src/platform-solaris.cc : Fix V8 runtime profiler for solaris - http://bit.ly/giaFrQ [20:50] Benn has joined the channel [20:51] pascalopitz has joined the channel [20:51] ncb000gt: ryah: https://github.com/joyent/node/blob/4125822bedfb84b052ead699946296ce3cfa691c/lib/http.js#L1044 thoughts? [20:52] ryah: ncb000gt: ? [20:53] ncb000gt: ryah: any plans for inclusion? [20:53] astrolin has joined the channel [20:53] ryah: ncb000gt: ? [20:53] ncb000gt: oh balls, sorry [20:53] ncb000gt: wrong link [20:53] ncb000gt: :) [20:53] ryah: sorry - i'm missing some context [20:53] mscdex: heh [20:54] ncb000gt: ryah: https://github.com/joyent/node/pull/516 [20:54] ncb000gt: that [20:54] ncb000gt: :) [20:55] ryah: i feel like i'm not getting emails about pull requests anymore... [20:56] ncb000gt: that has it's pros and cons [20:56] ncb000gt: :) [20:56] felixge: ryah: did you see my comments about http.get() callback's not having "err" as the first argument? [20:56] felixge: ryah: I have a fix, but it will break BC [20:57] possibil_ has joined the channel [20:58] ryah: felixge: i didn't see those comments [20:59] felixge: ryah: https://github.com/joyent/node/commit/4125822b#L0L1103 [20:59] TomY has joined the channel [20:59] TomY_ has joined the channel [20:59] AphelionZ has left the channel [20:59] felixge: I'm wondering why you made the http.request / http.get / etc. callbacks not take an error as the first argument [20:59] jetienne has joined the channel [20:59] felixge: but give them the response directly instead [21:00] ryah: felixge: the request object emits the error [21:00] felixge: ryah: sure, but all callbacks in node take an error as the their first argument [21:01] felixge: ryah: request.once('error') should delgate to cb [21:01] wdperson has joined the channel [21:01] felixge: ryah: this is very inconsistent [21:01] ryah: the error isn't necessarally going to happen before the response headers come [21:01] ryah: it could happen in the middle of the response [21:02] ryah: and i didn't want people to have to have multiple error handlers [21:02] ryah: (e.g. on req and res objects) [21:02] felixge: so response errors are emitted on the request object? [21:02] ryah: yeah [21:02] felixge: hm ... [21:02] ryah: unconvinced? :) [21:03] felixge: well, I can see why you were going this way [21:03] ncb000gt: that seems even more confusing to me though [21:03] ryah: i want to bring back promises in the next release [21:03] felixge: ryah: you are kidding me [21:03] raidfive has joined the channel [21:03] felixge: ACTION goes up to the bar to order another beer [21:03] ryah: :) [21:03] fusspawn: felixge++ [21:03] v8bot: fusspawn has given a beer to felixge. felixge now has 1 beers. [21:03] felixge: ryah: seriously? [21:04] gerad: ryah: oohh... now that jquery has them? [21:04] ryah: yeah, i think so [21:04] mscdex: ACTION shakes a fist at promises [21:04] ryah: gerad: well that was one factor [21:04] felixge: holy fucking shit [21:04] ncb000gt: haha [21:04] ryah: the other is that i want to rework how events are dispatched - so to support long stacks [21:05] ryah: eio requests should probably have a handle [21:05] ryah: in my new scheme [21:05] gerad: +1 for longer stack traces :-) [21:05] ryah: instead of hiding them completely - might as well expose them as promises [21:05] ryah: but - i haven't totally thought out how this is all going to work yet [21:05] felixge: ACTION just sold a big company on using node.js saying: "Yeah, the API probably isn't going to change much anymore" [21:06] ximo has joined the channel [21:06] tim_smart: +1 for sendfile. [21:06] fusspawn: then dont inform them about new versions of node. [21:06] ryah: well - we'll have to support the old API [21:06] mnot has joined the channel [21:06] CrypticSwarm has joined the channel [21:06] felixge: :) [21:06] mscdex: heh [21:06] ryah: so - like fs.read() will still have the same signature - it may just return something [21:06] chrisdickinson: just out of curiosity, are promises basically analogous to eventemitters? [21:07] ryah: which may be an event emitter [21:07] ryah: chrisdickinson: they're EventEmitters which emit either "success" or "error" [21:07] mscdex: d'oh ldd doesn't work in cygwin for me either :\ [21:07] felixge: chrisdickinson: promises are API methods intended to lure you into using them, only to be removed from under your arse :) [21:07] mscdex: same error [21:07] mscdex: hah [21:08] chrisdickinson: ryah: awesome (thanks). [21:08] mscdex: something is weird [21:08] tjholowaychuk has joined the channel [21:08] ncb000gt: felixge: do i detect a hint of bitterness? [21:08] felixge: ncb000gt: only 2 months worth of rewriting ;) [21:09] ryah: ncb000gt: please rebase and squash those patches into one [21:09] ncb000gt: ryah: will do [21:10] chrisdickinson: i love using eventemitters; it's nice that they physically separate error-handling and success-handling code. [21:10] ncb000gt: felixge: but not bitter or anything... :D [21:10] korbatz has joined the channel [21:11] korbatz: hi. [21:12] V1: Wow did is seriously read promises here? O god.. No [21:12] felixge: ncb000gt: no, my beer is bitter. I'm depressed right now :) [21:12] Xano has joined the channel [21:12] ryah: ACTION shouldn't have said anything [21:12] jpick has joined the channel [21:12] V1: :$ [21:13] felixge: I think I spend like 4-6 weeks worth of intense slaving over promise api details, threads on the mailing list, etc., only to see promises nuked from node alltogether :) [21:13] felixge: ryah: It's ok :) [21:13] felixge: ryah: As long as you worry about an API design everybody will like [21:13] felixge: :)_ [21:13] felixge: :) [21:13] V1: It's better to prepare us for it, so we don't get a heartattack when we read through the commit log ;) [21:14] bentruyman has joined the channel [21:15] fusspawn: +1 for no heart attack, [21:15] tjholowaychuk: +10m [21:16] V1: But don't we already have long stack traces in Node :? [21:16] felixge: V1: no? [21:16] marktheunissen has joined the channel [21:17] felixge: V1: you mean https://github.com/tlrobinson/long-stack-traces ? [21:17] V1: felixge: https://github.com/tlrobinson/long-stack-traces? [21:17] felixge: V1: that only works for event emitters, afaik [21:17] chris_ has joined the channel [21:18] pau|c has joined the channel [21:18] V1: Ok, [21:18] felixge: ryah: about the http.request() API, I kind of feel like response errors should be handled seperately [21:19] felixge: I mean responses should be just like any other string I think [21:19] felixge: * any other Stream [21:19] omni5cience has joined the channel [21:19] felixge: it feels wrong that their errors are magically delegated to another object [21:19] mlncn has joined the channel [21:20] piscisaureus: mscdex: you should try copying cygwin1.dll to the same location as node.exe [21:21] piscisaureus: mscdex: ^- nvm [21:21] jetienne: drama time ? :) [21:21] alek_br has joined the channel [21:21] peol has joined the channel [21:22] ryah: felixge: yeah - i don't know [21:22] ryah: felixge: seems annoying to handle two errors though [21:22] ryah: felixge: i guess ideally both req and res would be one stream [21:22] felixge: ryah: annoying yeah, but it's much more consistent with the rest of of the API [21:23] felixge: ryah: I always wondered why they aren't [21:23] hornairs has joined the channel [21:23] ryah: because it would freak out people too much? :) [21:24] ryah: also what would you call it? [21:24] ryah: i guess just req [21:25] ryah: http.Server(function(req) { req.writeHead(200); req.end('hello world\n'); }) [21:25] deepthawtz has joined the channel [21:25] felixge: ryah: seems reasonable [21:25] tjholowaychuk: ryah: that would be cool [21:25] felixge: ryah: At transloadit we actually wrap a node req/res pair into one Request object [21:25] felixge: feels much more natural [21:25] ryah: http.get({ host: 'google.com' }).pipe(process.stdout); [21:26] felixge: yeah, that'd be cool [21:26] felixge: time to break some APIs [21:26] felixge: :) [21:26] hoodow has joined the channel [21:26] jetienne: everybody call that request and response tho ... [21:26] tjholowaychuk: ryah: although at least in the case of express etc I have methods / accessors of the same name but different behaviours per req / res [21:26] felixge: tjholowaychuk: like req.header() and res.header() ? [21:27] tjholowaychuk: felixge: yeah that is one example to grab the request header field or get/set the response header field [21:27] tjholowaychuk: actually I guess it wouldnt be that bad [21:27] felixge: tjholowaychuk: seems simple enough to work around [21:27] tjholowaychuk: yup [21:28] insin has joined the channel [21:28] tjholowaychuk: would be nice for cleaning up all the signatures [21:28] devinus: why isn't development happening on master? is there a new branching methodology ? [21:29] c_b: hey guys, is it possible to write the stdout of a child process to the stdin of the parent? [21:30] felixge: devinus: because v0.5.x isn't seeing much development yet I think, most of the work goes into making v0.4.x nice [21:30] wadey has joined the channel [21:30] felixge: c_b: sure, why shouldn't it be? [21:30] c_b: because i can't figure out how to access the stdin of the parent :-) [21:31] Xano has joined the channel [21:31] Sorella has joined the channel [21:31] ryah: c_b: process.stdin.pipe(child.stdin) [21:31] c_b: felixge: thank you [21:32] ryah: c_b: it's probably better to start the child with customFds: [0,1,2] [21:32] orospakr has joined the channel [21:32] broofa_ has joined the channel [21:32] ryah: c_b: if you want the child to share the same tty [21:32] felixge: ryah: I love that feature [21:33] c_b: ryah: I want the stdout of the child to pipe into the stdin of the parent [21:33] piscisaureus: ACTION is working on 0.5 ;-) [21:34] c_b: ryah: I figured replacing child.stdin with child.stdout in felixge's example would do it [21:34] felixge: c_b: I'm confused, I didn't give an example, ryan did [21:34] c_b: felixge: whoops, read it wrong. i'm going nuts :-) [21:35] felixge: c_b: but yeah, child.stdout.pipe(process.stdin) is what you want [21:35] CIA-75: node: 03Ryan Dahl 07v0.4 * r9a8e843 10/ doc/api/https.markdown : [21:35] CIA-75: node: Document options for https.request [21:35] CIA-75: node: Closes GH-768. - http://bit.ly/ezIuN5 [21:35] felixge: even so that seems weird [21:36] dylang: mape: do you know if connect-assetmanager should be 100% compatible with connect 1.0 and express 2.0beta? I'm using it but having issues, could be my own fault. [21:36] jpstrikesback has joined the channel [21:37] zeqeiroz has joined the channel [21:39] colinclark has joined the channel [21:41] c_b: felixge: should that cause the stdout to show up in the console? I don't have any logging to console set up for it [21:41] eee_c has joined the channel [21:41] felixge: c_b: I'm confused with what you're trying todo [21:42] mikeal: ryah: i've been doing an API like that for a while [21:42] mikeal: and it's not nearly that simple [21:42] mikeal: mainly because anytime you pipe to an httpResponse you still need to handle the initial response callback and do a writeHead on it [21:42] c_b: felixge: I have an ffmpeg child process, I want the converted data to be piped into stdin of th parent [21:43] felixge: c_b: that makes no sense, why would you want that? [21:43] mikeal: ryah: request already has a pipe to and from API like you are talking about for the HTTP client [21:43] c_b: felixge: streaming to an icecast server [21:43] mikeal: and people are using it, but it's fine to keep this in an abstraction [21:43] c_b: felixge: decode to pcm, then use the stdin to encode to mp3 or ogg and send it [21:43] felixge: c_b: so what you really want is stream the ffmpeg stdout to icecast [21:43] mikeal: you still need auth, and host header setting, and all these other high level features that shouldn't be in core [21:44] felixge: c_b: but why would you feed it into your stdin again? [21:44] mmattozzi has left the channel [21:45] c_b: felixge: I want the stream.on('data') event to fire [21:45] siong1987 has joined the channel [21:45] MrTopf has joined the channel [21:45] tjholowaychuk has joined the channel [21:47] c_b: felixge: the ffmpeg child process used to be a shell script (hence the stdin usage) [21:47] felixge: c_b: when you say parent, do you refer to a shell script starting your node script? [21:47] felixge: I'm still confused [21:48] c_b: felixge: when I said parent, I was refering to the node script [21:49] losing has joined the channel [21:49] c_b: felixge: here's how I want it to work: node server.js , server.js spawns child process ffmpeg and feeds the output from the child process to stdin [21:50] felixge: I don't know if it's the beer, but why the fuck do you want to do that? [21:50] felixge: It seems like you want to tsend the ffmpeg stdout to somewhere else [21:50] felixge: like a network resource [21:50] felixge: so why would you send it into the standard input of your node process again? [21:50] CrypticSwarm has joined the channel [21:50] c_b: felixge: cause i've been working to long? maybe i'll take a break and rethink it. [21:50] felixge: that seems like a totally unnecessary detour [21:51] c_b: felixge: so I can encode it again in a different format [21:51] felixge: you can directly take the child.stdout and pipe it to some network stream [21:51] felixge: c_b: you can take the ffmpeg stdout and pipe it into a new ffmpeg's child stdin again [21:51] c_b: felixge: true, [21:52] felixge: I don't think you should ever write to your own process.stdin [21:52] felixge: at least I can't think of a single valid use case [21:52] felixge: nor do I think it unix-y possible [21:53] jdalton has joined the channel [21:53] b5avage1 has joined the channel [21:53] jdalton has left the channel [21:53] felixge: ACTION heading back to my hotel room [21:53] c_b: felixge: ok, thanks for the help [21:53] felixge: np [21:53] felixge: gn8 [21:54] stephen_mcd has joined the channel [21:55] hellp has joined the channel [21:56] b5avage1: Trying to access a couchdb via cradle - hitting the 5 socket limit due to _changes monitoring (always-open sockets)… How would I go about increasing the 5 socket client limit for cradle? [21:57] wav1 has joined the channel [21:58] b5avage1: tl;dr is there a way to change the default socket limit from 5 to a higher value in Node? [21:58] piscisaureus: ryah: will you also consider dropping support for fs.read/write/open/close? [22:00] ryah: piscisaureus: that'd difficult to do [22:00] ryah: be [22:00] ryah: piscisaureus: do you really not have API for that? [22:01] piscisaureus: ryah: sure I have an api for that :-) [22:03] piscisaureus: ryah: but just like a socket is now a object, file access should be done using a object. Otherwise you end up creating a promise for every trivial operation [22:04] piscisaureus: ryah: oh yeah and fs.read semantics are a little problematic indeed but I guess we can get around it [22:04] OhMeadhbh has joined the channel [22:05] piscisaureus: if felixge would still be here he would now start cutting himself [22:06] Astro has joined the channel [22:06] astropirate has joined the channel [22:07] matyr has joined the channel [22:07] Hello71 has joined the channel [22:07] Hello71 has joined the channel [22:07] TheEmpath has joined the channel [22:07] walkah has joined the channel [22:07] doki_pen has joined the channel [22:07] CIA-75: node: 03Ben Noordhuis 07v0.4 * r594642b 10/ src/node_buffer.h : [22:07] CIA-75: node: Buffer::Length(Buffer*) should not invoke itself recursively. [22:07] CIA-75: node: Closes GH-759. - http://bit.ly/gmnsPN [22:08] mnot has joined the channel [22:08] hassox has joined the channel [22:08] TheEmpath: hail nodelings [22:09] mlncn has joined the channel [22:09] eMyller has joined the channel [22:09] codelotus has left the channel [22:11] notostraca has joined the channel [22:12] Schmallon2 has joined the channel [22:12] saschagehlich: rauchg_: so, xhr-polling does not work xdomain, jsonp-polling does not work for opera, flashsocket does not work xdomain either [22:12] saschagehlich: rauchg_: sooooo... opera is not supported by socket.io right now? [22:13] ivan has joined the channel [22:13] Schmallon2: Is there any way to list all names defined in the top-level scope of a file? [22:13] ezmobius has joined the channel [22:13] mscdex: flash websockets should be cross domain... [22:14] mscdex: generally speaking anyway [22:15] saschagehlich: uum... [22:15] saschagehlich: mscdex: sure, they should. but they aren't :( [22:15] MrTopf has joined the channel [22:16] Ori_P has joined the channel [22:16] dragunov11 has joined the channel [22:17] hij1nx has joined the channel [22:18] daleharvey has joined the channel [22:18] losing has joined the channel [22:20] coffeecup has joined the channel [22:20] broofa has joined the channel [22:21] twoism has joined the channel [22:21] wereHamster has joined the channel [22:22] guybrush has joined the channel [22:23] matyr_ has joined the channel [22:25] ezmobius has joined the channel [22:26] zeqeiroz has joined the channel [22:27] Country has joined the channel [22:28] bartt has joined the channel [22:28] mlncn has joined the channel [22:29] aabt has joined the channel [22:30] broofa_ has joined the channel [22:30] matyr has joined the channel [22:33] zeqeiroz: someone know what the channel on irc for npm? [22:34] isaacs: zeqeiroz: you're in it :) [22:34] piscisaureus: zequiroz: welcome [22:34] isaacs: what's up? [22:34] DevX101: so i'm adding a chat application to my site using node.js [22:35] DevX101: how would i have different socket connections [22:35] DevX101: so i can create independent 'chatrooms' [22:35] DevX101: right now everything a user types is broadcast [22:35] DevX101: to all [22:35] reid has joined the channel [22:36] Kryckan has joined the channel [22:36] isaacs: rauchg_: hey ^ [22:36] RushPL has joined the channel [22:36] isaacs: rauchg_: doesn't socket.io have some kind of channel thingies? [22:36] techwraith_: DevX101: I'd just use one socket with different channels [22:37] DevX101: techwraith: can you describe more ? [22:38] zeqeiroz: @isaacs ok :D [22:38] techwraith_: rauchg_ explains it a bit here: https://github.com/LearnBoost/Socket.IO-node/issues/20 [22:39] techwraith_: also, DevX101: https://github.com/bsstoner/socket.io-channels [22:40] DevX101: is github down for anyone else? [22:40] techwraith_: Nope :) [22:40] DevX101: hmmm [22:40] tbranyen: samcday: taking all the v8 stuff out of my EIO handlers just loses reference and i can't seem to find a way to get a const char* out of a Persistent [22:40] tbranyen: without using v8 [22:41] pascalopitz has left the channel [22:41] tbranyen: :-/ seems that was the only way for me to carry a persistent value [22:41] DevX101: techwraith: i will check those links later once i can access the site [22:41] ossareh has joined the channel [22:41] tbranyen: and then dispose it in the callback [22:41] ezmobius_ has joined the channel [22:44] razvandimescu has joined the channel [22:44] ximo has joined the channel [22:45] ncb000gt: ryah: https://github.com/joyent/node/pull/770 changed a couple things, but it's one commit and the same tests pass. I closed the other pull request. [22:46] ncb000gt: ryah: also, i noticed that in the pull request it didn't show anyone as being notified of the request, so it's very possible you aren't getting them since the move to the joyent account [22:47] Will| has joined the channel [22:48] timmywil has joined the channel [22:49] mnot has left the channel [22:49] losing has joined the channel [22:49] MattCampbell has joined the channel [22:49] davidwalsh has joined the channel [22:50] MattCampbell: I gather that Node is popular for real-time web apps. So does everyone implement long polling, the iframe hack, etc. from scratch, or are there libraries for this? [22:50] gerad: MattCampbell: socket.io [22:51] piscisaureus has joined the channel [22:52] techwraith_: How can I get the ip address of the client? [22:52] zorzar has joined the channel [22:52] insin has joined the channel [22:52] MattCampbell: gerad: Thank you. [22:53] MikhX has joined the channel [22:53] MattCampbell: Is there a de facto standard memcached client for Node? [22:54] wadey: MattCampbell: I haven't really found one that I'm that happy about [22:55] wadey: using this one: https://github.com/elbart/node-memcache [22:55] jdub has joined the channel [22:55] wadey: (but you have to do your own hashing to a server pool) [22:55] kevind has joined the channel [22:55] MattCampbell: OK, how about a redis client? [22:56] tallica has joined the channel [22:56] reid: Is there anything similar to node-webworker out there nowadays? [22:58] mdoan has joined the channel [22:58] breccan has joined the channel [22:59] ocirs has joined the channel [23:02] dnyy has joined the channel [23:02] MattCampbell: More generally, can anyone point me at source code for a node-based app that has non-trivial persistence (i.e. not flat files) and generally follows good practices for scalability? [23:02] dylang has joined the channel [23:04] notostraca has joined the channel [23:06] EyePulp: MattCampbell: I doubt you'll find a one-stop example that is totally open to you. I'd look into mongo, mysql & postgres options for your persistence, and then define your scalability requirements more clearly. [23:08] ph^ has joined the channel [23:08] hornairs has joined the channel [23:11] mlncn has joined the channel [23:13] micheil has joined the channel [23:13] micheil: Is there a Michael Aufreiter about by any chance? [23:14] micheil: (author of data.js and substance) [23:15] teemow has joined the channel [23:15] echosystm has joined the channel [23:16] echosystm: if i want a module to only export one thing, such that thing = require('file'); [23:16] echosystm: how do i do that? [23:16] echosystm: ive forgotten [23:16] unlink has joined the channel [23:16] fusspawn: isnt it just setting the export to that one thing? [23:16] unlink has joined the channel [23:16] echosystm: wait, now i remember [23:16] echosystm: module.exports = thing; [23:19] losing has joined the channel [23:19] jiveB has joined the channel [23:19] tmzt_: MattCampbell: persistence? sessions in express aren't enough or what do you mean by that [23:21] saikat has joined the channel [23:21] orls has joined the channel [23:24] piscisaureus: ryah: as a C expert, do you know why gcc doesn't grok `void foo(int& bar) { ... }` ? [23:25] mraleph: piscisaureus: cause it is not C :-) [23:25] ryah: piscisaureus: C doesn't have references [23:26] piscisaureus: damn [23:27] mraleph: use pointers, Luke :-) [23:27] tjholowaychuk: what's the point of references? [23:27] piscisaureus: mraleph: ryah: so can I just replace void foo (int* bar) { *bar =4 } or is that error-prone? [23:27] tjholowaychuk: (knows only c) [23:27] mikegerwitz: piscisaureus: &bar [23:27] addisonj: okay, trying to learn node but I need a (preferably nosql) solution to give me an easy 1:1 relationship between two objects of the same class [23:27] mikegerwitz: *bar dereferences pointer bar [23:28] saikat has joined the channel [23:28] mraleph: mikegerwitz: that's exactly what he needs to do :-) [23:28] mraleph: piscisaureus: yep that should do it. [23:28] mraleph: piscisaureus: but why not use return value instead of void? [23:28] mikegerwitz: mraleph: ah :) Thought by int& bar he was trying to pass it by reference [23:29] mikegerwitz: Oh oops [23:29] piscisaureus: mraleph: because you can only return 1 value :-) [23:29] mikegerwitz: I misread his example. That's the function body. Long day [23:29] ryah: tjholowaychuk: http://en.wikipedia.org/wiki/Reference_(C%2B%2B) [23:29] gilesgoatboy has joined the channel [23:29] [[zz]] has joined the channel [23:29] ryah: tjholowaychuk: they're just, like, stricter pointers [23:30] tjholowaychuk: ryah: ah gotcha [23:30] tjholowaychuk: I remember skimming over that section when reading up on c++ [23:30] tjholowaychuk: seemed unnecessary [23:30] piscisaureus: mraleph: I'm writing a avl btree implementation. So if I want to find_and_delete I need to return the node found AND be able to update the tree root [23:30] addisonj has joined the channel [23:31] tbranyen: samcday: awesome dude, fixing all the v8 shit out of my eio got rid of the segfaults [23:31] mraleph: piscisaureus: yeah I understand :-) [23:31] davida has joined the channel [23:35] darshanshankar has joined the channel [23:36] xla has joined the channel [23:37] eyesUnclouded has joined the channel [23:38] isaacs: alright. that's it. all major functionality for npm 1.0 is done. [23:38] isaacs: just have a giant pile of docs to update. [23:38] isaacs: why oh why did i write so much documentation... [23:38] isaacs: ACTION cries [23:39] possibilities has joined the channel [23:39] jpstrikesback has joined the channel [23:40] broofa has joined the channel [23:41] throughnothing has joined the channel [23:42] Draggor: in a c++ addon, how do I get, say, a String out of Arguments& args? [23:42] possibilities has joined the channel [23:43] Quine has joined the channel [23:43] ryah: Draggor: args[0]->ToString() [23:44] ximo has joined the channel [23:44] Emmanuel__ has joined the channel [23:46] Draggor: ryah: actually I was wrong, I'm after a char* from it. [23:47] piscisaureus: avl_insert(&((*parent)->left), node); [23:47] Xano has joined the channel [23:47] piscisaureus: ^- why does it need to look so convoluted ::snif:: [23:48] wadey: Draggor: I just had to figure that out recently: [23:49] wadey: String::Utf8Value value(args[0]->ToString()) [23:49] wadey: *value is a char* [23:49] wadey: you can use AsciiValue if you want ascii encoding [23:51] tjholowaychuk: ^-- example of why I dont like c++ lol overloading * [23:52] tjholowaychuk: is really lame [23:52] tjholowaychuk: its like ruby all over again [23:52] wadey: tjholowaychuk: I have to agree, makes it a lot harder to figure out what is going on without reading docs / etc [23:53] tjholowaychuk: definitely [23:54] sivy has joined the channel [23:56] matyr_ has joined the channel [23:56] sivy has joined the channel [23:58] willwhite has joined the channel [23:58] fisted has joined the channel [23:59] Lion2Leo has joined the channel