Thursday, 25. October 2018
Von Nixdorf zur Cloud City
"Wer nicht mit der Zeit geht, muss mit der Zeit gehen." (Stromberg)
Java aktuell 06/2018Nachdem ich bereits im Juli auf dem Java Forum Stuttgart mit meiner Kollegin Dorothee Boos von unseren Erfahrungen beim Umbau der Altlasten aus der Nixdorf-Ära in eine moderne Cloud-Architektur berichtet habe, gibt es jetzt im Heft 06/2018 der Java aktuell einen Kurzfassung auf die technischen Aspekte des Umbaus.

Von Magnetbänder als Nachfolger von Lochkarten konnten wir uns glücklicherweise verabschieden, dennoch haben wir noch einen weiten Weg vor uns und vieles dauert länger als geschätzt. Aber egal wie lange es dauert oder dauern wird, das Wichtigste für diesen Weg ist es, eine Vision davon zu haben, wie das künftige System aussehen soll und danach seine Planung auszurichten.

Noch ein kleiner Nachtrag zum Artikel: leider sind die Autoren-Info veraltet. Die aktuellen Autoren-Infos sind z.B. unterhalb der Folien zum Java Forum Stuttgarts zu finden.

Viel Spaß beim Lesen

... link (0 Kommentare)   ... comment


Thursday, 11. January 2018
gdv.xport 3.0
Neben diversen Bug-Fixes ist es vor allem die Aktualisierung auf die 2015er-Version der XML-Beschreibung der GDV-Datenstruktur und die Aufteilungen in einen Bibliotheks-Teil (gdv-xport-lib) und einen Service-Teil (gdv-xport-service), der den Sprung 2.1.3 auf 3.0 gerechtfertigt. Der Service-Teil stellt einige REST-Services bereit, sodass auch von anderen Programmiersprachen auf die Bibliotheksfunktionen zugegriffen werden kann.

Der Service-Teil basiert auf dem Spring-Framework und beinhaltet auch eine einfache Web-Oberfläche. Er kann mit

java -jar gdv-xport-service-3.0.0.war

gestartet werden und bietet dann unter Port 2517 seine Dienste an. Wer nur mal kurz reinschnuppern will, findet zeitweise auf Heroku unter gdv-xport-300.herokuapp.com eine Demo-Version.

Weitere Infos finden sich auf GitHub...

... link (0 Kommentare)   ... comment


Monday, 1. January 2018
Happy New Year 2018
“ Das Jahresende ist kein Ende und kein Anfang, sondern ein Weiterleben mit der Weisheit, die uns die Erfahrung gelehrt hat.”
(Hal Borland)

... link (0 Kommentare)   ... comment


Sunday, 24. December 2017
Merry Christmas
Merry Christmas

... link (0 Kommentare)   ... comment


Thursday, 9. November 2017
20 Jahre JUGS, 20 x Java Forum
Am 6. Juli 2017 fand zum 20. Mal das Java Forum Stuttgart ab, auf dem es in 6:40 Minuten eine Zusammenfassung der letzten 20 Jahre gab. Wem das zu schnell ging (oder wer den Pecha-Kucha-Vortrag verpasst hat), kann die wichtigsten Fakten in Ausgabe 05/2017 von Java aktuell nochmal nachlesen.

Viel Spaß beim Rückblick mit dem Auszug aus javaaktuell052017 (pdf, 849 KB) auf die letzten 20 Jahre...

... link (0 Kommentare)   ... comment


Sunday, 17. September 2017
Clean-Code bei der JUGS
Am Donnerstag hat die JUGS zusammen mit der Softwerkskammer zum Clean-Code-Abend im Gerber eingeladen, nachdem uns brigding IT freundlicherweise ihre Räumlichkeiten zur Verfügung gestellt hat. Als Auftakt gab es einen recht unterhaltsamen Vortrag von Sven Strittmatter, gefolgt von einer Vorstellung der Softwerksammer Stuttgart von Daniel Georges.



Vor dem gemütlichen Teil galt es noch die Frage zu klären, ob weiterhin das monatliche Treffen der Softwerkskammer im Shackspace stattfinden soll, oder ob die Räume der bridging IT im vierteljährlichen Rhytmus eine Option wären. Die Auszählung der Wahl-Schokolade ergab folgendes Bild für den Ort:
  • ca. 25% wünschten sich weiterhin das Shackspace als Treffpunkt.
  • ca. 75% wollten ins Gerber.
Auf die Frage „Wie oft?“ war das Bild nicht ganz so einheitlich:
  • ca. 37% waren für monatlich,
  • ca. 63% waren für vierteljährlich.
Die Zahlen sind etwas mit Vorsicht zu genießen, weil zum einen ca. 10% Schwund bei der Wahlschokolade zu verzeichnen gab, und zum anderen nicht auszuschließen ist, dass auch der Schokoladen-Typ das Abstimmungsergebnis beinflusst haben könnte. Aber es zeigte sich doch ein Trend zum Gerber und zweimonatlichem Rhythmus.

Wie geht es jetzt weiter? Am besten regelmäßig bei der Softwerksammer Stuttgart vorbeischauen, dort werden dann weitere Veranstaltungen angekündigt werden.

... link (0 Kommentare)   ... comment


Saturday, 29. April 2017
Rückblick auf #StTT2017
Bereits zum 5. Mal fanden die Stuttgarter Test-Tage statt, dieses Mal im Businesspark Stuttgart. Am ersten Tag gab es dort zwar noch Probleme mit der WLAN-Geschwindigkeit, aber am 2. Tag hatten wir dann dank einer zusätzlichen Netzwerkdose und fliegender Verkabelung mehr Speed.

Das Konzept der letzten Jahre hat sich inzwischen bewährt: morgens mit den Vorträgen der theoretische Teil und nachmittags mit den Workshops der praktische Teil. Hier fehlte etas die zeitliche Vorgabe, wann ein Thema gewechselt werden kann, was wir für die nächsten Testtage verbessern wollen.

Positiv wurde von den Teilnehmern auch aufgenommen, dass man genügend Zeit hatte, sich mit anderen Teilnehmern auszutauschen. Dazu diente auch der Social Event am Donnstag Abend, der von vielen Teilnehmern auch dazu genutzt wurde.

Auswertung Fragebogen

Kriterium sehr gut (1) gut (2) befr. (3) (4) (5) Schnitt
Umfang 4 12 1 1,82
Stoffvermittlung 6 10 1 1,71
Lernklima 9 5 3 1,65
Übungen 4 5 7 1 2,29
Räumlichkeiten 1 7 6 3 2,65
Gesamteindruck 2 13 2 2,0

Ein großen Anteil am positiven Feedback hatten vor allem die Referenten, die von der Teilnehmern als hilfsbereit und kompetent beschrieben wurden. Bei den Räumlichkeiten besteht noch etwas Optimierungsbedarf - vor allem bei der Geräuschkulisse und (W)LAN-Anbindung.

Statistisches

Ca. 40% der Teilnehmer waren Tester, der Rest überwiegend Java-Entwickler. Die weiteste Anreise war von Hamburg (672 km), gefolgt von Wien (662 km). Der jüngste Teilnehmer war 23. Und es waren die Test-Tage mit den meisten Lego-Steinen.

Fazit

Für die nächsten Test-Tage gibt es noch Verbesserungs-Potential, trotzdem zogen viele Teilnehmer eine positive Bilanz und wollen in 2 Jahren wiederkommen. Daran hatten vor allem die Referenten einen großen Anteil, denen hier mein ganz besonderer Dank gilt.

Bilder

... link (1 Kommentar)   ... comment


Friday, 14. April 2017
Easter Eggs testen
Easter Eggs haben eine fast 40-jährige Tradition in der SW-Entwicklung. Als erste Software gilt Adventure aus dem Jahre 1978 für den Atari 2600, in der sich der Entwickler in einem geheimen Raum verewigt hatte - mangels anderer Alternativen.

Aber auch heute werden gerne noch Easter Eggs in Software und im Web versteckt - nicht nur zu Ostern. So können angehende Piloten mit Google virtuell ein do a barrel roll starten - einer Figur aus der Fliegerei.

Auch schön ist die umgekehrte Google-Suche mit elgooG - hier gibt es viel zu entdecken - ideal, um sich die Zeit bis zu den Stuttgarter Test-Tagen 2017 (#StTT2017) zu vertreiben.

Frohe Ostern

... link (0 Kommentare)   ... comment


Thursday, 2. February 2017
gdv.xport 2.0
Da es vor allem in der Bezeichner-Klasse größere Änderungen gegeben hat und einige als "@Deprecated" markierte Elemente aufgeräumt wurden, folgt jetzt auf 1.1 die Version 2.0 der gdv.xport-Bibliothek.

gdv.xport ist eine Java-Bibliothek, die den Umgang mit dem GDV-Format erleichtert. Weitere Infos zu dieser Bibliothek finden sich unter aosd.de/gdv.xport/.

... link (0 Kommentare)   ... comment


Saturday, 7. January 2017
PatternTesting 1.7 released

Most changes of PatternTesting are under the hood: switch to Java 7, switch to Log4J-2 as logging framework and better exception handling in FileTester - if a file cannot be found, it is checked if it can be a case sensitive issue. This happens often if the build runs on a Linux server with case sensitive filenames.

A bigger change was the implementation of feature request 49. You will now be warned if you forget a commit after an database insert or update (see also blog entry from September).

Another change was the split of the ClasspathMonitor into ClasspathMonitor and ResourcepathMonitor. For more info about the ClasspathMonitor see the blog of August 2009.

... link (0 Kommentare)   ... comment


Monday, 2. January 2017
Happy New Year 2017
“Ich kann freilich nicht sagen, ob es besser wird, wenn es anders wird, aber soviel kann ich sagen: Es muss anders werden, wenn es gut werden soll.”
(Georg Christoph Lichtenberg)

... link (0 Kommentare)   ... comment


Friday, 23. September 2016
JDBC: Don't Forget to Commit
If you want to save something in a database with pure JDBC you would normally
  1. take a connection,
  2. create a statement with it,
  3. execute the statement and
  4. close the connection.
Have I something forgotten? Don't know - so lets try it. Point 1 could be done by asking the Driver class, a connection pool or another kind of provider:
Connection connection = connectionProvider.getConnection();
With this connection you can call a method which uses this connection to save e.g. an address:
private static void save(Address address,
        Connection connection) throws SQLException {
    PreparedStatement stmt = connection.prepareStatement(
            "INSERT INTO addressbook (email, name, "
            + "city) VALUES (?, ?, ?)");
    try {
        stmt.setString(1, address.getEmail());
        stmt.setString(2, address.getName());
        stmt.setString(3, address.getCity());
        int rc = stmt.executeUpdate();
        if (rc < 1) {
            throw new SQLWarning("cannot save " + address);
        }
    } finally {
        stmt.close();
    }
}
As last point you close the connection in the calling method:
connection.close();
Does it work? In most cases yes, because normally the auto-commit flag is on, if you get a connection. But what happens, if auto-commit is off?

Auto-Commit Off = Lost Data

If auto-commit for a connecion is off you must call excplicit the commit:
connection.commit();
If you don't do it your changes are lost (there are some exeptions from that rule - the Oracle DB does a commit before it closes the connection).

The problem with this "forgotten" commit is, that no warning or exceptions comes up and you do not notice the lost data. This makes it hard to find the error - especially if the auto-commit is off only in same special cases.

The PatternTesting Proxy-Driver

PatternTesting provides you a wrapper around the original driver which allows you to log SQL statements but which warns you also if you forgot the commit statement for a connection with auto-commit off:

1 entries were updated with 'INSERT INTO addressbook (email, name, city) VALUES ('ob@aosd.de', 'Oli B.', 'nowhere')' but not committed.

This is the message you will see in this case. You only have to change the JDBC-URL and put ":proxy" after the jdbc prefix:
DriverManager.getConnection("jdbc:proxy:hsqldb:mem:testdb")
This is the URL for an HSQL memory DB. For more information see the Wiki article about SQL Logging and Monitoring.

Happy Debugging...

... link (0 Kommentare)   ... comment


Friday, 6. May 2016
Update auf Sonar 5.5 (Ubuntu 14.04)
Nach einem Udpate von SonarQube 5.4 auf 5.5 war mein Sonar-Server nicht mehr erreichbar. Was war passiert? Die Auswertung des Log-Files brachte folgende Zeile zu Tage:
    Unsupported mysql version: 5.5. 
    Minimal supported version is 5.6.
Dummerweise ist bei Ubuntu 14.04 LTS MySQL 5.5 die Default-Einstellung. Glücklicherweise läßt sich aber mit
    apt-get install mysql-server-5.6
MySQL 5.6 als Default einstellen - damit gab sich SonarQube zufrieden und verweigerte nicht länger seinen Dienst.

... link (0 Kommentare)   ... comment


Wednesday, 24. February 2016
First Law of Software Archaeology
Do you know that? You have to maintain some old programs and you are wondering what the hell is that piece of code doing. Why does it work? And where is the architecture of that damn software system you should adapt for the future?

Welcome to the world of software archaeology, also known as legacy code. The first law of software archaeology from Mitch Rosenberg (see Wikipedia) gives you good feeling about the trouble in digging in old rotten code:
Everything that is there is there for a reason, and there are 3 possible reasons:
  1. It used to need to be there but no longer does
  2. It never needed to be there and the person that wrote the code had no clue
  3. It still needs to be there and YOU have no clue
The corollary to this "law" is that, until you know which was the reason, you should not modify the code (or data).
And if you would like to learn some ancient language of the beginning of the computer stone age watch this video:

... link (0 Kommentare)   ... comment