Tag: Linux

I hope you use ShellCheck

Sunday, Sep 1, 2024

In this post I hope to convince the reader on the merits of ShellCheck. Stay tuned for more posts about using ShellCheck. On Shellscripting Shell scripting is a of passion of mine. Preferably Bash (here’s a guide). (POSIX sh a.k.a. Bourne shell works too, albeit with more effort thanks to diminished versatility when compared to Bash.) The shell scripting language family has many warts as the languages were designed for both real-time interaction and automation programming.

Continue reading…

CPUID instruction and table

Monday, Jul 15, 2024

Here’s a few notes on CPUID and /proc/cpuinfo. I made a table for quick reference. What is CPUID? On x86 and amd64 CPUs, there is a large swathe of differences in features available to the software. Some CPUs ship with AES encryption support, others ship with virtualization support, almost all ship with a collection of SIMD (single instruction multiple data) instructions. The name of the game is to reduce CPU execution times using specialized instructions.

Continue reading…

Test your backups

Saturday, Jan 27, 2024

Figure 1: John from USA - CC-BY-2.0 Watch out, things break, stuff catches fire. Let’s talk about backups. Last post, I stated that I’m going to switch focus away from NixOS commentary. This is still the plan. Today, I am still committed to NixOS thanks to technical debt created - migrations aren’t for free. Until then, enjoy my NixOS posting :). Last fall, I wanted to reformat my laptop’s NixOS deployment from BTRFS (encased within LVM2 itself encased in LUKS) to a ZFS partition plus another swap partition.

Continue reading…

Multiple arguments in shebang

Wednesday, Jan 10, 2024

Figure 1: Jamian · CC BY 3.0 Deed (link) A frequent quip of the unix-beard is shebangs cannot contain multiple command-line arguments. Let’s break it down and see where this assumption no longer holds true. What is a Shebang? The shebang is the line at the beginning scripts such as Python and Shell scripts that instructs the OS how to execute the script. Looks something like #!/bin/sh or #!/usr/bin/env python.

Continue reading…

Sway review

Thursday, Oct 26, 2023

Hello, my name is Winny and welcome to my honest review of Sway, a i3wm compatible Wayland compositor. Its primary appeal is a compositor experience that is easy to install, and familiar to i3 users. For my usage, it is one of the few compositors flexible enough to deploy on older hardware. Startup Sway does require a bit of effort and time to get it in a usable state from the stock configuration.

Continue reading…

Nix / NixOS misconceptions

Sunday, Aug 6, 2023

I’ve been using Nix for a year now. It’s been going fairly well, by the way. Here are some misconceptions I’ve had to overcome to become a more productive Nixer. False: You can’t deploy Nix software to Docker or Kubernetes False. If you can push to a docker registry such as docker.io, you can deploy to Docker or Kubernetes using Nix. You can use dockerTools.buildImage to build a docker image from Nix.

Continue reading…

Pre-commit in GitHub Actions & GitLab CI

Thursday, Mar 9, 2023

Figure 1: Pre-commit running within GitLab CI I’ve been using pre-commit as my tool to set up hooks to run when I commit to Git. It helps me catch gotchas such as fixing line endings, fixing whitespace, refusing to commit on linter errors, and so on. Often, I’ve noticed with working on teams is it’s fairly easy for a new contributor to forget to set up pre-commit on their development machine.

Continue reading…