[00:01] isaacs: mmalecki: hey [00:01] isaacs: https://gist.github.com/1567668 [00:01] omenar has joined the channel [00:01] isaacs: mmalecki: would that behavior be better for your use case? ^ [00:01] mmalecki: isaacs: you sir, are awesome [00:02] isaacs: oh, i should also check the checksum. [00:02] isaacs: derp. [00:02] mmalecki: isaacs: and yeah. also, I'd insert on('error') after Ungzip part, but it seems to do nothing [00:03] bradwright has joined the channel [00:03] isaacs: yeah, our zlib implementation is pretty forgiving. [00:03] Narmical has joined the channel [00:03] isaacs: also, i think it's hitting the tar error before the gzip error, which isn't until the end of the file. [00:04] TheDeveloper has joined the channel [00:04] strmpnk has joined the channel [00:04] Narmical: I had a quick node.js / npm version question. Which is the first version of node.js to come with npm already installed? [00:05] isaacs: Narmical: 0.6.5. but it didn't work until 0.6.6 [00:05] isaacs: er, no, 0.6.3 [00:05] isaacs: one of those [00:05] mmalecki: 0.6.3 [00:05] mmalecki: it was fun as fuck [00:05] isaacs: i think 0.6.4 or 5 was the first one where it worked. [00:05] pquerna: `3rdEden: but man, thats the whole point of bootstrap, i suck at design, with bootstrap it looks 'good enough', and i spend time writing features not messing with colors ;) [00:06] Narmical: ok cool thanks, [00:07] Narmical: i have a system with an older verson of node.js is there anything special i need to do to upgrade other than get the new source and recompile? [00:07] bnoordhuis: Narmical: how old is older? [00:07] `3rdEden: pquerna sure, but now that nearly every single developer started using it, it's not `good enough` anymore.. It just gets annoying to see the same layout / design over and over again [00:07] Narmical: hmm let me check [00:09] `3rdEden: pquerna and from a users point a of view, really confusion as well, as your have 10 sites, with the same layout/design doing different things. I don't have anything against boot strap, it's a well designed framework, but people should atleast make the layout theirs by chaning the header colors, link colors or what ever. [00:09] jarek__ has joined the channel [00:09] replore_ has joined the channel [00:09] replore has joined the channel [00:09] tcurdt has joined the channel [00:09] pquerna: `3rdEden: sure, for a commercial product, you should do more, but for internal apps and dashboards I think its a great method to get something out there [00:10] Narmical: the older version is 4.11 [00:10] `3rdEden: pquerna but layout aside, it's and awesome project i'm definitely going to take it for a spin [00:10] bnoordhuis: Narmical: https://github.com/joyent/node/wiki/API-changes-between-v0.4-and-v0.6 [00:11] bnoordhuis: Narmical: but it'll most likely just work [00:11] skm has joined the channel [00:12] Narmical: so your saying i might have to update the javascript i intend to run under node js, but the instilation should work as normal? [00:12] michaelhartau has joined the channel [00:12] bnoordhuis: Narmical: yes [00:13] Narmical: bnoordhius: sweet. the code i want to deploy as written under 6.6 that's why im updating node [00:13] Narmical: thanks alot! [00:13] bnoordhuis: my pleasure :) [00:16] Narmical: hay while your all so helpful i have aother question [00:16] ben_alman: if i was going to build an irc client using nodejs, what lib might i use? any suggestions? [00:16] nickadeemus2002 has left the channel [00:16] MrNibbles has joined the channel [00:17] Narmical: if this current machine im using doen't work out, i might try to use the compute cluster at my school. however i dont have root access to the compute cluster. If i install to a directoy under my home path, can i install without needing root access? [00:17] strevat_ has joined the channel [00:18] Provito has joined the channel [00:18] mAritz has joined the channel [00:20] fastest963_ has joined the channel [00:20] rio{ has joined the channel [00:23] caverna has joined the channel [00:23] franciscallo has joined the channel [00:23] shanez_ has joined the channel [00:24] connec has joined the channel [00:24] kmurph79 has joined the channel [00:24] jonbaer has joined the channel [00:26] kmurph79 has joined the channel [00:27] dylang has joined the channel [00:29] `3rdEden has joined the channel [00:34] martin_sunset has joined the channel [00:35] socketio\test\84 has joined the channel [00:35] dwhittle has joined the channel [00:35] davidwalsh has joined the channel [00:37] warz: im writing an application, using modules, and im needing a global database connection. is it correct to do something like: global.db = connect(), for example? [00:37] warz: globals* [00:37] zomg: You probably would want to pass the db handle or such around to the modules which need it [00:37] warz: er, no it's global. i was right the first time, heh. [00:39] [[zz]] has joined the channel [00:40] Revernd has joined the channel [00:41] [[zz]] has joined the channel [00:42] SubStack: warz: that is always a bad idea [00:42] SubStack: always [00:42] EyePulp: warz: for just getting started, you can do that, but the "right" way is to pass the handle into modules and functions as needed [00:42] SubStack: implicit exports through global side effects super suck [00:44] jarek____ has joined the channel [00:44] boltR has joined the channel [00:47] zzak has joined the channel [00:48] dlg has joined the channel [00:50] c4milo has joined the channel [00:50] danraz has joined the channel [00:51] danraz: can anyone recommend a node soap client? [00:51] mAritz has joined the channel [00:51] StanlySoManly1 has joined the channel [00:52] warz: i just read over the documentation for modules. when you say pass the handle into a module, are you implying something along the lines of the module containing a [00:52] danraz: is node-soap by milewise the latest rage? [00:52] warz: an object, and then passing the handle in via a function call [00:52] warz: or is there a way to actually pass something to that module for use? [00:53] DTrejo has joined the channel [00:53] stagas has joined the channel [00:54] mbykael has joined the channel [00:58] rio{ has joined the channel [00:58] danielqo has joined the channel [00:59] tonymilne has left the channel [01:00] spohnan has joined the channel [01:02] else- has joined the channel [01:03] stdarg_ has joined the channel [01:03] danraz: warz: something like this: [01:03] danraz: wrap your module with a function [01:03] danraz: module.exports = function(someVar) { ...your code here... } [01:04] danraz: then, when you require that module, you write [01:04] danraz: require('moduleName')(yourVar); [01:04] warz: ah, so thats why i see that commonly. [01:05] euoia has joined the channel [01:05] RobWC has joined the channel [01:06] metapandava has joined the channel [01:07] warz: i feel like there are a lot of "tricks" to being efficient with nodejs, and it just takes time to learn all of them. [01:07] DTrejo has joined the channel [01:07] _jzl has joined the channel [01:08] reid has joined the channel [01:08] EyePulp: wars - that's not an unreasonable feeling. It's also typical for any new language/framework/platform with any depth. [01:08] ryanolds_w has joined the channel [01:09] CoverSlide: also for your db object, you can module.exports = db; and any modules that need it can require('./path/to/db/module') [01:09] jbpros has joined the channel [01:09] Swizec has joined the channel [01:09] markq: i honestly thought i could learn node.js, express and everthing else that came with it in a week and have a full blown website up the next week but I've been reading docs and tuts and examples and blog posts for almost 3 weeks now [01:09] loucal_ has joined the channel [01:09] blup has joined the channel [01:10] markq: not an easy task to completely give up on one's previous web stack [01:10] EyePulp: markq: are you learning to learn or looking for the fastest way to a web site? [01:10] reid has joined the channel [01:10] jerrysv: markq: where are you having a learning curve issue? language? framework? library? or async vs sync? [01:10] markq: learning to learn and then use that knowledge to make my website [01:10] markq: framework [01:10] markq: i understand the language pretty well [01:10] subbyyy has joined the channel [01:10] markq: it's just all the express framework stuff [01:10] tjholowaychuk: learning how to learn is the best skill to have [01:11] markq: for now nodejitsu seems really to the point and i'm learning everything on it pretty fast [01:11] jerrysv: markq: then don't use express? write a quick website like on nodejs.com, or use one of the other frameworks that do things differently than express? [01:12] ryanolds_w: Been having an ongoing discussion with a co-worker about adding pubsub to our system. Right now we have nothing that requires any sort of multi listener messaging. Can't tell if I'm being unreasonable when I block the adding the pubsub infrastructure. [01:12] tjholowaychuk: yeah start with node first for sure then you'll see what the frameworks offer [01:12] jesusabdullah: or, just use parts of express. It's not too bad to throw down some middleware and some templates [01:12] jerrysv: usually the biggest hump has been sync vs async [01:12] EyePulp: markq: We've sort of made the decision not to use node for web apps with lots of html & standard browser-based interfaces. We tend to use it more for web based services that other apps digest. That way we keep our web stack & knowledge and just add node goodies as needed. [01:12] jesusabdullah: like, you don't have to go too crazy [01:13] freewil has joined the channel [01:14] jerrysv: it's so easy to get a basic webserver up and running, just bare bones, figure out what you like, then, as tjholowaychuk said, explore from there [01:15] dshaw_ has joined the channel [01:15] thatguydan has joined the channel [01:15] CoverSlide: async or swim is what I always say [01:15] lzskiss has joined the channel [01:15] zomg: EyePulp: sounds pretty reasonable [01:15] jerrysv: ouch. that hurt [01:15] tjfontaine: lame [01:15] EyePulp: CoverSlide: oy [01:16] ryanolds_w: CoverSlide: Thanks for the smile [01:16] jocafa has joined the channel [01:16] CoverSlide: np [01:16] tjfontaine: it's not exactly original, it's not his fault [01:17] tokuzfunpi has joined the channel [01:17] indexzero has joined the channel [01:18] Sir_Rai has joined the channel [01:23] briancra_ has joined the channel [01:23] stagas has joined the channel [01:23] connec: hi guys, does anyone know why HTTPServer sometimes takes a while to close? [01:24] connec: as in, a good few seconds [01:24] connec: it's messing up my 'reload server on changes' script xD [01:25] cjm has joined the channel [01:26] isaacs: wow, python is really slow [01:26] isaacs: i just read this: http://www.cforcoding.com/2012/01/interview-programming-problems-done.html [01:27] isaacs: so, of course, i was sniped, and had to write it in js [01:27] isaacs: https://gist.github.com/1568398 [01:28] isaacs: he talks about the slow one running to n=20 in 0.8 seconds. i'm seeing like 0.03s getting to n=50 [01:28] tbranyen: isaacs: lines 18-20 are werid as shit [01:28] oleyb1 has joined the channel [01:29] tbranyen: i want arguments.callee back [01:30] SubStack: but now you get GENERATORS [01:30] SubStack: and HARMONY MODULES [01:30] joshkehn has joined the channel [01:31] joshkehn has left the channel [01:34] MatthewS has joined the channel [01:35] franciscallo has joined the channel [01:35] isaacs: tbranyen: what's weird about that? [01:35] dgathright has joined the channel [01:35] isaacs: tbranyen: it's just memoizing and returning the function [01:36] LeMike has joined the channel [01:38] Sorella: Generators ain't bad. [01:39] Sorella: I'd prefer first-class and parametrised modules though =/ [01:39] Swizec_ has joined the channel [01:39] Sorella: tbranyen, hoisting is <3 [01:40] tomlion has joined the channel [01:40] Sorella: isaacs, in this case though, why not just move the function declaration directly to the return? [01:40] neurodrone has joined the channel [01:40] isaacs: Sorella: i dunno. [01:40] Sorella: you could still reference `pascal' inside it =/ [01:40] tbranyen: yeah thats what i was thinking something like return function pascal [01:41] SubStack: javascript doesn't need *another* module spec [01:41] isaacs: Sorella: yeah, i usually just do something with the named function, then declare it right after [01:41] tbranyen: think of the iessss [01:41] isaacs: SomeClass.prototype.foo = foo [01:41] isaacs: function foo () {… } [01:41] isaacs: habit, i guess [01:41] tbranyen: habits are the work of the devil [01:41] tbranyen: cleanse yourself [01:42] bingomanatee__: SubStack -- you mean other than Dart? (duck) [01:42] SubStack: bingomanatee__: dart isn't javascript so I don't see the harm in it [01:43] Sorella: I do that if it's not a simple expression being returned. For example, it would be weird in: function uncurry_bind(fn){ return Uncurried; function Uncurried() { return fn.call.apply(fn, arguments }}; since function uncurry_bind(fn){ return function Uncurried() { return fn.call.apply(fn, arguments }}; looks nicer :3 [01:43] bingomanatee__: It is meta-javascript, like cofffescript. [01:43] oleyb1 has left the channel [01:43] jskulski has joined the channel [01:43] SubStack: the problem is prescriptivism from ecma with module specs written by people who don't write modular javascript [01:44] SubStack: and who obviously haven't used the existing module definitions and are just making javascript into python [01:44] SubStack: fuck those guys [01:44] zeade has joined the channel [01:44] oleyb1 has joined the channel [01:44] Sorella: You mean people on TC39 don't write modular JS? Crazy. [01:44] SubStack: career beaurocrats are ruining everything [01:44] tjholowaychuk: i swear they dont write any js [01:45] Sorella: Brendan Eich does... I guess(?) [01:46] bingomanatee__: Usually its the wannabe politicians that rail against career politicians…. [01:46] Sorella: I think one of the things that irks me the most in ES.next is that they're trying to make JS a better language for compiling other languages to it. And making non-JS developers feel more comfortable with it. [01:46] Sorella: It feels bloated as fuck. [01:47] willwhite has joined the channel [01:47] cce has joined the channel [01:48] tjholowaychuk: i think it's the sudden flood of ruby/py people so everyone thinks js needs to be more like them [01:48] tjholowaychuk: for whatever reason [01:49] bingomanatee__: Ruby Cubes [01:49] tjholowaychuk: there are so many things they could have fixed already that dont even break backwards compat [01:49] tjholowaychuk: it's so annoying [01:49] sridatta has joined the channel [01:49] SubStack: agree [01:50] erichynds has joined the channel [01:50] ccapndave has joined the channel [01:51] willwhite has joined the channel [01:52] esmevane has joined the channel [01:52] tmcw has joined the channel [01:52] Sorella: ACTION just wishes they'd get rid of constructors and break backwards compat =/ [01:52] SubStack: COFFEE TIME [01:52] jesusabdullah: I don't mind constructors [01:52] tjholowaychuk: diet root beer time? :( [01:53] jesusabdullah: I must be like the only person who doesn't get upset by them [01:53] chrisdickinson: belatedly, i've become a pretty big fan of named function hoisting lately :\ [01:53] tjholowaychuk: (coffee machine broke) [01:53] tbranyen: tjholowaychuk: toilet paper and boil water [01:53] tjholowaychuk: haha [01:53] tjholowaychuk: ghetto [01:53] ditesh|cassini has joined the channel [01:53] jesusabdullah: yet effective [01:53] willwhite has joined the channel [01:53] Sorella: jesusabdullah, they're too workaround-y. I'd like having a prototypical language having inheritance around... y'know, objects. [01:53] jesusabdullah: workaround-y? [01:53] Sorella: So, var foo = Prototype <| { something } [01:54] EyePulp: any wisdom under 0.6.6 tracking down: Error: listen EACCES [01:54] jesusabdullah: <| ? [01:54] Sorella: jesusabdullah, they put factories/initialisation as the main thing. [01:54] tbranyen: var obj = function() {}; obj.lol = "hi"; hey check me out imma object and a function [01:54] tbranyen: infinitely more useful! [01:54] Sorella: jesusabdullah, <| is the proposed operator for setting the [[Prototype]] link. [01:54] jesusabdullah: hmm [01:54] jesusabdullah: I'm not sure I'm diggin' it [01:54] Sorella: well, spawning a new object with the prototype link. [01:54] tjholowaychuk: syntax is weird but that would be nice [01:55] abraxas has joined the channel [01:55] Sorella: It would be basically: var foo = Object.create(Prototype, { something }); but with `something' being a plain object, rather than the property descriptor mess. [01:55] jesusabdullah: hrrm [01:55] tjholowaychuk: yeah Object.create() is a fail [01:55] tjholowaychuk: { __proto__: foo } [01:55] chrisdickinson: Object.create seems sane, so long as you're not using the second argument :\ [01:56] Sorella: Object.create is faster than that, though iirc. Even though all engines are still lagging back way too much when you compare them to constructors =/ [01:56] tjholowaychuk: than what? [01:56] tjholowaychuk: Object.create uses __proto__ inside [01:56] Sorella: chrisdickinson, it is sane, as long as you write abstractions on top of it =/ [01:56] tjholowaychuk: it's pretty much just that [01:57] chrisdickinson: Sorella: I've never really needed to, but I might not be thinking of the same use case. [01:58] chrisdickinson: I'd rather they not muck with syntax in ES.next, personally. [01:58] SubStack: YES [01:58] tjholowaychuk: just fix shit [01:58] tjholowaychuk: haha [01:58] tjholowaychuk: stop adding and fixxxxx [01:58] SubStack: experiment elsewhere [01:58] chrisdickinson: the only thing i sort of kind of like is lua's ":" operator, but even then... [01:58] SubStack: the problem with adding features is that they never go away [01:58] chrisdickinson: exactly. [01:59] Destos has joined the channel [01:59] SubStack: it's like the bible [01:59] tjholowaychuk: hahaha [01:59] tjholowaychuk: awesome [01:59] SubStack: and how we shouldn't mix wool and cotton [01:59] Sorella: tjholowaychuk, eh, nevermind, I'm just bad at analysing profiles =/ [01:59] Sorella: tjholowaychuk, http://jsperf.com/object-creation-access [02:00] tbranyen: hey guys we need a 8====D operator when you want to dick around with an object [02:00] SubStack: before you know it ecmascript will have a geneology in it [02:00] Sorella: chrisdickinson, using Base.derive({ constructor: function(){ }, foo: function() { }}); instead of function Base() { }; Base.prototype.foo = function() { }; [02:01] tbranyen: meh thats what backbone has and its maybe at the most 50lines [02:01] TN has joined the channel [02:01] tbranyen: you could easily just provide that yourself [02:01] chrisdickinson: hm. i kind of like the latter example better than the former. [02:01] davidwalsh has joined the channel [02:01] philipd has joined the channel [02:01] tbranyen: instead of baking it into the language [02:01] Sorella: tbranyen, yep. There are plenty of libraries that do that. [02:01] SubStack: if they really want inheritance they could just add something to Function.prototype [02:01] Sorella: chrisdickinson, the latter is also 50~80% faster. [02:02] tbranyen: you micro-optimizing fiend [02:02] chrisdickinson: woo, I feel like I just won a game show! [02:02] SubStack: or Function.inherit() like node's util.inherits() [02:02] SubStack: PROBLEM SOLVED [02:02] pizthewiz_ has joined the channel [02:02] tbranyen: caring about performance is like wearing clean underwear... overrated [02:02] ryanfitz has joined the channel [02:02] Sorella: SubStack, Then you're still coding around initialisation. It just feels wrong to me =/ [02:03] BillyBreen has joined the channel [02:03] chrisdickinson: Sorella: the way i've come to terms with it is as follows: constructor functions should only perform member initialization, similar to C's struct assignment. [02:03] SubStack: I really don't see how javascript's prototype OO needs fixing [02:03] SubStack: you should only use it sparingly anyways [02:03] Sorella: SubStack, it could get multiple delegation. That'd rock. [02:03] tbranyen: SubStack: setting an existing objects prototype needs fixin [02:04] tbranyen: esp. if i'm gonna get bitched at for using __proto__ [02:04] tjholowaychuk: traitsss [02:04] jocafa: i just want fast getters and setters implemented everywhere [02:04] tbranyen: i just want my kids back [02:04] Sorella: And multiple dispatching on prototypes. [02:04] SubStack: tbranyen: mixins then? seems like you could bless that in Object.mixin without rewriting the syntax rules [02:04] else- has joined the channel [02:05] tbranyen: SubStack: mixins copy properties between objects, i don't wanna touch those, i want to set the prototype [02:05] Sorella: tjholowaychuk, traits are okay as well. [02:05] jocafa: i want operational transformations on ALL THE THINGS [02:05] tjholowaychuk: i wouldnt complain if all we had was mixins [02:05] kitt has joined the channel [02:05] chrisdickinson: we could just go all the way to the python side and copy the MRO tuple. [02:06] Sorella: But it would be awesome if you could do: var foo = {}; foo.addDelegation(Array.prototype); foo.addDelegation(LazyStream.prototype); /* foo now falls back to both LazyStream and Array */ [02:06] chrisdickinson: so the mixin case would just be making an object with multiple __proto__ parents, walked in a sawtooth fashion. [02:06] Swizec has joined the channel [02:07] Sorella: Not sure how it'd work with the diamond problem though. I mean, you don't have initialisation with delegation. [02:07] chrisdickinson: Sorella: so, foo = Object.instantiate({}, [Array.prototype, LazyStream.prototype]) [02:07] chrisdickinson: Sorella: python's model would work. [02:07] Sorella: chrisdickinson, where `instantiate' would be? [02:07] jonbaer_ has joined the channel [02:07] tjholowaychuk: the Array/LazyStream functions could be the protos as well [02:08] tjholowaychuk: [Array, LazyStream] [02:08] Sorella: chrisdickinson, no, Python's model doesn't allow me to add and remove prototypes after the object's creation. [02:08] chrisdickinson: Sorella: it does, pythonistas will just get mad at you if you do. [02:08] jocafa: I SHOULD NEVER HAVE TO DEBUG WHITESPACE [02:08] Sorella: I haven't got to that part in Python, then. [02:09] Sorella: The change would be just that instead of having a single prototype, you'd have a list of them, and probably some MRO to account for the diamond problem =/ [02:09] willwhite has joined the channel [02:10] chrisdickinson: yep, given an attribute lookup, hit each proto in order of the list. then, if it's not found, start at the front of the list and walk up one prototype. [02:10] postwait has joined the channel [02:10] tomlion has joined the channel [02:10] briancray has joined the channel [02:11] socketio\test\34 has joined the channel [02:11] langworthy has joined the channel [02:11] Sorella: You could write that with Proxy, but it would be slow as fuck. [02:12] Sorella: (not much different from implementing multiple dispatching in pure JS though) [02:12] sharkbird_ has joined the channel [02:12] tjholowaychuk: looking forward to all the retarded apis proxies will bring [02:12] springmeyer_ has joined the channel [02:12] chrisdickinson: ACTION was just about to write that up [02:12] tbranyen: tjholowaychuk: shut your whore mouth [02:12] tbranyen: proxies own [02:13] jocafa: tj isn't opinionated or anything [02:13] sharkbird_ has joined the channel [02:13] jacter has joined the channel [02:13] lem0nbyte: jocafa: tru fax [02:13] Sorella: Proxies are cool. Abusing proxies is also hella cool, unless you actually want to ship that :3 [02:13] tjholowaychuk: haha yeah [02:13] tjholowaychuk: not saying you cant do neat wacky fun things [02:13] tjholowaychuk: but when you care about being productive [02:13] RLa has joined the channel [02:13] tjholowaychuk: big fail [02:14] mandric has joined the channel [02:15] innociv has joined the channel [02:15] jocafa: what, are you saying you're supposed to be productive at work? pshaw. [02:16] tomlion has joined the channel [02:17] jocafa: also: feh! [02:17] mikeric has joined the channel [02:17] jonbaer has joined the channel [02:18] dre has joined the channel [02:19] kazupon has joined the channel [02:19] RLa: depends how you get paid [02:19] RLa: some payment methods could encourage non-productivity [02:20] tjholowaychuk: true [02:20] tjholowaychuk: that's when [02:20] tjholowaychuk: you compile a language to js [02:20] tjholowaychuk: extra layers [02:21] SubStack: isaacs: that ordering bug in t.deepEqual in tap is quite annoying >_< [02:21] SubStack: FOUND: {"a":5,"b":105} [02:21] SubStack: WANTED: {"b":105,"a":5} [02:21] innociv has joined the channel [02:21] SubStack: grumble [02:21] isaacs: SubStack: yeah [02:21] isaacs: wanna fix it? [02:21] SubStack: ok [02:22] Sorella: tjholowaychuk, well, implementing Lisp on top of JS sounds like a nice idea to me. [02:22] isaacs: actually, the diffing stuff in there in general is pretty ghetto [02:22] isaacs: SubStack: but not as ghetto as the stack capturing!! [02:22] SubStack: I'll write a failing test first [02:22] isaacs: you'll laugh if you look at tap/lib/tap-assert.js [02:22] torvalamo: never seen ghetto used as an adjective before, and certainly not in a programming context [02:22] innociv_ has joined the channel [02:22] RLa: anyone want to implement prolog in js? [02:22] EyePulp: heh [02:22] isaacs: EyePulp: we live in oakland. [02:22] isaacs: ghetto is just part of it. [02:23] EyePulp: ACTION is trying to make "clown shoes" the new adjective of choice for something that's all sorts of ghetto. [02:23] torvalamo: why would anyone want to do anything with prolog other than in prolog? [02:23] Sorella: RLa, prolog isn't even useful =/ [02:23] torvalamo: :P [02:23] isaacs: vows is kind of clown shoes. [02:23] SubStack: isaacs: aha I see how I could do it [02:23] isaacs: in the sense that it's clumsy and colorful. [02:23] RLa: aww [02:23] EyePulp: see? It's fun. [02:23] isaacs: and i have trouble walking in it [02:24] SubStack: isaacs: it looks like sorting the keys in stringify() might work [02:24] isaacs: SubStack: great! [02:24] innociv__ has joined the channel [02:24] SubStack: I know because I've written this code before [02:24] EyePulp: is there a more verbose analog to console.log(some_object) to get more details about an object? [02:24] redir_ has joined the channel [02:24] isaacs: Object.keys(obj).sort( … ).reduce(function (o, k) { o[k] = obj[k]; return o }, {}) [02:24] isaacs: something like that? [02:25] jocafa: console.dir [02:25] SubStack: probably [02:25] isaacs: EyePulp: check out the sys.inspect function [02:25] agnat_ has joined the channel [02:25] isaacs: EyePulp: it's got some good options. [02:25] isaacs: color, even! [02:25] SubStack: isaacs: it would have to be recursive though [02:25] isaacs: SubStack: oh, right [02:25] EyePulp: cool - danke [02:25] SubStack: what about ripping the deepEquals out of assert? [02:25] SubStack: that's what I did for testling [02:26] isaacs: SubStack: that'd probably be fine [02:26] jocafa: use node inspector? [02:26] isaacs: SubStack: i really like the diffing, though [02:26] SubStack: yeah that is handy [02:26] colinclark has joined the channel [02:26] SubStack: I can write a recursive sorter [02:26] SubStack: that seems like the most minimal change that will fix it [02:27] isaacs: SubStack: but it'd be fine maybe to not have a diff, and instead do something like "differs at x.y.z\nFOUND: 'asdfadsf'\nWANTED: 'fdsafdsa'" [02:27] isaacs: i dunno [02:27] innociv__ has joined the channel [02:27] isaacs: i'm very open to even significant changes there, as long as it's functionally equivalent in terms of the info you get from it [02:27] RLa: btw, is assert module supposed to be used only in unit tests? [02:27] isaacs: RLa: you can use it however you want. [02:27] isaacs: RLa: it's just if (!ok) throw ... [02:28] materialdesigner has joined the channel [02:28] isaacs: g'nite [02:28] RLa: yeah, thought about using it in actual code, not just in tests [02:28] tjholowaychuk: RLa https://github.com/visionmedia/better-assert [02:28] SubStack: pow I have a failing test now [02:28] tjholowaychuk: didnt know what to call it [02:28] tjholowaychuk: hahaha [02:29] EyePulp: bet-ass [02:29] tjholowaychuk: i have a similar patch for node core [02:29] jocafa: assert-damnit [02:29] tjholowaychuk: minus the output [02:29] RLa: very nice [02:30] wingie: tjholowaychuk: could superagent npm package be updated to the latest so the basic auth support is included? [02:30] tjholowaychuk: yeah sure one sec [02:30] boehm has joined the channel [02:30] wingie: tjholowaychuk: thanks [02:30] innociv_ has joined the channel [02:32] enmand has joined the channel [02:32] sorensen__ has joined the channel [02:32] bartt has joined the channel [02:33] mike5w3c has joined the channel [02:33] tjholowaychuk: wingie 0.2.0 [02:33] tjholowaychuk: might wanna peek at the changelog [02:33] tjholowaychuk: only one api thing though [02:34] EyePulp: using the built-in cluster module under 0.6.6, is there a method to capture errors that the master process is seeing within a worker and handle them? (I'm wanting to log the errors and send out an e-mail). This might not really be a cluster specific issue, I guess - I just want to get some control over errors that currently get written to the console. [02:34] chrisdickinson: Sorella: re: the mro-ery: https://gist.github.com/1568657 [02:35] EyePulp: I know I can respond to a worker's death, but how do I access the error object? [02:35] wingie: tjholowaychuk: wiii worked great [02:35] EyePulp: or is there an error object in play? [02:35] chrisdickinson: lil' broken on second look. [02:35] secoif has joined the channel [02:35] wingie: damn why did isaacs leave [02:36] wingie: could one say that it's safe to specify versions like this "1.x.x" instead of "1.2.x" since all minor versions shouldn't break your code? [02:36] mike5w3c_ has joined the channel [02:37] wingie: so you don't have to look up all minor versions change all the time [02:37] tjholowaychuk: youcould do just 1.x [02:37] tjholowaychuk: etc [02:37] wingie: yeah [02:37] secoif has joined the channel [02:37] tjholowaychuk: but for stuff like superagent that is still changing you probably dont want that [02:37] tjholowaychuk: haha [02:37] wingie: so it's safe just to care about the major version? [02:37] wingie: tjholowaychuk: but they shouldn't break if its a minor version update [02:37] wingie: that is against the semver convention! [02:38] tjholowaychuk: < 1.0 [02:38] innociv_ has joined the channel [02:38] secoif has joined the channel [02:38] tjholowaychuk: you do whatever [02:38] wingie: oh right [02:38] wingie: haha [02:38] wingie: hm i have to read it again [02:38] secoif has joined the channel [02:38] tjholowaychuk: people dont follow it anyway so you're kinda screwed [02:39] wingie: but then i could just point them to it [02:39] wingie: and they will correct [02:39] wingie: or i will stop using their lib [02:39] wingie: since they cannot maintain it correctly [02:39] tjholowaychuk: i almost think if you have features AND bugfixes in a release it should be a minor and patch-level bump [02:39] tjholowaychuk: just so you can tell at a glance [02:39] tjholowaychuk: but meh changelogs are what's important [02:39] wingie: hmm [02:39] tazrover has left the channel [02:40] tjholowaychuk: it would be awesome to do $ npm changelog [02:40] tjholowaychuk: magically [02:40] tjholowaychuk: somehow [02:40] tjholowaychuk: some day [02:40] wingie: yeah that would be nice .. actually when you install it [02:41] mdel has joined the channel [02:41] tjholowaychuk: sometimes you get crucial fixes to some module [02:41] tjholowaychuk: and you have no clue [02:41] wingie: npm could check your current npm module versions and then print out change logs for those packages that are updated [02:41] tjholowaychuk: which is why i liek doing 1.x etc [02:41] tjholowaychuk: but it also breaks sometimes [02:41] wingie: i think gem is working like that [02:41] wingie: recall i see some "what is new" when i installed a gem [02:42] c4milo has joined the channel [02:42] tjholowaychuk: changelogs should be json or something ideally [02:43] wingie: "Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable." [02:43] wingie: does that imply that minor versions could break backwards comapatibility? [02:43] torm3nt has joined the channel [02:43] tjholowaychuk: when it's below 1.0 [02:43] tjholowaychuk: eyah [02:43] tjholowaychuk: yeah* [02:43] chrisdickinson: tjholowaychuk: why not just pull changelog data out of the commit logs? [02:43] tjholowaychuk: chrisdickinson i do [02:43] tjholowaychuk: git-changelog [02:44] tjholowaychuk: does it for me [02:44] tjholowaychuk: as markdown [02:44] chrisdickinson: no, i mean for npm changelog. [02:44] tjholowaychuk: but still, it would be cool if an entire community normalized this stuff [02:44] tjholowaychuk: oh [02:44] tjholowaychuk: too much to look at [02:44] wingie: chrisdickinson: good solution .. no need for manually write things [02:44] wingie: even better [02:44] tjholowaychuk: usually maybe ~10% of those are changelog worthy [02:44] wingie: so everyone is writing good descriptive commit comments [02:44] jldbasa has joined the channel [02:45] chrisdickinson: so, npm install . --changelog would do a dry run of updating, and show you a project-delimited list of changes. [02:45] chrisdickinson: (using git shortlog, maybe.) [02:45] euoia has joined the channel [02:45] wingie: perhaps you could introduce a prefix that will be pulled out of the log to create the change log [02:45] tbranyen: i wish i could read the npm init source code [02:45] tbranyen: this is sooo confuzzling [02:45] wingie: git commit -m "changelog: add feature X" [02:45] sorensen: heyo, anyone have any ideas on how to hook into a mongoose pre-read/fetch method? [02:46] SubStack: pow https://github.com/isaacs/node-tap/pull/35 [02:46] chrisdickinson: wingie: or look at when the package.json changed, and give a list of hashes between the changes? [02:46] squidly_ has joined the channel [02:46] chjj: is the "tags" field in package.json undocumented? [02:46] tjholowaychuk: wingie yeah some kind of flag would work [02:46] tjholowaychuk: in the commit message [02:46] Stephen has joined the channel [02:46] wingie: tjholowaychuk: that would be cool .. so they won't read the "remove whitespace" commits [02:46] tjholowaychuk: anything with a Closes # [02:47] chrisdickinson: tjholowaychuk: in practice, when running "npm install" to update your deps, are many of your deps changing minor versions? [02:47] Stephen: Ok, I have a general development question, maybe some smarts here can help [02:47] tjholowaychuk: we have ours all pegged [02:48] chrisdickinson: hm. i just wonder how much of a problem it would be in practice to get a bunch of short commit messages in the changelog. [02:48] Stephen: My app tracks "locations" [02:48] LukeBrookhart has joined the channel [02:48] chrisdickinson: for the one or two projects whose versions actually get bumped. [02:48] Stephen: ... better yet, URLs [02:48] tjholowaychuk: so much noise though [02:48] tjholowaychuk: unless people branch and --squash [02:48] tjholowaychuk: for features [02:48] Stephen: But it does so anonymously my hashing the URL before sending to the server [02:48] tjholowaychuk: you get a ton of noise [02:48] wingie: only tjholowaychuk's packages in my package.json is < 0 haha [02:48] wingie: unstable! [02:49] Stephen: In the past I have designed the app to disregard secure urls (https) [02:49] wingie: socket.io, commander, superagent [02:49] tjholowaychuk: that's why it's < 1 [02:49] tjholowaychuk: haha [02:49] tjholowaychuk: so i can change it [02:49] tjholowaychuk: because it's not even half done [02:49] chrisdickinson: tjholowaychuk: you'd get all the data, and then you could just grep for the data you'd like to see. [02:49] tjholowaychuk: well a little more than half [02:49] Stephen: Because usernames are attached to these hashes, and https is supposed to remain secure [02:49] Stephen: Now, each hash can have objects attached to it [02:49] innociv__ has joined the channel [02:50] chrisdickinson: and ideally, you could also do a npm update --test that would run `npm test` on your repo after updating, and if it breaks, determine the dep update that broke your package. [02:50] Stephen: Like a trap [02:50] LukeBrookhart: @tjholowaychuk, I just started using a bunch of your stuff, starting with express and jade [02:50] LukeBrookhart: love it, btw [02:50] tjholowaychuk: LukeBrookhart thanks! [02:50] Stephen: These objects have the user who deployed them on the url's username attached [02:50] LukeBrookhart: No, thank YOU [02:50] wingie: chrisdickinson: every package should be "npm test" compatible [02:50] LukeBrookhart: it's incredible [02:50] wingie: make things easier [02:50] chrisdickinson: wingie: agreed [02:50] wingie: "npm test", "semver convention" .. what a wonderful world it would be! [02:51] LukeBrookhart: I'm still trying to get things worked out on it [02:51] Stephen: Therein is the problem for HTTPS, a history of a user visiting. I'd like to conform to the security of HTTPS while still allowing them to be in the game [02:51] Stephen: So, I was thinking, remove the usernames [02:51] wingie: you know what .. isaacs should prohibit people from publishing apps without the "test" script in package.json [02:51] Stephen: All objects are anonymous on HTTPS, security preserved. [02:51] wingie: force every package to be unit tested [02:51] LukeBrookhart: keep getting "handshake error" [02:51] Stephen: However, I'd like to also keep that security server side [02:51] mike5w3c has joined the channel [02:52] lem0nbyte: wingie: would not stop the numerous broken ones [02:52] bradleymeck has joined the channel [02:52] lem0nbyte: but it's a start :) [02:52] Stephen: Since users get "points" for their objects being found, I need some way to attach these objects to the url hash, and a way to track when they've been used up to award the points to the original user [02:52] SubStack: wingie: npm ls or search.npmjs.org could show packages with tests more prominently [02:52] wingie: lem0nbyte: yeah but kinda forces a responsibility upon you .. it should also run "npm test" for all published packages [02:52] Stephen: but in an anonymous manner [02:52] tjholowaychuk: all i want is for $ npm search [02:52] tjholowaychuk: to not take 20 seconds [02:52] tjholowaychuk: haha [02:53] Stephen: I was thinking a bloom filter might work in this instance. Any thoughts? [02:53] lem0nbyte: wingie: platform/environment requirements make that infeasible imo [02:53] wingie: so it just publishes packages that passes tests [02:53] SubStack: tjholowaychuk: when I run anything with npm on an ec2 server it's amazingly fast [02:53] tjholowaychuk: lem0nbyte yeah agreed [02:53] tjholowaychuk: annoying more than anything [02:53] tjholowaychuk: SubStack: really? [02:53] tjholowaychuk: weird [02:53] SubStack: but everywhere else it's laggy as fuck [02:53] tjholowaychuk: npm itself is fine usually but search [02:53] tjholowaychuk: is brutally slow [02:53] sorensen: agreed [02:53] abraxas: tjholowaychuk: hey, i noticed you've been doing a lot of work on zeromq, awesome job [02:53] innociv has joined the channel [02:54] tjholowaychuk: real 0m8.814s [02:54] tjholowaychuk: better than usual [02:54] wingie: SubStack: how? [02:54] abraxas: tjholowaychuk: was that all cleanup work or did it actually move forward feature-wise as well? [02:54] tjholowaychuk: abraxas a lot of it was cleanup [02:54] a_suenami has joined the channel [02:55] tjholowaychuk: and tests etc [02:55] abraxas: tjholowaychuk: and node 0.6, right? [02:55] innociv has joined the channel [02:55] tjholowaychuk: ye ye [02:55] abraxas: tjholowaychuk: i'm wondering what made it version 2 all of the sudden? :) [02:55] tjholowaychuk: it might be broken on 0.6.x still, we're still using 0.4.x [02:55] tjholowaychuk: in prod [02:55] wingie: lem0nbyte: im sure SubStack will take care of that .. they take care of all testing scenarios [02:56] abraxas: tjholowaychuk: so are we, would love to move on to 0.6 though, a lot of free performance gain [02:56] wingie: would be a good marketing too .. "package tested with Testling" [02:56] tjholowaychuk: abraxas yeah definitely [02:56] tjholowaychuk: the binding isnt as fast as it should be [02:56] tjholowaychuk: but i'll work on that later [02:56] tjholowaychuk: not a huge deal for now [02:57] abraxas: tjholowaychuk: and what about zeromq protocol support? still the old one, right? [02:57] SubStack: wingie: I have a project in the works for providing travis-style testling badges [02:57] SubStack: also in the process of adding testling tests to a lot of my modules [02:57] tjholowaychuk: abraxas 2x i believe we have a patch for 3x [02:57] SubStack: browserify just got some [02:57] andrewfff has joined the channel [02:57] abraxas: tjholowaychuk: cool, looking forward to that [02:57] tjholowaychuk: me too [02:57] tjholowaychuk: haha [02:57] tjholowaychuk: :D [02:57] tjholowaychuk: haven't had time [02:58] joshkehn has joined the channel [02:58] joeyang has joined the channel [02:58] abraxas: tjholowaychuk: i have to admit though, it's not actually clear to me what v3 offers... [02:58] jeromebasa has left the channel [02:59] tjholowaychuk: abraxas one of the best things IMO is pub-side filtering [02:59] wingie: SubStack: cool .. better tests -> better code -> everyone happy [02:59] SubStack: agree! [02:59] tjholowaychuk: abraxas so if a subscriber doesn't want something it's just never sent [02:59] SubStack: just have to get more paying users in the meantime [02:59] abraxas: tjholowaychuk: ah great! yeah, that seems pretty inefficient now [02:59] SubStack: so that our runway doesn't run out [02:59] tjholowaychuk: when have millions of messages per second it's kind of a meh [02:59] tjholowaychuk: but [03:00] tjholowaychuk: depends what you're doing I suppose [03:00] SubStack: wingie: I'll be a bit busy overhauling the browserling code for the next month or so unfortunately [03:00] fbartho has joined the channel [03:00] abraxas: tjholowaychuk: well, it's one of the reasons we are using req/rep, and no pub whatsoever [03:01] tjholowaychuk: i see [03:01] SubStack: the first phase of that should go live tomorrow [03:01] SubStack: it's so freaking pretty [03:01] innociv_ has joined the channel [03:01] abraxas: tjholowaychuk: anyway, thanks for all the work, we really appreciate it :) it's nice to see node-zeromq maintained well [03:01] SubStack: hopefully that translates into a higher conversion rate [03:02] sorensen: SubStack: i'll convert for you [03:02] sorensen: ;) [03:02] wingie: SubStack: we see simpler and more elegant things arise, Travis > Hudson, StackVM > Saucelabs/Selenium [03:03] tjholowaychuk: saucelabs is pretty.. different than travis :p [03:03] wingie: SubStack: isn't saucelabs more like stackvm [03:03] SubStack: yes [03:03] wingie: but using selenium [03:03] wingie: not a CI [03:04] SubStack: selenium is terrible but mature [03:04] tjholowaychuk: hahaha yeah [03:04] tjholowaychuk: it sucks [03:04] SubStack: testling is awesome but crazy immature [03:04] jldbasa has joined the channel [03:04] wingie: you have to test more! [03:04] wingie: :D [03:05] ryan_stevens: testling is cool [03:05] wingie: what a bad joke haha [03:05] SubStack: also browserling is going to get crazy awesome fairly soon [03:06] wingie: could you give us a peek? [03:06] SubStack: real IEs, encoder server hopping and more dynamic routing [03:06] SubStack: well I have an old screenshot of the redesign kicking around [03:06] SubStack: that's just the front page though [03:06] SubStack: the real awesomeness will come when I finish the encoder server overhaul [03:07] eeemsi has joined the channel [03:07] SubStack: http://substack.net/images/browserling/browserling_redesign_0.png [03:07] sorensen: SubStack: would love it if you had real IE's [03:08] sorensen: was a bit dissapointed when it was just IETester [03:08] SubStack: we'll be offering real IEs for paid users [03:08] wingie: SubStack: this has nothing to do with your territory atm .. http://www.sencha.com/blog/introducing-siesta-a-testing-tool-for-ext-js/ [03:08] SubStack: since they are a bit expensive >_< [03:08] wingie: http://www.bryntum.com/products/siesta/ [03:08] jldbasa has joined the channel [03:08] sorensen: roger that [03:08] SubStack: since we have to run entirely separate desktops for each version [03:09] wingie: but could be nice to just read about since it's about testing (i always had some problems testing in either Sproutcore or ExtJS since they don't do usual HTML) [03:09] sorensen: not much you can do [03:09] sorensen: one of the bad parts about how we do things at work is that we could only use browserling against our production site [03:09] Vennril has joined the channel [03:09] sorensen: since nothing else is accessable [03:09] SubStack: haha look at http://substack.net/images/screenshots/browserling-1.png [03:09] ly- has joined the channel [03:10] sorensen: just a tad bit of a hinderence [03:10] SubStack: ancient version [03:10] tkaemming has joined the channel [03:10] SubStack: sorensen: you can use ssh tunnels for that [03:10] SubStack: to proxy through your localhost or intranet deploy into browserling [03:10] sorensen: o rly? [03:10] SubStack: there's an ssh button in the interface [03:10] wingie: cool theme [03:10] sorensen: this i did not know [03:10] SubStack: yep! [03:10] SubStack: it's more obvious on the redesigned website [03:11] sorensen: how much to get true IE? [03:11] SubStack: coming soon to dev plans [03:11] SubStack: at regular dev plan price [03:11] sorensen: i think we would be able to utilize it [03:11] mast3rof0 has joined the channel [03:12] SubStack: you'll also be able to get a dedicated instance for more monies [03:12] sorensen: do you ever wonder if the hand drawn art will discourage people? [03:13] innociv__ has joined the channel [03:13] sorensen: not that i dont love the hand drawn art [03:13] SubStack: it's much classier hand-drawn art now [03:13] SubStack: http://substack.net/images/browserling/browserling_redesign_0.png [03:13] sorensen: just curious if you've done any A/B testing [03:13] ceej_ has joined the channel [03:13] sorensen: oh i like that [03:13] bogomips has joined the channel [03:13] sorensen: this would make a very good a/b testing study [03:14] sorensen: hand drawn sexyness vs. sleek / shiny [03:14] wingie: a good thing is that you kinda see that they are developers .. much better than having a company full of managers Selling you things [03:14] SubStack: it's even more hand drawn now than before [03:14] wingie: i hate those sites [03:14] Aria has joined the channel [03:14] SubStack: but it's fancier at the same time [03:14] sorensen: this is wha twould make it a good a/b test [03:14] sorensen: since its targeted at devs [03:14] lem0nbyte: it is, except the 'pricing' 'create account' and 'sign in' text are kinda blah [03:14] sorensen: we can study ourselves! [03:15] wingie: SubStack: who drew it? [03:15] sorensen: oh yeah? well you're a lemon [03:15] lem0nbyte: rest is sexy hand drawing [03:15] sorensen: :D [03:15] SubStack: wingie: I draw and design everything [03:15] wingie: cool .. i thought devs couldn't draw [03:15] SubStack: FALSE [03:15] sorensen: ACTION can draw [03:15] SubStack: they're just lazy [03:15] sorensen: ACTION is lazy [03:16] lem0nbyte: maybe he has the Wii U [03:16] devongovett has joined the channel [03:16] SubStack: drawing is easy, just spend a few thousand hours in inkscape with a wacom [03:16] sorensen: substack's style is what stands out most [03:16] sorensen: is wacom bamboo? [03:16] wingie: but why did you draw everything? [03:16] SubStack: affirmative [03:16] sorensen: i've been thinking about getting one [03:16] SubStack: wingie: because I'm poor [03:16] sorensen: what size would you recommend? [03:17] wingie: SubStack: that is about to change! [03:17] SubStack: hiring a designer would take out several months or runway [03:17] wingie: the more we test .. the richer you get! [03:17] jocafa: i want the Inkling [03:17] lem0nbyte: well technically could make the middle box css3 and leave the logo/bg hand drawn, would still look nice [03:17] SubStack: wingie: yep [03:17] wingie: SubStack: yeah but i meant you could have reused icons etc [03:18] wingie: from some place [03:18] SubStack: I did reuse the icons from testling [03:18] sorensen: :P [03:18] sorensen: the bg and logo would be the only thing i can see that would need to be unique [03:18] sorensen: errry thing else, iconfinder and css [03:19] sorensen: if that was the style he was going for of course [03:19] SubStack: I drew all the browsers for http://substack.net/images/browsers/war_of_the_browsers.png [03:19] wingie: sorensen: or you could do like facebook just have regular text [03:19] wingie: what i am doing for my app :) [03:19] sorensen: how ordinary [03:19] wingie: perhaps having it *bold* [03:19] lem0nbyte: beep boop [03:19] SubStack: here, I'll fire up the site and tunnel it [03:19] SubStack: from my laptop at this coffee shop [03:19] astropirate has joined the channel [03:20] sorensen: you in oak town? [03:20] mike5w3c_ has joined the channel [03:20] wingie: sorensen: then you will of course have money pooring in and could pay a real designer [03:20] SubStack: sorensen: I live there but I'm in berkeley at the moment [03:20] sorensen: ah [03:20] sorensen: wish you would have come to san fran when i was there ;) [03:20] RLa: aww, poor ie getting shot [03:20] sorensen: lil sis didnt let me get out much [03:21] sorensen: wingie: i'm pretty proficient in photoshop for making websites, that is of course, if i still had it [03:21] trotter has joined the channel [03:21] sorensen: that which i cannot do in css [03:21] kickingvegas has joined the channel [03:21] SubStack: http://browserling.com:9094/ # slow because it's tunneling through the wifi at this coffee shop [03:22] sorensen: not sure how i feel about my ability to design/create though [03:22] sorensen: i feel it may be distracting to my dev abilities [03:22] sorensen: then again, someone recently blogged about how i'm trying to be a unicorn so idk [03:22] joshsmith has joined the channel [03:22] sorensen: :P [03:22] sorensen: SubStack: looks fantastic [03:23] sorensen: need more on the plain-text links though [03:23] sorensen: imho [03:23] astropirate: Anyone looking for a freelance node dev? [03:24] lem0nbyte: we have job police right? [03:24] abraxas: We're looking for full time node developers (in Tokyo) [03:24] willwhite has joined the channel [03:24] tbranyen: abraxas: wanna pay for me to go out there? [03:24] lem0nbyte: abraxas: i only live 8 hours flight from tokyo [03:25] wingie: sorensen: is photoshop the tool you would use to design? there is illustrator too .. perhaps vector graphic is better for web apps? [03:25] abraxas: if you're willing to move here :) [03:25] flip_digits has joined the channel [03:25] wingie: abraxas: what are you doing in Tokyo [03:26] wingie: jezz .. cool to live there? [03:26] tbranyen: abraxas: i won't leave for under a million yen a year [03:26] lem0nbyte: expensive to live there [03:26] abraxas: wingie: working on a node based game platform [03:26] wingie: abraxas: cool .. you have a company site? [03:26] abraxas: tbranyen: then you're very cheap :) [03:26] wingie: abraxas: perhaps you could find a node.js guy there? [03:26] lem0nbyte: tbranyen: Currently 1 million yen is equal to 11868.9895 US dollars. [03:26] smathy has joined the channel [03:26] wingie: but perhaps they are doing ruby more [03:26] abraxas: wingie: not yet actually, not one that represents what we're currently working on [03:27] smathy has joined the channel [03:27] lem0nbyte: HOW MANY YEN YOU PAY? [03:27] tbranyen: abraxas: nah you're just used to it [03:27] tbranyen: a million is a big number in america [03:27] wingie: abraxas: i just mean the company site [03:27] abraxas: wingie: wizcorp.jp [03:27] innociv has joined the channel [03:27] stutter has joined the channel [03:28] lem0nbyte: oh god, another php framework, coming soon! [03:28] ohnopb has joined the channel [03:28] okee has joined the channel [03:28] abraxas: lem0nbyte: i dunno :) i'm not in charge of that. more than a million a year, lol [03:28] wingie: abraxas: cool [03:28] lem0nbyte: go for the node, stay for the php [03:28] abraxas: again, this website is way outdated and does not represent what we're working on [03:28] tbranyen: abraxas: i wouldn't know what to do with over a million [03:29] tbranyen: i can't imagine owning a million of anything, except for maybe cells [03:29] abraxas: :) [03:29] okee: I know that node.js is snappy, but is it faster than nginx for web servers? [03:29] wingie: abraxas: the japanese customers talk english? [03:29] wingie: or do you have a translator [03:29] ryah: okee: no [03:29] ryan_stevens has joined the channel [03:30] abraxas: wingie: we have enough people in our company speaking japanese [03:30] wingie: cool [03:30] okee: So maybe I should use node.js and nginx in combination, for best performance. [03:30] RLa: okee, depends on app [03:30] tbranyen: okee: thats what i do with my site [03:30] lem0nbyte: if you're not talking about proxy [03:30] sarlalian has joined the channel [03:30] jldbasa has left the channel [03:31] ryah: okee: pragmatically, yes [03:31] okee: I am doing an ecommerce site. I bought a book called Node Web Development. It is ok, but a bit light on content. It gives you bits here and there, but no full scale up and running examples. [03:31] innociv_ has joined the channel [03:31] RLa: okee, node is good for lots of long-lived open connections, traditional web servers are not [03:32] tbranyen: okee: http://pastie.org/private/jyj1zyekghdk9sx9f17xq [03:32] tbranyen: is what my nginx conf looks like [03:32] jhooks has joined the channel [03:32] tbranyen: seems to work well [03:32] astropirate: So whats the strategy on load balancing websocket servers? [03:32] enmand has joined the channel [03:33] spleeze has joined the channel [03:33] okee: I hear that nginx is a lot more predictable than most. However, you can write a program that compensates for load -- at least in most cases. [03:34] astropirate: okee, nginx doesn't have support for websockets unfortunatly [03:34] bradleymeck: astropirate, basically you are stuck with some custom node-http-proxy stuff [03:34] ryah: okee: nginx is fine - but it's not programmable - you need some way to build dynamic content [03:34] okee: So what types of apps should I avoid that need web socket servers? [03:34] EyePulp: any way to have npm clear out old modules under the local /node_modules/ if they're no longer listed in the package.json? [03:34] ryah: so it's not really the same use-case as node [03:35] briandh has joined the channel [03:35] ryah: there is some overlap in the static file case. which node can serve fine. [03:35] EyePulp: other than me doing rm -rf, that is... [03:35] rwaldron has joined the channel [03:35] ryah: unfortunately it seems that a lot of the modules for serving static files in node are really bad [03:36] ryah: stating on each request, etc [03:36] astropirate: ryah, stating? [03:36] tjfontaine: stat()'ing [03:36] astropirate: i see [03:36] ryah: astropirate: making the stat syscall [03:37] ryah: it would be nice if someone wrote a good static file server [03:37] ryah: which cached fds [03:38] ryah: (maybe calling fstatSync on them) [03:38] ryah: etc [03:38] ryah: nginx is more or less the optimal static file server [03:38] SubStack: pow new module for replications https://github.com/substack/node-replicant [03:38] SubStack: no logic for conflict resolution yet [03:39] ryah: it would be good to look at how it does that (for example https://github.com/git-mirror/nginx/blob/master/src/http/ngx_http_file_cache.c) [03:42] tjfontaine: SubStack: I had done something not unlike this, if yours supplied some sort of time based key for simple conflict resolution I would use it in a heart beat [03:42] SubStack: tjfontaine: the plan is to do it couch-style with a rev field [03:43] SubStack: then I'll just re-run the transactions STM-style for conflicts [03:43] gregpascale has joined the channel [03:43] tjfontaine: SubStack: nod, that may likely still fill my need [03:45] bearnard has joined the channel [03:45] meso has joined the channel [03:46] zodiak has joined the channel [03:47] dilvie has joined the channel [03:48] tonymilne has joined the channel [03:48] sridatta has joined the channel [03:50] okee: If nginx doesn't support web socket servers, how do you get data transmitted from the DB directly to the user? [03:51] MatthewS has joined the channel [03:51] Aria: a) don't use nginx. b) use an nginx patched to support websockets. [03:51] ryah: c) dont use websockets [03:51] ryah: :) [03:51] dr0id has joined the channel [03:51] okee: An nginx patch? Where do I get the patch? [03:51] markq: but websockets are so cool :( [03:51] markq: socket.io ftw [03:52] okee: @ryah> What are web sockets bad? [03:52] okee: How do I create a patch? [03:52] jacobolus has joined the channel [03:53] voidvector has joined the channel [03:53] ryah: Aria: what's es(1) ? [03:53] okee: Meant to say "Why are web sockets bad"? [03:53] jesusabdullah: They're not bad [03:53] jesusabdullah: it's just an option. [03:53] okee: So why are they not he preferred version? [03:54] jesusabdullah: nobody said they weren't preferred [03:54] markq: what are you talking about. i love long-polling <3 [03:54] sorensen: yeah whats the hate on websockets [03:54] jesusabdullah: ಠ_ಠ [03:54] sorensen: jesus why you hatin` [03:54] markq: comet [03:54] sorensen: :D [03:54] okee: 12Aria>1Says they are. [03:54] markq: websockets are now jupiter [03:55] sorensen: lol [03:55] briandh: Okee, people say a lot of different things about an even larger amount of things. [03:55] webSockets: Do I need websockets? [03:55] briandh: Yes. [03:55] webSockets: When would I use them? [03:56] comet: when you need to use them [03:56] briandh: When you require them. [03:56] webSockets: When should I require them? [03:56] comet: or when they require you [03:56] sorensen: :D [03:56] briandh: For example, when you need web sockets. [03:56] webSockets: I should have been a dentist :) [03:56] sorensen: i love this conversation [03:56] comet: don't use websockets [03:56] comet: use comet [03:56] comet: aka me [03:56] comet: :D [03:56] comet: long-polling ftw [03:56] sorensen: D:< [03:56] harthur has joined the channel [03:57] sorensen: i prefer websockets [03:57] jesusabdullah: The problem isn't websockets. Websockets are neat, but they aren't universally supported and can't be proxied through nginx. [03:57] sorensen: and falling back [03:57] jesusabdullah: It's really not much more complicated than that [03:57] briandh: Why proxy them through nginx? [03:57] webSockets: Why do you prefer websockets? [03:57] jesusabdullah: except for the answer, "use socket.io" [03:57] sorensen: ^-- [03:57] comet: comets and shooting stars [03:57] webSockets: I am new to node.js, and don't know what I am doing. I do know Javascript. [03:58] sorensen: sockets arent new to node.js [03:58] briandh: If you know Javascript, you should use websockets. [03:58] context: if you don't now what web sockets are you dont need them [03:58] sorensen: you should always use them when appropriate [03:58] markq: okee: my advice. use socket.io with node and only node for now [03:58] context: and if you can't see a reason for them then you dont need them currently [03:58] tbranyen: this channel gets spammed about as much as ##javascript [03:58] sorensen: hardly... [03:58] okee: ok.... [03:58] pizthewiz has joined the channel [03:58] tbranyen: sorensen: last night was pretty bad [03:59] tbranyen: actually pretty much any time i peek in here [03:59] sorensen: ah was not here [03:59] jesusabdullah: okee: basically: visit http://socket.io and if it sounds like you need it then use it. Whatever. [03:59] sorensen: i sit in javascript though, its pretty bad [03:59] tbranyen: lol i haven't been back in over a year [03:59] markq: javascript has a channel? [03:59] jesusabdullah: indeed. [03:59] markq: holy crap. can't imagine what that must be like [03:59] sorensen: its quite a different social environment [03:59] okee: The only thing oddbal with the site that I am working on is that some of the items are sold as components, and can be bundled as a group. I would think Ajax would be more appropriate for that, since users can ad and drop components as they want before final checkout. [03:59] markq: war every 5 seconds [04:00] sorensen: yep [04:00] sorensen: the main reason to use sockets, imo, is when you want to push data to the clients [04:00] blueadept has joined the channel [04:00] blueadept has joined the channel [04:00] okee: Thats what I thought. [04:00] sorensen: which you can mock with long polling at any time [04:00] markq: okee: use websockets to do realtime things [04:00] sorensen: which is a little more traditional [04:00] sorensen: via ajax and such [04:00] markq: and use ajax to do one time things [04:00] ryanrolds: How's everyone? [04:01] SvenDowideit has joined the channel [04:01] kenperkins has joined the channel [04:01] sorensen: ryanrolds: drinking and you? [04:01] okee: It sounds like the submits and confirmations are more suitable to sockets, and bundling of components more suitable to AJAX. [04:01] sorensen: i require one beer per every cup of coffee i drank at work [04:01] dilvie has joined the channel [04:02] okee: I thought an httpRequest would be ok. I take it sockets are faster. [04:02] ryanrolds: Whatcha drinking? Thinking about drinking. ;) [04:02] sorensen: okee: that is one of th emajor advantages [04:02] sorensen: ryanrolds: deschutes mirror pond pale ale [04:02] okee: What? That sockets is faster? [04:02] sorensen: yes [04:02] markq: it's sad to see that nginx doesn't support http\1.1 yet [04:02] ryanrolds: sorensen: Very nice. Mirror pond is great. [04:02] sorensen: i love it [04:02] sorensen: you must be on the west coast [04:03] context: you just spent 30 minutes explaining what web sockets are. why? [04:03] ryanrolds: :) Yup, Eugene. [04:03] sorensen: ...what state? [04:03] ryanrolds: Dechutes county is < 3 hour drive. [04:03] ryanrolds: Oregon [04:03] sorensen: ACTION spokane [04:03] sorensen: nice [04:04] context: im half tempted to say okee is trolling. I swear I've seen him in here before [04:04] sorensen: okee: you should really just spend some time researching websockets before you use them [04:04] context: pretty sure he is ignored on my laptop [04:04] thatguydan: g'day folks [04:04] tbranyen: context: trolling is far too much credit [04:04] context: heh [04:04] tbranyen: which is why i say spam ;-) [04:04] sorensen: tbranyen: credit is far too encouraging for trolling [04:04] ryanrolds: sorensen: Tried anything by Ninkasi? [04:04] cmr: Does anyone know what the state of the changes mentioned at https://github.com/joyent/node/pull/2336 are or what the changes are at all? [04:04] sorensen: ryanrolds: nope [04:04] sorensen: good stuff? [04:05] Aliv3 has joined the channel [04:05] brodyberg has joined the channel [04:05] ryanrolds: Yeah, it's another brewery in the area. Very good stuff, just like stuff from Dechutes. [04:05] Aliv3: hey everyone :) getting started with node.js im making an irc bot [04:05] tbranyen: well met [04:05] context: YeY. an alphabetical API listing? finally? [04:06] context: I no longer have to use my browsers search function to find something? [04:06] monteslu has joined the channel [04:07] leo2007 has joined the channel [04:08] brodyberg has left the channel [04:08] leo2007: How to find node's module path? [04:08] dgathright has joined the channel [04:08] secoif has joined the channel [04:09] torvalamo: there were some security issues with the first specs [04:09] torvalamo: sorry, was scrolled up [04:09] torvalamo: lol [04:10] clutchski1 has joined the channel [04:12] kenperkins: is there a gzip implementation for js [04:12] thatguydan: Has anybody done much work with inter-node communication? We're using HTTP for node threads to talk to one another but wondering if anybody has used protobuf or 0mq successfully? [04:12] markq: use redis [04:13] thatguydan: we're basically doing RPC like calls with JSON-RPC, can you implement that in redis? [04:13] context: kenperkins: what did google say? [04:13] kenperkins: it said to ask context [04:13] willwhite has joined the channel [04:14] jacter has joined the channel [04:14] kenperkins: ;) [04:14] context: and no js has no gzip implementation. js is a language specificiation [04:14] mgolawala has joined the channel [04:15] zeade has joined the channel [04:15] replore has joined the channel [04:15] replore_ has joined the channel [04:15] context: thatguydan: hook.io ? [04:16] sorensen: so far i've only used redis pub/sub for node->node communication [04:16] context: sorensen: is every question in here vague and pointless? or do useful conversations actually take place? [04:16] sorensen: for different purposes of course [04:16] sorensen: context: usually usefull [04:16] sorensen: :\ [04:16] sorensen: hook.io / dnode is a good solution for node->node [04:17] dbsps has joined the channel [04:17] context: meh. time to head to the pub get some food and get some work done. [04:17] sorensen: and i wouldnt jump to the vague and pointless mode of thinking either, think of it as helping others who are new to this [04:17] sorensen: in which this community should support fully [04:18] thatguydan: cheers, will have a look. I saw a video on it ages ago but didn't look production ready at the time [04:18] sorensen: but thats just my opinion of course, have fun at the pub, i'm kinda thinking of the same [04:18] sorensen: a pub with sushi... [04:19] context: sorensen: don't get me wrong I enjoy helping people. if the question isn't "what are web sockets?" or "does js l [04:19] jergason has joined the channel [04:19] context: have gzip?" [04:19] context: google knows the answers to those. im not google. and looking at the API docs will show you the zlib section [04:20] context: mmmmm sushi [04:21] context: sorensen: sorry. i have a hatred for people. ;) people forgot that its ok to try things out and break things, even on purpose, just to see how they work, or find answers to things without waiting for someone to spoon it to them :-/ [04:21] sorensen: context: agreed [04:22] context: I thank the education system for the latter if not both points [04:22] sorensen: i was never intentionally disagreeing with you [04:22] jstash has joined the channel [04:22] sorensen: when i wondered about these things, i googled my ass off [04:22] sorensen: as college did not teach me such things [04:22] sorensen: (2 year associates) [04:22] sorensen: = java/c++/masm [04:23] sorensen: html/js/css? "oh you dont need those" - every professor [04:23] markq: i think it's possible to learn nearly everything from just googling [04:23] sorensen: agreed [04:23] context: yeah I skipped college :/ I argued with my professors the year and a half I went there and got in trouble for writing code that we shorter and faster cause I had already done that crap in self study [04:23] paulwe has joined the channel [04:23] context: google and Wikipedia [04:23] thatguydan: on a side note, did you know altavista is still alive on the internet? [04:23] sorensen: context: this is why i never took html classes, or rather, only took one [04:23] mgolawala has joined the channel [04:23] langworthy has joined the channel [04:23] context: hahaha [04:24] moogoo: least you werent requried to copy hand written code off of an overhead projector [04:24] markq: i haven't taken a single comp sci class and nor do i intend to [04:24] sorensen: i facepalmed the entire way [04:24] sorensen: though i will say a traditional background in comp sci is very handy [04:24] context: ok kids. pull out your html4 books. it's a decade old but we gonna learn your ass a lot of useless knowledge [04:24] markq: haha exactly [04:24] sorensen: knowing the js -> c -> assembly isnt bad ;) [04:25] context: I wish I took the time to learn asm [04:25] paulwe has joined the channel [04:25] cmr: The only "web design" class I ever took was in middle school, and we didn't learn a single thing about html or css... we learned how to drag and drop in kompozer [04:25] markq: in general college comp sci classes are almost instantly outdated unless they teach the most basic principles [04:25] sorensen: though you wont really gain anything usefull until you either do it in produciton or take a 300 level class [04:25] sorensen: context: asm is fun as hell [04:25] markq: fun? as in...? [04:25] sorensen: markq: thats the only thing to take them for [04:25] sorensen: fun, as in, asm is fun [04:25] context: cmr. we used frontpage in middle/high school [04:25] ambroff_ has joined the channel [04:26] sorensen: frontpage!?!? how were you so fancy [04:26] sorensen: we used notepad [04:26] context: hahaha [04:26] sorensen: my hs instructor was poor enough not to have such things [04:26] sorensen: which was good, because i knew not of IDE's, only notepad [04:26] context: hell my sophomore/jr year of hs I was downloading putty to ssh to my house to get on irc [04:27] markq: nano [04:27] sorensen: and to this day, my IDE's are only colorful notepads [04:27] killing-joke has left the channel [04:27] context: vim! [04:27] sorensen: context: lol nice, way beyond what i was at [04:27] sorensen: i still hate vim ):< [04:27] cmr: ACTION is a junior in hs now [04:27] sorensen: or rather, i just dont know it [04:28] sorensen: i'm getting better! i promise! [04:28] cmr: I love vim. I don't mind emacs, either. Both are very powerful [04:28] sorensen: my mouse is powerful [04:28] sorensen: though the level at which i can type at is absurd, i should learn vim [04:28] broofa has joined the channel [04:28] context: sorensen: thoughtbot has a pretty nice video for getting into vim. it's for rails developers but meh. [04:29] context: I've been using vim for years though [04:29] sorensen: i used windows my whole life... just got a mac about 3 months ago [04:29] SubStack: vim is great for jumping around and moving blocks [04:29] tbranyen: context: did you pay for it? [04:29] context: tbranyen: yeah [04:29] dre has joined the channel [04:29] tbranyen: so you found it worthwhile? [04:29] markq: vim costs money? [04:29] SubStack: I use dd, f, F, t, T and V/y/p all the time [04:29] sorensen: SubStack: there should be a 'yo momma' joke for that [04:29] context: I think the price tag was a little steep. but I did like the video [04:29] tbranyen: yea [04:30] sorensen: i'm slowly learning vim [04:30] tbranyen: it's like a 38 min vid for $15ish i think [04:30] sorensen: i still have no idea how to copy pasta [04:30] context: yeah [04:30] cmr: If you're a video kinda person, I don't think there's anything better than http://www.derekwyatt.org/vim/vim-tutorial-videos/ [04:30] sorensen: or.. 'yank [04:30] context: sorensen: d, y [04:30] context: p and P for paste [04:30] sorensen: not in insert mode? [04:30] context: modal mode [04:30] Construct has joined the channel [04:30] sorensen: k [04:30] context: or visual I guess for pulling multiple lines [04:31] sorensen: d y i can remember [04:31] context: sec [04:31] sorensen: p seems obvious [04:31] sorensen: i usually want to paste more than one line [04:31] context: dt" pull till " [04:31] sorensen: i dont even know how to select more than one [04:31] patcito has joined the channel [04:31] cmr: Shift-v, d, P [04:31] sorensen: my mouse does! [04:31] context: visual mode then just move up or down then normal buttons [04:31] EyePulp: I started using sublimetext2 recently - it's a nice blend of pure text and easy plugin architecture [04:32] sorensen: ACTION uses sublime text 2 daily [04:32] context: sorensen: I use macvim so I'll cheat sometimes and use the mouse [04:32] sorensen: :O [04:32] moogoo: i herd u can use a mouse in vim [04:32] moogoo: even in teh console [04:32] EyePulp: I'd like it to get deeper hg/git integration though [04:32] context: yeah [04:32] moogoo: advanced technology [04:32] mike5w3c has joined the channel [04:32] Construct: I scrolled my mouse wheel in vim the other day and it actually worked [04:32] sorensen: i feel using a mouse in vim defeats the purpose entirely [04:32] Construct: shocked me [04:32] moogoo: noooo way [04:32] moogoo: sometimes you are just too lazy [04:32] context: I use to use textmate. [04:32] cmr: In gvim, mouse works for lots of things. In an X console, it works for some [04:32] sorensen: its either all keyboard or i'm using a newer IDE [04:32] MatthewS has joined the channel [04:33] context: I still do sometimes for one off shit [04:33] moogoo: and often one hand is preoccupied scratching balls [04:33] sorensen: i use 'shift ] [04:33] sorensen: to navigate [04:33] sorensen: since i constantly forget what page up/down is on osx [04:33] context: just use the arrows ? [04:33] moogoo: probably need to swipe your face on the touchpad [04:33] sorensen: one line at a time it does [04:33] context: sorensen: oh. pg up/dn: fn and u [04:34] context: up down arrows [04:34] sorensen: ahh [04:34] context: apple made it easy ;) [04:34] cmr: ^d is down, ^u is up [04:34] cmr: (Half-pages) [04:34] context: yeah [04:34] sorensen: i hate apple, but i sure do like their products [04:34] sorensen: :D [04:34] context: meh. kk food for reals. stomach growling [04:34] EyePulp: heh [04:34] context: talk to you all later [04:34] sorensen: cya [04:35] sorensen: i need more beer talk, come back soon [04:35] jtr__ has joined the channel [04:35] context: heh [04:36] gavin_huang has joined the channel [04:36] sorensen: quick joke [04:36] sorensen: told my dad: "we have deschutes in washington, its pretty good" [04:36] raincole has joined the channel [04:36] sorensen: dad: "deschutes? i have those every morning!" [04:36] jtr__ has left the channel [04:36] sorensen: ಠ_ಠ [04:37] SamWhited has joined the channel [04:38] incon has joined the channel [04:38] EyePulp: heh [04:38] zilch has joined the channel [04:39] sorensen: true story... [04:42] sorensen: ok gents, need some sushi [04:43] markq: peace [04:44] cognominal has joined the channel [04:47] mgolawala has joined the channel [04:47] sarlalian has joined the channel [04:48] baoist_ has joined the channel [04:50] passionke has joined the channel [04:50] dre has joined the channel [04:52] disappea_ has joined the channel [04:53] imarcusthis has joined the channel [04:56] rurufufuss has joined the channel [04:56] briandh has joined the channel [04:58] bingomanatee: tjholowaychuk: ping [05:04] Guest63552 has joined the channel [05:05] yorick has joined the channel [05:05] cmr: Is the issue with anchors like http://nodejs.org/docs/latest/api/http.html#event_close_ being generic and going to the firstance known and being worked on, or is a patch needed? [05:07] amigojapan has joined the channel [05:07] cmr: s/firstance/first instance/ # must be late [05:08] Guest63552: I am watching the introduction to node.js by the founder and am wondering about the persistent nature of the http server that he creates in the beginning of the video, in the example he illustrates the chucked data by sending hello followed by world 2 seconds later to the http client, in the video this is illustrated using curl, my question/curiosity is in the persistant nature of a http client such as a browser, I suspect unlike curl, the r [05:09] Guest63552: Or would the browser act like the same way that ajax occurs, event oriented? [05:09] cmr: Guest63552: What persistent nature? [05:10] cmr: Guest63552: your first message was truncated btw... should get a better client [05:10] Guest63552: The "keep-alive" property that allows chunked data in http 1.1. [05:10] Guest63552: Where did it die? [05:11] cmr: "I suspect unlike curl, the r" [05:11] Aria: "unlike curl, the r"... [05:11] Guest63552: unlike curl, the request is rendered not immdediatly, that is, the 2 second pause between the hello and world isn't shown, but rather it is similar to previous http 1.1 request in that the browser would render the content all at once... Is this true? [05:11] mattgifford has joined the channel [05:11] Aria: most browsers don't usably expose chunks -- but browsers aren't the only consumers of HTTP [05:11] EyePulp has joined the channel [05:11] Aria: Actually, though, browsers will render what they get and add more as it comes in in simple cases. [05:12] Aria: They usually hold off starting to render until they get enough or some time has passed. [05:12] Guest63552: like imgs [05:12] Aria: But after that, they go into a live updating mode. [05:12] Aria: What's like imgs? [05:12] astropirate: haha i love how 5 year old companies still call themselfs startups :p silly interwebs companies [05:12] mast3rof0 has joined the channel [05:13] te-brian has joined the channel [05:13] Aria: Is startup in that case for 'we're still working 90 hours a week'? [05:13] sh1mmer has joined the channel [05:13] Guest63552: Images get rendered as more data appears so as to cause the image to seem more focused and completely focused and the end of transmission? [05:14] mast3rof0 has left the channel [05:14] cmr: Guest63552: That is not a built-in thing [05:14] cmr: Guest63552: that is entirely separate, normal picture loading is a line-by-line type of thing. [05:15] CarterL has joined the channel [05:16] wilmoore has joined the channel [05:17] kriszyp has joined the channel [05:17] dgathright has joined the channel [05:18] aidanns has joined the channel [05:22] cognominal_ has joined the channel [05:23] MatthewS has joined the channel [05:23] wenger has joined the channel [05:24] wenger has left the channel [05:25] innoying has joined the channel [05:31] voidvector: fg [05:31] pcaulagi has joined the channel [05:31] HT has joined the channel [05:33] stagas has joined the channel [05:34] descipher_ has joined the channel [05:34] versicolor has joined the channel [05:37] richardr has joined the channel [05:38] sirwan has joined the channel [05:41] cjm has joined the channel [05:43] stagas has joined the channel [05:43] socketio\test\28 has joined the channel [05:43] sridatta has joined the channel [05:44] brodyberg has joined the channel [05:46] jsvana has joined the channel [05:46] brodyberg has left the channel [05:51] leo2007 has left the channel [05:55] nicholasf has joined the channel [05:55] richardr has joined the channel [05:58] Guest63552: anybody know about yahoo cocktails? [05:58] isaacs has joined the channel [05:58] SubStack: vapor [05:58] briandh has joined the channel [05:58] SubStack: an isaacs appears! [05:58] [[zz]] has joined the channel [05:58] neoesque has joined the channel [06:01] langworthy has joined the channel [06:04] mraleph has joined the channel [06:05] kishoreyekkanti has joined the channel [06:06] jay_zawrotny has joined the channel [06:06] jay_zawrotny: Hello [06:06] SubStack: ahoy! [06:06] boltR has joined the channel [06:06] airandfingers has joined the channel [06:06] maxogden: greetz! [06:06] airandfingers: hello [06:07] airandfingers: i'm currently trying to set up cradle/couchdb/mysql [06:07] jay_zawrotny: If I want to specify that my app requires node 0.4.4 and above in my package.json is it node: '>=0.4.0'? [06:08] jaequery has joined the channel [06:08] SubStack: >=0.4.4 [06:08] _Tristan has joined the channel [06:08] wingie: Guest18468: watching the videos [06:09] jay_zawrotny: SubStack: Thanks! [06:09] Shaunzie has joined the channel [06:09] _Tristan: Hey. How can I prevent race conditions with node.js? I'm writing a basic webserver and if I request a bunch of files at the same time it'll deliver them to the wrong connections by mistake sometimes. [06:10] SubStack: _Tristan: gist your code and we'll take a look? [06:10] sirwan: Anyone know what the best way of Keeping Node up and running after I close SSH [06:11] SubStack: sirwan: forever, screen, monit, tmux [06:11] SubStack: lots of ways [06:11] sirwan: forever doesn't work with the latest node and debian [06:11] jjd has joined the channel [06:11] sirwan: does monit need upstart ? [06:11] _Tristan: ok, but it's kind of ugly. https://gist.github.com/1569284 [06:11] maxogden: sirwan: you can use upstart [06:11] RLa: _Tristan, there are no race conditions since node is single-threaded [06:12] sirwan: maxogden: I'm bait confused. does monit need upstart to work. or are monit and upstart 2 different viable options to get node up and running after i close [06:12] maxogden: sirwan: firstly node isnt any different from any other process so your question isn't really node specific [06:13] maxogden: sirwan: secondly upstart and monit have overlapping functionality, yes [06:13] sirwan: maxogden: ok [06:13] Shaunzie: _Tristan: http://nodetuts.com/tutorials/3-flush-the-cat-filesystem-reading-files-streams-slow-clients-and-syspump.html#video [06:13] SubStack: _Tristan: it looks like you could just use a module to load those static assets [06:13] dgathright has joined the channel [06:13] SubStack: if you're using express there's express.static and likewise for connect [06:13] mara has joined the channel [06:13] SubStack: or you can use ecstatic http://github.com/jesusabdullah/node-ecstatic [06:15] ly- has joined the channel [06:15] markq: i wish there was an easy way to compare which module works better in terms of performance and ease-of-use [06:16] SubStack: looking at the readme on github works pretty well [06:16] markq: if there are multiple modules that do the same thing then i also tend to look at the number if open issues to see how many people are actually using that particular module [06:17] markq: don't know if that's really a correct way to gauge stability though [06:18] SubStack: issues aren't very informative [06:18] SubStack: the most active modules tend to have more issues so you can't compare them without normalizing [06:18] maxogden: reading the code works pretty well [06:18] SubStack: and authors differ in how they handle github issues [06:18] voodootikigod__ has joined the channel [06:19] SubStack: good things to look for: presence of tests, npm stars, other modules depend on this one [06:19] SubStack: number of watchers, number of forks [06:19] markq: what do you mean by presence of tests and how do I check npm stars? [06:20] markq: those are good pointers though [06:20] ryanfitz has joined the channel [06:20] MatthewS has joined the channel [06:21] SubStack: _Tristan: also if you want to expose an api check out dnode https://github.com/substack/dnode [06:21] SubStack: markq: http://search.npmjs.org [06:21] SubStack: some packages have unit tests [06:21] SubStack: you can look at the scripts.test field in package.json [06:22] SubStack: usually they live in test/ [06:22] marcello3d has joined the channel [06:23] sirwan: anyone know if forever works with the latest version of NodeJS and debian 6 ? [06:24] SubStack: what would debian have to do with anything? [06:25] sirwan: not sure i used forever before and it crashed the entire server [06:25] sirwan: some of its commands doesn't even work with the latest nodejs [06:25] markq: then something else is wrong with your config [06:25] sirwan: ok [06:25] sirwan: it was a fresh install [06:25] markq: i just compiled node listerally 1 min ago and I'm running forever now [06:25] RLa: debian 6 still uses sysv init, sure that does not cause problems? [06:26] sirwan: not sure RLa [06:26] sirwan: markq: is that with debian ? [06:26] markq: ubuntu [06:26] sirwan: 11.04 ? [06:26] markq: yep [06:26] RLa: ubuntu uses upstart, completely different [06:26] sirwan: mark mind giving me a memory dump of your ubuntu [06:26] sirwan: yes i think upstart must have screwed with forever some how [06:27] sirwan: but i have read though, some of the forever commands do not work with the latest nodejs [06:27] RLa: tho upstart was supposed to be 100% with sysvinit [06:27] RLa: compatible* [06:27] sirwan: not sure to be honest rla [06:28] sirwan: isn't ryan thinking of having node be an entire service running on a server in the future? [06:28] sirwan: like replacing nginx and apchage [06:29] mdel has joined the channel [06:29] RLa: well, it can serve static content, so i suppose it could replace those [06:29] RLa: but running on top of those? [06:30] pcaulagi has joined the channel [06:30] sirwan: running on top of those is a pain to setup [06:31] sirwan: specially if this going to be a defacto development platform in the future [06:33] SubStack: sirwan: I hope not [06:33] SubStack: that shit should be in userland [06:34] sirwan: could this not potentially be forked in the future [06:34] SubStack: be vigilant against scope creep [06:34] SubStack: build experiments as separate projects [06:34] bradleymeck: god help us if it is a service, like half of my node code would be unusable [06:35] sirwan: well i think it would be cool to branch it as a service [06:35] sirwan: npm could be built into node too [06:36] bradleymeck: all the CLI apps would die, and the multitude of service detections (is it http, smtp, ...) would be insane [06:36] bradleymeck: sirwan npm is bundled with node now :) [06:36] sirwan: sounds good, some of the modules should be bundled with it too [06:36] rauchg has joined the channel [06:36] bradleymeck: but as for a service, haibu is pretty close if you just give it some process manager loving [06:36] bradleymeck: sirwan nah, leave that to distributions [06:37] sirwan: yes, ill give forever another try [06:37] sirwan: before i get too skeptical with the setting up of node for general purposes [06:37] cmr: SubStack: do you do your own artwork? [06:37] SubStack: cmr: affirmative [06:37] bradleymeck: sirwan forever's service branch is borken due to some compat problems, its going to be rewritten after haibu port to 0.6 and multi version is done in next 24 hours, so probably in next week [06:38] cmr: SubStack: it's pretty good, and a nice touch. [06:38] bradleymeck: sirwan i would just use upstart with haibu or w/e you have [06:38] RLa: i usually make simple init script containing nohup command, works with all kinds of apps/services [06:38] RLa: oh noes, application server [06:38] fangel has joined the channel [06:39] RLa: i'm enough fed up with container crap from java world [06:40] RLa: want to test your app? fire up behemoth appserver, takes 2-3 minutes if you are lucky, deploy, run tests [06:42] jay_zawrotny: Oh no, using geddy may have been a mistake :( [06:44] dshaw_ has joined the channel [06:46] RLa: hm, geddy looks like rails clone [06:46] AvianFlu has joined the channel [06:46] RLa: documentation could be more detailed tho [06:47] jay_zawrotny: Yeah [06:48] CIA-109: node: 03koichik 07v0.6 * rdd9593c 10/ (3 files in 3 dirs): [06:48] CIA-109: node: http: fix ServerResponse does not emit 'close' [06:48] CIA-109: node: Refs #2453. - http://git.io/jhwTDw [06:48] buu: Hrm [06:52] syoyo has joined the channel [06:53] rauchg has joined the channel [06:56] githogori has joined the channel [06:57] pcaulagi has joined the channel [06:57] Shaunzie has joined the channel [06:58] rauchg has joined the channel [07:01] rauchg has joined the channel [07:02] Construct has joined the channel [07:03] richardr has joined the channel [07:03] rauchg has joined the channel [07:04] syoyo_ has joined the channel [07:04] isaacs has joined the channel [07:05] rauchg has joined the channel [07:07] rauchg has joined the channel [07:08] Margle has joined the channel [07:09] rauchg has joined the channel [07:10] sh1mmer has joined the channel [07:11] rauchg has joined the channel [07:16] SamuraiJack has joined the channel [07:17] rauchg has joined the channel [07:18] Mitu has joined the channel [07:18] Mitu: hii [07:18] Mitu: hii [07:19] meso has joined the channel [07:19] rauchg has joined the channel [07:19] kenperkins has joined the channel [07:20] pcaulagi has joined the channel [07:20] Mitu has left the channel [07:20] braoru has joined the channel [07:20] neshaug has joined the channel [07:21] Wizek has joined the channel [07:22] Mitu has joined the channel [07:22] Mitu has left the channel [07:23] LukeBrookhart has joined the channel [07:24] mara has joined the channel [07:24] Shaunzie has joined the channel [07:24] disappea_ has joined the channel [07:24] tdegrunt has joined the channel [07:26] disappea_ has joined the channel [07:27] dodo has joined the channel [07:30] mikeric has joined the channel [07:31] rauchg has joined the channel [07:31] uchuff has joined the channel [07:31] fangel has joined the channel [07:32] luke` has joined the channel [07:32] npa has joined the channel [07:32] mytrile has joined the channel [07:33] rauchg has joined the channel [07:33] stagas has joined the channel [07:34] rgl has joined the channel [07:35] fff has joined the channel [07:35] rauchg has joined the channel [07:39] forzan has joined the channel [07:40] fff has left the channel [07:40] groom has joined the channel [07:41] rauchg has joined the channel [07:41] braoru has joined the channel [07:42] rgl_ has joined the channel [07:42] ph^ has joined the channel [07:43] braoru has joined the channel [07:43] rauchg has joined the channel [07:46] mytrile: Hey, guys. Can you recommend me advanced JavaScript book besides "The Good Parts", I want to learn how to design my javascript apps [07:47] ryan_stevens: mytrile: High performance JavaScript is pretty solid [07:47] jesusabdullah: mytrile: Next step is to start reading some open source code [07:47] jesusabdullah: and start reading that shit [07:47] mytrile: ryan_stevens: thanks [07:47] SubStack: ACTION seconds reading open source code [07:48] mytrile: jesusabdullah: that's what I'm doing right now [07:48] rauchg has joined the channel [07:48] jesusabdullah: I'd recommend reading the source to some of node's libs [07:48] jesusabdullah: trying to think of other codebases I've found enlightening [07:48] mytrile: I've through some of SubStack and TJ's modules :) [07:48] jesusabdullah: I've read a lot of nodejitsu's code for obvious reasons [07:48] Morkel has joined the channel [07:48] dexter_e has joined the channel [07:48] joshontheweb has joined the channel [07:48] jesusabdullah: union's source code is interesting imo [07:49] dexter_e: anyone know how to pass query couchdb view with colated key [07:49] jesusabdullah: three layers of prototypical inheritance [07:49] dexter_e: ?? [07:49] jesusabdullah: in a stream prototype [07:49] mytrile: jesusabdullah: nodejitsu libs are also in my list [07:49] jesusabdullah: good stuff man [07:49] jesusabdullah: also, hook.io sauce [07:49] jesusabdullah: that's a decent one [07:49] dexter_e: I'm using a collated key [ id , date ] and trying to view ID and range of dates. [07:50] dexter_e: Cradle CouchDB [07:50] mytrile: I've noticed that RackSpace open sourced continuous deployment app written in Node.js, I'll also into it [07:51] RLa: got link? [07:51] bradleymeck: if you want to the beauty and terror of dynamic languages resourceful is there, it does amazing and terrifying things [07:51] `3rdEden has joined the channel [07:51] rauchg has joined the channel [07:51] mytrile: RLa: http://www.rackspace.com/cloud/blog/2012/01/05/rackspace-open-sources-dreadnot/ [07:52] jesusabdullah: resourceful is an interesting read but I'm only part-way through it [07:52] jesusabdullah: also bizarre: dnode [07:52] jesusabdullah: that's like the kafka of node libs ;) [07:53] robotmay has joined the channel [07:53] Shaunzie: anyone know of a dstat-like utility that runs on osx? [07:53] rauchg has joined the channel [07:54] bergie has joined the channel [07:55] rauchg has joined the channel [07:57] rauchg has joined the channel [07:57] shapeshed has joined the channel [07:57] hipsters_ has joined the channel [07:58] level09 has joined the channel [07:58] tekky has joined the channel [07:59] Luffha has joined the channel [07:59] Drakonite has joined the channel [08:03] rendar has joined the channel [08:03] rendar has joined the channel [08:03] rauchg has joined the channel [08:03] Sami_ZzZ_ has joined the channel [08:05] vvo has joined the channel [08:06] skm has joined the channel [08:07] rauchg has joined the channel [08:08] ly- has joined the channel [08:09] rauchg has joined the channel [08:10] spolu has joined the channel [08:11] rauchg has joined the channel [08:13] Nuck: Anyone here know anything about the node-redis module? [08:13] Nuck: Because I'm trying to use linden on it, and it just flat out is not working. [08:13] darshanshankar has joined the channel [08:14] Nuck: Wait [08:14] Nuck: Nevermind [08:14] Nuck: I'm a retard [08:15] Nuck: haha I was doing lindex instead of linsert. I feel like a moron now. [08:15] rauchg has joined the channel [08:16] dexter_e: anyone rolling with CouchDB and Cradle know how to get a range of dates ? [08:16] buttface has joined the channel [08:16] christkv_ has joined the channel [08:17] rauchg has joined the channel [08:19] rauchg has joined the channel [08:19] dwhittle has joined the channel [08:20] raphdg has joined the channel [08:21] rauchg has joined the channel [08:23] djcoin has joined the channel [08:23] rauchg has joined the channel [08:23] tvw has joined the channel [08:23] p1d has joined the channel [08:24] christkv has left the channel [08:24] christkv has joined the channel [08:26] salva has joined the channel [08:27] rauchg has joined the channel [08:28] salva has left the channel [08:28] martin_sunset has joined the channel [08:29] rauchg has joined the channel [08:31] rauchg has joined the channel [08:31] dexter_e has joined the channel [08:32] shachaf has joined the channel [08:32] claudio has joined the channel [08:33] subbyyy has joined the channel [08:33] rauchg has joined the channel [08:33] dre has joined the channel [08:33] azend has joined the channel [08:34] Margle has joined the channel [08:35] p1d has joined the channel [08:35] rauchg has joined the channel [08:35] cognominal_ has joined the channel [08:36] kishoreyekkanti_ has joined the channel [08:38] dexter_e: Cradle CouchDB range of dates? Anyone? [08:38] rauchg has joined the channel [08:38] suzuken has joined the channel [08:41] rauchg has joined the channel [08:43] cosmincx has joined the channel [08:43] rauchg has joined the channel [08:44] meso has joined the channel [08:45] Locke23rus has joined the channel [08:47] neshaug has joined the channel [08:47] rauchg has joined the channel [08:48] clarkfischer has joined the channel [08:49] rauchg has joined the channel [08:51] snearch has joined the channel [08:51] rauchg has joined the channel [08:52] kishoreyekkanti has joined the channel [08:53] ccare has joined the channel [08:53] rauchg has joined the channel [08:55] rauchg has joined the channel [08:55] tilgovi has joined the channel [08:55] tilgovi has joined the channel [08:56] p1d has joined the channel [08:56] Tricks has joined the channel [08:56] Tricks: hi guys [08:57] rauchg has joined the channel [08:57] kazupon has joined the channel [08:59] Tricks: I have taken on a project from another person which uses nodejs for chat functionality. I have managed to install Nodejs and forever successfully on the new server. I have also allowed access via default port to Nodejs within iptables. When the server is running I can telnet to it fine. However, the web app has suddenly stopped working (although it was working for a period of time). Does anybody know of anything I can check? [08:59] rauchg has joined the channel [09:01] Druide_ has joined the channel [09:01] hipsters_ has joined the channel [09:01] aliem has joined the channel [09:01] rauchg has joined the channel [09:02] michaelhartau has joined the channel [09:03] context: tricks: a log file ? [09:05] jomoho has joined the channel [09:05] rauchg has joined the channel [09:05] kishoreyekkanti_ has joined the channel [09:06] kishoreyekkanti has joined the channel [09:07] sproates has joined the channel [09:07] pors has joined the channel [09:08] whitman has joined the channel [09:08] catshirt has joined the channel [09:08] ccare_ has joined the channel [09:08] vvo has joined the channel [09:10] thalll has joined the channel [09:11] rauchg has joined the channel [09:16] Tricks: context, I have just tried to start node using forever and I have some errors. I'll post them on pastebin. Not too sure on what they mean :) [09:17] rauchg has joined the channel [09:17] Tricks: here's the link: http://pastebin.com/QCQgAmsB [09:17] Tricks: any help would be greatly appreciated [09:20] aaronmcadam has joined the channel [09:20] dexter_e: Tricks: It looks like you're passing an undefined value to optimist: optimist [09:20] dexter_e: "TypeError: Cannot call method 'replace' of undefined", [09:20] dexter_e: " at Argv (/usr/lib/node_modules/forever/node_modules/optimist/index.js:35:33)", [09:21] Tricks: bad install? [09:21] quijote has joined the channel [09:21] dexter_e: Do you get the same error when you start with node app.js [09:21] dexter_e: ? [09:21] rauchg has joined the channel [09:21] Tricks: let me check [09:21] dexter_e: Your apps run fine when started directly with node [09:21] dexter_e: ? [09:21] dexter_e: ok [09:21] p1d has joined the channel [09:22] Tricks: dexter_e, thanks for helping me with this one [09:22] dexter_e: No worries , [09:22] Tricks: dexter_e, I have started node using 'node /path/to/file.js' [09:22] dexter_e: and it works fine ? [09:22] Tricks: and it seems to have started ok [09:23] Tricks: but the web app still won't connect :S [09:23] tytsim has joined the channel [09:23] dexter_e: Don't know what "web app still won't connect " means but ok. [09:23] Tricks: sorry the app that is supposed to connect to nodejs [09:24] Tricks: I'm not sure what I've done here it was working fine before [09:24] dexter_e: you meean the browser ? [09:24] dexter_e: If your app is not running with regular node start check if its the same error [09:24] dexter_e: if its starting right it could be something about your paths [09:24] Tricks: yeah I think it is [09:24] Tricks: come to mention it [09:25] Tricks: I wanted forever to run as a regular user and it might have been some changes I put in [09:25] rauchg has joined the channel [09:25] dexter_e: yeah its probably that then [09:25] dexter_e: good luck! [09:25] Tricks: I'll uninstall and start again I think ;) [09:26] Tricks: do you know of any good tutorials to acheive the above? [09:26] MerlinDMC has joined the channel [09:27] rauchg has joined the channel [09:27] HardPhuck has joined the channel [09:29] rauchg has joined the channel [09:29] aaronmcadam has joined the channel [09:30] Juan77 has joined the channel [09:30] kishoreyekkanti_ has joined the channel [09:30] HardPhuck: what's the best way to do multiple mongodb queries on one request? I do 4 - 5 of them and don't want to nest callbacks this deep [09:31] robhawkes has joined the channel [09:31] martin_sunset: HardPhuck: Check out Async NPm [09:33] rauchg has joined the channel [09:34] HardPhuck: interesting, thanx [09:34] HardPhuck: I was first looking at Step [09:35] HardPhuck: but this Async looks more powerful [09:35] p1d has joined the channel [09:35] martin_sunset: HardPhuck: It never failed me so far, seems Async has all the common and most of the uncommon scenarios covered [09:36] rauchg has joined the channel [09:36] HardPhuck: Will give it a try then, thank you! [09:39] mikedeboer has joined the channel [09:39] lperrin has joined the channel [09:40] hackband has joined the channel [09:41] rauchg has joined the channel [09:42] __doc__ has joined the channel [09:43] markwubben has joined the channel [09:43] ansh has joined the channel [09:43] benlyn has joined the channel [09:44] stonebranch has joined the channel [09:45] rauchg has joined the channel [09:47] ansh: hi therre [09:47] rauchg has joined the channel [09:47] ansh: i m very new to nodejs [09:48] lzskiss has joined the channel [09:49] ansh: i need to know how to validate form using express-form module [09:49] ansh: i found few example but those were worthless [09:51] mc_greeny has joined the channel [09:52] martndemus has joined the channel [09:53] sylvinus has joined the channel [09:53] booyaa: HardPhuck: TheJH gave me this async solution, you might be able to repurpose it. https://gist.github.com/5fd671a421dde344022a [09:54] jbpros has joined the channel [09:54] HardPhuck: thanx! [09:55] Heisenmink has joined the channel [09:55] ansh has joined the channel [09:55] josh-k has joined the channel [09:56] ansh: hi [09:56] ansh: i m new to nodejd [09:56] ansh: js [09:56] tuhoojabotti: Node [09:57] ansh: i want to know how to validate forms using express-form [09:58] martin_sunset: Ansh, if you provide more info about your problem and a gist of your source people might be able to help [09:58] ansh: can anyone help me [09:58] garrensmith has joined the channel [09:59] TheJH_phone has joined the channel [09:59] ansh: martin: ya actually i want to validate login page using express-form module [09:59] ansh: nut don't know where to start from? [09:59] ansh: i saw some examples but [09:59] ansh: did not get [09:59] ansh: anything [10:00] ansh: martin [10:00] booyaa: martin_sunset++ # hear hear [10:00] martin_sunset: Ansh make sure that you actually render the validation errors. Express messages might be needed [10:01] hz has joined the channel [10:01] ansh: martin: i share my code with u [10:01] martin_sunset: Ansh the example on the readme is working, I used it a couple days ago [10:01] martin_sunset: Ansh go to gist.github.com, create a gist and post link here [10:01] gamera has joined the channel [10:03] AD7six has joined the channel [10:03] Vennril has joined the channel [10:03] ansh: martin: wht readme example u r talking about [10:03] ansh: ? [10:04] ansh: martin: here is the login page http://pastebin.com/wmuj4Sek [10:04] bogomips has joined the channel [10:04] ansh: martin : sorry i cant share a whole application with u [10:04] martin_sunset: Https://github.com/dandean/express-form [10:04] martin_sunset: Brb [10:05] ansh: martin: [10:05] ansh: ok [10:07] ansh: martin : actually i m not getting where i have to write that code(read me ) in my controller [10:08] ansh: martin: here is the controller http://pastebin.com/YebcdnA2 [10:09] ansh: hi guys i ve shared my problem with martin can u help me [10:09] ansh: ? [10:09] lukegb has joined the channel [10:10] martin_sunset: Ansh I am sorry but I am too tired to make sense of this right now. Are you using express at all? [10:10] ansh: martin : [10:10] ansh: martin: sorry , nut i m nor using express mvc but railway [10:11] ansh: martin: and for form validation i ve to use express-form module [10:12] martin_sunset: Ansh I see. Can't really help you then, only glanced over it. But in general the important part with form validation is that it has to be injected as middleware, most likely within the action parameter [10:12] kulor-uk has joined the channel [10:14] ansh: martin: ok,can u tell me the line why the app.post is used in readme example [10:14] bradleyg has joined the channel [10:14] martin_sunset: Thats maps an incoming post route to a callback [10:14] martin_sunset: Basically, [10:15] herbySk has joined the channel [10:15] martin_sunset: It takes the request, runs it through form validation, then renders the result [10:15] martin_sunset: I am just looking into railway to see if you can actually do the same easily with action [10:16] skm has joined the channel [10:16] ansh: martin: ok ,thanx [10:17] mikeric has joined the channel [10:17] martin_sunset: This might work: action('loginvalidated',yourvalidationfunction,.... [10:19] booyaa: hey martin_sunset you use compass or sass right? [10:19] martin_sunset: On ruby side, on node it's stylus and empty void [10:20] mara has joined the channel [10:20] ansh: martin: thanx but i know tht yourvalidation function will be used to validate but wht code ll be written there coz i dont need the code var app = express.createServer(); like tht coz i already have created sserver [10:21] ansh: martin: i want only this part to validate my form form( filter("username").trim(), validate("username").required().is(/^[a-z]+$/), filter("password").trim(), validate("password").required().is(/^[0-9]+$/), filter("email").trim(), validate("email").isEmail() ), // Express request-handler now receives filtered and validated data function(req, res){ if (!req.form.isValid) { // Handle errors [10:22] ansh: martin : sorry here is the part http://pastebin.com/XvptewRc [10:23] ansh: martin : i dont need var app = express.createServer(); and app.post thing in my code [10:23] martin_sunset: Ansh the sample on the readme is a complete server, hats why the code is there. What you need to do is to pass the form as the seond parameter of the action method [10:24] ansh: martin: ok [10:24] cjheath has joined the channel [10:24] keltus has joined the channel [10:25] ansh: martin : can't i use var form = require("express-form"), filter = form.filter, validate = form.validate; [10:25] ansh: martin: in the controller [10:26] martin_sunset: I'll make you a gist tat might work. [10:26] ansh: martin: lot many thnx [10:27] ansh: martin: mail me the link youranshul@sourcebits.com [10:31] martin_sunset: This might work: https://gist.github.com/1570021 [10:32] ansh: martin:thanx [10:32] ansh: martin :i see if it works [10:33] ansh: ? [10:35] svnlto has joined the channel [10:36] martin_sunset: You need to check if action supports middleware and if it passes req, res with its callback. In general I think though that using railway is not the best idea [10:38] booyaa: this website's pretty cool: http://jsperf.com/async-vs-settimeout-0 [10:39] LeMike has joined the channel [10:40] Morkel has joined the channel [10:41] boehm has joined the channel [10:42] else has joined the channel [10:45] nickynyfiken has joined the channel [10:45] nickynyfiken: Hi I am new to node is there any good books out yet? Seen that there is a couple out but are they any good? [10:46] jxie has joined the channel [10:46] larsschenk has joined the channel [10:46] larsschenk has left the channel [10:46] christkv: this one is coming out I think http://www.manning.com/cantelon/ [10:46] tilgovi has joined the channel [10:46] tilgovi has joined the channel [10:46] goloroden has joined the channel [10:46] goloroden: hi everyone :-) [10:47] ansh: hi [10:47] __tosh has joined the channel [10:47] goloroden: just a short question ... what is the difference between calling "node debug app.js" and "node --debug app.js"? I mean, I see that there *IS* a difference, but what is the meaning of both versions? [10:47] fermion has joined the channel [10:48] nickynyfiken: christkv: thanks. [10:49] christkv: nnickynyfiken: no problem [10:49] tytsim has joined the channel [10:50] dexter_e has joined the channel [10:51] mashed has joined the channel [10:51] else has joined the channel [10:52] aaronmcadam has joined the channel [10:52] nickynyfiken: The past year I have been developing on ruby on rails but want to try node.js out. What I want to build is web "apps". I have a couple of questions I want to discuss if anyone has any experience in the subject. First is what do you think of single page apps where the server only has 1 static layout and all the rendering is done on the client? the disadvandatage is of course the hash mark but that could be solved in numerous ways [10:52] amigojapan has joined the channel [10:53] martin_sunset: nickynyfiken: It depends ;) [10:53] nickynyfiken: I never want to do a page refresh. so I am either going to go with just pure ajax on the client, or pjax so I can get nice urls and use the back and forward functionaliy or something like socket.io which is my question should I use socket.io or is that not what it is for? [10:53] nickynyfiken: martin_sunset: yeah I know it always does :) [10:54] nickynyfiken: but I mean should YOU render templates on the server and use websocket or pjax to get the views html or should you render them om the client? [10:54] martin_sunset: nickynyfiken: For single page app always transfer Json and render on the client [10:54] nickynyfiken: martin_sunset: ok cool that I have experince in so good. are you familiar with pjax? [10:55] martin_sunset: nickynyfiken: I have looked at it, but not used it. [10:55] goloroden has left the channel [10:55] spohnan has joined the channel [10:55] nickynyfiken: or what about the nice urls how should I else get them? use history.js or something? [10:55] martin_sunset: nickynyfiken: Check out flatiron, they have a great router [10:55] nickynyfiken: I am going to use backbone on the client and it has pushState as an option [10:55] nickynyfiken: as well as a router [10:56] nickynyfiken: martin_sunset: have you used rails? [10:56] martin_sunset: Backbone router works too, personally I switched to director though [10:56] martin_sunset: nickynyfiken: Our app is 50 percent rails, 50 node [10:56] nickynyfiken: or has anyone else used rails and are familiar with asset pipepline? has node something similiar for compiling coffeescript etc [10:57] nickynyfiken: as soon as I get it up and running with the config I wil have no problem but don't see it as clearly as for example a rails project [10:57] martin_sunset: nickynyfiken: Nothing as good as the asset pipeline unfortunately, there is some asset middleware, for coffeescript I use watch flag , same for stylus [10:58] arthurdebert has joined the channel [10:58] zomg: nickynyfiken: socket.io is good if you need two-way comms, or a lot of push from the server. If not, then it might be simpler to just use "standard" ajax [10:58] nickynyfiken: zomg ok cool because I dont want to invole stuff just because if they don't benefit me [10:58] zomg: for nice urls, recent browsers support the html5 history api, which lets you modify the URL "live", and not just the hash part [10:59] zomg: for older browsers you'd need to fall back to the hash, but there are libs that can handle that for you [10:59] nickynyfiken: zomg: yeah there is a library called history.js that I think I will use for that [10:59] zomg: Yeah that's one I think [10:59] nickynyfiken: yeah it got fallbacks for html 4 etc [10:59] Industrial: There is also BatmanJS :P [10:59] Industrial: but it's larely alpha [10:59] Industrial: largely* [11:00] liar has joined the channel [11:01] nickynyfiken: I have glanced at batman.js but think I will go with backbone for this project since I know it good enough [11:05] lperrin1 has joined the channel [11:06] jayniz has joined the channel [11:06] jayniz has joined the channel [11:06] jayniz has joined the channel [11:07] dnjaramba has joined the channel [11:08] aaronmcadam has joined the channel [11:09] booo has joined the channel [11:10] meso has joined the channel [11:10] r04r has joined the channel [11:11] context: wow. batman.js looks pretty crazy [11:12] thalll has joined the channel [11:12] nickynyfiken: yeah haha I am thinking of trying it out. backbone is nice but has some things I dont like as well [11:14] Cromulent has joined the channel [11:15] goloroden has joined the channel [11:16] jbpros has joined the channel [11:16] agnat has joined the channel [11:17] martin_sunset: I like the binding syntax, definitely worth checking out again [11:19] spohnan has left the channel [11:20] spohnan has joined the channel [11:20] goloroden: I now understand that the debug parameters starts Node's integrated debug client that lets me access the running app. help says that the --debug switch enables V8 debugger, so obviously the integrated one is not started. Why would I want to do this? [11:20] spohnan has left the channel [11:21] meso has joined the channel [11:21] goloroden: Okay, I would want to do this, e.g., when running node-inspector to have debugging enabled, but not running inside the node process since it's not where I am debugging [11:21] nickynyfiken: so if I am going to build I single page app with node I will just use express on the server to set up a defualt route to / where I serve a static html file and then on the client manipulate it and set up express resources and define routes for them so I can get them with ajax on the client? have I gotten it right? [11:21] booyaa: arse bloody integration auth in iis is a pile of steaming do do [11:21] goloroden: So does using "debug" include "--debug"? Which means: debug activates debugging (just as --debug), but ALSO starts the debuging console within node? [11:21] hellp has joined the channel [11:21] booyaa: time to login and outagain [11:22] spohnan has joined the channel [11:22] goloroden: nickynyfiken: that's how I'd to it, at least [11:22] xetorthio has joined the channel [11:22] jbpros has joined the channel [11:23] Wizek has joined the channel [11:24] Aliv3: hello [11:24] jimt has joined the channel [11:24] goloroden: hi Aliv3 [11:24] nickynyfiken: goloroden: thanks then I will go with it :) [11:25] fermion has joined the channel [11:25] shinuza has joined the channel [11:25] goloroden: nickynyfiken: what's great when you want to do something like this is knockout.js [11:25] goloroden: which allows you to send and receive json from the server, and update the UI accordingly, without the need to deal with DOM manipulation yourself [11:27] fangel has joined the channel [11:28] break57382 has joined the channel [11:29] kuebk has joined the channel [11:29] adrianF has joined the channel [11:29] secoif has joined the channel [11:30] michaelhartau has joined the channel [11:38] nickynyfiken: if using batman.js or knockout.js anyone got a good router to recommend? I will go with nice urls since I am going to use either pjax or history.js [11:38] Morkel has joined the channel [11:39] Nopik has joined the channel [11:40] r04r has joined the channel [11:40] kishoreyekkanti has joined the channel [11:40] Sami_ZzZ_ has joined the channel [11:43] aaronmcadam has joined the channel [11:43] stisti has joined the channel [11:47] braoru has joined the channel [11:47] trodrigues: has anyone ever tried using soda (the selenium adapter) with chromedriver? [11:48] slaskis has joined the channel [11:49] robotmay has joined the channel [11:49] r04r has joined the channel [11:49] r04r has joined the channel [11:49] spohnan has left the channel [11:50] satyr has joined the channel [11:51] grekko has joined the channel [11:55] Nss has joined the channel [11:58] jetienne has joined the channel [12:00] Margle has joined the channel [12:01] chjj has joined the channel [12:02] SvenDowideit has joined the channel [12:02] ansh has joined the channel [12:02] Hanspolo has joined the channel [12:04] r04r has joined the channel [12:05] ph^ has joined the channel [12:10] dexter_e has joined the channel [12:10] dylang has joined the channel [12:11] r04r has joined the channel [12:11] benlyn has joined the channel [12:12] jtrudeau has joined the channel [12:13] fbartho has joined the channel [12:16] josh-k has joined the channel [12:17] Margle has joined the channel [12:19] agnat has joined the channel [12:20] r04r has joined the channel [12:20] TimTimTim has joined the channel [12:20] Stephen has joined the channel [12:26] tytsim has joined the channel [12:27] shinuza has joined the channel [12:28] r04r has joined the channel [12:28] r04r has joined the channel [12:29] Margle has joined the channel [12:29] CrisO has joined the channel [12:30] CrisO has left the channel [12:30] fbartho has joined the channel [12:34] r04r has joined the channel [12:34] r04r has joined the channel [12:34] madhums has joined the channel [12:34] erichynds has joined the channel [12:36] jaymz87 has joined the channel [12:37] tytsim has joined the channel [12:39] tdegrunt has joined the channel [12:39] davetayls has joined the channel [12:40] erichynds has joined the channel [12:40] Carmivore has joined the channel [12:40] al3xnull has joined the channel [12:41] davetayls has joined the channel [12:43] mmyjona has joined the channel [12:44] else has joined the channel [12:45] r04r has joined the channel [12:45] d0k has joined the channel [12:46] shinuza has joined the channel [12:48] Margle has joined the channel [12:49] ly- has joined the channel [12:50] Heisenmink has joined the channel [12:50] cjm has joined the channel [12:50] Cromulent has joined the channel [12:53] Provito has joined the channel [12:53] r04r has joined the channel [12:57] skm has joined the channel [12:57] davetayl_ has joined the channel [12:58] p1d has joined the channel [12:58] r04r has joined the channel [13:01] stefpb has joined the channel [13:04] jacobrask: I need to convert Unicode strings to ASCII for storing in a MongoDB, I can't rely on SpiderMonkey being compiled with Unicode support so it has to be ascii. I want it to be decodable to Unicode again. Should I use Buffer for this, and how? [13:05] r04r has joined the channel [13:06] cryptix has joined the channel [13:07] scott_gonzalez has joined the channel [13:08] icy` has joined the channel [13:08] vvo has joined the channel [13:08] jstonne has joined the channel [13:08] Juan77 has joined the channel [13:08] lperrin1: jacobrask: not sure if it helps, but you can manipulate ascii data with buffers [13:09] lperrin1: buffer.toString('ascii') [13:09] vkareh has joined the channel [13:10] fairwinds has joined the channel [13:10] enmand has joined the channel [13:10] icy`: hmm, possibly a related question [13:11] icy`: I'm having some trouble converting changes API couchdb data to json [13:11] icy`: I think it's related to newline/tab characters [13:12] icy`: Is there a better method other than running a .replace? [13:12] jtrudeau has joined the channel [13:13] jimmysparkle has joined the channel [13:16] r04r has joined the channel [13:16] r04r has joined the channel [13:17] replore has joined the channel [13:17] replore_ has joined the channel [13:18] Jippi has joined the channel [13:19] kulor-uk has joined the channel [13:20] r04r has joined the channel [13:20] r04r has joined the channel [13:23] blup has joined the channel [13:23] piscisaureus_ has joined the channel [13:26] fbartho has joined the channel [13:26] zemm has joined the channel [13:27] r04r has joined the channel [13:28] stagas has joined the channel [13:28] bshumate has joined the channel [13:28] bshumate has joined the channel [13:29] TimTimTim has joined the channel [13:29] goloroden has joined the channel [13:29] goloroden: hi ... is anyone here who has some debugging experience with the built-in debugger of node.js? [13:29] passionke has joined the channel [13:30] TimTimTim has joined the channel [13:31] benlyn has joined the channel [13:31] kyonsalt has joined the channel [13:32] r04r has joined the channel [13:33] mmalecki: goloroden: hey, you pinged me on #nodejitsu, sup? [13:34] goloroden: mmalecki: *g* yes :-) [13:34] goloroden: mnmalecki: basically I just wanted to ask if you would like to explain your deploy-twice-theory to me ;-) [13:35] goloroden: mmalecki: moreover, I am having a strange effect in the node debugger, but that's not related to you specially [13:36] mAritz has joined the channel [13:36] mmalecki: goloroden: Avian is working on it now, I'll ping him. I think master is doing something weird. [13:36] goloroden: mmalecki: okay :-) ... so no big story ;-)? [13:36] goloroden: mmalecki: with lots of excitement, and so on ;-)? [13:38] mmalecki: goloroden: it's just hard to debug [13:38] mmalecki: and this programming thing, I heard it's hard in general :D [13:38] benlyn has joined the channel [13:38] goloroden: mmalecki: :-D [13:39] goloroden: mmalecki: okay, but thanks a lot again for your great help and your patience :-) [13:39] thax has joined the channel [13:40] pauls1 has joined the channel [13:40] TheNumb has joined the channel [13:40] mmalecki: goloroden: my pleasure :) [13:41] abraxas has joined the channel [13:42] fumanchu182 has joined the channel [13:42] miccolis has joined the channel [13:44] brianseeders has joined the channel [13:44] mAritz1 has joined the channel [13:44] sproates: the real trick is to not write any bugs [13:44] MerlinDM has joined the channel [13:44] sproates: however we can only do this by writing no programs [13:45] fly-away has joined the channel [13:46] uwek has joined the channel [13:46] jaket has joined the channel [13:46] mAritz2 has joined the channel [13:48] LukeBrookhart has joined the channel [13:48] mmalecki: sproates++ [13:48] kevwil has joined the channel [13:48] dodo has joined the channel [13:51] cache_za has joined the channel [13:54] kishoreyekkanti has joined the channel [13:55] postwait has joined the channel [13:56] k1ttty has joined the channel [13:56] deedubs has joined the channel [13:57] riven` has joined the channel [13:57] AaronMT has joined the channel [13:57] riven has joined the channel [13:58] passionke has joined the channel [13:58] andrewfff has joined the channel [13:58] SubStack: curl -sSN surrender-cube.nodejitsu.com [13:58] SubStack: haha it's already getting slammed [13:59] SubStack: oh it's because the interval never gets cleared [14:01] catshirt has joined the channel [14:05] EvRide1 has joined the channel [14:07] neurodrone has joined the channel [14:07] dodo: SubStack: ah that's why i dont get anything [14:08] SubStack: hmm unsure what the problem is now [14:08] booyaa: SubStack: re: curl -N (no buffering). when would you want to use this? [14:08] SubStack: ALWAYS [14:08] booyaa: is it like doing a CTRL-R? [14:08] SubStack: curl buffers by default which is lame [14:08] booyaa: in the browser forcing a reload? [14:09] CarlosC has joined the channel [14:09] SubStack: I am getting really tired and reckless [14:09] plutoniix has joined the channel [14:09] madhums has joined the channel [14:10] phluffy has joined the channel [14:10] SubStack: better go to sleep before I bring down some systems through rampant experimentation [14:10] booyaa: SubStack: jesus fucking christ i just saw that url [14:10] booyaa: SubStack++ # you're mental, but this is cool [14:10] dodo: SubStack: did you noticed too that sometimes lines are too long? not sure if its my copy pasta math or your code :P [14:10] SubStack: hah no idea! [14:10] booyaa: please don't tell me it's some kinda webgl to ascii craziness [14:10] benlyn has joined the channel [14:10] SubStack: it could be NaNs [14:11] SubStack: those sometimes fuck everything up if you pass them to charm [14:11] SubStack: since it stringifies them so the cursor positioning can get messed up [14:11] dodo: uh [14:11] SubStack: booyaa: I didn't even write it, dodo did [14:12] SubStack: I just made it into a webapp [14:12] davidsklar has joined the channel [14:13] c4milo has joined the channel [14:13] dodo: i guess its that line #71 ^^ https://github.com/substack/node-surrender/blob/master/index.js#L71 [14:13] booyaa: dodo++ # you sir are fsckn crazy [14:13] SubStack: dodo: it checks for horizontal and vertical cases before that part [14:13] SubStack: https://github.com/substack/node-surrender/blob/master/index.js#L60 [14:13] dodo: its simple math .. even a amiga can calculate :D [14:14] dodo: SubStack: ya .. but you cant never be sure that (p1[0] - p0[0]) isnt 0 [14:14] jstonne has joined the channel [14:15] dodo: i mean .. x/0 == NaN [14:15] thomblake has joined the channel [14:15] SubStack: but it does check on line 60 [14:15] booyaa: there should be a glsl.heroku.com for this stuff [14:15] miccolis has joined the channel [14:15] thomblake has left the channel [14:16] dodo: you checking not the same values [14:16] dodo: because on line 60 your floor them before you check [14:17] rwaldron has joined the channel [14:18] SubStack: well that is silly [14:18] Venom_X has joined the channel [14:18] SubStack: anyhow zzz & [14:19] mAritz has joined the channel [14:19] yorick has joined the channel [14:19] vvo has joined the channel [14:21] euoia has joined the channel [14:22] jlank has joined the channel [14:25] rwaldron has joined the channel [14:26] zitchdog has joined the channel [14:27] jstonne has joined the channel [14:27] neurodrone has joined the channel [14:27] Guest38975 has joined the channel [14:27] Guest38975 has joined the channel [14:28] lazyshot has joined the channel [14:29] adambeynon has joined the channel [14:29] joshsmith has joined the channel [14:29] devdazed has joined the channel [14:31] jsvana has left the channel [14:32] bkaney has joined the channel [14:33] sangcn has joined the channel [14:38] euoia has joined the channel [14:38] heavysixer has joined the channel [14:39] uchuff has joined the channel [14:39] lperrin1: anyone knowledgable about v8 profiling ? [14:40] lperrin1: Profiling always return _accept$NOCANCEL at 99.9%, which isn't very helpful [14:40] meso has joined the channel [14:40] raincole has joined the channel [14:40] jbpros has joined the channel [14:40] meso has joined the channel [14:41] m00p has joined the channel [14:42] pors has joined the channel [14:43] ovaillancourt has joined the channel [14:44] kyonsalt has joined the channel [14:44] akter has joined the channel [14:48] zitchdog has joined the channel [14:48] willwhite has joined the channel [14:48] fumanchu182 has joined the channel [14:49] colinclark has joined the channel [14:49] malletjo has joined the channel [14:49] esmevane has joined the channel [14:50] dshaw_ has joined the channel [14:50] _jgr has joined the channel [14:50] _jgr has joined the channel [14:51] munichlinux has joined the channel [14:52] munichlinux has joined the channel [14:52] mertimor has joined the channel [14:52] jaket has joined the channel [14:53] jaket has joined the channel [14:56] thalll has joined the channel [14:56] carlyle has joined the channel [14:57] LeMike has joined the channel [14:58] arcanin has joined the channel [14:59] nickynyfiken has joined the channel [14:59] nickynyfiken: I am new to node.js and I am trying to use connect-assets but I can't get it work accordingly to the github page [14:59] nickynyfiken: when I write app.use require('connect-assets')() as it says in the app configure it throws an error [14:59] Poetro has joined the channel [15:00] nickynyfiken: anyone used it and could take a minute for their time to help out? [15:00] jscheel has joined the channel [15:00] jscheel has joined the channel [15:02] datchap has joined the channel [15:02] m00p has joined the channel [15:02] euoia has joined the channel [15:03] djcoin has joined the channel [15:04] ohnopb has left the channel [15:04] bodisiw has joined the channel [15:05] dgathright has joined the channel [15:06] gmcerveny has joined the channel [15:06] jetienne_ has joined the channel [15:07] tmcw has joined the channel [15:07] Agos has joined the channel [15:08] davidwalsh has joined the channel [15:11] shinuza has joined the channel [15:12] mara has joined the channel [15:13] jergason has joined the channel [15:13] break57382 has joined the channel [15:13] robhawkes has joined the channel [15:14] Poetro has joined the channel [15:15] webguynow has joined the channel [15:15] ilikeit has joined the channel [15:16] pauls1: anyone know what's up with this npm install error? http://d.pr/hlRC [15:17] jocafa has joined the channel [15:17] nickynyfiken: anyone been using connect-assets? I get an error when following the example on the github page [15:18] shinuza has joined the channel [15:18] Swimming_Bird has joined the channel [15:19] tjholowaychuk has joined the channel [15:19] JesusRosso has joined the channel [15:22] CarterL has joined the channel [15:22] c4milo has joined the channel [15:23] BillyBreen has joined the channel [15:24] else has joined the channel [15:24] icebox has joined the channel [15:26] dgathright has joined the channel [15:28] dylang has joined the channel [15:28] jbpros has joined the channel [15:28] brianc1 has joined the channel [15:29] dylang has joined the channel [15:30] alvaro_o has joined the channel [15:31] RichardBronosky has joined the channel [15:33] enmand has joined the channel [15:33] Poetro has joined the channel [15:34] joshkehn has joined the channel [15:34] joshkehn has left the channel [15:34] aelien27 has joined the channel [15:35] a_suenami has joined the channel [15:35] zivester has joined the channel [15:36] tytsim_ has joined the channel [15:36] mAritz1 has joined the channel [15:36] bradleyg has joined the channel [15:36] jakehow has joined the channel [15:38] jjd has left the channel [15:38] cyanglee has joined the channel [15:38] nickynyfiken: anyone been using connect-assets? I get an error when following the example on the github page [15:42] else has joined the channel [15:42] larsschenk has joined the channel [15:43] larsschenk1 has joined the channel [15:43] mAritz has joined the channel [15:43] larsschenk1 has left the channel [15:43] ritch has joined the channel [15:44] marcello3d has joined the channel [15:44] slickplaid: . 1.9^3 [15:44] jstash has joined the channel [15:46] aaronmcadam has joined the channel [15:46] mAritz1 has joined the channel [15:48] AndreasMadsen has joined the channel [15:48] jergason has joined the channel [15:48] isaacs has joined the channel [15:48] Destos has joined the channel [15:49] ryanfitz has joined the channel [15:49] bearnard has joined the channel [15:49] slickplaid: .. 1.9^3 [15:49] catb0t: 2 [15:49] slickplaid: .. 1.9*1.9*1.9 [15:49] catb0t: 6.858999999999999 [15:49] slickplaid: wat [15:50] mAritz has joined the channel [15:50] monteslu_ has joined the channel [15:50] AndreasMadsen: .. Math.pow(1.9,3) [15:50] catb0t: 6.858999999999999 [15:50] aheckmann has joined the channel [15:51] AndreasMadsen: slickplaid: ^ is a bitwise operator [15:51] slickplaid: yeah, I just realized that lol [15:51] AndreasMadsen: .. [0] == ![0] [15:51] catb0t: true [15:51] AndreasMadsen: slickplaid: Try thinking about that ^ [15:51] lesce has joined the channel [15:52] slickplaid: wow... today is going to be a good day [15:52] slickplaid: ACTION facepalms [15:52] ritch: .. [] == ![] [15:52] catb0t: true [15:52] ritch: .. [0] == [] [15:52] catb0t: false [15:52] mAritz1 has joined the channel [15:53] MatthewS has joined the channel [15:53] ritch: [0] && 'wtf' [15:53] ritch: .. [0] && 'wtf' [15:53] catb0t: "wtf" [15:53] ritch: wow [15:54] AndreasMadsen: ritch: I had not thougt about that :) [15:54] ritch: so what is it? [15:54] ritch: .. ![0] [15:54] catb0t: false [15:55] AndreasMadsen: something about that !x not being the same as != x , but I need to read the ES5 final final final final documentation about it [15:56] ritch: nah, its trying to compare ref types [15:56] ritch: {} == {} [15:56] ritch: false [15:56] EvRide has joined the channel [15:56] AndreasMadsen: .. {} == {} [15:56] catb0t: Exception: SyntaxError: Unexpected token == [15:56] ritch: .. ({}) == ({}) [15:56] catb0t: false [15:57] AndreasMadsen: .. ({}) == !({}) [15:57] catb0t: false [15:57] AndreasMadsen: .. !({}) [15:57] catb0t: false [15:57] _Tristan has joined the channel [15:57] AndreasMadsen: .. ({}) [15:57] catb0t: { } [15:57] AndreasMadsen: .. {} == true [15:57] catb0t: Exception: SyntaxError: Unexpected token == [15:57] AndreasMadsen: .. ({}) == true [15:57] catb0t: false [15:58] futuredarrell has joined the channel [15:58] ritch: can we just nuke == [15:58] AndreasMadsen: .. ({}) == false [15:58] catb0t: false [15:58] _Tristan: Security concerns aside, can I use express-expose to expose the fs to the client? [15:58] AndreasMadsen: ritch: Year I never use it. [15:59] AndreasMadsen: ritch: But i one did something like if (x && x[0]) where x = [0] [15:59] AndreasMadsen: .. !!![0] [15:59] catb0t: false [15:59] slickplaid: .. parseInt(1.9,2) [15:59] catb0t: 1 [16:00] AndreasMadsen: ritch: See you will never get that zero value since !!![0] is false :) [16:00] slickplaid: .. parseFloat(1.9,2) [16:00] catb0t: 1.9 [16:00] AndreasMadsen: .. Math.round(1.9) [16:00] catb0t: 2 [16:01] AndreasMadsen: slickplaid: Thats is how ^ [16:01] slickplaid: :D [16:01] jstash has joined the channel [16:01] brianloveswords has joined the channel [16:01] ritch: slickplaid: what are you trying to do? [16:01] cognominal has joined the channel [16:02] AndreasMadsen: .. (1.9 && + 1.9 | 0 || 0); [16:02] catb0t: 1 [16:02] jergason has joined the channel [16:02] slickplaid: made the mistake last night of using the bitwise operator instead of Math.pow() :) [16:02] slickplaid: and wondering why my numbers were off [16:02] slickplaid: and now I'm just having one of those "duh" moments [16:02] warz has joined the channel [16:02] warz has joined the channel [16:03] AndreasMadsen: The toInt(number) { return number && + number | 0 || 0; } is the best function in the world :) [16:03] AndreasMadsen: Just give it another name then people won't understand you code :) [16:03] gsmcwhirter has joined the channel [16:03] napperjabber has joined the channel [16:04] AndreasMadsen: And use if (x === ![0]) insted of f (x === false) [16:04] joshsmith: I have +100 reputation on SO for anyone who wants to answer this question: http://stackoverflow.com/questions/8389149/how-do-you-mock-mysql-without-an-orm-in-node-js [16:05] mmalecki: joshsmith: use ORM... oh, wait [16:05] Venom_X_ has joined the channel [16:05] AndreasMadsen: .. Math.min() < Math.max() [16:05] catb0t: false [16:05] AndreasMadsen: That is a good one to [16:06] Nomon__ has joined the channel [16:06] Pilate: .. [Math.min(), Math.max()] [16:06] catb0t: [ Infinity, -Infinity ] [16:06] pt_tr has joined the channel [16:07] mmyjona has joined the channel [16:07] ritch: joshsmith: have you looked at these: https://github.com/felixge/node-mysql/tree/master/test [16:08] wuut has joined the channel [16:08] wuut: yo girls [16:08] joshsmith: mmalecki: thanks! [16:08] wuut: i want to do a http proxy with node but trough a proxy [16:08] joshsmith: ritch: I think I dug around in there before, looking again [16:08] xtianw has joined the channel [16:08] wuut: is that possible? [16:08] _Tristan: Security concerns aside, can I use express-expose to expose the fs to the client? [16:08] joshsmith: wuut: a proxy through a proxy? [16:08] mmalecki: yo dawg, I heard you like proxies [16:08] wuut: noooo [16:08] slickplaid: inproxyception [16:08] wuut: http request [16:08] wuut: soz [16:09] joshsmith: wuut: http://toolbox.no.de/search?q=proxy [16:09] ritch: mmalecki: proxy say wuuut [16:09] mmalecki: _Tristan: yes but that's stupid [16:09] TheDeveloper has joined the channel [16:09] joshsmith: mmalecki: so we put a proxy in your proxy [16:09] _Tristan: mmalecki: why? [16:09] wuut: i want to do a http request trough a proxy [16:09] mmalecki: _Tristan: security :) [16:10] BruNeX has joined the channel [16:10] _Tristan: ok, sure. How do I do it? [16:10] tiglionabbit has joined the channel [16:10] _olouv_ has joined the channel [16:10] skm has joined the channel [16:10] ritch: _Tristan: look at this: https://github.com/substack/dnode [16:10] JKarsrud has joined the channel [16:10] dnyy has joined the channel [16:10] wuut: omg wtf joshmith ty for help but i cant find anything related... [16:11] wuut: so basically i do want to do a http request, but trough a proxy... [16:11] booyaa: wuut: you talk like a valley girl [16:11] ritch: wuut: have you looked at http-proxy or bouncy? [16:11] lwille has joined the channel [16:11] booyaa: omg wtf [16:11] strax has joined the channel [16:11] remysharp has joined the channel [16:11] wuut: booya soz man [16:11] booyaa: wuut: it's cool [16:11] _Tristan: ritch: should I use dnode as an alternative to exposing the fs to the client, or should I use dnode to expose the fs to the client? [16:11] matjas has joined the channel [16:11] joshsmith: wuut: did you even look at the link I sent you!? [16:11] LukeBrookhart has joined the channel [16:11] wuut: ritch aint reli [16:11] joshsmith: what more [16:11] wuut: joshsmith sure fuck i did [16:11] enmand has joined the channel [16:11] pksunkara has joined the channel [16:11] owenb has joined the channel [16:11] justicefries has joined the channel [16:11] strmpnk has joined the channel [16:12] ryanseddon has joined the channel [16:12] booyaa: gag me with a spoon [16:12] booyaa: like totally [16:12] joshsmith: "A full-featured http reverse proxy for node.js" is pretty self-explanatory [16:12] ritch: _Tristan: just expose what you via dnode… but do things like authentication, validation, etc [16:12] Raynos has joined the channel [16:12] _Tristan: k, thanks [16:13] wuut: joshsmith maybe (prolly) i am totally retarded but here is the situation: i want to connect to a service which continously bans me ip... i want to get around that.... [16:13] wuut: joshsmith will dat shit cut it? [16:13] slickplaid: tor [16:13] joshsmith: wuut: what are you doing that you're getting banned? [16:13] wuut: joshsmith you dont want to no dat [16:13] joshsmith: I do [16:13] cognominal_ has joined the channel [16:13] wuut: reli [16:13] k1ttty has joined the channel [16:13] joshsmith: *really* [16:14] wuut: joshsmith If i wud tell ya i wud haffi kill ya [16:14] slickplaid: https://www.torproject.org/ [16:14] joshsmith: wuut: alright, tell me and then kill me [16:14] joshsmith: and everyone else in #node.js [16:14] ralph has joined the channel [16:14] wuut: joshsmith u aint funy mudafaka [16:14] joshsmith: we're cool with that [16:14] booyaa: totally [16:14] slickplaid: +1 [16:14] Swizec_ has joined the channel [16:14] booyaa: <-- got life insurance, it's cool brah [16:15] c4milo has joined the channel [16:15] LukeBrookhart: Anybody have a solution for socket.io not sending the cookie along with the connection request when the site and the NodeJS app are on different domains? [16:15] wuut: torproject sux girls, im on a very expensive ($$$$) server i cant just fuck around with tor project or shiznit liek dat [16:15] jyp_cloud has joined the channel [16:15] ncb000gt has joined the channel [16:15] daleharvey has joined the channel [16:15] booyaa: heh [16:15] slickplaid: hah [16:16] wuut: i fought i cud connect to a proxy and do a http client afterward FROM nodejs [16:16] wuut: aim aint no hardcore hacker like you gals [16:17] joshsmith: wuut: you could use proxymesh [16:17] booyaa: bro your proxy has to have an ip address, if you existing behaviour is getting your ip connection blocked [16:17] tuhoojabotti: wuut: I can recommend a module called bouncy, it's nice. [16:17] booyaa: guess what your proxy ip is also getting blocked [16:17] joshsmith: wuut: http://proxymesh.com/ [16:17] slickplaid: why are you helping him? [16:17] wils has joined the channel [16:17] wuut: so proxymesh and bouncy? [16:17] booyaa: slickplaid: most interesting problem we've got at the moment [16:17] JT-EC has joined the channel [16:17] joshsmith: there are potentially legitimate reasons for doing it [16:18] wuut: slickplaid dont be so negative man its 2012 and we are still alive [16:18] wuut: wuuts your problem [16:18] clintberry has joined the channel [16:18] joshsmith: but since he won't fucking tell me, I don't know if it is or not [16:18] jmar777 has joined the channel [16:18] joshsmith: ACTION is angrily helpful [16:18] wuut: joshsmith okay enuff of gaming i want to scrape a shitload of google serps [16:18] wuut: :D [16:18] slickplaid: lulz [16:18] wuut: i mean really a shitload :D [16:18] joshsmith: ROFL [16:18] joshsmith: WHY!? [16:18] joshsmith: why would you ever want to do that? [16:19] ritch: haha [16:19] joshsmith: Google will fuck you down your fucking throat [16:19] booyaa: serps? [16:19] wuut: because i fucking spam the shit out of the world, thats why [16:19] wuut: whats your problem? :D [16:19] joshsmith: search engine results pages [16:19] booyaa: ah danke [16:19] ritch: cant you just proxy the queries to google... [16:19] ritch: why bother with all that stale data anyway [16:19] booyaa: this is so going to end in tears [16:19] joshsmith: yes it is [16:19] wuut: booya wuut? [16:19] niftylettuce has joined the channel [16:19] wuut: why? [16:19] slickplaid: ACTION grabs some popcorn [16:19] clintberry: You guys all seem sarcastic, but I have a serps parser in node that uses hide-my-ass proxies if you want it [16:20] joshsmith: if you don't have the chops to do it, don't try it [16:20] joshsmith: clintberry: yeah, but you wrote that shit, right? [16:20] booyaa: clintberry: you just wrote that shit haha [16:20] ritch: clintberry: is it a jpg? [16:20] clintberry: jpg? [16:20] booyaa: joshsmith++ # same thought [16:20] joshsmith: wuut can't even understand how to look at Node toolbox [16:20] clintberry: yeah, I wrote it [16:20] wuut: clintberry it would be friggin nice to share with me [16:20] ritch: i hear jpgs are very secure for sending over irc [16:20] wuut: PICS OR DIDNT HAPPEN :D [16:20] joshsmith: it would be a friggin disservice to the world [16:20] booyaa: clintberry: give us the github url so we can watch the shit out of that repo [16:20] joshsmith: wuut is cut off [16:20] clintberry: Let me clean it up and I'll put it on my github [16:21] mmalecki: I don't think I even know what's going on [16:21] booyaa: clintberry: bonus if you use js2coffee [16:21] joshsmith: #nodefight [16:21] clintberry: ha ha, [16:21] clintberry: no coffeescript for now, sorry [16:21] booyaa: mmalecki: stay down man, wuut is reckless [16:21] stdarg has joined the channel [16:21] wuut: clintberry dont upload it to github it will get abused [16:21] wuut: :D:D [16:21] mmalecki: booyaa: acknowledged, thanks [16:21] Tricks has joined the channel [16:21] Tricks: hi guys [16:21] wuut: and google will ban us all lol [16:22] clintberry: You guys might not like this, but I actually call a child process that fires up phantomjs [16:22] booyaa: lo Tricks [16:22] jaequery has joined the channel [16:22] clintberry: so I take it back that it is all node based. [16:22] Tricks: I have successfully installed nodejs and forever so they're run as a system user (nodejs) [16:22] booyaa: well that's been a few mins of entertainment. [16:22] Tricks: all install fine after some playing with perms etc :) [16:22] sveimac has joined the channel [16:23] Tricks: problem is now when I use forever node path/to/file.js I get this error [16:23] Tricks: http://pastebin.com/7LXg9cHC [16:24] Tricks: can anybody shed any light on this one for me? [16:24] clintberry: does anyone know if I can use crypto to encrypt with a public key (asymmetrical encryption)? I can't seem to find anything about it [16:24] lmatteis has joined the channel [16:24] _dc has joined the channel [16:24] ritch: Tricks: npm ls | grep createpair [16:24] ryanseddon has joined the channel [16:25] Nomon__ has joined the channel [16:25] tbranyen: god damn fuck irccloud [16:25] tcurdt has joined the channel [16:25] joshsmith: wow [16:25] joshsmith: that was fun [16:26] clintberry: what was that? [16:26] Pilate: its pretty crazy that many people actually use it [16:26] Tricks: ritch, I get no output from that [16:26] MatthewS has joined the channel [16:26] joshsmith: clintberry: I think irccloud had a hiccup [16:26] Tricks: ritch, should i install using npm? [16:27] booyaa: odd that, would've expected createpair to be installed by forever if it was a dependency [16:27] akahn has joined the channel [16:27] booyaa: Tricks: give it a go [16:27] ritch: Tricks: try installing it [16:27] tcurdt has joined the channel [16:27] tylergillies has joined the channel [16:27] clintberry: I have never even heard of IRC cloud. It looks cool, but not if it mass boots everyone :-) [16:27] Marak has joined the channel [16:27] ritch: booyaa: they might have missed it in package.json [16:27] JKarsrud has joined the channel [16:27] Tricks: booyaa, ritch 'createpair' is not in the npm registry. [16:27] Tricks: :S [16:28] chunhao_ has joined the channel [16:28] booyaa: yeah even checked nipster too [16:28] akahn has left the channel [16:28] ralph has joined the channel [16:28] wuut: isnt bouncy is more like a load balancer? [16:29] wuut: dunno how i could issue a HTTP GET request with it trough a proxy [16:29] tjbell has joined the channel [16:29] romainhuet has joined the channel [16:29] fson has joined the channel [16:29] booyaa: Tricks: how did you acquire node, you compile it scratch? [16:29] booyaa: wondering if createpair is a crypto thing [16:30] booyaa: and praps you no can haz crypto [16:30] jeremyselier has joined the channel [16:30] _Tristan has joined the channel [16:30] JasonSmith has joined the channel [16:30] briancray has joined the channel [16:30] Tricks: yeah downloaded from git then make install [16:30] mattly has joined the channel [16:30] rauchg has joined the channel [16:30] olegp has joined the channel [16:31] msch: really stupid question, how do i copy/clone a Hash? [16:31] devongovett has joined the channel [16:31] secoif: msch I believe you need to loop over the properties and copy the manually or use a library like sugarjs or underscore [16:31] msch: secoif: ok thanks! [16:32] secoif: msch http://documentcloud.github.com/underscore/#clone [16:32] _dc has joined the channel [16:32] Overv has joined the channel [16:32] _Tristan: ok, so I'm using dnode to pass the fs to the client, but when I real files I get long lists of numbers which seem to represent characters. Any way to get this as a string instead? [16:32] isaacs has joined the channel [16:32] _Tristan: read* not real [16:32] EriksLV has joined the channel [16:32] jyp_cloud has joined the channel [16:32] hz has joined the channel [16:32] booyaa: Tricks: i'm groping in the dark here, but run node in repl/interactive mode [16:33] strax has joined the channel [16:34] booyaa: Tricks: can c&p the contents of process.versions [16:34] mandric has joined the channel [16:34] matjas has joined the channel [16:34] sproates: @_Tristan pass encoding to fs.readFile or you will just get raw data back [16:34] sriley has joined the channel [16:34] niftylettuce has joined the channel [16:34] tcurdt has joined the channel [16:34] sproates: fs.readFile('foo.txt', 'UTF-8', function(error, data) { ... }); [16:34] rio{ has joined the channel [16:35] booyaa: Tricks: this one might eb useful too node --vars | grep NODE_CFLAGS [16:35] _Tristan: oh, ok... how do I know what to give it for encoding? [16:35] alessioalex has joined the channel [16:35] sproates: that would depend on the contents of the file [16:36] _Tristan: well, I'm making it so this thing can open up any text file [16:36] garann has joined the channel [16:36] _Tristan: so should I just set it up for utf8 and then try something else if it fails? [16:36] sproates: generally UTF-8 will work for text files [16:36] blueadept has joined the channel [16:36] CIA-109: node: 03Bert Belder 07hash-rand-0.6 * r4a899c9 10/ (23 files in 7 dirs): (log message trimmed) [16:36] CIA-109: node: Land hash collision fix for V8 3.6 by Erik Corry. [16:36] CIA-109: node: - If V8 snapshots are enabled then the hash is only randomized at build time. [16:36] CIA-109: node: - Breaks MIPS [16:36] CIA-109: node: --- [16:36] CIA-109: node: Backport hash collision workaround to 3.6. [16:36] cognominal has joined the channel [16:36] CIA-109: node: This is made up of 9956, 10351, 10338 and 10330. [16:37] _Tristan: sproates: thanks [16:37] fcoury has joined the channel [16:37] reid has joined the channel [16:37] salazr_ has joined the channel [16:38] dscape has joined the channel [16:38] duncanbeevers has joined the channel [16:38] sorensen__ has joined the channel [16:39] iaincarsberg has joined the channel [16:39] MacDiva has joined the channel [16:39] dexter_e has joined the channel [16:40] cognominal has joined the channel [16:40] jayniz has joined the channel [16:40] jayniz has joined the channel [16:40] jayniz has joined the channel [16:40] Dreamer3 has joined the channel [16:40] scott_gonzalez: isaacs: Did you intentionally make node-semver mark 0.0.1a1 as valid? [16:40] isaacs: scott_gonzalez: it is valid [16:40] isaacs: (yes) [16:41] scott_gonzalez: semver says that it has to be 0.0.1-a1 [16:41] isaacs: you mean semver.org? [16:41] scott_gonzalez: yes [16:41] isaacs: please correct the author. [16:41] isaacs: in practice, the - is optional. [16:41] Outsider__ has joined the channel [16:41] BruNeX has joined the channel [16:41] scott_gonzalez: Ok, I had thought the dash was optional too :-P [16:41] isaacs: semver.org is not the authority. semver.js is. [16:41] c4milo: isaacs: so 0.0.1-alpha1 is also valid? [16:42] isaacs: c4milo: yes. [16:42] c4milo: isaacs: and 0.0.1.alpha1 ? [16:42] isaacs: "-" is the lowest-ordinal-valued tag [16:42] isaacs: c4milo: no [16:42] strmpnk has joined the channel [16:42] isaacs: c4milo: npm install -g semver ; semver -v 0.0.1-alpha1 [16:42] c4milo: isaacs: I see [16:43] scott_gonzalez: semver.js as in your code is the authoritative source? [16:43] c4milo: so semver.js doesn't follow semver.org? [16:43] isaacs: scott_gonzalez: there can be a . in the tag, but it can't be the first char. [16:43] isaacs: c4milo: it started with semver.org [16:43] isaacs: but it's been refined in practice, and semver.org has not. [16:43] trotter has joined the channel [16:43] c4milo: isaacs: fair enough [16:43] isaacs: this is why a spec is always < a real-life in-use reference implementation. [16:43] Tricks: can I install create pair manually? if so where does it go? [16:44] jgallen24 has joined the channel [16:44] blissdev has joined the channel [16:44] svnlto has joined the channel [16:44] Raynos has joined the channel [16:44] c4milo: isaacs: that's why I always say that specs should be written in a specification language so that they can be verified against the real implementation [16:45] pksunkara has joined the channel [16:45] _th_n has joined the channel [16:45] scott_gonzalez: isaacs: ok, what about 0.0.1-a.2 should semver.js understand the actual value of that compared to 0.0.1-a.11? [16:45] c4milo: isaacs: something like gherkin [16:45] fzzzy has joined the channel [16:45] fangel has joined the channel [16:45] owenb has joined the channel [16:45] dnyy has joined the channel [16:46] stephank has joined the channel [16:46] scott_gonzalez: it seems to treat it lexically instead of numerically, despite the dot [16:46] ritch has left the channel [16:46] isaacs: scott_gonzalez: no [16:46] isaacs: scott_gonzalez: the tag is strictly lexical. [16:46] scott_gonzalez: :-/ [16:47] isaacs: scott_gonzalez: but, you can do the git build number thing. [16:47] isaacs: 1.2.3-22 > 1.2.3-3 [16:47] isaacs: that's so that "git describe --tags" is parsed properly [16:47] scott_gonzalez: in real life 1.2.3a2 < 1.2.3a10 [16:47] tanepiper has joined the channel [16:47] isaacs: scott_gonzalez: yeah, i hear ya. but it's very difficult to write a rule that does that correctly without breaking other situations. [16:48] ryan0x2 has joined the channel [16:48] isaacs: you can use a - there, or space out the numbers with 0s [16:48] relix has joined the channel [16:49] altamic has joined the channel [16:50] scott_gonzalez: do you have an example of something that would break if that logic was implemented? [16:50] scott_gonzalez: I realize it'd be a pain to implement [16:50] scott_gonzalez: I'd just like to know if this is really a situation of it not being able to work that way [16:50] jgallen23 has joined the channel [16:50] y_nk has joined the channel [16:51] y_nk: hello [16:51] dthompso99 has joined the channel [16:51] y_nk: i'm currently writing a websocket server from scratch, with a tcp based server (with net.createServer) [16:52] y_nk: i'm having trouble implementing old protocols, such as the one used on ios based devices (draft 76) [16:52] briancra_ has joined the channel [16:52] zomg: Why not just use one of the available libs for it? [16:52] nym has joined the channel [16:53] broofa has joined the channel [16:53] y_nk: zomg: both for the training of doing it that way and different need at long term [16:53] booyaa: y_nk: this migth be useless, but i recall the pusher app boys have service called pipe [16:53] ohnopb has joined the channel [16:53] booyaa: they demoed a nice websocket game that you used your iphone to compete with others [16:54] booyaa: can't remember if it's a service or a standalone lib [16:54] whoops has joined the channel [16:54] y_nk: booyaa: i ran someone's websocket server who's from pusher, it works, but it's written on a http.createServer basis [16:54] booyaa: y_nk: ah [16:54] y_nk: i dug in his code, and did the same algorithm [16:55] zomg: y_nk: alright, sounds good then :D [16:55] y_nk: but i'm still not able to complete the handshake and did not succeed in finding where it fails :| [16:55] mmalecki: y_nk: ws module is nice [16:55] mmalecki: y_nk: https://github.com/einaros/ws [16:55] y_nk: i wouldn't come here if i had some other tests i could try [16:57] chadskidmore has joined the channel [16:57] y_nk: mmalecki: it looks like, however i can see it's written on a http package basis too, which is -for me- the only thing that differs from my own implementation [16:57] y_nk: -like+nice [16:58] wtfizzle has joined the channel [16:58] mmalecki: y_nk: I know, but I figured out that logic behind calculating handshakes would be fairly similiar [16:58] mmalecki: *similar [16:58] y_nk: mmalecki: thanks :) [16:59] isaacs: scott_gonzalez: i did start down that path once, and i don't recall what blocker i hit. [16:59] y_nk: i found that one which is the most understandable because of its size : https://github.com/miksago/node-websocket-server [16:59] isaacs: scott_gonzalez: you can feel free to dig in. semver.js isn't that big. [16:59] jergason has joined the channel [16:59] remysharp has joined the channel [16:59] gamera has joined the channel [16:59] isaacs: scott_gonzalez: it's basically just a bunch of regexps and stuff [16:59] scott_gonzalez: isaacs: If we run into a problem with it on plugins.jquery.com, then I'll dig in. But honestly, I can't recall ever seeing an alpha, beta or RC that reached double digits [17:00] isaacs: scott_gonzalez: i did just release npm 1.1.0-beta-10 [17:00] scott_gonzalez: I just noticed it with my test data, which has hundreds of pre-releases :-P [17:00] isaacs: which is dumb, i should know better, and do -10-beta [17:00] y_nk: zomg: booyaa:mmalecki: i feel like i'm having an encoding issue with calculating handshake since i get some chars that dont look *normal* [17:00] booyaa: y_nk: would wireshark help in any way? [17:00] booyaa: like compare a working non-nodejs solution against the nodejs version? [17:00] jgallen23 has joined the channel [17:01] booo has joined the channel [17:01] y_nk: booyaa: i tried comparing the working nodejs solution with my own "non working" [17:01] y_nk: but since the keys of the draft 76 are always different, it a bit hard to compare something [17:01] mmalecki: isaacs: <3 https://github.com/isaacs/node-tar/commit/aecd5a3bd855754bfe34782beb3ab81f6e43d0f9 [17:01] Revernd has joined the channel [17:02] isaacs: mmalecki: :) [17:02] mmalecki: isaacs: sooo, https://github.com/nodejitsu/haibu/tree/non-ghetto-tar :) [17:03] mmalecki: will get this merged soon so that we can be less ghetto! [17:03] isaacs: w00t [17:03] booyaa: y_nk: ah [17:03] booyaa: right it's beer o'clock [17:03] booyaa: ladies and germs i bid you adieu [17:04] daleharvey has joined the channel [17:04] wycats has joined the channel [17:04] majek has joined the channel [17:06] EyePulp has joined the channel [17:06] jgallen23 has joined the channel [17:08] perezd has joined the channel [17:08] TheJH has joined the channel [17:09] eignerchris has joined the channel [17:11] langworthy has joined the channel [17:11] mattgifford has joined the channel [17:12] ben_alman has joined the channel [17:13] enmand has joined the channel [17:13] jgallen23 has joined the channel [17:13] jerrysv has joined the channel [17:14] tdegrunt has joined the channel [17:14] Swizec has joined the channel [17:14] Hosh has joined the channel [17:14] secoif has joined the channel [17:14] sveisvei has joined the channel [17:14] caolanm has joined the channel [17:15] justicefries has joined the channel [17:15] tiglionabbit has joined the channel [17:15] bradwright has joined the channel [17:15] secoif has joined the channel [17:15] ryan_stevens has joined the channel [17:16] t0mmyvyo has joined the channel [17:17] langworthy has joined the channel [17:19] neurodrone has joined the channel [17:20] kenperkins has joined the channel [17:20] Tricks: ok [17:21] Tricks: I have an istallation of node plus forever [17:21] Tricks: all seem ok now [17:21] jhbot has joined the channel [17:21] Tricks: however when i do netstat --listen I can't see node [17:21] coderarit has joined the channel [17:22] Tricks: I can see /home/nodejs/.forever/sock/worker.1.sock [17:22] Tricks: listening [17:22] Tricks: :S [17:23] boltR has joined the channel [17:25] jgornick has joined the channel [17:25] Fabryz has joined the channel [17:26] metadaddy has joined the channel [17:26] kyonsalt: var user={ meta:{ meta_1:String,meta_2:Date}}; var user.meta = [{ meta_1:'test',meta_2:Date.now}]; user.save(); And the database to be: "meta":{"0":{"meta_1":"test"}},"meta_2",ISODate("...")}, What's wrong? [17:26] m00p has joined the channel [17:27] frnkkpp has joined the channel [17:28] Shrink has joined the channel [17:29] quijote has joined the channel [17:30] hipsters_ has joined the channel [17:31] liar has joined the channel [17:34] patcito has joined the channel [17:34] ditesh|cassini has joined the channel [17:36] EyePulp: npm's self update command? npm update npm or what? [17:36] isaacs: EyePulp: npm install npm -g [17:36] baudehlo has joined the channel [17:37] joshthecoder has joined the channel [17:38] _dc has joined the channel [17:38] screenm0nkey_ has joined the channel [17:39] cognominal has joined the channel [17:39] TheDeveloper has joined the channel [17:39] ncb000gt has joined the channel [17:40] pizthewiz has joined the channel [17:40] gr-eg has joined the channel [17:40] Shrink has joined the channel [17:40] Shrink has joined the channel [17:40] EyePulp: isaacs: thank you sir [17:41] ohnopb has left the channel [17:41] megalomix has joined the channel [17:41] megalomix: hello [17:42] EyePulp: isaacs: alternatively, is the curl command (on the home of npmjs.org) a safe way to upgrade? or is it for install only? (will it kill any previous -g module installs, I guess is my question) [17:42] wilmoore has joined the channel [17:42] isaacs: nah, that's fine [17:42] EyePulp: megalomix: hello. [17:42] cognominal has joined the channel [17:42] isaacs: it'll kill old npm 0.x installs, but those are busted anyhow [17:42] megalomix: guys is it possible to call "req" from a view using EJS ? i know that I can pass it using res.render('view', { 'req': req }) but can I do it without passing the object? [17:42] isaacs: and it'll warn you about that [17:42] EyePulp: isaacs: understood. [17:42] EyePulp: cool [17:44] megalomix: is this not possible? [17:44] megalomix: obviously i'm talking about Express.js [17:45] josh-k has joined the channel [17:45] toddysm has joined the channel [17:46] EyePulp: megalomix: I don't use express, so my first answer is I don't know, but if I had to guess, I'd say the only way to access the req is if the req is explicitly passed to whatever needs to access it. [17:46] xtianw: megalomix: I think you can use a dynamicHelper [17:46] gr-eg has left the channel [17:46] gr-eg has joined the channel [17:47] megalomix: ah ok [17:47] megalomix: thank you guys! [17:47] Margle has joined the channel [17:49] colinclark has joined the channel [17:49] _Tristan: is there a way to do fs.readdir in such a way that folders are first? Or perhaps just so that I can tell which ones are folders? [17:50] neurodrone has joined the channel [17:51] dilvie has joined the channel [17:52] donald_cook has joined the channel [17:52] tjfontaine: _Tristan: [17:52] tjfontaine: er [17:53] tjfontaine: _Tristan: you could stat and then check isDirectory [17:53] _Tristan: for every single one? [17:53] robb1e_ has joined the channel [17:53] _Tristan: that seems like it'd be pretty complicated unless it was synchronous [17:54] tjfontaine: you're looking for something like python's os.walk which I don't think there's an analog for in nodejs core [17:55] nicholasf has joined the channel [17:55] tjfontaine: _Tristan: https://github.com/mikeal/node-utils/tree/master/file may be closer to what you're looking for [17:56] overthemike has joined the channel [17:57] ryan_stevens has joined the channel [17:57] tjfontaine: _Tristan: but it's use of readdir still has a statSync [17:57] jocafa has joined the channel [17:57] _Tristan: I'm new to node.js, wouldn't synchronous calls lock up the entire process? [17:57] neurodrone has joined the channel [17:58] jimmyrcom has joined the channel [17:58] torvalamo: yup [17:58] jimmyrcombot has joined the channel [17:58] _Tristan: well shit [17:58] torvalamo: if the syncronous call is made to something that could take an arbitrary amount of time [17:58] torvalamo: then you should do it asyn instead [17:58] torvalamo: async [18:00] _Tristan: so I guess I'll just have to do something interesting [18:00] Jay has joined the channel [18:01] dabailey has joined the channel [18:02] colinclark has joined the channel [18:03] wils: hi, is there a framework to handle mysql connections, orm, etc? [18:03] dabailey has left the channel [18:04] Stephen has joined the channel [18:04] wils: this article is about node + mysql: http://www.giantflyingsaucer.com/blog/?p=2596 however it is structured... [18:05] jimmyrcombot has joined the channel [18:07] m00p has joined the channel [18:07] jimmysparkle has joined the channel [18:07] jimmyrcom: muaha, server side jquery [18:07] jimmyrcom: $(www.reddit.com, a.title) [18:07] jimmyrcombot: -- The best tech videos are on reddit.tv -- Why religion is so annoying.... -- Guy puts 1000 toothpicks in his beard -- I'm not a fan of the miss america pageant by any stretch but I would vote for this girl -- Symmetrica - Retouching Time Lapse -- Why di [18:07] purr: Let it be known that jimmyrcombot hates The best tech videos are on reddit.tv -- Why religion is so annoying.... -- Guy puts 1000 toothpicks in his beard -- I'm not a fan of the miss america pageant by any stretch but I would vote for this girl -- Symmetrica - Retouching Time Lapse -- Why di. [18:08] jimmyrcom: weird [18:08] louissmit has joined the channel [18:08] tjfontaine: cute [18:09] kuebk has joined the channel [18:10] Shrink has joined the channel [18:10] Shrink has joined the channel [18:12] JustinCampbell has joined the channel [18:13] gamera has joined the channel [18:14] megalomix: a good "visual" editor for javascript? i'm using Geddy....is it good for you? [18:14] TooTallNate has joined the channel [18:14] EhevuTov has joined the channel [18:15] jergason has joined the channel [18:15] rcreasey has joined the channel [18:16] springmeyer has joined the channel [18:17] blup has joined the channel [18:19] sorensen__ has joined the channel [18:19] CrawfordComeaux has joined the channel [18:21] CrisO has joined the channel [18:21] EhevuTov_ has joined the channel [18:22] jergason has joined the channel [18:23] langworthy has joined the channel [18:23] AndreasMadsen has joined the channel [18:23] _Tristan: https://gist.github.com/1571779 I'm trying to get info on every file in a directory asynchronously and I see the problem, but I don't know how to fix it [18:24] CrisO has left the channel [18:24] moneal has joined the channel [18:25] levi501d has joined the channel [18:25] ccare has joined the channel [18:25] stonebranch has joined the channel [18:25] Outsider__ has joined the channel [18:25] Marak has joined the channel [18:25] Aikar: woot for irccloud dieing (no, thats not a netsplit) [18:25] nym has joined the channel [18:25] ralph has joined the channel [18:25] slajax: LOL at irc cloud [18:26] joaquin_win_ has joined the channel [18:26] te-brian has joined the channel [18:26] iaincarsberg has joined the channel [18:26] mmalecki: "hey let's kick out half of our users, it's going to be fun" [18:26] matjas has joined the channel [18:27] pickels_ has joined the channel [18:27] slajax: It's like free publicity TBH [18:27] slajax: I've never heard fo them [18:27] mmalecki: lol [18:27] slajax: but I'm gonna check their website now [18:27] slajax: damn their sneaky marketing techniques! [18:28] strax has joined the channel [18:28] slajax: "IRCCloud is an IRC client that runs in your browser. Your connections will stay open even when you go offline." [18:28] slajax: LOL - no it doesn't [18:28] romainhuet has joined the channel [18:29] tjfontaine: irclcoud is such a cluster fsck [18:29] moneal: I'm having a problem with node crashing on micro EC2 instances. Both clean installs of 11.04 from packages. 32bit won't run without crashing and 64bit won't exit if the script throws a error. Here is a example log message after http://pastebin.com/YLWLuQM3 [18:29] slajax: i miss the days when people used irssi exclusively [18:29] tjfontaine: only sane people use irssi [18:29] tjfontaine: and screen, FU TMUX [18:29] tbranyen: fuck screen, long live tmux [18:29] chunhao_ has joined the channel [18:29] tjfontaine: :) [18:30] slajax: I had to switch to textual because I couldn't get it proxying properly through hide my ass [18:30] moneal: irssi and screen have always worked best for me [18:30] gregpascale has joined the channel [18:30] slajax: some day I will return to it [18:30] mmalecki: moneal++ [18:30] svnlto has joined the channel [18:30] wils has joined the channel [18:30] sylvinus_ has joined the channel [18:30] moneal: I run a micro on EC2 that is mostly used for irc using screen to keep connections up [18:31] Hosh has joined the channel [18:31] _Tristan: ...pidgin? [18:31] sriley has joined the channel [18:31] tjfontaine: libpurple is a plague on irc [18:31] slajax: That's a pretty good idea, micros are free for like what? A year or something? [18:31] tbranyen: i set up znc for a friend, and it sucked horribly [18:31] moneal: yeah [18:31] sharkbird has joined the channel [18:31] eignerchris_ has joined the channel [18:31] tbranyen: kept dropping and i could read convos in it [18:31] tbranyen: so like... [18:31] tjfontaine: for a single threaded event based library that thing can't figure out when it is and isnt' connected [18:31] tbranyen: awful [18:31] tbranyen: i should write a node.js irc bouncer [18:31] EhevuTov has joined the channel [18:31] tbranyen: unless thats already been done [18:32] jjido has joined the channel [18:32] tjfontaine: there are a couple I came across, nothing I wanted to touch [18:32] slajax: what's the idea behind a bouncer? [18:32] lz has joined the channel [18:32] slajax: never heard of that before [18:32] duncanbeevers has joined the channel [18:32] tjfontaine: tbranyen: the part I want is conversaton context, which requires frontend clues [18:32] dnyy has joined the channel [18:32] mattly has joined the channel [18:32] tjfontaine: slajax: the term for leaving an irc client runnign in the ether until you connect to see what's going on with it [18:33] slajax: Oh yeah, screen. [18:33] jjido has joined the channel [18:33] tjfontaine: slajax: it's more screen+irssi+proxy_module [18:33] slajax: yeah, gotcha [18:33] tbranyen: yeah its not screen at all [18:33] slajax: I kind of like in textual that I can connect to many servers [18:33] slajax: but I soon realized that I only use freenode [18:33] slajax: maybe I'll go dl some warez off efnet [18:34] tjfontaine: I so reluctantly joined freenode [18:34] slajax: why! freenode is narnia [18:34] moneal: Has anyone else had issues with node.js working on EC2 micros? Installing from a package and building have been giving me issues [18:34] tjfontaine: slajax: meh [18:34] tjfontaine: slajax: I've rarely been on freenode, I spent a lot of time on OPN [18:34] slajax: do you know of any clients that help with name or @name auto completion? [18:35] tjfontaine: most clients have tab complete [18:35] moneal: slajax: irssi does it great :) [18:35] slajax: I see people tagging people so much faster these days and I can't help but feel I'm missing a shurt key [18:35] TheDeveloper has joined the channel [18:35] slajax: WTF [18:35] akahn has joined the channel [18:35] slajax: GOOGLE YOU FAILED ME [18:35] tjfontaine: sla [18:35] slajax: omg even textual is in on the party [18:35] slajax: I like [18:35] slajax: tjfontaine [18:35] slajax: woot [18:35] cognominal_ has joined the channel [18:36] jergason has joined the channel [18:36] slajax: I didn't realize irc got so advanced during my hiatus [18:36] slajax: well I should say the clients. [18:36] CoverSlide: irc hasn't changed since forever [18:36] joshsmith: are there are any good modules for doing a sha1 or sha256 hash? [18:36] CoverSlide: yeah crypto [18:37] wils: is there any MVC for node? [18:37] CoverSlide: any MVC for javascript is MVC for node [18:37] strmpnk has joined the channel [18:37] CoverSlide: backbone, spine [18:37] moneal: wils: take a look at express [18:37] jjido has joined the channel [18:37] slajax: wils - expressjs - build your own mvc pattern [18:37] CoverSlide: express is not mvc [18:37] screenm0nkey_ has joined the channel [18:37] jayniz has joined the channel [18:37] jayniz has joined the channel [18:37] jayniz has joined the channel [18:37] slajax: you can build your own pattern within it [18:38] wils: moneal: slajax tkx guys [18:38] BruNeX has joined the channel [18:38] jjido has joined the channel [18:38] salazr_ has joined the channel [18:38] bradwright has joined the channel [18:38] wils: I am ok with that, just figuring out the best development approach with node [18:39] niftylettuce has joined the channel [18:39] wycats has joined the channel [18:39] daleharvey has joined the channel [18:39] Raynos has joined the channel [18:40] CIA-109: node: 03Ryan Dahl 07v0.6 * r8bd80f4 10/ test/simple/test-sys.js : [18:40] CIA-109: node: fix test-sys for hash randomization [18:40] CIA-109: node: broken in 4a899c92742583ca9e0bb7d16e09a66b08c9d033 - http://git.io/zI35Gw [18:40] CIA-109: node: 03Bert Belder 07v0.6 * r4a899c9 10/ (23 files in 7 dirs): (log message trimmed) [18:40] CIA-109: node: Land hash collision fix for V8 3.6 by Erik Corry. [18:40] CIA-109: node: - If V8 snapshots are enabled then the hash is only randomized at build time. [18:40] CIA-109: node: - Breaks MIPS [18:40] CIA-109: node: --- [18:40] CIA-109: node: Backport hash collision workaround to 3.6. [18:40] CIA-109: node: This is made up of 9956, 10351, 10338 and 10330. [18:40] wils: basically I want to create a simple blogger to test...was thinking to create whole business layer using cakephp but I believe is not a good approach...It will save time... [18:41] DarVVin has joined the channel [18:41] mrb_bk has joined the channel [18:41] _Tristan: will someone tell me how I can run many stat calls at the same time without all of them going to one file? Here's what I have https://gist.github.com/1571779 [18:41] mrb_bk: ryah: ping, it's mrb from github [18:41] wils: using cakephp I don't have to write the queries :D [18:42] ryah: mrb_bk: hi [18:42] mrb_bk: ryah: ah shit i have to run for a bit actually, i'll hit you up in a bit [18:42] ryah: mrb_bk: ok - PM me [18:42] sarlalian has joined the channel [18:42] dshaw_ has joined the channel [18:43] MacDiva has joined the channel [18:43] alessioalex has joined the channel [18:43] bodisiw has joined the channel [18:43] andrenkov has joined the channel [18:44] martin_sunset has joined the channel [18:44] jtsnow has joined the channel [18:44] emerleite has joined the channel [18:44] rgl has joined the channel [18:44] emerleite: . [18:44] dscape has joined the channel [18:45] CoverSlide has joined the channel [18:45] Fabryz has joined the channel [18:45] Morkel has joined the channel [18:45] ncb000gt has joined the channel [18:45] majek has joined the channel [18:46] CrisO has joined the channel [18:46] pksunkara has joined the channel [18:46] tiglionabbit has joined the channel [18:46] owenb has joined the channel [18:46] rgl has joined the channel [18:48] sylvinus has joined the channel [18:48] Shrink has joined the channel [18:48] Shrink has joined the channel [18:49] eignerchris has joined the channel [18:50] willwhite has joined the channel [18:50] Edy has joined the channel [18:50] Edy has joined the channel [18:51] akter has joined the channel [18:52] robhawkes has joined the channel [18:52] heatxsink has joined the channel [18:53] break57382 has joined the channel [18:54] blissdev has joined the channel [18:54] JasonSmith has joined the channel [18:55] ryanseddon has joined the channel [18:55] olegp has joined the channel [18:55] jeremyselier has joined the channel [18:56] dwhittle has joined the channel [18:57] joshontheweb has joined the channel [18:58] sveimac has joined the channel [18:58] hunterloftis_ has joined the channel [18:58] mast3rof0 has joined the channel [19:00] levi501d has joined the channel [19:00] Heisenmink_ has joined the channel [19:00] jmar777 has joined the channel [19:02] rcreasey_ has joined the channel [19:02] maushu has joined the channel [19:03] relix has joined the channel [19:06] tylergillies has joined the channel [19:06] jhbot has joined the channel [19:06] joshsmith: anyone here use should.js? [19:06] joshsmith: I'm getting a timeout when running my test [19:07] jhbot: 'error upload file with node.js' by 03EnzoTran01 http://stackoverflow.com/q/8762846 (tags: javascript, upload, express) [19:07] mmalecki: TheJH: where is it running :> ? [19:07] TheJH: mmalecki, localhost :D [19:08] tokumine has joined the channel [19:08] mmalecki: TheJH: oh, some new hosting? haven't heard of it :D [19:08] arnee has joined the channel [19:08] TheJH: :D [19:09] TheJH: mmalecki, I want to be able to deploy it before I go to bed :P [19:09] jay_zawrotny has joined the channel [19:09] aheckmann has joined the channel [19:10] jmar777 has joined the channel [19:10] hipsters_ has joined the channel [19:11] magnetik has joined the channel [19:11] mmalecki: TheJH: well, no worries, we only have like thousands of servers to upgrade [19:11] TheJH: mmalecki, :D [19:11] TheJH: mmalecki, can't you do that, like, with a node script, in parallel? :D [19:12] CrisO has left the channel [19:12] TheJH: mmalecki, or even better, upgrade on deploy? [19:12] mmalecki: TheJH: it's pretty complicated :) [19:13] theycallmeswift has joined the channel [19:13] theycallmeswift: Anyone know how to get the number of listeners for all events on an event emitter? [19:13] joshsmith: nvm, figured it out [19:14] kmczn has joined the channel [19:14] remysharp has joined the channel [19:15] zeade has joined the channel [19:15] jyp_cloud has joined the channel [19:15] _th_n has joined the channel [19:15] tanepiper has joined the channel [19:15] icebox has joined the channel [19:16] sveisvei has joined the channel [19:18] AndreasMadsen has joined the channel [19:18] jxson has joined the channel [19:18] jacobolus has joined the channel [19:18] redir has joined the channel [19:19] jhbot: 'Where should I define my MySQL client in a Node.js (Express) app?' by 03Josh Smith01 http://stackoverflow.com/q/8763193 (tags: mysql, express) [19:20] rgl has joined the channel [19:20] lperrin has joined the channel [19:20] blackjid has joined the channel [19:20] MatthewS has joined the channel [19:20] blackjid: Hi there! [19:21] asdf_ has joined the channel [19:22] blackjid: I'm working on a nodejs project....where can I get info about how to create a production server?, nothing to fancy, but at least start the node app on boot. [19:23] p1d has joined the channel [19:24] asdf_ has left the channel [19:24] slajax has joined the channel [19:25] TheJH: blackjid, "a nodejs project"? that's very vague [19:26] _rgl has joined the channel [19:26] charrly3 has joined the channel [19:27] tilgovi has joined the channel [19:27] robb1e_ has joined the channel [19:28] metadaddy has joined the channel [19:28] CarterL has joined the channel [19:28] whoops has joined the channel [19:28] fcoury has joined the channel [19:28] tjholowaychuk has joined the channel [19:28] blackjid: TheJH, Is a website but the backend is made in nodejs [19:29] deedubs: blackjid: you'd start it like you'd start any other process on boot [19:29] TheJH: blackjid, what's the frontend written in? [19:30] blackjid: nodejs, express, jade, less, js [19:30] tfe has joined the channel [19:31] charrly3 has left the channel [19:31] blackjid: really I don´t if there is a real separation between backend and front ent, is a project with controllers, models,. and one 1. Everything is ajax, an the api for the ajax calls are in the controllers and models. [19:32] blackjid: sorry I miss some words.. [19:32] blackjid: really I don´t know if there is a real separation between backend and front end, is a project with controllers, models,. and one 1 view. Everything is ajax, and the api for the ajax calls are in the controllers and models. [19:32] _Tristan: when I read text files with node I find that they have a trailing linebreak, which I don't see in text editors. What's up with that? [19:33] `3rdEden has joined the channel [19:34] bradleymeck has joined the channel [19:34] moogoo: :set list [19:34] davetayls has joined the channel [19:34] hoodow has joined the channel [19:34] hoodow has joined the channel [19:35] blackjid: should I use nginx as a proxy to node?, http://cuppster.com/2011/05/12/diy-node-js-server-on-amazon-ec2/ [19:35] davetayls has joined the channel [19:36] monokrome has joined the channel [19:37] benlyn has joined the channel [19:37] jergason has joined the channel [19:38] `3rdEden: blackjid depends on the type of servers you are going to build [19:38] `3rdEden: different types, have different requirements [19:38] sylvinus has joined the channel [19:38] `3rdEden: for example, real time & websocket based sites will not work behind nginx [19:40] joshsmith: uh, I am throwing an error in Mocha [19:40] joshsmith: and the test is passing [19:40] Overv has joined the channel [19:41] blackjid: the server will serve static content (html, css, js, png) and respont to REST api calls.. [19:41] sfoster has joined the channel [19:41] joshsmith: nevermind, I was not throwing the error correctly [19:41] hsilberman has joined the channel [19:42] insin: which version of Mocha? There was a bugfix release recently [19:42] AndreasMadsen: `3rdEden: What proxy will work in any cases [19:43] `3rdEden: AndreasMadsen: HAProxy [19:43] jhbot: 'Application Controller like on express.js' by 03rizidoro01 http://stackoverflow.com/q/8763504 (tags: express) [19:43] `3rdEden: or a Node based proxy like the nodejitsu's http proxy [19:43] insin: caolanm: messsing about with async.auto - tasks with the same dependencies seem to execute in series - is it overkill to replace the _forEach in taskComplete to make them run in parallel? [19:44] insin: s/to make them/with async.parallel to make them/ [19:44] AndreasMadsen: `3rdEden: Thanks :) [19:44] bingomanatee__: is not sure why you would take on the burden of writing a static file server when so many of them already exist. [19:45] AndreasMadsen: Is there a way I can check if a node process is executed under sudo (or whatever equal on windows) ? [19:46] bradleymeck: yea node-http-proxy can handle fair strain, as we use it... a lot [19:46] lz: try to do something you're only allowed to do as root >=) [19:46] franciscallo has joined the channel [19:46] bradleymeck: AndreasMadsen does getuid work? [19:46] bradleymeck: ACTION is clueless on windows user ids [19:47] lz: AndreasMadsen you can use process.argv I believe [19:47] caolanm: insin: hmm, that shouldn't happen [19:47] AndreasMadsen: bradleymeck: I was just asking hypothetical, I have not tried yet. [19:47] caolanm: insin: please open an issue on github [19:47] AndreasMadsen: caolanm: process.argv do not work [19:47] lz: AndreasMadsen check if process.argv[0] is 'sudo' [19:48] bradleymeck: its on windows, they do not use sudo plus you can fake that [19:48] insin: caolanm: will do after I replicate on linux (saw this on windows earlier: https://gist.github.com/1570856#file_03_test.js) [19:48] lz: ah you're right [19:50] AndreasMadsen: bradleymeck: process.getuid() === 0 works good :) [19:50] lz: AndreasMadsen you can use sys to call unix 'whoami' [19:51] lz: process.getuid(), even better :) [19:52] AndreasMadsen: lz: It's almost the same, but yes I will properly use that, thanks :) [19:53] bodisiw has joined the channel [19:54] justicefries has joined the channel [19:55] magnetik_ has joined the channel [19:56] McMAGIC--Copy has joined the channel [19:57] jay_zawrotny: Hello! [19:58] jay_zawrotny: I created an app with the package.json and have uploaded the files to my production server, how do I have node look at that file and install the necessary dependencies? [19:58] jerrysv: npm install [19:58] jay_zawrotny: Ah, thanks. [19:59] gmcerveny has joined the channel [19:59] EyePulp: any way to feed a nave/node version to npm and have it use the proper node to do it's installation/upgrade work? or do I need to handle that in a script where I do a "nave use ; npm install" [20:00] EyePulp: or actually "nave use npm install" [20:03] adambeynon has joined the channel [20:03] jmar777 has joined the channel [20:03] CIA-109: node: 03Ryan Dahl 07v0.6 * rbe67fa7 10/ (src/node_crypto.cc src/node_crypto.h): [20:03] CIA-109: node: Revert "crypto: add SecureContext.clearOptions() method" [20:03] CIA-109: node: API addition needs to go in master. Also openssl-0.9.8k doesn't have [20:03] CIA-109: node: SSL_CTX_clear_options(). [20:03] CIA-109: node: This reverts commit 6f8839d2ac362ced42235a34a023af5e2c656501. - http://git.io/ABIRrw [20:07] willwhite has joined the channel [20:07] colinclark has joined the channel [20:09] sorensen__ has joined the channel [20:10] EriksLV has joined the channel [20:12] MooGoo has joined the channel [20:13] dob_ has joined the channel [20:14] SamWhited has joined the channel [20:14] EyePulp: is there a logging or error output argument one can set on the command line when calling node? [20:15] Arro has joined the channel [20:16] LukeBrookhart has joined the channel [20:18] kyonsalt has joined the channel [20:18] lsdafjklsd has joined the channel [20:19] amasad has joined the channel [20:20] amasad: Whats the best production-ready node chat server project? [20:20] lz has joined the channel [20:20] deusprogrammer has joined the channel [20:20] akahn has left the channel [20:20] deusprogrammer: Hello folks =D. [20:20] captain_morgan has joined the channel [20:20] deusprogrammer: I am a bit new to Node.js, and I came here for some advice. [20:20] techwraith has joined the channel [20:21] dragon: amasad: https://github.com/superfeedr/xmpp-server/ [20:21] dragon: deusprogrammer: ask away! [20:21] TheJH: deusprogrammer, just ask :) [20:21] deusprogrammer: I am writing native extensions in C/C++, but I can't seem to find a good tutorial or documentation on writing asynchronous extensions. [20:22] tbranyen: deusprogrammer: there are a few if you google [20:22] techwraith: Got a (hopefully) quick question - is there any way for a module to know the directory of the file that required it? [20:22] deusprogrammer: Perhaps I am searching for the wrong thing then. [20:23] amasad: dragon: Thanks, but I'm afraid I phrased my question wrong. Whats the best node production-ready web-chat in node [20:23] amasad: ? [20:23] tjfontaine: I need a shrubbery [20:23] mrb_bk: ryah: hey how's it going [20:23] lsdafjklsd has left the channel [20:23] deusprogrammer: Fortunately by reading the postgres extension someone made, I managed to figure out how to wrap a class. But after searching for how to write asynchronous native extensions...all I can really find is the one on CloudKick.js [20:23] whitman has joined the channel [20:23] deusprogrammer: It shows an example, but doesn't really do a good job at explaining it. [20:24] deusprogrammer: A shrubbery? I suppose next you want me to cut down the tallest tree in the forest withhhhhh....A HERRING! [20:24] vguerra has joined the channel [20:24] dragon: amasad: are you looking for a multi-user chatroom server, or an IM server? [20:25] jxson has joined the channel [20:25] deusprogrammer: Perhaps I can ask you all a more specific question. [20:25] wycats has joined the channel [20:26] tokumine has joined the channel [20:26] deusprogrammer: First off, I have been told that libuv is the current lib used in nodejs to handle asynchronous I/O. Can libev and libeio still be used? [20:26] amasad: dragon: multi-user multi-channel chat server and client. Kind of like https://github.com/scottgonzalez/node-chat but this is inactive and old. [20:26] ohnopb has joined the channel [20:26] amasad: dragon:thanks [20:26] _Tristan has joined the channel [20:26] heatxsink has joined the channel [20:26] dragon: amasad: how about https://github.com/ry/node_chat ? [20:27] matjas has joined the channel [20:27] bingomanatee__: tech wraith -- I don't believe so. [20:27] aGHz has joined the channel [20:27] te-brian has joined the channel [20:27] ryah: mrb_bk: hi [20:27] ohnopb: anyone with node.io experience have an idea why i'm getting "ERROR: Error: socket hang up" out of nowhere… running the same code that worked 10 minutes ago? [20:27] mrb_bk: ryah: sorry i had to jet today [20:27] te-brian2 has joined the channel [20:28] mrb_bk: ryah: anyway, seems like it's pretty obvious that we need the stream_wrap slab allocator to be moved to udp_wrap [20:28] MatthewS has joined the channel [20:28] mrb_bk: issues with the slab allocator notwithstanding [20:28] Margle has joined the channel [20:28] eldios has joined the channel [20:28] dragon: amasad: I'd still recommend testing node-xmpp, and seeing if it works. If it doesn't, then search must be continued. [20:28] chunhao_ has joined the channel [20:29] dragon: node_chat is old and inactive, too. But apparently it works. [20:29] bradleymeck: deusprogrammer, it will use those as backers for many things (when available) [20:29] lzskiss has joined the channel [20:29] svnlto has joined the channel [20:29] garann has joined the channel [20:30] dragon: ohnopb: are you trying to run multiple instances at once? [20:30] amasad: dragon: yes it does, but no channels. I guess i could hack on it. Out of laziness I thought maybe there is something mature and active out there. [20:30] remysharp has joined the channel [20:30] lzskiss has joined the channel [20:31] dragon: fair enough. You may also want to consider using prosody as your XMPP server, strophe.js on client, and write server components using node.js. [20:31] djbell has joined the channel [20:31] justicefries has joined the channel [20:31] sveisvei has joined the channel [20:32] amasad: dragon: Interesting. I'll look into that. thanks [20:32] Margle has joined the channel [20:32] Raynos has joined the channel [20:32] niftylettuce has joined the channel [20:34] ohnopb: dragon: no, but i may have accidentally… [20:34] StanlySoManly has joined the channel [20:34] isaacs has joined the channel [20:35] deusprogrammer: Well thanks anyways guys. I guess I will go search the desert of Google for an Oasis of knowledge on this subject. [20:35] triptec has joined the channel [20:35] aGHz1 has joined the channel [20:35] dennisjbell has joined the channel [20:35] plow has joined the channel [20:35] SubStack: _Tristan: be advised that passing fs to the client over dnode means clients can read and write all your files [20:36] _Tristan: SubStack: "clients" is just me, and I already have access to all my files [20:36] dcollison has joined the channel [20:36] plow: hi, can someone tell me if it is advisable to write to a file stream before saving or do everything in memory when uploading please? [20:36] dragon: deusprogrammer: why C, if I may ask? [20:36] plow: persisting to a DB I mean [20:36] SubStack: _Tristan: fs functions return buffers by default. You can .toString() them [20:36] bradleymeck: plow write to a tmp file, upload from the tmp file when it completes? [20:36] plow: bradleymeck: is that better than memory purely? [20:37] techwraith: bingomanatee__: No way to tell? Damn. [20:37] dragon: plow: what's the expected action if upload is interrupted? [20:37] deusprogrammer: I am wrapping FreeIPMI so I can use it in Node. [20:37] plow: dragon: what is normally? [20:37] ohnopb has left the channel [20:37] bradleymeck: plow define *better* it lets you retry if the upload finishes but for some reason the push to db does not [20:37] bradleymeck: but it will be slower [20:37] techwraith: bingomanatee__: any suggestions on how to get that in without having to pass it into the module? [20:37] plow: bradleymeck: how do most node.js websites do it? [20:37] mightym has joined the channel [20:37] bingomanatee__: no. Just pass it in. [20:37] deusprogrammer: I could just write a FreeIPMI library completely in Node, but it would take too long. [20:38] bingomanatee__: That insulates you from version creep [20:38] dragon: plow: typical action would be to not save any part of the file, so it will make sense not to write it to the DB until the upload has succeeded. [20:38] relix has joined the channel [20:38] plow: dragon: so you're saying save as a temp file and then upload to DB~? [20:38] deusprogrammer: That and I am unsure about how to pack data to send via UDP and RMCP without using a buffer and straight hex. [20:38] salazr_ has joined the channel [20:38] dragon: plow: yes, or save it in the memory if you know that the file wouldn't be too big to handle. [20:38] olegp has joined the channel [20:39] ryah: mrb_bk: can we PM? [20:39] plow: dragon: can I get away with a 200kb in memory for many users? [20:39] dnyy has joined the channel [20:39] dragon: deusprogrammer: fair enough. It's better to wrap than to re-write. [20:39] bingomanatee__: techwraith: even if you can do it now, they might change the underlying mechanics of node in the future -- but if you pass it in manually, you are pretty much protected from further node development. [20:39] dragon: plow: how many users will concurrently upload such files in production? [20:40] plow: dragon: it's a central part of the app, now that I see, it will only likely be max of 25kb, probably 200-300 hundred a sec ideally [20:40] plow: 50-100 for now [20:40] deusprogrammer: dragon: And I understand how to wrap functions and classes, but I am unsure of how to contend with asynchronous I/O. Do I need to worry about it, only if I want to pass a function pointer into the functions? [20:40] cognominal has joined the channel [20:41] mraleph has joined the channel [20:41] dragon: plow: temp file would make more sense, since disk-I/O overhead is safer than consuming too much memory. [20:41] tomlion has joined the channel [20:42] techwraith: bingomanatee__: I could use process.cwd, and that might work for my purposes. But that will get the current running directory. [20:42] josephmoniz has joined the channel [20:42] plow: dragon: thanks dragon, much appreciated, I'll delete the file straight after upload to db [20:42] bingomanatee__: I think you are over thinking the problem when you already have a working solution. [20:42] larsschenk has joined the channel [20:42] dragon: deusprogrammer: your wrapper will invoke the async callback when the library completes the task. [20:43] dragon: best bet is to not try to make the library async. [20:43] bodisiw has joined the channel [20:43] bingomanatee__: The point of knowing your caller is to ask it for information -- and you should be passing all that information into your module as parameters anyway. [20:43] deusprogrammer: I see. [20:43] bingomanatee__: It makes for better debugging. [20:44] deusprogrammer: One more question and I will leave you all alone for now. [20:44] bingomanatee__: we're not alone -- we have each other. [20:44] bingomanatee__: :D [20:44] larsschenk has left the channel [20:44] dragon: don't leave us! [20:44] gmcerveny: stream.pipe() is the ish [20:44] techwraith: bingomanatee__: But that puts an extra step in there for the end user [20:44] mightym: he guys, I'm new to node.js and like to use jade the first time, but i get stuck a the starting point :) … i have this in my code http://pastie.org/3139490 and and template.jade with valid jade markup inside, but i don't get any response … just loading and loading ending up in a white page … someone a hint for me? [20:45] bingomanatee__: passing parameters is a pretty common step. [20:45] deusprogrammer: In V8, V8::Function::Call(Handle recv, int argc, Handle argv[]) [20:45] dnyy has joined the channel [20:45] deusprogrammer: What does recv refer to? [20:45] bingomanatee__: Consider that you will be unit testing this at some point -- you will want to be able to pass in or mock everything the module needs to do its business, [20:45] techwraith: bingomanatee__: But in this case it would always be the same - figure out what directory this file is in and pass it in. [20:45] djbell has joined the channel [20:45] tjholowaychuk: mightym why dont you use just res.render()? [20:46] deusprogrammer: In the example he is passing Context::GetCurrent()->Global() [20:46] MooGoo: mmm...isn't recv == this deusprogrammer [20:46] tjholowaychuk: mightym https://github.com/visionmedia/express/blob/2.x/examples/jade/app.js#L47 [20:46] tjholowaychuk: like that [20:46] ryanseddon has joined the channel [20:46] MooGoo: just a guess [20:46] rgl has joined the channel [20:46] CarterL has joined the channel [20:46] mattly has joined the channel [20:47] insin: tjholowaychuk: are included the recommended way to reuse mixins? I tried putting them in a base template (using template inheritance - ftw!), but child templates didn't seem to find them [20:47] insin: s/included/includes/ [20:47] tjholowaychuk: insin hmm yeah I use include [20:47] deusprogrammer: This example isn't using this though...so I am confused as to what this is doing. [20:47] ohnopb has joined the channel [20:48] djbell has joined the channel [20:48] tjholowaychuk: insin they just compile to regular js functions so it's probably a scope issue [20:48] MooGoo: regardless...if it is a required parameter [20:48] MooGoo: pretty sure for the expression obj.func() obj is the reciver [20:48] MooGoo: thus this [20:49] mightym: tjholowaychuk: same effect :-( [20:49] deusprogrammer: I am reading the V8 Documentation about Context::GetCurrent()...but I still don't really get it...what about the global proxy object is receiving something from the function being called? [20:51] insin: tjholowaychuk: one other thing - if I try to output a variable which happens to be a function, it shows the source of the function - you would be against making it call functions in that scenario? e.g. here: field.labelTag is a function: https://github.com/insin/iswydt/blob/master/views/mixins/forms.jade [20:51] ohnopb: npm ls [20:51] insin: s/you would/would you/ [20:51] ohnopb: oop [20:51] deusprogrammer: Perhaps I just don't understand what a context is. [20:51] dragon: ohnopb: if you're on linux, `netstat -nltp` will show all the programs with relevant open network ports. [20:51] bodisiw has joined the channel [20:51] ohnopb: os x [20:51] tjholowaychuk: insin yeah i dont like ambiguous stuff like that [20:51] tjholowaychuk: plus [20:51] tjholowaychuk: it's just regular js [20:51] MooGoo: deusprogrammer: the global object is the default receiver when none other is specified [20:52] tjholowaychuk: we would have to check the retval of each thing for a function [20:52] tjholowaychuk: so it would slow everything down [20:52] insin: yeah, I dig the consistency of it just being regular JS [20:52] insin: cheers [20:52] deusprogrammer: MooGoo: I see...so you can specify different contexts to recv the function call? [20:52] tjholowaychuk: i'll see if i can fix that mixin thing [20:52] dragon: ohnopb: same command might work. [20:52] MooGoo: deusprogrammer: just as you can in JS [20:52] deusprogrammer: I'm guessing the global object is the main thread? [20:53] mightym: well thank you anyway for your help! [20:53] blueadept: what's the best way to check if an object value is an array with the ecmascript 5? [20:53] insin: I'll give it another go to make sure - I might have stuck them outside a block, if that makes any difference [20:53] deusprogrammer: I'm really sorry. I'm not very good with Javascript yet. I have been a low level C/C++ programmer for a long time. [20:53] deusprogrammer: It's hard to learn something like this for me. [20:53] MooGoo: dunno....v8 is tricky with the global object [20:53] ohnopb: dragon: got back "netstat option requires an argument -- p" [20:53] jhbot: 'unable to post to feed with anything, even curl, from any of my apps' by 03brianthecoder01 http://stackoverflow.com/q/8764333 (tags: ruby, facebook-graph-api, curl, news-feed) [20:54] MooGoo: but...well dont quote me on this but...func.call(recv, arg1, arg2) would be equivilent [20:54] ohnopb: dragon: trying the list of choices it gave me now [20:54] dragon: ohnopb: fair enough. Mac version has different command line arguments apparently. [20:54] deusprogrammer: So is a context similar to how threading and context switching works at the OS level? [20:54] MooGoo: no...not at all [20:55] jacobolus has joined the channel [20:55] MooGoo: context merely refers to what the variable `this` is equal to [20:55] MooGoo: in the function [20:55] jocafa has joined the channel [20:55] plow: dragon: what's the correct way to handle an error during an upload? [20:55] nym has joined the channel [20:55] plow: res.redirect? [20:55] ralph has joined the channel [20:55] daleharvey has joined the channel [20:55] deusprogrammer: I think I get it. At least I understand it better than I did before I came in. [20:56] deusprogrammer: Thank you very much dragon and MooGoo. [20:56] deusprogrammer: I was afraid I was going to look stupid asking questions. [20:56] brianthecoder has joined the channel [20:56] MooGoo: mmm...what are you trying with v8 exactly [20:56] fr0stbyte has joined the channel [20:56] insin: tjholowaychuk: I take that back - it does work (moved the include to a base template and it does work - these were my first Jade mixins, so there may have been other... issues ;-) [20:56] deusprogrammer: I am writing a wrapper for the FreeIPMI library, so I can use it as a Node module. [20:56] jaequery has joined the channel [20:57] chadskidmore has joined the channel [20:57] bradleymeck: deusprogrammer, you can think of the this keyword as basically a void* used for storing stuff [20:57] hz has joined the channel [20:57] deusprogrammer: And I just want to be able to write other Node Modules for Node in general...as I am a pro at C/C++, but a novice at Nodejs. [20:57] shinuza has joined the channel [20:57] MooGoo: ah...yea...no idea what IPMI is, but sounds cool [20:57] MooGoo: well [20:58] MooGoo: kinda need to become versed in v8 [20:58] deusprogrammer: bradleymeck: Oh! Okay...that makes even more sense =D. [20:58] MooGoo: and the v8 docs are...not great [20:58] dragon: Dreamer3: you're welcome! [20:58] deusprogrammer: IPMI is a protocol used to remotely manage and control PC's with a BMC installed. [20:58] ioneyed has joined the channel [20:58] MooGoo: hmm....like KVM over IP? [20:59] bradleymeck: deusprogrammer, just remember like in c/c++ it can be set to odd things [20:59] dragon: plow: yes, redirect will do the job. You can add parameters to inform the destination page that the file upload failed. [20:59] deusprogrammer: You can turn a machine on or off over LAN. Check fan speeds, memory usage, CPU usage, open consoles. [20:59] geekbri has joined the channel [20:59] dragon: ACTION will be back later. [20:59] deusprogrammer: I have never used KVM over IP. Is it built into a system? [20:59] dragon: and I think I just hilighted a wrong person. [21:00] MooGoo: nah...requires external hardware...has been an option on some virtual hosts that I've used [21:00] petrjanda has joined the channel [21:00] deusprogrammer: That is the one thing I don't like about Nodejs is that I can't look at data at a byte level...it feels like all the layers of abstraction get in the way for me. [21:00] MooGoo: but then in that case it probably is just some software [21:00] ohnopb: dragon: what should i be getting back? looking at a list of active local domain sockets and connections but nothing node [21:01] MooGoo: well....v8 does not make that easy [21:01] overthemike_ has joined the channel [21:01] deusprogrammer: MooGoo: iDRAC (which is Dell's proprietary software that runs on top of IPMI) utilizes KVM over LAN to allow for Virtual Console connections. [21:01] pors has joined the channel [21:02] MooGoo: but pretty sure node's Buffer object stores data outside the v8 heap [21:02] deusprogrammer: V8 doesn't, but being able to code my extensions in C/C++ does made it a lot easier. [21:02] bradleymeck: deusprogrammer, best you can do is use External's in v8::* and Buffers, they get you pretty much what you need, but byte inspection is not going to happen in a JIT nicely [21:02] plow: dragon: even for ajax upload? [21:03] adrianF has joined the channel [21:03] deusprogrammer: The one thing I would love to have is the ability to cast a arbitrary memory location as a packed struct, and have it essentially parse the information for me. But node can't do that right? [21:03] tilgovi has joined the channel [21:03] tilgovi has joined the channel [21:04] MooGoo: well I guess you could do that in C++ land [21:04] bradleymeck: deusprogrammer, correct it is not a byte level ABI [21:04] deusprogrammer: Actually I guess I could write code that would take a struct descriptor of sorts and then create a struct like object from that with all the fields marked with prototyped variables. [21:04] MooGoo: or maybe not [21:04] strevat_ has joined the channel [21:04] chrisdickinson: deusprogrammer: are you talking about looking at different data types at a byte level, or just numbers? [21:04] ppcano has joined the channel [21:04] mikedeboer has joined the channel [21:05] Shaunzie has joined the channel [21:05] deusprogrammer: In other words, lets say I had a struct that represented a ethernet header. In C/C++ I could just take the packet and cast the memory using a pointer to a structure of the ethernet header, and then have all the fields easily accessible from the struct. [21:05] deusprogrammer: But in Node, I can't do that. I would get back a hex buffer. [21:06] deusprogrammer: I would have to go to each offset and extract the information. [21:06] vkandy has joined the channel [21:06] deusprogrammer: And the same goes for packing a structure and then sending it back out over the socket. [21:06] phluffy has joined the channel [21:07] phluffy has joined the channel [21:07] bradleymeck: deusprogrammer, there are methods for reading data types on buffer like int shorts etc [21:07] bradleymeck: there is a module that can even do single layer unwrapping ... i forget the name but it was on dailyjs a looong time ago [21:08] deusprogrammer: I suppose, I could create a class in nodejs that would take a structure descriptor as a argument for it's constructor. Then I could pass it a hex buffer. It would then create data members and copy the information from the offsets into the members. [21:08] deusprogrammer: Then when its time to send the data from a packed struct...it would convert it back into a hex buffer. [21:08] deusprogrammer: But I wonder...does something like that already exist? [21:08] deusprogrammer: If not, I will totally whip that up in my free time. [21:09] chrisdickinson: deusprogrammer: https://github.com/xdenser/node-struct [21:09] chrisdickinson: also https://github.com/pgriess/node-jspack [21:09] deusprogrammer: chrisdickinson...you are a god. Thank you! [21:09] chrisdickinson: no prob! [21:10] deusprogrammer: I think I'll still make my own for the practice too though ;p [21:10] jaha has joined the channel [21:10] deusprogrammer: I am a very boring person. I will program random RFC's for fun. [21:10] igl1 has joined the channel [21:10] chrisdickinson: deusprogrammer: I only had 'em on hand because i was writing a bitstream packer/unpacker for the browser :) [21:11] chrisdickinson: (https://github.com/chrisdickinson/pacman.js) [21:11] deusprogrammer: That is a really cool name. I like it! Especially as a retro gamer. [21:12] MooGoo: lol [21:12] MooGoo: try arch linux [21:12] rio{ has joined the channel [21:12] devongovett has joined the channel [21:12] MooGoo: pacman all day long [21:12] chjj: arch linux for life [21:12] deusprogrammer: I use Solaris =3. [21:12] deusprogrammer: Well and Ubuntu. [21:13] isaacs: did github issue pages bump up the font size, or are my eyes getting beter? [21:13] chrisdickinson: deusprogrammer: thanks! i'm going to use it in conjunction with csg.js to compress model data for webgl. [21:13] jhurliman has joined the channel [21:13] chjj: isaacs: github broke itself again...i hope [21:13] deusprogrammer: My boss (who is likely lurking in here) turned me on to Solaris and Nodejs. [21:13] jakehow has joined the channel [21:13] isaacs: chjj: nono, that's awesome. [21:13] isaacs: <3 this [21:13] purr: Let it be known that isaacs hearts this. [21:13] chrisdickinson: (plus, if it's stored in image data, then the browser can rely on etags for caching) [21:13] cmr: <3 things [21:13] purr: Let it be known that cmr hearts things. [21:13] chjj: isaacs: i wish they wouldnt change it so much [21:13] cmr: Neat-o [21:14] chjj: i fear change [21:14] jergason: <3 everybody [21:14] purr: Let it be known that jergason hearts everybody. [21:14] deusprogrammer: I only really got into doing any kind of web development recently. I wrote a library for implementing a simple Web/Application Server in C++. [21:14] jaha: can anyone tel mw what the heck im missing in this simple example? it returns a "Cannot GET /survey" http://pastie.org/3139656 [21:15] deusprogrammer: I have been doing a lot of work with malware research using the cloud as a platform for automated analysis. Specifically using VMware ESXi and the VIX library. [21:15] deusprogrammer: Next I want to wrap VIX for use in Nodejs after I finish this FreeIPMI wrapper. [21:17] ryanrolds: jaha: If you console.log(routes.survey) after the app.get('/survey'... what do you get? [21:18] sirwan has joined the channel [21:18] chjj: this is broken, v8 is broken, it should stop being so fast, its making my head explode [21:19] hz has joined the channel [21:19] amasad has joined the channel [21:19] bodisiw has joined the channel [21:20] deusprogrammer: You guys are the most helpful IRC channel I have been on. I will be sure to keep the window open in case I have more questions. [21:20] riven has joined the channel [21:20] riven has joined the channel [21:21] chjj: everyone always expects this channel to be filled with supernerds who make fun of you [21:21] ryanrolds: jaha: Also doing `require('./someroutes')(app);` and then in someroutes.js -> module.exports = function(app) { app.get(...) }; is a common pattern to get definitions and the callbacks in the same file. [21:21] Hanspolo has joined the channel [21:21] jaha: ryanrolds: hmmm, undefined, here is my whole main.js http://pastie.org/3139697 [21:21] ryanrolds: If that undefined there is a problem. [21:22] chjj: hey isaacs, is "tags" just an alias to "keywords" in package.json? [21:22] ryanrolds: What does routes look like? [21:23] robotmay has joined the channel [21:23] fangel has joined the channel [21:23] chjj: isaacs: or, is it supposed to be? [21:24] ryanrolds: jaha: main.js looks good, which suggests the issue is in the routes.js [21:26] ohnopb_ has joined the channel [21:26] cpleppert has joined the channel [21:27] jmar777 has joined the channel [21:27] ohnopb_: dragon: so i figured it out… think i was IP banned from news.yc, which i was trying to crawl. thanks for trying though! [21:27] jaha: ryanrolds: ok, im missing something, haha. I have no routes.js. I havent used express yet (obviously), i guess I thought it was automatically pulling my modules from the routes folder [21:27] dragon: ohnopb_: oh, interesting! [21:28] JKarsrud has joined the channel [21:29] eignerchris_ has joined the channel [21:29] ohnopb_: dragon: i like [21:30] ohnopb: yep wrong chat window [21:30] ohnopb has left the channel [21:30] ohnopb has joined the channel [21:30] sarlalian1 has joined the channel [21:30] rio{ has joined the channel [21:31] sarlalian1 has joined the channel [21:31] Shaunzie has joined the channel [21:32] jaha: ryanrolds: why is the index route working with a routes.js and the survey isnt [21:32] iamcorpix has joined the channel [21:34] deusprogrammer: Laters folks. I will definitely be back. [21:35] jetienne has joined the channel [21:36] ohnopb has joined the channel [21:37] Tom___ has joined the channel [21:37] caolanm has joined the channel [21:38] tdegrunt has joined the channel [21:38] churp has joined the channel [21:39] ohnopb has joined the channel [21:40] dylang_ has joined the channel [21:40] jaha: ryanrolds: nevermind, im an idiot, thanks though [21:40] Shaunzie has joined the channel [21:40] EyePulp: any sneaky way to get npm to spit out a set of dependencies & versions that I can cut & paste into my package.json? npm ls gives me the fancy tree with all sub dependencies, but that's far too much for actual use [21:41] blup has joined the channel [21:42] isaacs: EyePulp: npm ls -lp | awk -F: '{print $2}' | awk -F@ '{ print ", \"" $1 "\": \"" $2 "\"" }' [21:42] EyePulp: whoa! [21:42] isaacs: it'd be nice to add a --json flag or something. [21:42] insin: O_o [21:42] isaacs: someone asked for something like that before [21:43] joshsmith: I'm trying to do something like this: https://github.com/Raynos/nCore-example/blob/master/test/routes-home.js [21:43] joshsmith: where he's faking the app [21:43] joshsmith: app [21:43] joshsmith: = [21:43] joshsmith: argh. app = express() [21:43] EyePulp: isaacs: that's impressive. Yeah, the beauty is you can easily get to "frozen" set of all your current modules [21:44] isaacs: EyePulp: but not *their* modules. [21:44] cmr: isaacs: how time-consuming would that be to add? I'm interested in contributing some small patches [21:44] chjj: isaacs: is the "tags" page on the npm registry supposed to organize by the "keywords" array as well? [21:44] ohnopb has joined the channel [21:44] joshsmith: but I get an error saying the object is not a function; any thoughts? [21:44] EyePulp: isaacs: right, just the top level stuff that I'd want to put in my package.json [21:45] isaacs: cmr: probably not very. [21:45] isaacs: cmr: grep the codebase for `parseable` and `inspect` [21:45] bartt1 has joined the channel [21:45] cmr: isaacs: Thanks, I'll take a look-see later tonight. [21:45] isaacs: cmr: the idea would be that ls would write the data in json, and anything that dumps an object (with inspect) would use JSON.stringify instead. [21:46] isaacs: cmr: not the log.* functions though. [21:46] isaacs: cmr: just the stuff that does output.write(...) [21:46] pkrumins: http://browserling.com:81 [21:46] pkrumins: new redesign ready to go live soon! [21:47] tjholowaychuk: pkrumins nice :D awesome selection of browsers [21:47] Poetro has joined the channel [21:47] insin: purty :) [21:47] Renegade001 has joined the channel [21:47] pkrumins: there will be even more browsers! we'll have complete coverage [21:47] yenz_: excellent [21:48] koo3 has joined the channel [21:48] tjholowaychuk: ACTION goes to IE 5.5 [21:48] keltus: does anyone know an easy way to overlay images with node-canvas? I'm using node-heatmap.js and want to draw it over a png file. I loaded the png file as a Canvas.Image, but node-heatmap either completely covers the file, or the file covers the hetamap [21:48] jchris has joined the channel [21:49] jocafa has joined the channel [21:49] pkrumins: tjholowaychuk: except that :) [21:49] keltus: also I spent 4 hours last night because Canvas doesn't recognize another Canvas of the same version if it's a dependency of another node_module :( [21:49] tjholowaychuk: keltus oh? [21:49] tjholowaychuk: maybe we have an instanceof in there [21:50] tjholowaychuk: which is bad [21:50] tjholowaychuk: i'll look [21:50] chjj: pkrumins: looks cool [21:50] pkrumins: substack draw it all [21:50] C0deMaver1ck has joined the channel [21:50] keltus: I forced both my app and node_modules/heatmap.js to use the global node-canvas and it was fine [21:51] joshsmith: tjholowaychuk: why is there not an app.get()? [21:51] tjholowaychuk: joshsmith there is [21:51] joshsmith: is it the same as app.set(key)? [21:52] tjholowaychuk: in 3x yeah [21:52] tjholowaychuk: in 2x it gets matching routes [21:52] joshsmith: what did app.get() become in 3x? [21:53] tjholowaychuk: app.get(setting) => val [21:53] joshsmith: but I mean for getting routes [21:53] tjholowaychuk: oh, i haven't decided yet [21:53] tjholowaychuk: i dont like the old stuff [21:53] joshsmith: ah, okay [21:53] joshsmith: yeah, I was just complaining to myself earlier that you get a value with app.set(key) [21:54] joshsmith: it made my brain implode [21:54] joshsmith: but my brain's small, so no one was hurt [21:54] tjholowaychuk: haha yeah it's lame [21:54] ohnopb has joined the channel [21:55] bodisiw has joined the channel [21:55] keltus: tjholowaychuk: what would you recommend for overlaying canvases? [21:55] tjholowaychuk: drawImage [21:55] springmeyer: keltus / tjholowaychuk - regarding HasInstance/duplicate versions of c++ modules... [21:56] springmeyer: I've not seen a solution, curious if you know any [21:56] tjholowaychuk: yeah im not sure about HasInstance [21:56] springmeyer: here's our issue background: https://github.com/developmentseed/node-sqlite3/issues/29 [21:56] tjholowaychuk: i had this issue with stylus [21:56] tjholowaychuk: but no c++ [21:56] springmeyer: oh, interesting [21:56] springmeyer: I figured it was just c++ [21:56] tjholowaychuk: nope [21:56] tjholowaychuk: stylus.nodes.Whatever would be different per module [21:56] keltus: tjholowaychuk: but doesn't drawImage completely overlap images, instead of "blending" them? [21:57] tjholowaychuk: so I had to do .nodeName [21:57] t0mmyvyo has joined the channel [21:57] tjholowaychuk: keltus you can draw other canvases as well [21:57] tjholowaychuk: with transparency etc [21:58] keltus: I see [21:58] cognominal has joined the channel [21:59] lsdafjklsd_ has joined the channel [22:00] cognominal has joined the channel [22:01] eignerchris has joined the channel [22:01] jmar777 has joined the channel [22:02] jbpros has joined the channel [22:02] kjeldahl has joined the channel [22:03] innoying has joined the channel [22:03] AndreasMadsen has joined the channel [22:03] bnoordhuis has joined the channel [22:04] moneal: Anyone having a problem building on 0.6.6 on ubuntu? I'm getting Build failed: -> task failed (err #2):{task: libv8.a SConstruct -> libv8.a} [22:04] overthemike has left the channel [22:04] Sorella has joined the channel [22:05] cmr: moneal: I didn't have any issues [22:05] EyePulp: moneal: I've been doing it on 3 boxes today via nave - no issues [22:05] ryanfitz has joined the channel [22:06] moneal: damn having problems the last 2 days on all my new ec2 boxes [22:07] eldios has joined the channel [22:08] Margle has joined the channel [22:10] rurufufuss has joined the channel [22:11] megalomix has joined the channel [22:11] megalomix: hello [22:11] Tobsn has joined the channel [22:12] megalomix: at the moment I have: https://gist.github.com/1572635 (express.js) is this not correct for you? I mean.... I have two variables and a function that I Need to use on my views.... can I Put all the things in dinamicHelpers() ? [22:13] jimmyrcom has left the channel [22:13] tjholowaychuk: megalomix 2x dynamic helpers are just the functions [22:13] tjholowaychuk: the others are "static" [22:13] corpix has joined the channel [22:13] megalomix: tjholowaychuk, so is this correct? can I use it without any change? [22:14] tjholowaychuk: yeah that looks fine [22:14] megalomix: ok perfect, thank you! [22:14] ohnopb has joined the channel [22:15] pkrumins: rauchg, SubStack, any ideas about this error that I am seeing in socket.io: http://pastebin.ca/2100572 [22:15] magnetik__ has joined the channel [22:16] `3rdEden: pkrumins the logger supplied to socket.io is probably undef [22:17] pkrumins: oic, didn't know you could supply a logger to socket.io [22:17] MatthewS has joined the channel [22:17] `3rdEden: io.set('logger', logger instance) [22:17] pkrumins: what if i dont want any logger? [22:18] `3rdEden: you can turn logs of [22:18] `3rdEden: io.set('log', false) [22:18] pkrumins: sweet [22:18] `3rdEden: or io.set('log level', -1) [22:18] ismell: you guys are smart, how would I do the following if I don't have a >>> operator ? -123456 >>> 14 [22:18] pkrumins: but wait, if it's undef, wouldnt it mean it's off ? :) [22:18] ismell: I only got a >> (signed) [22:19] pkrumins: what is >>> [22:19] plow: hi, can someone offer some advice on how to do a distributed queue using redis in node, just some pointers please :) [22:20] plow: two streams that must be matched in ratio 1:1 [22:23] tommyvyo has joined the channel [22:26] break57382 has joined the channel [22:27] redir has joined the channel [22:28] r1ngzer0 has joined the channel [22:28] stagas has joined the channel [22:30] tomlion has joined the channel [22:30] jocafa: http://cloud.pxlninja.com/D7ne :) :) [22:30] joshsmith has joined the channel [22:31] joshsmith: how should I be creating a model if I want to test it with a fake express app? [22:31] joshsmith: module.exports = function(app) { ... }? [22:31] joshsmith: or should I be extending the prototype of a named function? [22:32] martin_sunset: I am looking for a helper to handle exponential back off scenarios and throttling API calls. Any recommendations? [22:33] bodisiw has joined the channel [22:33] joshsmith: martin_sunset: https://github.com/fernandezpablo85/Xb [22:33] r1ngzer0: martin_sunset: I too am in need of just such a thing. [22:34] martin_sunset: Thx josh [22:34] r1ngzer0: joshsmith: cool, thx! [22:35] joshsmith: not a problem [22:35] joshsmith: either of you use express? I could use a returned favor [22:35] martin_sunset: Yeah, I do [22:35] joshsmith: do you ever fake your app for testing? [22:36] martin_sunset: No, I always run it. [22:36] joshsmith: for example, I have MySQL configuration settings, and I want to inject an empty app as part of my mocking [22:37] BrianE has joined the channel [22:37] joshsmith: martin_sunset: ah. any particular reason? [22:38] martin_sunset: Well, couldn't really figure out how to mock this well. Too much configuration going on [22:38] tjholowaychuk: mocking is for wimps :p [22:38] tjholowaychuk: jk [22:38] tjholowaychuk: haha [22:38] joshsmith: haha do you *not* mock tjholowaychuk? [22:38] tjholowaychuk: but yeah, when testing your app it's usually a good idea to .. test your app [22:38] tjholowaychuk: very rarely [22:39] `3rdEden: he's just mocking you [22:39] tjholowaychuk: the http part isnt really the slow part [22:39] kickingvegas has joined the channel [22:39] tjholowaychuk: db logic etc might be [22:39] tjholowaychuk: but that will be slower anyway [22:40] martin_sunset: It's faster than testing rails by a magnitude, that's good enough for me [22:40] joshsmith: so do you guys just test your controllers and not your models then? or do both? [22:40] gamera_ has joined the channel [22:41] joshsmith: how do you start the app when running the tests martin_sunset? [22:41] martin_sunset: I gist this in a sec, brb [22:41] joshsmith: gracias [22:42] skm has joined the channel [22:43] stisti has joined the channel [22:43] tommyvyo has joined the channel [22:44] mara has left the channel [22:45] martin_sunset: Here is my helper https://gist.github.com/68b7ba76973fefb5209f [22:46] martin_sunset: Here is one test https://gist.github.com/1572793 [22:46] rgl has joined the channel [22:47] martin_sunset: Here is another: https://gist.github.com/1572799 [22:47] martin_sunset: Keep in mind that I just started using mocha and this is not done for beauty... [22:48] joshsmith: oh I remember you martin_sunset; you're the guy in weho [22:48] joshsmith: I was thinking "he seems familiar..." [22:48] martin_sunset: Used to. Right now I am very undecided between bay area and LA [22:49] joshsmith: no San Diego?; [22:49] Cromulent has joined the channel [22:49] dragon: Who here is attending nodejam? [22:49] redir has joined the channel [22:50] martin_sunset: Haha, need to visit one day. I think the first gist is private, need to repost [22:50] dragon: http://nodesummit.com/nodejam/ [22:50] joshsmith: it worked for me [22:50] dragon: martin_sunset: the first link worked [22:50] martin_sunset: Ah cool [22:50] joshsmith: martin_sunset: I lived in all three cities [22:51] martin_sunset: joshsmith: Nice. You are in San Diego now? [22:51] joshsmith: sadly, no [22:51] joshsmith: I'm in PA for 9 months [22:51] joshsmith: moving back to CA after this [22:51] jerrysv: joshsmith: what part of PA? [22:51] abraxas has joined the channel [22:51] joshsmith: central PA jerrysv [22:52] jerrysv: joshsmith: only ask, as i just spent 5 days out in wilkes-barre area, would have loved to meet node folks [22:52] joshsmith: jerrysv: ah, yeah. that's pretty far from here [22:52] joshsmith: jerrysv: I don't even do Node at my job (though that may be changing!) [22:52] martin_sunset: joshsmith: and where are you heading when you come back to CA? [22:53] joshsmith: martin_sunset: idk yet; would prefer SD but there are compelling reasons to go to SF instead [22:53] joshsmith: I might start working for a company soon that's in Palo Alto, so that would decide it for me [22:54] martin_sunset: joshsmith: Makes sense. I wish there was a better tech scene in southern California [22:54] aGHz has joined the channel [22:54] joshsmith: martin_sunset: me, too. both cities are only meh [22:55] joshsmith: martin_sunset: there are some cool things going on westside in LA from time to time, but it's sparser than it oughtta be [22:55] joshsmith: martin_sunset: and there were some cool NoSQL meetups down in SD and stuff like that [22:56] joshsmith: if I end up deciding to go to back to SD for whatever reason, I'm going to work my ass off to help kickstart the tech scene there [22:56] herbySk has joined the channel [22:56] mdel has joined the channel [22:58] martin_sunset: joshsmith: Hehe, Great plan. [22:58] overthemike_ has joined the channel [22:58] joshsmith: pkrumins: ping [22:58] descipher has joined the channel [22:58] pkrumins: yes? [22:59] joshsmith: I saw you're looking for sponsors for your newsletters/rss feeds [22:59] pkrumins: sure am [22:59] plow: what's the correct way to do array remove? [22:59] joshsmith: I might start working for a startup soon that's doing targeting advertising for such things [22:59] TheJH: plow, remove an element from an array? [22:59] overthemike_ has left the channel [22:59] joshsmith: so you should totally get in touch with them [22:59] plow: TheJH: yep [22:59] joshsmith: http://www.launchbit.com/ [22:59] TheJH: plow, arr.splice(arr.indexOf(element), 1) [23:00] TheJH: plow, do NOT use delete for that! [23:00] plow: TheJH: does that reindex everyting? [23:00] TheJH: plow, yes [23:00] plow: TheJH: so you _can_ use delete for objects then? [23:00] TheJH: plow, delete doesn't reindex, but the empty areas still use some RAM [23:00] TheJH: plow, yes [23:00] torvalamo: delete doesn't collapse the array to a continuous index, it just leaves a hole [23:01] plow: does arr.splice use a ref, so I don't need to reassign? [23:01] andrenkov has joined the channel [23:01] TheJH: plow, yes [23:01] plow: super, thanks TheJH [23:01] TheJH: plow, splice modifies the original array [23:01] cody-- has joined the channel [23:01] plow: TheJH: got it, cheers [23:01] TheJH: plow, on objects, delete is totally fine. on arrays, it's a bad idea because you get holes [23:06] jxson has joined the channel [23:07] shinuza has joined the channel [23:12] koo3 has joined the channel [23:12] rwaldron has joined the channel [23:14] quijote has joined the channel [23:16] drudge has joined the channel [23:17] gigafied has joined the channel [23:18] eldios has joined the channel [23:19] SubStack: I hate it when libraries take it upon themselves to spam the terminal with logging output. [23:19] SubStack: so much [23:19] ryan_stevens: substack: how would anyone know if the libraries are adding value? [23:20] MatthewS has joined the channel [23:20] mraleph: TheJH: on objects delete is a bad idea because object goes to slow case. of course it's fine if the object was already in slow case... [23:20] SubStack: I don't care about that, they just make everything really noisy [23:21] SubStack: so it's harder to debug my own stuff and the output gets in the way very quickly [23:21] ryan_stevens: substack: yeah, I was jk [23:21] TheJH: mraleph, oh, interesting [23:21] SubStack: running into a case where socket.io's stupid default logging crap is crashing a service [23:22] SubStack: makes me hate that feature even more [23:22] `3rdEden: haters gonna hate [23:22] markq: how can i tell formidable to keep the same name of the file i upload through post? [23:23] EyePulp has joined the channel [23:23] SubStack: I don't mind it when you can opt in to logging but I hate it when that is the default [23:24] `3rdEden: you can just turn it off [23:24] `3rdEden: or have it use your own logging module [23:24] `3rdEden: i really don't see the issue here [23:25] `3rdEden: you got io.set('log level', level) to lower the output or silence it with -1. You can do io.set('log', false). and you can give it your own logger instance io.set('logger', logger instance); [23:25] SubStack: `3rdEden: it's really hard to turn it off actually [23:25] `3rdEden: how much more options do you want o_o [23:25] SubStack: it's already turned off in dnode [23:25] AaronMT has joined the channel [23:25] SubStack: but it doesn't even work correctly [23:26] SubStack: and is crashing [23:26] SubStack: so um [23:26] josephmoniz has joined the channel [23:26] amigojapan has joined the channel [23:26] SubStack: it does 'log level' of -1 [23:26] SubStack: this stuff is really poorly documented is why it's such an issue [23:26] `3rdEden: yup [23:26] SubStack: apparently 'log level' of -1 isn't sufficient [23:26] SubStack: and it ALSO needs log : false [23:27] `3rdEden: if it's not, then it's a bug [23:27] SubStack: what is this I don't even [23:27] SubStack: and I hate this feature so much to start with [23:27] SubStack: it's just compounding the hate [23:27] `3rdEden: but anyways I'm going to bed gnite [23:27] `3rdEden: poke rauchg about it :p [23:28] rauchg: SubStack [23:28] rauchg: what's the issue ? [23:29] rauchg: there's a whole wiki page explaining it [23:29] rauchg: but i agree, the logger is actually gonna go away [23:29] rauchg: very soon [23:30] SubStack: hooray [23:30] joshsmith: martin_sunset: where do you start your app in your tests? did I miss that? [23:30] SubStack: getting this crashL http://pastebin.ca/2100572 [23:30] SubStack: s/L/: [23:31] SubStack: fixed by also adding 'log : false' [23:31] SubStack: in addition to the 'log level' : -1 that dnode adds [23:31] martin_sunset: joshsmith: In the before block. Calls the helper in the first gist [23:31] innoying has joined the channel [23:32] joshsmith: martin_sunset: ah I'm an idiot [23:32] martin_sunset: Na, the code is a mess. Tons of technical debt.... [23:33] joshsmith: I was gonna say, I feel like there should be a cleaner, easier way to start the app for testing [23:34] joshsmith: maybe it'll be dirty regardless [23:34] warz has joined the channel [23:35] Wa has joined the channel [23:35] martin_sunset: joshsmith: Agree. Some globally loaded before after perhaps, or custom test verbs to specify behavior [23:35] zitchdog has joined the channel [23:36] BrianE has joined the channel [23:36] martin_sunset: joshsmith: But it's usable, and I really enjoy the combination of mocha and coffeescript [23:36] joshsmith: martin_sunset: like a fake.js file perhaps that starts up Express? [23:37] k1ttty has joined the channel [23:37] joshsmith: and then fake.js would have its own environmental settings separately in a config dir? [23:38] martin_sunset: joshsmith: Not sure. I fear this is all very app specific [23:39] RLa has joined the channel [23:39] martin_sunset: joshsmith: The thing that bothers me are the repetitive before after blocks, perhaps I can create a custom describe method that automatically ones that [23:39] booo has joined the channel [23:39] bitwalker has joined the channel [23:40] BrianE: I prefer testing behaviour. This is in Rails land, not Node, mind [23:40] BrianE: Good model tests are crucial, especially for more complex models [23:40] BrianE: But testing controllers, at least as I've seen it done (again, Rails world) seems silly / not useful [23:40] BrianE: Much better to test using capybara, and make sure you can actually use the features of your app as a user [23:41] BrianE: So, I ask: Is there anything like capybara for Node / express? :) [23:41] joshsmith: BrianE: there's a philosophy that good unit testing will obviate the need for acceptance testing [23:41] jxson has joined the channel [23:42] booo has joined the channel [23:43] joshsmith: BrianE: http://stackoverflow.com/questions/7591854/is-there-a-capybara-for-nodejs [23:43] BrianE: joshsmith: I prefer knowing that you can actually use the app, to knowing that my controller / views implementations stay the same. Maybe I've just seen crappy controller tests, though [23:43] joshsmith: there's also https://github.com/LearnBoost/soda [23:43] booo has joined the channel [23:44] konobi: acceptance tests are expensive... unit tests help reduce the amount of iterations you need to go through with your acceptance tests and are usually more concrete [23:44] joshsmith: konobi++ [23:44] catb0t: konobi now has 1 beer [23:44] konobi: there's also things you can test in unit tests are are really hard to do on a running system [23:44] konobi: (the DB went away... the disk filled up, etc) [23:45] BrianE: Mm [23:46] konobi: the remote rest api dropped the request halfway through sending the body, etc. =0) [23:46] subbyyy has joined the channel [23:47] konobi: dates, times, timezones, leap years, data/buffer boundaries, integer overflows, etc. etc. [23:47] BrianE: Those should, surely, belong in the model? [23:48] konobi: BrianE: no... your presentation/controller may be affected by those things too [23:48] konobi: never searched by date? or very large datasets? paging, etc? [23:48] brianseeders has joined the channel [23:48] rwaldron has joined the channel [23:49] BrianE: I've never tested large datasets [23:49] BrianE: But things like search, paging, etc, I've used acceptance testing with capybara/webrat [23:49] ben_alman: what are some nodejs unit testing options? i've been using nodeunit, but it's not really extensible [23:50] konobi: should your "next" button for dates go to 29th or March 1st this year? [23:50] konobi: ben_alman: node-tap ? [23:50] cmr: ben_alman: I've been liking tap [23:50] ben_alman: looking [23:50] konobi: there's also support being pulled in for coverage too, iirc [23:51] ben_alman: let me try tap [23:51] ben_alman: looks interesting [23:51] hipsters_ has joined the channel [23:51] overthemike has joined the channel [23:51] joshsmith: ben_alman: mocha [23:51] cmr: The example test is great documentation [23:52] torvalamo: this year is a leap year [23:52] torvalamo: multiple of 4 but not of 20 [23:52] zemm has joined the channel [23:53] torvalamo: not sure if i answered a question [23:53] torvalamo: :P [23:54] mikeal has joined the channel [23:54] konobi: torvalamo: but are you testing in the past, the future or the present? =0) [23:55] pluc has joined the channel [23:57] ben_alman: hmmn.. tap doesn't have any kind of setup/teardown that i can see [23:57] kmiyashiro has joined the channel [23:57] ben_alman: of course, i could do that manually [23:57] ben_alman: but it seems like the kind of thing that'd be part of a testing protocol [23:58] jskulski has joined the channel [23:58] konobi: why? [23:58] ben_alman: because you often don't want tests to depend on side-effects of previous tests [23:59] konobi: so call a shared lib setup() and teardown() [23:59] ben_alman: yeah, of course [23:59] McMAGIC--Copy has joined the channel [23:59] konobi: putting it into the protocol is overengineering it =0) [23:59] ben_alman: maybe, maybe not [23:59] mc: any of you guys generating api docs from code comments?