week 49, 2022

IPv6 Internet Is Broken

The Internet is made up of a bunch of smaller networks. All these small networks connect to one another is some manner. Some of them buy IP transit from other networks, some of then peer with one another for free. Whatever the case may be, everyone on the Internet should be able to reach everyone else connected to the Internet. This is true when it comes to IPv4. This is currently not true when it comes to IPv6.

Source: IPv6 Internet Is Broken.

Familie Weekend (2016)

A widower invites his children for a family weekend with the announcement that he has news. He is getting married with a 30 years younger woman. The children start the competition for heritage. What is more important: money or family?

In the evening Esme and I watched the Dutch movie Familieweekend. The movie was OK and I give it a 6 out of 10.

Code coverage for your AWK programs

A few months ago Volodymyr opened an issue in the GoAWK repo saying that he was adding a code coverage feature to GoAWK, “similar to the one built into Golang itself”. It’s not every day that I get interesting submissions like that, plus, Volodymyr had already submitted several quality bug reports to the project, so I trusted his ability.

Source: Code coverage for your AWK programs, an article by Ben Hoyt.

A Practical Guide to CSS Media Queries

In this article, we'll take a closer look at what media queries are, how they work, and how to use them correctly, including for creating responsive designs. We'll also cover breakpoints, look at examples, and understand the different types of device types that can be specified directly with the @media property.

Source: A Practical Guide to CSS Media Queries, an article by Alex Ivanovs.

How to create a more effective homepage

At least once a day, I see a startup’s website and think, “I have no idea what this company does.” If I am able to get a sense of what the company is building, many times I have no idea who they are building for or why someone would choose this product. And I don’t think I’m alone here. We’ve all scrolled down through an entire homepage and just thought, “huh?”

Source: How to create a more effective homepage, an article by Emily Kramer.

Python Linter Comparison 2022

In November 2022, I upgraded my text editor to Sublime Text 4 and then took the opportunity to spend a few hours reviewing all of the Python linters I could find. After personally reviewing all of them, I've selected the following as must-haves: Pyflakes, Mypy, and Black. If you'd like additional tools, I also liked: Radon, Pyroma, and docformatter. I'm using Python 3.12.0. I don't care for my linter to point out when I stray from the certain dictates in the PEP 8 document, and my linter choices reflect that. You might have different needs and values than I, so in this blog post I give my reasoning and views for each linter.

Source: Python Linter Comparison 2022: Pylint vs Pyflakes vs Flake8 vs autopep8 vs Bandit vs Prospector vs Pylama vs Pyroma vs Black vs Mypy vs Radon vs mccabe - The Invent with Python Blog, an article by Al Sweigart.

Hellraiser (2022)

A take on Clive Barker's 1987 horror classic where a young woman struggling with addiction comes into possession of an ancient puzzle box, unaware that its purpose is to summon the Cenobites.

In the evening Alice and I watched Hellraiser. I liked the movie a little and give it a 6 out of 10.

It’s time to stop using Python 3.7

Upgrading to new software versions is work, and work that doesn’t benefit your software’s users. Users care about features and bug fixes, not how up-to-date you are.

So it’s perhaps not surprising how many people still use Python 3.7. As of December 2022, almost 30% of packages downloaded from PyPI were for Python 3.7. This includes automated downloads as part of CI runs, so it doesn’t mean 3.7 is used in 30% of applications, but that’s still a lot of people using an old version of Python.

Still, there is only so much time you can delay upgrading, and for Python 3.7, the time to upgrade is over the next few months. Python 3.7 is reaching its end of life as of June 2023.

Source: It’s time to stop using Python 3.7, an article by Itamar Turner-Trauring.

The Outpost (2019)

A small team of U.S. soldiers battles against hundreds of Taliban fighters in Afghanistan.

In the evening I watched The Outpost. I liked the movie and give it a 7 out of 10.

How can I boot NixOS? Let me count the ways...

NixOS is an operating system based on the Nix package manager and Linux. Linux is an operating system kernel, which means it runs on hardware and mediates access to this hardware by the user space – providing abstractions to allow applications and services to care less about what exact hardware they’re running on, and allocating resources to allow multiple processes to run at once.

I’m going to talk about how we get from a bootloader to a running operating system, then compare how “traditional” Linux distros and NixOS fit the pieces together, and then showcase some of the possibilities that NixOS puts within easy reach.

Source: How can I boot NixOS? Let me count the ways..., an article by Linus Heckemann.

Exercises for understanding lenses

No matter how many blog posts and tutorials I read about lenses, it seems like there’s no replacement for just using them to get an intuition. So here are some exercises I came up with. While they shouldn’t be all that difficult, they build up from some basic knowledge about lenses up to the more advanced usages of the lens library.

Source: Exercises for understanding lenses, an article by William Yao.

Why use EShell?

While diving into the source code of Emacs’ Shell (eshell), I found some gems and thought I’d share the top 10 reasons why you should give Eshell a second chance.

Source: Why use EShell?, an article by Howard Abrams.

Adventures in Advent of Code

I’ve been participating regularly in Advent of Code for the past couple of years. It’s one of the highlights of my holiday season. The puzzles are fun, the stories are appropriately ridiculous, and it’s a neat way for me to keep the cobwebs brushed off some of the things I learned years ago that I don’t regularly use. Every year there are puzzles that take me a couple of minutes to solve, and puzzles that take me hours: I will forever curse the Intcode puzzles from 2019.

Last night’s puzzle was something new. The problem itself was pretty straight-forward (finding values that are common in multiple collections), but it resulted in a 45-minute debugging session that culminated in finding a bug in Swift’s implementation of Set.intersection(_:).

Source: Adventures in Advent of Code, an article by Dave DeLong.

Installing FreeBSD on a Raspberry Pi

We're building an Active Directory server from Samba running on FreeBSD, free server software on a free operating system. We have set up the needed DNS infrastructure on an existing BIND master (or primary) DNS server. Our next step is to put together a system that we will make a slave (or secondary) DNS server, an initial step in building a Samba-based Active Directory server. We will do this with FreeBSD running on a Raspberry Pi.

Source: Installing FreeBSD on a Raspberry Pi, an article by Bob Cromwell.

The Ups & Downs of Working With Go

Go is the programming language that delivers no empty promises for cloud applications and DevOps automation. It’s lightweight, the perfect match for parallel computing, and simple to use. We had to hop on the Golang bandwagon, as well. Over the past months of working with the language, we found out about its advantages and disadvantages we learned to manage including error handling and interfaces.

Source: The Ups & Downs of Working With Go.