A history of ARM, part 1: Building the first chip
In 1983, Acorn Computers needed a CPU. So 10 people built one.
Source: A history of ARM, part 1: Building the first chip, an article by Jeremy Reimer.
In 1983, Acorn Computers needed a CPU. So 10 people built one.
Source: A history of ARM, part 1: Building the first chip, an article by Jeremy Reimer.
Learn how to use Nmap, to scan and analyze your network, to find network vulnerabilities. Perform Version and OS detection easily and find open ports.
Source: Learn Nmap to find your first Network Vulnerability.
Kubernetes is a colossal beast. You need to understand many different concepts before it starts being useful. When everything is set up, you’ll probably want to expose some pods to the outside of the cluster. Kubernetes provides different ways to do it: I’ll describe them in this post.
Source: Back to basics: accessing Kubernetes pods, an article by Nicolas Fränkel.
The WHOIS protocol is one of the older internet protocols around. It's infuriatingly simple, by and large considered obsolete, and the data provided by it unpredictable, unreliable, incomplete, and, of course, still one of the corner stones of internet operations. In other words, it's the kind of thing I like to waste my time on trying to understand.
Source: WHOIS: Fragile, unparseable, obsolete... and universally relied upon, an article by Jan Schaumann.
A line of code containing 6+ pieces of information should be simplified.
Source: Want cleaner code? Use the rule of six, an article by David Amos.
Every Python developer is familiar with the
self
argument, which is present in every* method declaration of every class. We all know how to use it, but do you really know what it is, why it's there and how it works under the hood?
Source: What is Python's "self" Argument, Anyway?, an article by Martin Heinz.
If you specify both the day of month and the day of week field, then cron will run the command when either of the fields match. In other words, there’s a logical OR relationship between the two fields.
Source: Schedule Cronjob for the First Monday of Every Month, the Funky Way, an article by Pēteris Caune.
The OpenBSD virtual machine daemon works pretty well with Linux VMs nowadays. This was time for me to see if I could replace the Synology Docker service with some Docker host provided by vmd(8).
Source: Running a Docker Host under OpenBSD using vmd(8), an article by Joel Carnat.
There's a question that always comes up when people pick up the Rust programming language: why are there two string types? Why is there
String
, and&str
?My Declarative Memory Management article answers the question partially, but there is a lot more to say about it, so let's run a few experiments and see if we can conjure up a thorough defense of Rust's approach over, say, C's.
Source: Working with strings in Rust.
Today, a co-worker who started working at the company recently asked
me what was preferred: use base
or use parent
. He preferred the
latter, and so did I. I linked to an article by Mark Gardner:
Multiple ways to inheritance in
Perl
which also recommends use parent
over use base
.
The Rust team is happy to announce a new version of Rust, 1.64.0. Rust is a programming language empowering everyone to build reliable and efficient software.
Source: Announcing Rust 1.64.0.
Postgres is an awesome database for a lot of reasons, put simply it's a really feature rich, powerful, and reliable database. One of those rich areas is the many built-in functions in Postgres.
Source: Fun With Postgres Functions, an article by Craig Kerstiens.
So you have a Jupyter Notebook with
pyproject.toml
andpoetry.lock
files, and you want to productionise it? You’ll just need a Linux or macOS machine.
Source: Reproducible Jupyter Notebook with Nix, an article by Victor Engmark.
FreeBSD has a very stable and well thought out init and services system called rc(8).
This is a guide to declarative nirvana: describing the desired end state of an entire production pipeline (building, provisioning, deploying, and everything in between) in code, and then materializing it with a single command. We achieve this by integrating two tools: Terraform and Nix.
Source: A Comprehensive Guide to End-to-End-Declarative Deployment with Terraform and Nix, an article by Jonas Carpay.
The fast proliferation of Kubernetes has meant that many more organizations are running Kubernetes without the personnel or the money to secure it properly. And yes, that includes you, "person who is primarily a developer, but deployed an GKE cluster 6 months ago while following the CIS benchmarks and hasn't looked at it since, thinking it's super secure because it's 'managed' by Google". Hopefully this collection of tips will help you out!
Source: Under-documented Kubernetes Security Tips, an article by Mac Chaffee.
We can use Make and a couple of short shell scripts to implement file content-based caching and read/write that cache to remote storage, such as S3. The demo repository contains a version using minio for ease of demonstration.
Source: Content based change detection with Make, an article by Andy Dote.
redframes (rectangular data frames) is a data manipulation library for ML and visualization. It is fully interoperable with pandas, compatible with scikit-learn, and works great with matplotlib!
redframes prioritizes syntax over flexibility and scope. And minimizes the number-of-googles-per-lines-of-code™ so that you can focus on the work that matters most.
Source: redframes, an article by Max Humber.
At Crunchy we talk a lot about memory, shared buffers, and cache hit ratios. Even our new playground tutorials can help users learn about memory usage. The gist of many of those conversations is that you want to have most of your frequently accessed data in the memory pool closest to the database, the shared buffer cache.
There's a lot more to the data flow of an application using Postgres than that. There could be application-level poolers and Redis caches in front of the database. Even on the database server, data exists at multiple layers, including the kernel and various on-disk caches. So for those of you that like to know the whole story, this post pulls together the full data flow for Postgres reads and writes, stem-to-stern.
Source: Postgres Data Flow, an article by David Christensen.
One aspect of Haskell that many new users find difficult to get a handle on is operators. Unlike many other languages, Haskell gives a lot of flexibility to developers to define custom operators. This can lead to shorter, more elegant code in many cases.
Source: Operator Glossary.
Grids help designers create cohesive layouts, allowing end users to easily scan and use interfaces. A good grid adapts to various screen sizes and orientations, ensuring consistency across platforms.
Source: Using Grids in Interface Designs, an article by Kelley Gordon.