{"id":69,"date":"2006-03-28T15:51:41","date_gmt":"2006-03-28T22:51:41","guid":{"rendered":"http:\/\/www.redmonk.com\/cote\/wp\/?p=69"},"modified":"2006-03-28T15:51:41","modified_gmt":"2006-03-28T22:51:41","slug":"re-lessconfig","status":"publish","type":"post","link":"https:\/\/redmonk.com\/cote\/2006\/03\/28\/re-lessconfig\/","title":{"rendered":"Re: lessconfig"},"content":{"rendered":"<p>Here&#8217;s a partial response to <a href=\"http:\/\/www.redmonk.com\/cote\/archives\/2006\/03\/invalid_success.html#comments\">some ferreting out questions<\/a> from <a href=\"http:\/\/blogs.sun.com\/dandaviesbrackett\">Dan Davies Brackett<\/a>.<\/p>\n<h2>lesscode and lessconfig<\/h2>\n<blockquote><p>\n(1) is less config orthogonal to less code?\n<\/p><\/blockquote>\n<p>I don&#8217;t think less code and less config are completely detached. (The word &#8220;orthogonal&#8221; drives me crazy in it&#8217;s fancy-pantsness.) Depending on how it&#8217;s coded, less config could require more code. On the other hand, it could mean less code because you have fewer different paths to support. As always&#8230;&#8221;it depends.&#8221;<\/p>\n<h2>Good or Just Nice?<\/h2>\n<blockquote><p>\n(2) is less config a demonstrable, philosophical Good or just a frequent user request? (is there a difference between those two things?)\n<\/p><\/blockquote>\n<p>Less is always good in the world of computers and IT I want to live in: the one where everything works exactly how I&#8217;d like it to, out of the box. Of course, since not every program does exactly what I want, a defensive move is to add in more options so that the software can behave like Cot&eacute; wants, like Jane wants, and like Terry wants, all by setting different options. That&#8217;s config right there, but it might be unavoidable.<\/p>\n<p>Or, you could take the <a href=\"http:\/\/maven.apache.org\/\">maven<\/a> vs. <a href=\"http:\/\/ant.apache.org\">ant<\/a> approach. Ant is lots of config. Maven is (on the face of it) less config. The trade-off is that Maven enforces convention and constraints that drive the structure of your project, for example, one artifacts per project, e.g., not however many JARs you want.<\/p>\n<h2>Sensible Defaults<\/h2>\n<blockquote><p>\n(4) To what extent does &#8220;less config&#8221; actually mean &#8220;sensible defaults&#8221;?\n<\/p><\/blockquote>\n<p>In the same way that helpdesks are the first toe into more ITIL&#8217;ed up IT, sensible defaults are  probably the first toe into lessconfig. On the other hand, a default implies it can be changed, which means more config. Getting back to the different desires of users above though, you usually want that.<\/p>\n<h2>Examples<\/h2>\n<blockquote><p>\n(3) What are the best examples and counterexamples of less config around right now?\n<\/p><\/blockquote>\n<p>I look at OS X (of course! who didn&#8217;t see that coming?!) as a less config platform. This results in really hokey things, like a GUI with an option called &#8220;Personal Web Sharing&#8221; to start up Apache.<\/p>\n<p>And, for another who saw that one coming, you have rails with it&#8217;s &#8220;configure by convention&#8221; instead of &#8220;configure by typing.&#8221; That leap takes a lot of ego-deflating for programmers: &#8220;<a href=\"http:\/\/www.webuser.co.uk\/carsonworkshops\/DavidHeinemeierHansson.mp3\">there&#8217;s nothing special about your needs 80% of the time<\/a>. You can do what everyone else does.&#8221; While we may not think that programmers like repeating themselves, they sure don&#8217;t act like it when it comes to config do they?<\/p>\n<h2>Canned Config<\/h2>\n<p>Along those lines, another interesting aspect is to think of virtualization. If you could just make a library of 1,000&#8217;s of different configuration in VM snap-shots, then you could avoid a huge part of configuring. For example, you could create 100&#8217;s of different web server snap-shots, each customized for different uses. There might be one that&#8217;s the &#8220;Intel dual-core, Apache server with proxy for XYZ app, WebDAV file-share, and with subversion.&#8221; Instead of having to configure all that, you&#8217;d just re-image with or deploy that snap-shot.<\/p>\n<p>That kind of thinking with VM&#8217;s isn&#8217;t my own, it comes from several other people including <a href=\"http:\/\/blog.whurley.com\/\">whurley<\/a> and <a href=\"http:\/\/talk.bmc.com\/blogs\/blog-fjohan\/fred-johannessen\/\">Fred Johannessen<\/a>..except they have even cooler ideas for VM images in the exciting world of systems management.<\/p>\n<p><b>Disclaimer:<\/b> Sun, where Dan appears to work, is a client. As is BMC, where Fred works. Fred also bought me lunch today at every Austin BMCer&#8217;s favorite, <a href=\"http:\/\/austin.citysearch.com\/review\/10241811\">Twin Lions<\/a>. He is <i>not<\/i> a Wonderful Chicken man and neither am I.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s a partial response to some ferreting out questions from Dan Davies Brackett. lesscode and lessconfig (1) is less config orthogonal to less code? I don&#8217;t think less code and less config are completely detached. (The word &#8220;orthogonal&#8221; drives me crazy in it&#8217;s fancy-pantsness.) Depending on how it&#8217;s coded, less config could require more code. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,23,34],"tags":[],"class_list":["post-69","post","type-post","status-publish","format-standard","hentry","category-ideas","category-programming","category-systems-management"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/69","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/comments?post=69"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/69\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/media?parent=69"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/categories?post=69"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/tags?post=69"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}