Archiv für die Kategorie „Programmierung“

Umsetzung von groetschelgruppe.de

Mittwoch, 10. März 2010

Die Internetseite Grötschel GmbH wurde Anfang diesen Jahres gründlich überarbeitet. Das Design stammt von der Chairlines Medienagentur, welche mich mit der Umsetzung beauftragte. Auslöser war, dass das bisherige CMS den Ansprüchen an die Seite nicht mehr gerecht wurde. Die Umstellung auf WordPress ermöglicht dem Kunden ein komfortables Bearbeiten der Seite und eine Vielzahl neuer Möglichkeiten und Funktionen.

Die Grötschel GmbH existiert seit 1853 und bietet Leistungen in den Bereichen Metallbau, Industriemontagen, Automatisierung, Instandhaltung und Projektmanagement.



Umsetzung von atz-welzow.de

Samstag, 6. Februar 2010

Das Archäotechnische Zentrum Welzow päsentiert sich seit Anfang diesen Jahres im Internet. Die Umsetzung des Designs als WordPress-Theme erfolgte dabei durch mich.

Ein besonderer Hingucker sind Navigation und Galerieauflistung, die mit JavaScript-Effekten Verfeinerung wurden.



Weiterentwicklung von Museo

Freitag, 15. Januar 2010

Bei der OpenSource Archivierungssoftware Museo arbeitete ich Ende 2009 an der Optimierung der Benutzerfreundlichkeit mit. Nach vierjähriger Nutzung in den Museen des Landkreises Spree-Neiße wurden Arbeitsabläufe analysiert und durch eine Anpassung der Benutzeroberfläche der letzte Feinschliff verpasst. Ich war bereits an der initialen Entwicklung beteiligt und freue mich, dass die Software so gut angenommen wird.

Schwerpunkt der Arbeiten war die Anpassung der XHTML+CSS Benutzeroberfläche. Zusätzlich sind einige JavaScript Funktionalitäten hinzugekommen, die ein schnelleres Arbeiten ermöglichen. Natürlich musste für diese Anpassungen auch die PHP-Logik modifiziert werden. Um für weiter Anpassungen eine saubere Zustand abzuliefern, wurde ein Refactoring Schritt eingefügt, bei dem bestehende JavaScript-Funktionen und einige XHTML-Struktur überarbeitet wurden.

Das Museo Projekt ist auf Initiative des Landkreis Spree-Neiße und der DIAS Niederlausitz entstanden. Das Unternehmen CDS-Spremberg wurde 2005 mit der Entwicklung betreut und engagierte sich für die Veröffentlichung der Software unter der OpenSource-Lizenz GPL. Museo Kurzbeschreibung von der Projektseite:

Die webbasierte Archivierungs-Software MUSEO ermöglicht es, Exponate und Inventar von Museen digital zu erfassen, zu verwalten und synergetisch nutzbar zu machen. Die browserbasierte Software verwaltet die Daten aller Nutzer auf einem zentralen Server. Speziell eingebaute Sicherheiten und Verschlüsselungen bewahren die gespeicherten Daten. So werden alle Eingaben vor externen und internen Angriffen und Zugriffsverletzungen wirksam geschützt. Die Programmierung von MUSEO erfolgt auf der Grundlage moderner Standards und wird unter der Open-Source-Lizenz der GPL (GNU General Public License) veröffentlicht. Dadurch entstehen keine benutzerabhängigen Lizenzkosten.



Podcast des GWBB: Jahr der Stille

Sonntag, 13. Dezember 2009

Manchmal sind es die kleinen Aufträge, die besonders Freude machen. So jedenfalls war es bei der Erweiterung der GWBB-Internetpräsenz um einen Podcast zum “Jahr der Stille”, die ich vor kurzem umgesetzt habe.

Das Projekt “Jahr der Stille” ist im gerade begonnenen Kirchenjahr angelaufen. Auf der Internetseite zum Jahr der Stille wird eine kleine Einleitung gegeben:

Das „Jahr der Stille 2010“ will helfen, Balance zu finden. Ein gesundes Gleichgewicht zwischen Arbeit und Ruhe. Gottes faszinierenden Lebensrhythmus entdecken, den er selbst in uns angelegt hat. Neue Impulse bekommen über das fruchtbare Wechselspiel von Aktion und Stille. Stille einbauen lernen in den ganz normalen Alltag von Beruf, Familie und Gemeinde.

Das GWBB will mit der Bereitstellung von, etwa wöchentlich erscheinenden Kurzgeschichten, das Angebot zum “Jahr der Stille” ergänzen und Besuchern der Seite eine einfache Möglichkeit geben, dabei zu sein.

Wer gern reinhören möchte, hier geht’s zur Seite.

Die technischen Aspekte: Die bestehende Umsetzung mit WordPress musste etwas angepasst werden, damit die MP3-Dateien auf redaktionell einfachem und gewohntem Wege eingebunden werden können. Jeder Podcast-Eintrag wird als WordPress-Artikel umgesetzt. Damit die Einträge nicht auf der Startseite erscheinen werden sie einer Podcast-Artikel-Kategorie hinzugefügt. Diese Kategorie wird auf der Startseite ausgeblendet. Durch die Möglichkeit Kategorien auch aus dem RSS-Feed herauszufiltern, lässt sich für den Podcast ein eigener Feed bereitstellen.



Hibernate mit c3p0 nutzen

Donnerstag, 9. April 2009

Hibernate ICONHibernate ist eine Java-Bibliothek die zum object-relational-mapping genutzt wird. Ich benutze diese Bibliothek in einem kleinen Java-Projekt mit einer MySQL-Verbindung zum Server eines Webhosters. Bis vor einigen Wochen bin ich damit ganz gut durch gekommen. Dann wurde das Webhosting zu einem anderen Provider verlegt und ich bekam ständig Fehlermeldungen weil die Verbindung zum Server zusammenbrach.

Wie sich herausstellte ist beim neuen Provider der MySQL-Server anders konfiguriert, der Wert “wait_timeout” ist hier auf 120 Sekunden gestellt. Sobald meine Hibernate-Verbindung also länger als 2 Minuten keine Aktion ausführt, wird die Verbindung abgebrochen und eine Exception geworfen. Wie kann man das nun am elegantesten verhindern?

Es gibt einen sehr einfachen Weg dieses Problem zu umgehen, dazu wird die c3p0-Biblithek genutzt die Hibernate praktischerweise gleich in die eigene JAR integriert hat. c3p0 dient dazu einen sogenannten Connection-Pool zu erstellen. Dieser Connection-Pool soll uns aber gar nicht weiter interessieren, wer mehr zu den Vorzügen eines Connection-Pools erfahren möchte kann dies hier tun.

Um c3p0 einzubinden können folgende beispielhafte Zeilen in der hypernate.cfg.xml ergänzt werden:

<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">20</property>
<property name="c3p0.timeout">1800</property>
<property name="c3p0.max_statements">50</property>

Der Vorteil von c3p0 liegt darin, dass es vor der nächsten Aktion einen Überprüfung der Verbindung durchführen kann. Dazu kann man die Konfigurationsvariable “testConnectionOnCheckout” auf “true” setzen.

<property name="c3p0.testConnectionOnCheckout">
    true
</property>

Diese Konfiguration ist allerdings sehr “teuer” da vor jeder Transaktion die Verbindung getestet wird. Deshalb wird empfohlen statt dessen “idleConnectionTestPeriod” zu nutzen, welches einen Verbindungstest nach x-Sekunden durchführt. Erweiterte Einstellungen sind mit “preferredTestQuery” und “automaticTestTable” möglich.

Da ich keine hochperformante Verbindung benötige hab ich mich vorerst nur für die testConnectionOnCheckout-Variante entschieden. Damit klappt es bis jetzt bestens.