UIAutomation, nice to meet you

I wrote an app for a museum and it needs to run for a very long time without crashing. Unfortunately, it crashed after a week. (I had 3 days to write the app, and almost no time to test it. Yes, we developers always have an excuse!)

So I had a look to UIAutomation. What a revelation! I wrote a script to test my app and I was able to remove some leaks from my app, but I needed something more hard-core to test my app.

I searched the internets using DuckDuckGo, my favorite searching tool for the last year. I searched for “UIAutomation Monkey” because, being an old Macintosh developer, I remembered of the infamous “Monkey Lives” feature of the early Macs.

I quickly found “UI AutoMonkey” by Jonathan Penn.

Seeing this script clicking frantically is really fun, and helped me find some unexpected bugs.

I was able to let it run for around 6 hours, without crashing and memory usage stays constant. So far so good.

I will install the new app next week, we’ll see how it behaves.


  • I couldn’t run the test for more than 6 hours, Instruments used 10G of memory and wasn’t showing me the memory usage of my app;
  • ARC is cool, but I feel I lost control of my app;
  • Writing an app that needs to run 24/24 without ever restarting is stressful.

Start VPN when waking up

On my Linode server (great company and service BTW), I had setup a VPN for me, but after upgrading to Ubuntu 14.04, I had no time to reinstall it.

So yesterday, I grabbed a free account on NoLimitVPN (because NSA and Google, you know) and I’ve been using it without any problems. (I’m no expert in security, but since NoLimitVPN is managed by a french company and their VPN is hosted on RamNode.com in the Netherlands, I expect a minimum of privacy).

The only problem I had was that the VPN doesn’t connect automatically when my Mac wakes up. DuckDuckGoing (what’s the official or usual verb ?) (because I don’t use Google anymore), I only found AppleScripts running in background and connecting the VPN. Since I don’t want something running in the background on my old and faithful iMac, I looked for alternatives.

This is the solution I’ve set up on my Mac:

To start the VPN (named “VPN”, duh), I use a terminal command

scutil --nc start VPN

Instead of this AppleScript (found on StackOverflow)

tell application "System Events"
    tell current location of network preferences
        set myConnection to the service "VPN"
        if myConnection is not null then
            if current configuration of myConnection is not connected then
                connect myConnection
            end if
        end if
    end tell
    return 120
end tell

To start the VPN when waking up, I use SleepWatcher (a tool I use to pause ArqBackup when my Mac wakes up) and I put this line in my ~/.wakeup file:

scutil --nc start VPN > /dev/null 2>&1

Voila, problem solved.

Check your missed calls from your iPhone

Here in Switzerland the major telco (Swisscom) has an option to let you see your last 20 answered and missed calls on your account webpage.

Not wanting to log in every time I want to check if I missed a call, I wrote some scripts and that fetches the content of my account web page and display them on an iOS app.

Continue reading Check your missed calls from your iPhone

Not eXactly C Language Module Reference for TextWrangler/BBEdit

First, If you have a Lego MindStorms NXT 2.0 and you don’t use NXC (Not eXactly C) you’re missing something. If you’re a programmer, you surely feel limited by the official visual environment, and it’s a PITA to make it run on a Mac.

Continue reading Not eXactly C Language Module Reference for TextWrangler/BBEdit

Pause ArqBackup when you wake up your Mac

After having tried all almost-free cloud-based (Bitcasa, Mozy, etc…) backup solutions, I tried Arq, and since August 2012, I use it without problems.

I backup 120G and it costs me $11 per month for the Amazon S3 storage. Not bad. Arq can also backup to Amazon Glacier, for a fraction of this cost.

Continue reading Pause ArqBackup when you wake up your Mac