PHP and SQLite FTS4: How to process the matchinfo function

Part II: Understanding the output from the matchinfo() function Part I: Reading the binary output from the matchinfo() function To analyze what the output of the matchinfo() function means, we’ll use a different example dataset than the one from the SQLite FTS4 documentation. Since I’m a bird photographer, let’s create a virtual FTS4 table holding […]

PHP and SQLite FTS4: How to process the matchinfo function

Part I: Reading the binary output from the matchinfo() function SQLite’s MATCHINFO() function provides metrics that are useful for filtering or sorting results of a query according to relevance. The function returns a binary string representing a variable number of 32-bit unsigned integers in machine byte-order. It can be read into an array of integers […]

SQLite FTS4: Standard vs Enhanced Query Syntax

The SQLite documentation talks about two ways to perform full text queries: standard or enhanced query syntax. Be aware: which one is available depends on how SQLite was compiled. You might, like me, run into troubles when developing locally using one syntax and then publishing remotely only to find out your query does not return […]

Minify CSS with PhpStorm automatically

Installation guide for PhpStorm 2019.3.1 to minify CSS files automatically after editing using the command line interface for CSSO as a file watcher. You could also use yuicompressor instead, but version 2.4.8 chokes on CSS @keyframes rules.

BIOS update with Linux Mint

Updating your BIOS on Linux Mint 19 can be as easy as on Windows. If your computer is listed on the Linux Vendor Firmware Service, then all you have to do is: ~ $ sudo apt install fwupd ~ $ fwupdmgr get-updates ~ $ fwupdmgr update The firmware-manager might even get included in the next […]

Linux Mint 19.1: Lightning Calendar in English, but dates in the 24-hour time format

I like having the user interface of my Linux Mint 19.1 in English, but the regional settings such as numbers and currency in a different language such as Swiss German.

VirtualBox 6: How to enable symlinks for shared folders

For security reasons, creating symbolic links in a shared folder is disabled in the guest OS (ticket 10085 and manual 5.3 Shared Folders). If you trust your Linux guest OS, you can enable symlinking from the host OS with the following command: ~ $ VBoxManage setextradata “VM_Name” VBoxInternal2/SharedFoldersEnableSymlinksCreate/Folder_Name 1 Replace VM_Name and Folder_Name with your […]

The search for the Okinawa Rail

The Okinawa Rail is a flightless bird endemic to the Yambaru region in the north of Okinawa. The Japanese call it Yambaru Kuina, and though stylized versions of it are ubiquitous on packaging, advertising or road signs, most people have never actually seen it. Okinawa rail on street signs.

How to install ExifTool with Composer

I’m working on a PHP project, that uses Phil Harveys excellent ExifTool to read Exif and XMP tags from photos. Since ExifTool is written in Perl, there is of course no composer.json to install this dependency directly with Composer. But you can create your own package information in your master composer.json as follows: { … […]

How to update Composer on Linux Mint 18.3

When you install Composer (the dependency manager for PHP) globally on Linux Mint 18.3 with the package manager… $ sudo apt install composer $ composer -V Composer version @package_branch_alias_version@ (1.0.0-beta2) 2016-03-27 16:00:34 …you’ll get the totally outdated version 1.0.0-beta2. The problem is that this version does not support extracting compressed package files ‘tar.gz’. It also […]