I source my linen from recovering communist states in the remnants of the Soviet Union.

Linen is my preferred material for bedding and towels (except for travel towels, where I still prefer synthetic). When purchased through normal channels, it can be prohibitively expensive. I cut out the middlemen and acquire linen directly from Eastern European makers on Esty, where it is much more affordable. My duvet cover is from Belarus. My sheets and pillow cases also hail from Belarus. My preferred towels are from Lithuania.

Oster Classic 76

I started buzzing my hair in 2009 after six years of long hair.

Haircut

In the first few years I went through a couple different pair of clippers. They were all cheap, consumer-level models that eventually crapped out. I tried a model that had a shape which claimed to be more ergonomic for self-cutting, but it ended up offering no practical advantage.

At the start of 2015 I bit the bullet and purchased the Oster Classic 76. I had heard great things about this brand and model since I first started looking at clippers, but couldn’t justify the price until I had spent more than their worth on other clippers that failed. The Oster Classic 76 is built like a tank. Oster has been building electric clippers in the US since 1928, and it shows in their product. They also build their products to be serviceable. Unlike cheaper clippers, these can be stripped down to their individual parts and repaired.

As with any other pair of clippers plastic comb sets are available. But one of the things I appreciate about the Oster is that you can also purchase metal blades of the preferred length. I cut my hair to 3/8”, so when I bought the clippers I also purchased the 76918-146 replacement blade. I think this offers a better cut than a short blade with a plastic comb.

I’ve been using this setup for four and a half years and have no complaints. Given my limited and personal use, I expect it should last the rest of my life.

Optical Backups of Financial Archives

Every year I burn an optical archive of my financial documents, similar to how (and why) I create optical backups of photos. I schedule this financial archive for the spring, after the previous year’s taxes have been submitted and accepted. Taskwarrior solves the problem of remembering to complete the archive.

$ task add project:finance due:2019-04-30 recur:yearly wait:due-4weeks "burn optical financial archive with parity"

The archive includes two git-annex repositories.

The first is my ledger repository. Ledger is the double-entry accounting system I began using in 2012 to record the movement of every penny that crosses one of my bank accounts (small cash transactions, less than about $20, are usually-but-not-always except from being recorded). In addition to the plain-text ledger files, this repository also holds PDF or JPG images of receipts.

The second repository holds my tax information. Each tax year gets a ctmg container which contains any documents used to complete my tax returns, the returns themselves, and any notifications of those returns being accepted.

The yearly optical archive that I create holds the entirety of these two repositories – not just the information from the previous year – so really each disc only needs to have a shelf life of 12 months. Keeping the older discs around just provides redundancy for prior years.

Creating the Archive

The process of creating the archive is very similar to the process I outlined six years ago for the photo archives.

The two repositories, combined, are about 2GB (most of that is the directory of receipts from the ledger repository). I burn these to a 25GB BD-R disc, so file size is not a concern. I’ll tar them, but skip any compression, which would just add extra complexity for no gain.

$ mkdir ~/tmp/archive
$ cd ~/library
$ tar cvf ~/tmp/archive/ledger.tar ledger
$ tar cvf ~/tmp/archive/tax.tar tax

The ledger archive will get signed and encrypted with my PGP key. The contents of the tax repository are already encrypted, so I’ll skip encryption and just sign the archive. I like using detached signatures for this.

$ cd ~/tmp/archive
$ gpg -e -r peter@havenaut.net -o ledger.tar.gpg ledger.tar
$ gpg -bo ledger.tar.gpg.sig ledger.tar.gpg
$ gpg -bo tax.tar.sig tax.tar
$ rm ledger.tar

Previously, when creating optical photo archives, I used DVDisaster to create the disc image with parity. DVDisaster no longer exists. The code can still be found, and the program still works, but nobody is developing it and it doesn’t even an official web presence. This makes me uncomfortable for a tool that is part of my long-term archiving plans. As a result, I’ve moved back to using Parchive for parity. Parchive also does not have much in the way of active development around it, but it is still maintained, has been around for a long period of time, is still used by a wide community, and will probably continue to exist as long as people share files on less-than-perfectly-reliable mediums.

As previously mentioned, I’m not worried about the storage space for these files, so I tell par2create to create PAR2 files with 30% redundancy. I suppose I could go even higher, but 30% seems like a good number. By default this process will be allowed to use 16MB of memory, which is cute, but RAM is cheap and I usually have enough to spare so I’ll give it permission to use up to 8GB.

$ par2create -r30 -m8000 recovery.par2 *

Next I’ll use hashdeep to generate message digests for all the files in the archive.

$ hashdeep * > hashes

At this point all the file processing is completed. I’ll put a blank disc in my burner (a Pioneer BDR-XD05B) and burn the directory using growisofs.

$ growisofs -Z /dev/sr0 -V "Finances 2019" -r *

Verification

The final step is to verify the disc. I have a few options on this front. These are the same steps I’d take years down the road if I actually needed to recover data from the archive.

I can use the previous hashes to find any files that do not match, which is a quick way to identify bit rot.

$ hashdeep -x -k hashes *.{gpg,tar,sig,par2}

I can check the integrity of the PGP signatures.

$ gpg --verify tax.tar.gpg{.sig,}
$ gpg --verify tax.tar{.sig,}

I can use the PAR2 files to verify the original data files.

$ par2 verify recovery.par2

Identifying individuals by using a laser to record the vibrations of their heartbeat is a neat idea.

The Pentagon’s new Jetson laser sounds like a simple concept:

A new device, developed for the Pentagon after US Special Forces requested it, can identify people without seeing their face: instead it detects their unique cardiac signature with an infrared laser. While it works at 200 meters (219 yards), longer distances could be possible with a better laser. “I don’t want to say you could do it from space,” says Steward Remaly, of the Pentagon’s Combatting Terrorism Technical Support Office, “but longer ranges should be possible.”

Contact infrared sensors are often used to automatically record a patient’s pulse. They work by detecting the changes in reflection of infrared light caused by blood flow. By contrast, the new device, called Jetson, uses a technique known as laser vibrometry to detect the surface movement caused by the heartbeat. This works though typical clothing like a shirt and a jacket (though not thicker clothing such as a winter coat).

I wonder if they aim center mass, or if they can get a reading off the carotid. If it’s the former, it seems likely to be defeated by wearing plates, which is probably good life advice if the Pentagon is interested in you anyways.

The article also mentions that “[o]ne glaring limitation is the need for a database of cardiac signatures”, but I suspect they can just acquire that data from Apple, Strava, Fitbit, etc.

via Infowarrior

Boots Theory of Socioeconomic Unfairness

The reason that the rich were so rich, Vimes reasoned, was because they managed to spend less money.

Take boots, for example. He earned thirty-eight dollars a month plus allowances. A really good pair of leather boots cost fifty dollars. But an affordable pair of boots, which were sort of OK for a season or two and then leaked like hell when the cardboard gave out, cost about ten dollars. Those were the kind of boots Vimes always bought, and wore until the soles were so thin that he could tell where he was in Ankh-Morpork on a foggy night by the feel of the cobbles.

But the thing was that good boots lasted for years and years. A man who could afford fifty dollars had a pair of boots that’d still be keeping his feet dry in ten years’ time, while the poor man who could only afford cheap boots would have spent a hundred dollars on boots in the same time and would still have wet feet.

This was the Captain Samuel Vimes ‘Boots’ theory of socioeconomic unfairness.

Terry Pratchett, Men at Arms

GOESImage

GOESImage is a bash script which downloads the latest imagery from the NOAA Geostationary Operational Environment Satellites and sets it as the desktop background via feh. If you don’t use feh, it should be easy to plug GOESImage into any desktop background control program.

GOESImage Example

I wrote GOESImage after using himawaripy for a few years, which is a program that provides imagery of the Asia-Pacific region from the Himawari 8 Japanese weather satellite. I like seeing the Earth, and I’ve found that real time imagery of my location is actually useful for identifying the approach of large-scale weather systems. NOAA’s nighttime multispectral infrared coloring is pretty neat, too.

Not My Teaching, But My Study

What I write here is not my teaching, but my study; it is not a lesson for others, but for me. And yet it should not be held against me if I publish what I write. What is useful to me may also by accident be useful to another. Moreover, I am not spoiling anything, I am only using what is mine. And if I play the fool, it is at my expense and without harm to anyone. For it is a folly that will die with me, and will have no consequences.

Montaigne

via Old Man Ellis

Toothpaste Capsule

When travelling, I store toothpaste in a 10 gram round pill container. I bought mine from The Container Store. Depending on the thickness of the toothpaste, I find that I can get 14-20 servings out of this volume of container. I brush my teeth twice per day, so this translates to 7-10 days of travel.

These containers probably wouldn’t be leak-proof if they were used to store a liquid, but they are up to the challenge of securing a higher viscosity substance like toothpaste.

Toothpaste Capsule

After using these for a while I bought a set of 15 gram containers, thinking that this would allow me to carry a two week supply. They accomplish that, but the containers aren’t as nice. They have fewer threads, which make me think it is possible for them to pop open in my bag (though I haven’t experienced this), and their slightly greater height makes them a bit less convenient to pack. I stick with the smaller containers, which are an adequate volume for most of my travel.

I think these toothpaste capsules are superior to travel-sized toothpaste tubes. I can fill my container with whatever toothpaste I prefer, instead of being limited only to those toothpastes for which I can find the elusive travel-sized tube. When I run out, I can refill the container with whatever toothpaste is around, instead of wastefully disposing of a used tube and beginning the hunt for another travel-sized tube. The capsule is easy to fill, unlike other options for repackaging. And they don’t take the time and forethought (and low-humidity environment) that is required for Mike Clelland’s toothpaste dots.

After finding that these toothpaste capsules worked well for me, I began using an identical pill container to carry sunblock. Sunblock can be repackaged more easily than toothpaste into mini dropper bottles, but it’s impossible to clean those bottles out after use. The pill containers are simple to empty and clean, and applying sunblock from them is just as easy as it is out of a dropper or squeeze bottle. Unfortunately the toothpaste capsule and sunblock capsule look identical in my bag. So now I have the habit of sniffing my toothpaste and sunblock before I use it to make sure that I don’t brush my teeth with sunblock or rub toothpaste into my skin. I should probably label them.