Hummingbird Photography in Costa Rica

I participated in a twelve-day photo workshop led by Greg Basco and Paolo Valerio from Foto Verde Tours with a focus on multi-flash hummingbird photography in Costa Rica from 6 to 12 February, 2026.

A Green-crowned Brilliant (Heliodoxa jacula) fights with a Magenta-throated Woodstar (Philodice bryantae) over access to an Indian Head Ginger flower (Costus spicatus).
Nikon Z8 with NIKKOR Z 400mm ƒ/4.5 VR S, exposure 1/200s at ƒ/11 and ISO 320 using a multi-flash setup.

During the workshop, we visited four different habitats: the Atlantic rainforest and the wetlands of Caño Negro, both bordering Nicaragua, as well as the cloud forest in the Central Volcanic Mountain Range and the Elfin forest of the Talamanca Mountains.

Continue reading “Hummingbird Photography in Costa Rica”

Night Walk Flash Photography in Cost Rica

All photos were taken on a single night walk in situ in Drake Bay, Costa Rica on 22 February, 2026.

A Masked Tree Frog (Smilisca phaeota).

My wife and I met our tour guide Karen from https://osaoutdoorsadventures.com/ in Drake Bay early evening to get a potential head-start of other groups. Luckily, we were the only guests, so our group size was minimal. The night walk led us up a creek, mainly in the river bed. My wife wore the rubber boots given by Karen; I had my Guyana-proven jungle boots on.

Continue reading “Night Walk Flash Photography in Cost Rica”

Twig tip: Ternary operator with an undefined variable

You can use the default filter in combination with the ternary operator :? on a variable within a Slim Twig template when the variable is undefined:

{{ myVar|default ? '' : ' class="myClass"'}}

or in an if statement:

{% if myVar|default %}
  ...
{% endif %}

When the variable is undefined and should not be an empty string:

{{ myVar|default('') == '' ? '' : ' class="myClass"'}}

Twig tip: How to access the query string

You can access the query string from a Slim Twig template by using the get_uri() method:

{% set query = get_uri().getQuery() %}
{% set query = query|length ? '?'~query : '' %}

Use Proton Drive on Linux

You can use rclone to sync your data with Proton Drive and vice versa. But the chances are high, that you also have Proton VPN, which ironically will not let you use access your Proton Drive through VPN! But there is a simple solution. You can use rclone’s --bind argument with your local IP address to bypass the VPN.

The following synchronizes the remote drive with the local drive in home:

rclone sync ProtonDrive: ~/ProtonDrive/ --verbose --bind 192.168.1.xy

Use esbuild instead of uglifyjs-folder and csso-cli

You can use the superfast esbuild instead of uglifyjs-folder and csso-cli to copy (and minify) your JavaScript and/or CSS files (without having to bundle the files) in your npm scripts.

Continue reading “Use esbuild instead of uglifyjs-folder and csso-cli”

Use Lightroom on a mapped network drive (on Linux with VirtualBox)

If you try to open a catalog stored on a network drive, Adobe Lightroom will complain about “Lightroom can not be opened on network volumes, removable storage or read on read only volumes.” You can easily overcome this by assigning the network drive to a drive letter using the subst command:

C:\Windows\System32\subst.exe L: \\ERITHACUS\IMAGES

This is especially useful if you want to run Lightroom on Linux in a virtual Windows machine with VirtualBox, but want to keep your photos on a mounted drive (in my case /media/simon/IMAGES).

Setup folder sharing in VirtualBox

First you need to add your mounted image folder to VirtualBox as a shared folder:

Setting up folder sharing of our photos in VirtualBox on Linux Mint.
Continue reading “Use Lightroom on a mapped network drive (on Linux with VirtualBox)”

Create responsive images on the fly with php and Imagick

To improve paging loading performance across multiple devices, web developers can provide each image in different resolutions using the srcset attribute and let the browser choose which one to load e.g.:

// on the page, where we want to display the image e.g.,
// index.php
<figure><img src="images/photo-1200.jpg"
    srcset="images/photo-1200.jpg 1200w,
        images/photo-1024.jpg 1024w,
        images/photo-800.jpg 800w,
        images/photo-600.jpg 600w" width="1200" height="800">
    <figcaption>the description of the photo</figcaption>
</figure>
Continue reading “Create responsive images on the fly with php and Imagick”

KEF LSX II on Linux: USB audio (IEC958) not loud enough

If the KEF LSX II speakers are connected to your Linux (Mint) PC via Digital Output (USB audio) instead of WiFi and the audio volume is not loud enough, it might be, that the gain of the internal sound card of the LSX II is set too low:

Screenshot showing the internal sound card of the LSX II speaker set to only 25%.
Continue reading “KEF LSX II on Linux: USB audio (IEC958) not loud enough”

How to enable developer mode on a Samsung tablet

  1. Open Settings, scroll down to the end of the list and tap About tablet:
settings screen
Continue reading “How to enable developer mode on a Samsung tablet”