How to Write Good Software Documentation

There is a secret that needs to be understood in order to write good software documentation: there isn’t one thing called documentation, there are four. They are: tutorials, how-to guides, technical reference and explanation. They represent four different purposes or functions, and require four different approaches to their creation. Understanding the implications of this will help improve most documentation - often immensely. I dig Daniele Procida’s take on writing good software documentation....

March 16, 2021

How to Shrink a WSL2 Virtual Disk

I discovered you can use the “diskpart” tool to compact a VHDX. This allows you to shrink a WSL2 virtual disk file, reclaiming disk space. It appeared to work for me without any data corruption, taking the file size down from 100GB to 15GB. (source) I adore Parallels “reclaim disk space” feature. Just the other day, I got back 70GB off my Windows Guest in a breeze. I’m coming from VirtualBox, where reclaiming disk space is a significant pain....

March 12, 2021

You Have to Write As Though Your Parents Are Dead

The Literary Hub has a great short interview with Ian McEwan. What’s the best writing advice you’ve ever received? When I was living in London at the start of my career in the mid-1970s, I became friends with Philip Roth, who took an avuncular interest in my work. Where many others thought my writing was wild and weird, he thought I wasn’t being wild enough. He once came to my apartment and spread the typescript of my first novel (The Cement Garden) over the floor....

March 12, 2021

Cleaning Up Your Postgres Database

I am an application/backend developer who has to quibble with databases more often than desired. I can get my way around Postgres pretty well, but I can always use a hint or two, especially when it comes to fine-tuning and performance. I stumbled upon Cleaning Up Your Postgres Databases. It offers useful advice on spotting performance bottlenecks in your Postgres database. Take the cache and index hit queries, for example....

March 9, 2021

Book Review: The Library at Night

As any other bookworm worth its salt, I digested a generous amount of books on books and the history of libraries. Alberto Manguel’s The Library at Night was last, and that is a pity. It probably arrived just a little too late on my shelves. I wish I found it at the beginning of my reading journey when my enthusiasm for libraries and their contents was pristine. Manguel’s writing is mesmerizing and capable....

March 6, 2021

Semantic Versioning Will Not Save You

The always brilliant Hynek recently posted Semantic Versioning Will Not Save You. Primarily targeted at consumers of SemVer-versioned packages, it is full of insightful advice. From my perspective as an open-source maintainer, I can tell you that versioning is hard. Judging when a new release is going to break backward compatibility is not as simple as it might seem on the surface, and Hynek does a great job explaining why. Sometimes it is also hard for me to tell if a change in a codebase classifies as a new feature, small improvement, or fix—subtle differences....

March 4, 2021

Reverse engineering an obfuscated codebase and fixing it in the process

Today’s mandatory reading is How I cut GTA Online loading times by 70%. As someone who’s been fighting the protection/obfuscation cat & mouse game for twenty+ years, let me tell you one thing. The way this guy reverse-engineered parts of the GTA5 codebase and then proceeded to single-handly triage and fix a long-standing (7+ years) performance issue is simply mindblowing. All he had to work with were heavily obfuscated dlls. This also shows how we, the protectors, are always playing a losing game....

March 2, 2021

On the CEO and founder of Signal

Last weekend’s reading list also included Taking Back Our Privacy, yet another1 New Yorker piece but this time signed by Anna Wiener. This article is a long-read on Moxie Marlinspike, co-founder and CEO of Signal. Moxie is a childhood nickname. That alone signals (pun intended) an original personality. I mean, how many times have you heard of a CEO going by his childhood nickname? Indeed the personal story of Marlinspike, along with that of the ascent of Signal, is fascinating....

March 1, 2021

The Activists Who Embrace Nuclear Power

Today, my Sunday long-reading list included New Yorker’s The Activists Who Embrace Nuclear Power by Rebecca Tuhus-Dubrow. Can nuclear power possibly be a viable solution for climate change? Twenty or even ten years ago, my answer would have been a big fat No. Today? Not so sure anymore. Today, the looming disruptions of climate change have altered the risk calculus around nuclear energy. James Hansen, the NASA scientist credited with first bringing global warming to public attention, in 1988, has long advocated a vast expansion of nuclear power to replace fossil fuels....

February 28, 2021

How to increase upload file size in ASP.NET Core

Today I learned the hard way that since ASP.NET Core 2.0, the request body has acquired a default size limit at 30MB (~28.6 MiB). If the request body size exceeds the configured max request body size limit, the call to Request.Body.ReadAsync will throw an IOException. If this exception is uncaught, Kestrel will respond with a 413 Payload Too Large response and HttpSys will respond with a generic 500 Internal Server Error response (source)....

February 26, 2021