Best practices, redux

Jared Richardson took issue with my assertion that there’s no such thing as best practices, stating that, in essence, it’s not kosher for me to deny existence of something that I have to define: They said “There are no best practices” and then they had to define the term… but they defined it wrong! A best practice isn’t a required practice or a universally dominant practice. It’s just one of the best ones.

Conference tour: Q4 2005

A couple of people have asked me what my speaking schedule looks like for the next quarter, so, barring any last-minute cancellations or shifts in schedule, here’s where I’m going to be over the next few months: Aug 27-28, Cincinnati, Ohio: Southern Ohio Software Symposium, doing my usual raft of $NFJS talks: “The Ten Fallacies of Enterprise Computing”, “Effective Enterprise Java: Security”, “Introduction to Web Services, 2005 edition”, “Java Metadata”, and an architecture/end-of-conference open forum Aug 31, Portland, Oregon: Portland Area DotNet User Group, doing a talk on .NET persistence options Sept 14-15, Oslo, Norway: JavaZone, doing talks on “Concrete Services” and “Effective Enterprise Java” Sept 16-18, Chicago, Illinois: Great Lakes Software Symposium, another $NFJS show Sept 20, South Bend, Indiana: Michiana Area DotNet User Group, doing “Intro to WS-2005” Sept 25-30, Arhus, Denmark: JAOO, doing “Passing Messages”, “Core Indigo Patterns”, “Effective Enterprise Java” and “C# Intro” (for Java developers who haven’t picked up the CLR/.NET thing yet) Sept 26-29, Boston, Massachusetts: SD Best Practices (yes, I know this overlaps with JAOO; it’s going to be a very interesting travel week for me that week :-) ), speaking on “Passing Messages” and “The Fallacies of Enterprise Systems” Oct 11, Orlando, Florida: VSLive!

Comment etiquette

If you’re going to take the time to leave a comment, you obviously want your views to be heard, by either me or the people who read my blog, or both. So, then, take the time to make sure your views–and not just your opinions–are presented in the best light possible. Offer arguments, credible or otherwise. State your reasoning. Explain why your conclusions differ from mine. Don’t just write “I don’t agree” or something similar to that effect, because several things happen when you do this: Basically there’s nothing for me (or others) to learn from it, so I pretty much ignore the comment.

There is no such thing as "Best Practices": Context Matters

James Bach recently blogged about something I've been saying in conversations with friends and conference attendees: there ain't no such thing as a "best practice". He lays out his points in a letter to his blog readers, and I want to comment on a few of them. First, "There are no best practices. By this I mean there is no practice that is better than all other possible practices, regardless of the context.

WS-Addressing, the complexity-to-power ratio, and REST

Elliotte Rusty Harold blogged about the WS-Addressing specifications reaching Candidate Recommendation status, and did a bit of editorializing along the way: These specs are seeing some serious pushback within the W3C. The problem is that there already is an addressing system for the Web. It’s called the URI, and it’s not at all clear that web services addressing does anything beyond URIs do except add complexity. In fact, it’s pretty clear that it doesn’t do anything except add complexity.

Welcome to JSR-277!

Although I’ve known for a bit, I couldn’t say anything until now, when I just received the official welcoming letter: I’m a part of the JSR-277 Expert Group, the so-called “Java Module System” JSR. Although you can read the full spiel on the JCP website, the nuts-and-bolts part of this story is simple: we (or at least, I) want to fix the horribly busted component model in Java. Or, rather, the lack of any such thing, beyond what the J2EE world offers (which isn’t much).

Adopting Rails... or Ruby... or anything else, for that matter

Duane Gran emailed me with his thoughts on adopting Ruby-and-Rails into his shop, only his thoughts on the matter are a bit different from the usual rant; he’s looking at it from the management perspective, and has some good ideas on when and why to adopt… or not to adopt… a new programming language. Specifically, he spells out: The decision to change programming languages, databases and operating systems shouldn’t be taken lightly, but when the issue comes up the approach should be analytic.

When do you use XML, again?

So I'm flipping through some old weblog entries, and I run across this one: So when is it a good idea to use XML for your data? The easy answer is that you should use XML when it is likely to be easier (in the long run) than creating your own parser. Using XML carries some cost. XML is verbose, and parsing is guaranteed to be slower than a custom parser.

Why .NET developers should learn Java, and vice versa

John Robbins recently blogged about an "amazingly cool" bit of .NET TraceListener magic sent to him in an email: Josh Einstein sent me a mail about his amazing TerminalTraceListener. If you add TerminalTraceListener to your application, you can telnet into your application and monitor tracing live no matter where it is. How amazingly cool is that!? Josh also added a second TraceListener, SyslogTraceListener, that pumps the traces to Kiwi Syslog Daemon.

Book Review: Pragmatic Project Automation

A bit late, but I realized after I posted the Recommended Reading List that I forgot to add Mike Clark's Pragmatic Project Automation, a great resource for ideas on how to automate various parts of your build cycle... and, more importantly, why this is such a necessary step. Although nominally a Java book, there's really nothing in here that couldn't also be adopted to a .NET environment, particularly now that $g(NAnt) and $g(MSBuild) are prevalent in .NET development shops all over the planet.