OpenStreetMap – eine Schatzkiste an frei verfügbaren Geodaten

OpenStreetMap (OSM) enthält eine enorme Menge an frei verfügbaren Geodaten – derzeit sind es rund 1,6 Milliarden Koordinaten. Wie lässt sich das dort vorhandene Wissen in eigenen Projekten verwenden?

Nach einem ersten Blick in die Datenbasis stellt man schnell fest, dass die Geodaten nur wenig strukturiert vorliegen. Ähnlich wie bei Wikipedia ist zwar enorm viel Wissen vorhanden, aber nur implizit. Es gibt keine Schnittstellen, mit denen sich die Informationen komfortabel abfragen ließen. Das heißt: Es ist z.B. nicht möglich den längsten Fluss Deutschlands abzufragen. Stattdessen lassen sich nur alle Punkte, Pfade und Polygone ermitteln, die mit dem Tag „water“ versehen sind und sich innerhalb eines vorgegebenen Ausschnitts befinden. Erst durch eine Auswertung dieser Daten lässt sich der längste Fluss ermitteln.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

NoSQL – hoch-skalierbar, extrem schnell und viel Auswahl

NoSQL-Datenbanken sind nicht nur ein spannendes Thema, sie lösen auch schwierige Probleme. Für welches Einsatzgebiet jedoch welche Art NoSQL-Datenbank passt, ist anfangs nicht offensichtlich.

Aus diesem Grund habe ich eine Einführung in die verschiedenen Arten von NoSQL-Datenbanken geschrieben. Dazu habe ich die Pattern-Form gewählt. Das heißt: Für jede Art NoSQL-Datenbank identifiziert ein Pattern das Einsatzgebiet, für den diese Art NoSQL-Datenbank eine geeignete Lösung darstellt. Zusätzlich wird erläutert, warum das jeweilige Problem schwer ist und mit welchen Konsequenzen man rechnen muss, wenn man eine NoSQL-Datenbank dieser Art einsetzen will.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

Technisch oder fachlich: Wie verteilt man die Entwicklungsaufgaben in einem Team?

In kleineren Entwicklungsprojekten ist es selten offensichtlich, wie die Programmieraufgaben am besten verteilt werden. Sollen sich die Entwickler eher technisch oder fachlich aufteilen?

Nach meiner Erfahrung spezialisieren sich auch in kleineren Projekten (für mich sind das Teams mit maximal 10 Entwicklern) die Entwickler häufig nach technischen Kriterien: Es gibt den Datenbankdesigner, den Backend-Programmierer und die Web-Entwicklerin.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

Mocks für die Frontend-Entwicklung – Teil 2

Der erste Teil dieses Artikels hat gezeigt, wie Mock-Objekte prinzipiell das Leben von Java-Web-Entwickler erleichtern. Nun folgt ein Beispiel aus der Praxis.

Dass die durchgängige Entwicklung von Mock-Objekten relativ viel Arbeit bedeutet, wurde schon im ersten Teil erwähnt. Umso wichtiger ist es, dass die dafür notwendige technische Infrastruktur möglichst einfach umzusetzen ist.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

Mocks für die Frontend-Entwicklung – Teil 1

Frontend-Entwickler leiden häufig unter langen Round-Trip-Zeiten beim Bauen und Deployen einer Java-Web-Anwendung. Selbst bei kleinen Layout-Änderungen muss der vollständige Bau-Prozess durchlaufen werden. Mock-Objekte können hier viel Arbeitszeit sparen.

Wer ist von dem Problem überhaupt betroffen? Die Entwickler von Play-, Vaadin– oder Grails-Projekten kennen langsame Build-Prozesse kaum. Auch diejenigen Entwickler, deren Anwendungen in reinen Web-Containern wie Tomcat laufen, profitieren in der Regel von ihrer schlanken Infrastruktur.

Sobald aber „schwerere“ Technologien wie O/R-Mapping, EJBs oder Messaging dazukommen, benötigt das Bauen und vor allem das Deployen einer Anwendung spürbar Zeit. Vor allem der Einsatz von Anwendungsservern bremst die Entwicklung aus. Zum einen funktioniert das Hot-Code-Replacement von Code-Änderungen im laufenden Betrieb meistens schlecht, zum anderen schlagen Änderungen an Ressourcen wie JSF- oder Wicket-Html-Dateien nicht sofort durch. Jedenfalls, solange man nicht Produkte wie JRebel einsetzt.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

Areas for Pattern Mining Inside and Beyond IT

After nearly twenty years of pattern mining, many important areas in software development and beyond are covered by patterns. At the same time, many new areas have emerged for which no or few patterns have been documented yet. In which areas are patterns still missing?

With this question in mind, an open space session was held at the EuroPLoP 2012 pattern conference. Andreas Rüping, who moderated the session, summarized the propositions that were made by the participants.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

UUIDs als Primärschlüssel in relationalen Datenbanken

Die fortlaufende Datenbank-Id ist vielen Anwendungsentwicklern der liebste technische Primärschlüssel. So komfortabel solche Sequenzen auch sind, sind sie jedoch ein Problem bei der Skalierbarkeit und Replikation von relationalen Datenbanken.

In der relationalen Datenbankwelt mit einem zentralen Datenbankserver sind Sequenzen einfach einzurichten und komfortabel zu verwenden. Fortlaufende Nummern bieten Übersicht in den Datensätzen (von wann stammt der Datensatz ungefähr?) und sind ein schnell auszuwertendes Sortierkriterium.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

Einfacher Testen mit einem Fake-SMTP-Server

Das Versenden einer E-Mail ist ein wichtiger Bestandteil vieler Geschäftsprozesse. Leider ist es gar nicht so einfach, einen Service, der eine E-Mail verschickt, durch einen Unit-Test zu überprüfen. Mock-Objekte helfen zwar weiter, lassen aber offen, ob eine E-Mail wirklich versendet werden kann. Was kann man sonst tun?

Die meines Wissens beste Alternative ist, E-Mails von der Anwendung versenden zu lassen und im Unit-Test zu prüfen, ob eine E-Mail erfolgreich zugestellt worden ist. Dazu eignen sich hervorragend Fake-SMTP-Server.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

JEE 6: Keine schlechte Technologie, aber…

Seit der Veröffentlichung von JEE 6 scheinen die Befürworter des JEE-Standards gegenüber den Anhängern der Spring-Welt im Vorteil zu sein. Schließlich ist die JEE-Plattform inzwischen technologisch ausgereift. Da stellt sich die Frage, warum man von diesem Standard abweichen soll.

Konkurrenz zwischen verschiedenen Konzepten führt meistens zu immer besseren Lösungen auf beiden Seiten. Daher kann man als Java-Entwickler froh sein, dass es in der Java-Welt viele gute Produkte gibt. In der Welt der Frameworks für die Enterprise-Entwicklung konkurrieren derzeit vor allem JEE 6 und das Spring-Ökosystem. Und natürlich streiten die Befürworter beider Lager mit Vehemenz, welche Technologie die bessere ist.

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }

Ein Plädoyer für die Monitorente

Wer kennt das Phänomen nicht? Man sucht nach der Ursache für einen Fehler in der Software, kann das Problem aber einfach nicht finden. Schließlich fragt man einen Kollegen um Rat und erklärt erst einmal, was man bisher herausgefunden hat. Bevor der Kollege aber auch nur ein Wort spricht, macht es ‚Klick‘ und man hat das Problem begriffen.

In Abwandlung des Spruchs „Nur, was man erklären kann, hat man selbst begriffen.“ gilt hier anscheinend „Erkläre, um zu begreifen!„. Was aber tut man, wenn kein Kollege zur Hand ist? Hier kommt die Monitorente ins Spiel!

Weiter lesen…

.pf-button.pf-button-excerpt { display: none; }