Professional

JSXP 0.6 Released (or: Where is 0.5?)

JSXP 0.6 has been released today. The release contains some new features, like file uploads and application parameters. It also includes several bug fixes. The Javadoc Documentation is available here.

So, where is version 0.5, you might ask... We did not release one. While Oliver was already working on 0.6 we found some issues with the code which should have been 0.5, so we decided to skip 0.5 and fix all issues in 0.6.

Yet another mobile OS

Samsung is launching a new, open mobile operating system called Bada. It seems to be based on a proprietary OS they already have.

Is this the OS running on my YP-P2? If yes, it is definitely nice, but it would also need some improvements. For example, the touch screen handling (especially when scrolling) could definitely be improved.

Also, do we really need yet another mobile OS? We will see in 2010 if this really catches on.

Project Lombok

We are using Project Lombok in a large project, and I thought I should write a few lines about it. I think it is a really nice idea, but it also causes a lot of troubles. For those who don't know project lombok: It creates a lot of bytecode for you, you just have to annotate your java classes. For example, you can write a java class like:

@Data public class MyBean() {
    private final String foo;
    private String bar;
    private int foobar;
}

Project lombok will then create getters and setters for all private variables, a constructor to initialize all final fields, a nice toString() method and a correct hashCode() method. The cool thing is that it does not create any source code. Instead, project lombok hooks itself into the java compiler and creates the byte code for all these methods.

The bad thing about this is that it is an "ugly hack". They use undocumented features of the java compiler, and you need a special eclipse plugin to make compilation work in eclipse.

This eclipse plugin breaks some of useful features of eclipse:

  • It breaks CTRL+Shift+g: "References in Workspace" is a feature of eclipse I use really often. But since you don't have any get/set methods anymore, you can not invoke it from the code. Invoking this search from the quick outline (CTRL+o) doesn't seem to work either. You can invoke it from the outline view, but I normally don't have this view enabled, because my eclipse is already cluttered enough.
  • It breaks eclipse code generation: Generating code (like the serialVersionId or creating methods from an interface/abstract super class) doesn't work correctly anymore. All generated code is inserted before the beginning of the class.
  • It breaks refactoring: Refactoring is impossible. The only way you can change a lombok-property is by renaming the private variable, and then fixing all compiler errors where the old methods are called.
  • It breaks inheritance: A lombok @Data bean can not extend another @Data bean if the base class has final fields, because lombok doesn't create the correct constructor / super call in the derived class.

So, my conclusion is: While project lombok saves you from writing some boiler plate code, it causes more problems than it solves. Especially because I never write getters, setters, equals, hashCode or toString myselft: Eclipse does this for me, and it works fine.

Bad Justification

I don't like doing pointless things. Sometimes it's OK for me to do them anyway, for example when things which seem pointless to me are important to somebody else. Or when it is company policy to do things that way, and this policy could ne-ver be changed.

What really bugs me is when I talk to people who defined the way I have to do things, and their reaction is "I know it would be better to do it differently, but people would not get it right anyway". This is an insult to the people who have to do things, because you are basically saying that they are too dumb to do it right. And you are admitting that you don't even want to try. So, please don't say things like this.

Scrum Sprint

Yesterday, the second sprint of my current project started. It is my first scrum project, and I am really glad that I have the chance to work in one. I was always interested in Agile development, and scrum in particular, but so far I never had the chance to get hands-on experience. Now this is about to change - I am even considering to become a certified scrum master.

During the planning of the second sprint we had help from a well known scrum consultant: Andreas Wintersteiger. It's really helpful to have someone experienced who ansers all your questions. We now feel that we are much better prepared than during our first sprint. We now even have a task board:

Empty task board

This image is from friday, now the task board obviously looks completely different. In the first sprint we tried to manage the tasks with JIRA, which is quite good. But a real task board on the office wall is much better (more fun :) ). It's easier to see progress this way, and moving / resolving tasks is more communicative.

Syndicate content