Valhalla's Things

Welcome

Welcome to my blog, where I post sporadically about the things I do and the ones I make.

Recent posts

Modern XMPP Server

Posted on December 1, 2023

Just a quick mention that I’ve updated my instructions on how I configured my XMPP server to its current status under Debian Bookworm.

And yes, it took me just a bit of time, we release when we’re ready here :D


PDF planners 2024

Posted on November 22, 2023

A few years ago I wrote a bit of code to generate a custom printable planner, precisely to my taste. And then I showed the result to other people, and added a few variants for their own tastes.

And I’ve just generated the first 2024 file (yes, this year I’m late with the printing and binding), and realized that it may be worth posting all the variants on this blog, in case somebody else is interested in using them.

The files with -book in the name have been imposed on A4 paper for a 16 pages signature. All of the fonts have been converted to paths, for ease of printing (yes, this means that customizing the font requires running the script, sorry).

A few planners in English:

The same planners, in Italian:

And finally a monthly planner with ephemerids for the town of Como (I mean, everybody everywhere needs one of those, right?); here the --book files are impressed for a 3 sheet (12 pages) signature.

I hereby release all the PDFs linked in this blog post under the CC0 license.

I’ve just realized that the git repository linked above does not have licensing information, but I’m not sure what’s the right thing to do, since it’s mostly a dump of unsupported works-for-me code, but if you need it for something (that is compatible with its unsupported status) other than running it for personal use (for which afaik there is an implicit license) let me know and I’ll push “decide on a license” higher on the stack of things to do :D


Piecepack and postcard boxes

Posted on November 4, 2023

An open cardboard box, showing the lining in paper printed with
a medieval music manuscript.

Thanks to All Saints’ Day, I’ve just had a 5 days weekend. One of those days I woke up and decided I absolutely needed a cartonnage box for the cardboard and linocut piecepack I’ve been working on for quite some time.

I started drawing a plan with measures before breakfast, then decided to change some important details, restarted from scratch, did a quick dig through the bookbinding materials and settled on 2 mm cardboard for the structure, black fabric-like paper for the outside and a scrap of paper with a manuscript print for the inside.

Then we had the only day with no rain among the five, so some time was spent doing things outside, but on the next day I quickly finished two boxes, at two different heights.

The weather situation also meant that while I managed to take passable pictures of the first stages of the box making in natural light, the last few stages required some creative artificial lightning, even if it wasn’t that late in the evening. I need to build1 myself a light box.

And then decided that since they are C6 sized, they also work well for postcards or for other A6 pieces of paper, so I will probably need to make another one when the piecepack set will be finally finished.

The original plan was to use a linocut of the piecepack suites as the front cover; I don’t currently have one ready, but will make it while printing the rest of the piecepack set. One day :D

an open rectangular cardboard box, with a plastic piecepack set
in it.

One of the boxes was temporarily used for the plastic piecepack I got with the book, and that one works well, but since it’s a set with standard suites I think I will want to make another box, using some of the paper with fleur-de-lis that I saw in the stash.

I’ve also started to write detailed instructions: I will publish them as soon as they are ready, and then either update this post, or they will be mentioned in an additional post if I will have already made more boxes in the meanwhile.


  1. you don’t really expect me to buy one, right? :D↩︎


Forgotten Yeast Bread or Pan Sbagliato

Posted on October 29, 2023

a wide and flat round loaf of bread with a well cooked crust

I’ve made it again. And again. And a few more times, and now it has an official household name, “Pan Sbagliato”, or “Wrong Bread”.

And this is the procedure I’ve mostly settled on; starting on the day before (here called Saturday) and baking it so that it’s ready for lunch time (on what here is called Sunday).

Saturday: around 13:00

In a bowl, mix together and work well:

  • 250 g water;
  • 400 g flour;
  • 8 g salt;

cover to rise.

Saturday: around 18:00

In a small bowl, mix together:

  • 2-3 g yeast;
  • 10 g water;
  • 10 g flour.

Saturday: around 21:00

In the bowl with the original dough, add the contents of the small bowl plus:

  • 100 g flour;
  • 100 g water;

and work well; cover to rise overnight.

Sunday: around 8:00

Pour the dough on a lined oven tray, leave in the cold oven to rise.

Sunday: around 11:00

Remove the tray from the oven, preheat the oven to 240°C, bake for 10 minutes, then lower the temperature to 160°C and bake for 20 more minutes.

Waiting until it has cooled down a bit will make it easier to cut, but is not strictly necessary.

the loaf cut in half, to show thin stripes of crumb from the
high hydration.

I’ve had up to a couple of hours variations in the times listed, with no ill effects.


Chickpea Crackers

Posted on September 20, 2023

A flatbread, prescored into small portions, but still in one
piece on top of a plate and overflowing to the side (it's about 10
cm × 30 cm or so). A side is thin and more browned, the other side
is a bit thicker and paler.

And another half-written article I had in my repo. (Am I doing #FallFinishAlong with blog articles instead of / in addition to craft projects? it feels so).

I was in need of snacks. I wanted something bready, but with a bit less carbs and more proteins. I had a bag of chickpea flour.

Ingredients were:

  • 100 g wheat flour
  • 100 g chickpea flour
  • 100 g water
  • 3 g salt
  • 1 g dry yeast

Mix everything as usual for bread, leave to rise for 4-6 hours.

Divide in 4 parts, roll them out to a thickness of about 1 – 2 mm, prick them with a fork (or the fancy cracker pricking tool that you don’t really need but I may have bought).

Optionally spray with a bit of water and sprinkle with salt (coarse or flake is best).

Preheat the oven to 240°C and cook for 5 minutes, or preheat the oven to 210°C and cook for 10 minutes for a dryer version.

I’ve tried both cooking temperatures: the 210°C had the big advantage of being the same as the common bread I was already making, so no additional oven time was required (it was summer. this was a consideration.), but I’m not sure which version I like best, so I think in winter I will alternate between the two.

Put it in a cotton (linen?) bag and keep it in a dry place, where it will keep for weeks (assuming you’ve made a bigger batch :D ).

This is now part of my staples.


Installing minidlna

Posted on September 19, 2023

I’ve found the draft of this article I almost completely wrote (checks) more than 3 months ago, and I guess it’s time to finish and publish it.

The very first A10 based device that entered our home, before they started to use it for SBCs, was a Chinese media server with a slot for a 3.5” hard disk and a few analogue audio outputs.

Of course from the time it entered our home it has always been running Debian.

Now that we may have a few, more powerful, A20 SBCs available, it has been fully dedicated to music: it is connected to the stereo, the hard disk has a clone of the git-annex repository where I’ve ripped all of my CDs1 and is played by connecting via ssh and running alsaplayer.

It’s simple (for my tastes). it works. Unless you’re in a different room than the one with the stereo.

And then I read this post on the fediverse that suggested installing minidlna on an old Raspberry Pi, and on a whim I decided I needed it.

I installed the package from Debian, set a few easy settings in the configuration file (such as which directories to serve), restarted the service.

And that’s it, it just worked.

The only thing I had to take care about is that to use git-annex repositories as the source of media files either the root of the repository should be used as media-dir, or the wide_links options should be set to yes, otherwise the symbolic links that point outside of the media-dir won’t be served.

As a client I used VLC (note for myself in case I ever forget, it’s under View → Playlist and then Local Network → Universal Plug ‘n’ Play), mostly because I already had it around.

Now that I’ve used it for a few months I have to say that it isn’t a perfect solution: the main format I store my music in is in flac 2, which isn’t supported by dlna; for a significant part of it I’ve also already generated single-song ogg files for convenience 3, and at least it works for those.

I don’t store (yet?) my video collection on the A10 device, but I did a quick test, and no, of course a raw dump of a DVD as generated by dvdbackup isn’t supported, so I would have to convert those too. And there is some support for subtitles as a separate file (which is something else I tend to have around), but only one file, with strict requirements for the name, which is a bit restrictive.

On the other hand, the hassle to set this up was so low that the functionality / hassle ratio is most definitely worth, and I’m quite happy I did and plan to continue using it.


  1. (yes, I’m still using CDs, I have objections to those newfangled streaming services)↩︎

  2. full CD rip in a single file, with an embedded cuesheet, to preserve as much as possible of the original disc.↩︎

  3. in theory the flac was supposed to be future-proof storage, with the ogg files for actual use, but then I always listen to full albums, so the flac just work, and I only tend to bother generating the ogg when I’m already generating mp3 for the car.↩︎


Non-e (Note)Book

Posted on September 18, 2023

A coptic bound book with a blue PCB as the cover.

Some time ago our LUG bought some things from soldered.com and while browsing around the website my SO and I decided to add a junk box to the order and see what we would get.

Other than a few useful things, there were two mostly unpopulated boards for the inkplate 10 which would have been pretty hard to reuse as electronics.

Two PCBs for the Inkplate 10 from eradionica, unpopulated.
They are rectangles with a long slit close to one long side, a
few holes and a notch at the bottom.

On the other hand, at 23 cm × 18 cm they are a size that is reasonable for a book, and the slit near a long edge made them look suitable for the cover plates of a coptic bound book.

Since the size isn’t a standard one, I used some paper I already had in big (A1) sheet: Clairefontaine Dessin Croquis Blanc at 120 g/m², and cut 32 sheet 466 mm × 182 mm big, to have room to trim the excess at the end and straighten the edges. This would make 8 signatures of 4 sheet each, for a total of 128 pages.

The paper will make it suitable both as a notebook (where I’ll write with liquid ink, of course, not ballpoints) or as a sketchbook for pencil (but not wet techniques).

I could have added a few more signatures, but this felt already good enough, and the risk to end up with an half-empty notebook was non-trivial (I will already have to force myself to actually use it, rather than keep it for a good topic that will never be).

First we finished depopulating the boards, using it as a desoldering exercise and trying (and not always succeeding) to save as many components as possible, even if most of them were too tiny for our current soldiering skills.

The book, closed, partially sewn.

And then I only had to sew the book, which was done mostly while watching the DebConf streams.

The finished book seen from the front edge, showing that the
trimming isn't very smooth.

And a couple of days later, trim and sand the pages, which as usual I could have done better, but, well, it works.

The next time I do something like this I think I will have to add a couple more mm also to the height, to be able to trim also those edges.

A coptic bound book, open between signatures, on white pages.

And now of course the Big Question is: what should I dedicate this notebook to? Will I actually use it? This year? This decade?


How I Keep my Life in Git

Posted on September 12, 2023
git secret_cabal greet

After watching My life in git, after subversion, after CVS. from DebConf, I’ve realized it’s been a while since I talked about the way I keep everything1 I do in git, and I don’t think I’ve ever done it online, so it looked like a good time for a blog post.

Beyond git itself (of course), I use a few git-related programs:

  • myrepos (also known as mr) to manage multiple git repositories with one command;
  • vcsh to make it easy to keep dot-files under git;
  • git annex to store media files (anything that is big and will not change);
  • etckeeper to keep an history of the /etc directory;
  • gitolite and cgit to host my git repositories;

and some programs that don’t use git directly, but easily interact with it:

  • ansible to keep track of the system configuration of all machines;
  • lesana as a project tracker and journal and to inventory the things made of atoms that are hard 2 to store in git.

All of these programs are installed from Debian packages, on stable (plus rarely backports) or testing, depending on the machine.

I’m also grateful to the vcs-home people, who wrote most of the tools I use, and sometimes hang around their IRC channel.

And now, on to what I’m actually doing.

With the git repositories I’ve decided to err for too much granularity rather than too little3, so of course each project has its own repository, and so do different kinds of media files, dot-files that are related to different programs etc.

Most of the repositories are hosted on two gitolite servers: one runs on the home server, for stuff that should remain private, and the other one is on my VPS for things that are public (or may become public in the future), and also has a web interface with cgit. Of course things where I’m collaborating with other people are sometimes hosted elsewhere, mostly on salsa, sourcehut or on $DAYJOB related gitlab instances.

The .mr directory is where everything is managed: I don’t have a single .mrconfig file but a few different ones, that in turn load all files in a directory with the same name:

  • collections.mr for the media file annexes and inventories (split into different files, so that computers with little disk space can only get the inventories);
  • private.mr for stuff that should only go on my own personal machine, not on shared ones;
  • projects.mr for the actual projects, with different files for the kinds of projects (software, docs, packaging, crafts, etc.);
  • setup.mr with all of the vcsh repositories, including the one that tracks the mr files (I’ll talk about the circular dependency later);
  • work.mr for repositories that are related to $DAYJOB.

Then there are the files in the .mr/machines directory, each one of which has the list of repositories that should be on every specific machine, including a generic workstation, but also specific machines such as e.g. the media center which has a custom set of repositories.

The dot files from my home directory are kept in vcsh, so that it’s easy to split them out into different repositories, and I’m mostly used the simplest configuration described in the 30 Second How-to in its homepage; vcsh gives some commands to work on all vcsh repositories at the same time, but most of the time I work on a single repository, and use mr to act on more than one repo.

The media collections are also pretty straightforward git-annex repositories, one for each kind of media (music, movies and other videos, e-books, pictures, etc.) and I don’t use any auto-syncing features but simply copy and move files around between clones with the git annex copy, git annex move and git annex get commands.

There isn’t much to say about the project repositories (plain git), and I think that the way I use my own program lesana for inventories and project tracking is worth an article of its own, here I’ll just say that the file format used has been designed (of course) to work nicely with git.

On every machine I install etckeeper so that there is a history of the changes in the /etc directory, but that’s only a local repository, not stored anywhere else, and is used mostly in case something breaks with an update or in similar situation. The authoritative source for the configuration of each machine is an ansible playbook (of course saved in git) which can be used to fully reconfigure the machine from a bare Debian installation.

When such a reconfiguration from scratch happens, it will be in two stages: first a run of ansible does the system-wide configuration (including installing packages, creating users etc.), and then I login on the machine and run mr to set up my own home. Of course there is a chicken-and-egg problem in that I need the mr configuration to know where to get the mr configuration, and that is solved by having setup two vcsh repositories from an old tarball export: the one with the ssh configuration to access the repositories and the one with the mr files.

So, after a machine has been configured with ansible what I’ll actually do is to login, use vcsh pull to update those two repositories and then run mr to checkout everything else.

And that’s it, if you have questions on something feel free to ask me on the fediverse or via email (contacts are in the about page)

Update (2023-09-12 17:00ish): The ~/.mr directory is not special for mr, it’s just what I use and then I always run mr -c ~/.mr/some/suitable/file.mr, with the actual file being different whether I’m registering a new repo or checking out / updating them. I could include some appropriate ~/.mr/machines/some_machine.mr in ~/.mrconfig, but I’ve never bothered to do so, since it wouldn’t cover all usecases anyway. Thanks to the person on #vcs-home@OFTC who asked me the question :)


  1. At least, everything that I made that is made of bits, and a diary and/or inventory of the things made of atoms.↩︎

  2. until we get a working replicator, I guess :D↩︎

  3. in time I’ve consolidated a bit some of the repositories, e.g. merging the repositories for music from different sources (CD rips, legal downloads, etc.) into a single repository, but that only happened a few times, and usually I’m fine with the excess of granularity.↩︎


Banners and Signs

Posted on September 8, 2023

I forgot to write down the details back when it happened, but now that the surprise has been delivered I can write about it.

A triangular fabric banner, black with a reflective grey
border, and a penguin outline where part of the outline is in
the shape of Lake Como screenprinted in white and light blue.

Some time ago, I decided to make a small banner with the GL-Como penguin for a friend, because reasons.

However, this friend has a big problem, he, well, is from Pisa (no, I’m not from Leghorn, why do you ask?), and I had a screen printing kit, openclipart and no inhibitions.

Three fabric banners: one is the one mentioned above, two are
square with a yellow corded border, a yellow triangle and a
tower of Pisa in black in the middle. The yellow triangles
aren't perfectly flat yellow, but somewhat ruined, one more
than the other.

So, with the encouragement of a few friends who were in the secret, this happened. In two copies, because the first attempt at the print had issues.

And yesterday we finally met that friend again, gave him all of the banners, and no violence happened, but he liked them :D

An ISO 7071-style triangle warning sign with a simplified tower
of Pisa in black on yellow background.

If somebody is interested, the source image I used is on openclipart, with links to all of the sources I’ve used.

I don’t remember exactly how it happened, but when I was working on the Pisani sign I also stumbled on the “no dogs” sign and decided that the world needed a “mandatory cat” sign, and well, here is the full set (all images are a link to the openclipart page).

ISO 7071 “no dogs” sign, a black dog on white background with a
red circle with a diagonal line.

ISO 7071-style “mandatory cats” sign, a white cat on blue
circle background.

ISO 7071-style “mandatory dogs” sign, a white dog on blue
circle background.

ISO 7071-style “no cats”, a black cat on white background with
a red circle with a diagonal line.


Origami Document Folder

Posted on August 1, 2023

A pink origami holder for business cards, open, with two triangular
pockets. The cards in it are pope cards and a Debian
“consensually” name card.

A long time ago, around the turn of the century, I was looking at some Useful Origami website and found a pattern for a document folder with a lot of pockets.

The same holder, seen from the top: it also has rectangular
pockets on the covers, and there is even room in the middle for
moar contents.

And by a lot of pockets I really mean a lot! I immediately had to fold one, and then another one, and then a few others, both in a size suitable for business cards and as a folder for A4 sheets of paper.

A document folder in the same shape, but it's white, bigger,
and it has an envelope in one pocket and some stationery sheets
in the other pocket.

And then, a few years ago I needed a new document folder, and looked for these instructions, and couldn’t find them anywhere. Luckily I still had some of the folders I had made, and the model was simple enough that I could unfold those and reconstruct the instructions.

I tried to show them around to see if anybody knew where it came from, but had no results.

An origami schematic; see the link below for text instructions.

Now that I’ve prepared a new website for patterns for non-fiber crafts (and that I needed a new folder :D ) I’ve decided to post those instructions on it, so that they will have a stable place to live on.

And now that the #origami crowd on the fediverse has grown, maybe somebody will stumble on them and will remember where they come from: if you do, please let me know, with a comment if you’re reading this on the fediverse, or through one of my contacts if you’re reading the blog directly.


…this is probably not the beginning, you can find more in the archives.