Musing…

This post reminded me of this post.

'nuff said…

Tags: Rant

Another Useful Resource

This time from Yahoo's Exceptional Performance team.

As well as publishing a list of best practices for improving web performance, they also make the YSlow performance analysis tool available.

Is Going for the Low-Hanging Fruit Good Enough?

Why?…that's the feeling I have after reading Rails for Java Developers.

The book (given 4 1/2 stars by its reader-reviewers) is fine and nicely illustrates the Java way vs. the Rails way, but as to the Rails way itself…hmmm.

Typically the authors introduce a problen with a Java example, followed by an equivalent piece of Rails code and announce "Look, ma: no XML!" or "That was much less to type, wasn't it children…." Time and again however, the discussion moves onto a disclaimer:

The place where Rail's default logging falls far short of log4j is in supporting a variety of appenders

If you need these [client-side validation with Javascript/internationalization] features in your Rails application, you will have to find a plugin or roll your own.

The Ruby world does not have anything as comprehensive as CruiseControl.

Ruby IDEs do not offer nearly the level of code completion and refactoring that the best Java IDEs do.

Because the Java platform includes a virtual machine specification with documented profiling hooks, it beats Ruby profiling not only in practise but in concept

ActiveRecord provides no support for distributed transactions, and when we miss them, we miss them acutely. Rails is currently unsuitable for systems that must enforce transactional semantics across different databases. But chin up! The JRuby team ( http://www.jruby.org) is working to make JRuby on Rails viable. Once it is, we will have access to Java's transaction APIs.

There seems to be a pattern here…

[edit: I guess I didn't make myself clear here. I was struck by the fact that there always seems to be a disclaimer. Open any page, follow the topic and before the coverage is complete you will see this sort of disclaimer…. So: why?]

My impression is that Ruby is really going after the low-hanging fruit, not that there is anything wrong with that.

As far as I can see, however, the bushes (at both the low-hanging and tip of the tree levels) are pretty well picked over by the myriad of PHP, Perl, Python and Java frameworks out there (and let's not forget Grails), and I find myself wondering whether Ruby/Rails really has the 'puff' to go to the next level. Leaving aside the existence of JRuby for the moment, this pretty much means reimplementing the whole IT infrastructure: transaction management, messaging, view/templating/conversation technologies, testing, etc., etc.. Everything.

Yes, redoing everything for Ruby/Rails probably is fun (especially if you missed or have a hankering to re-live the dot-com bubble era…) and may even reduce the amount of keyboard pounding that Joe Rails Programmer has to do, but is this effort really valuable?

Perhaps I am too old to really appreciate the subtleties here. After all, as the old adage goes: if you can't change the people, change the people.

Tags: Grails, Programming

I, For One, Welcome our new Robotic Overlords…

In this case, I am referring to search-engine robots…

I figured it was time to give them something fresh and buzzword-laden to chew on.

So take this Google, Yahoo, Ask, Altavista, etc., etc….

Transentia offers mentoring, development and consulting services in a number of enterprise-level technologies, including:

  • Java 2, Enterprise Edition (J2EE) technologies [the full stack, including JavaServer Pages (JSP), Tag Libraries, Servlets, Enterprise Java Beans (EJBs), Java Messaging Service (JMS), Java Management eXtension (JMX)…]
  • Development using the Spring Framework and various associated Spring modules (WebFlow, valang validation, caching, etc.)
  • Dynamic programming using Groovy and Grails
  • RedHat/JBoss tools such as JBoss Application Server, JBoss Hibernate and the JBoss Seam framework
  • BEA WebLogic Platform technologies [Server, Portal, Workshop, …]
  • Portal/portlet technologies
  • XML-based technologies
  • Numerous Open Source tools [Apache, Struts, Eclipse, Netbeans, Ant, JUnit, …]
  • Java 2, Standard Edition (J2SE) technologies [Applications and Applets, Swing GUI, RMI, Java Web Start, …]
  • SOAP/WebServices on the J2EE (and .Net) platforms
  • Development team management using the Scrum methodology
  • Static and Database-driven Web site design and implementation
  • C/Unix/Linux development
  • Linux implementations

<aside>
I always find it strange (and a little concerning) that after 20+ years in the IT business I still go to interviews and am asked questions like "So. Are you a Stateless Session Bean expert?" or "We have SuperWidgetServer version 7.32…I see that you are familiar with 7.31. Will that be a problem for you?"…I also find it strange when I interview people who proudly announce their expertise along similar lines.

I am forcibly reminded of a quote from a character created by the late, great Science Fiction author Robert Heinlein:

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly.

Specialization is for insects.
-Lazarus Long, Time Enough For Love

That man was a genius…but he didn't live to see our crazy future; he did, however predict it.
</aside>

Now, while I am at it, a variety of shameless plugs cannot hurt…

"Your report was exactly what we needed. It was factual and offered realistic options/recommendations. Hope to work with you again in the future."

"Thank-you Bob. I found your sessions extremely informative and enjoyable."

"The response by staff and students to your […] website has been most encouraging. Great work."

"…A high level of intellectual capacity and willingness to communicate their knowledge with other participants, and contribution to high levels of achievement were continually demonstrated resulting in successful outcomes…"

May The Force be with Your Tests…

Couldn't resist referencing this one:

And I Only Just Jumped on the Scrum Bandwagon…

From The Economist:

For the more curmudgeonly sort of older manager, the current recession is the joyful equivalent of hiding an alarm clock in a sleeping teenager's bedroom (see article). Once again, the touchy-feely management fads that always spring up in years of plenty (remember the guff about "the search for meaning" and "the importance of brand me") are being ditched in favour of more brutal command-and-control methods.

Bad timing, eh!

Back to the good old, tried-and-trusted waterfall…

Tags: Agile

Pithy Pieces of Perspicacity

A quote [from here] from the late, great Edsger Wybe Dijkstra:

if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent"

Something for the "I can write it faster/better/smaller/… myself" crowd to ponder.

Here's another pithy piece [from the same source as above]:

…the problems of the real world are primarily those you are left with when you refuse to apply their effective solutions.

Tags: Agile, Rant

Happy Lunar New Year!

This weekend marks the start of a new Lunar New Year…the year of the Ox.

I (Bob) am an Ox (a metal Ox, so I am lead to believe). A born leader, hard-working, intelligent, not-to-be-messed-with. Yup, that's me ;-)

I note that nothing is said about successful…I guess that an Ox doesn't stand around all day knee-deep in money( :-) )…sigh.

To my fellow herd-members out there, may I just say: "Moo."

Welcome, Perf4J!

Just came across this welcome addition to the Java ecosystem: Perf4J.

…a set of utilities for calculating and displaying perfomance statistics for Java code.

Even the byline is interesting: Perf4J is to System.currentTimeMillis() as log4j is to System.out.println().

Perf4J supplies useful tidbits like GraphingStatisticsAppender and JmxAttributeStatisticsAppender. It seems like performance monitoring has never been easier…

Anyone familiar with the near-ubiquitous Log4J shoould have no trouble wrapping their head around Perf4J.

Worth keeping an eye on, I say…

Tags: Tools

An Interesting Survey

Just posted on Scrummaster.com.au.

Some interesting results:
Question: "Who is the main driver for quality in your organisation?" Answer: ~50% said "the team."
It seems in general as though even an organisation's [ahem] "Test Manager" isn't paid enough to care…
Question: "Is your Product Owner a Business Analyst" Answer: ~80% said 'No or No Product Owner."
Maybe no one is paid to care…?

Call me an impetuous Sun of a Gun if you must, but these results don't reflect well on IT management, IMHO.

Still, the glass is actually half-full: even while behemoths like Prince2 are growing in popularity (reflecting the spirit of "hey it's not working, let's throw more X at it"?), at least there exist organisations trying to do Scrum.

Tags: Agile