<head>

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...

Getting Started with Raspberry Pi (2017)

Getting Started with Raspberry Pi (2017)

The above is my first boot up of my Raspberry Pi 3, as purchased in January 2017.

I am writing this because so much of the information you can find on Google about the Raspberry Pi is actually outdated with regards to what you get when you order one in 2017.

In my case, I got a starter kit including an SD card, preloaded with NOOBS (which stands for "New Out Of the Box Software").

First thing to watch out for: you want to get a Class 10 SD card. These are the fastest available at this time. You can identify the card by its "C10" logo (or better said: a "10" with a "C" wrapped around it).

NOOBS is supposed to give you a choice of operating systems... except when it doesn't. And in my case it really didn't seem to offer any choice. When I booted up the Raspberry Pi for the first time, it booted straight into some version of Raspbian (the "standard" OS for the Raspberry Pi, based on Debian 8).

I'm not sure which version of Debian it really was because I could never get back the exact same one later (after installing something else...)

Boot into Recovery mode

So here's what you need to know if you actually want to choose which OS you want in NOOBS: Reboot the Raspberry Pi and hold down the Shift key. This will launch the Recovery mode of NOOBS and actually let you install the OS you want... except when it won't let you...

When I first did this, it offered my only one choice which was Raspbian.

After some research I found that this is normal. Only Raspbian is included by default...

Give NOOBS internet access!

In order to get other OSes, you actually need to connect to the Internet so that NOOBS can download additional OS images.

It's interesting the note that NOOBS can easily connect to WiFi without you entering a WiFi password. If your WiFi router has a WPS pairing button, press it and tell NOOBS to auto-pair.

Once NOOBS is connected to the internet, you actually get a wider selection of OSes to choose from:

Getting Started with Raspberry Pi (2017)

You can install more than one and NOOBS will act as a multi-boot loader at every restart.

There is a catch though: every time you want to install an additional OS or remove one you don't need, NOOBS will wipe out everything you have on your SD card and re-install everything from scratch. That's the moment I realized I would probably need several SD cards to swap out and be able to keep some stuff safe while experimenting with other OS packages. (I guess backup/restores would also work, but it would not be very convenient...)

I wish there'd be some system to have, say 4 partitions on the SD card, and being able to change the OS on each partition without affecting the others.

root password

The other thing I have wrestled with a little bit was to find the root password on Raspbian.

By default, you connect as user pi and your password is raspberry.

You can perform a series of system tasks by prefixing them with sudo. However, there are many times where you actually need to log in as root. But there is no root password!

So you actually have to create your own root password by typing sudo passwd root. After that, enter a new password for root and you'll be able to use it from that point on.

Ok, that's all for now. Back to trying out OSes...

WWDC 2016 : Carplay getting smarter?

I haven't ranted for a while, so here's something: my biggest gripe about Apple Carplay!

I basically need two things when I drive:

  • directions
  • and controls for what I am listening to.

But Carplay refuses to let these 2 essential things share the screen.

To add insult to injury, Carplay makes switching from one to the other especially hard!

For example, when on the "Now Playing" screen, I have an icon to go to Navigation: (so far, so good)

WWDC 2016 : Carplay getting smarter?
Now Playing... (an AudioBook)

But now, when on the Navigation screen, all I have is a completely useless compass in the place where you'd expect an icon to switch back to "Now Playing":

WWDC 2016 : Carplay getting smarter?
Navigation Screen

In case you wonder why I can't just use the car controls to skip to next and previous song, it is because I am not listening to songs! I am listening to Podcasts and Audiobooks. And for those, the controls you need the most are:

  • "I didn't get that, rewind by 15 seconds"
  • "yada yada yada, skip forward 15 seconds" (also useful for boring commercials)

Now, after years of no change to this, I have a tiny tiny hope that the next version will finally solve this. Look at this screen from the WWDC Keynote:

WWDC 2016 : Carplay getting smarter?
WWDC 2016

The compass is gone! Yay! But did they replace it with a "Now Playing" icon when something is playing??

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.

Reliability

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.

Installation

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.