[00:00] ryah: augustl_eee: https://github.com/isaacs/npm/tree/master/doc [00:00] augustl_eee: thanks! [00:01] CIA-54: node: 03Ryan Dahl 07master * ra0159b4 10/ (159 files in 7 dirs): Fix global leaks - http://bit.ly/g6T5EI [00:04] augustl_eee: should I use my-cool-project, my_cool_project or myCoolProject as my npm package name? I have a hunch it's the 1st one [00:04] sechrist: anything recently change with buffer? https://gist.github.com/728618 [00:04] jsilver has joined the channel [00:05] ryah: sechrist: 0.2 and 0.3 changed the c++ api for buffers [00:05] ryah: between 0.2 and 0.3 that is [00:05] sechrist: ah yeah that's where I jumped [00:06] langworthy has joined the channel [00:06] aaronblohowiak: augustl_eee: the first one [00:06] anynick has joined the channel [00:07] RevoOf has joined the channel [00:08] mscdex: ryah: should stack traces from node_g include stuff from node c++ land? [00:08] SubStack: sechrist: good news, that [00:08] sugardave has joined the channel [00:09] sechrist: SubStack: https://gist.github.com/728620 [00:09] ryah: mscdex: no [00:09] mscdex: d'oh [00:09] unomi has joined the channel [00:09] svnlto has joined the channel [00:09] sechrist: SubStack: that may break some flow if there's like "continue" or something for forever -- but that's the problem [00:09] sechrist: ryah: any pointers to the changes for the buffer api? was it on the mailing list? [00:10] SubStack: sweet [00:10] langworthy has joined the channel [00:10] SubStack: sechrist: do a pull request [00:11] sechrist: SubStack: Binary doesn't do anything like breaking out of a forever or something does it? [00:11] anynick has left the channel [00:11] mscdex: ryah: any easy way to debug within c++ land? cygwin seems to be failing in EvalMachine i think [00:11] sechrist: that fix wouldn't work in that case [00:11] SubStack: well there are expresso tests [00:11] SubStack: just change it and see if they still pass [00:11] sechrist: ah ok [00:12] sechrist: <3 unit tests [00:13] SubStack: blech one of them seems broken [00:13] isaacs_ has joined the channel [00:13] SubStack: before applying any changes [00:13] sechrist: welp [00:14] augustl_eee: in NPM dependencies, can I say I want to depend on "1.x.x"? I.e. any version of major version 1 [00:14] sechrist: SubStack: is it trivial? should I wait for a commit? [00:15] augustl_eee: ">1.0.0 || <2.0.0" perhaps. I wonder if that breaks for version 1.1 - i.e. no third digit [00:15] ryah: mscdex: gdb [00:15] SubStack: Wait for a commit? What does that mean? [00:15] SubStack: oh on the test [00:15] SubStack: well if you just do [00:15] SubStack: for js in test/*.js; do echo $js; expresso $js; done [00:16] SubStack: and kill the ones that stall [00:16] SubStack: but I'm fixing them [00:17] mikeal has joined the channel [00:17] maushu_ has joined the channel [00:17] masahiroh has joined the channel [00:17] sechrist: SubStack: there's a ton of fail for me, mainly because of equal [00:18] aaronblohowiak: New install script for node: https://github.com/aaronblohowiak/curl-install-node ;-) [00:18] SubStack: old tests [00:18] SubStack: sechrist: before the changes? [00:18] sechrist: yeah [00:18] sechrist: fresh fork [00:18] DTrejo: aaronblohowiak: dude, make a combined one that also installs npm :) [00:18] SubStack: what node version? [00:18] sechrist: npm installed expresso [00:18] sechrist: v0.3.2-pre [00:18] SubStack: oh I had this issue on a fresh install too [00:19] SubStack: expresso and 0.3 don't play nicely [00:19] sechrist: wah [00:19] sechrist: I need 0.3 for node-profiler but so many things want me to use 0.2 [00:19] sechrist: I may need dual installs [00:19] aaronblohowiak: DTrejo: oooooh, that should be my next big (> 4 LOC) project [00:19] SubStack: yeah it sucks [00:20] SubStack: well you could just run the tests with a little script that calls all the exports with require('assert') [00:20] aaronblohowiak: DTrejo: should i install npm as root, just to give isaacs an ulcer? [00:20] DTrejo: haha, no [00:20] sechrist: SubStack: I went back to 0.2.5 and same problem [00:20] SubStack: odd! [00:20] SubStack: did you completely reinstall expresso? [00:20] sechrist: ooh [00:20] sechrist: no [00:21] DTrejo: aaronblohowiak: you going to make .mpkg's or something like that for mac? and a .exe for pc hehe ? [00:21] SubStack: and try another package's test for comparison maybe also [00:21] DTrejo: scratch the pc idea [00:21] sechrist: recompiling expresso [00:21] SubStack: oh I had such a hard time earlier this week reverting down to 0.2.5 and getting npm to not include 0.3 libs [00:21] sechrist: for 25 [00:21] sechrist: still failed [00:21] sechrist: gah [00:21] aaronblohowiak: DTrejo: if you look at my install scripts for versions, all they do is set an ENV var, and then curl and pipe another script from my github [00:21] aaronblohowiak: hahaha [00:22] DTrejo: yeah I saw [00:22] DTrejo: DRY at its best [00:22] sechrist: can I just import assert? [00:22] Rixius has joined the channel [00:22] sechrist: oh I see [00:23] SubStack: ok just fixed the tests [00:23] SubStack: just some server/client race conditions [00:23] DTrejo: aaronblohowiak: I'm working on a JS compression comparison mini-site [00:23] aaronblohowiak: DTrejo: oooo, that's pretty cool. are you at hacker dojo? [00:23] DTrejo: right now I have jsmin vs uglify, going to add closure and packer, hopefully tonight [00:24] wtfwtfwtfwtfwtf has joined the channel [00:24] DTrejo: aaronblohowiak: hehe no, I'm at brown [00:24] aaronblohowiak: DTrejo: oh, burrrr [00:24] DTrejo: do they have saturday night events? [00:24] RevoOf has joined the channel [00:24] aaronblohowiak: DTrejo: well, it is SHDH today so there are like 50 people here hacking away on laptops [00:24] sechrist: SubStack: how did you go between .3 and back to .2? [00:24] sechrist: I'm still having expresso issues [00:25] sechrist: do I have to uninstall all npm packages? [00:25] Rixius: what's SHDH ? [00:25] aaronblohowiak: Rixius: "The premier monthly hackathon event that combines serious and not-so-serious productivity with a fun and exciting party atmosphere." http://superhappydevhouse.org/w/page/16345504/FrontPage [00:25] DTrejo: aaronblohowiak: just RTed heh [00:26] aaronblohowiak: DTrejo: bwahahaha, now i will add a rootkit [00:26] DTrejo: nooo [00:27] SubStack: sechrist: had to delete everything in the npm root [00:27] sechrist: fudge [00:27] SubStack: and even that didn't work right away, I had to do something else too [00:29] MattDiPasquale has joined the channel [00:29] mklappstuhl has joined the channel [00:30] sechrist: SubStack: what version of expresso are you running? [00:30] sechrist: 0.7.0? [00:31] SubStack: yes [00:32] jchris has joined the channel [00:32] mklappstuhl: how do you handle the downsides of using coffeescript? i imagine that debugging for example could get quite complicated [00:32] DTrejo: aaronblohowiak: it's surprising, but there's no standalone JS dean edward's packer on github [00:32] DTrejo: I might do that [00:33] sechrist: SubStack: ahh the tests don't have ../ in path so it wants an already installed module for them [00:33] sechrist: I think that's simple to solve though [00:33] Rixius: Dtrejo: You should [00:33] DTrejo: mmk :) [00:34] aaronblohowiak: DTrejo: i dont know dean edward's packer.. [00:34] Rixius: and link me to the repo and i'll fork it [00:34] aaronblohowiak: DTrejo: is that the thing that will also change variable names? [00:34] richcollins has joined the channel [00:34] DTrejo: Rixius: aaronblohowiak : http://base2.googlecode.com/svn/trunk/src/apps/packer/packer.html [00:35] DTrejo: http://code.google.com/p/base2/ [00:35] DTrejo: Rixius: that version targets the browser, and there's a rhino version, but ima make one that works well with node I think [00:36] Rixius: sweet [00:36] mklappstuhl has joined the channel [00:36] wdperson has joined the channel [00:36] aaronblohowiak: DTrejo: oooh, interesting [00:36] maushu__ has joined the channel [00:36] Rixius: I wanted the YUI Compress for node, but its only Rhino so a Dean Edwards Packer that's node-compatible would be awesome [00:37] arrty has joined the channel [00:37] DTrejo: Rixius: if I do a require('./module') it puts things into the global namespace right? [00:38] bingomanatee__: what is the best way to implement inheritance in node? [00:38] DTrejo: actually nvm [00:39] chrisdickinson: bingomanatee__: require('util').inherit works pretty great. [00:39] bingomanatee__: thanks [00:39] bingomanatee__: DTrejo - its worth experimenting to verify but I belive you have to require modules in a file by file level unless you actually use the global variable. [00:39] chrisdickinson: bingomanatee__: i left off an "s": require('util').inherits [00:41] mklappstuhl has joined the channel [00:41] bingomanatee__: thanks [00:42] mklappstuhl: can anyone read this? [00:42] bingomanatee__: not seeing that in http://nodejs.org/docs/v0.3.1/api/util.html - is it undocumented? [00:42] aaronblohowiak: mklappstuhl: no, i forgot how to read =( [00:43] isaacs has joined the channel [00:44] aaronblohowiak: bingomanatee__: https://github.com/ry/node/blob/master/lib/util.js [00:44] mlu has joined the channel [00:45] bingomanatee__: guess so... [00:45] mlu: I've been seeing a few things written on top of node.js, and they all seem to utilize the event loop stuff very well [00:45] mlu: so I've been thinking about just playing around with it [00:45] mlu: are there any frameworks that you guys would recommend? [00:46] aaronblohowiak: mlu: http://nodejs.org/docs/v0.3.1/api/appendix_1.html [00:46] mlu: or is that not necessarily the best way to get introduced to node.js if I'm looking at it mainly for developing web apps? [00:46] mklappstuhl has joined the channel [00:46] mklappstuhl: hey again [00:46] mlu: aaronblohowiak: thanks [00:47] jesusabdullah: mlu: I think express would be a good place to start. [00:47] jesusabdullah: (that is, if you want framework) [00:47] mlu: ah [00:47] aaronblohowiak: is anyone using express on 3.1 ?? [00:48] mklappstuhl: can anyone explain me my i should use coffeescript? i'm somehow missing the point here, since i mostly see the aspect of harder debugging [00:48] mlu: far as I see it: I'd choose to use node.js over something like Rails if what I used could really benefit from having a lot of constantly open connections and dynamically established processes, right? [00:48] aaronblohowiak: mklappstuhl: use it if you like it. [00:49] mlu: (eg. it isn't your traditional ReSTful webapp) [00:49] dannycoates has joined the channel [00:49] aaronblohowiak: mlu: yes. or if you want lower memory usage and faster execution than rails [00:51] CIA-54: node: 03Ryan Dahl 07master * r92789b1 10/ (30 files in 5 dirs): Fix global leaks - http://bit.ly/fKWS7k [00:51] CIA-54: node: 03Ryan Dahl 07master * r02cc39f 10/ (8 files in 2 dirs): Check for global leaks in all tests - http://bit.ly/grrwF9 [00:52] jimt_ has joined the channel [00:52] aubergine has joined the channel [00:54] AAA_awright_ has joined the channel [00:55] jesusabdullah: mlu: Or, if you just prefer javascript [00:56] davidc_ has joined the channel [00:58] sechrist: SubStack: k I got it working with new expresso, fixed some of the tests to handle buffer with toString() [00:58] sechrist: however I'm not sure what to do about your happy purring cats test just yet [00:58] peterwmwong1: mlu: coffeescript? for me, my pain threshold for typing 'function', {, and } was low :) [00:58] sechrist: abstracting javascript sounds like a bad idea [00:58] sechrist: especially for just {} [00:59] DTrejo: Rixius: blorg. [00:59] SubStack: sechrist: also note that I just pushed some updates [00:59] SubStack: might fix stuff [01:00] bingomanatee__: It seems to me that if typing syntactically correct structures is an unbearable burden to you you should consider other careers. [01:00] DTrejo: Rixius: it's built on base2, and there's some importing / file concatenation stuff, hmm [01:00] sechrist: I upstream fetched your last commit [01:00] sechrist: iirc [01:00] DTrejo: need to read more [01:00] bingomanatee__: IMHO [01:00] sechrist: none of them hanged [01:00] sechrist: just comparison with Buffers and strings without tostrings [01:01] mlu: <-- also a Java and C programmer; the { }'s are something I routinely use everyday [01:01] mlu: the real thing that actually gets to me is actually code that's dependent on indentation [01:01] bingomanatee__: I spent the last seven years typing $ and -> for PHP - you can suck up a few braces. [01:01] bingomanatee__: :D [01:02] mlu: ah yes, $'s were the real reason I ditched PHP [01:02] mlu: when I see a $ sign, it better be on an invoice I sent out [01:02] langworthy has joined the channel [01:02] SubStack: there are so many more better reasons [01:02] bingomanatee__: yeah well try doing $$varname in JavaScript! (heh) [01:03] cafesofie has joined the channel [01:04] MattDiPasquale has joined the channel [01:04] mlu: ah, yeah -- inconsistency, and the fact that if I'm writing a webapp, the whole notion of scripts as files (and using PATHINFO for clean URLs / whatnot) felt like a hack [01:04] bingomanatee__: PHP has several outstanding performance issues. [01:05] SubStack: the most glaring problem remains unmentioned: thousands of functions in core [01:05] SubStack: with inconsistent parameters and naming [01:05] mlu: hence why I find Rails nice compared to PHP / Perl / CGI; the whole framework goes to routes and the need for dirty rewrites, etc. are no longer necessary [01:05] mscdex: some of that is for backwards compatibility though [01:06] mscdex: like implode [01:06] mscdex: heh [01:06] mlu: among the same lines, that's what got me looking at node.js: it goes a step further [01:06] SubStack: I don't like how rails focuses on the database for everything [01:06] bingomanatee__: I always wondered why they didn't have more discipline in the library system. -- but I defy you find a language that old that doesn't have legacy issues. [01:06] bingomanatee__: Show me node.js in ten years. [01:07] SubStack: want to pass a message to another piece of the codebase? write it to the database! [01:07] paulrobinson has joined the channel [01:07] mlu: there's a right tool for everything [01:07] SubStack: bingomanatee__: javascript already has buckets of legacy issues [01:07] bingomanatee__: 4 sure [01:07] AAA_awright_ has joined the channel [01:07] twoism has joined the channel [01:08] mlu: sure, I may write some really exciting app that could take advantage of node.js, but chances are, most of the projects I do are your boring ol' customized interface to a DB [01:08] bingomanatee__: an especially unhelpful typeof is a good place to start. dom. etc. [01:08] SubStack: but javascript doesn't have the runaway snowball-earth scale legacy issues that php has accumulated [01:08] AAA_awright: mlu: What other symbol would you use? [01:08] bingomanatee__: uh.... DOM? [01:08] AAA_awright: $ is brilliant, to mark variables [01:09] bingomanatee__: foo [01:09] mlu: AAA_awright: why bother marking out variables when they can be implied? [01:09] AAA_awright: Because you can't always imply them [01:09] AAA_awright: In templates, and PHP is a templating language [01:09] mlu: eg. people phased out hungarian notation with typed languages [01:09] AAA_awright: Personally I would even make item access use that... $item$subitem$array$0 [01:10] mlu: ah, yeah, $'s are nice when you just want them for substituion in templates [01:10] sechrist: SubStack: pullreq'd [01:10] bingomanatee__: You can use $ in javascript if you feel like it :D [01:10] mscdex: gah i have no idea what the problem is on cygwin [01:10] spetrea__ has joined the channel [01:10] AAA_awright: For some strange reason [01:10] mscdex: there are null handles for some reason [01:11] mlu: it's just that if I'm writing a heavy-duty algorithm (eg. say, processing a dataset with an NP-complete algorithm, I better not have $'s in my variables) [01:11] okuryu has joined the channel [01:11] SubStack: 100% wooo [01:12] mscdex: back to oscar [01:12] mscdex: heh [01:12] bingomanatee__: I'd love to see you pass off your coding issues to a client by blaming dollar signs (or their absence.) [01:14] isaacs has joined the channel [01:14] sechrist: SubStack: you may want to adapt the happy purring cat test -- I wasn't exactly sure what it was doing [01:14] sechrist: the reason it broke was because sys.inspect(buffer) provides Buffer<> stuff now [01:14] mlu: lol -- "you see, these $ signs in the code indicates my need for more $$$ -- pay up and you'll get working code, hopefully" [01:15] bingomanatee__: The world is not enough. [01:15] sechrist: I need a better list of companies that use node in production [01:16] sechrist: one of our investors asked "what is nodejs and who is using it" [01:16] halfhalo: that one company does [01:16] sechrist: my answer wasn't good [01:16] sechrist: all I could say is plurk [01:16] bingomanatee__: Say Facebook. [01:16] halfhalo: palm? [01:16] sechrist: facebook is using njs now? [01:16] sechrist: ooh palm [01:16] sechrist: right! [01:16] bingomanatee__: By the time they verify one way or another the contract will be over. [01:16] mlu: I'd say - "not many companies are using it yet, but we are on the cutting edge" [01:16] halfhalo: well, hp [01:16] halfhalo: go with hp since it sounds bigger [01:17] sechrist: mlu: that scares them.. we have a ridiculous SLA and we're enterprise aimed [01:17] SubStack: if a lot of companies aren't using something that is better than if a lot of companies are [01:17] sechrist: they were scared about django instead of enterprise java [01:17] isaacs_ has joined the channel [01:17] mlu: sechrist: Google [01:17] bingomanatee__: Come on - Facebook has 300 + programmers -- do YOU want to find out what each and every one of thejm are using to solve problems? [01:17] bingomanatee__: Or say Ebay. Even better. [01:17] SubStack: sechrist: those investors sound way too micromanaging [01:17] bingomanatee__: Nobody knows what the hell is going on in Ebay. [01:17] sechrist: I have to back up the company name with how they have it implemented [01:17] sechrist: for decent discussion [01:17] bingomanatee__: They use it to manage their internal logs. [01:18] SubStack: also what kind of investors prefer companies that use java? [01:18] halfhalo: fake some google web pages! [01:18] sechrist: okay [01:18] halfhalo: Bingo! [01:18] mlu: I believe part of the infrastructure powering google docs is based on node.js, since the technology originally came from Etherpad, which was written on top of node.js [01:18] sechrist: also I can't lie about what facebook is doing [01:18] sechrist: accel is one of ours as well [01:18] bingomanatee__: Or they keep track of their Foosball ladder. [01:18] bingomanatee__: You can always call it a CommonJS library -- that gives you a wider pool to draw on. [01:18] sechrist: uh huh [01:18] mlu: but yeah, even if it's enterprise-aimed, it's still a selling point: sure, it hasn't been time-tested, but you have reason to believe why it'd be stable and more scalable [01:19] sechrist: time tested is a lot less important in this kind of community [01:19] mlu: hence, you spin it in the direction that your company is being one of the first in the field -- no competitors [01:19] sechrist: kickass unit tests take away that need [01:19] sechrist: but it's hard to explain that [01:20] mlu: if you can't get it across to those investors, they aren't worth your time [01:20] mlu: you know why many investors fail? it's because they can't see the future [01:20] sechrist: oh that's not it [01:20] sechrist: it's just i have to provide a valid argument [01:20] sechrist: it's not they're against anything [01:20] MikhX_ has joined the channel [01:20] SubStack: judging new companies based on the technologies of successful companies 5 or 10 years ago seems really stupid [01:21] sechrist: they want to know why they are betting their money, and ultimately development time on a new infrastructure called "NODEJS" has to be backed up [01:21] mlu: valid argument: event-based system allows better scalability, less complexity = less points of failure, etc. [01:21] SubStack: and anyways, who is a better judge of technology stacks: programmers or suits? [01:21] sechrist: of course [01:21] sechrist: but they feed me [01:21] mlu: some people feed you better than others :P [01:21] spetrea__: fingers hurtin from so much keyboard jackhammering [01:21] aaronblohowiak: sechrist: the IT department, or the security consultants [01:22] aaronblohowiak: :-) [01:22] spetrea__: mlu: part of google docs is on node.js ? [01:22] bingomanatee__: "I have been programming in PHP|Rails|Java and have found that like most people in the industry these langauges don't address performance issues that node.js does." [01:22] spetrea__: ryah: are you working for google ? [01:22] sechrist: granted most of them are reading hacker news so they know what it is [01:22] aaronblohowiak: spetrea__: get a buckling-spring keyboard... i used to have constant pain but it went away within two weeks. some people really benefit from longer key action [01:22] sechrist: they're more wanting to know if I know why we're using it and not just drinking koolaid [01:22] sechrist: it's a bidirectional question [01:22] spetrea__: aaronblohowiak: the cherry keyboards are buckling-spring ones ? [01:23] agilandfast has joined the channel [01:23] mlu: spetrea__: think so; the company they bought out in order to improve google docs based their core technology on node.js [01:23] SubStack: just drop the magic line: everybody knows javascript [01:23] spetrea__: mlu: that sounds pretty awesome :) [01:23] sechrist: SubStack: not where I work [01:23] spetrea__: mlu: where would I read news like this about node.js ? I seem to be utterly un-informed [01:23] mlu: spetrea__: after incorporating some of that, google docs got much more interactive (eg. collaborative editing went down from the 10s scale to the 1s scale) [01:23] aaronblohowiak: spetrea__: i dont know about cherry keyboards.. http://en.wikipedia.org/wiki/Buckling_spring [01:23] bingomanatee__: E N J does work - however I would emphasize unparallelled performance. [01:23] sechrist: I scold people on trailing commas in JSON arrays and shit [01:23] mlu: spetrea__: this isj ust one isolated case I've heard about [01:24] aaronblohowiak: sechrist: just require jslint passing as part of your test suite [01:24] spetrea__: mlu: where did you hear about it ? [01:24] mlu: I'd imagine Google went: hey, they used node.js, and that really helped in terms of efficiency; and even if they didn't use node.js, at least they probably now have an event engine somewhere on the stack and borrowed lots of the big ideas [01:24] sechrist: "test suite" [01:24] bingomanatee__: Or you could just use Rails and when you get performance issues roll in Node.js to solve the problem :D [01:24] mlu: spetrea__: I joined a group for a programming competition, and the project was to improve on Etherpad, a webapp written on top of node.js [01:25] mlu: and I found out about this after doing a bit of research on that [01:25] sechrist: can jslint read javascript out of html templates and stuff? [01:25] sechrist: actually no it would have to be rendered and tested with the build process [01:25] sechrist: so that's after the fact [01:25] confoocious has joined the channel [01:25] confoocious has joined the channel [01:25] bingomanatee__: A hybrid approach might be more defensible if you are dealing with that level of micromanagement. [01:25] sechrist: git hooking js files with jslint exceptions sounds like a good idea if it's possible to implement [01:26] jamund has joined the channel [01:26] SubStack: sechrist: 0.0.5 live [01:26] mlu: I didn't really start looking at node.js seriously though until I Found out that Heroku was hiring people experienced in node.js to develop their next platform [01:26] sechrist: learnboost really turned me onto it with socketio [01:26] spetrea__: aaronblohowiak: can I still find those buckling thingies ? [01:26] SubStack: I just needed a faster way to pump data through a browser than ajax [01:26] sechrist: but I was trying it out before that -- but socketio just stapled it down as kickass [01:27] Rixius: mlu: I was watching videos from jsconf and was like JS on the server? Baked with pure Awesome!! [01:27] sechrist: even my cto kind of drilled me about node [01:27] sechrist: his first question was "what recent improvements in serverside js make node better than rhino and other previous implementations" [01:27] sechrist: I said v8 and he was like, alright [01:28] mlu: at the time, I didn't quite understand the awesomeness of Javascript [01:28] spetrea__: I've written a jabber bot in node.js, it sometimes disconnects with ECONNECTIONRESET , I've installed a callback on "error" event and still it disconnects that way .. :( [01:28] sechrist: but some people are concerned about it's debuggability when you get into ridiculous closures [01:28] sechrist: like chainsaw [01:28] spetrea__: can't figgure it out .. [01:29] bingomanatee__: You can throw Douglas Crockford videos at him. [01:29] SubStack: chainsaw isn't the least of it! [01:29] spetrea__: bingomanatee__: you think managers resonate with Crockford ? [01:30] sechrist: well I mean isn't haskell hard to debug? [01:30] bingomanatee__: If they don't then you aren't likely to sell node in house :D [01:30] sechrist: coroutine shiz [01:30] sveisvei has joined the channel [01:30] DTrejo: Rixius: WHAT HORROR [01:30] SubStack: sechrist: try debugging a race condition when you don't even know if the callback you get was defined on the server or the client [01:30] spetrea__: I do node in-house but I'm having a couple of problems with it ... (see above) [01:30] SubStack: the power is still worth it [01:30] sechrist: SubStack: aigh [01:31] mscdex: the Crockford Files! [01:31] DTrejo: Rixius: his code does all kindsa old browser detection, and the packer depends on his really old library, so I'd have to unravel everything he is using / write it myself [01:31] bingomanatee__: I am rolling in node under an established platform but in a very narrow spectrum. [01:31] mscdex: http://i27.tinypic.com/2yzn2u8.jpg [01:31] sechrist: I mean ryan's argument is that nodejs puts developers in a jail that doesn't let them make low-performance stuff [01:31] DTrejo: mscdex: do you know of an edward's packer implementation in JS? [01:31] sechrist: that is kind of true [01:31] creationix: ACTION is having polishing game demos for node-camp [01:31] sechrist: but until you get into complex arrangements [01:31] Druid_ has joined the channel [01:31] sechrist: your hello-world programmer isn't going to understand race conditions [01:31] mscdex: creationix: doom.js [01:32] sechrist: or coroutines [01:32] SubStack: beginners shouldn't be writing important systems [01:32] sechrist: true that [01:32] creationix: hello-world programmers should be confused so that they have incentive to change [01:32] mscdex: DTrejo: never used that, so i'm not sure [01:32] SubStack: nor should the grown-up tools need to cator to novices [01:32] peterwmwong1 has left the channel [01:32] mlu: advanced developers should still be shielded from stupidity (but not restricted due to it) just as a safety measure [01:32] sechrist: creationix: when is node-camp, and is it in the bay area? [01:33] sechrist: I need to bring my guys to some nodecon [01:33] SubStack: although I think grown-up tools should look superficially like beginner tools [01:33] creationix: everyone is a diaper poopin, milk drinking baby once in their life, but it shouldn't be a permanent status [01:33] DTrejo: mscdex: oh. in case you want to know what it is: http://base2.googlecode.com/svn/trunk/src/apps/packer/packer.html (and yes this is JS, but it has all kinda strange stuff in there two) [01:33] mscdex: DTrejo: although not written in JS, i generally use the google closure compiler [01:33] SubStack: False sense of security! Oh look, it's just a one-liner... oh wait... [01:33] creationix: sechrist: it's in sf, but I'm pretty sure it sold out a while back [01:33] sechrist: damn [01:33] mlu: eg. I literally put >2000 miles on my bicycle every year, using it as a commuting device, but am I more than thankful I have a helmet when I ride it after a couple all-nighters and have the rare crash [01:33] creationix: we will put the materials all online [01:33] DTrejo: mscdex: yeah. I'm working on a JS compression comparison site, so i was thinking I'd have his in there along with gclosure [01:34] creationix: sechrist: http://camp.nodejs.org/ [01:34] sechrist: " We are looking into options to add more spots – get on the waitlist!" [01:34] sechrist: noooes [01:34] sechrist: damn this looks amazing [01:34] sechrist: ACTION is pissed [01:34] softdrink has joined the channel [01:35] sechrist: global tour [01:35] sechrist: do south bay [01:35] googol has joined the channel [01:35] mlu: hmm... camp.node.js -- if only I didn't have two finals that day :/ [01:36] mlu: ACTION is actually in the area too nad has a free bus pass to get there also [01:36] bingomanatee__: <-- going! [01:36] DTrejo: mlu: ucb? [01:37] mlu: DTrejo: yep :) [01:37] sechrist: creationix: is it likely more space will arrive? and is the wait list super crazy? [01:37] DTrejo: mlu: nice, you know Eric Zhang? [01:37] DTrejo: ericzhang.com [01:37] mlu: think I've heard of him [01:37] DTrejo: nice [01:37] creationix: sechrist: not sure, last I heard it was fairly long [01:37] sechrist: creationix: aka should I get my whole shop to get on the wait-list [01:37] sechrist: agh [01:37] creationix: sechrist: but go ahead and get on the list to show interest [01:37] creationix: just don't count no actually getting a slot [01:37] DTrejo: mlu: what year are you? [01:37] mlu: the EECS department is huge -- it's the largest dept on campus [01:37] naturalethic: is tim teaching all the classes? [01:37] mlu: but I'm a 3rd year [01:41] isaacs_: Aria: you around? [01:42] sechrist: wait 100 seats? [01:42] sechrist: no wonder it's sold out [01:43] bingomanatee__: If its hot enough you can be at Microsoft next year - I went to MongoSV and there were about a thousand attendees. [01:44] isaacs_ has joined the channel [01:49] davidc_ has joined the channel [01:49] davidc_ has joined the channel [01:50] Aria: I am, isaacs [01:50] isaacs: Aria: care to read over the last comment here? https://github.com/isaacs/npm/issues/#issue/294 [01:50] isaacs: re: sudo usage in npm [01:50] sechrist: I still use sudo for npm [01:50] isaacs: sechrist: it'll be safe eventualy [01:50] sechrist: I need system-level npm packages [01:51] sechrist: so chowning /usr/local isn't viable in production [01:51] sechrist: ah, ok [01:52] isaacs: it'd be nice if node had a built-in way to specify a user for a spawned child_process [01:52] sechrist: it doesn't [01:52] sechrist: ? that sounds like a required feature [01:52] isaacs: no [01:52] bruse: how about setuid and then spawn a child_process? [01:52] isaacs: i mean, you can just do child_process.spawn("sudo", ["-u", "whoever", your, program, here] ...) [01:53] isaacs: bruse: yeah, but then you'er stuck as that user for the rest of the process. [01:53] bruse: indeed [01:53] isaacs: so i need to spawn, downgrade, then do stuff there. which means splitting up all the nobody-user stuff into separate commands and such. it'll be good cleanup, though, i think [01:55] ph^ has joined the channel [02:01] yozlet has joined the channel [02:02] Rixius: isaacs: what would you think of a docs: {type: "markdown": folder: "./docs"} in the npm json, and have some funcionality similar to gem server? [02:02] wao: u/w 40 [02:02] isaacs: Rixius: "directories" : { "docs" : "./docs" }. Markdown or HTML is assumed. [02:02] isaacs: Rixius: evanmeagher is working on a doc generation thingie. [02:03] isaacs: Rixius: also, have a README.md or README.markdown if it's markdown, or .html for html, or no extension for plain text. [02:03] micheil: hmm.. ' [02:03] isaacs: then: doc.npmjs.org/// will show the README, with links to the other files in your doc folder. [02:04] isaacs: micheil: if you wanna get involved in that, go nuts :) [02:04] micheil: what? [02:04] isaacs: micheil: the doc generation thing [02:04] isaacs: micheil: you've done a great job with the node docs [02:04] micheil: no, I'm just wondering if someone has just linted all the tests.. that was going to be what I could work on tomorrow in flight. [02:05] isaacs: ahh, yeah, that'd be great. [02:05] micheil: looks like it's been done though. [02:05] isaacs: o, kewl. [02:05] maushu_ has joined the channel [02:05] isaacs: ok, it's steak and starwars time. have a good night. [02:05] MikhX has joined the channel [02:06] mikeal has joined the channel [02:06] Rixius: isaacs: one of my favorite things bout gem server is that it runs locally; so you don't have to be in your internet source [02:06] micheil: isaacs: that jslint thread is getting to be a bit over the top. [02:08] DTrejo: lintlintlint [02:09] sechrist: So with Buffer::Data(v8obj) required now, do I have to re-wrap the buffer after it's been unwrapped? data_ is private [02:09] ryah: some should put https://github.com/mnot/htracr on npm [02:11] sechrist: ryah: to patch this, is there another way to access the data without re-wrapping? or is there a way to access the v8 object after unwrapping? https://gist.github.com/728693 [02:11] sechrist: I know Buffer::Data is the member now, but in this context I'm not exactly sure what it should do [02:12] mike_mayo1 has joined the channel [02:12] ryah: sechrist: hm hard for me to understand this code [02:12] ryah: can you link to the whole file? [02:12] ryah: sechrist: but - buffer->handle_ gives you the v8 object [02:12] sechrist: ryah: https://github.com/exslim/node-protobuf/blob/master/protobuf_for_node.cc#L371-380 [02:13] sechrist: ahh that may be it [02:13] mklappstuhl: can anyone point me to some bigger (than todos) apps built with backbone? /cc jashkenas-work [02:14] ryah: isaacs: i thought npm ls does descriptions now? [02:14] mikeal: ryah: who made the node.js logo? [02:14] isaacs_ has joined the channel [02:15] ryah: mikeal: another michael [02:15] ryah: from germany [02:15] ryah: aka flashvid, flashmike [02:15] mikeal: I need a version that says node.conf [02:16] strmpnk has joined the channel [02:16] sechrist: xD [02:16] mikeal: i'm putting together the website [02:16] ryah: mikeal: "Michael" , [02:16] mikeal: so we can make an announcment [02:16] ryah: he's MIA for the last year though [02:17] sechrist: crack open photoshop [02:17] mikeal: i suck at photoshop [02:17] micheil: mikeal: if a typeface is used, you could probably just find it quite easily [02:17] mikeal: i just spent 20 minutes with pixelmator [02:17] mikeal: couldn't make anything wokr [02:18] micheil: mikeal: -1 photoshop for logos +1 illustrator for logos [02:18] bingomanatee__: what are you trying to accomplish - omnigraffle is more stable for diagrams/wireframes. [02:18] a_meteorite has joined the channel [02:18] mikeal: the spacing between letters makes me think it's not a font [02:18] micheil: things can be re-kerned' [02:18] sechrist: sounds like the solution is a new node.JS logo with an open source project file [02:18] sechrist: ACTION >.> [02:18] mikeal: hehe [02:19] mlu: I'd just trace the node.js logo if I were you [02:19] micheil: ACTION does have a proposal on that sechrist  [02:19] mlu: inkscape :) [02:19] sechrist: photoshop out the JS, put the node as it's own layer [02:20] sechrist: and try your hardest to get a similar CONF [02:20] ryah: seems like tj is working on a sweet new streaming json parser [02:20] micheil: sechrist: http://dribbble.com/shots/55813-Node-js-Logo-Concept [02:20] ryah: im excited [02:20] sechrist: the current logo goes very well with the current documentation style [02:20] mscdex: i thought node.conf was a file! [02:20] mscdex: :> [02:20] bingomanatee__: mikeal - i have photoshop - and years in photoretouching. email the file to dave@wonderlandlabs.com and tell me what you need. [02:20] sechrist: Joyent doesn't have an army of designers to throw at this? [02:21] mikeal: only file i know of is on this page [02:21] mikeal: http://nodejs.org/ [02:21] micheil: that was done in light of another proposal.. [02:21] bingomanatee__: what exactly do you want done with their logo. [02:22] sechrist: I think a font with low letter spacing and a filter for the border wouldn't be too difficult [02:22] sechrist: might not be 1:1 pixel matching but close enough [02:22] sechrist: we need node-logogen for generating node-js style logos for other projects [02:23] mlu: sechrist: according to Identifont, it seems like the font is CG Claire News Light [02:23] mlu: you may have to play around with spacing / kerning though [02:23] sechrist: There's something that does OCT to detect fonts? [02:23] sechrist: holy shit [02:23] bingomanatee__: so you want the words "node.conf" in a similar font as the node log? [02:23] sechrist: OCR* [02:23] MikhX has joined the channel [02:23] mlu: sechrist: it's more like 20Q [02:23] sechrist: ah [02:24] sechrist: is it this font? no. is it this font? no. this one? -sigh- [02:24] mlu: you know how to do 20Q -- you don't ask in that sequence [02:24] mlu: you have to ask questions that eliminate a good portion [02:24] mlu: (eg. what do the serifs look like? what are the slants like? shape of the hump on the d?) [02:25] sechrist: so in a sense it is ocr [02:25] sechrist: i'll go play with it [02:25] strixv has joined the channel [02:25] micheil: yeah, whatthefont found nothing.. [02:25] Aria: Looks good, isaacs, if you're committed to installation being able to run code. [02:25] mlu: according to the result, it seems like that person used that font and then traced the outline with a round stroke [02:25] mlu: in any case, it's close enough to pass [02:25] sechrist: human ocr [02:25] Aria: (I like what Solaris did and just made ips unable to run commands during install -- predefined things or unpack files only. [02:25] Aria: ) [02:26] mlu: people try to approximate Helvetica with Arial, and even though I consider that woefully inadequete [02:26] mlu: you'd at least get more than close enough with the results you get, if any [02:26] sechrist: Aria: that's what I was thinking. if npm is safe to run as root, have npm "api" for unpacking files [02:26] mlu: and based on the questions asked, you won't get Arial as a result when what you're looking for is Helvetica due to slants [02:26] sechrist: so people's packages don't hax system [02:27] mlu: sechrist: also, it looks closer to Berlidin after looking through their results [02:28] sechrist: if it is that close who cares [02:28] cagdas has joined the channel [02:29] jashkenas-work: mklappstuhl: I don't have any links for anything very large yet ... but do you have a specific question? [02:30] dannycoates has joined the channel [02:30] jashkenas has joined the channel [02:31] sechrist: mlu: if it's berlidin it's a fat one [02:32] mlu: sechrist: yeah, hence the stroke suggestion -- it makes it fatter [02:32] mlu: not to mention, professional fonts usually come in like 20 different weights instead of two [02:33] micheil: oh, wow, cool; mnot is an aussie :D [02:35] siculars__ has joined the channel [02:37] mike_mayo has joined the channel [02:37] abiraja has joined the channel [02:38] dgathright has joined the channel [02:39] softdrink has joined the channel [02:40] rauchg_ has joined the channel [02:40] agnat has joined the channel [02:40] jamund has joined the channel [02:43] yozlet has joined the channel [02:45] isaacs has joined the channel [02:50] Rixius: is there any gage on when Proxy's might make it into v8? [02:50] dannycoates has joined the channel [02:51] Rixius: http://wiki.ecmascript.org/doku.php?id=harmony:proxies [02:51] ysynopsis has joined the channel [02:52] ryah: Rixius: never [02:52] mikeal: Rixius: *if* they do [02:52] mikeal: it's years out at the earliest [02:52] mikeal: the v8 guys are resistant toward all the harmony stuff [02:52] mikeal: with some good reason [02:52] Rixius: That's very saddening, since Firefox 4's Spidermonkey? are using it to test out potential JS stuff [02:53] mikeal: spidermonkey takes every feature anyone else thinks of [02:53] davidc_ has joined the channel [02:53] jashkenas: Rixius: it's a really good thing that V8 isn't jumping on spidermonkey features ... a lot of that stuff is half-baked. [02:53] Rixius: I love having the catch all magic __call sort of functionality [02:54] mikeal: v8 doesn't like implementing new "modes" [02:54] mikeal: even strict mode sucks [02:54] mikeal: it forks all the optimizatinos [02:55] Rixius: mikeal: like what? [02:55] ryah: Rixius: magic is over rated [02:56] mikeal: check out the perfomance impact of using gettrs and settrs [02:56] mikeal: in current v8 [02:56] mikeal: it's like you're running in slow mode [02:56] jimt has joined the channel [02:56] jashkenas: getters and setters also make it way harder to reason about the side effects of your code. [02:57] mike_mayo has joined the channel [02:57] Rixius: I made a fun PHP class that took a __call to make elements, so I didnt go out of my way to make functions like ->div etc, just mapped them all to a ->element functin [03:00] mikeal: jashkenas: agreed [03:01] jashkenas: mikeal: that's probably the main reason why they slow down v8 so much ... there are a million places in coffeescript where we'd have to start caching local variables all over the place if getters and setters were included. [03:02] aaronblohowiak: jashkenas: you're amazing! thanks for all the open source [03:03] jashkenas: thanks much. [03:04] aaronblohowiak: personally, i'm a fan of the () //get (val) //set style [03:05] mikeal: i don't think v8 went out of their way to make getter and setters slow [03:05] mikeal: it's just a features that doesn't lend itself well to optimization [03:05] InsDel has joined the channel [03:05] softdrink has joined the channel [03:15] isaacs_ has joined the channel [03:20] sechrist: man I can't for the life of me get protobufs working in node 3 [03:21] ryah: sechrist: is it the buffer stuff? :/ [03:21] b4 has joined the channel [03:21] sechrist: yeah [03:21] ryah: i perhaps need to write a guide for upgrading from the old stuff [03:21] ryah: i've had several other complains [03:22] sechrist: well I am not the best person to do this -- I've never written a nodejs c module [03:22] sechrist: however matthias already did this apparently in the "node3" branch of the project [03:22] sechrist: and it's segfaulting at the same place my patches did [03:22] ryah: hm [03:22] sechrist: http://code.google.com/p/protobuf-for-node/source/browse/?r=6078a62e74d402a6adb83ca5af95d188e9a90e4b [03:23] sechrist: I didn't realize he already did this until I already tried patching it myself [03:23] sechrist: but now I'm just trying to get his branch working and same problem [03:23] b4: I am running node.js on a SunOS machine without anything but repl the memory usage increases. The machine is hosted at Joyent. Memory usage starts around 14M and keeps increasing within 3 hours it increased to 300MB+ while idle all the time. I am using 0.3.1. Anyone has any idea? [03:24] sechrist: with just repl running? [03:24] sechrist: being idle? [03:24] spoobie has joined the channel [03:24] b4: yes [03:25] b4: it's now 469M --> 22263 admin 1 59 0 469M 9112K sleep 0:01 0.00% node [03:26] paulrobinson has joined the channel [03:26] sechrist: hah, yeah, matthias did functionally the same patch I did [03:26] sechrist: so this makes sense now [03:27] ryah: b4: rss? [03:27] b4: what does rss mean? [03:27] ryah: b4: that's a bug in prstat [03:28] ryah: it's actually at 9mb memory [03:28] b4: I use top command [03:28] ryah: i think top is aliased to prstat [03:28] b4: so nothing to worry? Can you point me an article or anything about this issue? [03:29] ryah: b4: i don't have a link - but we're upgrading to a new version soon and i think this bug goes away [03:29] ryah: b4: do process.memoryUsage() from the repl [03:30] b4: ok [03:30] jacobolus has joined the channel [03:31] creationix has joined the channel [03:32] b4: thanks for the info, I will add that to my logs [03:32] yozlet has joined the channel [03:33] sechrist: man this is crashing on the initial proto schema load [03:33] b4: It's a background process, I can not type memoryUsage, but I will do with restarting another one. [03:34] ryah: b4: oh - right. [03:35] muk_mb has joined the channel [03:35] jakehow has joined the channel [03:35] sechrist: ryah: did any of this buffer stuff affect v8::Object::SetInternalField? [03:36] ryah: no... but you should be sure you're getting the same object when you do GetInternalField [03:36] ryah: there are two types of buffers now [03:36] sechrist: the segfault is on setInternalField [03:36] sechrist: so there's no way to do that [03:37] sechrist: this is probably nonhelpful but https://gist.github.com/728741 [03:39] brianmario has joined the channel [03:39] softdrink has joined the channel [03:39] saikat has joined the channel [03:43] sechrist: oh! previous install put a library in /usr/lib [03:43] sechrist: and it wasn't part of the wscript of this branch [03:43] sechrist: there's no problem now with his branch [03:44] sechrist: yay node3 protobufs [03:44] megana has joined the channel [03:45] galaxywatcher has joined the channel [03:46] mikeal has joined the channel [03:47] ryah: sechrist: nice [03:54] davidascher has joined the channel [03:54] alexfner has joined the channel [03:55] mike_mayo: isaacs: I've got a buddy trying to run npm bundle and getting the following error: http://pastie.org/1348600 Any suggestions? [03:57] MattDiPasquale has joined the channel [03:57] b4: ryah: process started with SIZE=13M and now 27M, I did memoryUsage and rss=9388032, vsize=112295936, heapTotal=2734816, heapUsed=1731844, thanks for the answer [03:57] megana: mike_mayo maybe your clock is set wrong [03:59] jpld has joined the channel [04:01] ryah: b4: good, glad it's not a bug :) [04:01] Aria has left the channel [04:01] micheil: hmm.. [04:02] Aria has joined the channel [04:03] b4: ryah: and I am glad that there's a responsive creater and community. Thanks again. [04:04] peterwmwong has joined the channel [04:04] tilgovi has joined the channel [04:05] rauchg_ has joined the channel [04:07] twoism has joined the channel [04:10] b4 has left the channel [04:15] dgathright has joined the channel [04:16] erlnoob has joined the channel [04:17] isaacs_ has joined the channel [04:23] mikeal has joined the channel [04:23] davidascher has joined the channel [04:27] softdrink has joined the channel [04:27] jwl: i have an async function that executes 2 shell commands .. i want to do something AFTER those 2 shell commands are executed but it seems to be impossible in the way node.js is working [04:28] jwl: cause those 2 commands are executed in parallel ... there is no way to register a handler that is executed after both of them are executed .. any ideas? [04:28] dgraunke has joined the channel [04:32] peterwmwong: jwl: are you doing to seperate child_process.execs? [04:32] Pilate: sure, you could set event callbacks on both [04:32] swistak has joined the channel [04:47] isaacs_ has joined the channel [04:52] mattcodes has joined the channel [04:57] saschagehlich_ has joined the channel [05:04] jamund has joined the channel [05:08] Nohryb has joined the channel [05:09] dannycoates has joined the channel [05:12] hornairs has joined the channel [05:14] megana has left the channel [05:14] masahiroh has joined the channel [05:15] DTrejo: if I add a name record to map *.mydomain.com to mydomain.com, then will my node server be able to handle those requests and proxy them to the correct apps? [05:15] DTrejo: (if I am using node-http-proxy) [05:17] Aria: Yes, if you tell it how [05:17] MikhX has joined the channel [05:17] Rixius has joined the channel [05:17] svnlto has joined the channel [05:17] DTrejo: Aria: do you mean that if I have my routing tables right in http-proxy, then it will work? [05:17] chrischris has joined the channel [05:17] DTrejo: (also, thanks for responding) [05:18] Aria: Should! [05:18] isaacs has joined the channel [05:18] Aria: It has to get to the right IP, DNS aliasing should do that. [05:18] DTrejo: Aria: awesome! let me go try :) [05:18] Aria: Then the http proxy just has to look at the Host: headers in each request to route. [05:18] DTrejo: oh hmm.. I have to wait for the *.mydomain.com record to propogate [05:18] DTrejo: :| [05:19] Aria: If your computer/dns cache hasn't looked recently, there should be no propagation time. [05:19] Aria: (It's not a propagation time, actually: It's a cache timeout.) [05:19] Aria: (if you dig therecordyouwanttolookat, the number on each row is the remaining TTL for the value it's got.) [05:19] DTrejo: hmm [05:20] DTrejo: wait but first I need to make a *.mydomainname.com record that points to mydomainname.com, correct? [05:20] Aria: Yes. (A CNAME, usually.) [05:20] Aria: Assuming your DNS server expands wildcards. (Bind does, and powerdns can if it's enabled) [05:21] DTrejo: hmm, I am using webbynode.com, so I'm not sure [05:22] jwl: peterwmwong1: yeah i am .. had it solved now [05:22] jwl: i used a counter :) [05:22] DTrejo: Aria: http://grab.by/7Jp4 [05:23] Aria: Sounds good. That's a one-day TTL. I use more like one hour myself. [05:23] jwl: totalTasks and doneTasks [05:23] Aria: (3600 seconds) [05:24] DTrejo: Aria: thanks :), setting it up now. I also found a guide about this from webbynode, so I'll read that too just in case I'm missing something [05:24] Aria: Sweet. DNS gets treated like rocket science entirely too often. [05:25] Aria: A good habit to get into is to make your changes, then test, and test directly querying the authority server. [05:25] DTrejo: hehe, I think that's because my developers deal with it so infrequently [05:25] Aria: That way you never pollute your DNS cache with wrong values that then have to time out. [05:25] Aria: (dig record @nameserver is querying the authority server directly. "dig record" alone asks your upstream nameserver, which will then cache.) [05:26] whyme has joined the channel [05:27] DTrejo: Aria: in the .data section I would put in dtrejo.com? [05:27] DTrejo: or the ip address of the server [05:29] alexfner has joined the channel [05:30] Aria: dtrejo.com [05:30] Aria: CNAMES always point to other names. [05:30] DTrejo: ooh, ok thanks [05:31] Aria: ("for anything.dtrejo.com, say that its canonical name is really dtrejo.com") [05:31] Aria: (PTR, MX, NS and CNAME point to names; A points to IP (v4), and AAAA points to IP (v6)) [05:32] mikew3c has joined the channel [05:32] DTrejo: thanks for the information [05:33] DTrejo: another random question: is it safe to use dreamhost as my registrar? [05:33] Aria: (the * only exists inside the DNS server, by the way -- it never gets transmitted. You ask for foo.dtrejo.com, the DNS server just pretends it has a record for foo.dtrejo.com that happens to be the same as bar.dtrejo.com, etc.) [05:33] Aria: I've never heard complaints there. Though registrars integrated with hosting are often a pain when you go to switch away in place. [05:34] dgathright has joined the channel [05:34] DTrejo: (I never really used them for hosting, I just have my names with them) [05:34] Aria: (Then no big deal. I just know that records often get screwed up when hosting registry and dns are all in the same place, an you cancel one of the three.) [05:35] DTrejo: oh yeah, I see your point [05:35] DTrejo: they delete everything you have with them, and then stuff like your gmail gets messed up [05:35] DTrejo: NICE [05:35] DTrejo: it's working already [05:36] Aria: Yep. [05:36] Aria: Yay! [05:36] DTrejo: http://hdos.dtrejo.com/ [05:36] Aria: There's no reason DNS can't be ~instant. [05:36] Aria: Even .com registration is up within 2 minutes. [05:36] Aria: Nice start at a page, too. [05:36] Aria: Very nice. [05:36] DTrejo: so juiced to try out http-proxy and get it to proxy subdomains to my various apps :) [05:37] benburkert has joined the channel [05:37] DTrejo: then I can host the javascript compressor comparison site I just semi-finished [05:47] naturalethic: DJTrejo where are you sourcing your music on mixest? [05:48] DTrejo: blogs across the internet [05:48] DTrejo: heh I like how you wrote DJTrejo [05:48] naturalethic: haha that was an accident, neat [05:48] slaymer has joined the channel [05:49] naturalethic: i look forward to giving this mizest thing a good run [05:49] peterwmwong has left the channel [05:49] naturalethic: *x [05:55] DTrejo: naturalethic: :) hope you like it [05:58] erlnoob has joined the channel [06:05] naturalethic: DTrejo: music discovery is actually one of my bigger interest, but i haven't done any programming to that end yet [06:06] naturalethic: DTrejo: are you linking directly to the source website for the song stream? because several of these don't play [06:08] timemachine3030 has joined the channel [06:08] DTrejo: naturalethic: hmm, that's strange [06:08] DTrejo: naturalethic: no, we don't hotlink [06:09] DTrejo: naturalethic: html5 audio with flash fallback, so I dunno what's going on [06:09] xonecas has joined the channel [06:12] naturalethic: DTrejo: actually I think if I have the tab in the background it won't start the next song when the last one ends, i'm using safari [06:13] timemachine3030: I'm trying to stream a file from the network to local disk. Is it safe to call fs.write() from http.ClientResponse 'data' event? or do I need to worry about my data getting out of order? [06:13] DTrejo: oh damn, we had that but at one time, but I guess it never got fixed :| [06:13] DTrejo: *bug [06:13] ryanf has joined the channel [06:14] naturalethic: hmmm.. no I was just on the page and hit next, no go -- could be my shitty internet too, which has trouble making connections sometimes, so probably better to just not rely on my experience [06:14] naturalethic: except that for people like me you could make it retry :) [06:15] DTrejo: does it work when you refresh? [06:15] DTrejo: yeah you're right, we should consider doing that [06:15] naturalethic: i haven't tried refreshing the page, if i hit next a couple times i'll get one, but then i feel like i've missed out on the ones i skipped [06:15] naturalethic: can't go back [06:16] naturalethic: normally i'd probably jigger next a bit, then hit back few times to get where i was [06:16] naturalethic: like smacking a jukebox [06:16] davidascher has joined the channel [06:17] naturalethic: but I *do* have intermittent network problems, so my case my be unusual [06:18] DTrejo: naturalethic: do you see the recently listened list? [06:18] DTrejo: (though you're right it disappears after you refresh) [06:23] DTrejo: is it a good idea to use npm to manage deps for deploying sites? [06:28] DTrejo: probably not I'm thinking? [06:31] mike_mayo has joined the channel [06:34] murz has joined the channel [06:35] linac has joined the channel [06:39] isaacs_ has joined the channel [06:39] naturalethic: DTrejo make the "mixest" logo link to the home :) [06:40] mscdex: timemachine3030: will any other connection be writing to the same file or just that one? [06:40] timemachine3030: just one. [06:40] MikhX has joined the channel [06:43] naturalethic: DTrejo: i was on the faq page so i didn't see the just listened at that time [06:43] DTrejo: yeah, tabs may not be the best option for the site [06:44] naturalethic: it's not starting songs more than my network difficulties would suggest so i think it needs a little work, but i like it! [06:46] tilgovi has joined the channel [06:47] GasbaKid has joined the channel [06:53] sepehr has joined the channel [06:54] MikhX has joined the channel [06:54] masahiroh has joined the channel [06:55] galaxywatcher has joined the channel [06:55] yumike has joined the channel [06:57] DTrejo: Aria: hey, so I have things mostly set up [06:57] Aria: Sweet! [06:58] HAITI has joined the channel [06:58] DTrejo: dtrejo.com:8081 works, and serves the site [06:58] HAITI has joined the channel [06:58] DTrejo: except compresscompare.dtrejo.com does not work [06:58] DTrejo: https://gist.github.com/728894 [06:58] DTrejo: that is my server, which proxies to the other server [07:00] DTrejo: Aria: don't press compare, b/c for some reason java is not set up right on that server, and when it runs yui, the pipe breaks [07:01] Aria: Hm [07:01] MattDiPasquale has joined the channel [07:01] HAITI has joined the channel [07:01] HAITI has joined the channel [07:01] naturalethic: DTrejo: why don't you open source mixest? [07:02] DTrejo: Aria: could it be because when I auto-set up the dns, it used an A-record instead of a cname? [07:02] DTrejo: I might as well go make the cname now anyway right? [07:02] DTrejo: naturalethic: we could.. we might as well I suppose, or we could try to sell it and then open source it [07:02] Aria: Gets the same IP anywy. [07:02] DTrejo: I dunno what we'll do [07:03] DTrejo: Aria: oh so it doesn't matter, hmm [07:03] Aria: Yeah, no. [07:03] DTrejo: Aria: should the routing table use localhost instead of 127.0.0.1:8081 [07:03] DTrejo: ? [07:04] Aria: I'm looking at nodejitsu's http-proxy to check that. [07:04] Aria: (that is the one you're using, right?) [07:04] DTrejo: I tried to test it locally, but localhost has no *. redirection b/c it has no dns [07:04] DTrejo: yep [07:04] Aria: Though node usualyl allows both IP and name in things like that. [07:05] Aria: It does treat the router keys as a regexp. [07:05] Aria: So those . are "match any character" [07:06] dannycoates has joined the channel [07:07] Aria: Their tests use IP [07:07] HAITI has joined the channel [07:07] HAITI has joined the channel [07:08] DTrejo: Aria: oh, so I should user .dtrejo.com instead of *? [07:08] DTrejo: to avoid strange interactions [07:08] Aria: Not in DNS [07:08] Aria: But it's fine as is, since the . will in fact match a . [07:08] Aria: Just other things too. [07:08] ceej has joined the channel [07:09] sechrist: man node-inspector is awesome [07:09] sechrist: I just wish it were a little stable out of the box [07:09] sechrist: seems like every time I install it I have to go patch it [07:09] Aria: I don't know. This isn't code I'm familiar with, DTrejo -- looks like it should work, but I can't inspect your setup too easily. [07:09] isaacs has joined the channel [07:10] Aria: The DNS part is fine -- it gets the right IP, or at least the same IP [07:10] HAITI has joined the channel [07:10] HAITI has joined the channel [07:10] Aria: What's it not working look like for you? [07:10] DTrejo: thanks for looking anway [07:10] Aria: Of course! [07:11] DTrejo: running it locally, it's doing some wierd things, gonna try and figure them out now [07:11] jacobrelkin has joined the channel [07:11] DTrejo: namely, when I hit localhost/, it gives me :8081 instead of :8080, even though the routing table says :8080 [07:11] Aria: okey doke. To fake testing locally, you can add entries to /etc/hosts or your OS's equivalent. [07:11] Aria: Hm. [07:12] nooder has joined the channel [07:12] DTrejo: oh that's a good idea [07:12] Aria: Hehe. [07:13] robtmr has joined the channel [07:17] robtmr: does anyone know if there's a node/javascript equivalent to pythons "if __name__ == '__main__'" idiom? [07:17] robtmr: I'd like to be able to have small libraries double as scripts for testing [07:18] sechrist: robtmr: don't like expresso? [07:19] MattDiPasquale has joined the channel [07:19] maushu_ has joined the channel [07:19] mscdex: robtmr: maybe you can check if process.argv[0] === 'node' or whatever [07:19] robtmr: I've used that too - I guess just want to know if it's possible to detect whether the current file has been imported or run [07:19] mscdex: something like that [07:20] sechrist: mscdex: not going to work [07:20] Aria: if(process.argv[1] == __filename) [07:20] sechrist: ^ [07:20] robtmr: mscdex: but that will be true in both cases - the only difference will be the filename [07:20] robtmr: Aria: thanks - is __filename automatically set then? [07:20] Aria: Yes. [07:21] sechrist: also -- when I run v8 profiler it just shows 98% of my time is spent in "(program)" [07:21] sechrist: well duh [07:21] fangel has joined the channel [07:21] sechrist: this is not very helpful [07:22] mscdex: well, i was close [07:24] spoobie has joined the channel [07:25] spoobie_ has joined the channel [07:25] dannycoates: sechrist: what are you having to patch in node-inspector? [07:26] sechrist: dannycoates: this time it was script names [07:26] sechrist: s.name.split('/') but there wasn't a name so it through an exception [07:26] sechrist: threw* [07:27] sechrist: if(!s.name){s.name = 'unnamed';} is what I did [07:27] sechrist: then it worked [07:27] sechrist: dannycoates: on another note -- is there some secret to get more information out of the profiler? it's not really showing any functions or anything [07:28] mikeal has joined the channel [07:29] dannycoates: sechrist: cpu profiler is pretty lame still [07:29] sechrist: I actually need to know this because my application is cpu bound right now [07:29] sechrist: damn it [07:30] dannycoates: are you spending a lot of time in native code? [07:31] sechrist: that's an answer for a profiler (but my gut is no, even though it's possible because of protocol buffers) [07:31] sechrist: it's likely binary serialization in node that is killing it -- but I would like confirmation [07:32] sechrist: well I mean it's only pegged during a bench mark, but my request handling per second for this message bus is not meeting my goal [07:35] dannycoates: as the profiler works today, it will only report timing for 'user' code. anything native or 'hidden' will get lumped into (program) [07:35] sechrist: well that's understandable [07:35] sechrist: so that IS the case? [07:36] sechrist: if it's in (program) it's native, there's no grey area? [07:36] tilgovi has joined the channel [07:36] mjr_: sechrist: did you figure out your heap profiler issue? [07:36] sechrist: yeah it's the way the profiler is schlepping data [07:37] sechrist: dannycoates: so is it v8 itself that needs to be changed to stream that information? [07:37] sechrist: I mean it seems like a wholesale json parse of a heap is ok and unavoidable, but the json array size probably shouldn't be truncated [07:37] tyfighter has joined the channel [07:38] dannycoates: sechrist: its the v8 debugger protocol... [07:38] sechrist: that's what I thought [07:38] sechrist: lame [07:38] dannycoates: but im trying some workarounds [07:39] sechrist: node ships with v8 so a patch to v8 isn't completely out of the question [07:40] isaacs_ has joined the channel [07:40] dannycoates: chrome doesn't use the debugger protocol. node doesn't have to either, but it was the quickest to implement [07:41] sechrist: chrome as in chrome talking to node-inspector, or chromium itself? [07:41] dannycoates: chromium [07:44] dannycoates: sechrist: also, if you ever have fixes for node-inspector i'll gladly accept patches [07:44] sechrist: oh sure -- I'm not wragging -- sorry to come off confrontational [07:44] sechrist: it's my fault for not pull requesting :) [07:44] mjr_: dannycoates node-inspector is really cool, thanks for making it. [07:45] sechrist: it's the de facto node debugger I think [07:45] dannycoates: not at all :) I probably use it less than some people. im mostly a node weekend warrior [07:46] dannycoates: mjr_: thanks! [07:46] EvanDotP1o has joined the channel [07:46] mjr_: hey, is there a way to run a program so that it is initially paused until the debugger resumes it? [07:47] sechrist: break with inspector [07:47] sechrist: watch danny's video :P [07:47] sechrist: it's literally the first scene [07:47] sechrist: mjr_: http://howtonode.org/debugging-with-node-inspector [07:47] mjr_: ha [07:47] mjr_: Is it in the docs? [07:48] dannycoates: mjr_: tried --debug-brk ? [07:48] mjr_: oh cool, I'll try that. [07:48] robtmr has joined the channel [07:48] mjr_: I didn't watch the video yet. [07:48] sechrist: dannycoates: is it possible to pre-set the "debug for this session only" vs "debug for all sessions"? seems like an archaic thing when talking to a remote service [07:49] Locke23rus has joined the channel [07:49] sechrist: I have to click that button every page refresh [07:50] dannycoates: sechrist: yes, lemme check... [07:54] dannycoates: sechrist: I can add a config setting, but in the mean time, in front-end/node/Overrides.js you can add `Preferences.profilerAlwaysEnabled = true;` [07:54] sechrist: ooh cool [07:55] wilmoore has joined the channel [07:55] sechrist: is the way the frontend works just using a bunch of webkit-specific javascript apis? [07:55] dannycoates: yes [07:55] sechrist: that's awesome [07:56] cardona507 has joined the channel [07:59] disappearedng has joined the channel [08:10] isaacs_ has joined the channel [08:16] slaskis has joined the channel [08:16] MikhX has joined the channel [08:20] Druid_ has joined the channel [08:23] sechrist: is there a way to get a stack trace when the call stack size is exceeded? :) [08:23] sechrist: all I see is the print and it exiting [08:24] mjr_: Is this the "flushing stdout" issue from the list? [08:25] sechrist: nah this is me being over zealous [08:26] breccan has joined the channel [08:26] qFox has joined the channel