jyn.dev
remotely unlocking an encrypted hard disk
Your mission, should you choose to accept it, is to sneak into the earliest parts of the boot process, swap the startup config without breaking anything, and leave without a trace. Are you ready? Let's begin. the setup In which our heroes are introduced, and the scene is set. For a very long time I had a beat-up old ThinkPad that couldn’t hold a charge for the life of it, especially when running Windows. It tended to die a lot when I was traveling, and I travel a lot. To save battery when I’m aw...
pre-commit hooks are fundamentally broken
Let's start a new Rust project. $ mkdir best-fizzbuzz-ever $ cd best-fizzbuzz-ever $ cat << EOF > main.rs fn main() { for i in 0.. { println ("fizzbuzz"); }} EOF $ git init Initialized empty Git repository in /home/jyn/src/third-website/best-fizzbuzz-ever/.git/ $ git add main.rs $ git commit -- message fizzbuzz [main (root-commit) 661dc28] fizzbuzz 1 file changed, 4 insertions(+) create mode 100644 main.rs Neat. Now let's say I add this to some list of fizzbuzz projects in dif...
i'm just having fun
IT IS ONLY COMPUTER Reilly Wood i work professionally on a compiler and write about build systems in my free time and as a result people often say things to me like "reading your posts points to me how really smart you are" or "reading a lot of this shit makes me feel super small". this makes me quite uncomfortable and is not the reaction i'm seeking when i write blog posts. it's not a competition i mean, in some sense if you work as a professional programmer it is a competition, because the job...
what is a build system, anyway?
Andrew Nesbitt recently wrote a post titled What is a Package Manager ? This post attempts to do the same for build systems. big picture At a high level, build systems are tools or libraries that provide a way to define and execute a series of transformations from input data to output data that are memoized by caching them in an object store . Transformations are called steps or rules 1 and define how to execute a task that generates zero or more outputs from zero or more inputs. A rule is usual...
I want a better build executor
This post is part 4/4 of a series about build systems . The market fit is interesting. Git has clearly won, it has all of the mindshare, but since you can use jj to work on Git repositories, it can be adopted incrementally. This is, in my opinion, the only viable way to introduce a new VCS: it has to be able to be partially adopted. Steve Klabnik If you've worked with other determinism-based systems, one thing they have in common is they feel really fragile, and you have to be careful that you d...