Building notes, projects, and ocasional rants


last update:

Where to eat: Figueira da Foz edition

A friend asked for good places to eat around Figueira da Foz, where I live. He was not the first, it is a common request, so I wrote a page with some of the places I go to on a regular basis. So enjoy, Eating in Figueira da Foz.

iOS (null) Applications

Over the past weeks, I wasn’t able to complete any of my iPhone backups, and without a backup (actually two, iCloud and iTunes, just because) I didn’t want to upgrade to the latest iOS. Last night I decided to investigate why. The error I got was this: 26/8/16 10:28:09.285 PM AppleMobileBackup[42056]: ERROR: Backup message response: 101 Unable to open domain directory: No such file or directory (2) at path "/var/mobile/Containers/Shared/AppGroup/453DA9D8-45A4-4B88-9D43-57A5772B6C57" (MBErrorDomain/101) Not very useful.


I’ve finished reading A Generation Lost in the Bazaar by Poul-Henning Kamp (of Varnish fame). The key takeaway is simple enough: quality happens only when someone is responsible for it. Right now, I’m working on my personal/family project, modernising the infrastructure of a 16 years old Perl application, and moving some parts to other languages to make it easier for us to hire resources. I love Perl, and still is my favourite language, but getting people to work on it in Portugal is a very hard proposition.

Fat scripts

Recently we installed HipChat at the office, and I want to write a small script to send messages to it. To make it easier for others to use I wanted to distributed it as a single standalone script, no dependencies. I wrote the script, x-hipchat, with all the bells and whistles I felt were important, and then turned to the process of pack it into a single no-dependencies script. The simplest method I could find is App::fatten.


A thread showed up on Twitter about messaging software options. My story is not 140-charaters material, so here we are. If you do insist on a tldr; version: use NSQ if you need something that works out of the box, use Redis if you want to build your own. At work, we use a lot of message queues to plug different components together. They are a great tool to have on your belt but the landscape is filled with solutions so picking your own solution can be a daunting task.


WWDC is a couple of hours from starting. Some thoughts about it. 800-pound gorilla I was at Imagine conference a couple of weeks back, and one presentation clicked a lot of different articles I’ve read recently. You can read this Wired article to get the basic business logic behind this. Basically, Apple is the company with the largest number of credit cards on file, by far. Almost 4 times Amanzon.


This blog should be renamed to Phoenix… Since we last spoke, a lot has changed but most remained the same. I still have three kids, and a dog. I’m still married to the same smart beautiful woman. I still use Perl as my main language, although I’ve been using a lot of JavaScript and Go (my favourite new language; in 3 years it will be a major contender, mark my words) whenever I can get away with it.


There will always be extreme in Californication, from the initial minutes of a blasphemous moment in a church by a agreeable nun, to the moment that dreams do come true. Maybe boys will be boys and we just enjoy lewdness, or maybe there is a grain of truth in it. But 6 years ago when I started watching the show, I never though the roller coast of emotions it would trigger.

Dreaming in sync

If you ever get me talking about applications and synchronisation of data, you might notice that I'm very passionate about sync. You'd be right. My favourite topic in college was distributed operating systems. Today, when I design a system, I always envision it as a set of cooperating processes, working together and in parallel for a common goal. Over the past 15 years, I've kept refining a set of rules of what I think is the ideal features any application that does sync should have.