[00:00] herbySk has joined the channel [00:00] flukes1: yes, with cat it doesn't work [00:00] mscdex: jtsnow: https://gist.github.com/797791 [00:01] Ond has joined the channel [00:02] micheil: ryah: what's the difference between WriteStream.end and WriteStream.destroy? [00:03] bbttxu has left the channel [00:04] ryah: micheil: one happens on drain, the other happens now [00:04] micheil: okay [00:04] flukes1: is there a way to make console.log output in tests appear regardless of whether the test succeeds [00:04] flukes1: -v doesn't appear to do it [00:05] micheil: flukes1: you'd need to say what test runner [00:05] micheil: if it's nodes, then no. [00:05] micheil: unless you manually run the test [00:05] flukes1: python tools/test.py -v [00:06] flukes1: sorry if this is a stupid question - started looking at node about 10 mins ago ;p [00:06] sechrist has joined the channel [00:06] ryah: flukes1: not that i know of [00:10] sechrist has joined the channel [00:11] micheil: ryah: is there any reason for utterly everything being queued? [00:11] bingomanatee: Okay TJ you got your sensible sort order [00:11] tjholowaychuk: WAHOO [00:12] bingomanatee: but it was REALLY HARD becuase the f**king christkov-native sort order is NOT consistent with the mongodb docs and it took WAY too long to figure that out! and I'm gonna go cry a little now [00:12] Matt___: Quick application-side question: Has anyone had any success combining backbone.js with express? [00:12] bingomanatee: I can see why you wanted it - you rank way up there! [00:12] ryah: micheil: memory [00:12] unomi has joined the channel [00:13] tjholowaychuk: bingomanatee: just couldnt tell what was what at all haha [00:13] flukes1: ryah: in test-tls-server-verify, shouldn't all of the certs be rejected because they don't have client authentication specified in extended key usage [00:13] tjholowaychuk: whats the link? [00:13] micheil: ryah: okay. [00:13] heavysixer has joined the channel [00:13] flukes1: or do you not care / check for that [00:13] bingomanatee: Yeah it wasn't meaningful data [00:13] sirganya has joined the channel [00:13] bingomanatee: I mean it was accurate but without a freq sort its kind of bull**t. [00:14] bingomanatee: but you're not more popular than 3sus :D [00:14] MikhX has joined the channel [00:15] sechrist has joined the channel [00:15] bingomanatee: Really though - I gotta get better stopword filtering. [00:15] ryah: flukes1: i don't check for that. i don't even know about that. can you tell me more? [00:16] bingomanatee: and nick filters too. [00:17] sirganya: hi, I'm having a problem with fs.write. I have a thing that watches a couchdb database and writes to a file each time it gets a new entry - problem is it writes it six times instead of once. Is there something I'm missing? Any ideas would be gratefully welcomed, I've been scratching googles head for hours.. [00:17] flukes1: ryah: a certificate shouldn't be usable as a client cert unless it either has a) OBJ_client_auth in the "extended key usage" extension, or b) digitalSignature in the [not extended] "key usage" extension [00:17] ryah: sirganya: there is no bug like that. [00:17] ryah: sirganya: i suspect it's your code [00:18] flukes1: rejectUnauthorized = true should cause this to be checked, I think [00:18] pyrotechnick has joined the channel [00:18] sirganya: I have a log in the write callback that shows whats being written, it only appears once and the entry is correct.. :( [00:18] sechrist has joined the channel [00:19] ryah: flukes1: it's only doing SSL_get_verify_result() [00:19] sirganya: it's definitely only getting to the open and write callbacks once [00:20] ryah: sirganya: could it be you're modifying the buffer that you fs.write() with before the callback it made? [00:20] dguttman_ has joined the channel [00:20] flukes1: ryah: sorry, ignore me - your agent certs have key usage "any" [00:21] flukes1: which of course includes digitalSignature [00:21] sechrist has joined the channel [00:22] ddollar has joined the channel [00:22] MikhX has joined the channel [00:22] sbellity has joined the channel [00:23] sirganya: ryah: if you have a moment.. http://pastebin.com/QmJCjvUd [00:24] sirganya: ryah: line 29 [00:25] sechrist has joined the channel [00:26] sechrist has joined the channel [00:27] shiawuen has joined the channel [00:27] ryah: sirganya: fs.WriteStream('/home/virtual/vibrantrioja.com/var/www/html/grandtasting/signups.csv').write(csvEntry + "\n").end(); [00:30] sirganya: ryah: Thanks, I'll try that.. [00:30] ryah: sirganya: or something like that... [00:30] jacobolus has joined the channel [00:31] Solsys has joined the channel [00:31] unomi has joined the channel [00:32] admc1 has joined the channel [00:34] shiawuen has joined the channel [00:34] flukes1: ryah: i've added "ext_key_usage" to the object returned by getPeerCertificate, which is just an array of extended key usage OIDs on the certificate. it works fine and I've written a test which also works. is it worth submitting a pull request? [00:36] Me1000 has joined the channel [00:36] jimt has joined the channel [00:36] micheil: ryah: I'm still missing the point of having fs.open in the _queue [00:39] jakehow has joined the channel [00:39] stepheneb has joined the channel [00:39] m0rganic1 has left the channel [00:40] mikeal: only MongoDB would add a feature for better durability and the keep it off by default http://www.mongodb.org/display/DOCS/Journaling [00:40] mikeal: wtf is wrong with these guys [00:41] saschagehlich has joined the channel [00:41] ryah: flukes1: please [00:41] saschagehlich: hey folks, I've got a (pretty simple) problem. Shouldn't the output be "a, b" here instead of "b, b"? I remember that it worked in older versions of v8... https://gist.github.com/aa2241cb250ab4a4892c [00:41] konobi: mikeal: the hardcoded default is fuck_data_royally=1 all the time though, right? [00:41] mikeal: well, more accurately it's "corrupt on shutdown" [00:41] mikeal: but yes, that's the default [00:42] mikeal: just like the default write API call has no response [00:42] mikeal: you just hope it's there by the time you wanna read it [00:42] konobi: saschagehlich: no [00:42] skm has joined the channel [00:42] saschagehlich: so how can I make sure that _val is the same one as in the for-loop? [00:43] dguttman has joined the channel [00:43] dguttman has joined the channel [00:43] konobi: saschagehlich: do the _var assignment within the function [00:43] Aikar: saschagehlich: for(var i;;) { (function(){ var val = blah[i]; // do stuff })(); } [00:44] Aikar: gotta wrap a function block around it [00:44] kaelan has joined the channel [00:44] sechrist has joined the channel [00:44] kaelan-w: i'm following the windows build instructions for node off ry's github wiki, and the sconscript for v8 isn't working [00:44] SwiftLayer has joined the channel [00:44] micheil: ryah: I've pushed fs.open to be inline, no need to queue it really. [00:45] kaelan-w: by default, KeyError: 'os' when it's checking the settings from the environment. if i patch the sconscript to set the os, then i get an error that 'os must be specified' but it doesn't say where to specify it [00:45] saschagehlich: Aikar: well, but is "i" the right one then? [00:45] Aikar: saschagehlich: your having an issue where when your callback is ran that i is the last value in the array instead of what it was when you registered the callback correct? [00:45] benburkert has joined the channel [00:46] Aikar: paste your code if you can [00:46] sirganya has joined the channel [00:46] saschagehlich: Aikar: that's correct, one second.. [00:46] nooder has joined the channel [00:47] Aikar: yeah its cause every callback registered inside the for() are all pointing to same var, which last value was the last index, so you got to copy the index/value to its own scope (that wont change) [00:47] admc has joined the channel [00:48] Aikar: saschagehlich: https://github.com/Aikar/node-nova/blob/master/lib/utils.js or copy the forEach function out of my file here [00:48] Aikar: then just do blah.forEach(yourarray, function(value, key) { }); [00:48] sirganya has joined the channel [00:48] skm has joined the channel [00:49] saschagehlich: Aikar: https://gist.github.com/19d40b96e558e5eb53f2 it's something like that. this.store.servers.getRandom() is a function that is doing some redis stuff and calls the callback afterwards [00:49] sechrist has joined the channel [00:50] micheil: ryah: how were you measuring the number of actual sys calls that that test was making? [00:50] sechrist has joined the channel [00:50] Aikar: saschagehlich: https://gist.github.com/a6f430462a18c6abb9e8 [00:51] ryah: micheil: iwasn't [00:51] micheil: oh, right. [00:51] pyrotechnick: FUCK I AM AWESOME [00:51] pyrotechnick: sorry [00:51] sechrist has joined the channel [00:51] maushu has joined the channel [00:51] pyrotechnick: sometimes i just cant handle it and need to tell people [00:51] ryah: micheil: but you can do "strace node x.js" [00:51] micheil: time node test-slow-writestream-write? [00:51] micheil: okay [00:51] micheil: I think I can cheat on the solution a little. [00:52] Aikar: saschagehlich: thats a common 'gotcha' due to js having function level scope instead of block level scope. so you have to wrap it in a function (thats executed immediately) to give it its own local scope so that the url value has not changed when the callback runs [00:52] kaelan-w: nvm, the tag i checked out was just busted [00:52] kaelan-w has left the channel [00:52] sechrist has joined the channel [00:53] saschagehlich: Aikar: hm okay, I'll try that. thanks so far! :) [00:54] micheil: ryah: where'd you get the strace command? [00:54] LoRe has joined the channel [00:54] devrim has joined the channel [00:54] Aikar: saschagehlich: btw you can use the .bind propery of a function in node instead of that wrapper __bind you got. like so: https://gist.github.com/a6f430462a18c6abb9e8 [00:54] saschagehlich: Aikar: but that means that I can't do "break" inside the loop... right? [00:55] sechrist has joined the channel [00:55] tanepiper: pyrotechnick: nodejs brings out the awesomeness [00:56] Aikar: v8: a=[1,2,3]; for(var i = 0; i (/Users/micheil/Documents/git/miksago.github.com/node/test/simple/test-file-write-stream.js:56:12) [03:25] micheil: at EventEmitter.emit (events.js:59:20) [03:25] micheil: Command: build/default/node /Users/micheil/Documents/git/miksago.github.com/node/test/simple/test-file-write-stream.js [03:25] micheil: is the only error I get. [03:25] micheil: fuck. hit bad args again.. [03:27] jdalton has joined the channel [03:27] sechrist has joined the channel [03:28] Bosmon2 has joined the channel [03:32] sechrist has joined the channel [03:32] chapel: pyrotechnick: have you really used couch that much? [03:33] keks: hey, working on fuse, how can i pass the json object {getattr: function(..){...}, read: function(..){...},...} to the cpp code? [03:33] springmeyer has joined the channel [03:35] derferman has joined the channel [03:35] sechrist has joined the channel [03:35] sechrist has joined the channel [03:38] micheil: ryah: some how I manage to get an object into the queue, but I have no idea how [03:38] sechrist has joined the channel [03:39] whyme has joined the channel [03:39] sechrist has joined the channel [03:39] sechrist has joined the channel [03:41] zomgbie has joined the channel [03:42] sechrist has joined the channel [03:42] tim_smart: keks: Using the v8 API [03:43] keks: okay, ill look for their docs, didn't find anything on nodejs. but that actually makes more sense... [03:43] keks: thanks [03:44] tim_smart: keks: Take a look at some existing node addons. [03:44] keks: I did before for general understanding, but nothing came to mind concerning that object. [03:44] mscdex: or core code [03:45] c4milo1 has joined the channel [03:45] sechrist has joined the channel [03:47] Me1000 has joined the channel [03:47] sechrist has joined the channel [03:48] mscdex: keks: what in particular do you need help with? i mean, you pass it to the c++ function just like you would a js function [03:49] keks: mscdex: basically how to handle it: what type is it, how do i address the object's contents, etc. [03:49] mscdex: it's just of type Object [03:49] dguttman_ has joined the channel [03:49] sechrist has joined the channel [03:49] keks: hm, okay, i'll look into it [03:50] micheil: ryah: okay, this definitely works on some level. [03:50] clarkfischer has joined the channel [03:50] mscdex: usually someone has uploaded a version that's been run through doxygen... let me see if i can find one [03:51] sechrist has joined the channel [03:52] fallsemo has joined the channel [03:52] chrischris has joined the channel [03:53] mscdex: keks: i've got an older copy of the generated docs, but it should still be usable: http://mscdex.net/v8/ [03:53] mscdex: keks: look under the data structures tab [03:53] sechrist has joined the channel [03:53] keks: mscdex: okay, thanks [03:55] micheil: ryah: node time build/default/node ~/tmp/test-slow-write.js master* [03:55] micheil: done [03:55] micheil: build/default/node ~/tmp/test-slow-write.js 1.43s user 0.18s system 91% cpu 1.762 total [03:55] micheil: number of write()s? 25. [03:56] keks: mscdex: child_process accepts an object when called, but doesn't pass it as an object to v8. are you sure this is the right way? [03:56] jakehow has joined the channel [03:57] mscdex: keks: where at? [03:57] keks: nodejs git, /lib/child_process.js:50 [03:58] sechrist has joined the channel [03:58] micheil: ryah: http://cl.ly/06042Z1z1U2t2P0v3f2v [04:00] liar has joined the channel [04:01] mscdex: keks: i'm not seeing it. InternalChildProcess is the C++ object though, and no call to any of its functions includes plain object arguments that i can see [04:01] ryah: micheil: it's cause they're all in different processes [04:02] noahcampbell has joined the channel [04:03] keks: mscdex: in the for loop at ~50 it iterates the object and appends it to optionArg, which are arguments given to the c++ functor [04:03] siculars has joined the channel [04:04] keks: mscdex: but your right, it's probably better to just use an object [04:04] sechrist has joined the channel [04:04] beawesomeinstead has joined the channel [04:05] mscdex: keks: that block of code is just overwriting the default options, it's not actually passing 'options' or 'optionsArg' to a C++ function [04:05] micheil: ryah: although, do you agree that I took the slightly write approach in allowing the data to be buffered ever so slightly? [04:06] micheil: s/write/right [04:08] perlmonkey2 has joined the channel [04:08] keks: mscdex: hum, okay. anyway, /src/node_child_process.cc is reading arg[0..5] and no objects. instead what is passed in the object is args[3..5]. that's why i assumed that for loop did that. [04:09] keks: mscdex: that's line 100-150 [04:09] sechrist has joined the channel [04:10] sechrist has joined the channel [04:10] ryah: micheil: s/process/threads [04:11] micheil: okay, I'm confused slightly. [04:11] ryah: micheil: i haven't read it yet. i'll check it out tomorrow [04:11] micheil: okay. I'll have an updated version tomorrow. [04:11] micheil: basically I do the same writeQueueing as what the network module does [04:12] admc has joined the channel [04:12] brianmario has joined the channel [04:14] sechrist has joined the channel [04:16] sechrist has joined the channel [04:16] JianMeng has joined the channel [04:17] blueadept has joined the channel [04:19] richcollins has joined the channel [04:21] sechrist has joined the channel [04:22] Aria has joined the channel [04:25] richcollins has joined the channel [04:27] sechrist has joined the channel [04:27] daniellindsley has joined the channel [04:28] sechrist has joined the channel [04:29] ddollar has joined the channel [04:29] sechrist has joined the channel [04:29] tilgovi has joined the channel [04:31] sechrist has joined the channel [04:31] hij1nx has joined the channel [04:31] jmckind has joined the channel [04:33] sechrist has joined the channel [04:34] brianleroux has joined the channel [04:36] mscdex: so is there a simple http/https proxy example out there that uses the new tls api? [04:36] sechrist has joined the channel [04:39] warz: i'm pretty new to nodejs, and am wondering if there's a way to clean up this typical nested callback block of code: http://jsfiddle.net/Lrjgz/1/ [04:39] warz: is this something that async.js, and those types of libs, would help me with? [04:40] warz: i know that's not ugly on its own, but when i had a lot of that kind of stuff in my code it adds up [04:40] sechrist has joined the channel [04:45] warz: hrm. looks like it. think ill try async.js. [04:48] pengo has joined the channel [04:48] keks: warz: you also could return promises yourself [04:50] mscdex: warz: there are modules like that out there to help with that. you could roll your own and do something like this: https://gist.github.com/798083 [04:50] mscdex: warz: here's some existing flow control modules: https://github.com/ry/node/wiki/modules#async-flow [04:51] liar has joined the channel [04:51] keks: yeah that promise idea was stupid... [04:51] mscdex: warz: node-seq, Step, and chainsaw might be ones to look at [04:51] warz: alright, checking them out now. thanks. [04:52] pHcF has joined the channel [04:52] richcollins has joined the channel [04:52] slickplaid: What is the default 404 handling redirect? 301 redirect -> 404.html or whatever the page is? or just render the 404 page without a redirect? [04:52] slickplaid: Hopefully that makes sense :D [04:52] hunterloftis has joined the channel [04:53] Aria: slickplaid: in what system? [04:53] slickplaid: Like if they go to site.com/notreal.html, should it redirect 301 to the 404.html page? Or just render the 404 without redirection? [04:54] Aria: In what system? [04:54] slickplaid: I'm using express [04:54] Aria: Ah, express. [04:54] Aria: Just for the record, node.js isn't express -- express is just a library. [04:54] Aria: (I don't actually know the answer in that case.) [04:54] chrisdickinson: slickplaid: you should 404. [04:54] slickplaid: throw new NotFound; ? [04:54] mscdex: i would say render the 404 as well [04:54] Aria: And yeah, you should 404 and not redirect. It's bloody annoying when people redirect. A simple typo becomes a whole retype. [04:55] slickplaid: :) [04:55] slickplaid: Yeah, agreed with the no redirect [04:56] slickplaid: excellent... works like a charm (throw new NotFound;) [04:56] sechrist has joined the channel [04:58] brianc: can anyone point me in the direction of how to declare development only dependencies in npm? [04:58] brianc: i.e. my unit tests depend on 'should.js' (which is hotness) but not the actual library [04:59] sechrist has joined the channel [05:01] sechrist has joined the channel [05:02] sechrist has joined the channel [05:03] stepheneb has joined the channel [05:03] sechrist has joined the channel [05:03] sechrist has joined the channel [05:04] Yuffster_work has joined the channel [05:05] bingomanateeIpho has joined the channel [05:09] Fuld has joined the channel [05:09] asimismo has joined the channel [05:11] sechrist has joined the channel [05:12] sechrist has joined the channel [05:12] Lorentz: Anyone got a good tutorial on using mongoose? [05:12] Lorentz: I tried http://mongoosejs.com, but looks like page isn't up. [05:12] muk_mb: did one of you build http://dominion.isotropic.org ? seems like something node.js would be good for [05:13] losing has joined the channel [05:17] mikeal has joined the channel [05:17] sechrist has joined the channel [05:19] fugoki has joined the channel [05:20] sechrist has joined the channel [05:21] sechrist has joined the channel [05:23] dstufft: is there a "prefered" irc lib for node.js? [05:25] sechrist has joined the channel [05:26] sechrist has joined the channel [05:27] aaronblohowiak has joined the channel [05:27] aaronblohowiak: hellooo [05:28] dnyy has joined the channel [05:28] ossareh has joined the channel [05:29] brianc: I ran into a good deal of async "mind-benders" when writing tests for node-postgres and what resulted was a sort of hybrid from the qunit style of "expect" testing. https://github.com/brianc/drain [05:30] aaronblohowiak: ahoy! [05:30] aaronblohowiak: mind-benders? [05:31] isaacs has joined the channel [05:31] brianc: aaronblohowiak: indeed maytee. trying to test connection pooling of a database driver and shutting down each client after a specific number of queries have executed qualifies as a mind-beinder in my feeble-minded universe [05:32] aaronblohowiak: brianc: ooh, fun [05:32] sechrist has joined the channel [05:33] brianc: aaronblohowiak: would you know how to specifiy 'dev' dependencies for an npm package [05:33] brianc: like you can with rubygems [05:33] isaacs: brianc: {"devDependencies": {...}} [05:33] aaronblohowiak: brianc: as isaacs he just arrived =) [05:33] aaronblohowiak: *ask [05:33] isaacs: brianc: then `npm install blah --dev` [05:33] brianc: isaacs: you're my daddy [05:33] pyrotechnick: what's a reasonable price for a full-time node dev? someone with 6 months experience in high-traffic production [05:33] isaacs: brianc: npm link always is --dev'ed [05:33] isaacs: since link packages are primarily for development [05:33] isaacs: put your test harness dependencies there [05:34] brianc: isaacs: yah was depending something on 'should' for testing [05:34] brianc: and then will depend node-postgres on this other library [05:34] Aria: pyrotechnick: In what country? In what city? [05:34] isaacs: yeah, ideally you shouldn't depend on a test framework unless you ARE a test framework [05:34] brianc: so I assume node-postgres -> other_thing -> should will pull it all down [05:35] brianc: i could drop 'should' requirement, but it's just so much move lovely (imho) to write the .should style assertions [05:35] pyrotechnick: Aria: anywhere. telecommuting [05:35] isaacs: brianc: meh. if it's a dev thing, then whatever. [05:35] isaacs: depend on whatever helps you develop it [05:35] Aria: Heh. I'd think it'd depend highly on the cost of living. [05:35] brianc: cool. cool. I'll fiddle with it tomorrow and see how it goes [05:36] pyrotechnick: Aria: is that what it's like in the states? [05:36] pyrotechnick: here it really doesn't matter where you live. i think i like it like that [05:36] pyrotechnick: is there really that much of a difference between the tech hubs? [05:36] pyrotechnick: im a fan of paying for what people are worth. not how much it seems to cost them to live [05:36] sechrist has joined the channel [05:36] brianc: isaacs: as always thank you so so much for your help. =D [05:37] Aria: Oh man. San Francisco costs a fortune to live in. Middle US? Not nearly so much. [05:37] Aria: New York is even worse. [05:37] brianc: Aria: but in the middle of the US you've got to factor in the cost of your crystal meth habbit. [05:37] aaronblohowiak: isaacs: is there a good way to say "never ever publish this, i just want to use package.json for tracking my project deps?" [05:38] brianc: it's awesome when you misspell 2 syllable words [05:38] aaronblohowiak: pyrotechnick: does anyone have 6 months experience with high-traffic node ? [05:39] pyrotechnick: aaronblohowiak: yes [05:39] pyrotechnick: aaronblohowiak: i'm the employee in this instance [05:40] Aria: Heh, I was wondering that, too. It's a rarity. [05:40] pyrotechnick: we worked on adservers, 3.5M clicks a day [05:40] dgathright_ has joined the channel [05:40] sechrist has joined the channel [05:40] Aria: 3.5? Heh. [05:40] pyrotechnick: when we left [05:40] pyrotechnick: it's probably more now without changing the code if you know what i mean [05:40] pyrotechnick: it was quite stable [05:40] aaronblohowiak: pyrotechnick: well, charge the most you can get. ^.^ rails devs with 5 years experience are getting 100-150 for in-office in sf [05:40] bgilbert has joined the channel [05:41] pyrotechnick: wow really? [05:41] pyrotechnick: thank fuck we rolled with node [05:41] pyrotechnick: we're on more than double that [05:41] pyrotechnick: and we're 21 [05:41] pyrotechnick: i was just checking we wernt getting screwed [05:42] pyrotechnick: it's hard to find the work. we were very lucky TBH [05:42] pyrotechnick: all i will say is it pays to help out with FOSS [05:42] pyrotechnick: that's how we landed these jobs [05:42] Aria: Oh heck yes. [05:42] pyrotechnick: im not sure why i did it [05:43] pyrotechnick: but i basically ran myself into the ground for 6 months learning and hacking on node for free [05:43] pyrotechnick: ruined my credit etc [05:43] pyrotechnick: teaching the comrades etc [05:43] pyrotechnick: you cant just find noders you have to breed them [05:43] sechrist has joined the channel [05:44] pyrotechnick: so i've bred half a dozen and now we're getting more than we could have dreamed of to hack on node everyday [05:44] warz: breed me? [05:44] pyrotechnick: atm we have enough noobs, im happy to help anyone getting started though [05:44] pyrotechnick: right now we're looking for a coffee/dnode wizard [05:44] sechrist has joined the channel [05:44] pyrotechnick: if anyone knows one [05:45] aaronblohowiak: pyrotechnick: more than double 100k/year ? [05:45] pyrotechnick: we'll see [05:45] pyrotechnick: that would be one of our full wages ATM [05:45] pyrotechnick: for some of us [05:45] pyrotechnick: (some are getting less) [05:45] pyrotechnick: (some are part time) [05:45] pyrotechnick: but yes comparatively as good of a deal [05:46] isaacs: pyrotechnick: what do you do? [05:46] pyrotechnick: ahh we're making someones dream come true [05:46] pyrotechnick: MMO/WebGL, not our feisty projects but similar [05:46] Lorentz: Why would you breed programmers [05:47] pyrotechnick: because i live in brisbane, australia [05:47] pyrotechnick: and wanted friends who know node/coffee [05:47] aaronblohowiak: isaacs: any "never publish this package" magicsauce that will still let me use package.josn for deps but be free from worrying about accidently publishing proprietary code? [05:47] aaronblohowiak: pyrotechnick: that sounds like a dream come true [05:48] pyrotechnick: hey it was difficult for a long time [05:48] pyrotechnick: like i said [05:48] sechrist has joined the channel [05:48] aaronblohowiak: ^.^ [05:48] pyrotechnick: very much drove ourselves into the ground, dropped out of uni to do it [05:48] pyrotechnick: left THQ [05:48] pyrotechnick: doing what i thought i loved doing [05:48] warz: thought? [05:49] Lorentz: I'd join your team if you were in sydney [05:49] chapel: :) [05:50] warz: id let him join my team if he were in TX [05:50] warz: and he could breed me [05:50] sechrist has joined the channel [05:50] Lorentz: Why would anyone breed with you [05:50] warz: so he could have another node friend [05:50] slickplaid: I know there's a node app for development that will reload it when it's been updated... anyone know offhand what the name of it is? [05:50] pyrotechnick: restartr [05:50] slickplaid: ty [05:50] pyrotechnick: theres a few [05:50] pyrotechnick: but we dont mind restartr [05:51] pyrotechnick: im not sure its node [05:51] chapel: Ive used node-dev [05:51] pyrotechnick: might be [05:51] pyrotechnick: yeah? [05:51] pyrotechnick: any good? [05:51] chapel: I like it [05:51] chapel: simple [05:51] chapel: doesn't loop when hitting an erro [05:51] chapel: error [05:51] pyrotechnick: chapel: in 3 months we'll be able to consult nodehub for the answer to which is better ;) [05:51] chapel: waits for another file update [05:51] chapel: :) [05:52] sechrist has joined the channel [05:53] pyrotechnick: are there any node job boards? [05:53] chapel: dont think so [05:53] pyrotechnick: chapel: wave that [05:53] Lorentz: Make one [05:53] Lorentz: In node [05:54] pyrotechnick: for git? [05:54] sechrist has joined the channel [05:54] pyrotechnick: Lorentz: ? [05:54] pyrotechnick: like a github clone? [05:55] Lorentz: Sooorta, I guess, there are a bunch of tech job boards. [05:55] pyrotechnick: yeah but nothing node specific [05:55] sechrist has joined the channel [05:55] Lorentz: But github is probably the best bet right now, probably because the way most node projects are hosted there. [05:55] pyrotechnick: i think node is new and different enough to warrant its own [05:56] Gruni has joined the channel [05:57] sechrist has joined the channel [05:59] aaronblohowiak: pyrotechnick: restartr is pure node i guarantee it =) [05:59] aaronblohowiak: chapel: would you rater it waited for another file change instead of auto-restart? [05:59] aaronblohowiak: *rather [06:00] aaronblohowiak: ACTION is the restartr maintainer [06:01] chapel: aaronblohowiak: well thats what it does, if it errors, it waits for you to change the file again before running [06:01] pyrotechnick: aaronblohowiak: you wrote it? [06:02] aaronblohowiak: pyrotechnick: https://github.com/aaronblohowiak/restartr [06:02] aaronblohowiak: pyrotechnick: https://github.com/aaronblohowiak/restartr/blob/master/restartr [06:02] slickplaid: nice, checking that out now :D [06:03] sechrist has joined the channel [06:03] aaronblohowiak: i could make it wait for another file change instead of auto-restart on exit by adding an option flag check around https://github.com/aaronblohowiak/restartr/blob/master/restartr#L79-81 [06:03] pyrotechnick: aaronblohowiak: sick man. we use it everyday [06:03] pyrotechnick: you are now ON THE LIST [06:03] caligula_ has joined the channel [06:03] aaronblohowiak: pyrotechnick: sweet. i quit my job last week to spend more time contributing to open-source [06:04] pyrotechnick: you're a brave man aaronblohowiak [06:04] pyrotechnick: it's people like you who will forge the early success of node [06:04] slickplaid: paired with dropbox and the auto update it entails... pretty sweet combo [06:04] warz has joined the channel [06:04] aaronblohowiak: pyrotechnick: i am going to contract part-time to pay the billz [06:04] pyrotechnick: hows ur dnode? [06:04] pyrotechnick: slash coffee [06:04] sechrist has joined the channel [06:04] chapel: aaronblohowiak: I would propose the default behavior wait for file change on errors, just because its more elegant, and if someone wants to bypass that, have a flag [06:05] aaronblohowiak: pyrotechnick: what do you think of chapel's suggestion? [06:06] pyrotechnick: i care when i'm on battery [06:06] pyrotechnick: but when im plugged in it doesnt really bother me [06:06] pyrotechnick: maybe if u just throttled it a bit more [06:06] chapel: just saying its more elegant [06:06] pyrotechnick: that would be a nice trade-off [06:07] aaronblohowiak: chapel: yes, i agree. the bug isnt going to fix itself magically [06:07] chapel: having to ctrl+c isn't hard [06:07] pyrotechnick: well our apps never throw errors our coffee is always perfect [06:07] pyrotechnick: so it's a non-issue for us [06:07] pyrotechnick: ;) [06:07] aaronblohowiak: i could just delete those lines [06:07] aaronblohowiak: pyrotechnick: lol [06:07] chapel: but the reason you use something like restartr is to not have to use ctrl+c [06:07] chapel: :) [06:07] aaronblohowiak: chapel: yes, those lines are about to be destroyed [06:07] chapel: kk [06:07] chapel: Ill bbl, off to work [06:08] pyrotechnick: ill leave you to it lads [06:08] aaronblohowiak: l8r, thanks for the advice [06:08] pyrotechnick: i too must leave [06:08] aaronblohowiak: pyrotechnick: aaron.blohowiak@gmail.com [06:08] pyrotechnick: sick [06:08] pyrotechnick: i got a proposal for you [06:08] pyrotechnick: help you pay the bills maybe [06:08] aaronblohowiak: sweet! [06:08] pyrotechnick: or at least maybe put you into contact [06:08] pyrotechnick: cant promise anything so pipe down [06:08] pyrotechnick: but you've helped us out [06:08] pyrotechnick: so we'll try our best [06:08] aaronblohowiak: coo, appreciate it [06:09] aaronblohowiak: later [06:09] pyrotechnick: bbl [06:13] sechrist has joined the channel [06:14] creationix has joined the channel [06:14] sechrist has joined the channel [06:14] sechrist has joined the channel [06:15] warz: hrm i think pyro may have convinced me to try out coffeescript. [06:22] sechrist has joined the channel [06:28] ddollar has joined the channel [06:28] ddollar has joined the channel [06:31] sechrist has joined the channel [06:32] sechrist has joined the channel [06:33] bronson_ has joined the channel [06:33] sechrist has joined the channel [06:34] sechrist has joined the channel [06:34] fangel has joined the channel [06:35] sechrist has joined the channel [06:35] mikeal has joined the channel [06:38] nilcolor has joined the channel [06:38] Ond has joined the channel [06:38] void_ has joined the channel [06:38] orospakr: Hi! Mocking library/patterns recommendations? The one I'm the most to is rspec's. I see a few things recommended on the node.js wiki: gently, sinon, espionage, etc. [06:39] admc: hey all, is there a node equivalent of pythons sys.platform? [06:40] whyme: admc: try process.platform [06:41] admc: hah awesome, should have tried that [06:41] admc: thanks [06:45] hunterloftis has joined the channel [06:46] sechrist has joined the channel [06:46] sechrist has joined the channel [06:47] Metapony has joined the channel [06:47] mfernest has joined the channel [06:51] k04n has joined the channel [06:51] sechrist has joined the channel [06:57] sechrist has joined the channel [06:58] m64253 has joined the channel [06:58] techwraith has joined the channel [06:58] sechrist has joined the channel [07:02] Metapony: Is there any general consensus between using mongodb vs couchdb with node.js? I was leaning towards mongo for my app, but now think I might use couchdb and just port the db layer to mongo if I get fed up with couchdb... [07:03] sechrist has joined the channel [07:04] whyme has left the channel [07:06] sechrist has joined the channel [07:09] Matt__ has joined the channel [07:09] sechrist has joined the channel [07:09] mynyml has joined the channel [07:11] mikedeboer has joined the channel [07:14] creationix: ACTION needs a way to register event source callbacks [07:14] sechrist has joined the channel [07:15] sechrist has joined the channel [07:16] hzin has joined the channel [07:17] eresair has joined the channel [07:19] Fuld: If one could have an infinite number of threads, would blocking be better because it simplifies programming? [07:19] muhqu has joined the channel [07:20] tim_smart: creationix: Event source? [07:21] sechrist has joined the channel [07:21] sechrist has joined the channel [07:22] teddy_ has joined the channel [07:22] creationix: yeah, anything that creates a new stack is an event source [07:22] creationix: like a setTimeout's timer expiring [07:22] creationix: or a data packet coming in on a stream [07:22] Fuld: The the benefit of async seems to be that the same thread can handle another client instead of doing nothing while waiting on some I/O operation to complete [07:22] creationix: or a new http request [07:23] tim_smart: And you want to keep track of them? [07:23] creationix: not keep track of them, but be able to insert a shim when they get registered [07:24] creationix: a timer event will never fire unless there is some code that tells node to set a timeout [07:24] creationix: so that timeout belongs to another stack [07:25] mscdex: admc: there is also other information in the os module in recent versions of 0.3.x [07:25] creationix: tim_smart: here is how I can hook into setTimeout and setInterval https://gist.github.com/798197 [07:25] creationix: but other events aren't so 1:1 [07:26] creationix: especially with event emitters [07:27] creationix: there can be events emitted that nobody registered for directly [07:27] creationix: but someone somewhere started the process that eventually resulted in that event [07:29] Bonuspunkt has joined the channel [07:29] sechrist has joined the channel [07:30] sechrist has joined the channel [07:30] tim_smart: Sounds like a lot of small hacks are needed. [07:31] mike5w3c_ has joined the channel [07:32] tim_smart: You can take advantage of the whole callback is the last argument paradigm though. [07:32] tim_smart: And modify the EventEmitter prototype [07:32] tim_smart: And you got most things covered. [07:34] creationix: possibly [07:34] creationix: well, better get off to bed [07:37] saschagehlich has joined the channel [07:39] peol has joined the channel [07:40] jimt_ has joined the channel [07:40] sechrist has joined the channel [07:41] liar has joined the channel [07:42] sechrist has joined the channel [07:43] SamuraiJack has joined the channel [07:43] yx has joined the channel [07:43] sechrist has joined the channel [07:44] aku has joined the channel [07:44] sechrist has joined the channel [07:47] kolbyjack has joined the channel [07:50] springify has joined the channel [07:51] Metapony_ has joined the channel [07:51] GasbaKid has joined the channel [07:51] sechrist has joined the channel [07:53] k3yvn has joined the channel [07:54] sechrist has joined the channel [07:55] qFox has joined the channel [07:55] sechrist has joined the channel [07:57] dekz has joined the channel [07:58] ChrisPartridge has joined the channel [07:59] MikhX has joined the channel [08:00] ROBOTARMY has joined the channel [08:00] abraham has joined the channel [08:05] unomi has joined the channel [08:07] sriley has joined the channel [08:08] mraleph1 has joined the channel [08:09] whyme has joined the channel [08:09] peol has joined the channel [08:09] peol has joined the channel [08:10] mAritz has joined the channel [08:13] sechrist has joined the channel [08:14] sechrist has joined the channel [08:17] kubrow has joined the channel [08:18] ossareh has joined the channel [08:19] skot has joined the channel [08:19] keks: does anyone have a v8 doxygen of the version node is using? I get weird errors and don't know if I got the api right [08:19] mscdex: what's the error? [08:20] SamuraiJack has joined the channel [08:20] sechrist has joined the channel [08:21] syntheze has joined the channel [08:22] jbpros has joined the channel [08:22] romainhuet has joined the channel [08:22] sechrist has joined the channel [08:23] romainhuet has joined the channel [08:24] tfcoding has joined the channel [08:24] stephank has joined the channel [08:24] Moominpapa has left the channel [08:25] ErikCorry has joined the channel [08:25] pedrobelo has joined the channel [08:25] romeo_ordos has joined the channel [08:25] romeo_ordos has left the channel [08:26] sechrist has joined the channel [08:26] mikedeboer has joined the channel [08:26] ROBOTARMY has joined the channel [08:27] keks: mscdex: hang on [08:27] ivanfi has joined the channel [08:28] keks: mscdex: http://dpaste.com/358337/ [08:29] keks: apostrophes are broken for me.. [08:31] keks: already tried without casting the string of cause, that was an act of desparation [08:31] sudoer has joined the channel [08:33] mAritz has joined the channel [08:33] sechrist has joined the channel [08:34] Fullmoon has joined the channel [08:34] mscdex: what is the data type for the argument to mp()? [08:35] mscdex: is it a c string ? [08:35] mscdex: er wait nvm [08:36] keks: hmk [08:36] mscdex: you should be using Local and Local [08:36] keks: okay ill try that [08:36] mscdex: for the first two vars [08:37] [AD]Turbo has joined the channel [08:37] pyrotechnick has joined the channel [08:37] sechrist has joined the channel [08:37] adambeynon has joined the channel [08:37] mscdex: and the third var should instead be set to the value of mp->Utf8Value() [08:37] [AD]Turbo: yo all [08:38] mscdex: [AD]Turbo: yo [08:38] [AD]Turbo: ciao mscdex [08:39] peol has joined the channel [08:39] peol has joined the channel [08:40] JianMeng has joined the channel [08:40] luke` has joined the channel [08:40] keks: mscdex: still not really as expected.. http://dpaste.com/358370/ [08:40] keks: :( [08:41] mscdex: oh, you changed the data type for the last var :) [08:41] mscdex: 1 sec [08:41] keks: i'll need it that way for fuse [08:42] mscdex: i thought so [08:42] svenlito has joined the channel [08:42] keks: interestingly, that's the only type conversion he's not complaining about: the one that are not entirely his own types... [08:42] sechrist has joined the channel [08:43] Druid_ has joined the channel [08:45] muhqu has joined the channel [08:46] sechrist has joined the channel [08:46] keks: check the print function in this example: http://mscdex.net/v8/shell.cc-example.html they don't use Local<> either [08:46] GasbaKid has joined the channel [08:46] Fullmoon has joined the channel [08:47] keks: actually, that line works... [08:47] mscdex: keks: they don't need to use Local in that function [08:47] mraleph1 has joined the channel [08:47] mscdex: keks: the ToCString function in there is handy to have [08:48] keks: hm okay [08:48] mscdex: keks: you could probably do something like: char* mountpoint = ToCString(args[0]->ToString()->Utf8Value()); [08:48] sbellity has joined the channel [08:48] keks: hm okay [08:48] keks: I'll try that [08:49] mscdex: then for your array you can do: Local fuseArgs_v8 = Local::Cast(args[2]); [08:50] aklt has joined the channel [08:50] fly-away has joined the channel [08:50] keks: uhm [08:50] keks: error: ‘ToCString’ was not declared in this scope [08:50] mscdex: yeah, you have to copy and paste it in there [08:51] mscdex: :) [08:51] mscdex: it's in the v8 shell example [08:51] keks: uh, damn im blind sometimes [08:52] jimt has joined the channel [08:52] keks: but I don't see why they put that in an extra function [08:53] keks: they just call it differently... [08:54] mscdex: it's just a convenience function, makes things a little more readable too [08:54] keks: hm okay [08:55] virtuo has joined the channel [08:55] sechrist has joined the channel [08:56] gJ|Alex has joined the channel [08:57] clarkfischer has joined the channel [08:57] devrim has joined the channel [08:57] sechrist has joined the channel [08:57] sechrist has joined the channel [08:59] q_no has joined the channel [08:59] keks: okay now there still is an array and an object that was commented out before. [08:59] keks: but there are no ToArray() or ToObject methods [09:01] jimt_ has joined the channel [09:02] keks: mscdex: http://dpaste.com/358422/ [09:03] mscdex: keks: line 34 has to be: Local fuseArgs_v8 = Local::Cast(args[2]); [09:03] keks: ahh [09:04] mscdex: keks: line 33 has to be: Local fuseObj = args[1]->ToObject(); [09:04] keks: man, they designed that library for beeing easy to use, I see that now. [09:04] mscdex: :) [09:05] mscdex: you get the hang of it after awhile [09:06] keks: thanks, it works! [09:06] mscdex: cool! [09:06] keks: yeah, i think so [09:07] sechrist has joined the channel [09:07] ROBOd has joined the channel [09:08] sechrist has joined the channel [09:08] pyrotechnick: SubStack: you back yet? [09:09] SubStack: pyrotechnick: yep! [09:09] pyrotechnick: pm [09:09] sechrist has joined the channel [09:09] MikeyB has joined the channel [09:09] peol has joined the channel [09:09] peol has joined the channel [09:10] snearch has joined the channel [09:11] keks: hngnarf..now i have an array fuse doesn't know how to handel [09:11] sechrist has joined the channel [09:12] keks: and also doesn't have a Method called "Length" [09:12] ttpva has joined the channel [09:13] pyrotechnick has left the channel [09:13] pyrotechnick has joined the channel [09:14] sechrist has joined the channel [09:14] mscdex: keks: what type of array is it expecting? [09:14] keks: it expects argc, argv [09:15] xla has joined the channel [09:15] keks: i planned emulating this with array->Length(), array [09:15] clarkfischer: Anyone particularly familiar with HTML5/jsdom? [09:15] sechrist has joined the channel [09:15] keks: but i just realised that I'll have to do it differently anyway [09:17] niklasfi has joined the channel [09:18] keks: okay there are more problems [09:18] mscdex: keks: well if nothing else just create and populate the native c++ array with the v8 array object by looping over it [09:18] keks: yeah, i guess i used the wrong function anayway [09:18] keks: i'll check that later [09:19] keks: now i have a different problem that might destroy my whole idea of how to structure this [09:20] keks: i planned on giving v8 an object {"stat":function(blah){plankton();}} [09:20] keks: and let him decide what to do. [09:20] keks: well, not let him decide [09:21] keks: if(fuseObj->Has('link')) fuse_ops->link = fuseObj->Get('link'); //that was the idea [09:22] sechrist has joined the channel [09:22] keks: but again he only has v8::Values and expects int()s. I believe this is not that easily castable? [09:24] mscdex: any v8::Value can be converted to the c++ desired data type with the To* methods [09:24] keks: also to functions? [09:24] mscdex: well, as long as the data type is correct [09:24] Evet: anyone into that nosql stuff? [09:25] keks: hm okay [09:25] mscdex: keks: i think for functions you may have to use Cast [09:25] keks: yes isee that [09:28] keks: mscdex: error: cannot convert ‘v8::Local’ to ‘int (*)(const char*, stat*)’ [09:29] mscdex: you're trying to convert a v8 function to a c++ function pointer? [09:29] keks: yeah, basically :/ [09:29] niklasfi: hihi [09:29] mscdex: hrm [09:30] mscdex: not really sure on that one to be honest [09:30] mscdex: haven't gone down that path before heh [09:30] keks: hehe [09:30] keks: yeah i guess I'll just write redirect functions [09:31] yozgrahame has joined the channel [09:31] keks: if a function could find out it's caller's name i wouldn't have to write one for every single event [09:32] niklasfi: hi, can someone tell me what the equivalent of the c++ program that writes to an already existing file at a certain position be in node? i have tried it here: https://gist.github.com/798283 the problem is, that node des not write to the file at the given position but deletes the file and adds the buffer to the file preceeded by x00. [09:33] sechrist has joined the channel [09:35] keks: niklasfi: your offset is zero. [09:36] keks: niklasfi: it should be the position you want to write to, i guess [09:36] andrewfff has joined the channel [09:36] glenngillen has joined the channel [09:36] keks: oh, no, sry [09:36] glenngillen has left the channel [09:36] sechrist has joined the channel [09:37] niklasfi: keks: according to http://nodejs.org/docs/v0.3.6/api/fs.html#fs.write the 5th argument is the position of the file to write to and the 3rd argument the offset of the buffer where the data comes from [09:37] keks: niklasfi: yeah i said i'm sorry :) [09:37] sechrist has joined the channel [09:38] niklasfi: keks: np [09:39] ryah: https://github.com/ry/node/wiki/FAQ [09:39] ryah: feel free to add to this [09:39] dspree has joined the channel [09:40] peol has joined the channel [09:40] peol has joined the channel [09:41] sechrist has joined the channel [09:42] niklasfi: keks: any ideas? [09:42] sechrist has joined the channel [09:42] keks: try using 'a' instead of 'w' and negative positions, i believe this might help [09:42] sechrist has joined the channel [09:43] ryah: /na/names [09:44] keks: niklasfi: nah, not really, just appends to the end [09:44] sechrist has joined the channel [09:46] niklasfi: keks: but this is supposed to work? [09:46] keks: i believe so, i started playing with node acouple of days ago myself [09:47] sechrist has joined the channel [09:48] TomY has joined the channel [09:48] keks: niklasfi: i believe the python docs describe the meaning of the open flags pretty well [09:49] keks: http://docs.python.org/library/functions.html#open [09:49] niklasfi: keks: the problem is that the c++ program does what it should and theoretically it calls the same functions [09:49] sechrist has joined the channel [09:50] keks: true... [09:50] nilcolor has joined the channel [09:50] torvalamo: haha [09:50] torvalamo: wrong chan [09:51] Throlkim has joined the channel [09:51] torvalamo: that's a new one [09:51] torvalamo: laughin in the wrong channel [09:51] jdalton has left the channel [09:51] keks: *awkward silence* [09:51] keks: ACTION *ahem* [09:51] torvalamo: have a biscuit [09:51] keks: :) [09:53] keks: niklasfi: what i also don't understand is the crazy binary foo at the beginning of the file node writes [09:53] sechrist has joined the channel [09:53] niklasfi: keks: its not crazy binary foo. its zeros. plain binary zeros [09:53] sechrist has joined the channel [09:53] niklasfi: keks: have a look at it in a hex editor [09:54] Utkarsh_ has joined the channel [09:54] keks: i still don't see a reason for them being there [09:54] sechrist has joined the channel [09:54] niklasfi: keks: well. you want to write to position 10 so i will padd 0 zeros in front and then write what you want ... [09:55] keks: uh [09:55] keks: okay, that makes sense [09:55] sechrist has joined the channel [09:55] GasbaKid has joined the channel [09:55] keks: but then the behaviour is okay [09:55] keks: first he pads 10 zeroes [09:55] niklasfi: keks: but i want a different one... [09:56] keks: then you have to use zero offset the first time i guess [09:57] niklasfi: keks: ok create a "file" and then add say 100 Xes to it. then run the program [09:57] niklasfi: keks: in the end i want to download a file in multiple parts and then join them together... it is not ideal to overwrite the previously downloaded parts each time i want to add something to a later portion of the file [09:58] keks: use mode 'a' [09:58] niklasfi: keks: imagine i wanted this order: part 1, 3, 2 how would i archieve that? [09:58] keks: that is a good question [09:59] keks: ill try it in node, hang on [10:00] pdelgallego_ has joined the channel [10:00] pdelgallego__ has joined the channel [10:00] gattuso has joined the channel [10:00] bzinger has joined the channel [10:01] niklasfi: keks: also: the file must not remain open in between these parts. [10:01] keks: of cause [10:01] keks: well [10:01] keks: of cause it doesn't need to be [10:01] keks: is what i wanted to say [10:02] caolanm has joined the channel [10:08] keks: okay now he doesn't want to close my fle decriptor [10:08] nook has joined the channel [10:09] keks: i don't know, as i said, i'm pretty new to node myself [10:09] codetonowhere1 has joined the channel [10:10] peol has joined the channel [10:10] peol has joined the channel [10:11] niklasfi: keks: i will ask on the nodejs mailing list [10:11] MrNibbles: any australians here? [10:11] niklasfi: MrNibbles: did you enjoy australia day? [10:12] MrNibbles: niklasfi: im not actually australian, just wondering if someone could hit a link. Had reports its not working in aus [10:12] MrNibbles: but my friend did :) [10:12] MrNibbles: he says thank you :P [10:12] MrNibbles: and yes he did [10:12] niklasfi: MrNibbles: well i am actually not in australia as well [10:13] MrNibbles: ahh ok, no worries [10:13] markwubben has joined the channel [10:14] kunley has joined the channel [10:16] hellp has joined the channel [10:17] pdelgallego has joined the channel [10:19] herbySk has joined the channel [10:19] matjas has joined the channel [10:20] torvalamo has joined the channel [10:22] jetienne has joined the channel [10:26] philipharrison has joined the channel [10:26] MikhX_ has joined the channel [10:27] Gruni has joined the channel [10:28] jbpros has joined the channel [10:32] vyvea has joined the channel [10:35] dgathright has joined the channel [10:37] fangel has joined the channel [10:37] springify has joined the channel [10:38] TomY_ has joined the channel [10:40] stagas has joined the channel [10:40] peol has joined the channel [10:41] peol has joined the channel [10:41] mbrochh has joined the channel [10:41] mbrochh has joined the channel [10:43] mbrochh: hi all. I am searching for a headless browser that is able to run javascript recently. I already tried HtmlUnit, tobi and zombie.js with no luck... while all there CAN run SOME javascript, they mostly crash on slightly more complicated websites (such as airline websites). [10:43] svenlito_ has joined the channel [10:43] mbrochh: I stumbled upon node.io yesterday... does anyone know if it can cope with AJAX and JavaScript in general? [10:44] teemow has joined the channel [10:44] stagas: mbrochh: try the new phantomjs [10:45] Fullmoon has joined the channel [10:45] butu5 has joined the channel [10:46] butu5: hello.. I am trying to install node.js on windows following instruction https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(Windows) [10:46] butu5: I am not able to configure [10:46] butu5: $ ./configure [10:46] butu5: ./configure: line 2: $'\r': command not found [10:46] butu5: ./configure: line 22: syntax error: unexpected end of file [10:47] clarkfischer: butu5, What version do you have? [10:47] clarkfischer: Are you building the latest stable, or just master? [10:48] butu5: as suggested in the link NOTE: v0.2.6 and v0.3.1 build on Cygwin. The latests versions do not. [10:48] butu5: I am checking out v0.3.1 [10:48] butu5: tried with latest v0.3.6 as well [10:48] mbrochh: stagas, wow that looks awesome [10:50] mbrochh: stagas, phantomjs doesnt seem to offer any interaction with the loaded site... like filling out forms and clicking submit buttons? [10:50] teemow has joined the channel [10:52] sirganya has joined the channel [10:52] butu5: clarkfischer: am I doing anything wrong? [10:52] clarkfischer: butu5, They don't keep up well with cygwin [10:52] clarkfischer: Try checking out the latest stable [10:52] stagas: mbrochh: dunno haven't used it but I think you can script as if you're in a webkit browser [10:52] clarkfischer: 0.2.6 [10:52] butu5: ok sure.. thanks [10:53] mbrochh: stagas, ok i will give it a try [10:53] clarkfischer: It sucks, but that's the price of running windows ;) [10:53] butu5: :) in home (mac os x ) went everything like charm [10:54] butu5: bad luck.. same issue again [10:54] butu5: anything wrong with installation .. cygwin? I tried this second times :( [10:55] clarkfischer: Perhaps [10:55] clarkfischer: That is an awfully odd error [10:55] clarkfischer: \r? [10:55] davidc_ has joined the channel [10:55] keks: mbrochh: try surf from suckless.org. its a full featured webkit browser you can configure via it's c header and javascripts. [10:55] butu5: hmm [10:56] clarkfischer: It sounds like it must be something wrong with cygwin. I built it not too long ago at 0.2.6 and it worked fine [10:56] rjrodger has joined the channel [10:56] butu5: hmm. but cygwin installation is pain.. selecting all package and going all over the process [10:56] butu5: here net connection also sucks :( [10:57] butu5: I am not doing much nodejs.. just required for compiling coffee script [10:57] stagas: butu5: there's an apt-cyg utility that you can use to install packages from bash [10:57] butu5: may found some other alternative..to node.js [10:58] butu5: hmm.. but I installed everything.. not sure this error is related to cygwin or something [10:59] butu5: i tried with mingw.. it complains pythong not found. that is valid one! but in this case error is strange [10:59] butu5: $ ./configure [10:59] butu5: ./configure: line 2: $'\r': command not found [10:59] butu5: ./configure: line 22: syntax error: unexpected end of file [11:02] butu5: looks like there is new line there.. and something going on wrong.. [11:02] teemow has joined the channel [11:02] butu5: I tried removing it.. it passed that line at least.. but stuck at the second error [11:03] butu5: :) that error not coming any more.. one more set up error [11:05] butu5: Now this error: http://pastebin.com/a1my1nbf [11:08] yx has joined the channel [11:08] Coal has joined the channel [11:10] butu5: 'configure' finished successfully (30.744s) :) [11:10] [ADTurbo] has joined the channel [11:11] micheil: is there any standard format for ~/.*rc files to use in unix programs? [11:11] micheil: (like, can the data be anything I wish, or should it be a ini formatted document? [11:12] davidc_: micheil: completely uneducated answer here but I've only ever seen ~/.*rc being bash compatible scripts. [11:13] micheil: :/ [11:13] davidc_: But the craziness people can do has no limit so why not have it as a .ini file :P [11:13] micheil: well, I mean, npm has a ~/.npmrc, which is just key = value pairs [11:14] davidc_: There you go then [11:14] [AD]Turbo has joined the channel [11:14] davidc_: I would think ~/.npm/config would be better but I'm only 1 person. [11:15] narph: hmmm when installing npm with multiple node versions the $PREFIX/bin/npm script still uses /usr/bin/env node - any way I can fix that on install? [11:16] butu5 has left the channel [11:18] statim has joined the channel [11:22] roland has joined the channel [11:22] syntheze has joined the channel [11:23] stagas has joined the channel [11:23] altamic has joined the channel [11:24] kristsk has joined the channel [11:29] andree has joined the channel [11:31] Blink7 has joined the channel [11:33] w0rse_ has joined the channel [11:33] unomi has joined the channel [11:34] herbySk: hi, i'm having a look at connect. anyone here who can answer some questions? [11:35] zorzar has joined the channel [11:35] tokumine has joined the channel [11:39] Druid_ has joined the channel [11:42] stagas_ has joined the channel [11:44] herbySk74 has joined the channel [11:45] d0k has joined the channel [11:46] MattJ has joined the channel [11:49] Ori_P has joined the channel [11:51] wdperson has joined the channel [11:52] khismetix has joined the channel [11:52] khismetix: Anyone here using websockets ? [11:52] pengwynn has joined the channel [11:53] skm has joined the channel [11:53] lethalduck has joined the channel [12:00] GasbaKid has joined the channel [12:01] whyme has joined the channel [12:01] fermion has joined the channel [12:08] peol has joined the channel [12:08] peol has joined the channel [12:09] teemow has joined the channel [12:10] tc77 has joined the channel [12:12] keks: join v8 [12:12] Bioxyde has joined the channel [12:12] keks: ah damn [12:12] Bioxyde: Hello. [12:12] Bioxyde: I am having some problems choosing between Geddy and Express. [12:13] Bioxyde: Which one do you recommend? [12:14] charlenopires has joined the channel [12:17] jetienne: the most maintained/used/documented. it is the most likely to still be there in 6months [12:18] Bioxyde: I guess that is Express, right? [12:18] Bioxyde: I think I'll choose Express because of its support for sockets.io. [12:18] jetienne: Bioxyde: it seems. but i never had to do such choise. so up to you to decide [12:18] Bioxyde: Someone on Stack Overflow said that Geddy didn't have sockets.io support. [12:18] jetienne: Bioxyde: socketio works well by itself btw :) [12:19] jetienne: you dont need any framework to make it work [12:19] Bioxyde: "The only major problem with Geddy is that it does not expose a http.Server instance required for Socket.IO [...] [12:20] Bioxyde: " [12:20] tokumine has joined the channel [12:20] sriley has joined the channel [12:21] pomodoro has joined the channel [12:21] charlenopires has joined the channel [12:22] piscisaureus has joined the channel [12:22] piscisaureu_ has joined the channel [12:27] Bioxyde: Also, is node.js ready for HTTP servers? [12:27] Bioxyde: Or should I use something like nginx? [12:28] kristsk: for what? serving static content? [12:28] Bioxyde: Yes. [12:28] kristsk: nginx will probably do better, if readily available. [12:28] charlenopires_ has joined the channel [12:29] Bioxyde: I was thinking of using Nitrode (https://github.com/ollym/nitrode) [12:30] teemow has joined the channel [12:32] hobodave has joined the channel [12:34] jetienne: Bioxyde: what are you trying to do ? subject, timelife of the project, purpose(pro or toy) [12:34] jetienne: Bioxyde: it would help give you advices [12:35] Bioxyde: On truth, it'll be a dynamic website. A simple viral social network that is updating all the time. [12:36] kristsk: ACTION shudders [12:36] Bioxyde: Something simple as threewords.me, that is updating all the time - like FriendFeed. [12:37] Bioxyde: We would use HTML5, CSS3, JavaScript and MongoDB. [12:37] thermal has joined the channel [12:37] jetienne: Bioxyde: ok so a quite big project which need to remain alive for a long time [12:38] jetienne: Bioxyde: before starting such project you better experiment the techno a bit more [12:38] Bioxyde: Well, it is more of a hobby. [12:38] Bioxyde: There will be only two coders. [12:38] Bioxyde: But yeah, it is a big proiject. [12:38] Bioxyde: project* [12:38] jetienne: [13:27] Also, is node.js ready for HTTP servers? <- this shows a clear lack of experience. no problem abou tit. but it show it is too early to decide [12:39] jetienne: Bioxyde: node.js is real nice and fun but young [12:39] jetienne: in very short :) [12:39] Bioxyde: We're not experienced with node.js, true. [12:40] jetienne: Bioxyde: take a few days to toy around. make a basic TODOs website or a blog... just to get a feeling or it [12:40] jetienne: feel of it [12:40] thermal: does node.js handle long polling well? [12:40] jetienne: yes [12:40] Bioxyde: Well, node.js knockout has some clever examples. [12:41] jetienne: thermal: socket.io provides a running example of it [12:41] thermal: ok great [12:46] broofa has joined the channel [12:52] peol has joined the channel [12:52] peol has joined the channel [12:54] mytrile has joined the channel [12:57] eikke has joined the channel [13:00] montylounge has joined the channel [13:01] jashkenas has joined the channel [13:03] jetienne: poll: which format do you use for insource documentation ? [13:04] jbpros has joined the channel [13:07] dug__ has joined the channel [13:08] nooder has joined the channel [13:08] jetienne: i guess jsdoc is the way to go. like defacto standard [13:09] dstufft: how can i return a 404 with expressjs? [13:10] eee_c has joined the channel [13:11] dstufft: ah got it [13:12] piscisaureus_ has joined the channel [13:14] ryanfitz has joined the channel [13:15] herbySk: jetienne: I used jsdoc when doing things in AppJet, now I use nothing, but if I occassionally use one, it's jsdoc. [13:15] sirganya_ has joined the channel [13:20] slaskis: what does this error really mean? ENOTCONN, Socket is not connected [13:20] slaskis: i don't know where i get it from as the stack only shows that it comes from a http client, not which one... [13:22] jetienne: herbySk: ok thanks [13:27] khismetix has joined the channel [13:31] stepheneb has joined the channel [13:32] mike5w3c_ has joined the channel [13:37] mike has joined the channel [13:37] mw has joined the channel [13:38] slaskis: mikeal: hey, is there any way to receive the error of a request() (by which is mean your 'requestmodule [13:41] chrischris has joined the channel [13:42] mattopenstack has joined the channel [13:44] cronopio has joined the channel [13:46] EyePulp has joined the channel [13:47] jetienne: request({uri:'http://www.google.com'}, function (error, response, body) { <- slaskis the "error" doesnt satisfy you ? [13:48] slaskis: jetienne: i don't get that error [13:48] slaskis: err, i mean any error in my callback [13:48] jetienne: slaskis: i dunno then. sorry [13:48] slaskis: seems like some kind of error in http.Client. (thrown as: ENOTCONN, Socket is not connected) [13:52] luke`_ has joined the channel [13:52] khismetix: Do any of you use websockets ? [13:53] jetienne: khismetix: some people do yes. ask your question, you will get more change to get answered [13:54] teemow has joined the channel [13:54] cwo has joined the channel [13:54] khismetix: jetienne.. sure.. I mean to ask this, say in a websocket IRC channel but none exists..... [13:55] altamic has joined the channel [13:55] altamic has joined the channel [13:55] khismetix: My question is... does the websocket server *have* to be on a non port 80 , 8080 port ... or is that only in the case where port 80 is tied up due to Apache on the same host [13:55] khismetix: I've come across jwebsocket which seems to default to port 8787 [13:55] jetienne: khismetix: they dont have to be on non80 [13:56] case__: khismetix, btw on most OS you have to be root to open a port < 1024 [13:56] jetienne: khismetix: from memory, the transition between normal http and websocket is possible via UPGRADE method. the support of apache of this is unknown to me [13:56] khismetix: I read about Jetty.. apparently Jetty might allow simultaneous co-existence of web server and websocket server [13:56] heavysixer has joined the channel [13:56] case__: khismetix, so it makes sense to have a default port > 1024 if you have to be used by a normal user [13:57] khismetix: case__ that restriction is for serverside opening of ports right ? [13:57] case__: jetienne, you can't upgrade to websocket between 2 different process [13:57] case__: khismetix, yes, i mean "listen", not open [13:57] jetienne: khismetix: miksago or rauchg hang around, they implemented websocket. so they may know [13:57] micheil: ? [13:58] case__: jetienne, it has to be the same process that accept the connection and the upgrade [13:58] jetienne: case__: how the protocol could matter compared to process ? [13:58] Nomon: the recent require/module init changes seem to have broken index.js style include if you have a file by the same name as the directoy in the same directory so for example if I have file.js and file/index.js then require('./file/'); requires file.js intead of file/index.js where as it used to be the opposite. [13:58] jetienne: case__: which software force that ? [13:58] case__: jetienne, i know no OS that allow the transfert of an opened tcp connection from one process to another [13:58] rachelbutts has joined the channel [13:59] micheil: khismetix: websockets, as a protocol are designed to run along side standard HTTP (port 80), however, if you can't bind to port 80, or hijack a http server, then you pretty much have to bind to a different port [13:59] jetienne: case__: unix does. so linux/macos do it [13:59] case__: jetienne, ??? [13:59] case__: jetienne, no it doesn't [13:59] teemow has joined the channel [13:59] micheil: node-websocket-server is designed to run inline with node's http.Server (and will one day work with https.Server) [13:59] jetienne: http://developer.yahoo.com/blogs/ydn/posts/2010/07/multicore_http_server_with_nodejs/ <- case__ running example implemented in node [13:59] jetienne: case__: i am not sure about windows tho [14:00] micheil: jetienne: that passes fd's iirc. [14:00] jetienne: micheil: yep. and socket are super clode to fd on unix :) [14:00] jetienne: close [14:00] micheil: yeah, but it doesn't actually pass the binding of the tcp connection around, just the fd's [14:01] kristsk: um, fr fd passing check out fugue [14:01] case__: jetienne, we're not talking about the same thing [14:01] kristsk: for fd [14:01] jetienne: case__: im talking about passing a socket from one process to another [14:01] micheil: hmm.. [14:01] micheil: anyone good with unix modes? [14:02] case__: jetienne, it seems you're not passing the socket, your reading the stream from one and pass it to another through another stream... [14:02] micheil: 0663 == -rw-rw-r-- [14:02] case__: anyway, it's a work around yes [14:02] micheil: right? [14:02] jetienne: case__: it is passing the socket [14:02] jetienne: micheil: rw-rw--wx [14:02] sirganya_ has joined the channel [14:02] case__: jetienne, if for you inetd is passing the socket, then ok. [14:02] jetienne: micheil: the 3 doesnt make much sense [14:02] micheil: case__: yeah, in pgriess' work, it actually does pass a fd [14:03] khismetix: what is pgriess' ? [14:03] micheil: so the proxy doesn't actually read all data on the fd [14:03] jetienne: case__: relax a bit and listen. it is passing the fd, so the opened socket [14:03] micheil: peter griess, a former yahoo developer and awesome c programmer. [14:03] jetienne: khismetix: a personn. the one who wrote the blog post [14:03] kristsk: socket is kept open by os until at least one process is listening to it [14:04] kristsk: so in theory you can pass fd of socket around as long as you wish [14:04] kristsk: spin up/shut down workers etc [14:04] case__: jetienne, i would be really pleased to be wrong but i would like to be pointed on how you pass a fd from a process to another on any unix, really [14:04] khismetix: ah ok [14:04] jetienne: case__: i gave the link on how to do it in node [14:04] jetienne: case__: this is supported in unix for a very long time [14:04] khismetix: In our case.. we want to do a basic publish/subscribe service where many many clients are feeding off the same publisher feed in realtime [14:05] jetienne: kiddphunk: pubsub! :) [14:05] khismetix: I looked at node.js ... but I read stuff from a guy at plurkr, I think.. who used it [14:05] case__: jetienne, i see nothing in your link on how to pass a fd, i read that they are using sendmsg and recvmsg which is not fd passing [14:05] case__: jetienne, so maybe i've missed something [14:05] jetienne: case__: hehe you really dont believe me :) [14:05] kristsk: check out this for passing fds to child processes -> https://github.com/pgte/fugue/blob/master/lib/fugue.js [14:06] case__: jetienne, i will believe code or doc but not a randam human beeing on internet :) [14:06] backthatzachup_ has joined the channel [14:06] khismetix: They found that node.js seemed to scale but they eventually found that garbage collection and some other stuff happens on the same thread as the evented stuff and that Node.js will still rely on improvements in the v8 VM before it is good enough for that type of scalability [14:06] tolun: What is the best way to connect to MongoDB? Looked at node-mongodb-native, and mongoose, but both are very poorly documented, and mongoose development looks almost dead. [14:06] kristsk: there is a amagical connection.on('fd', ...) event [14:07] kiddphunk: jetienne: ?? [14:07] jetienne: case__: well relax and get more documentation [14:07] jlecker has joined the channel [14:08] jetienne: kiddphunk: yes, node is young and if you plan to use it for a longlived nontoy project, you will enconter hicups [14:08] kiddphunk: i don't believe I asked any questions tho... ;) [14:08] kiddphunk: at least, not on this channel [14:09] case__: jetienne, no i believe you : http://www.myelin.co.nz/post/2003/12/2/ [14:09] jetienne: cool :) [14:09] case__: jetienne, sorry for the noise [14:09] kristsk: (is anyone even receiving what i am saying?) [14:10] teemow has joined the channel [14:11] khismetix: jetienne.. were you answering my question and confused me with kidphunk ;) ? [14:11] chrischris has joined the channel [14:12] xla has joined the channel [14:12] kristsk: damn kids. they are all alike. [14:12] jetienne: khismetix: oh maybe :) [14:12] altamic has joined the channel [14:12] altamic has joined the channel [14:13] indutny has joined the channel [14:13] indutny: hey everyone! [14:13] indutny: glad to see you again [14:13] khismetix: jetienne : You were saying that non-toy projects needed to take care with node.js on account of its newness,etc [14:14] jetienne: khismetix: have you tried running socket.io ? you can easily hammer it with a lot of connection if you want [14:14] jetienne: khismetix: aka do a bench. maybe it will take 30min top if you dunno socket.io [14:15] matjas has joined the channel [14:15] khismetix: Yes.. might be worth a go [14:16] khismetix: I'm from a Java / c /objective c background [14:16] jetienne: khismetix: you are at ease with js ? [14:16] khismetix: but not naive enough to think js isn't up to these sorts of tasks [14:16] khismetix: No.. I'm a JS virgin ! [14:16] jetienne: khismetix: not even in a browser ? [14:16] khismetix: normally I do very little web clienty stuff.... [14:17] khismetix: I'm more mobile based [14:17] khismetix: J2ME and now iPhone [14:17] jetienne: khismetix: js will be the big part. it is != from java/c and all [14:17] khismetix: and I shadow an Android developer [14:17] khismetix: Yes.. about 18mths ago I watched some cool vids by Doug Crockford, etc.. and got some insight into JS [14:17] jetienne: khismetix: you get "closure", you got various weirdiness, like how they handle "this" :) [14:18] khismetix: Yes.. the closure stuff is a bit mindbending for trad C/C++/Java developers who haven't used functional programming b4 [14:18] ErikCorry: khismetix: http://amix.dk/blog/post/19577#Is-node-js-best-for-Comet [14:18] ErikCorry: It's unclear to me exactly what problem plurk had. [14:18] khismetix: Erik.. there is a folow on post to that let me dig it out [14:19] ErikCorry: Clearly there is room for improvement on the GC. [14:19] ErikCorry: But that would expect to show up as long occasional pauses. [14:19] jetienne: khismetix: http://howtonode.org is nice for node.js related stuff. but you need to do js already [14:19] fallsemo has joined the channel [14:19] ErikCorry: Not as general low throughput. [14:20] khismetix: ErikCorry : there is a follow up post where the guys at Plurk said they resurrected their netty stuff and got better performance figures [14:20] jetienne: v8: console.log("foo"+bar); var bar = 400; [14:20] v8bot: jetienne: CONSOLE: ["fooundefined"], OUTPUT: undefined [14:20] cyraxx: i'm currently experiencing memory leaks and huge cpu load with node+socket.io as well under load [14:21] cyraxx: i haven't narrowed it down yet [14:21] jetienne: v8: console.log("foo"+bar); [14:21] v8bot: jetienne: ReferenceError: bar is not defined [14:21] ErikCorry: khismetix: try looking at the link I just posted [14:21] cyraxx: but under load, the node process takes up a gigabyte and more of ram, just for a really simple chat-like socket.io app [14:21] jetienne: isnt js nice ? :) [14:21] ErikCorry: It's the one you are looking for. [14:21] cyraxx: and sometimes it starts using 100% cpu, even after the load is gone [14:22] jetienne: before defining a variable it is "not defined", but once you defined it, it is "undefined"... subtle :) [14:22] jetienne: khismetix: come to js :) [14:22] ErikCorry: cyraxx you are leaking memory [14:22] kristsk: do not keep process running too long [14:23] cyraxx: ErikCorry: yes, i took some heap snapshots and there are apparently thousand and thousands of string objects created - but as i said, i haven't narrowed it down yet. i'm gonne write some tests [14:24] TomY_ has joined the channel [14:27] dnolen has joined the channel [14:28] arpegius has joined the channel [14:29] ddollar has joined the channel [14:29] zomgbie has joined the channel [14:29] Aikar: < jetienne> kiddphunk: yes, node is young and if you plan to use it for a longlived nontoy project, you will enconter hicups [14:29] Ari-Ugwu has joined the channel [14:29] Aikar: not if you stick with a stable version and dont upgrade :P [14:29] ErikCorry: cyraxx: yes our tools should be better for finding out where the strings are coming from. [14:30] sivy has joined the channel [14:30] dug__ has left the channel [14:30] Aikar: .4.x will prolly be a better "long term stable" ver, considering all the good changes .3x has made. I don't know what ry has planned for .5x [14:31] rawroland has joined the channel [14:32] skohorn has joined the channel [14:33] ErikCorry: cyraxx: which debugger are you using? [14:33] jetienne: Aikar: yep but "never upgrading any of your dependancies" doesnt match "longlived" in my book [14:34] jetienne: Aikar: and the dependancies on node itself is far from the weakest link. it is more all the libraries [14:34] indutny has left the channel [14:35] teemow has joined the channel [14:35] Aikar: jetienne: well long lived as in you CAN keep using it w/o modifying code :P [14:35] Aikar: wheres isaacs at :X [14:35] ivanfi has joined the channel [14:35] Aikar: he not idle here ? [14:36] davidsklar has joined the channel [14:37] CrabDude has joined the channel [14:37] cyraxx: ErikCorry: node-inspector [14:39] Evet: which reverse proxy youre using for websocket applications? [14:40] andrzejsliwa has joined the channel [14:41] fairwinds has joined the channel [14:41] mattopenstack has joined the channel [14:41] losing has joined the channel [14:42] teemow has joined the channel [14:43] kristsk: Evet: nginx seems to popular choice [14:43] Evet: kristsk: sure, but for websocket servers? [14:44] herbySk has joined the channel [14:45] kristsk: umm. i might be not getting somthing right, but what is the difference? [14:45] mandric has joined the channel [14:45] Evet: kristsk: it isnt http? [14:45] bzinger has joined the channel [14:46] kristsk: hmm. okay. [14:47] bzinger has joined the channel [14:52] nonnikcam has joined the channel [14:54] adambeynon has joined the channel [14:54] jpiche has joined the channel [14:56] djanowski has joined the channel [14:57] mattopenstack has joined the channel [14:59] nooder: websockets are used for flash? [14:59] davidpadbury has joined the channel [14:59] jetienne: nooder: no. flash uses another solution [15:00] m64253 has joined the channel [15:00] jetienne: nooder: socket.io unifies several solutions btw. and thus got wide support on the clients [15:00] nooder: jetienne, and where websockets are used? for desktop apps? [15:00] dantalizing has joined the channel [15:01] BillyBreen has joined the channel [15:01] jetienne: nooder: not sure what you mean [15:01] jetienne: nooder: websockets are a standard for realtime web apps [15:01] nooder: jetienne, but its not supported by all browsers [15:02] Paul___ has joined the channel [15:02] nooder: can't understand where it can be used now [15:02] jetienne: nooder: yes [15:02] jetienne: nooder: currently almost nowhere :) [15:02] jetienne: most browsers disabled it [15:02] Me1000 has joined the channel [15:03] shiawuen has joined the channel [15:03] montylounge has joined the channel [15:04] shiawuen1 has joined the channel [15:06] jetienne: v8: Date.parse("Wed, 1 Sep 2010 08:58:36 +0200").toLocaleString() [15:06] v8bot: jetienne: "1283324316000" [15:09] jetienne: localeString should give a nice readable version no ? not the msec since 1970 [15:09] herbySk: Everyone will call this blasphemy probably, but node should integrate something like fibers. At the core everything should be async in node, and having fibers around helps to do everything in async, and when sync is really needed (and it is, sadlu, because [15:10] herbySk: CommonJS require is sync), fibers can use async code to emulate sync and still not block. [15:10] herbySk: howgh [15:10] ROBOTARMY has joined the channel [15:10] herbySk: v8: new Date().toLocaleString() [15:10] v8bot: herbySk: "Thu Jan 27 2011 10:10:42 GMT-0500 (EST)" [15:10] nooder: anybody wants to participate in torrent tracker developement? https://github.com/anhel/node-bittorrent-tracker [15:11] EyePulp has joined the channel [15:11] flippyhead has joined the channel [15:11] herbySk: jetienne: doesn't parse return number? look ^^^ [15:11] mnbvasd: herbySk: fibres? [15:11] jetienne: herbySk: oh missed. thanks [15:12] mnbvasd: herbySk: I could do with something like that... I want some code to block until a signal is received.... [15:12] herbySk: mnbvasd: they are listed in modules page of node wiki... lets run multiple stacks and switch between them. green threads / continuations, in essence. [15:12] mnbvasd: herbySk: cool... [15:12] killfill: im readiny this: https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(Windows) and im having the same problema described in the last FAQ. The tip it tells, does not solve the problem.. :S what else can i try? [15:12] killfill: (yeah..im stuck with windows this time.. :S) [15:13] herbySk: mnbvasd: that is no problem in general, you just you async function with callback... problem is only in situation, where you simple _need_ to call sync (and for these cases it can be helpful). [15:13] killfill: (the {task: libv8.a SConstruct -> libv8.a} problem) [15:14] mnbvasd: herbySk: ... so I'm spawning a child... the rest of the code path relies on that spawned child. [15:14] Country has joined the channel [15:14] mnbvasd: herbySk: so I want to block until a signal is received from it. [15:14] mattopenstack has joined the channel [15:15] herbySk: mnbvasd: install a handler on the signal. something like process.on('SIGXXX', function (err) {....}) [15:15] herbySk: this is the node way [15:16] herbySk: (or, if it is a one at a time signal, use .once instead of .on) [15:16] mnbvasd: herbySk: that's one method I currently use. [15:16] herbySk: mnbvasd: that's the way it should be done in node. [15:16] mnbvasd: the child spawns a required module... I want to get the results back from what the odule exports. [15:16] akahn has joined the channel [15:17] nefD has joined the channel [15:17] devdazed has joined the channel [15:17] akahn has left the channel [15:17] mnbvasd: another method I also use is to just require the same module in the local process, extract the info and destroy the object. [15:17] herbySk: mnbvasd: well, that's impossible if it contains functions... [15:17] herbySk: if you need the require, you should do it locally, not in child [15:18] mnbvasd: http://js.5sh.net/childmodule/readme.txt [15:18] booths has joined the channel [15:19] mnbvasd: the readme is a little out of date. [15:19] booths: This ENOBUFS thing is driving me crazy. [15:19] muhqu has joined the channel [15:19] mnbvasd: herbySk: so at the moment I do have a nasty work around.. however I believe it to be sub-optimal. [15:20] stepheneb has joined the channel [15:20] yhahn has joined the channel [15:21] sirganya_ has joined the channel [15:21] davidwalsh has joined the channel [15:22] mattopenstack has joined the channel [15:22] MrSmurf has joined the channel [15:22] zentooo has joined the channel [15:25] bgilbert has joined the channel [15:25] tapwater has joined the channel [15:27] MikhX has joined the channel [15:28] colinclark has joined the channel [15:29] Yuffster has joined the channel [15:29] jamund has joined the channel [15:29] zomgbie has joined the channel [15:30] mattopenstack has joined the channel [15:30] hunterloftis_ has joined the channel [15:30] keks: micheil: no, mcabber also uses it's own scripting language and calls that mcabberrc [15:31] MrSmurf has joined the channel [15:31] micheil: uhh.. doesn't really matter now, I went with json in a file. [15:32] herbySk: Well, maybe not. require.ensure would be enough... if thoroughly used. (commenting myself from the past) [15:33] creationix has joined the channel [15:33] mandric has joined the channel [15:34] herbySk: creationix: hi [15:35] herbySk: creationix: have a time for a connect question? [15:35] creationix: sure [15:35] andrzejsliwa has joined the channel [15:36] herbySk: creationix: A basic thing, I just looked at it today, and somehow did not understand the next(err). It seems to me, it implies the next handler must be the error handler, or things gets messed up. Or? [15:37] creationix: herbySk: next is simply a callback into the framework [15:37] creationix: if there is an error, it will call the error handler [15:37] xSmurf has joined the channel [15:37] creationix: otherwise next is called with no parameter and the next layer is called with the normal (req, res, next) parameters [15:37] bingomanatee has joined the channel [15:37] creationix: see my stack micro-framework for a clearer explination [15:38] halfhalo: Mmm..... Stacks..... [15:38] creationix: https://github.com/creationix/stack/blob/master/stack.js [15:38] herbySk: creationix: what's "the error handler"? The nearest one in the list? Or can I supply only one? [15:38] creationix: basically the same behavior as connect, but a lot less code [15:38] creationix: in connect, I believe you have to have a layer with a special signature [15:38] brapse has joined the channel [15:38] creationix: in Stack it's a property on the stack function [15:39] BrianTheCoder has joined the channel [15:40] herbySk: creationix: yes, special signature... what if I pass more such layers, which one gets called? (but, well, it's a detail, when next is callback to system, it somehow get around it and knows if to peacefully call next lasyer or handle an error; which is basically what the question was about; thanx) [15:40] brapse: ryah: when were you looking to remove the crypto library from core? [15:40] creationix: herbySk: here is the connect logic https://github.com/senchalabs/connect/blob/master/lib/connect/index.js#L146-231 [15:40] mandric: hey creationix i just saw your talk this morning. i'm psyched about nodejs and friends. but i can see if have a paradigm shift to climb. Do you have a recommendation for the first step of this climb? Blog posts, books, tuts? [15:41] creationix: mandric: howtonode.org [15:41] mandric: by talk i mean http://vimeo.com/18077379 [15:41] mandric: but there is quite a lot there [15:41] halfhalo: ACTION always suggests making an irc thing as the first node project for everyone. It's just to damn simple [15:41] mandric: particular article? [15:41] matt_c has joined the channel [15:42] mandric: halfhalo: yea i saw that in the talk above [15:42] creationix: right, on howtonode.org, specifically "what is this", "who use closure", "object graphs 1, 2, and 3", and possibly the control flow series [15:42] iszak: halfhalo, I agree, create a program that takes commands from IRC to the infected, I mean "host" machine :) [15:42] creationix: herbySk: connect got too complicated for my taste, that's why I made stack [15:42] halfhalo: Done that [15:42] arpegius has joined the channel [15:43] creationix: herbySk: it can use the same middleware, but the layering logic is a lot simpler and faster too [15:43] iszak: then rm -fr their bin [15:43] softdrink has joined the channel [15:43] mandric: iszak: true... first thing i guess to tackle is "authentication" [15:43] creationix: mandric: also my slides from jsconf are aimed for beginners [15:43] creationix: "beginners" to the async paradigm [15:43] creationix: http://creationix.com/jsconf.pdf [15:44] mandric: cool [15:44] halfhalo: "goddamn async getting all up in mah bidnuss!" [15:44] creationix: mandric: http://jsconf.eu/2010/speaker/techniques_and_tools_for_tamin.html [15:45] mandric: iszak: i was thinking about using the facebook middleware https://github.com/drtyhbo/drty-facebook [15:45] mandric: and only allow "friends" to use the chat [15:45] iszak: that could work. [15:45] creationix: herbySk: ok, got to go back to playing with my kiddos, ping me if you have more questions... [15:45] herbySk: creationix: well, I cannot see how to do my own error handler (expect change the global one through Stack.errorHandler = ...), though maybe it is enough... [15:46] mandric: only thing left is to send me an SMS and a link when someone pings my site. [15:46] herbySk: creationix: ok, bye [15:46] bingomanatee: Facebook already has chat -- whats the added value? [15:46] creationix: herbySk: correct, that's how you do it with Stack [15:46] halfhalo: ACTION needs to separate his keystore module from his current project since he keeps making a rewriting it for each new project [15:46] creationix: herbySk: in connect it's different [15:46] timmywil has joined the channel [15:46] jetienne has left the channel [15:46] creationix: in stack you need a layer with arity of 4 https://github.com/senchalabs/connect/blob/master/lib/connect/index.js#L211 [15:46] mandric: bingomanatee: people on my site can chat with other people on my site, or more specifically me, and of course a host of other features. [15:46] mattopenstack has joined the channel [15:47] bingomanatee: Are there any useful plugins for eclispe node projects? [15:47] creationix: s/stack/connect [15:47] mynyml has joined the channel [15:47] bingomanatee: ah. [15:47] halfhalo: Sadly, as of Right now node sucks for talking to an aws clone [15:47] mandric: just a fun project [15:47] bingomanatee: why not use their IPs as user IDs? [15:47] mandric: well we want to keep out the baddies. [15:47] bingomanatee: ah. [15:47] zomgbie has joined the channel [15:47] bingomanatee: sounds cool. [15:48] bingomanatee: Need any help? I'd like to have that on my site. [15:48] halfhalo: And by sucks, I mean completely crashes [15:48] mandric: for now just vapor ware ... it's more fun to think. ;) [15:48] mandric: since most of my ideas suck. [15:49] bingomanatee: don't be so hard on yourself. I'm sure its just your implementation of your ideas that suck. [15:49] mandric: hehe [15:49] halfhalo: ACTION wants the issue where node will not connect to a site with a ss cert without a parse error [15:49] mandric: well if the ideas suck ... logic follows [15:49] bingomanatee: I think that would actually be a great widgetware tool. [15:49] bingomanatee: I think a lot of people would like cheap integrated audience chat. [15:50] mandric: i come from the django world and was pretty blown away by https://github.com/drtyhbo [15:50] c4milo has joined the channel [15:50] mandric: (one of these weekends ...) [15:50] bingomanatee: Especially if you could flip the service into customer support and e-com. [15:51] mandric: midgetware [15:51] bingomanatee: Hey there is a guy looking for Python people and node experts for work in the south bay - you looking? [15:51] mandric: possibly if it's remote [15:51] mandric: i'm in the midwest [15:52] trotter has joined the channel [15:52] mandric: though south bay doesn't sound horrible [15:52] mandric: i wonder how many node experts there are in the world. [15:52] booths: 42 [15:53] bingomanatee: 41 - booths rates himself too highly [15:53] booths: I consider myself many things, but an expert is definitely not one of htem [15:53] tg has joined the channel [15:53] bingomanatee: darn - now if only noogle sorted its results by date ... :D [15:53] mattopenstack has joined the channel [15:53] gflarity has joined the channel [15:54] creationix: define node expert [15:54] pr2012 has joined the channel [15:55] mandric: ryan [15:55] mandric: ;\ [15:55] gflarity: hi [15:55] mandric: err :-\ [15:55] jlecker has joined the channel [15:55] creationix: being the creator of a framework doesn't automatically make you an expert. Take me and Connect, for example [15:55] creationix: you have to use it too, luckilly ryah uses node too [15:56] aurynn: Are there any experts yet? [15:56] aurynn: I thought we were all still learning? :) [15:56] mandric: well apparently some people think there are in the south bay. [15:56] bingomanatee: An expert is just a paid ameteur. [15:56] mandric: who doesn't get fired [15:57] creationix: aurynn: for sure (2nd question) [15:57] mandric: professional might be a better word [15:57] gflarity: has anyone had issues with debugging with eclipse? I followed the tutorial and it worked a first, but all of a sudden break points stopped working (all of them) [15:57] Country has joined the channel [15:58] gflarity: when I use —debug-brk and click on the top of the call stack or whatever it says it can't find the file although the path is correct [15:58] gflarity: and is in the debug profile [15:59] heavysixer has joined the channel [15:59] mandric: now i have to work on my employer to pay me to port our stuff over to nodejs and connect. ;) [15:59] mandric: err, better still start a project with it [15:59] mandric: always better to start a new service than port oldies. [16:00] mandric: part of our new "service oriented architecture" [16:00] mandric: hehe [16:00] Tidwell has joined the channel [16:00] dguttman has joined the channel [16:00] jakehow has joined the channel [16:00] mandric: actually i think that's legit [16:02] jamund has joined the channel [16:02] losing has joined the channel [16:05] dmcquay has joined the channel [16:05] blueadept has joined the channel [16:06] bingomanatee: I dunno. I've been in tech since 84 and my opinion is that expertise is a goal, not a benchmark. [16:06] gflarity: Not that anyone cares, but I figured out why breakpoints weren't working in eclipse and I updated the wiki entry: [16:06] gflarity: "If you decided to edit the source lookup path, be sure to leave the ‘Default’ entry. Break points won’t work if you remove it." [16:06] bingomanatee: gflarity: got any good plugin sets for eclipse / node.js? Just started using it. [16:07] gflarity: bingomanatee: I don't use eclipse to develop, but V8 has debug plugin for it and it's pretty good (if you don't do what I did ;) [16:08] fission6 has joined the channel [16:08] gflarity: bingomanatee: And since node uses V8 it comes for free [16:08] fission6: i am using console.log('Current directory: ' + process.cwd()); and did process = require("process") it says no module was found? [16:09] gflarity: bingomanatee: https://github.com/ry/node/wiki/Using-Eclipse-as-Node-Applications-Debugger [16:09] booths: I may be an idiot but I don't think you have to require('process') [16:09] bingomanatee: http://adamcecc.blogspot.com/2011/01/javascript.html [16:09] glenngillen has joined the channel [16:09] booths: I should change that to my username, as a general disclaimer. "I may be an idiot but: " [16:10] fission6: nm its gloabl [16:10] Metapony has joined the channel [16:11] mattopenstack has joined the channel [16:12] bingomanatee: Chromium JavaScript Debugger Bridge to JSDT missing? [16:12] figital has joined the channel [16:14] glenngillen has joined the channel [16:14] gflarity: bingomanatee: ? the directions worked for me [16:15] bingomanatee: oh well. [16:15] bingomanatee: I liked Komodo but I'll be god d**mned if I will pay $380 for an IDE. [16:17] creationix has joined the channel [16:17] booths: $380 for an IDE... [16:18] BrianTheCoder_ has joined the channel [16:18] pyrotechnick: does anyone know how to query mongoose models with a property that is an array? [16:19] pin has joined the channel [16:21] rjrodger has joined the channel [16:22] tjholowaychuk has joined the channel [16:22] pyrotechnick: ahh i got it [16:22] khismetix: Someone mentioned a node.js beginner blog/site earlier and I forgot to copy the URL ? any ideas ? [16:23] khismetix: I think it was jetienne [16:23] pin has joined the channel [16:23] pyrotechnick: FYI and for the logs: to query a mongoose models which contain a specific item in an array property you simply pass it as a key: value pair. mongoose/mongo are smart enough to understand what you mean and interrogate the array for that item [16:23] tanepiper: bingomanatee: have you seen WebStorm? It's supposed to be getting nodejs support [16:23] GasbaKid has joined the channel [16:23] Aikar: how does --watch work for vows? i just get ... going back and forth never doing anything [16:23] pyrotechnick: WebStorm is okay. i don't mind jetbrains usual software, resharper is the bomb [16:23] pyrotechnick: it needs a bunch of work though [16:23] bingomanatee: no - what is it? [16:24] asimismo has joined the channel [16:24] pyrotechnick: it's like a web-developer's IDEA [16:24] pyrotechnick: http://www.jetbrains.com/products.html [16:24] thinkaxelthink has joined the channel [16:24] pyrotechnick: kinda like IDEA with the java and native dev stuff stripped out [16:26] broofa has joined the channel [16:26] fission6: can someone recommend me a yaml module, i am trying to use what npm install yaml gave me but its choking on all but trivial yaml files [16:27] CrabDude has joined the channel [16:28] briznad has joined the channel [16:29] mattopenstack has joined the channel [16:31] fission6: damn js-yaml isn't fully compliant [16:32] pyrotechnick: fork it. [16:32] eazyigz_ has joined the channel [16:32] pyrotechnick: or ask TJ nicely [16:33] fission6: i mean what can i do but wait :( [16:33] fission6: anxiously [16:33] pyrotechnick: fork and hack it [16:33] pyrotechnick: if it runs on node 0.3 ill take a quick look [16:33] pyrotechnick: is it erorring out [16:33] fission6: id love to but i got like 2 other projects i am dedicated to [16:33] eazyigz_: I wish to turn console output of system commands into a JSON object and present it on the client in a neatly formatted way. What is the best templating library for this? [16:33] fission6: well its erroring out but its because its not fully yaml spec compliant [16:34] fission6: pyrotechnick: its choking an yaml compliant files for "advanced" tokens like > and crap [16:34] pyrotechnick: fission6: maybe that's a better option [16:34] pyrotechnick: getting a yaml-json converter [16:34] pyrotechnick: then reading that into node [16:34] fission6: hmmm [16:34] pyrotechnick: what kind of environment must this run it [16:34] pyrotechnick: is it just for config? [16:34] pyrotechnick: or documents? [16:35] hornairs has joined the channel [16:35] pyrotechnick: streaming or static on disk? [16:35] fission6: yes well config and documents [16:35] tjholowaychuk: fission6: its not even nearly compliant really [16:35] pyrotechnick: big documents? [16:35] fission6: static on disk [16:35] pyrotechnick: documents coming in off the wire? [16:35] pyrotechnick: ok [16:35] fission6: not large at all [16:35] fangel has joined the channel [16:35] fission6: i could def convert yaml to json but i dont see why that would be any differnt then what js-yaml would be doing? [16:35] mattopenstack has joined the channel [16:36] Aikar: anyone experienced with vows able to answer: how can i run a test suite only after another test has returned successfully. ie test a server is listening correctly, then run tests on the server [16:36] pyrotechnick: i mean utilise a well-established converter [16:36] brianm has joined the channel [16:36] fission6: Aikar: callback? [16:36] fission6: pyrotechnick: ill consider thank you. [16:36] dguttman has joined the channel [16:36] Aikar: fission6: i dont know the syntax for doing that [16:36] Aikar: it only shows callbacks in regards to a specific topic [16:36] tjholowaychuk: fission6: yaml.js has not really been touched since feb last year :( lol [16:36] fission6: i dont know vows so i am just guessing, dont want o lead you down the wrong path [16:37] fission6: yea [16:37] fission6: hm ok ill convert yaml files to json [16:37] fission6: that should work [16:37] pyrotechnick: fission6: tell aikar that vows returns an integer from 0-the number of failed tests [16:37] pyrotechnick: 0 means no errors [16:37] pyrotechnick: if 0 then run the other tests [16:37] pyrotechnick: he's blocked me [16:38] fission6: i think he doesn't know how to create the dependancy not the check for it [16:38] pyrotechnick: chain them? [16:38] pyrotechnick: nested [16:38] pyrotechnick: callbacks [16:38] fission6: i would have assumed a callback [16:38] pyrotechnick: the usual [16:38] fission6: right [16:38] pyrotechnick: yeah it is [16:39] matjas_ has joined the channel [16:40] isaacs has joined the channel [16:40] zorzar has joined the channel [16:42] m64253 has joined the channel [16:42] sriley has joined the channel [16:42] pyrotechnick: fission6: http://dirk.net/2010/08/05/convert-between-xml-hash-yaml-json-in-ruby-conversion-cheat-sheet/ [16:42] pyrotechnick: u cud easily use ruby [16:42] pyrotechnick: so yaml-ruby-json [16:43] fission6: eh i would like a command line tool or python at worst [16:43] pyrotechnick: python would be just as good [16:43] pyrotechnick: yeah [16:43] pyrotechnick: was going to say [16:43] fission6: ill review some options [16:43] pyrotechnick: not a ruby fan? [16:43] fission6: thanks [16:43] fission6: never used it [16:43] pyrotechnick: you should FOSS it [16:43] fission6: ? [16:43] pyrotechnick: until node-yaml is fixed [16:43] pyrotechnick: it would be useful to people [16:43] fission6: FOSS it? [16:43] pyrotechnick: open source [16:44] tjholowaychuk: yaml is nice [16:44] tjholowaychuk: but its not really much use to node [16:44] pyrotechnick: gist me an example of one of your more complex files [16:44] pyrotechnick: tjholowaychuk: i imagine he has legacy stuff he needs [16:44] tjholowaychuk: hence why im not rewritting it [16:44] pyrotechnick: or is interfacing something else [16:44] CrabDude has joined the channel [16:44] pyrotechnick: i doubt he's configuring his apps with yaml [16:44] pyrotechnick: right fission6? [16:44] fission6: not for configuration it was a concept for writing test scripts in yaml [16:45] pyrotechnick: ahh [16:45] pyrotechnick: try coffee man [16:45] fission6: which was working nicely in python [16:45] pyrotechnick: it's object syntax is almost compatible with yaml [16:45] fission6: i am using coffee to create the drive to execute the test script [16:45] fission6: driver [16:45] bartt has joined the channel [16:45] pyrotechnick: yeah why not just use coffee for the tests too [16:45] pyrotechnick: it's almost yaml [16:45] fission6: right [16:45] fission6: this could work [16:45] pyrotechnick: there's only some minor differences [16:45] pyrotechnick: i was going to suggest that from the start but i usually get flamed [16:45] pyrotechnick: !union [16:46] fission6: like create test_script.cofffee vs test_Script.yaml [16:46] Aikar: :/ its weird seeing fission talk to himself lol [16:46] fission6: and just include the coffee script [16:46] colinclark has joined the channel [16:46] pyrotechnick: i wish Aikar would just shut up or give it up at least [16:46] fission6: i guess it would be more direct [16:46] pyrotechnick: it's bordering on bullying [16:46] bingomanatee: ACTION writes his coffeescript in PHP [16:46] pyrotechnick: not that i care but i just feel sad he's trying to cause such a disturbance in here [16:46] Aikar: lolz [16:47] pyrotechnick: he is the _only_ person with a problem with me in this room as far as i am aware [16:47] bingomanatee: All you have to do is create an XML file with the underlying data in it and run it through a dom parser. [16:47] pyrotechnick: and everytime i speak he has some kind of smart comment to say about me [16:47] pyrotechnick: we need an op badly [16:47] bingomanatee: Its so "simple"! [16:47] fission6: so just create flat coffee scripts to hold what would have been in the yaml files [16:47] pyrotechnick: yep [16:48] pyrotechnick: u cud make a dsl too [16:48] pyrotechnick: look at zappa [16:48] pyrotechnick: or on the wiki for coffeescript [16:48] pyrotechnick: there's some tutes on the wiki and zappa is a reference implementation [16:48] fission6: what do you mean by dsl [16:48] tjholowaychuk: oh how i do not miss ruby dsls [16:49] tjholowaychuk: fission6: domain specific language [16:49] pyrotechnick: haha tjholowaychuk [16:49] pyrotechnick: tjholowaychuk you're like [16:49] pyrotechnick: javascript's guardian angel [16:49] fission6: i may just create my own parser for the scripts who knows [16:49] tjholowaychuk: :) [16:49] pyrotechnick: sent from heaven above to keep it pure and standard [16:49] dustinwhittle has joined the channel [16:49] pyrotechnick: anyone subscribe to node mailing lists? [16:49] pyrotechnick: that's what they're talking about ATM [16:49] pyrotechnick: establishing a guardian angel [16:50] pyrotechnick: to try and keep node from being bloated etc [16:50] pyrotechnick: keep things like coroutines our [16:50] pyrotechnick: our* [16:50] pyrotechnick: FFFFFF [16:50] pyrotechnick: sorry new keyboard, still getting used to it [16:51] glenngillen has left the channel [16:51] coffee has joined the channel [16:52] losing has joined the channel [16:52] fairwinds_ has joined the channel [16:52] Xd1358 has joined the channel [16:52] Xd1358 has left the channel [16:53] tomaw has joined the channel [16:53] pyrotechnick: !union [16:54] bingomanatee: Are you buying into the Dvorak conspiracy [16:56] Aikar: that guy is a huge troll, should just put him on ignore :/ [16:56] kiddphunk has joined the channel [16:57] brapse has joined the channel [16:58] fission6: what would you recommend me for just creating a light text file interpretor for parsing the test scripts vairables? [16:58] fission6: basically i want to create a light parser [16:58] fission6: tjholowaychuk: may be you have some insight here [16:58] tjholowaychuk: what are you doing? [16:58] tjholowaychuk: fixtures? [16:59] pyrotechnick: PEG.js [16:59] tjholowaychuk: pfff [17:00] slloyd has left the channel [17:01] fission6: tjholowaychuk: i want to create a light text file which holds meta data around testing, and then create a driver in node.js to read and execute the details inside the test script file [17:01] tjholowaychuk: json..? [17:01] tjholowaychuk: what is wrong with that [17:01] zomgbie has joined the channel [17:01] fission6: that would be fine for me [17:01] fission6: but i want something more intuitive to write a test script [17:02] fission6: like page : http://www.google.com, test: check test [17:02] bronson_ has joined the channel [17:02] aheckmann has joined the channel [17:02] tjholowaychuk: json is really easy and everyone knows it [17:02] fission6: so liek creating a light interpretor [17:02] slloyd has joined the channel [17:02] tjholowaychuk: if you create some adhoc thing people wont know it [17:02] pyrotechnick: im not sure he cares, i think he wants to just try [17:02] pyrotechnick: like you said [17:03] fission6: well just for knowledge sake [17:03] pyrotechnick: designing languages, even if they're markup ones, is fun [17:03] tjholowaychuk: well a simple regexp will do [17:03] broofa has joined the channel [17:03] pyrotechnick: fission6: PEG.js for anything complicated [17:03] tjholowaychuk: or look into recursive descent parsing [17:03] tjholowaychuk: if you want to learn, hand code them [17:03] fission6: ok. i will start with json, then later convert some sort of serialzed test scruot in json on top of it [17:03] pyrotechnick: ryah: are you around? [17:03] Ori_P has joined the channel [17:03] fission6: ill start with json, what can i use to read in a json object from a file [17:03] pyrotechnick: ryah: have you tried registering #node.js? [17:04] bartmax has joined the channel [17:05] pyrotechnick: ryah: http://blog.freenode.net/2010/06/group-registration-form-verifications/ they want you to do this GRF thing [17:05] unomi has joined the channel [17:06] springmeyer has joined the channel [17:07] syntheze has joined the channel [17:09] noahcampbell has joined the channel [17:09] amerine has joined the channel [17:11] pyrotech1ick has joined the channel [17:11] stephank has joined the channel [17:12] pyrotech1ick has left the channel [17:12] pyrotech1ick has joined the channel [17:12] pyrotech1ick has left the channel [17:13] AfterDark has joined the channel [17:13] AfterDark has left the channel [17:13] pyrotechnick: hacking [17:13] jakehow has joined the channel [17:14] spetrea has joined the channel [17:14] spetrea: can someone give me an honest oppinion on this ? https://gist.github.com/798818 [17:14] strmpnk has joined the channel [17:14] sctb has joined the channel [17:16] sctb: Hi folks, is there an easy/simple way to start a REPL that shares the current scope? I'd like to run 'node script.js' and have all of the 'var x = ...' and 'function blah () ...' variables available in a REPL. [17:16] pyrotechnick: spetrea: in your test you should forcefully make them execute at different times [17:16] torvalamo: sctb, no [17:17] andrzejsliwa has joined the channel [17:17] pedrobelo has joined the channel [17:17] spetrea: pyrotechnick: yeah, for fixed times it will work too [17:18] pyrotechnick: spetrea: yeah i just think when you show people [17:18] pyrotechnick: maybe even have both [17:18] spetrea: pyrotechnick: anyway, random is like saying "I tested with all this stuff, and it's like 100% bulletproof" [17:18] spetrea: pyrotechnick: yes, that's correct, I will add that [17:18] void_ has joined the channel [17:18] pyrotechnick: also does that have any node-specific code? [17:18] fission6: why am i getting illegal token issues with this line from a coffeescript, script = JSON.parse '{this : "this is a test"}' [17:18] pyrotechnick: doesn't look like it right? [17:18] pyrotechnick: fission6: json keys need to be quoted as far as i am aware [17:19] danoyoung has joined the channel [17:19] pyrotechnick: it could also be the this [17:19] spetrea: pyrotechnick: it was written & tested in node.js [17:19] pyrotechnick: spetrea: yeah i'm just thinking [17:19] danoyoung has left the channel [17:19] pyrotechnick: if you can it would be nice as a runnable webpage [17:19] halfhalo: ok, time to work on mah regex module [17:19] pyrotechnick: with some simple graphics you know some dom stuff to show it working [17:19] abraham has joined the channel [17:20] torvalamo: 'this' can't possibly be a legal hash key..? [17:20] sirganya: anyone ever have any problems with writeStream writing multiple times while appending? [17:21] tjholowaychuk: torvalamo: obj.this is valid [17:21] pyrotechnick: fission6: it's the quotes [17:21] fission6: yea i change it to this {"this" : "is a test"} [17:21] fission6: worked fine [17:21] fission6: thanks [17:21] pyrotechnick: coffee-eval: JSON.parse("""{"this": "foo"}""") [17:21] Guest30454: {"this":"foo"} [17:21] pyrotechnick: coffee-eval: JSON.parse("""{this: "foo"}""") [17:21] Guest30454: SyntaxError: Unexpected token ILLEGAL [17:21] tjholowaychuk: coffee-eval: weee [17:21] Guest30454: ReferenceError: weee is not defined [17:22] tjholowaychuk: coffee-eval: weee = 'waaa' [17:22] Guest30454: "waaa" [17:22] fission6: why so many quotes? [17:22] tjholowaychuk: coffee-eval: weee = 'waaa'; weee [17:22] Guest30454: "waaa" [17:22] pyrotechnick: fission6: because douglas crockford is bat-shit crazy [17:22] peol has joined the channel [17:22] pyrotechnick: and also to avoid clashes with keywords [17:22] peol has joined the channel [17:22] torvalamo: that too [17:22] fission6: coffee-eval: JSON.parse('{"this": "foo"}') [17:22] Guest30454: {"this":"foo"} [17:22] fission6: this seems to work [17:22] pyrotechnick: ohh [17:22] pyrotechnick: you mean in my demo [17:22] pyrotechnick: not in json spec [17:22] fission6: yea haha [17:22] pyrotechnick: umm because i was interpolating some stuff into it [17:22] pyrotechnick: then i changed it [17:23] pyrotechnick: sorry to confuse you [17:23] fission6: cool. [17:23] fission6: ned lunch then ill continue my journey [17:23] pyrotechnick: but yeah [17:23] pyrotechnick: http://www.json.org/ [17:23] booths has joined the channel [17:23] q_no has joined the channel [17:24] pyrotechnick: coffee-eval: JSON.parse '{foo: "bar"}' [17:24] Guest30454: SyntaxError: Unexpected token ILLEGAL [17:24] pyrotechnick: coffee-eval: JSON.parse '{"foo": "bar"}' [17:24] Guest30454: {"foo":"bar"} [17:24] pyrotechnick: json needs quotes even if the keyword is not reserved [17:24] trotter has joined the channel [17:24] pyrotechnick: whereas i think v8 or at least some other browsers dont mind unless it's a keyword [17:25] pyrotechnick: v8: JSON.parse('{"this": "foo"}') [17:25] v8bot: pyrotechnick: {"this": "foo"} [17:25] pyrotechnick: v8: JSON.parse('{this: "foo"}') [17:25] v8bot: pyrotechnick: SyntaxError: Unexpected token ILLEGAL [17:25] pyrotechnick: v8: JSON.parse('{bar: "foo"}') [17:25] v8bot: pyrotechnick: SyntaxError: Unexpected token ILLEGAL [17:25] pyrotechnick: v8 cares [17:25] v8bot: pyrotechnick: v8 is no longer supported (except in PM). Try v8: or v8> [17:25] pyrotechnick: some dont [17:25] sth: I always stringify before sending json [17:25] ErikCorry: V8 cares now [17:25] boaz has joined the channel [17:25] ErikCorry: There were a lot of bugs filed [17:25] pyrotechnick: good [17:25] pyrotechnick: so it should [17:25] charlenopires has joined the channel [17:25] eddanger has joined the channel [17:25] ErikCorry: And JSON parsing was tightened up a lot [17:25] pyrotechnick: it was specced to have quotes [17:25] pyrotechnick: so it's good [17:26] ErikCorry: The idea is that all implementations should accept the same [17:26] ErikCorry: And reject the same [17:26] Aikar: well, sctb's question was actually yes that it was possible to a degree [17:26] pyrotechnick: i like that v8 isn't afraid to make breaking changes to do the right thing [17:26] ErikCorry: Oh we are very afraid to make breaking changes. [17:27] pyrotechnick: what chrome did that go live in? [17:27] bradleymeck has joined the channel [17:27] ErikCorry: Don't know. [17:27] pyrotechnick: where's browserling when you need it [17:27] ErikCorry: Whatever version it was it's probably gone now. [17:27] Aikar: var someLocalVar = {foo: 'bar'}; repl = require('repl'); repl.start(); repl.repl.context.someVar = someLocalVar; [17:27] Aikar: could do someVar.foo in the REPL [17:27] pyrotechnick: ErikCorry: they didnt like it? [17:27] pyrotechnick: would you actually build chromium with a patched v8? [17:28] zemanel has joined the channel [17:28] ErikCorry: What I mean is that maybe it was introduced in Chrome 5 [17:28] pyrotechnick: then removed? [17:28] ErikCorry: But Chrome 5 is now gone [17:28] ErikCorry: Replaced by 8 [17:28] ErikCorry: The new rules in JSON didn't go away. [17:29] pyrotechnick: ahh cool [17:29] pyrotechnick: how many people winged? [17:29] ErikCorry: Chrome gets autoupdated so you will almost never see an old version of Chrome access your web site. [17:29] pyrotechnick: that seems like a fairly large change [17:29] bradleymeck: what do ppl want in an email sender API (all i can think of is setting headers, to/from, and the body) [17:29] ErikCorry: So it makes little difference now whether it was Chrome 4, 5 or 6 the change was made. [17:29] pyrotechnick: bradleymeck: multi-part [17:29] Aikar: bradleymeck: the ability to send email ;) [17:30] ErikCorry: Well everyone used to use a third party json.js file. [17:30] pyrotechnick: ErikCorry: eww [17:30] bradleymeck: pyrotechnick, thats just a form of body i thought? [17:30] ErikCorry: And if they continue to use that then it overwrites the one that comes with V8 [17:30] ErikCorry: So they continue to get whatever that used to do. [17:30] ErikCorry: But if they stop loading json.js they get the built in semantics. [17:30] ttpva has joined the channel [17:30] ErikCorry: Which are strict. [17:31] pyrotechnick: ErikCorry: are you a paid v8 dev? a googler? or committer? [17:31] luke` has joined the channel [17:31] ErikCorry: Yup [17:31] ErikCorry: All 3 [17:31] pyrotechnick: ErikCorry: did you have anything to do with typed arrays? [17:31] ErikCorry: Heh. [17:31] ErikCorry: Not a lot. [17:31] pyrotechnick: ErikCorry: what's your opinion? [17:32] ErikCorry: I haven't kept up with standardization there. [17:32] pyrotechnick: ErikCorry: we've found them to be really performant in some cases, then slower in others when you really wouldn't expect it. especially if they're small [17:32] pyrotechnick: that's cool [17:32] ErikCorry: OK. Not sure why that would be. [17:32] pyrotechnick: i think because of the overhead [17:32] pyrotechnick: they have some extra methods and properties [17:33] ErikCorry: Examples? [17:33] stepheneb_ has joined the channel [17:33] ErikCorry: Benchmarks? [17:33] pyrotechnick: of benchmarks? [17:33] ErikCorry: Yeah. [17:33] pyrotechnick: we have some on jsperf [17:33] pyrotechnick: ill have to dig them up [17:33] daniellindsley has joined the channel [17:33] pyrotechnick: but i dont really trust the microbenchmarks [17:34] pyrotechnick: jsperf at least calibrates the benchmark which is nice [17:34] pyrotechnick: but it's still an abstract benchmark [17:34] pyrotechnick: we've literally noticed changes in framerate [17:34] pyrotechnick: in a real world app [17:34] ErikCorry: You need to put a loop in your snippet on jsperf. It tries too hard to measure things that only take a few us [17:34] astoon has joined the channel [17:34] pyrotechnick: yeah there's all sorts of tricks, so you think a loop? [17:34] pyrotechnick: sometimes it just calibrates forever [17:35] montylounge has joined the channel [17:35] pyrotechnick: or resolves some forsakenly large amount of iterations [17:35] ErikCorry: I think the calibrating forever is mainly for very small snippets. [17:35] pyrotechnick: yeah [17:35] pyrotechnick: like an array access [17:35] pyrotechnick: or something stupid [17:36] Fuld: Anyone know of a good opensource sentiment analysis engine? [17:36] pyrotechnick: how pumped is the v8 team for WebGL? [17:36] pyrotechnick: and ndoe [17:36] pyrotechnick: node* [17:36] ErikCorry: On a scale from 1 to 10? [17:36] pyrotechnick: just [17:36] pyrotechnick: compared to the WebGL team i guess [17:36] pyrotechnick: if u even deal with them [17:36] pyrotechnick: otherwise yeah 1-10 [17:36] ErikCorry: We add what it takes. [17:37] pyrotechnick: i bet you were thrilled with having to do native types [17:37] pyrotechnick: was that a mission? [17:37] stepheneb has joined the channel [17:37] ErikCorry: To be honest the thing that motivates the V8 team is benchmarks. Sending us a nice self-contained benchmark where we suck is probably the best way to get our attention. [17:37] pyrotechnick: ok [17:37] ErikCorry: As for node.js we think it's way cool. [17:38] ErikCorry: But it's not really our job to optimize for it. Patches welcome, as they say. [17:38] pyrotechnick: yeah for defs. [17:38] ErikCorry: Luckily lots of optimizations for the browser also help node.js so it's all good. [17:38] pyrotechnick: github.com/feisty [17:39] pyrotechnick: we're doing MMO [17:39] pyrotechnick: coffeescript for chromium/node.js [17:39] tjholowaychuk: pyrotechnick: how are you guys funding it? [17:39] Fuld: ErikCorry, can you guys make a binary xmlhtttprequest() :( [17:39] pyrotechnick: two of us landed dream node jobs [17:39] pyrotechnick: just a week or two ago [17:39] pyrotechnick: Fuld: they will. firefox has it. it wont be long [17:40] tjholowaychuk: whoop [17:40] tjholowaychuk: doing the game? [17:40] tjholowaychuk: or other stuff [17:40] pyrotechnick: ^w^ [17:40] Fuld: cool [17:40] pyrotechnick: mainly other stuff but we're also making their MMO baby come alive too on the side [17:40] pyrotechnick: ad servers and some finance stuff [17:40] tjholowaychuk: ah cool [17:40] pyrotechnick: is their bread and butter [17:40] Fuld: So how fast is v8 compared to C# now ErikCorry? [17:40] pyrotechnick: but yeah everything's been pretty much 100% transferable [17:41] pyrotechnick: we're being paid to learn how to write an MMO, what we sat around 3 weeks ago and dreamed of some day doing [17:41] pyrotechnick: all i will say is that it pays to FOSS [17:41] ErikCorry: Don't know how fast V8 is vs C# [17:41] tjholowaychuk: totally [17:41] pyrotechnick: maurice (zappa, coffeekup, etc) put in a good word for us since we helped him out [17:42] pyrotechnick: mainly just with some soda tests and node compatibility stuff [17:42] ErikCorry: C# should be faster. Much less dynamic language. [17:42] pyrotechnick: i drove myself into the ground for 6 months FOSSing on node [17:42] pyrotechnick: and 6 before that just screwing around [17:42] balaa has joined the channel [17:42] pyrotechnick: dropped out of uni [17:42] pyrotechnick: etc etc [17:42] pyrotechnick: hoping it would pay off [17:42] tjholowaychuk: nice nice lol [17:42] tjholowaychuk: never went, im sure you will be fine :) [17:43] pyrotechnick: yeah well im going back this year [17:43] pyrotechnick: all i have is final project [17:43] pyrotechnick: i tried to do WebGL but i wasnt really ready and neither was uni or the groups they put me in [17:43] pyrotechnick: so i [17:43] ErikCorry: Took me about 2 years to do my final project. [17:43] pyrotechnick: put it off until later this year [17:43] pyrotechnick: when hopefully it's final and there's enough frameworks to make an actual game and not suck too hard [17:43] tahu has joined the channel [17:43] Fuld: omg, this is awesome. [17:44] ErikCorry: Glad I did it eventually though. Could never have got a job hacking V8 without my M.Sc. [17:44] Fuld: Someone made a node.js module for this please: http://tadm.sourceforge.net/ [17:44] Fuld: Maybe I will when I know more about node :) [17:44] pyrotechnick: Fuld: that's cool man [17:44] pyrotechnick: we want to do some cool plays on science in our game [17:44] pyrotechnick: this could come in handy [17:44] pyrotechnick: you could just emscripten it for now [17:44] warz has joined the channel [17:44] rauchg_ has joined the channel [17:44] pyrotechnick: c++->LLVM->js [17:44] pyrotechnick: is it relatively small? [17:45] Fuld: ErikCorry: What does dynamic mean in this context? Stuff like eval() and the typing? [17:45] Fuld: Sorry, I have much to learn coming from C [17:46] pyrotechnick: Fuld: http://code.google.com/p/emscripten/ [17:46] pyrotechnick: "Emscripten is an LLVM-to-JavaScript compiler. It takes LLVM bitcode (which can be generated from C/C++, using llvm-gcc or clang, or any other language that can be converted into LLVM) and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run)." [17:46] pyrotechnick: it's ugly as sin. [17:46] pyrotechnick: but it works and saves you weeks of devving [17:46] pyrotechnick: if you can blackbox the code and not touch it [17:46] pyrotechnick: it's win-win [17:46] pyrotechnick: if you need to bash it into shape [17:46] pyrotechnick: don't even bother it's hideous [17:46] jchris has joined the channel [17:47] pyrotechnick: it's perfect for libraries like that [17:47] pyrotechnick: which dont make sys calls etc [17:47] pyrotechnick: math libraries [17:47] pyrotechnick: physics [17:47] pyrotechnick: statistics [17:47] pyrotechnick: you know [17:51] bmavity has joined the channel [17:51] tahu has joined the channel [17:52] statim has joined the channel [17:52] cloudhead has joined the channel [17:53] andris1 has joined the channel [17:54] hosh_office has joined the channel [17:54] shockie has joined the channel [17:54] eresair has joined the channel [17:54] muk_mb has joined the channel [17:55] stagas has joined the channel [17:55] pyrotechnick: but yeah ErikCorry you guys are doing a great job [17:55] andrzejsliwa has joined the channel [17:55] pyrotechnick: we're very happy to be targetting crankshaft and are eagerly waiting for it to hit the public [17:55] pyrotechnick: <3 chrome autoupdate [17:56] pyrotechnick: it's actually been hard to keep up with chrome's performance. we started out in firefox having to nerf our ideas to make the game a reality and now it's become a case of just not knowing what to do with the power [17:56] pyrotechnick: especially on good hardware [17:56] daniellindsley has left the channel [17:56] muk_mb has joined the channel [17:56] brapse has joined the channel [17:57] pyrotechnick: binary XHR would be sweet though. is that a v8 or chrome thing? [17:57] pyrotechnick: i imagine it's v8 right? [17:57] pengwynn has joined the channel [17:57] asimismo has joined the channel [17:57] jacobolus has joined the channel [17:58] ryah: chrome [17:58] ryah: well, html5 :) [17:58] pyrotechnick: ryah: freenode wants you to submit some kind of registration for the channel if you havent, when you have the time [17:58] teemow has joined the channel [17:58] ryah: i have, years ago [17:59] pyrotechnick: yeah they said you might need to do it again so you're on priority [17:59] Coal has joined the channel [17:59] pyrotechnick: they have thousands of spam channels to wade through [17:59] Fuld: Anyone know of someone that generates a tag cloud based on tweets? But doing it from the adjectives used to describe something like a company. For example, Apple's cloud might have: "cult" "awesome" "shiny" etc. [17:59] Fuld: err, something [17:59] pyrotechnick: Fuld: tjholowaychuk gave bingomanatee some stuff for tagclouds [17:59] pyrotechnick: ask either [17:59] tjholowaychuk: what? [17:59] tjholowaychuk: lol [17:59] Matt__ has joined the channel [17:59] yozgrahame has joined the channel [18:00] pyrotechnick: for noogle? [18:00] pyrotechnick: or have i been misinformed [18:00] Fuld: tjholowaychuk bingomanatee, show me the goods on this tag cloud thing. [18:00] tjholowaychuk: i didnt do anything [18:00] Fuld: hmm [18:00] Metapony: Fuyld, check the open calais api [18:00] Eber has joined the channel [18:00] Aikar: with the new http.get/request, for the response, will there always be only 1 data event, or do you have to multipart reassemble it and wait for an end ? [18:00] Fuld: ACTION would rather look for an existing node.js project that does tag clouds than start his own [18:01] pyrotechnick: okay apparently it was just some sorting code [18:01] torvalamo has joined the channel [18:01] eazyigz_: I tried the json-template library from google code, but am so disappointed with it! The documentation for JavaScript is terrible [18:01] pyrotechnick: and by "gave" maybe he meant he stole it from a gist or one of your repos [18:01] pyrotechnick: i apologise [18:01] pyrotechnick: david has confuzzled me [18:01] ilpoldo has joined the channel [18:02] Metapony: Fuld, use an api ere ye get into python and conceptnet and not many have come back from those dark moors [18:02] pyrotechnick: anyway Fuld it's not the twitter code anyway it's just generic tag cloud stuff [18:02] pyrotechnick: but it's on github as noogle if it helps [18:02] pyrotechnick: ask bingomanatee [18:02] Fuld: Metapony, yeah. [18:02] Fuld: I don't want to use some web service API though. I want to be able to contribute it. [18:02] ryah: pyrotechnick: submitted a registration again [18:03] Fuld: And then let others contribute as well if they find what I'm working on useful :) [18:03] ryah: pyrotechnick: if you could make it happen i would be thankful [18:04] pyrotechnick: ryah: i'll keep on their butts for you [18:04] pyrotechnick: ryah: you be awesome at node and ill run this errand [18:04] pyrotechnick: but you have to promise never to ban me when you get op [18:04] svenlito_ has joined the channel [18:05] dgathright has joined the channel [18:05] Aikar: ryah: http.get the res.on('data') can that be multipart or does node assemble it to 1 string and only 1 data event fires? [18:05] Fuld: Essentially, this is what I'm building: something that mines tweets for a keyword of anything like a company, nation, idea, etc. Then it takes the adjectives and adverbs acting on that keyword in the different tweets and makes it into a tag cloud of adjectives/adverbs. [18:05] pyrotechnick: no matter how much of a troll i may be [18:05] pyrotechnick: Fuld: it sounds wicked [18:05] ryah: Aikar: no [18:05] ryah: Aikar: you need to pass it through a multipart parser [18:05] Aikar: ryah: ok [18:05] Fuld: Does anyone know if anyone has done this already as a web app? [18:05] Aikar: ryah: 'end' is when its done? [18:05] ryah: Aikar: yes [18:05] Eber: Guys... Does anyone knows a good spot where I can teach something like a programming language remotly? [18:06] pyrotechnick: if there's ever a drupal or wordpress for node god-forbid i can see something like that tweet cloud being a popular plugin [18:06] pyrotechnick: Eber: you on mac? [18:06] Eber: Somewhere with a "white-board" where I can type and people can "watch"?!? [18:06] Eber: pyrotechnick: nope... linux... [18:06] pyrotechnick: hmm [18:06] pyrotechnick: gobby will let you code together [18:06] pyrotechnick: vnc is another option [18:06] pyrotechnick: google drawings lets you draw [18:06] pyrotechnick: together [18:06] pyrotechnick: bepsin was cool but they ditched it :( [18:07] timmywil has left the channel [18:07] Eber: tks! [18:07] benburkert has joined the channel [18:07] pyrotechnick: there's more [18:07] kristsk has joined the channel [18:07] pyrotechnick: wave has some syntax highlighting bots [18:07] Eber: is it still on? [18:07] pyrotechnick: they were a bit slow last time i used them but i guess they're faster now [18:07] eddanger has joined the channel [18:08] pyrotechnick: yeah it'll be up for this year at least i believe. they're not shutting it down until someone steps up to host it [18:08] pyrotechnick: which may be never [18:08] pyrotechnick: if u sign in, in the top left there's a link to the blog post explaining it all [18:08] mape: Will (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. be removed? [18:09] mape: Or should I just upp the listeners and forget about it? [18:09] pyrotechnick: wave is kind of great, if it's not too big and you dont have to run it. you can discuss and code in the same place. drop in pictures, use drawing widgets etc [18:09] pyrotechnick: it's a good platform still [18:09] ryah: mape: maybe you should investigate it [18:09] pyrotechnick: look for some syntax highlighting bots to make things prettier [18:10] ryah: mape: i'm interested in your experience [18:10] mape: ryah: Don't think it is something broken, I just have a ton of users connecting to a socket.io server [18:10] ryah: mape: so what is getting many listeners? [18:11] TomsB has joined the channel [18:11] mape: ryah: https://gist.github.com/f793ec9ddb44fb0052e4 [18:12] ROBOTARMY has joined the channel [18:12] bartt has joined the channel [18:14] mape: But yeah, seems only the xhr clients has that issue [18:14] eazyigz_: what templating library would you recommend for rendering JSON data? [18:15] astoon has joined the channel [18:18] zzak has joined the channel [18:18] dguttman has joined the channel [18:19] pyrotechnick: eazyigz_: do you need it to be editable? [18:19] eazyigz_: no [18:19] sechrist has joined the channel [18:19] pyrotechnick: and push changes back to server [18:20] eazyigz_: just display it neatly and readable [18:20] pyrotechnick: are you using javascript? [18:20] eazyigz_: pyrotechnick: as opposed to what [18:20] pyrotechnick: coffee/haxe/etc, i assume js [18:20] pyrotechnick: you could probably just put it in a pre tag [18:20] pyrotechnick: but if you want to actually style it and stuff [18:20] sechrist: was I spamming the channel with reconnects recently? [18:20] pyrotechnick: there's a few options [18:20] sechrist: I woke up and was +b from like 6 channels [18:21] eazyigz_: pyrotechnick: i think the
 option is worth a try
[18:21] pyrotechnick: if you just want to display formatted json it's a good option
[18:21] pyrotechnick: if you want to style it i can link you the template engines
[18:21] mape: rauchg_: Around?
[18:21] Aikar: sechrist: yes
[18:21] Aikar: all night last night
[18:21] Aikar: well evening too
[18:21] sechrist: daaamn
[18:22] pdelgallego__ has joined the channel
[18:22] sechrist: znc fail
[18:22] pdelgallego_ has joined the channel
[18:22] eazyigz_: pyrotechnicK: i just want to see it hierarchically structured
[18:22] eazyigz_: no all on one line
[18:22] Aikar: run irssi on a remote server under screen and just ssh and attach from w/e your at ;)
[18:22] pyrotechnick: okay eazyigz_ use pre, im not sure how you'd actually get it formatted on new lines, you could so something filthy like console.dir
[18:23] pyrotechnick: but you'd have to wrap it, redirect stdout or something
[18:23] pyrotechnick: maybe someone else knows
[18:23] mape: pyrotechnick: JSON.stringify(obj, null, '  ');
[18:23] mape: makes it fancyish
[18:24] pyrotechnick: cool
[18:24] tanepiper: sechrist: i wouldn't know, i turned off join/parts so i nevr notice :D
[18:24] pyrotechnick: there you go then eazyigz_
[18:24] pyrotechnick: problem solved.
[18:24] sechrist: Aikar: that's no good
[18:24] sechrist: I like my gui
[18:25] sechrist: embedded images and youtube videos etc
[18:25] statim has joined the channel
[18:26] pyrotechnick: mape FYI JSON.stringify takes a number as the 3rd param
[18:26] pyrotechnick: instead of multiple spaces
[18:26] pyrotechnick: pretty nifty
[18:26] jpick has joined the channel
[18:27] eazyigz_: mape:  would that append blank spaces after each element in the JSON?
[18:28] pyrotechnick: eazyigz_: the third param is "space" — indentation
[18:28] pyrotechnick: if it's '\t' it's a tab
[18:28] pyrotechnick: if it's 2 it's 2 spaces
[18:28] pyrotechnick: if it's '>>' it's ">>"
[18:28] eazyigz_: pyrotechnic: actually the 
 option works great, I just put 
's into my JSON [18:28] pyrotechnick: so not after, but before each indented line [18:29] pyrotechnick: eazyigz_: cool. there's also tree structures i've seen [18:29] pyrotechnick: that allow you to display json as a tree, with collapse/expand nodes [18:29] pyrotechnick: but that may be overkill [18:29] mraleph has joined the channel [18:29] eazyigz_: what is the 'null' in the 2nd param of JSON.stringify? [18:30] statim has left the channel [18:30] pyrotechnick: replacer [18:30] pyrotechnick: it's mapped over each node [18:30] pyrotechnick: and you can filter nodes based on their type [18:30] eazyigz_: ah, so null means do not filter [18:30] pyrotechnick: yep it's just pass-through [18:30] pyrotechnick: it's if you need to reformat certain types [18:31] pyrotechnick: or all of them... [18:31] pyrotechnick: WTB named params [18:31] eazyigz_: reformat like what, type coercion? [18:31] pyrotechnick: yep [18:31] pyrotechnick: generally that's what it's used for [18:31] eazyigz_: cool, the 3rd param of JSON.stringify approach is cleaner than
[18:31] pyrotechnick: but you could format every node if you dont like the standard formatting
[18:31] pyrotechnick: colorize etc.
[18:32] pyrotechnick: well pre preserves line spaces
[18:32] pyrotechnick: newlines*
[18:32] robfaraj has joined the channel
[18:32] pyrotechnick: you'll still need pre
[18:32] pyrotechnick: but you wont need 
[18:32] langworthy has joined the channel [18:32] colinclark has joined the channel [18:34] saschagehlich has joined the channel [18:34] bartt has joined the channel [18:34] pyrotechnick: SubStack: alive? [18:35] evalcx has joined the channel [18:36] evalcx: helloooo.. how do i eval something in the scope of a specific module? say, my parent module..? [18:36] dgathright has joined the channel [18:37] murz has joined the channel [18:37] Aikar: evalcx: vm.runInThisContext or just plain eval? [18:37] Aikar: or evalcx do vm.runInNewContext('source', module.exports); [18:38] Matt__: Is there any way to set up a private registry for npm to manage your own js scripts? [18:38] evalcx: aikar: so in my case vm.runInNewContext('source', module.parent.exports) ? [18:39] Aikar: Matt__: setup a git repo instead and add them as submodules? [18:39] Aikar: evalcx: possibly [18:39] pdelgallego has joined the channel [18:39] Matt__: Aikar: Hm.. is that all npm's registry is? A git repo? [18:40] Aikar: Matt__: no, but that would be a cleaner solution than putting private code in a public repo :P [18:40] Aikar: Matt__: but you can install an npm format module from a git url yes [18:40] evalcx: Aikar: fanks, ill try [18:40] Aikar: npm install http://blah.com/myrepo.git . [18:41] namelessnotion has joined the channel [18:41] Matt__: Aikar: Haha yah, I guess I was wondering, is there a way to direct where you're going to publish a package? Like direct it to a private repo or... other data structure. [18:41] pyrotechnick has joined the channel [18:41] Aikar: Matt__: anything on npm is public [18:42] Aikar: Matt__: if you want to have shared libraries you use from your own project, id recommend using git and git submodules instead of npm [18:42] Matt__: Aikar: Okay, that answers my question - I'll do that then. Thanks a lot! [18:43] Aikar: or at least still store on git, i just dunno how the npm handles 'npm update' for modules installed from a url [18:43] Aikar: ugh my companies dev box blows for making externa lrequest [18:46] losing has joined the channel [18:47] Aikar: taking hours to do a git pull [18:47] bradleymeck: do they limit bandwidth?? [18:49] perlmonkey2 has joined the channel [18:49] MikhX has joined the channel [18:50] tg has joined the channel [18:50] Paul___ has joined the channel [18:53] rexington has joined the channel [18:53] Twelve-60 has joined the channel [18:54] fly-away has joined the channel [18:55] Aikar: bradleymeck: coworker said because it has to route through the network to 'get out' or something. that its meant to be effecient at internal connections lol [18:55] bradleymeck: possibly, but even then, it should have more than one way out [18:58] mandric has joined the channel [18:58] bradleymeck: does 0.3.x have a way to start up tls on a live connection rather than make a new one? [19:00] pomodoro has joined the channel [19:00] fission6: how do i export a class? [19:01] tg has joined the channel [19:01] shaver: first, you add support for classes to JavaScript [19:01] mscdex: fission6: exports.foo = function() { }; [19:01] shaver: then you assign one of them to a property of "exports" from within your module [19:02] micheil_mbp has joined the channel [19:03] ryah: fission6: https://github.com/ry/node/blob/master/lib/http.js#L789 [19:05] fission6: okay thanks guys [19:05] fission6: i was doing export rather than exports [19:05] fission6: shiiiii [19:07] zemanel: ACTION think on how porting a workflow engine to node could be great (http://incubator.apache.org/zetacomponents/documentation/trunk/Workflow/tutorial.html#introduction) [19:07] ROBOTARMY has joined the channel [19:08] moneal has joined the channel [19:09] Aikar: so i gave up on git pull from the dev server, and resorted to running a pull over TortoiseGit on windows to the mounted drive to get the update lol... [19:10] benburkert has joined the channel [19:11] mscdex: Aikar: Git Extensions is better than TortoiseGit imho [19:12] Aikar: mscdex: hmm, tortoise has worked EXTREMELY well for me, what does that provide over tortoise? [19:12] jesusabdullah: Tssch! Everybody knows the command line is the only true way to rock git [19:13] Aikar: jesusabdullah: which i was doing until my works dev server wants to download at 1kb/s for external IP's lol... [19:13] mscdex: Aikar: to me it provides a better ui [19:14] Aikar: heh, well im also use to tortoisesvn so its 'familiar' to me [19:14] Aikar: but provides everything i need quick so thats good [19:14] bingomanatee: Fuld - still here? [19:15] jesusabdullah: ACTION crosses his arms [19:15] jesusabdullah: What do you say to THAT? [19:15] bingomanatee: why? [19:15] bingomanatee: why do you think we need to know? [19:16] Max-Might has joined the channel [19:18] losing has joined the channel [19:18] Aikar: man almost friday! :( [19:19] Aikar: i take it node jobs are uncommon? Went to a JS meetup this week after work and the speaker asked me if i got to work with it at work lol, and funny enough it was first project i started on [19:20] Aikar: mainly php dev but boss knows im working with node on personal stuff so hes got me building stuff in it too :) [19:22] jamund has joined the channel [19:23] bingomanatee: You pretty much have to make your job a node job - nobody's leaning on node for full stack production. [19:23] namelessnotion has joined the channel [19:23] pyrotechnick: nobody bingomanatee? [19:23] bingomanatee: almost noobody. [19:23] pyrotechnick: right. [19:23] pyrotechnick: there's plenty though [19:24] pyrotechnick: in the grand scheme of things nobody, yes [19:24] Twelve-60 has joined the channel [19:24] pyrotechnick: still, there's plenty [19:24] bingomanatee: I mean - search for node on Craig's list or Dice - its just not there. If people are hiring node people they aren't going through recruiters or job boards. I mention node to recruiters and they give me that look that dogs get when you talk to them. [19:24] pyrotechnick: even ry would be surprised where node is being used [19:24] pyrotechnick: tilt their head sideways? [19:24] pyrotechnick: bark for more food [19:24] bingomanatee: yup. [19:25] pyrotechnick: it's very much word of mouth yes [19:25] pyrotechnick: will be for a while yet [19:25] BrianTheCoder has joined the channel [19:25] dmcquay has joined the channel [19:25] jchris has joined the channel [19:25] pyrotechnick: TBH this room and github are the best places [19:25] eazyigz_: if I run 'df' on the commandline I get a nicely formatted output table. How can I replicate this output in the same format and send it to the client? [19:25] bingomanatee: As I've said to death - til there is a domainant general purpose framework backed by node there won't be any jobs for it - at least not comparable to RoR/PHP/.NET [19:26] Metapony_ has joined the channel [19:26] bingomanatee: yep. [19:26] tilgovi has joined the channel [19:26] bingomanatee: How many fourtine 500 companies go, "Hey we need a tech - see if there's an IRC room we can recruit from." :D [19:26] kristsk: is RoR in same league as PHP/.NET ? [19:26] bingomanatee: sure why not? [19:27] Coal has joined the channel [19:27] eazyigz_: kristsk: do you like microsoft? Do you like PHP? [19:27] bingomanatee: Domainant sites have used it. Its pretty well accepted in a certain strata of companies. [19:27] bingomanatee: In some contexts, perferred over PHP / .NET [19:27] kristsk: i do not care about ms much [19:27] andrzejsliwa has joined the channel [19:28] kristsk: and athough now i get paid to do node stuff, base of things was/is php for me [19:28] bingomanatee: I saw a devastating demo of a .NET project yesterday that was done in .NET. I'll say more when they go public. [19:28] eazyigz_: kristsk: for starters .NET ties you into 100% microsoft infrastruture. RoR doesn't [19:28] kristsk: yes i known about .net, thank you very much. [19:28] bingomanatee: Or you can use Grails and get the benefits of both Java's Ease of Use and RoR's limitations! [19:28] eazyigz_: then there is no comparison [19:28] eazyigz_: .NET is only for people who don't like Linux [19:28] eazyigz_: RoR is for people who love linux [19:29] eazyigz_: that is my naive explanation [19:29] kristsk: what i originaly ment was - userbase of php is probably (imho) 2 orders of magnitude to that of ror [19:29] bingomanatee: gee, you just compared two things that you said could not be compared. I am wondering whether I should trust your perspective. :D [19:29] eazyigz_: kristsk: that is because PHP is easily integrated with Apache. [19:29] bingomanatee: Yes - but you have to look at growth as well as adoption. RoR came years later. [19:30] eazyigz_: kristsk: as we move away from Apache, we will see wonderful server options (like nodejs) [19:30] sriley: bingomanatee: ive done it (asked in an irc chan for people looking for a job), and will likely do it many more times [19:30] eazyigz_: Apache will likely go away with Web 3.0 sites [19:30] eazyigz_: it cannot stream or handle real-time data [19:30] bingomanatee: Oh so do I but the industry status quo is to hire a business major who flunked CompSci 101 to flense the job boards for you. [19:30] kristsk: nginx with php-fpm is actually better and more easy and more managable than mod_php on apache [19:31] mike5w3c_ has joined the channel [19:31] kristsk: but thats besides the point. [19:31] eazyigz_: kristsk: in my opinion Ruby is such a more maintainable and readable language than PHP. So is Python. [19:31] ROBOTARMY has joined the channel [19:31] Me1000 has joined the channel [19:31] kristsk: ruby is a nightmare in my opinion. [19:31] bingomanatee: Then said flunkie searches Dice and Craig's List for resumes and feeds them back to you based on the keywords you give him and walks away with thousands of dollars. [19:31] kristsk: and python tends to make ones head swell. [19:32] jesusabdullah: Swell in what way? [19:32] lukegalea: kristsk: We use Ruby, .Net, PHP, Python and Erlang here... [19:32] techwraith has joined the channel [19:32] kristsk: so you have to make wider doors. [19:32] lukegalea: and they can all be a pain in the ass ;) [19:32] bingomanatee: Are you talking about ruby or rails? [19:32] eazyigz_: kristsk: you are serious?? [19:32] kristsk: yes, that is my experience, unfortunately. [19:32] eazyigz_: kristsk: you find PHP more readable and easier to write than Python or Ruby?? [19:32] kristsk: yes [19:32] eazyigz_: fuck me [19:32] techwraith: Whoa [19:32] jesusabdullah: I think python is a great *procedural* language [19:32] eazyigz_: you are one of a million [19:32] bingomanatee: The world is your oyster. [19:33] eazyigz_: python is great for Linux administration. [19:33] lukegalea: kristsk: Are you maintaining some really bad code? [19:33] kristsk: i have not writeen much in ruby though. [19:33] eazyigz_: you cannot use PHP for linux admin [19:33] jesusabdullah: I think it's not so great for functional programming. Like, it gives you a *few* tools, but not enough to do anything truly exciting [19:33] hobodave has joined the channel [19:33] kristsk: why not, eazyigz_? [19:33] dguttman_ has joined the channel [19:33] eazyigz_: kristsk: you seriously think that you can spawn Unix daemons with PHP? [19:33] jesusabdullah: eazyigz_: I'm pretty sure you can. It's just not particularly common to do so. [19:33] bingomanatee: The sysadmin in my old company liked it - hes the one who kind of propells me to give it a try. [19:33] kristsk: i have written several inhouse system tools with php [19:33] bingomanatee: Daemons is the reason I move to node. [19:33] philipharrison has joined the channel [19:34] kristsk: i did not have reason to spawn daemons. [19:34] eazyigz_: and using Python with Node is a breeze [19:34] Remoun has joined the channel [19:34] jesusabdullah: How do you use python wif node, eazyigz_ ? Ooc? [19:34] mandric: kristsk: you got issue bro. php is a templating language. [19:34] eazyigz_: any low-level and kernel-level programming can be done easily with Python. I cannot say the same for PHP [19:34] bingomanatee: I find PHP's OOP conventions heavy handed and onerous. [19:34] kristsk: yeah sure, templating. [19:34] eazyigz_: jesusabdullah: .spawn() [19:35] jesusabdullah: Ah [19:35] kristsk: if there is one thing i have issue with, that is oop meh [19:35] bingomanatee: oop in general or oop in PHP? [19:35] bronson_ has joined the channel [19:35] jesusabdullah: oop can be useful. It's just not a catch-all is all. [19:35] eazyigz_: kristsk: any truly asynchronous and real-time streaming system will spawn daemons. [19:35] kristsk: in general - with oop in general. [19:35] eazyigz_: and will do it in the right way [19:35] eazyigz_: not some bullsh. threads [19:35] kristsk: it is hard to do right. [19:35] zemanel: i think OO in PHP is a big hack [19:36] bradleymeck: i think OO in most languages is a hck [19:36] bingomanatee: well its worse than a hack - its a straight port from Perl. [19:36] tjholowaychuk: PHP itself is a big hack [19:36] eazyigz_: data manipulation with PHP is a joke. I mean Python has so many flexible data structures, PHP cannot even compare [19:36] Twelve-60 has joined the channel [19:36] bingomanatee: though I have to say - OOP in Javascript is a bit of a hack as well. [19:36] eazyigz_: think list comprehensions, lambda, etc [19:36] kristsk: phps hasharray is VERY nice [19:36] zemanel: my case is that you cant trap FATAL or other low level errors as exceptions [19:36] tjholowaychuk: eazyigz_: I love how foo()[0] is not even a valid expression in php lol [19:36] eazyigz_: lol [19:36] bradleymeck: now if php classes did not force themselves into global scope id be fine w/ pythons OO, its just as good as the next at doing stuff [19:36] bingomanatee: yeah that is a drag. [19:36] kristsk: erlangs oo (sort of) is closes to useable one i have encountered. [19:37] bingomanatee: I actually use the ArrayObject conceit in PHP to get around that. [19:37] eazyigz_: does PHP have namespacing? Last time I checked - NO [19:37] sveimac_ has joined the channel [19:37] bingomanatee: then check again. [19:37] kristsk: well, it does. [19:37] bradleymeck: eazyigz_ it does \ [19:37] bingomanatee: and\its\eminently\sensible\ [19:37] tjholowaychuk: eazyigz_ \ [19:37] tjholowaychuk: its terrible [19:37] eazyigz_: i know! [19:37] rexington has left the channel [19:37] eazyigz_: Python's namespacing is awesome [19:37] jesusabdullah: I actually don't like the sheer number of data structures in python. I mean, why does it make a dichotomy between dicts and objects? [19:37] zemanel: also for almost every php programmer every problem is nail for the php hammer [19:37] bradleymeck: dont get me started on Python, if I ever use its standard library i tend to cry after a while [19:38] eazyigz_: the whole PIP installation manager for Python is awesome. What does PHP have?? [19:38] jesusabdullah: I appreciate that, in javascript, they're one and the same [19:38] kristsk: PEAR ? [19:38] jesusabdullah: Yeah, most ecosystems have at least one package manager [19:38] jesusabdullah: and python's package management is actually a Known Huge Mess [19:38] tg has joined the channel [19:38] kristsk: i really do not want to follow this to where it is going. [19:38] jesusabdullah: pip is nice, but it's working with a few piles of crap, y'know? [19:38] ttpva has joined the channel [19:38] zemanel: i dont think PEAR every caught on in the real world [19:39] bradleymeck: kristsk its going where ppl who think language > code go [19:39] bingomanatee: Yes, I think in the end it would be better if we all stopped using node and went back to PHP. Who's with me? [19:39] jesusabdullah: The scientific python community has a lot of issues since they do a lot of compiling of C extensions [19:39] dguttman has joined the channel [19:39] eazyigz_: I mean there is a reason that Google App engine supports Python and doesn't support PHP [19:39] jesusabdullah: Well [19:39] zemanel: my case for it is that ive "seen enterprise solution" and tehy implement their own package system [19:39] kristsk: and that reason is? [19:39] jesusabdullah: Also: They implemented java. Why? [19:39] eazyigz_: PHP is unmaintainable [19:40] eazyigz_: unless you really really know what you are doing [19:40] jesusabdullah: Few people would argue that java is a GREAT language [19:40] isaacs has joined the channel [19:40] randy- has joined the channel [19:40] eazyigz_: i mean in python you can learn it in a few weeks and write a great MVC app [19:40] bingomanatee: thats a bit of a grey area. [19:40] bradleymeck: php is maintainable if you use it right, no one learns OO or cares about API in PHP [19:40] eazyigz_: try PHP, learn it for a few years, and still don't know sh*t [19:40] boaz has joined the channel [19:40] kristsk: and pyton has those elves who silently maintain your code, yeah. [19:40] bradleymeck: eazyigz_ its a matter of frameworks [19:41] kristsk: there is aboout 2 dozens of functions in php [19:41] kristsk: sure, naming scheme is a bit wacky [19:41] eazyigz_: django vs symfony [19:41] bingomanatee: In my experience the only way to make code "Maintainable" is to enforce one and only one way to solve any particular task. That gives you Rails - and thats fine if you like the enterprise way of life - but then you create a generation of programmers who think in boxes and piss themselves when the solution YOU wrote years ago can't "solve their problems." [19:41] kristsk: but if you cant remember two dozen fuction names, well... too bad. [19:41] bradleymeck: zend vs codeigniter? [19:41] eazyigz_: coffeescript resembles a lot of Python, and I appreciate it for that [19:41] eazyigz_: if it resembled PHP I wouldn't even try it [19:41] bingomanatee: For instance, Zend Framework projects are fairly maintainable if you accept their patterns. [19:41] akahn has joined the channel [19:42] bingomanatee: They are a bit of a drag - makes me feel like I'm back in STRUTS - but it establishes best practices patterns and a consistent contract of development. [19:42] dgathright has joined the channel [19:42] syntheze has joined the channel [19:42] zemanel: bingomanatee: the think about Zend it's that it is more a component framework than a "web framework" [19:42] tanepiper: it's a pitty their patterns are f*cking stupid [19:42] bingomanatee: PHP people hate ZF for that reason but if you bear down and use it its practical enough. [19:42] eazyigz_: bingomanatee: that is why nodejs is so awesome! It doesn't lock you into any corporate b.s. [19:42] tg has joined the channel [19:42] jesusabdullah: Well [19:42] jesusabdullah: it *is* opinionated [19:42] bingomanatee: Yeah like "Jobs" or "work" [19:43] sriley: theres also symfony, personally i prefer it over zend [19:43] jesusabdullah: "I'm not adding coroutines. Stop asking." [19:43] zemanel: ive actually worked with Zeta components and found it more enjoyable [19:43] bingomanatee: I hear Symfony 2.0 is awesome. [19:43] jesusabdullah: And, I mean, I appreciate that, but arguably node does "lock you down" with having to use callbacks [19:43] zemanel: well node is async in nature so [19:43] bradleymeck: i *hate* python. in large part to its standard library and failure of passing data between functions compared to most languages that came after c++ [19:43] bingomanatee: I have to say - I would take a little corporate BS over taking a whole afternoon to get my MongoDB tags to sort properly in Node. [19:43] eazyigz_: bingomanatee: like "fun", Web 2.0, real-time data, creating your own server, making your own decisions [19:44] tanepiper: bradleymeck: python itself has nice features, but it's starndard libs are horrible [19:44] zemanel: omg some1 say "i hate python" on the internet [19:44] eazyigz_: bingomanatee: the problem starts when you leave your corporation, and find out that nobody else does things the way your job did [19:44] brianleroux has joined the channel [19:44] bingomanatee: I can make my own decisions in any language. Or i can make my code maintainable. You really don't get both, in any language, unless you develop in teams and accept coding standards. [19:44] bradleymeck: omg, i dont like edge cases! [19:44] tanepiper: and the problem with Django is as a framework it's very opinionated, especially around the ORM [19:44] bingomanatee: Thats why you have to move around a lot. [19:45] bingomanatee: ACTION is very well rounded [19:45] eazyigz_: tanepiper: you can use sql in django if you wish [19:45] steffkes has joined the channel [19:45] zemanel: django is great for it's use cases [19:45] eazyigz_: for a beginner in MVC web development, Django is great [19:45] eazyigz_: i learned it in a month and got a real full-time job [19:46] zemanel: dont see it has "for begginers" [19:46] eazyigz_: but now I have no need for it, especially with Nodejs and all the cool jquery stuff out there [19:46] tanepiper: eazyigz_: yea, but i shouldn't have to - i should be able to define a model and get basic CRUD ops, but anythng over that i should be able to decide what i want [19:46] kristsk: i actually have a project written in php/java that would count as an antithesis to node heh [19:46] eazyigz_: kristsk: php and java??? [19:46] eazyigz_: how did you manage to marry two terrible languages [19:46] kristsk: yes. [19:46] eazyigz_: into something you are proud to call your own [19:46] kristsk: and it uses and and ivy too. [19:46] kristsk: and bits of js [19:46] tanepiper: but javascript just seems to natural and JSON is exactly how I think of objects [19:47] kristsk: ant and ivy [19:47] eazyigz_: ant??? [19:47] eazyigz_: jesus [19:47] kristsk: java build tool [19:47] eazyigz_: maven you love too, right? [19:47] kristsk: yeah i know. [19:47] dahankzter has joined the channel [19:47] edw has joined the channel [19:47] eazyigz_: maven is so much fun!!! [19:47] kristsk: no maven i hate [19:47] eazyigz_: it solves all of my woes [19:47] kristsk: w passion. [19:47] eazyigz_: NOTTTTT [19:47] tanepiper: ACTION *shakes* fist at Java's setter and getter pattern [19:47] jesusabdullah: Maven sounds like a character from Firefly [19:47] kristsk: just a secc [19:47] kristsk: wil see if i can remember some password [19:48] jesusabdullah: "We're gonna have to talk to Maven." "What?! Mal, you're crazy! Remember what happened last time?!" "WE DON'T HAVE A CHOICE JAYNE" [19:48] ossareh has joined the channel [19:48] eazyigz_: maven is a Yiddish word [19:49] eazyigz_: anyhow, I wish to output a long commandline result (i.e. df) to the client. What templating module would you recommend? [19:49] jesusabdullah: df? [19:49] zemanel: sometimes i dont understand those criticisms [19:49] jesusabdullah: Dwarf fortress? [19:49] tg has joined the channel [19:49] eazyigz_: df is a unix command [19:49] bshumate has joined the channel [19:49] eazyigz_: it shows disk usage and quotas [19:49] zemanel: maven was created to solve a problem [19:49] jesusabdullah: Dwarf Fortress is a windows program, eazyigz_ ! [19:50] eazyigz_: and I wish to output that to the client [19:50] tanepiper: ryah: nice stats! You have the perfect communist irc channel [19:50] eazyigz_: just haven't found a good way to do it yet... [19:50] zemanel: it's its being misused outside the problem domain, it isnt really the tools fault [19:50] zemanel: if ... [19:50] rbranson: should have population control to keep it at 500 [19:50] Twelve-60 has joined the channel [19:51] ryah: no one is allowed to leave [19:51] benburkert has joined the channel [19:51] rbranson: uh oh [19:51] kristsk: do you promisse to play nice? [19:51] rbranson: i guess that was net neutral though [19:52] nook has joined the channel [19:52] jesusabdullah: tanepiper: Stats? [19:52] kristsk: http://1024.808.lv/k5z/burka/Proof/Proof.k5z.php [19:53] tanepiper: jesusabdullah: @ryah 14:48 -!- Irssi: #node.js: Total of 500 nicks [0 ops, 0 halfops, 0 voices, 500 normal] [19:53] peol has joined the channel [19:53] peol has joined the channel [19:53] hosh_work has joined the channel [19:53] kristsk: a little bit comlplex example: http://1024.808.lv/k5z/burka/Calculator/Calculator.k5z.php [19:53] augustl: is there anything like sinatra (ruby) to node? I.e. a slightly higher level wrapper with routing etc. on top of node. [19:54] kristsk: and more complex: http://1024.808.lv/k5z/burka/CalculatorEx/CalculatorEx.k5z.php [19:54] sriley: augustl: like express? [19:54] tjholowaychuk: augustl: expressjs.com [19:54] eazyigz_: I am doing res.send from a 'df' unix command, and the client only gets the first line of the output [19:54] eazyigz_: how can I get around it? [19:54] JimBastard has joined the channel [19:54] augustl: sriley, tjholowaychuk looking it up, thanks [19:55] isaacs: Aikar: this does not work: npm install http://blah.com/myrepo.git . [19:55] isaacs: Aikar: you can check it out, and then install the folder, though [19:55] Aikar: ah [19:55] JimBastard: if a websites api limits you to a certain amount of operations per minute, but they dont limit the amount of requests per second to the site, is it okay to use jsdom to get the data instead? :-D [19:56] jesusabdullah: tanepiper: I see. :) [19:56] halfhalo: \o/ Its alive!!! [19:56] bradleymeck: jimbastard. but of course [19:57] bradleymeck: you might get banned though [19:57] bingomanatee: You know what I would like to see? [19:57] matbee has joined the channel [19:57] bingomanatee: A compiled version of node with strong parameter typing. [19:57] romainhuet has joined the channel [19:57] JimBastard: bingomanatee: lol [19:57] bingomanatee: I'm tired of passing parameters and finding out in runtime that they are not the proper type. I think every thing from a number to a date should come from a name pathed or inherited library. [19:57] halfhalo: the regex module is working with the fancy new shinyness [19:58] romainhuet_ has joined the channel [19:58] stride: bingomanatee: why don't you just use a strongly typed language? :) [19:58] halfhalo: including repeating, but not string output yet... and string output is the bomb [19:58] matbee: Does anyone here know of a good pub/sub implementation on node with disconnection detection? [19:59] Aikar: man vows is being really annoying :( [19:59] bingomanatee: I just would rather bring the strengths of Java to node.js [19:59] dipser has joined the channel [19:59] matbee: I've tried faye, however it doesn't notify me of connections lost [19:59] matbee: bingomanatee, java has no strengths ;) [19:59] bingomanatee: It would make node a lot more maintainable [19:59] bingomanatee: bwahahaHAHAHA! [19:59] bradleymeck: java threading is the most bearable threading [19:59] stride: bingomanatee: i see. add an abstraction layer above all types. [20:00] stride: (kidding) [20:00] bingomanatee: You don't know the power... of the dark side.... [20:00] csanz has joined the channel [20:00] tanepiper: OHGOD: http://i.imgur.com/XqSzl.jpg [20:00] tanepiper: RUN! [20:00] matbee: tanepiper, what is that? [20:00] tanepiper: a job [20:00] matbee: and why is it happening [20:00] matbee: stop it now. [20:00] csanz: hello nodejsers [20:00] tanepiper: from a recruiters presentation [20:01] matbee: agghh [20:01] liar has joined the channel [20:01] matbee: it hurts my brain [20:01] bingomanatee: Its MODERN ART! HIDE YOUR EYES CHILDREN! [20:01] bradleymeck: strict typing is nice until you try to do something and realize you have to allocate type containers that dont really do anything [20:01] evalcx: Aikar: can i change the global context of a running module using vm.runInNewContext or in some other way? [20:01] augustl: hmm. Seems like express and it's dependency connect insists on creating it's own http server. [20:01] Aikar: professional is on that board, screw that! [20:01] techwraith: Hey there csanz! [20:01] csanz: techwraith: hello sir ;) [20:01] augustl: I wonder if I can hand it my own HTTP or HTTPS server. [20:01] bradleymeck: evalcx no [20:01] kristsk: user/pw for CalculatorEx example is qwe@zz.lv / 1234 - if anyone is interested [20:01] bingomanatee: As a fromer fine arts major I really kind of enjoy powerpoint corporate art from a DaDaist perspective. [20:01] Aikar: someone failed their interview for my team the other day partly because they said "you have to be professional for this job" [20:02] augustl: anyone used connect and/or express with their own server? [20:02] ROBOTARMY has joined the channel [20:02] ROBOTARMY has joined the channel [20:02] bingomanatee: yes [20:02] bingomanatee: noogle [20:02] matbee: Aikar, and you ditched them? [20:02] Aikar: i guess she didnt see the lego starwars she walked past, or the slide from the 3rd floor to the 2nd, or the ping pong tables, or xbox360, or wii [20:02] augustl: i.e. var myServer = http.createServer(); express.app(myServer); or whatever. [20:02] matbee: LOL! [20:03] evalcx: bradleymeck: so a repl can't manipulate functions that were already evaled in a context of a module? unless it itslef evaled them? [20:03] Aikar: both my coworkers have big ass NERF guns under their desk [20:03] Aikar: im new here so my desk is bare :( [20:03] bingomanatee: oh - uh - no I let express create my server which I thought was the whole point of using express basically. [20:03] augustl: bingomanatee: I want to let it handle requests [20:03] bradleymeck: evalcx you can never change the execution context a function runs in, thats the whole point of closures [20:03] tanepiper: oh damn, someone tried to bitchslap me over javascript: http://www.reddit.com/r/programming/comments/f97ua/kirbys_dream_land_2_running_inside_firefox_4_in_a/c1eezr1?context=3 [20:03] augustl: bingomanatee: I just want to create the core server myself. [20:04] augustl: so that I can choose which requests it should handle myself, for example, and give it a https server instead of a http server. [20:04] bradleymeck: tanepiper i love that he just said it takes more hoops to do it in js than c++ [20:04] augustl: but it seems like http is hardcoded into the connect library. [20:05] tanepiper: bradleymeck: yes, makes me lol [20:05] stride: lol. nice one.. [20:05] augustl: i.e. https://github.com/senchalabs/connect/blob/9cdb9af1d8eeae8b5f16/lib/connect/index.js#L81 [20:05] matjas__ has joined the channel [20:05] bingomanatee: why not just mix in properties to the express server to bend it to your needs or write extensions to express? [20:05] tanepiper: bradleymeck: seems to be a Pro-Apple, anti-Android troll [20:06] evalcx: bradleymeck: no i mean, if i eval a function Y that calls a function X in a repl, then if i re-eval X, then upon Y() the new X will execute right? but if i didn't eval Y and X, and another module did, and only after my repl is awakened.. [20:06] tanepiper: click on his name and just see his comments [20:06] augustl: bingomanatee: I'd prefer to use an official API to avoid future breakage.. But I'll probably end up hacking it in yeah [20:06] bingomanatee: express is pretty mainline - and it is a superset of connect which is also pretty mainline. [20:07] Eber: pyrotechnick: wave did the trick ;) tks man! [20:07] benburkert has joined the channel [20:07] bingomanatee: I would just learn the middleware api to connect. [20:07] Aikar: https://gist.github.com/799134 anyone see anything wrong here with the new 3.x http.get method? [20:07] Twelve-60 has joined the channel [20:07] bgilbert has joined the channel [20:07] bingomanatee: and you can't use node and avoid future breakages. It just can't be done. [20:07] losing has joined the channel [20:07] Aikar: vows is throwing an error about json stringifying a circular reference [20:07] augustl: bingomanatee: hehe [20:08] bingomanatee: They are willing to change the whole interepretation of post variables from 0.2 to 0.3 - so you are pretty much riding a moving train on the outside. [20:08] gflarity has joined the channel [20:08] bradleymeck: evalcx Y will execute the variable X that is visible to it wherever that may be [20:08] bingomanatee: Node is a hot bitch with great tits - but she's still a bitch. [20:08] bradleymeck: tanepiper, lets go multicore that sucker for him using webworkers [20:09] augustl: anyone know a way to use the new https stuff in express btw? [20:09] kristsk: nitey. [20:09] tjholowaychuk: augustl: well now that https is actually a possibility [20:09] tjholowaychuk: we will be adding support soon [20:10] augustl: tjholowaychuk: I was hoping for something like var s = https.createServer(), a = express.app(https); [20:10] augustl: seems like the http "limitation" is in the connect dependency though [20:10] augustl: oh hey, you're the author :) [20:10] tjholowaychuk: yeah, the https stuff is new [20:10] Aikar: i would hope https support could be added in a way you can define rules once and it works for both ;) [20:11] tjholowaychuk: should be as simple as adding a ?: to connect [20:11] tjholowaychuk: feel free to patch [20:11] peteatolia has joined the channel [20:11] augustl: would be nice to be able to plug express into any https server, though, so express doesn't have to take over an entire port. [20:11] tjholowaychuk: ? [20:11] Aikar: noone knows what may be wrong with my code? :( [20:11] bradleymeck: anyone know if you can upgrade a net.Socket to tls after it is open in 0.3.x [20:11] Aikar: augustl: thats how express works... [20:11] Aikar: you make the server, pass it to express (http or https) [20:12] Aikar: err, or least can [20:12] matbee: it has to take over an entire port... [20:12] matbee: :-/ [20:12] Aikar: you can pass it your own server [20:12] sctb has joined the channel [20:12] Aikar: but im not sure why you would want to try to parse out http data yourself AND express do it too [20:13] matbee: Can express return the IP of a connected user? [20:13] augustl: tjholowaychuk: http://pastie.org/1503645 [20:13] augustl: Aikar: oh really? I didn't know. [20:14] augustl: Aikar: it's not AND, it's OR :) [20:14] augustl: i.e. if the url starts with /wtf, do some custom stuff, else let express handle it. Or whatever. [20:14] augustl: matbee: you get the request and response from the http server it seems, so yeah [20:15] ossareh has joined the channel [20:16] augustl: Aikar: care to write a short paste that shows how to hand a server to express? [20:17] claudiu__ has joined the channel [20:17] sctb: Hi all, is it possible to iterate over all of the variables in the current context (or module, I suppose)? [20:17] mraleph has left the channel [20:17] augustl: sctb: probably not, due to lexical scoping [20:17] augustl: sctb: there's `global` though. [20:18] cognominal has joined the channel [20:18] sctb: augustl: Indeed. I'm trying to figure out a way to run my script in the REPL and actually have access to the variables it defines. [20:19] aguynamedben has joined the channel [20:19] augustl: tjholowaychuk: am I making any sense? ;) [20:20] augustl: sctb: now I'm just guessing, but I guess you could do something in C++ as a last resort ;) [20:20] namelessnotion has joined the channel [20:20] sctb: augustl: Really? I'm surprised that it's so hard to have a script that contains 'var x = 5;', load it in a REPL and type 'x'. [20:21] sctb: I mean, the browser can do it. [20:21] bradleymeck: you can do that in the repl right now [20:21] augustl: sctb: disclaimer: I'm not an expert. [20:21] sctb: bradleymeck: how so? [20:21] Country has joined the channel [20:22] Aikar: sctb: you can do it [20:22] Aikar: i was gonna answer earlier but you left [20:22] jesusabdullah: the repl is exposed in a global object iirc [20:22] bradleymeck: sctb, http://nodejs.org/docs/v0.3.6/api/repl.html, or just `node` [20:22] sctb: Aikar: sorry, I was heading out of the office. Wanna fill me in :) [20:22] jesusabdullah: so, I would imagine that you could have a script that sets these things, then starts a repl [20:22] Aikar: sctb: var foo = {bar: 'baz'}; var repl = require('repl'); repl.repl.context.foo = foo; [20:22] jesusabdullah: ACTION hasn't done it, though [20:22] Aikar: you gotta manually specify which ones to expose, but you can do it [20:23] jesusabdullah: ooh [20:23] jesusabdullah: That sounds handy actually [20:23] augustl: so, is it or is it not possible to use https in express and/or connect? [20:23] sctb: Aikar: that's the rub -- I don't want to manually specify what to expose. I want access to my whole program [20:23] colinclark has joined the channel [20:23] Aikar: just look at repl.js in lib/ folder of node, thats what i did ;) [20:23] tjholowaychuk: augustl: use middleware for the 'custom' stuff [20:24] tjholowaychuk: not right now no [20:24] bingomanatee: What is the API for getting author images from git? [20:24] Aikar: sctb: well theres no way to get a list of every var in scope [20:24] sctb: bradleymeck: sure, typing 'node' gives me a repl, but what if I have a file with just 'var x = 5;' in it -- now what? [20:24] tjholowaychuk: because that https stuff is new [20:24] matjas_ has joined the channel [20:24] tjholowaychuk: and in the unstable release of node [20:24] augustl: tjholowaychuk: do you think it makes sense to make the server pluggable though? That way you don't have to write support for a https server - people can just plug it themselves. [20:25] halfhalo: ACTION got his new-new fangled regex node frigger to output a string that tells you what it does [20:25] sctb: Aikar: Understood, but every other REPL out there has this functionality. [20:25] halfhalo: like this: Given we have a matchable string, if :name is a string, and if :test is a string, and if :now is a string, and the string is in the format: "hello there <%name%> this is a <%test%> of the emergency node systemmore regex <%now%>", then we can match the string [20:25] tjholowaychuk: augustl: meh [20:25] bradleymeck: sctb, you could try, repl.context = global, its pretty close to getting all the global stuff (note modules are scoped though) [20:25] tjholowaychuk: that would be the only benefit really [20:25] tjholowaychuk: like i said it wont be hard to support at all [20:26] tjholowaychuk: I would rather add a ternary than uglify the api [20:26] sctb: bradleymeck: my script is full of 'var x = blah', not 'x = blah', so global doesn't help me here. [20:26] augustl: tjholowaychuk: uglify is relative - I think it prettifies the API. [20:26] augustl: I love unobtrusive software ;) [20:27] bradleymeck: sctb, in short then, no, in long v8's debug.h and a c++ extension would allow you to [20:27] bradleymeck: to keep a symbol table available like that would be odd on performance i would think [20:27] augustl: I'm sure it doesn't have to change the API at all, though, it can be implemented to create it's own http server by default. [20:27] mscdex: node.js rules! [20:28] bingomanatee: suckup [20:28] spetrea_ has joined the channel [20:28] Me1000 has joined the channel [20:28] bradleymeck: ryah, are we going to be able to start a tls negotiation on an already connected socket after 0.3.x? since setSecure is being deprecated [20:29] booths has joined the channel [20:30] andrzejsliwa has joined the channel [20:31] Coal has joined the channel [20:32] augustl: is there anything like express, but with a pluggable server? [20:32] technoweenie has joined the channel [20:32] jchris has joined the channel [20:33] augustl: I sort of expected most node modules to be pluggable, to conform with node itself :S [20:34] admc has joined the channel [20:34] RushPL: the flashsocket in socket.io was advertised as almost low latency as web socket, but my tests show a significant delay added. I am measuring ping with my application and on localhost alone it adds 30ms to the whole roundtrip, as compared to ~2ms with web sockets and ~10ms on xhr-multipart. [20:34] tjholowaychuk: augustl: stop complaining and patch things then lol [20:34] RushPL: anybody has any tips on that? [20:34] shaver: RushPL: yeah, it's pretty high-latency for me, too [20:34] augustl: tjholowaychuk: I was under the impression that you wouldn't approve a patch like that. [20:35] shaver: I haven't looked at why [20:35] tjholowaychuk: augustl: not the createApp() thing [20:35] piscisaureus has joined the channel [20:35] RushPL: shaver: I have decided to disable it altogether because of this. [20:35] RushPL: shaver: are you using setNoDelay for web sockets? or maybe do you have any other tips on decreasing latency? [20:35] tjholowaychuk: augustl: you should be able to do that without patching at all [20:35] tjholowaychuk: there is a .handle method [20:36] RushPL: laggy links are the most horrible .. [20:36] augustl: tjholowaychuk: looking it up, thanks [20:36] fission6: whats the best way to check if an element is null, is there an assert for this? [20:36] RushPL: ping 120 in telnet rises to ping 800 in socket.io [20:36] RushPL: *bleh, in telnet, in console :) [20:37] figital has joined the channel [20:37] Aikar: can someone point me to a project that extensively uses vows for unit testing so i can see wtf im doing wrong [20:38] technoweenie: riak-js uses vows i believe [20:38] evalcx: yay [20:39] technoweenie: https://github.com/frank06/riak-js/blob/master/spec/test_meta.coffee [20:39] evalcx: has anyone here ever used swank.js? [20:39] tjholowaychuk: augustl: all we need to change is to inherit from https.Server instead, and then use .setOptions() [20:39] tjholowaychuk: not a big deal [20:39] tjholowaychuk: but 0.3.x is not stable [20:40] maushu has joined the channel [20:40] hosh_work has joined the channel [20:40] evalcx: i just evaled something to a running server from emacs, refresh the page - bang! new page. wow [20:40] shaver: nice [20:41] evalcx: C-M-x : EVALED! [20:41] aguynamedben has joined the channel [20:42] mikeal has joined the channel [20:42] neshaug has joined the channel [20:42] maushu: Anyone can recommend me a reloader? [20:42] maushu: I tried nodemon but it doesn't work with the latest version. :| [20:44] mscdex: s/eval/evil/ [20:45] bradleymeck: s/mscdex/Function/ [20:45] figital has joined the channel [20:45] Coall has joined the channel [20:46] mscdex: s/maushu/_announcer/ [20:46] mscdex: :-D [20:46] mscdex: i miss announcer [20:46] gflarity has joined the channel [20:48] maushu: wut [20:48] m64253_ has joined the channel [20:50] tim_smart: I had announcer on /ignore :p [20:50] mscdex: :( [20:51] TomsB has joined the channel [20:54] rudewalrus has joined the channel [20:55] booths has joined the channel [20:56] matjas_ has joined the channel [20:57] Christopher_Bisc has joined the channel [20:58] clarkfischer has joined the channel [20:59] rudewalrus has left the channel [20:59] Matt__ has joined the channel [20:59] creationix has joined the channel [21:00] nooder has joined the channel [21:00] creationix: tlrobinson: I've been thinking about routing uncaught exceptions to a scoped handler [21:01] creationix: (based on discussions from your long-stack-traces implementation) [21:01] creationix: your method of wrapping addListener works for long traces [21:01] creationix: but not for catching exceptions [21:02] orospakr: Hey, any recommendations on methods for doing dependency injection of things like mocks? [21:02] eevin has joined the channel [21:03] tlrobinson: creationix: i'm not sure i understand [21:03] orospakr: I have modules that are require()ing others, and then instantiating objects out of them. I want to stub such constructor functions out, reversibly. [21:03] creationix: tlrobinson: so, for example... [21:03] creationix: in node, if you emit an "error" event and there is no listener, it throws an exception [21:03] tanepiper: but does it make a sound? [21:03] creationix: I want that exception to be routed to whatever stack created the event listener in the first place [21:04] creationix: hmm, I guess it's broken for your case too, since the exception will have a short trace [21:04] CarterA has joined the channel [21:04] creationix: but the occasional short trace is not bas as the occasional uncaught exception that brings down the server or hangs the connection [21:04] creationix: s/bas/bad/ [21:05] maushu: creationix, do you use a reloader? [21:05] CarterA: Hey everyone, what're you all talking about? More long-trace stuff? [21:05] creationix: maushu: sure, but I want more fine-grained handling [21:05] stephen_mcd has joined the channel [21:05] maushu: I'm asking because I want one. [21:05] creationix: maushu: it's not good to restart an entire server and 1000 clients just because one client did something stupid [21:05] maushu: Tried nodemon and liked it but doesn't work. :| [21:05] creationix: maushu: I just use upstart's built-in restart directive [21:05] creationix: good enough for me [21:05] maushu: It's for loocal development [21:06] Ond has joined the channel [21:06] maushu: creationix, upstart doesn't restart on change? [21:06] creationix: maushu: you mean for automatic reloading when source changes? [21:06] maushu: Yup. [21:06] creationix: yeah, I just restart manually [21:06] maushu: You aren't lazy enough! [21:06] creationix: oh, I'm plenty lazy, I just have priorities [21:06] wadey has joined the channel [21:06] creationix: the simpler the stack the better [21:07] tlrobinson: ok, i think i understand, you want uncaught errors to trigger a 500 response for the correct request rather than take down the server? [21:07] creationix: less to debug [21:07] creationix: tlrobinson: right [21:07] creationix: I'm thinking of replacing the EventEmitter constructor with a shim [21:07] creationix: and in the shim, it shims the emit method [21:07] creationix: but that will only work for things that don't already have a reference to the real event emitter function [21:08] Christopher_Bisc: why would a websocket connection using socket.io work on my computer, but not work once I put it on a server? [21:08] creationix: tlrobinson: I've already got code that routes uncaught exceptions to the right callback if there is a marker inserted into the stack [21:08] creationix: I'm just having trouble propigating the marker across event emitter events [21:08] booths: Christopher_Bisc: Security settings? My work computer won't connect to any websockets outside the intranet. [21:09] tedsuo has joined the channel [21:09] sveimac has joined the channel [21:09] Christopher_Bisc: booths: what's wierd is that the connection seems to be made, but no information is being sent through [21:09] CarterA: Has anyone set up a stack with mongrel2 proxying to nginx? [21:09] kubrow has joined the channel [21:09] booths: Christopher_Bisc: socket.io is printing "websocket" connection? [21:10] Christopher_Bisc: booths: ie, in shell i get " Client 325246235236236 connected" [21:10] Christopher_Bisc: booths: yes [21:10] CarterA: Bye which I *meant* to type, mongrel2 proxying to node.js. [21:11] booths: Christopher_Bisc: Not really sure, does it work with other transports? [21:11] tlrobinson: creationix: yeah seems like you would need to keep track of the whole chain [21:11] tlrobinson: my latest version uses chains of Errors rather than formatted stack traces, which is much more efficient [21:11] creationix: tlrobinson: nah, I don't need the entire chain, I just transport a single callback reference to the next stack [21:11] Matt__: how are people managing static files (js, css, etc.) using node? [21:11] Poetro1 has joined the channel [21:12] creationix: tlrobinson: for setTimeout it's easy and working great [21:12] pieterv has joined the channel [21:12] creationix: almost zero overhead [21:12] JimBastard: Matt__: we use node-static [21:12] creationix: Matt__: I use creationix/static :P [21:12] tlrobinson: ok i see [21:12] JimBastard: as a middle-ware layer in stack [21:12] JimBastard: yeah, that will do it [21:13] creationix: it's really confusing to have an npm module named after my nick [21:13] Matt__: Does that manage versioning and dependencies or just do minification? [21:13] tlrobinson: creationix: does my approach of wrapping EventEmitter's addListener not apply? [21:13] creationix: tlrobinson: that will work for cases where the event has a listener [21:13] creationix: tlrobinson: but the "error" event is special [21:13] Christopher_Bisc: booths: just tried "xhr-multipart" and it broke even worse [21:14] booths: what do you mean even worse [21:14] Christopher_Bisc: booths: I mean the layout got skewed as well as the information thats supposed to be coming from the socket not being there [21:14] tlrobinson: creationix: ah ok. i'm not familiar with node enough, i'm sure there's lots of gaps in long-stack-traces currently [21:14] creationix: Matt__: mine just streams the files. The extra stuff implemented is conditional get support via timestamps and range requests [21:15] booths: is part of the layout reliant on information received from socket.io? [21:15] Aikar: is the author of vows in here? [21:15] pkrumins: published a new article on catonmat - how to write a simple tcp server in haskell - http://catonmat.net/blog/simple-haskell-tcp-server [21:15] creationix: tlrobinson: no worries, just wondering if you'd thought about it more and found a solution to the "error" event problem [21:15] Matt__: creationix: Oh ok. Do you happen to know of any module that is kind of like npm for static files? [21:15] astoon has joined the channel [21:16] creationix: Matt__: I don't know what you mean [21:16] creationix: npm is a package manager [21:16] tlrobinson: creationix: nope, i'm not even sure i understand the problem yet :) [21:16] creationix: there are middlewares that do resource compilation and minification [21:16] creationix: if that's what you mean [21:16] niklasfi has joined the channel [21:16] eevin: hello, I've just installed node.js and node.io through npm, and I'm trying the 3 first examples in the wiki. I'm getting an error (the same) when I'm running the 3 examples... any idea? http://www.pastie.org/1503866 thx [21:16] Christopher_Bisc: booths: shouldn't be, served static via express in jade [21:17] Matt__: creationix: I'm looking to do something like require('jquery') or serve('jquery') that will provide a link to that resource that I can serve to the client. [21:17] maushu: There is a new version of nodemon that uses daemon-tools. [21:17] creationix: Matt__: ahh, I don't know of much for that existing, but I've been doing that internally at work to serve Enyo [21:18] creationix: Matt__ it's really simple to just wrap on top of node-static or creationix/static [21:18] creationix: just a sec... [21:18] Christopher_Bisc: booths: apparently theres a bug in firefox with xhr-multipart, so that's probably it, but the socket still doesnt send info in chrome or safari [21:18] isaacs: creationix: it's awesome that i can install you now. [21:18] isaacs: creationix: it feels a little bit uncomfortably intimate, though [21:18] creationix: isaacs: lol [21:20] niklasfi: how do i terminate my program from within source-code? (if i hit a fatal error for example?) [21:20] creationix: niklasfi: process.exit(exit_code) [21:20] maushu: Ok, what the hell is this "daemon-tools" module that I can't find? [21:20] creationix: niklasfi: or throw an exception and let it not get caught [21:20] Matt__: creationix: Hmm.. okay. I'll definitely take a look at your module and cloudheads. Thanks! [21:21] creationix: Matt__ https://gist.github.com/799301 [21:21] maushu: More exactly, *where* is this module. [21:21] Matt__: creationix: Oh sweet. I'll play around with this. Thanks! [21:21] niklasfi: creationx: that is not very user friendly... if the problem is that he or she entered an invalid url they won't want to look at a stack trace [21:22] booths: Christopher_Bisc: Are you sending anything on connection immediately? [21:22] creationix: Matt__: so you'd make a jquery module for npm, and the path from library's point of view would be __dirname or something like that [21:22] Twelve-60 has joined the channel [21:22] creationix: niklasfi: you don't terminate the server if you want to send an http client a friendly message [21:22] creationix: niklasfi: you asked how to terminate the program [21:23] niklasfi: creationx: i am not working on a server but on a local fs program [21:23] creationix: niklasfi: oh, then it's even easier [21:23] isaacs: niklasfi: you could take the approach that npm does [21:23] creationix: just console.error("Some message"), then process.exit(error_code) [21:23] isaacs: niklasfi: or that ^ [21:24] dshaw has joined the channel [21:24] niklasfi: creationx: that is exactly what i wanted [21:24] Christopher_Bisc: booths: yea, should send "Hello!" both ways on connect [21:24] claudiu__ has joined the channel [21:24] peol has joined the channel [21:25] niklasfi: creationx: btw: there is a console.error function? [21:25] sh1mmer has joined the channel [21:25] Matt__ has left the channel [21:25] Christopher_Bisc: booths: so "server says hello" should appear on the page while "Client says hello" should appear in the shell [21:25] CarterA: Is there anyway to get `make` to build debug and release copies at the same time? [21:26] piscisaureus has joined the channel [21:28] niklasfi has joined the channel [21:28] MatthewMueller has joined the channel [21:29] isaacs: CarterA: ./configure --debug && make [21:29] isaacs: CarterA: that'll build both a "node" and a "node_g" [21:29] CarterA: Oh. Didn't know that. [21:29] CarterA: Neat. [21:29] isaacs: node_g is full of asserts and debug code and such [21:30] CarterA: Yeah, I'm just trying to streamline what I have to do to run all the tests. [21:30] jetheredge has left the channel [21:30] CarterA: Several of which fail when in debug but not when in release. [21:31] mandric has joined the channel [21:32] sh1mmer: isaacs: take a look at the wiki [21:32] sh1mmer: you have an installation page now [21:32] sh1mmer: :) [21:32] isaacs: sh1mmer: nice :) [21:32] sh1mmer: total strawman [21:33] isaacs: aww, that's a shame. i hate strawmen [21:33] isaacs: they poke you when you hug them. [21:33] Fuld has joined the channel [21:33] sh1mmer: I expect you to beat him and and toss him out [21:33] sh1mmer: or oot should I say [21:33] sh1mmer: being in can-a-da [21:33] isaacs: wut, so you're gonna pick up their language, but not ours? what, do you hate america or something? [21:34] sh1mmer: I'm pretty sure I say oak-land [21:34] sh1mmer: that's integration [21:34] isaacs: hahah [21:34] isaacs: a [21:34] isaacs: i say oak land, too. [21:34] isaacs: it should be two words. it's cooler that way. [21:35] CarterA: Is ryah going to be around today? [21:37] pengwynn has joined the channel [21:40] sh1mmer: well liar just left. that sounds kinda the same [21:40] sh1mmer: <-- unhelpful [21:41] MatthewMueller: isaacs: I've got a npm question: when you change of the required file say, require('socket.io'), and I change the internals of socket.io during development, does npm pick up on these changes or do I have to rebuild the package? [21:41] sh1mmer: CarterA: what did you want Ryan for? [21:41] CarterA: sh1mmer: I'd like to add one of my machines as a buildbot slave. [21:44] naveenk has joined the channel [21:46] bingomanatee: ACTION is crafily maneuvering the javascript node group and the node javascript group to meet at the same place and time [21:47] Ond: What place? [21:47] bingomanatee: The Hub seems like a good candidate. [21:47] bingomanatee: Still fishing - suggest places at http://www.meetup.com/Node-js-sfbay/ [21:49] yozgrahame has joined the channel [21:49] CarterA: I'm betting these are more problems with path escaping: https://gist.github.com/799336 There really needs to be a function to escape paths. [21:53] CarterA: Fixed them. process.execPath returns an unescaped string [21:54] CarterA: Should it escape the path? Or should that be handled by other code? [21:54] fangel has joined the channel [21:54] mikedeboer has joined the channel [21:54] eevin has joined the channel [21:54] ryah: CarterA: what's up? [21:55] saikat has joined the channel [21:55] CarterA: ryah: I'd like to add a machine to the buldbot. [21:55] CarterA: *buildbot [21:55] ryah: CarterA: https://github.com/arlolra/nodejs-buildbot follow the instructions here [21:55] ryah: CarterA: what kind of machine is it? [21:55] CarterA: Really nice Mac running bleeding-edge versions of the OS and dev tools. [21:57] liar has joined the channel [21:57] CarterA: Also, I found another test that fails when there are spaces in the source code path. [21:57] stagas has joined the channel [21:57] bradleymeck has joined the channel [21:57] CarterA: Seems like something that should be handled by process.execPath [21:58] amerine has joined the channel [21:58] ryah: no, i dont think that's the right place to handle it. [21:58] saikat_ has joined the channel [21:58] CarterA: What about a path.escape() function? [21:58] augustl: brianc: is there a function in node-postgres that does someFunc("sql string here $1", "foo") // returns escaped SQL string? [21:58] ddollar has joined the channel [21:58] piscisaureus: path escaping should be done by exec or spawn [21:59] CarterA: That makes more sense. [21:59] kris_ has joined the channel [22:00] maushu: Hmmm, the exit event of the child process doesn't fire if the signal is SIGUSR1? [22:00] kris_: is path.existsSync being deprecated or is it just undocumented (http://nodejs.org/docs/v0.3.6/api/path.html)? [22:00] maushu: Oh wait, that just sends the signal, doesn't kill it, right? [22:00] tanepiper: i have a wee treat for the nodejs community i shall be uploading shortly :) [22:01] augustl: hmm, seems like the escaping is handled by postgres itself, and not node-postgres. Is that correct_ [22:01] augustl: ? [22:03] mandric has joined the channel [22:03] CIA-99: node: 03isaacs 07master * r6cdeb3b 10/ (4 files in 4 dirs): [22:03] CIA-99: node: A module ID with a trailing slash must be a dir. [22:03] CIA-99: node: require('./foo/') should not try to load './foo.js'. It should only [22:04] isaacs: woo!! [22:04] maushu: Can I have more than one killSignal for child processes? [22:04] romainhuet has joined the channel [22:04] maushu: Oh wait, thats for exec. [22:06] bronson_ has joined the channel [22:10] ryah: isaacs: https://github.com/ry/node/pull/585 [22:10] ryah: isaacs: this is the same issue or? [22:10] isaacs: ryah: yah [22:10] mikeal has joined the channel [22:11] jimt has joined the channel [22:11] Aikar: woo got vows working good now [22:11] Aikar: has a bit of a learning curve... [22:12] CarterA: Alright ryah, build slave is set up [22:12] CarterA: How should I send you the info? [22:13] wadey: ryah: maybe this is known, but the "View on single page" link here is broken: http://nodejs.org/changelog.html [22:16] ryah: CarterA: send it to arlo [22:16] jetheredge has joined the channel [22:16] ryah: micheil: --^ [22:16] micheil: ? [22:16] ryah: micheil: what wadey said [22:16] micheil: oh, right. [22:17] mikeal: is there a meetup tonight? [22:17] micheil: wadey: could you open it up as an issue on http://github.com/miksago/node/issues [22:17] mikeal: i could have sworn there was one today [22:17] wadey: micheil: will do [22:17] mikeal: that pkrumins was going to [22:17] mikeal: or maybe i'm wrong [22:17] clarkfischer: Is there a good way to see if a npm package is installed? [22:17] creationix has left the channel [22:18] clarkfischer: Better than try { require(pkg); } catch (e) { /* nope */ } [22:18] Ond: npm ls installed ? [22:19] clarkfischer: Programattically, I mean [22:19] stride: npm has some interface to programatically control it, I guess it exposes that as well [22:19] Ond: Oh hmm [22:20] clarkfischer: It doesn't necessarily need to be done through npm [22:20] csanz has joined the channel [22:20] clarkfischer: Is there a like [22:21] clarkfischer: if (module_exists('thing')) { require('thing'); }? [22:21] AAA_awright: That's what try/catch is [22:21] pdelgallego__ has joined the channel [22:21] pdelgallego has joined the channel [22:21] AAA_awright: npm has the suckiest design I think I've ever seen for software, it beats out most python [22:21] saturdayplace has joined the channel [22:21] isaacs: AAA_awright: what do you think is sucky about it? [22:22] isaacs: clarkfischer: yeah, just do try/catch [22:22] clarkfischer: haha [22:22] clarkfischer: nice timing, isaacs. [22:22] piscisaureus has joined the channel [22:22] isaacs: clarkfischer: you can do something like this: function niceRequire (module) { try { return require("module") } catch (e) {} } [22:22] CIA-99: node: 03Greg Hughes 07master * r6c32e15 10/ (8 files in 3 dirs): Add ext_key_usage to getPeerCertificate - http://bit.ly/faI3q3 [22:22] CIA-99: node: 03Ryan Dahl 07master * r3d4a021 10/ doc/api/fs.markdown : [22:22] CIA-99: node: Fix arg order of fs.linkSync in docs [22:22] CIA-99: node: Thanks Pierre. Closes GH-571. - http://bit.ly/f2qFej [22:23] AAA_awright: isaacs: It has no software library to speak of, it's just a frontend.... And so you get weird issues with loading configurations [22:23] isaacs: AAA_awright: what do you mean by "software library"? [22:23] AAA_awright: There's no require('npm').install("package") [22:23] clarkfischer: Thanks, isaacs. [22:23] isaacs: AAA_awright: yeah there is [22:23] AAA_awright: Also, chain loading [22:23] micheil: isaacs: with the api for npm.bundle, when I want to call 'install', can I give it a package.json or have it only install the actual module, not dependency check [22:23] isaacs: AAA_awright: check the readme [22:24] clarkfischer: isn't it require('npm').commands.install('package')? [22:24] AAA_awright: Maybe it's changed since I last tried it [22:24] isaacs: you have to do require("npm").load([configs,], cb) [22:24] isaacs: where "configs" is an optional data object [22:24] AAA_awright: It's asking for command line arguments in a function... that's not how people use libraries [22:24] mandric has joined the channel [22:24] kubrow_ has joined the channel [22:25] micheil: isaacs: i think I'm going to need to experiment with it.. [22:25] isaacs: require("npm").load({.....}, function (er, npm) { npm.commands.install(["connect"], function (er, installed) { ... }) }) [22:25] CIA-99: node: 03Ryan Dahl 07master * r8f23583 10/ (4 files): [22:25] CIA-99: node: A few spelling fixes. [22:25] CIA-99: node: Thanks Bjarki. Closes GH-561. - http://bit.ly/g2ZIQk [22:25] ipmb has joined the channel [22:25] isaacs: micheil: no, i think install will always do a dependency check [22:25] micheil: hmm... okay [22:25] isaacs: micheil: you can hack it by putting a folder in the node_modules folder ;) [22:25] isaacs: but that's super weird and wrong [22:25] sstreza has joined the channel [22:25] xla has joined the channel [22:25] micheil: well, npm only goes based on the folders it can see [22:26] isaacs: micheil: right, but if it sees ./node_modules/foo/, then it won't resolve the dep for "foo" [22:26] isaacs: since it'll assume that you got it covered. [22:26] AAA_awright: isaacs: I have major problems with other package managers it isn't just npm... apt drives me crazy to no end and I haven't used an RPM-based system recently but from what I know it's mostly the same problems [22:26] ipmb: I'm trying to send a HTTP POST like this, but the connection never seems to close http://dpaste.de/Qpn8/ [22:26] ipmb: what am I doing wrong? [22:26] isaacs: AAA_awright: i am genuinely interested in your major problems [22:26] isaacs: . [22:26] micheil: on the server, I'm wanting to be able to go npm bundle (roughly) [22:27] derferman has joined the channel [22:27] aklt has joined the channel [22:27] isaacs: AAA_awright: this isn't me being insulted that you're seeing. i'm curious about the information buried in your desires, and i would like to satisfy you. [22:27] micheil: bbl. [22:27] halfhalo: ACTION laughs at that statement [22:28] AAA_awright: isaacs: As we've discussed before, making things semantically meaningful... Identifying certain files as "documentation" and "C source that builds X executable" and "C++ source that builds Y executable" Portage is the best at this but it's still a ways away [22:28] isaacs: AAA_awright: you mean like {"directories":{"doc":"./my-documentation"}}? [22:29] mandric has joined the channel [22:29] isaacs: AAA_awright: npm isn't make. tracking which c file builds which executable is outside of its scope [22:29] AAA_awright: isaacs: With npm, using chain-loaders or whatever it would be called, files that only contain "module.exports=require('actual path of module')" or such when symlinks would work just fine [22:29] isaacs: "chain loaders"? [22:30] isaacs: oh, so, yeah, symlinks don't work just fine. i wish that they did, and they will soon. also, symlinks don't work because windows doesn't have them. [22:30] isaacs: but, the shims are currently necessary because the require.paths stuff is wonky [22:30] isaacs: they're going away in 0.5 [22:30] AAA_awright: If Node.js doesn't support symlinks in Windows then that might be justified [22:31] AAA_awright: isaacs: Ideally a package manager could handle all those situations, where a small add-on package would define the semantics of a C compiler, etc... which other packages could refer to [22:31] country_ has joined the channel [22:31] isaacs: AAA_awright: what you're asking for is a build system. [22:31] isaacs: AAA_awright: i would enjoy building one of those [22:31] isaacs: but it's not quite the same problem. [22:31] isaacs: build system = micro, package manager = macro [22:32] AAA_awright: isaacs: Build system, package manager, and API documentation are highly related based on what I'm thinking [22:32] isaacs: they are definitely intertwined, and there is some overlap, certainly [22:32] AAA_awright: They would be seperate modules and whatnot, but could still use the same framework of description [22:32] isaacs: agreed [22:32] isaacs: but it is a slightly different problem set, with different priorities, etc. [22:33] clarkfischer: Yo, tim_smart, are you around? [22:33] isaacs: plus, i've never seen a build system as awesome as make. [22:33] tim_smart: clarkfischer: I am. [22:33] CIA-99: node: 03Ryan Dahl 07master * r97e1374 10/ (doc/node.1 lib/buffer.js): [22:33] CIA-99: node: Typos [22:33] CIA-99: node: Closes GH-557. [22:33] isaacs: turns out, though, building is not the hard problem. the hard problem is configuration. [22:34] tjholowaychuk: make is awesome, its the stupid system discrepancies that are the issue [22:34] isaacs: yeah [22:34] isaacs: the stuff in ./configure [22:34] jimt_ has joined the channel [22:34] isaacs: that's the hurty part. [22:34] AAA_awright: isaacs: So this was a quick idea I had for a semantic build system, which could generate packages or anything else, based on how the files were described http://69.72.216.27/guru/ It uses RDF/XML among other things, not the best (that's what DoaP, description of a project, is), but the idea is all there [22:34] saturdayplace has left the channel [22:34] AAA_awright: Ideally everything ./configure does would be handled by the same build system [22:34] stepheneb has joined the channel [22:35] techwraith: Hey tjholowaychuk: Can you pass params into next() in connect? [22:35] isaacs: AAA_awright: oh, hey, that reminds me, we never did resolve that rdf discussion/fistfight, did we? [22:35] isaacs: ;) [22:35] tjholowaychuk: techwraith: only an error [22:35] tjholowaychuk: (for now at least) [22:36] isaacs: AAA_awright: someone pointed out to me that, effectively, the npm data set IS rdf [22:36] techwraith: damn [22:36] isaacs: AAA_awright: just without the formalized mumbo jumbo around it [22:36] techwraith: alright, thanks :) [22:36] AAA_awright: isaacs: Well, you could easily convert it to RDF, the same data is there [22:36] bgilbert has joined the channel [22:36] isaacs: nono, i mean, like, depending on how flexible you wanna be with the definition of RDF, it already IS [22:37] pdelgallego_ has joined the channel [22:38] isaacs: it's just not as formally specified. but if you look at it as RDF-as-structured-information, then yes, between the local cache, an ever-expanding network of tarballs, files, and urls, and the registry, the npm package-space is an RDF information space. [22:38] AAA_awright: It's not /that/ flexible, there's a particular model, a labeled directed graph... [22:38] AAA_awright: isaacs: It might be better to say it represents a subset of the things RDF could express (and can do it more compactly) [22:38] sveimac has joined the channel [22:38] CIA-99: node: 03Ryan Dahl 07master * r4ea6916 10/ doc/api/process.markdown : [22:38] CIA-99: node: Correct process.kill doc [22:38] CIA-99: node: Thanks Kevin. Closes GH-518. - http://bit.ly/gy6KLF [22:38] niklasfi has joined the channel [22:38] isaacs: AAA_awright: it's a collection of terms which represent things and express relationships. [22:38] AAA_awright: Right [22:39] isaacs: it can't represent a family tree, or a graph of how different chemicals interact, or all the properties of all known birds. [22:39] isaacs: which other RDF information-spaces can [22:40] zomgbie has joined the channel [22:41] Fuld: ACTION is working on an opensource sentiment analysis engine for node.js [22:41] AAA_awright: isaacs: And also the JSON itself wouldn't be enough to make /useful/ RDF, you have to know which resource all that would be describing, so, add in the package name and yeah, you have all the same /data/ just in a different model (and format) [22:41] AAA_awright: Fuld: Like what? [22:42] Fuld: AAA_awright, for example, it will be used for brand monitoring of Twitter [22:42] AAA_awright: isaacs: By useful I mean, you could use the JSON to express some anonymous node, but an anonymous node isn't useful without a context [22:42] techwraith: Can you do res.writeHead more than once (will it add the new headers or overwrite them?) [22:42] isaacs: AAA_awright: well, there's always application logic. but when you look at the registry itself, the dist.tarball tells you where to find the package contents. when a package.json is parsed, its context is the folder it's sitting in [22:42] AAA_awright: er, some anonymous resource [22:43] isaacs: AAA_awright: that is, the json itself isn't RDF. but the json+context (whether provided by the parent data structure on the registry, or the filesystem context locally) forms an RDF space [22:43] Fuld: AAA_awright, it will determine whether a tweet about a brand (say godaddy) is negative, positive, or neutral. [22:43] isaacs: AAA_awright: i'm just parroting what i heard. i could not possibly care less about RDF if i was drugged. [22:43] BrianTheCoder has joined the channel [22:44] jakehow has joined the channel [22:45] AAA_awright: isaacs: It can form the data represented by RDF, again RDF is a particular model for expressing such data (statements made about URIs with 3-tuples), designed to make it more meaningful to wide systems like the entire Web [22:45] Fuld: Node.js is the perfect framework for analyzing real-time data [22:45] hobodave has joined the channel [22:46] AAA_awright: Fuld: Absolutely, I'm not too much into the natural language processing stuff but I am into analytical engines [22:46] jacobolus has joined the channel [22:46] Fuld: AAA_awright: More like finance? [22:46] Fuld: ACTION knows some quants. [22:46] echosystm has joined the channel [22:47] AAA_awright: Fuld: Yeah that sorts of stuff [22:47] AAA_awright: Fuld: Making relationships [22:47] Fuld: Profile matching? [22:47] AAA_awright: Hah no [22:47] bradleymeck: isaacs, do you know if we will be able to upgrade sockets to TLS after connection since setSecure is being deprecated [22:48] Fuld: Node.js is probably fun for daytrading :D [22:48] Fuld: ACTION used to do daytrading from math class on his laptop ;p [22:49] Lorentz: Fuld: Not a bad idea, actually [22:49] Fuld: Back then, I wrote it all in C [22:49] Lorentz: I was looking into maybe getting into forex one of these days. [22:49] Lorentz: They do have API calls for these things, so. [22:49] Fuld: This was right before the 2008 crash ;p [22:50] AAA_awright: Fuld: So you've got a bunco of data. Let's say, the time-series price of gold in $/oz in intervals of hours, and the time-series of closing price of oil futures, $/barrel. I'm interested in converting it to a common format (RDF) and dividing the two (interpolating where necessary), producing a new time-series of the price of Oil in ounces of gold (ozAu/barrel) [22:50] echosystm: is anyone here familiar with writing c++ extensions? [22:50] Fuld: The only problem is to make money, I had to put 20,000 at stake [22:50] void_ has joined the channel [22:51] echosystm: i'm getting a segfault and, for the life of me, i cannot work out hwy [22:51] Fuld: echosystm: Did you run valgrind/gdb on it? [22:52] echosystm: nope, i'm pretty green with c++ [22:52] Fuld: AAA_awright: Interesting. [22:53] Fuld: echosystm: Or you coulc always use the oldest debugging option know (printf) [22:53] AAA_awright: Fuld: I'm working on a memory store database to handle that sort of data and do exactly that... Since I can't get any existing stores that do what I need, and it's simple enough to do from scratch [22:54] echosystm: i'll try gdb [22:54] echosystm: bbs [22:54] ddollar has joined the channel [22:55] Fuld: AAA_awright: Have you played with the time-series graphs on gold vs. oil? [22:55] mediacoder has joined the channel [22:55] AAA_awright: Fuld: I've only ever seen it once... About a year ago I made a PHP program that could graph the oil price but that's it [22:56] Fuld: I would be interesting to see how the two correlate in price (or not) [22:56] Fuld: *It [22:56] ChrisPartridge has joined the channel [22:56] isaacs: bradleymeck: there's a new API for this in 0.3.latest [22:56] AAA_awright: Fuld: They correlate really well for some interesting reason, try googling it you might find an old chart [22:56] rjrodger has joined the channel [22:56] isaacs: bradleymeck: in short, yes. you can do TCP over TLS [22:56] bradleymeck: isaacs it just has createConnection in the docs [22:57] jchris has joined the channel [22:57] bradleymeck: not negotiating after time [22:57] AAA_awright: Fuld: Mostly because of how recessions and price inflation affect them [22:57] AlexMax has joined the channel [22:57] Fuld: AAA_awright, they both allow people insulate themselves from inflation for example [22:57] Fuld: yeah [22:57] sveimac has joined the channel [22:58] rachelbutts has joined the channel [22:58] jimt has joined the channel [22:59] rex_fernando has joined the channel [22:59] AAA_awright: Fuld: http://www.incrediblecharts.com/economy/gold_oil_ratio.php [22:59] Fuld: I wish we could trade Lady Gaga stock like a security [22:59] Fuld: Equity in people, hmm [22:59] AAA_awright: So it varies +-100% but not terrible considering inflation [23:00] broofa has joined the channel [23:00] Fuld: It would be interesting to see if one leads the other [23:01] AAA_awright: That graph is inverted for some reason, it's barrels per ounce of gold [23:01] AAA_awright: I would put gold on top because it's more often the money [23:03] Fuld: I imagine there's going a market in web apps/web services for non-institutional investors to use [23:03] Fuld: Probably a lot more proprietary web-based tools will pop up [23:03] tapwater has joined the channel [23:04] admc has joined the channel [23:04] Fuld: After all, the goldrush was most profitable for the suppliers--Levi Strauss for example :) [23:05] AAA_awright: Fuld: Also, providing good tools to manipulate the data... Having a grapher that knows the independent veriable and puts it on the x-axis, labels units, etc [23:07] namelessnotion has joined the channel [23:07] Fuld: Haha, I coded something like that in C and xlib back in high school algebra class [23:07] Fuld: I freaked out my math teacher. Of course, mine had some flaws :) [23:08] Fuld: It was limited to linear equations though [23:11] AAA_awright: Fuld: No reason it couldn't be extended to symbolic math instead of just data sets [23:12] Fuld: yeah [23:13] mfernest has joined the channel [23:13] Fuld: Make it free and aggregate people's protfolio data to make your own trades ;p [23:13] Fuld: *portfolio [23:16] brianc: augustl: you're correct [23:16] brianc: augustl: if you send in parameters to the query it executes a prepared statement against the database [23:16] liar has joined the channel [23:19] blueadept has joined the channel [23:22] jashkenas has joined the channel [23:22] ryah: tcp over tls? [23:22] ryah: can i do tls over tcp over tls over tcp ? [23:22] ryah: :) [23:22] dipser has joined the channel [23:23] Fuld: ryah, only if you get an override from the National Bureau of Internet Communications [23:24] MatthewMueller: Does anyone know where npm actually stores packages on your computer? [23:24] isaacs: MatthewMueller: npm get root [23:24] isaacs: MatthewMueller: it puts them there^ [23:25] Fuld: The future is bright for the public sector. Once the teaparty gets into office, we'll have a War On Trolls. [23:25] tanepiper: http://blog.tanepiper.com/nodejs-code-swarm-video-17th-feb-2009-26th-ja [23:25] SubStack: a tanepiper blog! [23:26] ryah: MatthewMueller: you're not meant to know [23:26] tanepiper: although annoyingly i encoded it at 720p but it;s fuzzy :( i hope that's just first pass encoding on their end [23:27] MatthewMueller: isaacs: npm get root just gives me a list of commands saying "Usage: npm " [23:27] isaacs: MatthewMueller: try `npm config get root` [23:27] isaacs: MatthewMueller: also, update npm :) [23:28] MatthewMueller: ryah: Yah, I'm just trying to figure this package manager stuff out for my own module ;-) [23:28] isaacs: MatthewMueller: if you wanna dive into the folder that npm uses for a particular package (right into the guts of it) you can do `npm explore ` [23:28] isaacs: MatthewMueller: also `npm help folders` [23:31] techwraith: If you call res.writeHead twice does the second one overwrite the first? [23:32] tjholowaychuk: i would think that would lead to a messed up response [23:33] BrianTheCoder has joined the channel [23:33] ryah: techwraith: i think it throws an error [23:33] techwraith: I'm trying to figure out how this works: http://github.com/antono/connect-cors [23:33] techwraith: He seems to be setting headers twice [23:33] italic has joined the channel [23:34] italic: is there a rss feed for dev releases? [23:34] [[zzz]] has joined the channel [23:34] MatthewMueller: isaacs: Okay awesome. I have one more scenario / workflow question for you.. is there a good way to auto-rebuild a package during development? [23:34] jchris has joined the channel [23:35] torvalamo: bash script called from your editor when you save files? [23:35] isaacs: MatthewMueller: i just do `npm link` in the package dir, and then run `npm link` again when i want to rebuild [23:35] isaacs: MatthewMueller: script that however you prefer [23:37] k3yvn has joined the channel [23:38] isaacs: MatthewMueller: there's also a "rebuild" command, but it's probably not what you're after here. [23:38] MatthewMueller: isaacs: So I'm developing my application CoolApp and I discover a bug in one of my packages, I go into the packages folder, run npm link, hack it up - testing it in CoolApp, then re-run npm link when I'm all set? [23:39] isaacs: well, if it's just a js pacakge (no compiled stuff) then you don't even have to re-run npm link. [23:39] isaacs: the link just creates a symbolic link from ~/projects/node-apps/CoolApp to /usr/local/lib/node/.npm/CoolApp/1.2.3/package [23:41] ryanfitz has joined the channel [23:41] tanepiper: isaacs: is there any way around npm link thinking it's only a dev package? [23:41] isaacs: oh, *you're* the one who was askng about that [23:41] isaacs: currently, no. [23:41] isaacs: can you post an issue on it? [23:41] isaacs: tanepiper: preferably include what you're trying to do that doesn't work currently. [23:41] isaacs: (not just the desired change) [23:42] tanepiper: sure, dunno if i mentioned it to you though [23:42] tanepiper: it's not that it doesn't work, but its more to do with the deployment solution, as in our app will never hit npm repos, but does use npm for dependancies and installing the bin script [23:43] isaacs: tanepiper: right [23:43] tanepiper: so any time there is a deploy, there will just be a git pull [23:43] isaacs: it'd help to know what about the current behavior hurts you [23:43] isaacs: ie, why --dev is harmful in that situation [23:43] tanepiper: well this is for production deployment, it's more a style over functionality issue [23:44] tanepiper: becasuse once the app is linked, it never really needs to be run again with git pull on production [23:44] tanepiper: but having it as app-0.9999DEV (or whatever it is) just looks ugly [23:45] tanepiper: it might not be the right solution in the end anyway, i found out about bundle [23:46] phiggins has joined the channel [23:46] tanepiper: and I know micheil is working on something now that may be a better solution in the long run [23:47] ryah: http://msdn.microsoft.com/en-us/library/ms682016(v=vs.85).aspx [23:47] ryah: yes, the windows version involves character encoding. [23:47] ryah: (stab) [23:48] MikhX has joined the channel [23:49] flukes1: ryah: you want me to fix some style issues with a pull req I made; that's fine, but do you want me to just make another commit which fixes those issues or is there some other way this is typically handled [23:49] flukes1: <- git noob [23:53] Evet has joined the channel [23:54] zemanel: i'd like to port the zetacomponents workflow engine to node but the thing is so damn huge http://incubator.apache.org/zetacomponents/documentation/install.html [23:54] zemanel: i wonder if there's any interest i it [23:54] zemanel: in [23:59] keyvan- has joined the channel