How to Build an Executable from a JAR using ExecJAR
A guide to using the execjar tool to create executable JAR files for Java applications, compatible with UNIX systems.
A guide to using the execjar tool to create executable JAR files for Java applications, compatible with UNIX systems.
Announcing a new zine explaining the hidden rules and inconsistencies of the terminal, based on 20 years of experience.
Fixing the 'too many open files' error in Soju IRC bouncer by increasing file descriptor limits on OpenBSD.
Introducing snooze, a lightweight alternative to cron for scheduling tasks without requiring root privileges or a background service.
A deep dive into implementing a Unix tool with retry logic and timeouts, exploring multiple system-level approaches for waiting on child processes.
Explores using a local SSH server as a secure alternative to sudo for privilege management, avoiding setuid binaries.
Analyzes the limitations of the classic sendmail MTA in modern multi-user systems and proposes a more secure, user-configurable replacement.
Table of Contents The beauty of scripting and automation The Syntax Conclusion The beauty of scripting and automation Today is a great world to live i
An introduction to dotfiles, explaining their purpose for customizing Unix-like systems, automating tasks, and personalizing GitHub Codespaces.
A personal review and analysis of the 'Revolution OS' film, exploring the history and impact of the GNU project and the Free & Open Source Software movement.
A blog post reviewing a video presentation by Rob Pike on the history and development of the Unix operating system at Bell Labs.
Explains how Unix shell commands use Lisp-like syntax with program-name-first structure and expression composition.
Explains how symlinks affect directory navigation in Unix shells vs. programming languages like Python, highlighting the 'cd -P' option.