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.

Wallet Shims

I bought a SlimFold Micro Wallet last year. It does a pretty good job of holding some cash, a few cards, and otherwise staying out of the way. The inside of the cash compartment has little wings of the softshell material that create interior pockets for additional cards. The wings also provide access to the two other materials that make up the wallet: foil shields for RFID blocking, and pieces of plastic that provide structure to the wallet. Both of these materials just sit inside the pockets and are easily removed.

The two pieces of plastic are about 85mm x 73mm. At 0.25mm thick, they’re just thick enough to perform their intended purpose, but aren’t all that useful for more nefarious purposes. At the suggestion of a friend, I replaced these two pieces of plastic with shims.

I ordered a set of Super Mica Door Shims from Red Team Tools, which comes with sheets in two thicknesses: 0.35mm and 0.50mm. Using the wallet’s included plastic as a template, I cut out one piece of each thickness and inserted them into the wallet. They make the wallet a little stiffer, which I haven’t found to be either good nor bad. But more importantly, they allow me to open doors similiar to how you might use a credit card. I think it’s a great modification to the SlimFold. As previously suggested, it’s a good travel option.

Residual Oil Remover

Late last year I ran out of lens cleaner. In the past I’ve never made an informed purchase of lens cleaner, opting instead for the free bottles given out at optometry offices or whatever generic bottles were presented on the counter of the closest drug store. This time around I thought I’d look to see if there was any specific product worth purchasing. I assumed that there were probably picky photographers who had performed a survey of cleaners for their camera lenses, and that their conclusions would apply to other optical surfaces.

Surprisingly, I found only one useful review: a 2013 post on on the Digital Photography Review Forum, which outlined a testing method for cleaning solutions and concluded:

Three branded cleaners out of about a dozen, after 5 test repetitions, walked away with the honors. They are: Zeiss Lens Cleaning Solution, Nikon Lens Cleaning solution and ROR Lens Cleaning Solution. At the bottom of the list was surprisingly, Purosol, that tied with straight distilled water for having absolutely zero emulsifying properties for removing skin oil in all 5 of our test repetitions. When I spoke with the Purosol folks, and asked “How does NASA use your product and for what cleaning purposes”, I was politely told, “That information is classified, and, we unfortunately don’t know!”

Between the 3 top reviewed products, I flipped a coin and ended up purchasing ROR, or Residual Oil Remover.

ROR certainly works. I use it on my Rudy lenses, my laptop screen and external monitors, as well as the screen of my phone. But because I made the purchase after I was out of my previous cleaner, I wasn’t able to compare it to anything else for a couple months. Later on I found a partially used bottle of generic lens cleaner from my optometrist and was able to do a comparison. ROR cleans better with less rubbing.

I don’t know what the contents were of that last bottle of generic cleaner, or how it compares to the other cheap, generic cleaners that I’ve used in the past. But I am happy enough with ROR that I will continue to use and recommend it. I have three bottles stashed around my frequented areas at home and work, and appreciate its ability to keep the clarity of my optical devices at a maximum.