Working with Estimote Stickers Nearables Developer Kit

Real-World Context for your Apps

The idea of small, extremely portable, digital tags, equipped with an ARM processor and numerous sensors, attachable to real world objects and discoverable by any suitably enabled smartphone app had captured my imagination. So I duly shelled out US$99 for the pre-production not yet FCC-approved Estimote(TM) Stickers Nearables Developer Kit containing ten Bluetooth Low Energy Beacons.
I was excited to get my first packet of Estimote Stickers (“real world context for your apps”).  This was my first encounter with beacon technology.
I downloaded the Swift tutorial and the SDK from the Estimote web site and started learning. I was finding out about two new technologies at once, the Internet of Things (IoT) in the form of the the Estimote Stickers, and Swift, Apple’s new computer language. It was a lot of fun.


Developers > Post

Posted by Thursday July 14th, 2016 No Comments

MAMP can’t start httpd

On some OS X systems MAMP is unable to start the httpd.

On my system after an upgrade it was because OS X was starting its own httpd daemon.

I was able to see this by trying to start MAMP’s httpd in a Terminal:

$ cd /Applications/MAMP/bin
$ sudo ./
(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address
no listening sockets available, shutting down

A call of lsof confirmed it:

$ sudo lsof -iTCP -sTCP:LISTEN -P -n | grep :80
httpd 576 root 5u IPv6 0x9f5f81c483ca9e1f 0t0 TCP *:80 (LISTEN)
httpd 582 _www 5u IPv6 0x9f5f81c483ca9e1f 0t0 TCP *:80 (LISTEN)

The shows two httpd processes running with process ids of 576 and 582 respectively.

To prevent OS X automatically starting its own httpd server, use the following command in a  Terminal:

$ sudo apachectl stop

This has the following effects

After the next restart you can use MAMP to start httpd and mysqld as usual.

Developers > Post

Posted by Sunday May 29th, 2016 No Comments

76% reduction in Unity game “Flipping Blocks” size


We achieved a massive reduction in the size of our game app Flipping Blocks, which was developed on the Unity platform.

Here’s a summary of the measures and the corresponding reduction in download size:

Measure Before After Saving
Reduce the size of the graphical assets 105MB 79MB 26MB
Build for ARMv7 only 79MB 70.5MB 8.5MB
Remove unused assets 70.5MB 67.5MB 3MB
Use language dependent asset bundles 67.5MB 25MB 42.5MB



Posted by Tuesday May 3rd, 2016 No Comments

New game Flipping Blocks developed by appMotivate

Mike Paget at Thumthink Ltd and Peter Evans at appMotivate released the new game “Flipping Blocks” to the Apple App Store on the 3rd of December 2015.


This incredibly varied game will frustrate, captivate and delight you!

Built on the Unity3d games platform, with a Slim Framework REST API PHP backend installed on Google App Engine and Google Cloud SQL, the game runs on iPhone and iPad from iOS 8 upwards.

Download Flipping Blocks

Developers > Post

Posted by Friday December 4th, 2015 No Comments

Generate all icons for iPhone, iPad and Android

Every App needs a couple of dozen graphic assets, icons, splash screens, etc.

An excellent overview of all that’s necessary for iOS and Android is “Icons and Splash Screens

Do your eyes glaze over when you think of all the time you’re going to spend creating all those assets? Mine do. Particularly with icons you need practically the same symbol in many different size variations for iPhone, iPad and Android.

The good news is, instead of manually creating them all in Photoshop, Gimp or whatever, you can generate them all automatically from one graphic. This service is provided by the site MakeAppIcon. Just upload one graphical template in PNG, JPEG or PSD format (preferred dimensions 1024×1024), let the site do its thing and within a short time an email with a ZIP attachment containing all the icons in every size that you wanted, and some you didn’t know you wanted.

This saves a lot of time, money and frustration and gives you more time to do something fun, profitable, or both. Many thanks to the FileSquare people for making this available free to everybody.

Developers > Post

Posted by Monday January 6th, 2014 No Comments

DC13 #dchh Developer Conference retrospective

Sorry, this entry is only available in Deutsch.

Developers > Post

Posted by Monday November 11th, 2013 No Comments

DC13 Developer Conference 2013 Hamburg

Only 8 days to go until DC13, Developer Conference 2013 in Hamburg.

Over a 1000 developers are expected at the conference, who will get to listen to hear 120 speakers and a big opportunity to network with the German developer scene. You can still register here, there’s room for more. If you’re thinking of going, do note that most of the talks are in German (the ones in English are flagged as such).

It’s sponsored by elasticsearch,,, and coremedia. So a big thanks to those guys.

Unfortunately I’m not going to be able to get to all 120 talks. According to the program, starting on Thursday 7th November, eight(!) cinemas at Cinemaxx, Dammtor will be hosting parallel talks. So if you’re going, it’s time to start planning which ones you’re going to attend. Luckily, you will find a good filter on that page that helps you create your own threads of interest.

There are lots of opportunities here for new developers and those looking to acquire new skills, with 61 talks at the basic level. Want to know what all the fuss about Node.js and JavaScript on the server is all about? Have a look at Golo Roden’s talk “Node.js: Vom Backend …” (7.11. 1400-1500) Learn about Microsoft’s mobile back end approach with Kristina Rothe and Dariusz Parys in “Die 3 Fragezeichen der mobilen App Entwicklung – Daten, Authentifizierung und Push Notifications” (8.11. 1300-1400 Kinosaal 4).

There are lots hard technical talks for expert developers – how about “Die JavaScript Cloud” (Alexander Schulze 7.11. 1300-1400). Or find out how the high performance open source search engine Elasticsearch can be used to process and analyse real time data with Alexander Reelsen (8.11. 1700-1800 Kinosaal 3) “Elasticsearch – Beyond full-text search“.

IT managers, both for development and operations, will find 24 talks aimed at them. Find out about creating and improving high performance teams with Alexander Jäger “Building high performance teams” (7.11. 1000-1100 Kinosaal 1) and Robin Müller “Speeding up your development team with vagrant” (7.11. 1100-1200 Kinosaal 3)

Architects can choose between thirty different talks. Find out how mytaxi rewrote their entire architecture in the talk “Technologiewandel: Von der Socket- zur HTTP-Kommunikationsarchitektur” (Jan Sören Ramm 7.11. 1000-1100)

Those looking to improve web performance must see Holisticon’s Jan Weinschenker talk about “Praktische EJB-Performance-Optimierung” (7.11. 1300-1400 Kinosaal 7). I’ve worked with Jan and I know he knows what he’s talking about.

I personally will be looking to understand how I can improve my development skills and reach more users in the mobile world. I want to improve the quality of my apps and I want to make money from them – so I’ll be listening to Andreas Lüdeke’s “Ein Testing-Prozess, der zu deiner App passt” (7.11. 1500-1600 Kinosaal 5) and Michael Osei-Ampadu’s “In-App Advertising – An Efficient Way To Monetize Your App” (7.11. 1600-1700 Kinosaal 4).

So much choice, so many great speakers – this is going to be fun :)

Developers > Post

Posted by Wednesday October 30th, 2013 No Comments

Android emulator gets “Connection refused” when talking to MAMP

When developing a mobile app with a server component for android you may wish to run a test server on your development Mac / PC and have the app client on the android emulator use services implemented in the MAMP server.  This generally will not work out of the box.  MAMP by default listens on any IP address.  The most popular is localhost

For example, I like to define a host name like myserver.local in my hosts file /etc/hosts on OSX like this. localhost myserver.local

Then I should be able to use a service URL like http://myserver.local/getStuff in my app REST client.
This works just fine with the iPhone simulator.
However the Android emulator has its own idea of what localhost is, and it’s not the same as the PC’s localhost.  So when the app tries to talk to localhost, it will typically get a connection refused error, as the app is trying to talk to a web server on the android emulator where there is none.
We have to get the emulator talking to MAMP.


Developers > Post

Posted by Tuesday August 13th, 2013 2 Comments

appMotivate offers:

  • Consulting
  • Specification
  • Project Management
  • Programming

Last blog article