Update to iOS 9. Splunk, Cocoa Pods, SSL Domains & co.

I am working with an app which is updated infrequently every few months. This time it was necessary to build with the SDK iOS 9.0. But when I want to build the app using XCode I got this error:

“This app is not allowed to query for scheme cydia”

BUT WHO THE HELL is Cydia? :) Because I never used Jailbroken devices I didn’t know that Cydia is the App Store alternative for jailbroken devices. My App uses Splunk MINT for monitoring and they call the scheme “cydia://” to check if a device is jailbroken, because most jailbroken devices have Cydia installed. Anyway. This was the message everything started with and finally led to a chain of updating different parts.

Continue reading “Update to iOS 9. Splunk, Cocoa Pods, SSL Domains & co.”

Search Console – Change of Address. 301 htaccess example

Moving to a new domain can smash your Google ranking – unless you tell Google about it. If you are a user of Google’s Search Console aka Webmaster Tools you have the option to use the “Change of Address” page which can be found in the settings.

Continue reading “Search Console – Change of Address. 301 htaccess example”

EMR 4.0.0 in AWS Data Pipeline

I like the AWS Data Pipeline and love to start EMR clusters with it. Unfortunately it’s currently not possible to use the EMR-4.0.0 release when starting a EMR cluster using the pipeline. You currently just find the amiVersion option in the EmrCluster options. Which is bad if you like to use a Hadoop version greater than 2.4.0. This is not supported in the highest amiVersion 3.9.0.

This is the most up-to-date configuration you can get:

"hadoopVersion": "2.4.0",
"amiVersion": "3.9.0"

What does Amazon says to this? I just found this comment in the forum:

currently emr-4.0.0 is not supported on Datapipeline, we are working on it but at the moment I cannot provide and ETA on this.

Activity Timer refurbishment

Good news everyone. We have updated and refurbished the Activity Timer for OS X. Now you can manage your activities with less mouse clicks. We have also added the long wished keyboard shortcut functionality for starting and stopping the timer.

Clear arranged window shows all the activities. Open it with 1 click

The “smart” input allows you to define activity times using values like “1min” or “4h” or even “10:30:30. With this you can define more accurate activity lengths. Give it a try, it still integrates smoothly into the status bar.

Ordentlich theme in action.

Ordentlich. A simple and free Ghost theme.

We have just released a neat, clean & terrific theme for the blogging platform Ghost. It has been build using Gulp, Bourbon, Neat and other fine stuff. It’s freely available on the official Ghost marketplace.

Ordentlich theme on a handheld device. This funny mockup has been created with Scenery.
Ordentlich theme on a handheld device. This funny mockup has been created with Scenery.

See also our Github page and take a look on the “Coding With Passion Magazine” where you can see it live.


Swift and CocoaPods

Uh. XCode 6 is out in the developer preview version and Apple introduced Swift on the WWDC. We all love CocoaPods, but how to use the Pods in a new Swift project?

Let’s start with a normal Podfile for a test project called ‘cocoapods-test’

platform :osx, '10.10'
link_with 'cocoapods-test', 'cocoapods-testTests'
pod 'RaptureXML'

As you can see, I link also the test-target in my Podfile, because I want the Pods to also be available there.

Now lets execute the beloved

pod install
Successful included Pods
Successful included Pods

But now? We have a pure Swift project here, so how to I use the Objective-C resources in my target? The solution is already mentioned in the official Swift guide:

Fill out an Objective-C bridging header if you need to access Objective-C code from the same app target in your Swift file.

We need a bridging header, which Xcode automatically creates when you want to add the first Objective-C file to a Swift project. So we just add a file called “dummy”. This file I will delete later.

Yes, we want an objective C file now
Yes, we want an objective C file now

Then Xcode will ask

This is exactly what we want right now. A nice bridging header file.
This is exactly what we want right now. A nice bridging header file.

This auto-generation will also add the corresponding path to this header file into our Build Settings.

Build Settings for the Bridging-Header file
Build Settings for the Bridging-Header file

Into this header file we can then add our wanted Objective C headers like e.g.

#import "RXMLElement.h"

We can the use this library in our Swift files like e.g.

var rootXML : RXMLElement! = RXMLElement.elementFromXMLData(data) as RXMLElement

different people, different approaches

The main reason for me to develop software is and was always because it’s fun and I love creating things. And most of the time it starts with a little problem, for which I need some kind of software-based solution.

This was the same for the “Activity Timer” application.

First I stumbled across the Pomodoro Technique couple of months ago and I really loved the simple approach of optimising the daily tasks using well defined small time periods.
After a while I thought that I need the simplest timer possible which integrates smoothly into my Mac OS X system. There was no such timer application in the App Store which satisfied me and so I started to create this little app.

Some users who installed the timer, use it in the same way I use it. But because it’s relatively generic and not only focussed on the Pomodoro Technique it can be used also for other timing tasks. One of the most interesting usages is the one I recognised based on a rating in the App Store:

Usage as a 'cooking timer'
Usage as a ‘cooking timer’

I really like this approach and it also makes me happy – not only because it’s a good rating :). It makes me happy mainly because it also shows the diversity of the people, which is in my opinion one of the best things in mankind.


Can’t re-install app from Apples App Store

Problem: I developed an application via Xcode and published it in the App Store. I then continued developing it and removed the application I had installed from the AppStore.

When I try to re-install it from the AppStore I got the following message:

“If you want to replace it with this version, move the existing app to the trash”

I deleted all the data for this application from

  • ~/Library/Containers
  • ~/Library/Application Support
  • ~/Library/Preferences
  • the application itself of course

But still. It was not possible to re-install it. Finally I stumbled across lsregister – a tool for the Launch Service Database and this command helped me:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain user

After that, the install worked.

Image Credit: dirty rotten apple 2 by Lara604 (CC BY 2.0)


Postfix rejection problem ‘454 4.7.0 TLS not available due to local problem’

For our service Melt Mail there happened to be a Postfix error which prohibits forwarding e-mails from Gmail. The SMTP server fails with the message

454 4.7.0 TLS not available due to local problem

The problem was the smtp daemon of Postfix

warning: TLS library problem: 24753:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:172:

The solution was to remove the


line in the file.