darktable default settings I like to change

Spanish version of this article is here – Versión en español de este artículo

Active the new and improved “scene-referred” and “modern” for all new imports:

Auto-apply lens correction to all photos I take with my Canon 5DS:

I can see I have this present in presents:

But to create I had to do it in darkroom –> lens correction –> store new preset…:

Give it a name, add my Camera maker and model so it only applies to images of this camera and uncheck “normal images” so non-raw images are never applied (I assume jpeg files won’t need this)


My photography timeline

2002-02 Kodak DX3600 (2.2MP)
2002-05-26 Kodak DX4900 (4MP)
2003-01-31 Olympus Camedia C-720 (3MP)
2004-03-12 Canon EOS REBEL Ti (35mm Film)
2004? Olympus (6MP)

2005-05-04 Canon Digital Rebel XT/350D 8MP (Silver)
2006-12-07 Canon 430EX Speedite Flash
2007-03-11 Canon Digital Rebel XTi/400D 10.1MP (Silver)
2007-03-22 Canon EF 50mm f/1.8 II
2008-08-03 Canon Digital Rebel XSI/450D 12MP (Black)
2008-08-05 16GB Trascend
2008-08-05 Manfrotto 728B Digi Compact Tripod
2010-02-17 Canon Digital Rebel T2i/550D 18MP (Black)
2013-10-22 Canon EF-S 10-22mm f/3.5-4.5 USM
2014-12-27 Canon EOS 70D (20.2MP)
2016-03-23 Tamron 70-200mm f/2.8 DI USD VC (but then returned)

2016-04-24 Canon EOS 5DS (50.6MP) Dxomark
2019-11-17 Tamron 70-200mm f/2.8 DI USD VC (purchased again) Dxomark
2020-10 DJI Mavic Mini
2020-12-19 Photography freedom (Migrated to fully opensource workflow)


Zigbee2mqtt in Raspberry Pi 4

Steps to run zigbee2mqtt in a Raspberry Pi 4

  1. Download Raspberry Pi Imager to burn Raspberry Pi OS Lite in an SD card. In Ubuntu with the command: snap install rpi-imager
  2. Enable SSH to connect to it headless. To do this create an empty file called “ssh” in the BOOT partition, for example with the command touch ssh. Documentation link
  3. Insert the sd card in the RPi4, boot it up, and login with default username and password:
    Username: pi
    Password: raspberry
  4. Run the following commands
    Change default password: passwd
  5. Run raspi-config and change what you need. In my case I changed the hostname, timezone and locale. You may be asked to reboot the system after this. sudo raspi-config
  6. Update and upgrade the system: sudo apt update && sudo apt upgrade -y
  7. Plug in the zigbee usb adapter on the Pi.
  8. Locate the device location. Here are the official instructions. In my case, the usb was in another location To find it I used:
pi@pi4:~ $ ls /dev/serial/by-id -l
total 0
lrwxrwxrwx 1 root root 13 ene 22 00:35 usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_21_CC_3C_A8-if00-port0 -> ../../ttyUSB0
pi@pi4:~ $

9. Install zignee2mqtt

# Setup Node.js repository
sudo curl -sL | sudo -E bash -

# NOTE 1: If you see the message below please follow:
# ## You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from for Node.js 4 and later.
# IMPORTANT: In this case instead of the apt-get install mentioned below; do: sudo apt-get install -y git make g++ gcc

# NOTE 2: On x86, Node.js 10 may not work. It's recommended to install an unofficial Node.js 12 build which can be found here: (e.g. v12.16.3)

# Install Node.js;
sudo apt-get install -y nodejs git make g++ gcc

# Verify that the correct nodejs and npm (automatically installed with nodejs)
# version has been installed
node --version  # Should output v12.X or v10.X
npm --version  # Should output 6.X

# Clone Zigbee2MQTT repository
sudo git clone /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt

# Install dependencies (as user "pi")
cd /opt/zigbee2mqtt
npm ci --production

10. Edit /opt/zigbee2mqtt/data/configuration.yalm file. In my case:

# Home Assistant integration (MQTT discovery)
homeassistant: true

# allow new devices to join
permit_join: true

# MQTT settings
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://'
  # MQTT server authentication, uncomment if required:
  user: zigbee2mqtt
  password: password

# Serial settings
  port: /dev/ttyUSB0
  network_key: GENERATE
  channel: 12

11. That’s it! Run zigbee2mqtt and enjoy!


Fix locale error on Debian based systems


On a fresh installation of Debian 8, 9, 10 and maybe also other versions you can get the following error:

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    WARNING! Your environment specifies an invalid locale.
     The unknown environment variables are:
     This can affect your user experience significantly, including the
     ability to manage packages. You may install the locales by running:

     sudo dpkg-reconfigure locales

     and select the missing language. Alternatively, you can install the
     locales-all package:

     sudo apt-get install locales-all

    To disable this message for all users, run:
      sudo touch /var/lib/cloud/instance/locale-check.skip

If you follow the instructions and run the command dpkg-reconfigure locales and then select your desired locales, you will still get an error:
(In my case I selected en_US.UTF-8 and es_es.UTF-8)

root@localhost:~# dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
  es_ES.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").


Execute these export commands and then run dpkg-reconfigure locales again. Now the generation won’t produce any errors.

root@localhost:~# export LANGUAGE=en_US.UTF-8
root@localhost:~# export LANG=en_US.UTF-8
root@localhost:~# export LC_ALL=en_US.UTF-8
root@localhost:~# dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
  es_ES.UTF-8... done
Generation complete.
root@localhost:~# dpkg-reconfigure locales

Remember to fix this issue BEFORE you run your first “apt-get update && apt-get upgrade”, so the issue is solved before new packages are installed.


Docker useful commands

docker build . -t mynewimage

docker run -d -t --name letsrock imagename

docker exec -it letsrock bash

docker images

docker ps

docker-compose up -d

docker system prune -a

To delete all volumes using the following command:
docker volume rm $(docker volume ls -q)

View logs
docker logs imagename -f

Create external network for traefik docker network create --driver=bridge --attachable --internal=false traefik_proxy Output: 7aa05528d00064911164455c18d06a920885c1011fb1e9183d6f4ef437aae31f


Respect other opinions

When you base your beliefs on your own knowledge and personal experience, how could you even consider telling another person that his beliefs are wrong, if he has seeing or experienced things you haven’t?


Tamron SP AF 70-200 f/2.8 Di VC USD

Mi valoración

Tuve la Canon 70-200 f/2.8L IS II USM y la cambié por esta Tamron.

Esta Tamron es claramente superior a la equivalente en Sigma e incluso ligeramente superior a la Canon en cuanto calidad de imagen segun los datos oficiales de DXOMARK. En la práctica pude comprobar que la diferencia es muy sutíl pero efectivamente así lo es.

La única ventaja importante que tiene la Canon sobre esta Tamron y la Sigma es el “FOCUS BREATHING” a distancias cortas. A distancias largas todas tienen 200mm reales, pero a distancias cortas como haciendo retratos (algo muy común con estas lentes), esta Tamron tiene menor distacia focal real (entre 150 y 170mm dependiendo de la distancia). Esto se nota bastante y como consecuencia tienes que acercarte más al sujeto que estas fotografiando que con la Canon afectando también al bukeh producido.

El estabilizador de imagen es verdaremente impresionante, puediendo tomar fotos sin trípode a 1/40 a 200mm. Tambien decir que es un poco menos voluminosa que la Canon, cosa que se agradece en la mochila del fotógrafo. La Canon viene con su funda especial para la lente y la Tamron no tiene funda. A mi no me importa porque llevo todas mis lentes en una mochila pero para algunos puede ser algo a tener en cuenta.

Otra curiosidad y diferencia. Uso la útlima versión de LIGHTROOM (la 6.5 a día de hoy) y en esta versión para aplicar la correción cromática y distorsión de la lente, Lightroom detecta la lente Canon inmediatamente. La lente Tamron, no. Tienes que decirle al Lightroom manualmente que es una lente marca Tamron y despues de hacerlo, Lightroom ya detecta el modelo de la lente automáticamente y aplica la corrección correctamente. No es un problema importante, pero te obliga a realizar un paso más al procesar las fotos. Como yo suelo aplicar esta corrección por defecto a todas mis fotos, esto es especialmente molesto si vuelves de un viaje y estas procesando fotos tomadas con varias lentes, porque tienes que buscar y seleccionar todas las fotos tomadas con esta lente en concreto para decirle al Lightroom que esta es una Tamron. Esto es un problema que quizás se solucione solo en futuras versiones de Lightroom, pero a día de hoy existe.

Todas estas lentes son grandes y poco discretas. El hecho que sea negra en vez de blanca como la Canon para mí es una ventaja porque llama “un poco” menos la atención, cosa que se agradece en algunas situaciones.

La velocidad y precisión del enfoque es práctimente la misma en ambas lentes.

En resumen, sin tener en cuenta el precio, si quieres la mejor CALIDAD DE IMAGEN del mercado en una 70-200 f/2.8 esta Tamron es tu lente sin ninguna duda. Sólo recomendaría la Canon en vez para aquellos fotógrafos que el focus breathing les resulte un problema importante para su trabajo. Pero si además tienes en cuenta el precio, esta Tamron es la claramente la ganadora.

Valoración de Amazon


What if we advance at different speeds

When we think of human evolution and advancements we tend to think of it in a linear line. Like for example, we can think that 50 years ago we didn’t have this or that in the world and now we do, and we assume it’s the natural progress of 50 years of mankind working together.
Evolution in nature is not linear, in fact it’s pretty random. Are humankind advancements the same?

Human kind advances in different fields at different speeds. Medicine, Psychics, Chemistry, space exploration, Marketing, weapons development, animal training, software, communication or anything you can think of, they are all improving at different rates for different reason.

What if

Imagine for a second the consequences if we had advanced a lot faster on one field and a lot slower on another.

Einstein made some revolutionary discoveries that changed our concept of how the world works. If Einstein wouldn’t have been born, most probably someone would have eventually made the same discoveries.
If the Spaniard Cristobal Colón wouldn’t have convinced the Spanish Queen to fund the crossing of the Atlantic in the 15th century, America would have not been discovered in 1492 as it was. Somebody else would have eventually discovered it. The only question is if it that would have happened a year later, 10 years later or 100 years later?

I’m not going to get into the obvious conclusion of how something like that would have changed the history and therefore world we live in today. Instead I want to concentrate in how much as in amount, we would have evolved.

Imagine the electricity been discovered 100 years later. Would that have caused a simple delay of 100 years in evolution? Most probably we would have evolved in other things instead of during those 100 years.

Instead I would like to make a reflection of the consequences our present acts can have because of this effect.

What would you prefer

If you imagine a nice future of how you would like the world to be in 50 or 100 years, where would you prefer that we improved the most? Would you like a world with no sicknesses? A world where we have answers to the origins of the universe? A world with no hunger?

Throughout history we have several examples of societies that evolved specifically to their “obsessions”. Ancient military tribes dedicated an important part of their resources to defend themselves from other tribes. These tribes usually had a far more advanced defense and offense system than others that didn’t have that need. Their obsession with defense was probably necessary at the time for their survival, but it came at the cost of dedicating less resources to other branches of knowledge.

What percentage of the GDP of your country goes to the military, or research and development, education or space exploration (just to name a few)? If you look at the developed countries in the world you will find important differences in these figures, and they usually represent the different priorities those governments have.

But regardless of what they choose, are their acts aligned with their mission? Are they actually going in the direction that will take them to where they want to be in 50 years? Or are they just thinking of next years budget or the next general election? They are thinking short term or long term?

Do we even have a choice?

Some may even argue that we might not even have a choice. After all, we didn’t decide we needed a revolutionary scientist so Einstein could arise. It just happened.
Also even though different fields seem to advance independent of each other, on some occasions they step into each other. For example the M.R.I. used in medicine saving countless lives, was manufactured thanks to the knowledge we gained exploring the outer space.
Several other discoveries are produced accidentally, with no initial intention of improvement in that field whatsoever.
Even though these things occur, I believe we can maneuver quite a bit. Like a boat in a storm in the middle of the sea, you can either let yourself go and let the wind take you somewhere eventually, or you can use your sails to help you aim to your destination.