Using Groovy to keep your Maven and Fitnesse dependencies in sync

Posted by Erik Pragt around lunchtime: July 29, 2008

The problem

What if you're working with Maven, where you've got all your dependencies nicely organised, and now you decide to use any other piece of 'classpath-aware' software, like Fitnesse. The chances are that you'll need to use the same classpath in Fitnesse as in Maven. A possible solution could be to maintain it by hand, but why not write a very small script for it to do it for you? My (very very very!) basic solution is to use a Groovy, because it's easy to write, easy to read, and easy to use!
(more...)

Configuring Hibernate and Spring for JTA

Posted by Maarten Winkels mid-afternoon: July 18, 2008

Spring is a great framework for dependency injection and it comes with a lot of support classes and utilities for all kind of things. Hibernate is a persistence service with a lot of useful features, that is relatively easy to use. Configuring both frameworks is not always easy. Configuring them together is sometimes hard and it is easy to make mistakes.

This blog addresses a problem in a configuration that is fairly common: use Spring for transaction management on top of a JTA provider and use Hibernate for persistence. Transaction demarcation is easy and declarative with Spring. The problem is that Hibernate sometimes needs to detect the current transaction and this needs to be configured. This leads to hard to detect bugs in applications that rely on auto flushing.
(more...)

Commitment

Posted by Erwin van der Koogh mid-afternoon:

A few weeks ago I was asked to explain Scrum and how our Agile Offshore Delivery Model works to one of our new sales guys.

During the session he asked me the question: "What does a client have to do to make a project done this way successful?"

(more...)

When not to refactor

Posted by Lars Vonk around lunchtime:

Refactoring is part of a software developers work. General rule of thumb I always used is if you see code that smells (for instance duplication) you should refactor. But does this rule always apply? Are there any situations when you should not refactor? And if so, how do you recognize those situations?

(more...)

Back to the 80’s…

Posted by Twan van Enckevort in the early afternoon: July 15, 2008

Overview of the CTA display and the PC that runs the socket server allowing tcp/ip access to the display

One of the challenges we are facing in our project is connecting antique display devices to the brand new travel information system we are building. If you have traveled by train in the Netherlands you are familiar with them: large displays with booklets for destinations and departure times. It contains a number of booklets which are controlled by a stepper engine. The devices are called CTA's, were developed in the eighties and are a solid piece of engineering. Behind the track indicator, which doubles as a door, is a temperature control for the heating, a power socket for connecting electrical equipment, a telephone socket and a connector for testing. Oh yes, did I mention it is heavy?

(more...)

Moving to India. Step 5: Visa

Posted by Maarten Winkels in the early morning: July 14, 2008

Working abroad has been a wish of mine for some time now. Xebia offers me the opportunity to live and work in India. Through this blog series I will keep you informed of the progress and challenges of this project.

The next step to moving to India is getting an Employment Visa. On all of our previous trips we used business visa, which are valid since while we’re working in India with our colleagues there, we’re not actually employed there. In this case, since I’m going to be employed in India, I need an employment visa. Getting one from the Indian Embassy in The Hague takes some time and effort.
(more...)

How to manage Scrum and the Loaner Specialist

Posted by Eelco Gravendeel just before lunchtime: July 11, 2008

Multidisciplinary teams are fine and all that, but how to go about true specialists in the project … where do they fit in? I would like to talk a bit about Specialists who are required to do work for the team, but do not have enough tasks or time to actually be part of the team. First I will show why it is just not practical or feasible to make some people fulltime team members. After that I will drop some ideas on how to handle these situations.

(more...)

maven-dashboard-plugin 1.1 released

Posted by Lars Vonk in the late evening: July 10, 2008

A new version of Xebia's open source maven-dashboard-plugin has been released. This version fixed some bugs. A quick guide on how to use the dashboard in your project please read this blogpost.
Keep an eye on this blog or checkout the roadmap in Jira for upcoming releases.

Lean Software Development Methodologies: Tom and Mary Poppendieck

Posted by Abhishek Agrawal terribly early in the morning: July 9, 2008

July 06: Xebia India IT Architects hosted a session by The Poppendiecks.
I was fortunate to be one of the participants as well as the organizer of their North India trip. Having practicing Lean, Scrum and XP for quite some time now, it was a nice experience to measure our understanding of these concepts against the "creator's definitions". Here I take you on a quick(??) trip to the session through my eyes...

(more...)

(Some) Secrets of DoFixture revealed

Posted by Maarten Winkels late at night: July 8, 2008

For automated acceptance testing we use the Fitnesse framework. Fitness is a Wiki page that enables testers to write executable tests as Wiki pages. Wiki pages are made up from text as comments and tables as tests. To integrate the tables with the application code, developers write Fixtures. Fixtures are a very thin layer of software that invoke application code and can be exposed on the wiki. The system is very easy to use.

There are a number of useful fixtures included in Fitnesse, but by far the most useful fixture comes from a separate library (FitLibrary): The DoFixture. A DoFixture exposes every public method as a row in a table. Every odd cell in the row is a part of the method name and every even cell is a parameter. This makes the table easy to read. The row

train 123 leaves Amsterdam station at 12:00 to Utrecht Centraal station

will thus invoke the method trainLeavesStationAtToStation(‘123’, ‘Amsterdam’, ’12:00’, ‘Utrecht Centraal’). As you see, the words in the odd cells are concatenated in camel case.

Unfortunately not all features of this fixture or the Fitnesse framework are well documented and easy to find. This blog will list a number of features that can improve the efficiency of using Fitnesse. The features shown are fixture loading, parse delegates and system under test. To enhance the usefulness of the last feature, we will also look at some improvements.

This blog is based upon the same version of fitnesse and fitlibrary as the "Fit for Developing Software" book.

(more...)

Next Page »