City LifeCity LifeTooling for Software Metrics- April 17, 2005 On a list I subscribe to another member expressed reservations about the Law of Demeter (LoD) as a developer guideline. My response: What I think you're saying is LoD is over-broad, but checking the metric can be another tip-off to poor coding practice. Ok. My problem with metrics is, basically, tooling. And laziness. My two problems with metrics are tooling and laziness. And too much output to cope with. My three problems with metrics are... In a previous job I had a colleague who would..http://www.jroller.com/bobfoster/entry/tooling_for_software_metrics XML Pipes- April 17, 2005 One thing that's always surprised me is that XML pipes don't have better tool support. Apparently, judging from a recent post on the xml-dev list, it surprises David Megginson, the creator of SAX, too. He invented a perfectly pipelineable Java API and a default implementation way back in the early days of XML. SAX has been almost universally supported, but few seem to have taken advantage of the pipelining possibility. In case the reader doesn't have any idea what I'm talking about, the word...http://www.jroller.com/bobfoster/entry/xml_pipes Service Oriented Programming- April 16, 2005 (There's a reason I didn't call this Service Oriented Development, and the reason is the acronym. SOP is bad enough.) There is software that am what it am, like Popeye, and there is the rest of software, logically divided into service providers and service clients. A client requires a service to get its job done properly, and a provider supplies the service. This is the ecosystem of software. When a service does one thing and one thing only and what it does is entirely determined by its...http://www.jroller.com/bobfoster/entry/service_oriented_programming InseparableServices - Thoughts on Implementation- April 14, 2005 Today I have an idea how InseparableServices might be implemented in Java with strong typing. Warning: This is one of my design-mode things where I hop madly up and down levels of detail. Count on it that it won't be adequately high-level or low-level. It's a hand-waving sketch. Like several other dependency injection schemes, the component declares in its constructor which services it requires from its creator. Unlike the others I have seen, it does not specify a constructor argument for each.http://www.jroller.com/bobfoster/entry/inseparableservices_thoughts_on_implementation InseparableServices- April 13, 2005 While grinding through the painful exercise of ripping Eclipse's AbstractTextEditor out of the Workbench, it occurs to me that most of the pain is caused by the innumerable calls of the form: PlatformUI.getWorkbench().getBlahBlah().doSomething() and the like, by which everything in Eclipse depends on every other damn thing in Eclipse. I asked myself, what design principle does this violate And by golly it's the Law of Demeter (which I have noted elsewhere is the most broken law after speed...http://www.jroller.com/bobfoster/entry/inseparableservices InsecureCustomer- April 10, 2005 The reason Doug tracked down my email address when he found comments were broken was to pass on this bit of experience: It's not always the developers who want the Ultimate Solution. I've frequently seen the Customer (in the Agile sense of the term) insist that they needed EVERYTHING that they could think of in the first release. The apparent motivation was something like, "If I only get the most important 95% in that first release, I'll never get the other 5% because some OTHER project (from.http://www.jroller.com/bobfoster/entry/insecurecustomer What Else Can Go Wrong- April 10, 2005 I was surprised my previous Damn JRoller note didn't draw any comment. Usually, there's some committer who talks back about bug reports, even though the talk always seems to be along the lines of "What browsereditormattress are you using" and when I reply I never hear another word. Fact is, the editor in JRoller doesn't work on any browser I've tried: IE, Mozilla, FireFox. Maybe I should try Safari" Mystery solved. Comments are broken! This was passed on to me by the intrepid Doug Pardee from..http://www.jroller.com/bobfoster/entry/what_else_can_go_wrong UtlimateSolution- April 10, 2005 The UltimateSolution anti-pattern manifests itself when a developer (or group) won't do something about a pressing problem today because it wants to do the UltimateSolution tomorrow. You also see this as GeneralSolution, a variant in which no problem can be solved unless it can be solved with perfect generality. "Your proposed solution doesn't deal with some far-fetched 0.1-percentile use case," is a typical response. Both UltimateSolution and GeneralSolution are often fronts for "If I...http://www.jroller.com/bobfoster/entry/utlimatesolution Damn JRoller- April 3, 2005 This thing drives me nuts. I made the mistake of enabling the Textile Formatter awhile ago. Today I discovered I'd lost the ability to put a literal less-than sign in a post. After looking over the Textile site, I still couldn't find a way to do it, so I disabled Textile (I thought). Still can't do it. Also, the HTML pre element is now discarding its contents. And I still can't put the cursor at the start of any new line. Anywhere in the first character, the cursor changes from an ibeam to an..http://www.jroller.com/bobfoster/entry/damn_jroller |