Skip to main content
Stephan Hochdörfer
Head of IT Business Operations
View all authors

Mobile Emulation in ChromeDriver

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· 2 min read
Stephan Hochdörfer
Head of IT Business Operations

As it turns out there are not many options when it comes to running a Selenium node on a mobile device. So far selendroid.io seems the best solution but it never really worked in our Selenium infrastructure, so I was looking for an alternative and came across this website which shows how to use the Mobile Emulation feature of Chrome via Selenium. And this is how it works. Either define the name of the Mobile device as it is defined in Chrome:

The Composer Path Repository

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· 2 min read
Stephan Hochdörfer
Head of IT Business Operations

Last week I gave my Composer for corporate use presentation at the code.talks 15 conference im Hamburg. In the section of my talk where I highlight how to work on multiple packages the same time (e.g. two applications sharing the same core functionality) I pointed to the audience to path repository feature of Composer. Unfortunately right after my session I began to realize that this is indeed the best feature we have out there when it comes to working on multiple packages the same time and to avoid the Satis or ToranProxy round trip. This is how it works: Add the following lines to your root composer.json file:

Sorting Custom Types in Sculpin

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· One min read
Stephan Hochdörfer
Head of IT Business Operations

Recently I played around with Sculpin. Pretty quickly I ran into an issue: I created a custom data type called events and wanted to sort the events by date. It seemed not possible as I could not figure out how to influence the sorting order in my twig template. By accident, I came across this issue on gihub in which Beau Simensen explains how to influence the sorting of the records. In a nutshell this is how it works: Create a file app/config/sculpin_services.yml:

Running pdepend on PHP7

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· 2 min read
Stephan Hochdörfer
Head of IT Business Operations

Being a good citizen of the PHP community we do test out internal libs against the current PHP7 codebase. So far we had no issues but then at one day one of our Jenkins PHP7 jobs failed. After investigating a bit it turned out that the problem was not part of our codebase but part of of pdepend. The pdepend process died with the error message that "T_CHARACTER and T_BAD_CHARACTER are no longer defined" which is true. The error was already reported as an issue on Github. As I do not like broken jobs in Jenkins I was looking for a fix which in the end was pretty easy. The basic idea was to skip the execution of pdepend in our Phing script when running on our PHP7 buildnodes.

ZendCon 2015

· One min read
Stephan Hochdörfer
Head of IT Business Operations

Vom 19.10.2015 bis zum 22.10.2015 findet in Las Vegas die Konferenz ZendCon 2015 statt. Ich freue mich dabei zu sein und meine Vorträge "Micro Services: Packs small, plays BIG!" und "HTML5 offline mobile apps: Real world insights" präsentieren zu können.

Enabling Sass support in generator-ionic

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· 2 min read
Stephan Hochdörfer
Head of IT Business Operations

Recently I gave ionic a try. Ionic is a "open source front-end SDK for developing amazing mobile apps with web technologies". Since there is also a ionic generator for yeoman it was rather easy to scaffold a project from scratch. It was just a matter of running these two commands to get the generator installed and a new ionic project set-up (assuming you already have yeoman running):

Configuring Jenkins Buildnodes the right way

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· 2 min read
Stephan Hochdörfer
Head of IT Business Operations

A few weeks ago I gave a presentation at the Jenkins User Conference London 2015 about how we have set-up and use Jenkins to power our builds. One idea I mentioned in the talk and I`d like to share now is how we bind our jobs to specific buildnodes. Given the fact that we are doing lots of different projects for different clients we have quite a few buildnodes to cover every use case we need. When we started using Jenkins about 4 years ago we bound every job to a set of specific buildnodes (e.g. buildnode01 || buildnode02). When our setup grew, it was not easy to keep up-to-date to figure out which buildnodes offer which capabilities. In the end this lead to jobs failing every now and then because Jenkins picks a buildnode from the list which does have all the required tools installed, this behaviour I call the "Jenkins law".