Almost Linear Walks

Almost Linear Walks

Twice in the last two weekends I have done linear rather than circular walks. By linear I don’t mean that I walked from A to B. I mean that I started walking along a loop but when I saw that the routes I wanted to walk were either crowded by couples or people with dugs I will either turn around, or walk across a field to a parallel path that is less crowded.

Busy Weekends

Yesterday I went for my walk. I don’t like walking on weekends, especially sunny warm weekends because that’s when people who don’t walk alone are walking their dogs or with others. It reminds me of my solitude. I also got into the habit of avoiding people during the pandemic, and the pandemic never ended, so I never went back to walking the same paths as others.

Walking Fast

I walk fast, very fast. Nothing says that I have to walk a loop for every walk. Plenty of people walk outwards, along one path, and walk along the same path. Their walks are just a straight line, back and forth. I just got into the habit of walking loops because loops are quite a bit longer than linear walks. They’re also more interesting.

The need for an Easier Walk

The thing I don’t consider enough is fatigue. I believe that I build up fatigue, from walking up to eight kilometres a day, every single day. I could have walked my ten kilometre loop yesterday but I didn’t feel that I had the energy. It’s when you’re tired, and need a rest day that it’s good to go back and forth, rather than push. I still got 10,000 or more steps and I still walked further than most people. It’s just that it wasn’t much by my standard. A rest day is one where I go for a slightly shorter walk than usual.

The Lure of the Project

It’s not just that it’s the weekend, that makes me want to skip my walk. It’s also that I’m task driven. I am currently working on consolidating all of my media drives but this is time consuming, and every time I leave it unattended a messsage pops up, that I need to agree to, before it continues working. If I go for a one and a half hour walk and a message pops up ten minutes into my walk, when I am not there to agree, then the system waits for my return, and I’m stuck with one hour and 20 minutes of transfers.

If I followed my key desire I would just skip the walk but the walk is important for my eyes. They need to focus into the distance, and I need to stay healthy.

And Finally

If my habits weren’t so consistent veering from them would be normal. It is because I am consistent that I feel bad for turning around, rather than walking my usual loop. Fitness wise it’s still a one hour walk, but it’s just shorter than if I walked my loop.

Today is a weekday so I will do my normal walk loop.

Exploration on Foot

Exploration on Foot

Walking is an easy activity. You put your shoes on, and you go for a walk. Sometimes you walk from home. Other times you walk from a car park. Sometimes you walk along rivers that are full, and others you walk along streams that are almost dry.

A few years ago I did the same Via Ferrata by a waterfall two or three times within a few weeks because I liked it so much. The beauty of waterfalls is that sometimes they’re erupting with power. They’re roaring and sending a mist of water outwards. Other times they’re running dry and you can really get a good look at the underlying rock beneath.

Yeesterday I walked in a different region than usual so we explored. We walked a little bit, and then to decide to go a little further, and then a little further again. In the end it was an 8km loop.

For the most part the walk was about walking along the indications from L’I’sle to Le Puits and then on to Montrichet, and then back. For the outward journey we followed the paths, but for the return I wanted to explore if there was a secondary path.

The secondary path led along a path, until you hit some woods. You could head down, back towards a road, or you could head upwards and then across a field. At this field there was a lot of water flowing so it required finding clumps of grass not to submerge shoes and soak socks. This time my feet stayed dry.

The reason for exploring a secondary route is simple. I like my walks to be loops, rather than a bounce. I like to walk in a circle so that my outward and homeward legs are different. Yesterday’s walk could have been a loop but it would have required walking along either of two main roads, and main roads are not designed for people to walk alongside them, which I think is a shame.

When you walk three to five kilometres it is easy to find loops that do not expose you to cars, but once you walk across several villages you have to walk along roads, and deal with traffic. It’s because I like long walks that I encounter so much traffic. With short walks I would encounter dog walkers and normal people, with normal lives.

I have cycled around where I walked yesterday. On foot you more. You can look through windows. You can stop to read signs. You can go to look at the collection of books that are available in lending libraries. You also get a feel for the ondulations of the landscape.

And Finally

I tracked this walk with my old Apple Watch and a casio. The casio tracked the entire walk, via the phone, without issues. The Apple Watch ran out of power without saving the walk, so I lost the track with that device. I am frustrated by this. If I wear a watch, I don’t want it to lose my track.

Pi-Holes and Cloud Syncing

Pi-Holes and Cloud Syncing

Two evenings ago I was trying to sync files from Kdrive to the local drive and it kept getting blocked. I wasn’t clear as to why this was happening until I saw that Pi-Hole had throttled the IP address of the computer that was attempting to sync from Kdrive. It did this one in the morning, and the second time in the evening.

I suspected that for some reason the computer might go to sleep when it isn’t used, but a Pi doesn’t sleep, so that wasn’t it.

Temporarily Disable Pi-Hole

When I disabled blocking by the Pi-Hole and tried to sync once again it worked flawlessly. It took hours but the data was transferred from the remote machine to the local machine over the next twelve hours, or so.

Rate Limiting by Pi Hole

Pi-Holes will tolerate up to 1000 requests per minute from a device under normal circumstances. Usually a system would make a few dozen requests at a time depending on the website being visited. When you’re synching gigabytes of files via a cloud client it might send several thousand requests as it receives requests, and provides status updates on whether packets are received and when to send the next one. This is a generalisation. I could not find specifics for Kdrive.

The Wrong Assumption

Aside from considering a computer going to sleep and stopping data transfer I also considered that the cloud provider would throttle download queries, and speed. When I tried to download data from iCloud I did encounter a similar problem and when I tried from one or two other providers I seemed to have the same problem.

 Interesting to Know

When I tried to download several 2 gigabyte files manually with the Raspberry Pi I found that it sometimes saturated its 8 gigabytes of ram before slowing down to a crawl. It doesn’t like downloading large files in bulk. I came across this bug several times.

And Finally

In normal circumstances cloud synching is a few files at a time, rather than several hundred gigabytes at once, so you don’t run into this issue. If this was a normal situation then I would modify Pi-Hole to have a higher rate limit, but for now I will leave it as it is.

Nextcloud and the Open Web

Nextcloud and the Open Web

Two evenings ago I played with setting a No-ip host, setup the Swisscom router to make a Pi available in the DMZ so that I could access the apache server and Nextcloud from the open web and it worked. I had it all done within 15-20 minutes. Now for those with the “But why nextcloud?” the answer is simple. It offers two factor authentication and it is trusted by various EU institutions and governments. It is also trusted by Geneva but I don’t remember by whom, at this point.

Multiple Hacks Due to Vulnerable Apps

I have had a website and web presence on the web since 97 or so but in recent years some of my older projects, but also WordPress, were repetitively hacked to the point that I deleted all the old projects that I had on the site because they made my website vulnerable to attack. Several times my website was locked and I had to spend several hours, or even days to restore access. After a few experiences I streamlined recovery, but I also increased security. Now all my accounts have two factor authentication and each site has a different password.

PhotoPrism Unvetted

In theory PhotoPrism would be fun to have on the open web, because I could upload images, and share them more easily. The drawback is that I haven’t RTFMed (Read the fabulous manual) on two factor authentication for PhotoPrism.

WP and NC Two Factor Authentication

WordPress and NextCloud are both designed with the option for two factor authentication so those are the two sites that I have running. For a while I thought “but if I run it through the tailscale VPN that’s good enough for me” and it is. I’m happy to block off full access to these services, so that only I, and those I share these devices with have access but at the same time it’s good to learn and to experiment.

Easier than Expected

I expected that punching a hole through the server would be complicated but it was easy. I intuitively knew what to do without RTFM. I should add that I have spent the last three years studying related topics so “intuitive” means “put in the hours”.

Firewalled

I also set up UFW the morning before attempting this experiment and I tested whether I had SSH access from the World Wide Web. It’s when I saw that I didn’t that I setup two factor authentication. If that wasn’t the case I would have deleted the no-ip address.

The Advantage of the Open Web

The advantage of having the servers on the open web is that I can share links to files more easily when required to do so. It also means that I can backup photos whilst I’m out, without having to log in through the VPN.

The disadvantage is that I need to verify that my setup is secure and I need to spend time checking that SQLi attacks, among others are not possible. I added wordfence for the WordPress install and brute force protection and two factor authentication to NextCloud. Having done these things I still want to do some more research to ensure that the sites are secure on that one server.

The VPN Advantage

The VPN advantage is that I control access and it’s behind security protocols put in place by Tailscale. It should be harder for people to gain malicious access.

And Finally

Now that I have seen how simple it is to make a home server available to the World Wide Web, rather than hidden behind a VPN I might setup a smaller instance with less storage that is setup to back up photos and videos while I’m hiking and walking, but that would be emptied and moved to a more secure instance within my personal network.

Time for more experimentation.

Kdrive and PhotoPrism

Kdrive and PhotoPrism

Yesterday I configured PhotoPrism to work with my iPhone photo album that was being synced to Infomaniak’s Kdrive, before then being synced to a drive that I could access via the Photoprism docker-compose config file. I then used No-ip to make that PhotoPrism instance available to the world wide web.

For several years I have had an Infomaniak Kdrive account but did not use it much, until I noticed that what costs 100 CHF with Google Drive costs 67 CHF with Kdrive. That’s a 34 CHF franc saving.

Migrating Data from Google to Infomaniak

This is interesting because of two things. The first one is that you can easily migrate your Google Photos Albums to Kdrive, and from Kdrive to your local machine without having to spend hours doing so manually. I am in the process of migrating from Kdrive to my local drive, for my Google Takeout album but this is slow.

What worked well was telling Kdrive to download the iPhone photo album from the Kdrive cloud to my local machine. I then edited the docker-compose config file but it took some trial and error before I understood how it works. It’s simple.

Telling PhotoPrism Where to Look

In my mind it should be “label: destination” but this is wrong. With Photoprism config files it is destination: label. To explain this more clearly:

volumes:
 - "/mnt/photos:/photoprism/originals"
 - "/mnt/videos:/photoprism/originals/videos"

“mnt/photos” is the folder location and “photoprism/originals” is the label that docker and photoprism recognise. This is important because when you understand this you can set an external drive to be the photo gallery main drive, run index, and catalogue everything.

Ingesting Photos and Videos

If you export your Google Photos albums via Google Takeout, you can unzip the 2 gigabyte files, and as they unzip the files and their related JSON files are all brought together. Tell PhotoPrism that the Google Takeout folder is the import folder. After this mark “move files once ingested” and press import. PhotoPrism will then ingest all those files, delete what has already been ingested, catalogue everything, and leave you with an organised folder of photos and videos.

The indexing stage is very fast but can still take time, depending on album size.

The Next Step

There are two possible next steps. The first is to access this gallery from anywhere using tailscale, or using No-IP to access your photo album remotely. I recommend tailscale for this stage, because I haven’t seen much information about how secure PhotoPrism is so I’d rather not risk it.

I setup no-ip before telling my router about it and within a few minutes I had access to PhotoPrism and Nextcloud via No-Ip. I will write about that experiment tomorrow.

And Finally

When you’re playing with linux, and experimentating with projects like PhotoPrism you need to take time to understand how they work, to adapt them to your use case. I did this. Now I can get PhotoPrism to behave as I want it to. Now I can use external hard drives, and index photos, without having to import them. Within minutes I can plug in a drive, tell PhotoPrism where to find it, index it, and then use it.

If it had two factor authentication and more security measures then I would consider having it on the cloud, but for now I’m happy to use it via Tailscale’s VPN, as this is more secure.

Experimenting With the Pi5

Experimenting With the Pi5

The Raspberry Pi 5 is twice as powerful as previous Pis according to various sources. For the last 24 hours I have been using a Pi 5 running Ubuntu and the experience has been good. Despite being a small computer it feels as comfortable as some of the computers I have been using.

The Pi 5 feels comfortable

I have loaded several webpages at once, in various tabs, tried importing images via photoprism, whilst writing this blog post and running VS Code. So far I feel that a Pi running Ubuntu can run Nextcloud, PhotoPrism and be used to write a blog post simultaneously.

I struggled with installing VS Code but that was due to not being used to dealing with Debian packages. That was quickly resolved and that’s how I am able to experiment with blogging from a Pi 5.

The Fan Gets Quieter After the First Boot.

After the first boot the Raspberry pi 5 was noisy, with the fan running at full power until I rebooted it. On the second boot the fan started to vary in strength according to what I was doing. If you’re doing something intensive, like indexing and importing photos to photoprism then it will be noisy, but if you’re writing a blog post it will be quiet.

FrontMatter is Faster Than on a 2016 Mac Book Pro

What I especially like is that Front Matter, on a 2016 mac book pro is slow to load. On the Pi it loads all the posts within a few seconds. It helps that I moved all 2023 posts to the archive.

The point remains that if you want to write blog posts in Markdown for Hugo to generate static web pages then the Pi 5 8GB is fine.

Remembering the Recent and Distant Past

In 2008 or so I bought an EEEpc for about 300 CHF and it was relatively crap. In 2020 or so I bought a Chrome Book and it was fine for web surfing but costs about 270 CHF or so. With the EEEpc you could feel that the machine was underpowered, cheap, and huge, mainly for the battery to fit on the back. The keyboard was tiny so you had to re-learn to touch type on this device.

With the Chrome Book you have a simple laptop but not much freedom so it’s good for web browsing, but not much more, in my experience. I didn’t experiment with running it with the Linux features enabled.

Small And Light Weight

With the Pi 5 you have a computer that could fit into the small pouch of a Domke satchel. With an aluminium apple keyboard teathered by a power cable, and a mouse, you can use the Pi 5 and forget that you’re using such a small and relatively small computer.

It isn’t portable. It doesn’t have batteries, or a keyboard, or anything else, but when it’s plugged in it works well for web browsing, and hosting docker containers, and running VS Code, for blogging at least. If you’re a writer then the Pi 5 could be enough.

Bluetooth Tethering

I tried pairing a bluetooth rapoo keyboard and that worked as well. Just open the bluetooth tab, tell the keyboard you want to tether by pressing the pairing button, find it on the Pi, type in the pin, and you’re tethered. This means that you can keep the ports free for hard drives or other items.

Power Adaptor

I tried using a Pi 4 power adaptor and it worked but said that it would restrict the amount of power third party devices could draw from it. The Pi 4 has a 15W power adaptor whereas the Pi5 has a 27W adaptor.

Laptop Replacement

My Mac Book Air is old and needs replacing. By Autumn of this year it will no longer be supported by Apple. That’s why I didn’t bother to replace the battery a few weeks ago when I was considering giving it another two years of life.

I was playing with an H Elite Book recently. I have cooled to this machine because it has killed two USB devices. It killed a hard drive and a USB stick. Due to this realisation I think I will use it for experimentation, and nothing more. I don’t mind that it killed the old USB stick because I expected that it was already dead when I found it after it had been dormant in a drawer for years. When it killed the SSD I didn’t know whether the drive had died because it was cheap so I was worried for it’s twin which I am using photoprism with at the moment.

I’m happy that it’s the USB port that killed the drive, rather than a faulty drive, but I would prefer not to kill any more devices. I don’t trust the right USB port not to kill it’s own USB devices, if given the chance.

I will install NixOS on that machine and experiment with it.

And Finally

Although I bought the Pi 5 to work as a server I have realised that it can be used as a desktop for web browsing, playing video and more. I like that the Pi 5 has a fan that speeds up, or slows down, depending on how intense the work load is. This means that it can be quieter when you do simple tasks. I feel that it could replace my 1600 CHF eight year old mac book pro, with relative ease.

I should try to run kdenlive.

I’m happpy with the Pi 5, so far, after a day of experimenting.

Photoprism and Fast Loading

Photoprism and Fast Loading

ast night I spent hours going through videos and changing them from “public” to private, so that they would be removed from the index. I went through them by loading 2024 without filters and worked my way through 60 or so files at a time, before scrolling, and waiting for content to load. After a few hours I got bored so tried to switch things up.

I decided to sort images by camera but that’s slow, so I tried to sort by colour, and by category, and more. I found that if you sort by colour, category and other filters the video thumbnails load within seconds. I don’t mean sixty images per scroll. I mean hundreds of images at once.

The Goal

In my use case I wanted to make private or unindex thousands of files at a time. Imagine if you have a thousand images of a wedding, or three or four hundred images from a conference. If you want to change hundreds of files you want to be able to see all media assets at once, rather than mindlessly scrolling and waiting to load.

Filter Searches

I counted and with the unfiltered process I had to wait at least eight seconds for 60 thumbnails to load, and then scroll again. By using various filters that was reduced to seconds, for every image.

On the same topic, if you want to bulk modify media assets the limit is 999 files at once. Once the changes are applied you can select the files that were not processed, and continue from there if you selected more than 999 files.

This is good for adding the country for images where that information is not in the exif, or adding a photographer’s name if that is not in the exif. It’s a trick worth knowing about.

Hundreds of Faces

In the process I also learned that my instance of PhotoPrism could index faces from video and photos. If you take photos at an event then PhotoPrism will help you index photos according to which faces are in them. De-rushing videos becomes faster. Of course this probably works for keyframe images, rather than actual video but that’s still great if each face is used as a keyframe for the relevant file.

If you’re at a wedding you can define the names that go with faces and it can find images with the bride, groom, and other key personalities. Instead of just giving a photo book you can give them a way of searching by key individuals. The advantage of using PhotoPrism is that it’s hosted at your home or work place, rather than in the cloud and should thus be more secure, as well as kept out of Google or Facebook’s hands.

And Finally

In the end I marked 68,000 video files as private. That is 68,000 files that I could migrate from PhotoPrism Instance to another. I could have one for personal photographs and video, and the second one for random videos from the web. Do the videos, themselves, have any value? Nope, but the photo archive does, and the establishement of a faster work flow does too. The faster we can process tens of thousands of files, the more time we can dedicate to high value media assset management.

PhotoPrism On a Pi Continued

PhotoPrism On a Pi Continued

After more than a week of working twenty four hours a day my Raspberry Pi 4 finally indexed over 120,000 videos and photos. The first thing that I notice is that Photoprism feels slower now. It takes several seconds and it feels as if it is suffering.

Overloaded with 120,000 Files

The Raspberry Pi 4 and PhotoPrism were not designed to have so many photos at once. It tells me that 63,000 files are videos, which I will remove from this archive eventually. They take an enormous amount of space without having much personal value.

Imagine that you use PhotoPrism to index your video directories, where render files are generated by Final Cut Pro X or other softwares. If those files are indexed then they take up a lot of resources to index but have no value except to the video editing system.

Purging Render Video Files

As an archivist I would often purge the render directories because they can take gigabytes of space when the only file you need is the final edit, as an international version, with no titles, and natural sound.

The Long Tail of Thumbnails

Although I speak of 120,000 images indexed there might be 12 times that number of assets being tracked by PhotoPrism. It generates up to 11 thumbnail images per asset for quick display on different resolution screens, from laptops to desktops, mobile phones and tablets.

12,000 of those video files are live photos, so I need to sort through the other files now that the indexing is finished.

Extra stats

It has found 1365 folders, 725 places, 222 calendar “events”, 57 moments and 59 people so far. It takes a long time to load unrecognised people with PhotoPrism because it is not designed to deal with hundreds of unrecognised faces at once.

Changing Faces

As you go through decades of photos at once you notice the faces that have changed over time. You see how you looked when you were two or three decades longer, and you see how your face has changed over time. You also see how much younger people looked just eight years ago in some cases.

The other challenge is to remember the name of people that you have photographed, and with a decade or two since you saw certain people it’s hard to remember.

If you have no idea of a person’s name you can just mouse over a face and click the x button and that face will cease to be in the database.

No Mass Delete

There is no mass delete option. If you want to delete photos via the web interface you will need patience. It might be better to use wildcards and delete them from the directories, and then refresh the indexes to remove ghost files and index references that no longer have media attached.

And Finally

The next step is to see how to backup the database files so that if photoprism crashes I can restore it, and how to backup the images, so that if the drives fail I do not lose the data. The step after that is to see how differently it behaves on a Raspberry Pi 5. I suspect it will make a huge difference.

Xcursion Fusion in Snow

Xcursion Fusion in Snow

Yesterday it snowed enough for the snow to get some depth. I went for a walk with snowboard trousers, a proper winter coat and the Xero Xcursion Fusion in snow that reached above their rim without getting snow or water onto my socks until I removed the shoes at the end of the walk. They’re minimal waterproof shoes that have “FeelTrue®” soles. These are thin, minimal soles. Despite this my feet felt warm for the entire walk with normal soles.

Fine in Snow

When I was walking on thin snow I felt that the sole might be sliding slightly but this is probably due to the slightly slushy snow, rather than the soles. Sometimes I had to walk in five centimres or more of snow and they still felt fine. I didn’t feel any concern about snow making its way into the shoes, even when walking where grass or fallow fields were growing. They’re very comfortable.

Light and Flexible

The advantage of these shoes is that they’re light and flexible. When you walk with them you can walk with your ordinary stride, rather than one adapted to hiking shoes, or moon boots. I thought that I might feel the cold through the thin soles but no such problem. I could walk normally for one hour and fourty minutes without regretting that I was wearing these shoes. That’s great, because hiking shoes can be 200-300 CHF and I got these for 90 CHF, the same price as my other barefoot shoes that are better in summer, and dry conditions.

I did not expect them to be so comfortable. I thought that water could filter through the top, or the gap between the tongue and the sides of the shoes, or through the soles. I had none of these issues. I would rate these for winter walking with snowboarding trousers without hesitation now. I was pleasantly surprised by how comfortable they were.

When I tested them in heavy rain, walking through puddles I did get water to enter the shoes. With snow they’re fine, because snow isn’t wet until it melts. It’s important to stay dry when freezing conditions could affect your comfort level.

Walking in a Cold Wind

Although not highly scientific I walked in a cold wind two days ago with these shoes and felt no discomfort. It’s not a scientific observation, as I didn’t walk on my hands with my feet in the air. The main point is that despite being minimal I do not find them to be uncomfortable in -2°c with a strong wind and a noticable windchill factor. I didn’t check the “feels like” temperature

The Competition

Originally I wanted to get the Merrel Tail Glove 7 GTX but cancelled my order due to the wait. I also cancelled my order due to the price. The Trail Glove 7 GTX shoes cost from 160-180 CHF whereas the Xero shoes can be bought for 80 CHF if you shop around. The Xero Xcurion Fusion shoes cost as much, or less than the barefoot shoes and they keep my feet dry.

Snow Shovelling

When I finished my walk I noticed that snow had built up on the road outside of the building I live in. I went down to the garage to get a snow shovel and started to shovel the snow. Part of that shovelling requires walking up and down a steep ramp that was covered in snow. I did not slip, or feel that my traction was in danger once. I was in full control the entire time.

And Finally

Usually when it snows you need to wear big, heavy shoes that are more tiring to walk with. With the Xero Xcursion Fusion shoes you have the advantages of ankle height hiking shoes without the weight and bulk. These shoes are light and malleable. They do what your feet are doing, without having to adapt your gait to the shoes. The shoes are well suited to casual snow walking, especially when you have snow trousers with gaiters that prevent any and all snow from entering through the top. That’s how shoes should be.

I believe that these shoes are worth trying, especially if you’re used to the barefoot feel but want something that is seasonally appropriate. I was comfortable both when walking and shovelling snow.

PhotoPrism, Walks in Cold Weather and Migrating to Linux

PhotoPrism, Walks in Cold Weather and Migrating to Linux

A Cold Walk

Yesterday I went out for my daily walk but within minutes I noticed that my legs felt cold and that I really did need the scarf that I wore. It’s exceptional for me to wear a scarf. My fleece and my inner coat both have neck protection built in so I usually feel fine. Yesterday was unusually cold so I was happy to add the scarf to really keep my neck warmer. I removed it for a few minutes because it felt itchy but I soon put it back on.

PhotoPrism is Still Indexing

In the meantime PhotoPrism has been chugging away, indexing tens of thousands of files and adding location information as well as other metadata. It has indexed 60,000 files of which 20,000 are videos. Most of the video files are junk though, stuff I saved that has no personal value. I’m marking the video files as private and I will probably delete them as they take teraybtes of space without having much value.

Migrating to a Linux Machine

I also experimented with migrating my blog writing from this mac to a Linux machine. I managed to gh clone the blog files from github to my local linux machine but struggled a little with uploading the test file from the linux machine to the web server. While writing this blog post I was reminded of the solution that should work.

My mac is old and I suspect that at some point the battery will fail and I will lose access to it. I already had to swap the battery once and soon it will die again, and that’s when I will stop using it.
I considered swapping the battery a second time but I saw that Apple is about to stop support for it. If I can use a Linux machine instead, then I save money.

And Finally

Walking in challenging weather is good. It requires us to equip ourselves better, to remain comfortable, whether it’s cold, rainy, windy, or a heatwave. By migrating from Google Photos to PhotoPrism I can keep photos and videos locally rather than in the cloud, and access them with ease, as well as slide from the cheapest service to the cheapest service without investing days or weeks in the effort.

Sliding from Mac to Linux is about learning, and cutting costs, but mainly about experimentation and learing about a different OS. It’s good to be comfortable on Windows, Linux and Mac. At least now if, and when, the mac fails I will be ready to slide from one device to the other.