I made a change in the blogger configuration to ease the later work when blogging. It is possible that older entries are not correctly formatted.

Thursday, 3 November 2011

Windows Power Shell

As a linux user, I had always been frustrated that I must use a stupid command line to perform some task under windows. Or even worse, there were a lot of tasks I could even perform like that, because the commandline did not have any grep, find, and similar utilities.

This is until I discovered the powershell. Since I have to use windows at work and sometimes I do not even have the possibilty to use cygwin with suitable tools. I really got frustrated. But now that I looked into many of the power shell language, I must admit that it is quite impressive, what one can do with it. I also find it great that the powershell understands both pipes and objects...

I will probably add here many of the useful features I discovered. In someway I think Microsoft understood that they had to become more competitive in order to keep their customers.

GWT, SmartGWT and Testing

Automated testing is very useful, and would be even more useful, if it was much more easy. It seems though that the testing frameworks for web application as still not yet part of the tool box of web application developpers.

I hope this will help me to implement automated testing of web application.

I did some research on testing of GWT. It seems that it is possible to use selenium for GWT and for smart gwt. I must really get to this quickly.

CRISP Builds

For build architectures, it is useful to use a CRISP build:

  • Complete (recipe lists all ingredients)
  • Repeatable (version control time machine)
  • Informative (radiate valuable information)
  • Schedulable (complete and repeatable)
  • Portable (machine-independent)

In the latest project for which I worked we use a continuous integration system.
At some point, it can be annoying because we do receive a lot of uninteresting mails.
But once configured it is really good to insure quality and reproducable results.

As a developer, I know how easy it is to deploy something on the server,
which is not exactly what is on the server.

Performance in Java

For diverse purposes I wanted to take a look at performance benchmarks for diverse implementations of collections.

I came to the following free book: Java Performace Book

Moreover, for a project for which I am working we will be do performance measures in order to choose the best infrastructure
for our project. We will do some profiling using JETM or using JProfiler depending on which gives the best infrastructure for our goal.


Friday, 4 March 2011

Code Generation

Since my last project, I gained much interest in code generation. The application we were supposed to reimplement using GWT consisted of around 60 entities and had as many dialogs to be implemented. Moreover, the database schema we had was in german. Since we did not want our code to be a mix of English and German, we needed to create a lot of typical classes for this: entities, DAOs, business logic, service layer, controller as well as more or less straight forward dialogs.

Since I did not have any of my usual tools, I decided to create my own generator, which could generate simple (still to be edited!!!) versions of the diverse classes we needed. This went quite well except that I needed to write java code to perform these actions. So the first generation was somewhat of a procedural code generator. This was a tedious task which made it quite difficult to maintain the code in the always evolvin software infrastructure we had.

A more useful approach is template generation. However for templates to be adapted for such a task you need a template language capable of looping over fields and methods of the code model.

Interesting Topics for Code Katas

Since I discovered about Code Katas (?here link me please?), I played with the question as to know which code kata would be appropriate for me. The following is an extensible list of topics which should be covered by these Katas.

Code katas:


  • algorithmic katas
  • architecture patterns
    • View architecture pattern
      • MVC (Model view controller)
      • MVP (Model view presenter)
      • MVC
      • Formular Web page
  • Web Frameworks
    • JSF
    • GWT
    • RAP

  • Web Service and Gui library choice

  • javacript libraries
    • jquery
    • ext.js
    • dojo
  • Jpa and hibernate
    • jpa -> schema
    • schema -> jpa
    • query jpa
    • query plsql
    • query criteria

  • Aspects
    • logging
    • security

  • Testing
    • Unit Tests
    • GUI Testing
    • test coverage

  • Build framework
    • ant
    • maven
    • gradle

  • frameworks
    • spring
    • AOP
    • MVC
    • Web Flow
    • Security
    • hibernate
    • OSGi
    • roo
    • flex
  • scm
    • git
    • server
    • svn

Please do not pay attention to the formatting this should be improved soon.