Towards a better archive extractor interface

I have waited years and years for someone to make a general purpose archive extracting tool the way I can picture it. The requirements are limited to:

  1. Extracts all common archive formats (.tar.bz2, .zip, etc.)
    • This kind of goes without saying, but it doesn’t pedantically “extract” a .tar.bz2 into a .tar file (I’m looking at you 7-zip)
  2. Needs no flags or subcommands or other configuration for the common use case
  3. Never creates more than 1 top-level file or directory per archive file
  4. Doesn’t add an extra layer of directory nesting when the archive only contains a single top-level directory

Continue Reading

My review of the System76 Oryx Pro (oryp10)

I am an odd duck when it comes to taste, laptops included. So it is unlikely this review will be helpful for many people. Do all the following apply to you?

If so, read on.

Continue Reading

Updated Jekyll Pages

Heads up: I intend to start posting more low-effot content here, more frequently.

This site was long ago a Github Pages site, but a while back I migrated it to over to old-school web hosting. The magic that makes it happen is a set of scripts I created, called jekyll-pages. Entropy took its toll in the intervening 4 years since I created it and it was due for a refresh.

Continue Reading

Make Your Commit Messages Inversely Proportional To Diff Length

You’d think based on the title that this post is about commit messages. It’s not. At least, not really.

What I want to reflect on is how we go about grouping changes into a commit history. It is my opinion that some styles are better than others. And if you agree with my style, you too might find that your commit messages are inversely proportional to the length of the commit diff.

Continue Reading

Unit Testing: A Black Box?

The beauty of declarative programming—regexs, SQL, CSS selectors—is that you don’t have to think about the execution model, at least not most of the time. Yet… somewhere along the journey to mastery you will be forced to understand the execution model if you want to progress.

If you’ll allow the analogy, I think the same pattern occurs with unit testing. When you start, it’s a thing of beauty that you can treat the code under test as a black box. But as you progress, well…

Continue Reading