Knot DNS: One Tame and Sane Authoritative DNS Server

How to install and minimally configure Knot to act as your home lab's local domain master and slave servers. If you were a regular viewer of the original Saturday Night Live era, you will remember the Festrunks, two lewd but naïve Czech brothers who were self-described "wild and crazy guys!" For me, Gyorg and Yortuk (plus having my binomial handed to me by tests designed by a brilliant Czech professor at the local university's high-school mathematics contests) were the extent of my knowledge of the Czech Republic.

WebAuthn Web Authentication with YubiKey 5

A look at the recently released YubiKey 5 hardware authenticator series and how web authentication with the new WebAuthn API leverages devices like the YubiKey for painless website registration and strong user authentication.

Breaking Up Apache Log Files for Analysis

Dave tackles analysis of the ugly Apache web server log. I know, in my last article I promised I'd jump back into the mail merge program I started building a while back. Since I'm having some hiccups with my web server, however, I'm going to claim editorial privilege and bump that yet again.

Creating Linux Command-Line Tools in Clojure

Learn how the leiningen utility can help you manage your Clojure projects. This article is a gentle introduction to the Clojure Functional Programming language that is based on LISP, uses the Java JVM and has a handy REPL. And, as Clojure is based on LISP, be prepared to see lots of parentheses! Installing Clojure You can install Clojure on a Debian Linux machine by executing the following command as root or using sudo:

Text Processing in Rust

Create handy command-line utilities in Rust. This article is about text processing in Rust, but it also contains a quick introduction to pattern matching, which can be very handy when working with text. Strings are a huge subject in Rust, which can be easily realized by the fact that Rust has two data types for representing strings as well as support for macros for formatting strings. However, all of this also proves how powerful Rust is in string and text processing.

Easier Python paths with pathlib

A look at the benefits of using pathlib, the "object-oriented way of dealing with paths". Working with files is one of the most common things developers do. After all, you often want to read from files (to read information saved by other users, sessions or programs) or write to files (to record data for other users, sessions or programs).

Command-Line Tip: Put Down the Pipe

Learn a few techniques for avoiding the pipe and making your command-line commands more efficient. Anyone who uses the command line would acknowledge how powerful the pipe is. Because of the pipe, you can take the output from one command and feed it to another command as input. What's more, you can chain one command after another until you have exactly the output you want.