The networkQuality tool is a built-in tool released in macOS Monterey that can help diagnose network issues and measure network performance. In this post, we'll go over how to use the networkQuality tool and some of its key features.
Eigenvalues are a notoriously hard topic to understand. Their definition can be unintuitive, making it difficult to understand their usefulness.
Recently, I've started explaining eigenvalues as the magnitude of a matrix, that generalizes the notion of "big" and "small" numbers.
Source: Eigenvalues as the magnitude of the matrix, an article by Marton Veges.
When you spend a lot of time with a language, you start noticing patterns in what you reach for. Things you always recode. Stuff you always install.
Eventually you start wishing that stuff would be part of the language itself.
For the libs presented in this article, this obviously can't happen. They are too big, they are moving too fast, they may be too specific.
So of course, they are not, and will never be part of the Python stdlib.
But since I like them so much, I suppose you may want to know about them as well.
The story of The Super Mario Bros. on their journey through the Mushroom Kingdom.
In the early afternoon we went to Delft. After quite some shopping we ended up at the movie theatre and decided to watch The Super Mario Bros. Movie, which started at 6PM. I liked the movie more than I expected and give it a 7 out of 10.
ECC is the next generation of public key cryptography and, based on currently understood mathematics, provides a significantly more secure foundation than first generation public key cryptography systems like RSA. If you're worried about ensuring the highest level of security while maintaining performance, ECC makes sense to adopt. If you're interested in the details, read on.
Source: A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography, an article by Nick Sullivan.
Golang, aka Go, is a modern programming language known for its simplicity, ease of use, and ability to handle high-concurrency tasks. However, this simplicity can sometimes bring complexity to the code you write. As a software developer, I learned this while delving deeper into coding with Go.
Transitioning to a new programming language can be challenging, and Go is no exception. In this article, I’ll explore some of the challenges I faced when migrating to Go from another language.
Source: How Go’s Simplicity Brings Complexity, an article by Bisma Pervaiz.
Hello! I’m excited to announce a project I’ve been working on for a long time: a free guide to implementing your own DNS resolver in a weekend.
The whole thing is about 200 lines of Python, including implementing all of the binary DNS parsing from scratch.
Source: Introducing "Implement DNS in a Weekend", an article by Julia Evans.
Whenever I give a talk about time zones, someone comes up to me afterwards and tells me that they have broken code currently in production, because they misunderstood how
pytzworks. This is because pytz uses its own non-standard interface for handling time zone information that is partially but not entirely compatible with the way Python's
datetimelibrary was intended to work, which leads to a lot of confusion from people naively using
pytzas a time zone provider. This incompatibility is why, as of Python 3.6, the tzinfo documentation recommends
pytzas an IANA time zone provider. 
In this post, I will cover both time zone models and if I cannot convince you to switch to
dateutil.tz, at least provide some intuition about the differences between
pytzand the standard time zone model.
Source: pytz: The Fastest Footgun in the West, an article by Paul Ganssle.
Basically, you have two choices to parametrize tests in Rust:
- Code generation
- Custom test harness
They’re both not great.
Source: A guide to test parametrization in Rust, an article by Markus Unterwaditzer.
With the list bellow, I hope I can help developers improve their skills and rise up in their career path.
Source: Programing Best Practices 2023, an article by Derek Nguyen.
Today, we're going to talk about virtualization, instruction set architectures, and machines. This post isn't meant to get into all of the details, but should give you a good mental framework with which to place these concepts, and serve as a nice jumping-off point for further research.
Source: Understanding Wasm, Part 1: Virtualization, an article by Chris Dickinson.
Whether you are developing a new application or defining a new protocol, you may have a hard time deciding which hash function to use. Which one is safe? Which one is fast?
Let's find out!
Source: Fast hashing, it's not that simple, an article by Sylvain Kerkour.
When you often login into servers with SSH there’s time to be saved. This article will help you save time and lessen distractions on remembering user- and servernames. There’s three ways of making thing easy: Aliasing, SSH tweaking and TAB completion.
Source: SSH quick and easy login setup.
This blog is aimed at beginners trying to learn the basics of PostgreSQL but already have some experience under their belt. For this tutorial, we will assume you have PostgreSQL correctly installed on Ubuntu. All of these steps were done using PostgreSQL 16 (development version) and Ubuntu 22.10. We’ll go over 3 different restoration methods, the “default” restore to “latest” method, restore by Log Sequence Number (LSN) and restore by timestamp.
Source: Various Restoration Techniques Using PostgreSQL Point-In-Time Recovery, an article by Tristen Raab.
- Tunneling TCP connections over a TCP-based VPN leads to conflict between the reliability mechanisms of the two connections, resulting in decreased bandwidth and stutter-y performance. Always tunnel TCP over UDP when you can.
- In rare cases, overly restrictive firewalls may block UDP traffic, in which case you should obfuscate the tunnel’s UDP traffic as TCP to bypass restrictions.
- The adoption of UDP-based QUIC will make more internet traffic be on UDP, forcing firewalls to be less restrictive towards UDP traffic.
Source: Why your TCP-based VPN stutters (and how to fix it), an article by Carl Dong.
During the war in Afghanistan, a local interpreter risks his own life to carry an injured sergeant across miles of grueling terrain.
In the evening I watched The Covenant. I liked the movie a lot and give it an 8 out of 10.
When you start to build web applications with Go, one of the first questions you'll probably ask is "which router should I use?".
It's not an easy question to answer, either. There are probably more than 100 different routers available, all with different APIs, features, and behaviors. So for this blog post I've evaluated 30 popular ones, and created a shortlist of the best options along with a flowchart that you can use to help guide your choice.
Source: Which Go router should I use? (with flowchart), an article by Alex Edwards.
aarch64moved to Tier-1 for FreeBSD, it’s a good idea to also test your ports on that architecture. But if you don’t own hardware for that, you will quickly run into limitations with the
native-xtoolsapproach for cross-building. Some ports just won’t work with this.
One possible solution is to subscribe to the Oracle Cloud. They offer some resources as “always free”; you can use them to configure one aarch64 machine with specs good enough for occassional ports testing.
At the moment, you can pick one FreeBSD RELEASE image, which will give you a root partition with UFS. For ports testing with
poudriere, you will need ZFS to do it efficiently, and you should run
-CURRENTto also test that. This document describes the steps needed to get there.
Source: A ports test builder for aarch64 in Oracle Cloud, an article by Felix Palmen.
In 2009, I wrote a blog post How to submit a patch by email, which became popular at the time and also ended up in the PostgreSQL wiki. That article was written pre-Git and pre-cfbot, so maybe it’s time for a refresher, as we head into the next PostgreSQL development cycle.
The short answer is: Use
git format-patch. That takes care of almost all of the conventions and details.
Source: How to submit a patch by email, 2023 edition, an article by Peter Eisentraut.
In this post, I am going to share what I have learned about writing HTTP client middleware in Go. Let’s get started!
Source: Writing HTTP client middleware in Go, an article by Amit Saha.
The Dunning and Kruger experiment did find a real effect – most people think they are better than average. But according to my team’s work, that is all Dunning and Kruger showed. The reality is that people have an innate ability to gauge their competence and knowledge. To claim otherwise suggests, incorrectly, that much of the population is hopelessly ignorant.
Source: Debunking the Dunning-Kruger effect – the least skilled people know how much they don't know, but everyone thinks they are better than average, an article by Eric C. Gaze.
Well, great news — it’s back. And it’s so much better than the previous version.
Even better, the W3C spec is mostly stable, and there’s a working prototype in Chrome now. We just need a little interest from the community to entice other browsers to build their implementations and kick this over the finish line.
Source: Scoped CSS is Back, an article by Keith J. Grant.