Blog

Thoughts, tech notes, in-depth articles and walkthroughs.

August 13, 2016 6 mins read
Architecture

Domain Driven Design with Symfony: A Folder Structure

Deciding how to setup the directory structure of a project is not easy. Often, the frameworks people are used to suggest a way to organize classes, such as Symfony does. However, when implementing domain-driven design (DDD) it is very important to NOT couple the domain code to a framework, as sooner or later sticking to a proposed directory structure renders your carefully crafted code coupled to the framework. Also, you want to make sure that your architecture remains changeable.

Read more
July 31, 2016 4 mins read
Engineering Cloud

Blue-Green Deployment with CloudFoundry

Blue-green deployments are a powerful technique to achieve zero-downtime deployments. With the CloudFoundry CLI, it is super easy to execute a blue-green deployment - even from a CI server. In a nutshell, a blue-green deployment spins up a whole new production environment with the new application version and once that is done, switches over the traffic from the old version to the new version. If you are unfamiliar with blue-green deployments be sure to read this article by Martin Fowler.

Read more
July 18, 2016 2 mins read
Engineering

Screenshots of Emulated Android Devices

Heads up: It takes only a few lines of bash code to take screenshots of emulated Android devices. As I have recently been developing apps with Angular2 and Ionic2 I had the need to create screenshots of the current work-in-progress of the app. The paid version of the Genymotion emulator supports creating screenshots out of the box, but there is an even better way to create them.

The following code snippet captures screenshots in Genymotion, but also applies to capturing screenshots with Android SDK/Studio. The original idea to use the Android Debug Tools adb to take screenshots traces back to this article.

Read more
July 01, 2016 1 mins read

Leveraging Palladio for Performance Awareness in the IETS3 Integrated Specification Environment

This paper is published in the Symposium on Software Performance 2016. It is a short paper on the topic of my master’s thesis.

Abstract

Performance is an important concern when designing and implementing software-intensive systems. Various techniques are available for specifying and evaluating performance concerns throughout the system life-cycle. However, there is a gap in terms of tooling when moving between requirements, design, and implementation artifacts. We address this gap by integrating simulation-based and analytical performance prediction tools into IETS3 - an integrated specifi cation environment for technical software systems based on the JetBrains MPS language workbench. In this paper, we provide an overview of our work in progress on integrating performance awareness support into the IETS3 editor and user interface. We leverage Palladio’s prediction infrastructure by transforming to Palladio’s modeling language to obtain performance predictions, which are then fed back into the IETS3 user interface. The approach yields a tight integration of the requirements and the design of a system strengthened by a real-time feedback loop.

Read more