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.
Explores a technique for compiling Unix 'find' command expressions into bytecode for efficiency, contrasting with existing tree-walk interpreters.
Exploring the philosophical and technical significance of the Unix 'fortune' command as an antidote to modern algorithmic engagement.
Announcing a new zine explaining the hidden rules and inconsistencies of the terminal, based on 20 years of experience.
A software engineer's 100-day challenge to explore and document every GNU Coreutils command, sharing insights and examples.
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.
A critique of open-source software development's 'bazaar' model and advice for open-source maintainers on managing projects and avoiding burnout.
Analyzes the limitations of the classic sendmail MTA in modern multi-user systems and proposes a more secure, user-configurable replacement.
Explains how macOS's SIP sanitizes DYLD_LIBRARY_PATH, breaking some tools, and offers workarounds for developers.
An exploration of the Plan 9 operating system, its innovative design principles, and its influence on modern computing.
Introducing Himitsu, a new Unix key/value store and protocol for managing secrets like passwords and SSH keys, with a focus on extensibility and user consent.
Explains how to generate ioctl numbers for the Hare programming language using code generation, as Hare lacks C-style macros.
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
The article argues for the importance of shell literacy in a programmer's workflow, demonstrating its power with a practical Git example.
A quick guide on using the 'tac' command in the terminal to reverse the order of lines in a file or standard input.
An introduction to dotfiles, explaining their purpose for customizing Unix-like systems, automating tasks, and personalizing GitHub Codespaces.
A challenging Unix trivia quiz with historical context, originally used to control program exit and later featured at a USENIX conference.