SA Elections 2019: Votes to seats in parliament.

On Wednesday, May 8, 2019, South Africans had the opportunity to elect their leaders for the coming five years by taking part in the 2019 general election. Of the 26727921 registered voters, 17671616 made their way to the ballots. Of these, 17436144 citizens managed to submit a valid vote. These 17M+ votes were then tallied up to determine how the 400 parliamentary seats would be allocated to each of the qualifying parties.

Windows 10 anti-virus slows down Hugo and WSL from 2x to 10x.

This post documents my measurements of the slow-down caused by the Windows 10 (1903) anti-virus real-time protection of Hugo static website builds, both with and without the Windows Subsystem for Linux (WSL). Methods I measured the re-generation of a site with about 2700 pages in total (my personal blog) using Hugo v0.55.5 on this ThinkPad X1 Extreme (i7 8750H, 32GB RAM, Samsung Evo Plus 1TB SSD) with Windows 10 1903, aka the May 2019 update.

Link directly to emails from Emacs Orgmode using Thunderbird and Thunderlink

On macOS, links of the form message://message-id are by default supported by the system. Using a tool such as org-mac-link, it is straight-forward to link directly to relevant emails from Orgmode tasks and notes. It does not matter if you have moved the mail around. When you open the link from Orgmode, the relevant email is instantly shown in Mac mail. Fortunately, similar functionality can be configured on Windows and Linux using the Thunderbird mail client, an add-on called ThunderLink, and a touch of Emacs Lisp.

PyCharm and Docker Compose for Django and TypeScript development on Windows 10

A few days ago I switched my main development machine from a 2017 15” MacBook Pro with a 4-core 2.9GHz 7820HQ i7, 16GB of RAM and 512GB of SSD to a Lenovo Thinkpad X1 Extreme with a 6-core 8750H i7, 32GB of RAM and 1.5TB of Really Fast SSD. My reasons for the switch were: The fact that my upgrade path with the MacBook would have been much more expensive.

Using the new dotnet fsi from .NET Core 3 Preview 3 in Visual Studio Code

One of the great new F# tools in .NET Core 3 Preview 3 is F# interactive as pure .NET Core application. To use dotnet fsi in your Visual Studio Code with the Ionide F# IDE plugin instead of the fsharpi binary, add the following to your user settings.json: 1 2 3 "FSharp.fsacRuntime": "netcore", "FSharp.fsiFilePath": "/usr/local/share/dotnet/dotnet", "FSharp.fsiExtraParameters": ["fsi"] Remember to replace fsiFilePath with wherever your .NET Core 3 dotnet binary is installed.

Installing Isso comments in Hugo on WebFaction

On Wednesday April 3, 2019, I finished migrating this site from Wordpress to Hugo. An important part of this project was finding a new system for handling blog post comments. On my personal blog, I am able to use the free and ad-free tier of Disqus, but because is strictly-speaking a company site (even although 100% of the posts are non-commercial), that won’t work here. Furthermore, the $9 / month price tag of the lowest Disqus tier is not really justifiable with the relatively small number of comments being handled.

Improving fastai's mixed precision support with NVIDIA's Automatic Mixed Precision.

TL;DR: For best results with mixed precision training, use NVIDIA’s Automatic Mixed Precision together with fastai, and remember to set any epsilons, for example in the optimizer, correctly. Background Newer NVIDIA GPUs such as the consumer RTX range, the Tesla V100 and others have hardware support for half-precision / fp16 tensors. This is interesting, because many deep neural networks still function perfectly if you store most of their parameters using the far more compact 16-bit floating point precision.