Netatalk: AFP over Appletalk and TCP/IP

Sharing files with retro computers can sometimes be problematic. Nowadays with Samba and ssh it’s easy. But back then such sharing protocols were nowhere near as ubiquitious as we find them now.

AppleTalk Filing Protocol (AFP) was a fairly ubiquitous sharing protocol in the Mac world until Apple deprecated it in favour of SMB (SAMBA). AFP was still around until Apple finally removed it with the release of macOS Big Sur. I’d used a mixture of AFP, NFS and Samba up to that point for sharing files and music/video. But then I got rid of both NFS and AFP and switched to SAMBA. Since then I’d also setup a new NAS and retired the old one for just backup. I never bothered with configuring AFP on the new NAS.

Anyway with my new found interest in Mac OS9 I found myself regretting getting rid of AFP. It’s been around in the Mac world for an age and even before Mac moved to only TCPIP and had AppleTalk as the network protocol.

Netatalk is a project to keep AFP alive. It’s actively developed and packages are available for Debian (which my new NAS runs!). However, when I went to install it it wanted to install a LOT of other packages too. My NAS is headless but runs a plain vanilla Debian. Netatalk wanted to pull in a lof of zeroconf stuff and even some audio libraries. Forget that I want to keep my minimal NAS!

So I switched to Docker of which there are official images available for the Netatalk project. After a bit of messing that runs fine. The image builds your afp.conf file from a series of environment variables that you can set in the Docker Compose file. I will post this in a few weeks when I’ve added a few other cool stuff for Mac OS9. For example Web Rendering Proxy (WRP) which allows you to access HTTPS sites by serving a image with clickable areas to the retro browser on the retro mac!

Netatalk3 is mainly aimed at OSX/macOS. It uses Appletalk but for AFP it shares this over TCP/IP. This works fine for Mac OS9 as long as you manually connect using the IP address, but hey we want the simplicity of auto discovery! I struggled for some time with this before realising that I need to use Netatalk2 which still supports sharing AFP over Appletalk. This will share AFP over Appletalk via TCPIP, rather than AFP over TCPIP. All quite confusing. I was further confused by finding out if I used the standard Docker image of Netatalk3 then Mac OS9 failed to mount the share. Whereas if I built the image myself (from the same Git repository that the developers build their Docker image) then it worked fine! This red herring made me waste quite a bit of time until I actually read the Netatalk documentation!

Anyway once I realised this I switched my Docker compose file to use the netatalk2 image and Mac OS9 immediately saw the share (with netatalk3 I had to manually enter the IP address). Now it even allowed me to save the login details into the Keychain.

Chooser on an old retro Mac OS9 desktop.
Here’s my NAS (U2) in Chooser. Note all my machines are called after whatever music is playing. I used to love U2 but not since the eighties! But it was playing on the radio so….
an AFP login dialog on a old retro Mac OS9 desktop.
The user/password is still the default one for Netatalk! But it’s added to the Keychain.

The NAS share is also served by SAMBA so I can connect from it from my main Mac and Linux workstation. Both protocols give read access to guests but only RW to a logged in user.

a network share on a old retro Mac OS9 desktop.
The afpshare folder.
The Network Browser

First lot of potatoes in the ground (well dirt at least!).

After chitting the potatoes back in February I just got the first lot in the ground. I put these seed potatoes (four varieties) to chit much earlier than I normally do, so they’ve been slow. Normally three weeks would be sufficient to get some sprouts about 25mm long. After five weeks these Red Duke of York (first earlies) were ready so into the soil they can go.

Seed potatoes laying in a green tray chitting.
Seed potatoes chitting

Once you have 25/35mm of shoots, just pinch all but one, then place them upright into the ground.

Normally I place spuds in trenches in the ground, but in the past few years I’ve been putting First Earlies into these repurposed water butts (that were leaking). I put them half way down, cover with a bit of soil, then as the shoots appear keep earthing over until the butts are full. Potatoes grow above the seed potato so if you keep them deep you get more potatoes! Otherwise any that grow above the ground, and get exposed to light, go green (which makes them poisonous!).

Seed potatoes laying ion alayer of earth
Seed potatoes at the bottom of a waterbutt
Two green waterbutts by a fence on the river's edge.

Holiday journal

A long empty beach with a blue sky

Note: Since this draft post has remained in my drafts (using Drafts!) for six months now I guess a regular holiday journal is a bit beyond my blogging abilities! Oh well. Perhaps this year.

Earlier this (now last!) year I did a holiday journal. In a self deprecating offhand comment I said it was a one off. So here we are on the last day of the summer holiday and I remember to write my journal. Ah! I did not think I’d be so bad bad (even worse – see note above!)

Anyway here’s a few highlights. All written retrospectively. If I forget to do another daily blog for our next holiday then I will abandon the idea as unworkable. I’ve never been one for routine tasks. Even at 55 years old I still struggle to remember to brush my teeth daily).

# Sunday
Arrival at the campsite.

# Monday
First proper day of holidays whilst finishing the tent setup. But we did have lunch on the beach!

Also the day I discover that a new camera I recently added to my home built CCTV system (using [Motion]( is generating a LOT of images/video. About 3TB in one day. Normally not a problem as a script will remove them at the end of each day. However, at some point I’d used “11” to the “mtime” variable to “find”…! So it was keeping 11 days of temporary files. Having to edit a script on a iPhone using VIM is not that attractive. Even with Tmux.

The Camera is a Reolink 4K IP PoE Camera Outdoor CCTV RLC-810A

This day was also a festival with fireworks. Pretty cool to watch a fireworks display whilst sat on the beach. The fireworks had a large “fall zone” and I guess had been set to explode lower as I did not have to strain my neck watching them!

# Tuesday
Pool and beach day with a stroll into town for dinner.

# Wednesday

Err. see the previous day for the exact same activities….!

# Thursday

A beach day, but this time we rented bikes and cycled along the coast to a lovely beach bar.

Quite amazingly spotted a fresh pizza vending machine!

# Friday

Another cycle along the coast for a fresh local beer. Lovely.

# Saturday


# Sunday

Beach # Monday

# Tuesday
Getting boring now (which is the point of a relaxing holiday, but not necessarily an interesting blog post).

# Wednesday

# Thursday
A trip across the bay to Ile de Ré on a RIB. Outwards we were drenched. The overnight storm had not properly calmed down and the waves were big. I guess ripples are big at 40kph in a boat.

On the way back it was like a mirror.

I had a grapefruit ice cream at the famous ice cream shop in the harbour.

# Friday
A day of relaxing prior to leaving the next morning.

# Saturday
Drive to near Nante to stay at the brother in law’s for two nights.

# Monday
Drive across France to Douai to stay with the parents in law

# Tuesday
Drive back home via the Tunnel. Journey quite good and uneventful although quite a bit of Brexit swearing whilst waiting for passport control (fuck brexit).


Ten green trays with four varieties of seed potatoes in an untidy shed!
Left to right- Red Duke of York, Charlotte, Pink Fir Apple and Caledonian rose!

I’ve started early with the spuds this year. Chitting is the process of leaving them in daylight to get the shouts growing. Helps them get started quickly when you then bury them.

They are ready to plant when you have a 20/30mm of shouts. Remove all but the strongest then plant them at the bottom of a trench and just cover with soil. The spuds grow above the seed potatoe so as the shouts grow keep piling earth on top.

River Cam gauge

In a break from my usual plan9ing here’s the gauge for the lock just upstream of us on the River Cam from Shoothill River Gauge map. I had the boat turned around facing downstream as I was cleaning it last week. The back of the boat with its rudders and props is much more vunerable to damage from debris. With the biblical rain yesterday I saw the river had risen and dropped overnight (mud was deposited). Generally when that happens then 24 hours later the river rises again as rain from upstream reaches us. The river did not look to be running that fast, so I decided to turn the boat around by ropes in anticipation of the stronger flows to come. Whoops. The river flow was quite deceptive. It was a real struggle to spin the boat around. All done safely now.

So here’s a gauge for the river flows.

This is the code.

<iframe frameborder="0" width="300" height="446" src=""></iframe>

The EA/.gov site says the level is normal albeit still rising:

River Cam level at Cambridge Baits Bite


Wagyu entrecôte steak

So on the way back from holiday and staying with relatives for a night in Brittany. We ordered a properly indulgent Wagyu entrecôte. Was very tasty and the meat just melted in your mouth. But the price did make me think I prefer a tougher and tastier cut.

Bye bye Facebook

So My Facebook Account Was Suspended Yesterday as It Did Not Follow “Community Standards”. I’m guessing it’s because I put a guillotine as my profile photo and made a number of anti royalty posts over the coronation (all quite mild!).
I’ve had this account since 2006ish but I do not think I will miss it. Saying that though it is inconvenient:
– I used to sell bits and bobs using Facebook Marketplace. It far easier to sell something locally than other sites.
– I was the sole admin of a Facebook Page for my job. That page is likely now orphaned and will never be updated again.
– I ran a few FaceBook ads for that company too.
– I created and was admin for my village’s Facebook group. That is the one I will miss the most. I posted the village newsletter and many other village events (including the church even though I am an atheist!)*. There is one other admin so the few hundred users will still get some use out of it.
– I setup a Facebook page for a [local campaign]( to prevent a sewage works being relocated to greenbelt just outside the village.
All those are now gone.
I do have a Quest II headset. However, Meta did split off that into a separate account some months back. I guess it’s still working OK.
Still all in all Facebook is not a force for good.
Despite my misgivings I’m still on [Twitter](, but [Mastodon]( is where I will publish stuff.
*I did help setup the streaming of the Coronation in the church, thus showing I’m a multi layered hypocrite.

Before we had a bathroom

We’ve got plumbers in today replacing a few items that have broken in the 15 years since we fitted them. Before we moved into this house we had about 11 months of renovation to turn a flimsy house with no insulation, minimal plumbing and wired with appallingly dangerous wiring (rubber coated cables where the insulation had disintegrated), into something that could be lived in.

I could rant about how the plumbers back then made absolutely no thought as to future maintenance, but I will not. However, in looking for how the shower was fitted (so it can be replaced) I came across this photo before the bathroom even existed.


In this photo the flat roof of the utility room below has been removed and replaced by joists to provide a floor. The door opening was previously a window at the top of the stairs. The shower was fitted between the two studs you see to the left and in front of the white door.

Here’s how it looks now from the exterior (the window you see is about where I was stood when I took the above photo 14 years ago.

IMG 7848

Spring is coming – flowers in the garden

Our garden was well planned by the previous owners. They bought the house in 1933 and spent their lives planning the garden. No lawn, but vegetable patches in the middle and flowers around the borders. We have left the garden much wilder. The vegetables patches were replaced by grass (although we reverted part of that to vegetables patches during the first lockdown). The borders are still full of flowers. All planned so that the last weeks of Winter and Spring are full of flowers, snowdrops, aconites, crocuses, daffodils, then tulips, crown imperials, irises and plenty more. Here’s the first batch:

(The first daffodils photo is from elsewhere in the village, but it’s a lovely photo!).

IMG 7576

IMG 7567

IMG 7569

IMG 9245

IMG 2493

IMG 7795

Goodbye to my boots!

So I say goodbye to my Lowa walking boots this morning. I’ve had these many years and they have really stood up to abuse. The left boot developed a leak in the heel that stopped them being used too seriously. But there again since my daughter was born serious hikes have been rare. Still I kept them as they feel like trainers but are very firm. Also the hinged ankle protector makes it impossible to twist your ankles regardless of the angle you put your foot down.

IMG 7753

But in clearing out the “solar thermal” cupboard I realised the material in the sole had rotted way. unrepairable so into the bin they go.

IMG 7754