Open source reader

Thursday, April 27, 2006

yet another "The decline of J2EE Application Servers" yadi yada

Code futures published an entry where they give their view about the decline of the J2EE applications servers.
They give the following points:
  1. Too complex for most problems
  2. Scalability and performance problems
  3. Commoditization
  4. The rise of SOA
  5. Relax, change is constant
For me points 1. and 5. are killers.
But one thing is for sure: J2EE application servers are here to stay, but as a tool to resolve specific problems ... basically what it was designed for !

a *must* read : State of the Art in Server Side Java

Mats Henricson has a new version of his great doc State of the Art in Server Side Java

Here's the contents of the new version of the document:

* Annotations
* Dependency Injection
* Hibernate today
* EJB 3.0 Entity Beans
* EJB 3.0 Session and Message Driven Beans
* AOP with annotations
* New stuff in Tiger, Mustang and Dolphin
* WS annotations
* JAXB 2.0
* Scripting languages

Thanks to Mats for this document and ... happy reading !

Monday, April 24, 2006

A simple Spring bean retrieval convention

In his blog entry Ryan was talking about its switch to spring, and used such code for bean retrievals:
UserDAO dao = (UserDAO)DAOFactory.getDAO(DAOFactory.USER_DAO);

srini added a nice comment I am sharing with you

Typically, I just name the spring beans after the interface they represent for example...

<bean id="com.foo.BarRepository" class="com.foo.BarRepositoryJDO">
<constructor-arg><ref bean="javax.jdo.PersistenceManagerFactory" /></constructor-arg>
</bean>


So, when I have to look them up, I go...

beanFactory.getBean(BarRepository.class.getName());

Makes life easier while re-factoring as well. What conventions do you use ?
Like for log4j I do not like using such methods, I find the getName() not adding any value, Why not giving only the class ?

beanFactory.getBean(BarRepository.class);

Unfortunately it is not handled in the api...

The Harsh Reality of an IT Project Life Cycle

from slashdot.org

Phase 1: Uncritical acceptance.
Phase 2: Wild enthusiasm.
Phase 3: Dejected disillusionment.
Phase 4: Total confusion.
Phase 5: Search for the guilty.
Phase 6: Punishment of the innocent.
Phase 7: Promotion of nonparticipants.

:)

Blind usage of pojo and lightweight framework considered evil ... by Pojo book writer.

I found an interesting blog entry What's on your bookshelf?
Beside the funny (and usefull hint) about looking at the bookshelf whenever you go at a client's place here what he read on "Pojo in action"
Chris encourages the reader to think for themselves, and not just rely on fashion and propaganda: "If we blindly used POJOs and lightweight frameworks, we would be repeating the mistake the enterprise Java community made with EJBs".
As making a blind usage of anything seems like a very bad move, I would like to see what he specificaly meant...

5 things I do not like in blogger

Here is my list:

  1. Captcha everywhere
  2. Publishing is very slow
  3. Html editor is too basic
  4. Default templates are a mess
  5. Calendar to select posts is missing

... basically I am already ready to change.

When to use AOP ? For things your system can live without !

I do not remember neither were I read it... nor the exact sentence, but basically it was something like
"use aspects for things your system can live without"
Pick the 3 most obvious usage for AOP
  • Caching
  • Security
  • Logging
This make a lots of sense to me ...

Java servlet filters are AOP to me also, take the filters you are currently using ...
I bet your system could live without ...

Sunday, April 23, 2006

Have you taken the time to review "trac" ? No ? You should !

Have you taken the time to review trac at http://www.edgewall.com/trac/ ?
It is a all in one application giving you in a simple, integrated and consice way:
  • wiki
  • issue tracker
  • project timeline
  • code browser
  • changeset viewer
  • project reports
Excerpt:

Trac is an enhanced wiki and issue tracking system for software development projects.

Trac uses a minimalistic approach to web-based software project management. Our mission; to help developers write great software while staying out of the way. Trac should impose as little as possible on a team’s established development process and policies.

Did I mentionned it is free ? Maybe not, but I remembert writing consice ! That's so important for such application.

Screenshots are on your right, details on your left.

2 things I hate about sourceforge (... and 2 things I like)

1- the cvs is often down
cvs down ?? for 3 days in a row ? 5 days in a row !?
No way ! This is a stopper ! Final word.

2- it is full of empty projects
Ever had this story ?
You look for a project and find a couple of matches, they have nice descriptions...
You now have a big smile on your face, you are thankfull to the sf.net site and its opensource community !
You are ready to dig into these projects
... and
... and
... and there is nothing in this project except this yummy description !
Holly crap this is so frustrating !


but

1- it exists, and was key of the opensource boom
2- it is free

6 Java sourceforge projects you may find interesting (Spring/Hibernate/...)

Here is a list of java sourceforge projects I went into that I found interresting, by interresting I mean new ideas, nice code, good ant scripts etc

Here a mini list
  • jag : JAG - the Java Application Generator - is a 100% Java application that generates working projects containing complete, best-of-breed J2EE applications.
    • What I liked: template based generator, you can modify the templates for you own needs
  • Tudu lists : Tudu Lists is a J2EE application for managing todo lists. It's based on JDK 5.0, Spring, Hibernate, and has a state-of-the-art AJAX interface (using the DWR framework). It's easy-to-use, fast, pretty, and on the Web.
    • What I liked: Transaction, clean code, nice ideas to grab
  • SpringSide : Pragmatic Enterprise Application KickStart and Common Library Stack. Use Spring Framework as core,provided a enterprise application develop platform and demo the best practice in enterprise application.
    • What I liked: clean code, some ideas to grab
  • Open ERP The OpenERP is an enterprise management software written in Java. It uses state-of-art technologies and patterns, as: JSF, Hibernate, Spring, Acegi, AJAX, Axis and Maven. We also use BaseGen for generating code from UML. Join us, join this SW challenge.
    • What I liked: clean code, some ideas to grab
  • CoreCRM Free CRM software based on Hibernate,spring,WebWork etc.It also use workflow to control businesstransacion flow
    • What I liked: looks like appfuse generated code, use freemaker
  • OAJ (OpenAccountingJ) OAJ (OpenAccountingJ) aims to be a complete small-business Accounting/mini-ERP suite. Built in Java utilizing Spring/Hibernate/Acegi Security/Jasper Reports and other open-source components. OAJ replaces the existing OpenAccounting PHP.
    • What I liked : quite a big project, quite clean, some ideas to get, especially the jasper reports
The little story behind this list, is that it is very difficult to find clean project code in sourceforge !