Before I was an entrepreneur, I was a developer. And a geek.

Today, I still like to think of myself as a full stack hacker, from DB design to front-end dev, through server security and performance optimization.

This blog is about code, the OS (Mac or Linux), database design, web app, responsive websites, webperf, server maintenance and looking at nerdy metrics...

Git Tower "Device not configured" - Fix!

Every now and then my Git Tower will stop working "out of the blue" with a message saying something like "Device not configured".

I found out it actually doesn't really happen out of the blue. Rather, it happens every time I upgrade Xcode... or when I upgrade Mac OS X altogether.

The real problem is git doesn't want to work any more as long as you haven't accepted the new Xcode user license.

To fix this, simply open a terminal and type sudo git. Then follow the instructions and accept the Xcode license.

Then restart Tower and everything should be fine again.

OS X 10.10.3 Photos.app Survival Guide

OS X 10.10.3 Photos.app Survival Guide
Switching between RAW and JPEG

After a lot of doubt and long consideration of alternatives such as Adobe Lightroom, I finally switched from Aperture to the new Photos app in Mac OS X 10.10.3 – and to the iCloud Photo library too.

Unfortunately, the Apple’s official page didn’t answer all my questions. Neither did Google. So I started experimenting a little… Here’s a quick overview of my pain points and how I overcame them.

Library Import/Migration

Easier than expected

Good news: it’s non-destructive and it doesn’t require double the disk space! When you import your iPhoto or Aperture library, Photos.app creates hard links to the images files already on your disk. That means that both apps have a handle on the same file. So although you’ll have 2 libraries, you won’t use twice the disk space. (You will use a little though for anything that is specific to Photos).

Also, if you delete a hard linked file on one side, it’s still there on the other. So if you decide you don’t like Photos and delete your Photos library, the Aperture or iPhoto library stays unharmed. Similarly, if you decide you don’t need your iPhoto or Aperture library any more, you can delete it without worry. Your Photos library will have all the files it needs.

Note: If you have multiple Libraries, Photos will let you choose which one to import. If you have only one, it will import it automatically (again, it’s a non-destructive process). Now, in case you actually don’t want to migrate your single iPhoto/Aperture library when you launch Photos for the first time, hold down the Alt or Option key during launch. This way, Photos.app will let you create a new Library. This is useful if you he secondary Macs with junky libraries you want to replace with a clean iCloud synced version…

Migration Caveats

  1. The importing and hard linking is more like “forking", NOT like “this stays in sync forever". Any edits you make to your Photos or to your Aperture/iPhoto library after the import will NOT be reflected on the other side.
  2. Aperture allows you to merge libraries. Photos.app does not. So you should merge anything you will want in your Photos library *before* the import.
  3. If you had your originals in an external folder in Aperture, you can still import fine and everything will work as expected. BUT, if you later want to switch to iCloud Photo Library (and you should) you will be required to consolidate your originals into your Library. At that point there will be no more hard-linking any more and consolidating will double the disk space used by originals (as long as you still use your old Aperture library). Thus, you might want to consider consolidating all your originals into your Aperture Library before you migrate, especially if you’re tight on disk space.


I imported an Aperture Library of 31.000 Photos and 200 GB in size. It took about 10 minutes to process on a 2014 Mac Pro.

Everything imported cleanly and as expected except for one slideshow. It is a slideshow I initially made in iPhoto, then imported into Aperture and modified in Aperture, which created a copy of it. The original iPhoto one ended up broken (it referenced wrong photos) while the Aperture version imported fine. This is probably an edge case. It didn’t really bother me.

The important thing is that all my originals and all my edits imported fine, with all the albums and keywords preserved.

Full story »

evo-sublime theme for Sublime Text

evo-sublime theme for Sublime Text

I've just uploaded the evo-sublime theme for Sublime Text on GitHub .

It is a dark text on light background theme, with vivid highlights.

This is the theme I use to work on b2evolution.


You need to copy the color scheme into the Sublime Text Packages directory.

  1. You can find the path of the directory using the Preferences -> Browse Packages menu within Sublime Text.
  2. Copy the color scheme into this directory.
  3. Use the Color Schemes option of your preferences menu to select the evo color scheme.


How to disable Adobe Reader in Safari

How to disable Adobe Reader in Safari

Sometimes you have to install Adobe Reader because some pesky government agency forces you to use a pesky PDF file that only works with Adobe Reader. And once you install Adobe Reader, it will take over your whole Mac, even the default PDF preview in Safari.

Here's how to restore the default PDF preview on OS X:

Go to /Library/Internet Plug-ins (there is a "Go To Folder..." option in the "Go" menu of the Finder if you need it).

In that folder, delete the following 2 plugins:

  • AdobePDFViewer.plugin
  • AdobePDFViewerNAPAPI.plugin

Restart Safari and you're done ;)

The power of the power button! (or eject key)

The power of the power button! (or eject key)
That on/off button at the top right of the keyboard can do more than on/off...

You might wonder what to do with that Eject key on your Mac keyboard, now that drives with ejectable media are gone... or you may not use your power key to its full potential...

Personally, I've been using Ctrl + Eject or Ctrl + Power (depending on what key you have at the top right of your keyboard) for quite some time now. It brings up a popup dialog with the following options:

  • Restart
  • Sleep
  • (Cancel)
  • Shut Down

But I always found a missing item here:

  • Lock Screen (or Login Screen would also do)

I accidentally stumbled on the right shortcut for that today: Ctrl + Shift + Eject or Ctrl + Shift + Power will put your display to sleep immediately, and if you have your security preferences set up to lock your screen when display goes to sleep, you're all set. Neat! This is the fastest way I know to lock a Mac when I don't want to put it to sleep.

By the way, if you want to put it to sleep, without confirmation, you can use Cmd + Option + Eject or Cmd + Option + Power .

Be careful though, there are also "deadly" restart and shutdown without confirmation shortcuts involving Cmd + Ctrl + ... A good way to lose some work... Thus I'd recommend to stay away from the Cmd key all together when trying out these shortcuts ;)