Eric Lefevre-Ardant on Java & Agile

November 29, 2008

Data types in Slim

Filed under: fit, tdr — Eric Lefevre-Ardant @ 1:28 am

After an initial introduction video, one on comparaison operators, Bob Martin has now a video on Data Types in Slim, his Fit replacement in Fitnesse.

Data types in Slim are simple. They can only be Strings and Lists, though it is entirely possible for fixtures to actually get integers.

A list looks like this:

[1, 2, 0.5]

Note the brackets. Also, note the space between the comas and the following value. This is important, as the comparaison will actually be made between the exact string specified in the table, and the String representation of the List returned by the fixture. Hence, the format in toString() is important.

November 22, 2008

Comparaison operators in Slim for Fitnesse

Filed under: fit, tdr — Eric Lefevre-Ardant @ 1:50 pm

Now that the release of Slim is done, Bob Martin is spending time producing tutorial videos. The new one is about comparaisons in Slim.

There are two majors things to learn in it:

  • approximate equals
  • ranges

The ~= sign means “approximately equals to”, and depends on the number of decimals; for example,

~=1.3

in a cell will work for any value between 1.2 and 1.4.

A range allows Slim to accept results between boundaries. For example, put something like

1<_<8

in a cell and all values between 1 and 8 will be considered valid. This is something that some versions of Fit could do, but not all. With Slim, all versions of Slim will support this (since it will be evaluated on the Fitnesse side).

Last thing: Fitnesse contains a rather powerful expression evaluator that is not specific to Slim or Fit.
For example:

!define TIMES {1000}
|${=5*${TIMES}=}|

You can combine this construct with the range, and have something like this in your cell:

${=5*${TIMES}=}<_<${=6*${TIMES}=}

which will appear as

5000<_<6000

when viewing your wiki page.

Finally, you might want to watch out for the coming minor release of Fitnesse.

November 19, 2008

Bob Martin releases Fitnesse with Slim

Filed under: fit, tdr — Eric Lefevre-Ardant @ 2:41 pm

You are probably familiar with Fitnesse, a wiki site that wraps Fit. It is basically an environment that helps attaching tests to specifications. Some call this a Test-Driven Requirements (TDR) tool. It has been originally written by Robert C Martin (aka Uncle Bob), Micah Martin and Michael Feathers.

Well, Uncle Bob is coming back with Slim, an extension of Fitnesse he has been working on since August 2008, as his followers on Twitter know. It has been released in the latest version of Fitnesse a few days ago.

Simply put, Slim (Simple List Invocation Method) is an alternative to Fit, quite simpler to implement and to use, and integrated with Fitnesse.

The big thing with Slim, for us mere users, is that it calls POJOs. No need to inherit from Fit-specific classes anymore! (something that GreenPepper has had for a long time) You will just have to implement some methods with particular names, depending on the type of fixture you use.

The fixtures that are available are familiar ones:

  • Decision Table, the equivalent of Column Fixture, with input columns and output columns
  • Query Table, the equivalent of Row Fixture; interestingly, its method query() now returns a List of Lists of Lists (!) instead of an Object[]  table
  • Script Table, the equivalent of Do Fixture in FitLibrary; it also shares many caracteristics with ActionFixture
  • finally, Table Table is the way for you to write any arbitrary fixture

Other enhancements include:

  • variables in fixtures can stay private; no need for them to be public anymore; setter methods are required instead. Not a big deal in my view, but something that beginners were often complaining about
  • error messages are clearer in Fitnesse, typically when classes or methods cannot be found in the fixtures
  • as a side effect of an evolution of Fitnesse made necessary by Slim, it is now possible to run tests in differents JVMs
  • Slim is much simpler to implement than Fit is; this is supposed to make ports of it to other languages much easier, more stable, and more consistent (some implementations of Fit do not have the exact same features as others)
  • it should also be possible to write tests without tables (with updates of Slim), which was very difficult with Fit, because of all these implementations; I want to see things like the plain text tests in TextTest !

Convinced? Then the next step for you is to look at the tutorial video Bob Martin did yesterday.

Me, I think this is a great enhancement, and one of the biggest news in the TDR Tools world this year. With Bob Martin’s influence, there is no doubt it will pick up steam quickly.

November 12, 2008

Back from Open Source eXchange

Filed under: conferences, groovy, java, spring — Eric Lefevre-Ardant @ 11:31 pm

Conference SignInteresting day at Open Source eXchange, a conference organized by Xebia and SkillsMatter.

It was fun meeting Wendy Devolder (now CEO of SkillsMatter) formerly from Valtech (I worked with her at Valtech London back in 2001-2002) and Michael Isvy (with SpringSource) also ex-former. Also had nice chats with Guillaume Laforge, Alexis Moussine-Pouchkine, Antonio Goncalvez and many others, including 2 more Valtech alumni.

Aside from the presenters, most of the participants seemed to be tech guys working for blue chips.

Overview of the presentations

Michael Isvy from SpringSource did a valuable demonstration of DM Server. I find it surprising that it bets on OSGi (I cannot get myself to like it). But it seems mostly to become a good server, further strengthened by the recent addition of Groovy to their portfolio (post in French).

Spring DM Server seems to be mainly Tomcat + Spring Framework + OSGi. Supposed to be 100% OSS, but it is not easy to guess when looking at their website

Tugdual Grall did an entertaining presentation of eXo Platform. The WebOS part is impressive (but run from the local machine, so presumably much slower when used over the net). But I can’t imagine it winning most hearts. My money is currently on using separate apps such as Google Docs.

Guillaume Laforge, formely from G2One and now with SpringSource, did his classic Groovy/Grails presentation. Not much to add to what he has said at Paris JUG in September.

Oh yes, one thing: he hopes that Groovy will be used to script deployment under Spring DM Server. I totally agree.

Antonio Goncalvez presented JEE6, due for release in 2009 Q2. My feeling is that it is just getting too complex, in the sense that it is getting impossible to know about all its various standards and API (reminding me of the whole SOAP fiasco). The JEE6 team knows about this and has a plan where only subsets would be used. As for me, I think most developers will just stick with Spring or some other simpler options (though I guess Spring is getting less and less simple…).

Another thing: it seems EclipseLink is used as the reference implementation for JPA by GlassFish. EclipseLink is in fact TopLink, only Open Source. Interesting comeback, for a tool considered as dead after the Hibernate landslide.

Alexis Moussine-Pouchkine talked about GlassFish as a full-fledged JEE Server, open source, much faster and still as powerful than Weblogic and WebSphere. Strangely, few references to JBoss, except to mention that it (GlassFish) seems to have more downloads.

Christophe Laprun from JBoss had a session on JBoss Portal. I didn’t follow all of it (did work for Valtech instead). Portals and portlets are not that interesting to me. I’m glad other people work on them.

Hughes le Bars & Oktay Istanbullu from Yahoo! presented Hadoop, a solution to do grid computing for storage of very large data sets (in the order of PetaBytes). I couldn’t quite understand all the presentation, but the whole thing seems terribly interesting. It is used for web search and ads matching by Yahoo!

Oh, Hughes also mentioned PIG, apparently an equivalent of SQL, just better (!).

Drinks were paid after the conference, and a good time was had by all.

Check out my pictures of the conference on flickr.

November 9, 2008

CITCON Amsterdam Continuous Integration Cage Fight on YouTube

Filed under: citcon, continuous integration, hudson — Eric Lefevre-Ardant @ 10:45 pm

Julian has just posted on YouTube videos he took during the CI Showdown at CITCON Amsterdam last October. Sound quality is not very good, so make sure you are in a quiet environment.

November 4, 2008

Hudson can now update itself

Filed under: hudson — Eric Lefevre-Ardant @ 10:01 am

Finally! I have been waiting for this for a while. From v1.259, Hudson is now able to update itself automatically (as long as you have installed Hudson as a Windows Service — granted, this might not be the general case).

Another enhancement in v1.259 is that a Hudson distribution can be bundled with plugins. Hudson will extract them properly at first run (which it didn’t do before). Cool, too.

November 3, 2008

30,000 ScrumMasters and 1,500,000 members of Scrum Teams?!

Filed under: scrum — Eric Lefevre-Ardant @ 7:17 pm

A look on the ScrumAlliance list of Certified ScrumMasters shows that they have 618 pages each containing 50 names of ScrumMaster. This means more than 30,000 CSMs as of Novembre, 3rd, 2008.

According to an interview of Jeff Sutherland, for every CSM, there are 10 Scrum teams that have not had training.  That is, 300,000 Scrum teams.

Finally, Scrum defines that a team is made of 7 people, give or take 2. Taking the conservative value of 5, this means that we have 1,500,000 people doing Scrum.

One and a half million?! Is it really possible? That said, even taking more conservative numbers, there is no doubt that many people are using (trying to use?) Scrum. The annual Agile Survey showed that more than 60% of agile projects are using Scrum, or Scrum combined with XP.

To be honest, this is probably off the mark but maybe not by an order of magnitude. Some estimates put the number of developers worldwide to something between 8 to 13 millions. I’d be surprised that even 5% of developers worldwide are using Scrum (400,000 to 650,000 individuals), but the 1,500,000 figure contains all people in a scrum team, including some that probably do not qualify as developers, such as business analysts, testers, graphical designers, etc. So it could work.

At least it would explain why many people now start to think that Scrum Is Evil.

Powered by WordPress