Nathan's Adventures

Why I have settled on XChaCha20+Blake3 as the AE suite of choice for my projects

This might get me some looks, but I have pretty solidly decided to go in on using XChaCha20+Blake3 as the AE of choice for my future open source work. There are numerous reasons for this decision, but it mainly comes down to the desire for defense in depth, and a...
read more

My Experience with GCCEmacs on macOS

Gcc Emacs is the latest attempt to bring native code compilation to Emacs's elisp. It uses gcc's libgccjit to produce native code binaries for the current system from elisp. Installation Installation on my arch linux system was quite simple, but things turned out to be a bit less simple on...
read more

The State of Data Dirs

As the issue has come up on how to handle data dirs on macOS in the dirs-next project, I thought it might be prudent to take a look at how other popular libraries in other languages deal with the issue. There is some contention over whether XDG style directories (e.g....
read more

Announcing Asuran 0.1.0!

I am proud to announce that I have pushed Asuran version 0.1.0 to crates.io! What this means In a practical sense, this release mostly signifies that the core API has settled down enough that I am no longer scared of adding new, more complicated, (and more powerful) features. That doesn't...
read more

Reverse engineering my air filter (part 1)

Background I recently purchased a new air filter from costco, and its actually a pretty nice unit: Only one problem. For some ungodly reason, its an internet of shit device. It has built in wifi and an android app that both kinda seriously sucks and provides functionality not readily accessible...
read more

Dotfile-Playbook

Motivation Dotfile management is hard. Most of us are doing it with complicated series of batch scripts, and some of the smarter among us are using ansible to do the job. Ansible is, however, quite heavy weight for this task, and not really well suited to the simple set-and-forget nature...
read more

A Chunk Length Hiding Repository Format

Background The current arsuran repository format is roughly an 'improved' copy of the one borg uses. This format works reasonably well for most purposes, and it is quite possible to squeeze great performance out of it. One weakness it does have, though, is failing to hide chunk lengths. Since both...
read more

Developing Asuran (Week of 2020-03-08)

This week was a bit slow on actual development on asuran proper, there was mostly a lot of documentation changes, and work on an external library for cross-platform sparse file handling. Features Landed New listing API The universal listing API, introduced in last weeks post, is now used by the...
read more

Proposed Solution for Synchronizing the Contents of Asuran Repositories

Background The lowest abstraction level asuran provides is a Content Addressable Storage interface where the blobs, hereafter refereed to as "Chunks", are keyed by an HMAC of their plaintext. An HMAC is used, rather than a plain hash, since these keys may leak out of the encrypted sections of the...
read more

Developing Asuran (Week of 2020-03-01)

I am going to try to start doing these every week on Sunday, looking back on the past weeks work, and looking forward to what should be done in the next week. This is mostly to organize my thoughts, but also serves as a look into what work has been...
read more

Blogging in Org Mode

Background I've been telling myself to setup blogging in org mode for years, but I was worried about getting it to work with my existing org publish pipeline, but it turned out to actually be quite easy. Most of this has been shamelessly stolen from this post. What it looks...
read more