Tuesday, June 12, 2012

Django Python

Well I watched django the western movies but this is certainly something else. Django is a framework based on python, mainly build to serve web pages or services but has some other nice features. I used Aptana Studio which provides pydev and django plugins which make it very easy to setup project and develop with Eclipse. Using python is similar to perl, without modules you can't do real applications, however this is as well the nasty bit as to get the right modules on your OS can be quite tricky. I tried some distributions but I decided to use ActiveState Python as it provides easy access to modules free of charge on Windows. On Unix it is a bit easier but ActiveState is cerntainly a good choice as well. On Windows you have to use the 32bit distribution as the modules for the 64bit are restricted to a valid subscription at ActiveState. Key modules are the database modules and of course Django. After installing them you can move on with Aptana and development. The nice bit is the administration framework and the ORM feature of Django. It is easy to reverse engineer an existing database (like the yafra database) and start off immediately.

A simple python standalone and Django application is available.

https://www.djangoproject.com/
http://www.python.org/

Monday, April 23, 2012

Excel and PDF creation

What to use for excel or PDF generation ?

PDF - Apache PDFbox http://pdfbox.apache.org/
XLS - Java Excel API http://jexcelapi.sourceforge.net/
XML and XLST - Apache FOP http://xmlgraphics.apache.org/fop/
Office - Apache POI http://poi.apache.org/

or use of a reporting engine like BIRT or OpenReports

Sunday, April 1, 2012

Apache Wicket

Apache Wicket is a servlet based web toolkit using the model view control architecture. The beauty is the clear separation of gui design / markup using HTML/CSS and the logic by using pure Java.

Working with detachable models enable easy usage of your database data within the provided widgets. Standard functionality is available to build session based web application. You can as well integrate Ajax functions, there is an integration to JQuery.

Wicket offers a very nice set of widgets and data tables/views.

The yafra example shows a small application which is similar to the RCP fat client set up. It uses Apache Cayenne on the back which integrates well with Wicket.

One careful consideration during design must be the influence of threads and Apache Cayenne. Cayenne context can be easily managed through a Cayenne Filter (which must be the first filter entry in your web.xml).

Links:
Yafra Wicket example: http://sourceforge.net/apps/trac/yafra/wiki/Wicketclient
Wicket: http://wicket.apache.org/

Saturday, March 17, 2012

Kindle

In order to get all needed knowledge books and papers are still an important part, beside surfing around the web. Even being on the road it is easier to read a book/paper.


I chose to buy a kindle and to use the kindle apps on my apple devices and on the pc and I have to admit that it is a very mature technology. Your markers and bookmarks get synchronized across all apps/devices and you can add your own books as PDF's or MOBI. Even on those "personal" files notes and highlights get synchronized!


I bought some books from amazon but I bought as well directly from O'Reilly and Packt Publishing as they provide MOBI and PDF at the same time and with some more services or even cheaper than on amazon. It works great to include them as "personal" files. There is even a kindle upload app for windows which integrates with the explorer and is very easy to use.


Great tool and service.

Tutorials

In order to pick up the technologies around Java, Eclipse and others please follow the tutorial on http://www.vogella.de/tutorials.html

They provide an excellent starting point and in depth information.

Lars Vogel covers with his tutorial most of the technologies used within the YAFRA framework. Great work !

Saturday, March 10, 2012

RESTful and web services test clients

In order to easily test you RESTful services we recommend to use the java application  http://rest-client.googlecode.com/

An easy to use java application which lets you make all sorts of http calls and gives you all details in a structured way.

Similar to the eclipse web services explorer to inspect and test a web service (started by Run->Launch the web services explorer).

Both of those "clients" allow you to test your services without coding a client.

Usage of Apache TomEE

Starting situation: we have some EJB's using Apache Cayenne and want to provide some web services or RESTful services hosted on an application server. Geronimo, Jonas et al are all quite complex and a more simpler server would benefit for small applications or development environments.

Approach: having used already OpenEJB with Apache Cayenne brought our attention to the new Apache TomEE. As we wanted to use as well Apache CXF in order to provide JAX-WS/RS services the usage of Apache TomEE Plus caused quite some issues with CXF. TomEE Plus has bundled CXF however using CXF from its original distribution is more desired. So switching back to the "Web Profile" and the using CXF out of the box brought the desired environment. Deploying of a war containing the EJB jar and all the rest had the right effect. EJB's were available like you would deploy them through an EAR directly to OpenEJB and the access was available as http://127.0.0.1:8080/openejb/ejb.

All in all this seams to be the right setup and runs easily on Unix and Windows. As of writing Apache TomEE was just released as 1.0 Beta 2. See yafra wiki for more information on setup and development.

Friday, March 9, 2012

Milestone 2 development hosting platforms - 2012 edition

To support the development of Milestone 2 (M2) I updated to most recent tools (as of Q1 2012). All the setup descriptions have been updated on the yafra trac wiki.

Ubuntu Linux
 The current platform is 11.10 with the desktop edition as 64 bit build. As I will not use Adobe Flash (which is still an issue with linux 64bit) or any other special software I can use full advantege of 64 bit. In addition to the standard setup I have chosen Java-Sun JRE and JDK, Mysql Server and Client, Gimp, Chromium, Putty, Filezilla, Adobe Acrobat, Mysql Browser and Admin. I have enable Medibuntu and installed VLC and I have setup the standard Yafra development environment for M2 directly from external resources (I did not install the Eclipse that comes with Ubuntu). In addition I installed Mysql Workbench from mysql.com.

Windows
I have chosen Windows 7 64 bit build. I have made a setup as on Ubuntu. Beside Eclipse I use Textpad as a notepad replacement.

On the server side I used a small Ubuntu Server 12.04 LTS within a VMWARE environment and used mysql, derby, tomee and openreports on it.

As a new experiment I started to use a QNAP TS4xx NAS with ipkg and mysql 5.1 and tomee, works pretty well.

For more information on the standard M2 development tools used please see the Wiki.