Patterns I have noticed when people struggle with switching to using Linux as their main operating system

A while ago I wrote the following in a blog post that was mainly about Reddit:

I’m in no way surprised that people are generally quite bad at describing the issues they are having, and also that they are very bad at choosing the right place to ask for help. I do have vague intentions to write up long answers to things that people seem to struggle with, probably starting with my insights on how people switching to Linux invariably start off with doing something really hard as part of their initial switch (dual-boot, Nvidia drivers, getting Windows software to work in the same way it does on Windows) and give up soon afterwards, not realising that everything else they will ever do isn’t going to be that hard to set up. That’s an essay for another day, but this is definitely a statement of intent.

This is a start at writing up some of those thoughts.

2025 marks my 20 year anniversary of starting to use Linux as a desktop operating system. Over those years I’ve used it consistently, and used it as my primary operating system for most of that time. I still use Windows at work, but when I have a choice of what to use then it’s generally Linux (either Debian or Ubuntu, depending on the use case). Because I’m an experienced user, and also someone who has worked in IT support, I often find myself trying to help people who want to make the same switch I did, but I find myself failing at the first hurdle because they are either trying to do something that is hard, or something I’ve never actually done myself.

Things people often ask for help with

I thought it was worth listing those things, because they are all things that I am definitely not the best person to help with, but some of them should be quite trivial with the right instructions:

  • Dual booting Linux and Windows
  • Installing Linux on a PC with an Nvidia graphics card, and choosing a distribution that doesn’t have a GUI for configuring graphics drivers
  • Playing games where no native Linux version exists, or where anti-cheat is a feature of the game
  • Having a workflow that relies on software that is not available for Linux, such as Microsoft Office or Adobe Creative Cloud
  • Using Wine or something similar to run Windows/Mac software on Linux
  • Using a DisplayLink docking station
  • Installing or virtualising Linux on Apple Silicon

Some of these are clearly a result of situations where people want to run Linux as their primary OS, but need to keep Windows or MacOS around for specific use cases. How I always approach this is to have two computers, because my need for Windows is 100% work-related, and I am provided with a computer by my employer. But it would be a different story if I was a gamer or needed to use Photoshop.

I always try and recommend a dedicated Linux computer, because it’s possible to get a great experience on a fairly low-specification machine. Most mini-PCs work well, and there are always refurbished ThinkPads on the market that are either certified to work, or have been used by enough Linux users that documentation will exist for any workarounds required. A second computer reduces the risk of overwriting a bootloader or losing valuable data, and it means that the original computer is still available for those tasks better suited to Windows or MacOS.

But computers are expensive, and for some people they are unaffordable. Which is why a lot of these risky scenarios are attempted in the first place. Computers also consume electricity, produce extra carbon, and take up additional space at home. There are all sorts of reasons why most people only have one computer, and I accept that my default solution to most of these problems is written from a position of privilege.

Pre-switching checklist

Before even thinking about switching, there are a few things I would recommend:

  • Work out what applications you are going to use for everything you use a computer for, and if they are cross-platform then install and use them on your existing OS.
  • Ensure that all data you care about is stored somewhere that is not connected to the PC you plan on installing Linux on.
  • Get used to the Linux command line by installing something like Multipass or WSL.
  • Download the .iso of whichever Linux distro you have chosen, and run it in VirtualBox to check it meets your needs.
  • Burn the .iso file to a USB device, and boot the PC you are going to install Linux on. Check that all your hardware works, and that you are happy enough with how your computer is going to work afterwards.
  • Read and bookmark (or print out) installation instructions, and URLs of sites where you can ask for help or report bugs.

All of these steps are non-destructive. You may at some point realise that you can achieve what you want using a container or VM, or decide that Linux is not for you. These are things that are best found out before you have reformatted the hard drive of your only computer.

But what if it all goes wrong?

Each Linux distribution will have a place where you can ask for help, and where you can access documentation. These should be the first place you look. Reddit is used a lot for support, but there is no guarantee that there will be someone who can answer your question or help you out, and a lot of subreddits are specifically not for support, so if you ask support questions your post will likely be removed, or at best downvoted.

Writing a good description of what is going wrong is essential. I’ve linked to this article for a long time, but I still think it’s the best description of how to write a good bug report. There is also an Ubuntu specific guide that might be useful.

I still try and help people out when I can, but as a non-gamer with fairly modest hardware requirements, I increasingly find that the problems people are having are not things I have any experience with. But I still think there are very few new problems out there, so hopefully there will always be someone who can point new users in the right direction.

Responding to a power cut

We had a short power cut earlier this week, which was a good test of the power resilience we have configured in the caravan. We are using some kit that requires constant electricity to function, but try and ensure that anyone who is working can continue to work for a few hours in the event of losing electricity.

And that’s exactly what happened. When our main router lost power, devices seamlessly connected to the secondary one (which has a battery), and the internet continued to work. There was no report of a loss of connection, just of one monitor powering off. We actually got as far as unplugging the monitor to swap it out before we realised that other devices in the van were also without power, and that the monitor was actually fine.

If we were using our USB-C monitors then we probably wouldn’t have noticed, which is a good indication that things are working largely as expected.

As I’m not working this week I’m using my more powerful mini-pc because I wanted to give it a decent road test. It didn’t survive the outage, but did restart as soon as power was back. I probably need a better solution if I am going to used this type of computer more, but if I was using my work setup I would have been fine until either the battery in my laptop or in the backup router gave out.

There is more we could do, but it was good to be able to validate our current setup here.

Punk, hardcore and metal albums of 2024

Over the last two years I have found myself listening to a lot of heavier music, and even some heavy metal, which is a new genre for me. I don’t know lots about this music, but I did think it was worth writing a list of things I’ve enjoyed, as a subset of a longer list that will follow later in the month.

I am definitely interested in more music in these genres, or anything that sounds a bit like them.

LM Studio Experiments

I have been experimenting with LM Studio over the last few days. This is a tool that allows me to run large language models locally on my computer, making it ideal for when I’m travelling or spending time somewhere with a slow or unreliable internet connection. It’s cross-platform (Windows, Silicon Macs and Linux), and has so far worked on every machine I’ve tried it on, although not always with the default settings.

There are a number of different runtimes and language models to choose from, with the smallest ones working on a laptop with 8Gb of RAM, and the large ones requiring a very powerful computer to get the best out of them. I’ver tried them on my work and home computers to do the sort of thing I use Copilot and ChatGPT for, and the experience is comparable, especially when using some of the larger models.

Ideally the software wants a decent graphics card and lots of RAM. The latter I can provide it with, but on my desktop computer it initially failed to work because it was trying to use my old and slow graphics card which is nowhere near good enough for this kind of tool. In this scenario it was just a case of telling it use a different runtime (CPU llama.cpp), and then everything started working as expected.

It’s also worth mentioning that the Linux version ships as an AppImage, which means it needs Fuse v2 to run. Newer distros will need to install libfuse2t64 to get it to run in the first place, but after that everything should just work.

In a world where AI is the future, but privacy is important as well, I think tools like this are definitely worth spending some time with.

Songs of a Lost World

Yesterday was the release day for the new album by The Cure. I used to try and pick up their albums on release day when I was younger, but don’t think I have managed to do so since Wish as very long time ago.

My first thought is that this record is really good. I keep trying to compare it to other Cure albums, and the best that I can do is that it’s a bit like the best parts of Disintegration and Bloodflowers. There isn’t a bad song on it, and I think it’s something I’ll come back to for many years.

If you like The Cure you will love this. And if you like music in general it’s definitely worth a listen.

In the evening there was the album launch concert, which took place at The Troxy, but was also broadcast live on YouTube which meant I could watch it without all the logistical challenges that a concert in London presents. It started with a performance of the whole new album, which is what I expected, but was then followed by a 2+ hour set of old favourites and a few things I wasn’t expecting (such as a whole segment dedicated to songs from Seventeen Seconds). It reminded me how important this band were to me when I was growing up, and how much time I have spent listening to their music. I think this lineup is probably the best ever; although it’s not too different to who was on the stage in 1989 when I last saw them play live.

Everyone looks older, but they still sound great, and these songs definitely stand the test of time. I think the new ones will as well, and am hopeful that the rumours of one more album before they retire are true.

New Music

It’s been another good week for new music. I try and listen to a few new things every Friday whilst working, and this is the selection I chose yesterday:

I’m already familiar with all three artists, but it’s always good to hear new music from old favourites.

Updated Ubuntu Installation script

I’ve made some major changes to my Ubuntu installation script over the last few weeks. Mostly because I finally replaced the hard drive in my laptop and needed to do a clean installation, but also because I wanted to try and get DisplayLink drivers installed by default, which has historically been a pain.

for the latter I’m now using a lot of someone else’s work, and a little bit of my own:

install_displaylink() {
    git clone https://github.com/AdnanHodzic/displaylink-debian.git
    cd displaylink-debian
    sudo ./displaylink-debian.sh
    wget -q https://raw.githubusercontent.com/teknostatik/debian/master/20-displaylink.conf -O /etc/X11/xorg.conf.d/20-displaylink.conf
    cd ..
}

One day there will be a more elegant solution, but for now this will do.

Since writing the original draft of this post I decided that having these drivers on all my computers really isn’t required, and I would generally just plug a HDMI cable in and use the dock for just the standard I/O. But it’s still there in a script as an optional setting, in case anyone else might find it useful. I’ve also added a few more optional settings, for QMK installation and enabling the firewall by default. I tested all this on a clean install of both 24.04 and 24.10 and it all seems to work fine.

Thoughts about living off the grid

I’ve been researching off-grid lifestyles for a while. Not because it’s something that I think would fit the way my family need to live, but because there are definitely things we can learn from people who have chosen that kind of life, and who are making it work.

As a technologist the idea of not having reliable electricity scares me. But then we live for 9 weeks a year in a caravan, and can already power phones and a mobile internet connection for several hours with power banks. Investing in another power bank that could recharge laptops would probably give us everything else we needed in an emergency, and adding some decent solar panels would make us mostly electrically self-sufficient as far as powering devices go.

We also have a lot of gas-reliance in the caravan, but most of the vans on this site use bottled gas anyway, so this would be straightforward to set up if required, as the van is already built for it, so it would just be a case of switching a few cables around. That would give us heat, hot water, and the ability to cook on a hob or in an oven.

Water is a trickier problem, but it’s generally the easiest grid to get connected to. A lot of places people live have water when they don’t have electricity, and there are definitely ways to make running water useful from an electricity-generating point of view.

We are not ready to take these steps yet, but there are things we have learned and changed already as a result of this initial research:

  • Not replacing our unreliable dishwasher and broken tumble drier has not really impacted our lives too much at all. Washing dishes just gets built into my evening chores, and clothes can be dried either on radiators or using the natural heat of the sun. We have a launderette lined up for emergencies. but it is rarely used.
  • When we’re in the caravan, a small portable washing machine will take care of most of our clothes washing needs.
  • We don’t need anywhere near as many clothes as we thought we did, and we definitely have enough of them to last a good while.
  • It’s possible to work off a laptop indefinitely, and there are now good enough portable monitors with a very low power draw to give the desired multi-monitor setup for working.
  • A combination of mobile internet and tethering to phones gives us three layers of internet contingency, at an additional cost of £20 a month plus £10 per trip if concurrent streaming or meetings are likely to happen regularly. We use Smarty for our main connection, and GifGaf for the backup, but that’s purely based on what works well in this physical location, and milage may vary elsewhere.

There will definitely be more experiments over the next year or so, and we do need to try and be more mindful about how we use electricity and gas throughout the year, not just when we are travelling.

What is a team?

A couple of months ago I gave a series of talks on creating team charters. As part of my preparation for this piece of work I asked myself a number of questions about what a team actually was, and what sorts of questions teams should be asking themselves regularly. Some of this content was used in the talks, but I’ve tried to make this article more about teams than team charters, as I’ve written and talked about these a lot elsewhere.

What is a team?

A team is a group of people who collaborate to deliver value. Value is anything that a customer would pay for.

A team doesn’t have to all report to the same person, or do the same kind of work, they just need to be able to combine their skills and expertise in a way that delivers something that someone else finds valuable.

Why does the team exist?

Each team should understand why is exists, and be able to articulate that in a short phrase. This should be a mission statement (what you do now), but may also incorporate elements of a vision statement (what you hope to achieve).

You should also understand who your stakeholders are, both the people you deliver work to, and the people outside the team who you depend on for things that you need. Ideally a team should be able to control everything it requires to deliver value, but this is unlikely to be the case in most organisations, and you are likely to have stakeholders who provide data centres, networks, offices or financial processes. Think about everything you need to do your work, and work out where it comes from, and how to get enough of it for what you need to do.

What skills does a team need?

That depends very much on what the team are responsible for delivering, but can be split into 3 main categories:

  • Subject matter expertise
  • Organisational skills
  • Leadership and management skills

These skills should be present across the team, but it’s fine for one person to have aspects of all three. What you don’t want is people who don’t have any of these skills, as they will find it harder to contribute meaningfully to the team.

How many people should be in the team?

That very much depends on what skills the team needs, and how those skills are distributed between individuals.

I like teams of 4-6 people, because they are small enough to make collective decisions quickly, but large enough to realistically contain a good mix of skills and experience. I may also add 1-2 interns, graduate trainees or apprentices, especially if the work being delivered would benefit from the unique experience people at the start of their career will bring. It’s also a good way to ensure that people starting out are being given a positive experience about what it’s like to be in a team.

How do we empower a team to be self-organising?

A self-organising team understands what it is there to do, and receives work from customers rather than managers. It prioritises work based on what value it adds to one or more customers, but also improves how the work is done so that valuable work is delivered more often. It is free to make decisions on how the work is done, providing any institution-wide restrictions are factored in. The larger the institution, the more likely a team will be restricted in some of the tools it uses, or in where and when it works, but it is still worth thinking about these things and contributing expertise towards redefining the institutional standard, rather than just using something different and then struggling to collaborate with other teams.

Working in this way can require a bit of unlearning, especially for people who hold leadership or management roles. An understanding of the key principles of Agile can help with this, as very often ceremonies associated with Agile (especially Scrum) are used to plan and deliver work in a self-organising team.

How does leadership and management work in a self-organising team?

In a traditional team you would expect the team manager to provide all (or most) of the leadership. management, and organisational skills, but also a fair amount of subject matter expertise. In an agile team we still need all of those skills, but they are more likely to be split more evenly between different team members.

How this might work:

  • One person who has a primary responsibility for ensuring that the work the team does continues to provide value to customers.
  • One person who has a primary responsibility for providing an environment for the team to do their best work.
  • Several people with subject matter expertise, who also have enough leadership, management and organisational skills to ensure that they can deliver within their subject area without hitting blockers on a daily basis.

Ensuring the skills are more equally distributed helps the team when one of more people are on holiday or otherwise unavailable to work. It means that a team is better positioned to deal with things that might slow down delivery, and that the team is not reliant on one person for many different things.

What meetings should the team attend?

There are a number of internal meetings that we find useful:

  • Daily stand up, to ensure that we have a collective understanding of what we are doing each day, and that we can identify anything where we might need help
  • Sprint planning, so that we understand what is being delivered in the next 2 weeks, and who is doing what
  • Retrospectives, to enable us to scrutinise how we work, and suggest improvements that can be fed into the next cycle

We still conduct 121 meetings, but these are less like status update meetings, and more about personal and professional development. Meeting every day to talk about our work doesn’t make 121 meetings less important, it just means we can focus them more effectively.

What about all those other meetings we attend?

Review all meetings and regular time commitments to ensure they add value to customers or directly contribute to improving how the work is done:

  • Why do you attend the meeting?
  • What contributions do you generally make?
  • What outputs do you get from the meeting, and are they valuable?

These questions should help identify meetings that could be dropped in order to free up more time for collaboration and individual contributions.

It is expected that people with leadership and management responsibilities will attend more meetings that individual contributors, but that in general there will be less meetings than in a traditional hierarchical team. Managers should be protecting their teams from meetings where possible, but this does not mean that people should stop collaborating with other teams; just that they do it in a way that only the people who are directly contributing to the collaboration are involved.