week 40, 2021

Setting up IPv6 on a Linux Router

It’s fairly straightforward to build your own router, and there are a number of tutorials for setting up IPv4 forwarding and NAT rules on Linux1. However, IPv6 is a bit more complicated. There are many BSD and Linux based operating systems like pfSense and OpenWRT, which have web management tools to make setting up IPv6 straight forward. However, if you like to run your own custom Linux distribution on your home router and control everything from the command line, this tutorial will take you through configuring dhcpcd, dnsmasq, unbound, iptables and ip6tables for full IPv6 support on your local network.

Source: Setting up IPv6 on a Linux Router, an article by Sumit Khanna.

Improving Git's Autocorrect Feature

Git has an autocorrect feature. It is not very popular and for good reason. By default, Git suggests the closest command when you try to run a command that doesn’t exist. For example, if you run git sttus, git will suggest running git status. However if you configure the help.autocorrect setting, Git can also “autocorrect” (as in run the command for you). The feature seems useful till you realize that command will be run without any user action. You can configure how long it waits before running the command but not for it to wait for user action.

Source: Improving Git's Autocorrect Feature, an article by Azeem Bande-Ali.

Tips for debugging with print()

If you’re embarrassed at debugging with print(), please don’t be - it’s perfectly fine! Many bugs are easily tackled with just a few checks in the right places. As much as I love using a debugger, I often reach for a print() statement first.

Source: Tips for debugging with print(), an article by Adam Johnson.

Git as a storage

Git becomes quite popular SCM and everyone knows it a system for tracking source code changes. It’s a true, but many people doesn’t know that Git is an abstract storage that store data as binary pieces named blobs. It allows to store other artifacts useful during software development process. I’ll describe another scenarios where Git can be useful and what tools make it possible.

Source: Git as a storage, an article by Sergey Bronnikov.

Vim Anti-Patterns That Cause Beginners to :Quit

As much as I can recommend vim since I made the switch many years ago, there’s a bunch of anti-patterns I’ve commited myself (and later saw others repeat them), which often resulted in frustration and writing off the idea, perhaps prematurely. It’s a shame to see this, because to me vim is something else and it continues to bring a lot of joy to my work even after all this time. What follows are my thoughts on some mistakes, so hopefully others reading this will avoid them :)

Source: Vim Anti-Patterns That Cause Beginners to :Quit, an article by Pawel Duda.

A Hacker's Guide to Git

Git is currently the most widely used version control system in the world, mostly thanks to GitHub. By that measure, I’d argue that it’s also the most misunderstood version control system in the world.

Source: A Hacker's Guide to Git, an article by Joseph Wynn.

The Guilty (2021)

A demoted police officer assigned to a call dispatch desk is conflicted when he receives an emergency phone call from a kidnapped woman.

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

Four years of Python

The other day I realized: I've been programming in Python for about 4 years now. I do get paid to write code, but for some reason still don't consider myself a pro. I did learn some valuable lessons though.

For those who just got started with Python, you'll hopefully take something out of these lessons. For the experienced, see this as a celebration of our beloved language.

Source: Four years of Python, an article by Duarte O.Carmo.

Branching Strategies in Git

Almost all version control systems (VCS) have some kind of support for branching. In a nutshell, branching means that you leave the main development line by creating a new, separate container for your work and continue to work there. This way you can experiment and try out new things without messing up the production code base. Git users know that Git’s branching model is special and incredibly powerful; it’s one of the coolest features of this VCS. It’s fast and lightweight, and switching back and forth between the branches is just as fast as creating or deleting them. You could say that Git encourages workflows that use a lot of branching and merging.

Source: Branching Strategies in Git, an article by Tobias Günther.

The Burning White

In this stunning conclusion to the epic New York Times bestselling Lightbringer series, kingdoms clash as Kip struggles to escape his family's shadow in order to protect the land and people he loves. Gavin Guile, once the most powerful man the world had ever seen, has been laid low. He's lost his magic, and now he is on a suicide mission. Failure will condemn the woman he loves. Success will condemn his entire empire. As the White King springs his great traps and the Chromeria itself is threatened by treason and siege, Kip Guile must gather his forces, rally his allies, and scramble to return for one impossible final stand.

In the evening I started in The Burning White, the final book in the Lightbringer series by Brent Weeks.

Mastering Structural Pattern Matching

If you’re not familiar with the term Structural Pattern Matching then you are not alone. It’s a feature that, until about 10-15 years ago, you would not see outside of functional programming languages. Its use, however, has spread; today you can find a feature like it in C#, Swift, and Ruby. What was once the preserve of niche languages is now available for you to try in Python 3.10.

Source: Mastering Structural Pattern Matching.

The Apple A15 SoC Performance Review: Faster & More Efficient

A few weeks ago, we’ve seen Apple announce their newest iPhone 13 series devices, a set of phones being powered by the newest Apple A15 SoC. Today, in advance of the full device review which we’ll cover in the near future, we’re taking a closer look at the new generation chipset, looking at what exactly Apple has changed in the new silicon, and whether it lives up to the hype.

Source: The Apple A15 SoC Performance Review: Faster & More Efficient, an article by Andrei Frumusanu.