Lab Notes: A Lazy August

Last Updated: 2021-08-27 09:00:00 -0500

Wasn’t there an update for Tapestry coming out this month? Weren’t you going to keep working on PETI? Did anything get done at the labs, come to think of it? Actually, yeah. Lots of things have happened. Let’s talk about those.

Tapestry 2.2.0 Release Update

The longer a project goes on - that is, the closer to a completed state it gets - the more powerful a truism “Keep it Simple, Stupid” becomes. About a month, maybe two months ago, I got really excited about some new functionality for Tapestry and announced an upcoming release. That release is still coming - you can expect it before the end of the month - but it’s shrunk a bit since I first concieved it.

What’s New In Tapestry 2.2.0?

Tapestry 2.2.0 is going to introduce the following new features:

  • The “Comment” functionality that has existed in the NewRIFF recovery index format since Tapestry 1.0 is now directly accessible via a command line flag.
  • Support for the keyring module from pypi. Specifically, a network security passsphrase, signing key passphrase, and decryption key passphrase can now all optionally be stored in the OS keyring for automation purposes. These aren’t recommended for ordinary use but may be useful for automated backup in headless systems.

What’s NOT Coming

A render of a PCB showing some LEDs and a speaker A render of a PCB showing a battery bank and some switches There are a few features I’ve talked about for Tapestry that simply aren’t coming in 2.2, either because they’re not ready, suffer from diminishing returns, or it’s not appropriate to add directly to Tapestry.

  • S3 Storage Support was floated as an important new feature, and I don’t disagree that giving Tapestry the ability to store backup files directly in an S3 Glacier bucket would be a good idea. However, by implementing that directly, I open the door to being responsible both for testing costs against the S3 infra, and for adding direct support for other protocols. What would be better would be a network “command” mode, configurable in tapestry.cfg, that lets you call an accessory script for your specific storage functionality, if the current SFTP facility doesn’t suffice. We can look forward to that, maybe, in some unknown-future 2.3 release.
  • Windows Performance Enhancements were briefly considered. Due to the way locking is handled, building the tar files that form the core of a .tap output file is handled in a single-threaded way. A feature was floated to possibly do this in a multithreaded way by creating a child process for each individual tapestry block, but a survey of the two other known tapestry users revealed that very few people ever create more than one block at a time. If you’d like to see this enhancement anyway, please let me know.
  • A File Search Feature was also floated, that would pull the .riff index files from multiple blocks without decompressing them in full, and based on a set of criteria, let you know which versions of the file you’re looking for would be available to recover. After discussing this with folks, it was determined this feature violated the “one thing well” principle and that a seperate tool for this functionality might be better.

PETI Updates: Designing the Last DevKit Board

While I don’t think it’s ever been explicitly stated, all of the boards and other components that we’ve designed so far for PETI are elements of the PETI Development Kit, or prototype, rather than elements of the board, and last Tuesday on a livestreamed work session I designed at least the bones of the final board that needs to be fabricated for that, which I’ve been calling the backplane.

This board adds our buzzer, AA battery power supply, and a few extra controls to the device. I even went ahead and threw together a quick render, but I need to make some adjustments and run my breadboard experiments before I order any boards.

Those experiments are sort of the goal of September, at least in terms of lab experiments. I need parts to come in from DigiKey and I need to keep that cost pretty low at the same time.

PETI is a major project intended to design and construct a virtual pet from Open Source Hardware and Software, and to encourage others to modify and tinker with similar projects. If you would like to support the development of this, or any of the other projects I’m working on for Arcana Labs, and you wanted to show your support financially, your best avenue is via my Github Sponsors account or by making a one-time donation to Arcana Labs via or through other avenues detailed here. Github Sponsors also get access to a special patrons-only section of the Arcana Labs Discord Server, where we talk about the ongoing super-secret project.