Der App Store und eine Frage der ERN

Wir haben in Projekten schon viele mobile Anwendungen für unsere Kunden entwickelt. Darunter zahlreiche, bei denen eine App auf Serverdaten zugreift. Wir kennen den Weg in den Apple App Store und auch bei Google Play. Doch diesmal war es doch wieder anders und mit ungeahnten Hindernissen.

Wer wissen möchte, wie wichtig eine ERN ist, hier ist die Geschichte dazu.

Weiterlesen

Get Rolling – Anschubentwicklung für Start-ups

Wir haben unseren Firmensitz in Berlin, der Startup-Metropole Europas (https://www.mckinsey.de/berlin-gruendet). Daher haben wir auch häufig Kontakt mit Kunden aus der Gründerszene. Wir konnten beobachten, dass Startups häufig die Herausforderung haben, schnell ein Entwicklungsteam aufzusetzen und hoch zu skalieren. Je anspruchsvoller die zu erstellende Software ist, umso herausfordernder der Aufbau einer Entwicklungsmannschaft.

Ein Herausgeben der Entwicklung an externe Dienstleister, wie z.B. an uns, ist für ein Startup durchaus heikel. Erstens muss es eine ausreichende Kapitalversorgung haben, um sich eine externe Entwicklung überhaupt leisten zu können. Zweitens gehört meistens neben der eigentlichen Geschäftsidee das Entwicklungs-Know-How zu dem Kernvermögen des Unternehmens. Ein Halten und Ausbau der Entwicklungskompetenzen ist daher im Interesse des Unternehmens.

Ein möglicher Ausweg aus diesem Dilemma ist eine externe Projektentwicklung, die von Anfang an darauf ausgelegt ist, vom Auftraggeber übernommen zu werden.

Dies klingt einfach und ist es nach unserer Erfahrung auch, wenn ein paar Dinge beachtet werden.

Weiterlesen

Vaadin und AngularJS – glücklich vereint

Sie haben sicherlich schon viel über xJS Frameworks, allen voran AngularJS, gehört. Als Vaadin Entwickler haben Sie sich vielleicht auch schon die Frage gestellt, wie Sie mit diesen Frameworks umgehen sollen. Ignorieren? Das wäre ein Jammer, denn die Frameworks eröffnen eine Menge großartiger Möglichkeiten. Ein kompletter Wechsel? Wäre auch schade, da Sie dann auf Vaadin verzichten müssten.

Glücklicherweise muss es aber nicht zwingend Vaadin oder AngularJS heißen. Vaadin und AngularJS klingt doch schon viel besser, oder?

Weiterlesen

PostgreSQL: Tabellenpartitionierung und Hibernate

Die Beiträge PostgreSQL: Partitionierung großer Tabellen Teil 1 und Teil 2 beschreiben die datenbankseitige Umsetzung dieser Performanzverbesserung. In einer Enterprise Java Umgebung ist eine Datenbank meist über ein JPA-Framework eingebunden und damit eng an die Anwendung gekoppelt. Dieser 3. Teil zu partitionierten Tabellen in PostgreSQL zeigt Ergänzungen, die beim Einsatz von Hibernate nötig werden.

Weiterlesen

OptaPlanner hilft bei verteilten Schulstandorten (Teil 4/5)

Die vorigen Teile dieser Serie haben beschrieben, wie das Optimierungsproblem modelliert und das Modell mit Hilfe von OptaPlanner umgesetzt wird. Dieser Teil beschäftigt sich mit dem eigentlichen Lösungsverfahren des Problems.

Ablauf der Optimierung

Der Solver übernimmt die Optimierung des Problems und durchläuft dabei mindestens zwei Phasen. In der ersten Phase wird eine Ausgangslösung erstellt. Diese wird in der oder den darauf folgenden Phase(n) inkrementell optimiert. Für beide Phasen stellt OptaPlanner unterschiedliche Heuristiken zur Verfügung, die je nach Art des Optimierungsproblems auszuwählen sind. OptaPlanner bietet zudem eine Benchmarkingfunktionalität, welche die Evaluation verschiedener Heuristiken durch automatische Läufe und Gegenüberstellung verschiedener Konfigurationen des Solvers mit grafischen Reports zu Performance und Skalierbarkeit unterstützt.

Weiterlesen

Integration von JBake in Maven – Statische Websites

JBake ist ein „Java-basierter, open source Generator für statische Seiten“ (http://jbake.org/, auf github https://github.com/jbake-org/jbake). Bestens geeignet, um statische HTML-Seiten zu erstellen. Das langsame Laden von dynamischen Inhalten entfällt. Ebenso Probleme, die bei der Indexierung und Suchmaschinenoptimierung/SEO auftreten können, wenn die Seite erst beim Laden per JavaScript zusammengesetzt wird. Gleichzeitig bieten verschiedene Template Engines, wie bspw. FreeMarker (http://freemarker.org/) den Vorteil der Modularisierung. Menü und Footer müssen nur einmalig definiert werden und können durch verschiedene Vorlagen automatisch eingefügt werden.

Weiterlesen

OptaPlanner hilft bei verteilten Schulstandorten (Teil 3/5)

Modellierung des Problems

Eine Zuordnung von verfügbaren Schulstunden zu Unterrichtsstunden ist mit dem Datenmodell aus Teil 2 dieser Serie nun prinzipiell möglich. Für eine sinnvolle Optimierung mit Hilfe von (Meta-) Heuristiken fehlen jedoch die Restriktionen des Zuordnungsproblems sowie eine Möglichkeit zur Bewertung verschiedener Lösungen. Umgesetzt werden können diese innerhalb von Optaplanner mit Hilfe der Regelengine Drools Expert oder Java Prozeduren. Der Einsatz einer Regelengine bringt zum einen bewährte Techniken zur Erkennung von Mustern out of the box (z.B. die Verteilung der Berechnungen auf mehrere Kerne). Zum anderen lassen sich die Restriktionen in Form von Drools Regeln leichter sukzessive und granular an veränderte Modelleigenschaften anpassen.
Weiterlesen