a tumblelog

The Fifth Season: highly recommended

In the afternoon I finished The Fifth Season by N.K. Jemisin. What a great read; I loved it.

The book reminded me a little of some of the works of the late Tanith Lee. I don't mean that the story is similar to any of her books, but that it gave me the same feeling of wonder.

So, if you like The Fifth Season I recommend you to check out The Birthgrave Trilogy, consisting of

Or, the Wars of Vis trilogy consisting of

Pylint and Flake8 online

In the afternoon I fixed a few issues as reported by Pylint online for the program. The slightly updated version, 1.0.3, is available on GitHub.

In the afternoon my mother and I walked into the town centre to have a coffee. On the way back I took photos of some plants for sale, including succulents planted in a metal bowl.

Succulents in a metal bowl Succulents planted in a metal bowl.

Indentation in Emacs

In the evening I read The Ultimate Guide To Indentation in Emacs (Tabs and Spaces). I am interested in this because I am working on a project that uses hard tabs in JavaScript but spaces in Perl source. And since the default tab width is 8 in my Emacs set up this makes for very wide lines in the former case.

What I currently use is changing Emacs's idea of the character's length by evaluating the following Emacs Lisp code:

(setq-default tab-width 4)

But I am going to study the suggested configuration in the article mentioned above and most likely add it to my Emacs configuration.

Scotch rose flowering

On the way back from physiotherapy I took a few photos of a Scotch rose flowering. I am getting physiotherapy for my knee because I broke my knee cap during a bad fall back in November 2018.

Scotch rose, Rosa spinosissima, flowering Scotch Rose, Rosa spinosissima, flowering.

Minor update to tumblelog

In the evening I made a minor adjustment to both the Perl and Python version of tumblelog, the program that creates this website. I had noticed that when hovering over a week number in the archive section of this blog that the week number and year where shown, separated by a -; which is the title of the link.

Since there is a --label-format option which is already used to create a label showing the week and year in a user configurable way, I used this format to render a better title. For example for the 20th week of 2019 instead of '20-2019' it now displays 'week 20, 2019' on hovering for the default value of --label-format.

You can get the latest version of tumblelog via my GitHub repository.

Things you’re probably not using in Python 3 – but should

Many people started switching their Python versions from 2 to 3 as a result of Python EOL. Unfortunately, most Python 3 I find still looks like Python 2, but with parentheses (even I am guilty of that in my code examples in previous posts – Introduction to web scraping with Python). Below, I show some examples of exciting features you can only use in Python 3 in the hopes that it will make solving your problems with Python easier.

This article, Things you’re probably not using in Python 3 – but should, just reminded me that I probably should look into adding type hinting to the Python version of tumblelog.

SHA1 should no longer be used anymore

Everyone should switch to (in order of preference):

  • BLAKE2b / BLAKE2s
  • SHA-512/256
  • SHA3-256
  • SHA-384
  • Any other SHA2-family hash function as a last resort

...unless they're storing passwords! In which case, they should switch to (in order of preference):

  • Argon2id with memory >= 32MiB, >= 2 rounds, and >= 2 parallelism
  • scrypt / yescrypt with memory >= 32 MiB, >= 4 rounds, and >= 1 parellelism
  • bcrypt (for PHP devs, password_hash() and password_verify() does the trick)
  • PBKDF2-SHA512 with 85,000 iterations as a last resort

But SHA1 should no longer be used anymore. No excuses.

― Scott Arciszewski, Chief Development Officer at Paragon Initiative Enterprises.

Source: SHA-1 collision attacks are now actually practical and a looming danger.

How does Docker work?

How does Docker actually work? It’s a simple question that has a surprisingly complex answer. You’ve probably heard the terms “daemon” and “runtime” thrown around, but never really understood what they meant and how they fit together.

In the evening I read How does Docker work? by Cameron Lonsdale, a (very) technical walk-through of how Docker works.

Blocking domains with Postfix

My experience is that top level domains like .icu, .win, .trade, etc. are a source of spam. Because I don't expect actual email from those domains I decided to blacklist those domains as well as several countries in Postfix.

Read my latest blog post: Blacklisting domains with Postfix.

Garden centre "De Carlton"

In the afternoon my mother and I went to garden centre "De Carlton" by bike. I wanted to buy a few pots, perlite, and sphagnum moss so I could sow the seeds that arrived the 4th of May.

We had a coffee and I took a few photos with my iPhone 5 of the plants on sale.

Argyranthemum frutescens flowering Argyranthemum frutescens flowering.

Moth Orchid Phalaenopsis sp. flowering Moth Orchid Phalaenopsis sp. flowering.

Cacti for sale Cacti for sale.

Aechmea fasciata flowering Urn plant Aechmea fasciata flowering.

The Wedding Guest: an excellent read

In the afternoon I finished the last chapters of The Wedding Guest, An Alex Delaware Novel by Jonathan Kellerman. I liked this book more than the previous one in the series; Night Moves, but I recommend both.

The Fifth Season

In the night I started in the first book of the Broken Earth trilogy by N.K. Jemisin: The Fifth Season.

How to see what's in a git stash

The following command shows the changes recorded in the stash as a diff between the stashed state and its original parent in patch form:

git stash show -p stash@{0}

If there is only one stash or you want to see the latest one, use:

git stash show -p

And if you add --names-only to either one only the file names are shown.

JavaScript applications are written as a collection of .js files that are usually transformed before being served in a browser. One reason to transform is to improve page load time. There are two primary components to improving page load time: bundling multiple files together, and minifying to make the bundle size smaller.

Source: JavaScript minification.

Dutch licorice and a clock

Today a package arrived from Paul with 3 bags of Dutch licorice and a clock in the shape of a mobile phone having an Apple decal. The latter was a joke as we often discuss the pros and cons of owning Apple devices.

Close-up of Dutch licorice Close-up of Dutch licorice.

I got the traditional Dutch candy in exchange for a small Perl script and a very small Python script.

"Apple" mobile phone clock "Apple" mobile phone clock.

Business dinner in Utrecht

In the afternoon I travelled by bus and train to Utrecht in order to attend a business dinner. I first took a bus to the bus station in Naaldwijk. Next, I took a bus to Schiedam, to the train station.

From there a took an NS Sprinter in the direction of Dordrecht to arrive at the train station "Rotterdam Centraal".

Rotterdam: the NS Intercity to Leeuwarden Rotterdam: the NS Intercity to Leeuwarden.

At Rotterdam I took the Intercity to Leeuwarden, and after a nice trip I got out in Utrecht.

Train station "Rotterdam Centraal" Train station "Rotterdam Centraal" taken from the train.

Once in Utrecht I had to search a bit, using the Maps App on my iPhone 5 to find the restaurant; Metro City Kitchen. After some work related talk we ordered. I had Tournedos rare as the main dish and Mango curd for dessert. After dessert I had a cappuccino and some time later a mint tea. All in all it was an excellent evening.

Train station "Rotterdam Centraal" Train station "Rotterdam Centraal".

On the way back I missed the bus to Naaldwijk at Schiedam and had to wait one hour. Luckily it was not raining and not too cold. I arrived back home just before 12.

Lady of the Night

In the early afternoon the orchid I ordered last Friday as a gift for Mother's day arrived. "Claessen Orchideeën" did a great job packing the Brassavola nodosa. The plant was smaller than I expected but very healthy looking.

When my mother came home I immediately gave her the plant and she put it in a small glass container. She's very happy with her present. Now it's waiting for it to flower. In my experience the flowers of the Brassavola nodosa smell very nice in the evening, hence the common name "Lady of the Night" for this orchid species.

Brassavola nodosa, the "Lady of the Night" orchid Brassavola nodosa, the "Lady of the Night" orchid.

I grew this orchid in Mexico and in my experience it flowers regularly with large white fragrant flowers. For more information on growing this wonderful orchid see Growing Brassavola Orchids.

Merging vs. Rebasing

The git rebase command has a reputation for being magical Git voodoo that beginners should stay away from, but it can actually make life much easier for a development team when used with care. In this article, we’ll compare git rebase with the related git merge command and identify all of the potential opportunities to incorporate rebasing into the typical Git workflow.

Merging vs. Rebasing.