Bob's Tech Site


About

This page contains assorted information about Bob and his thoughts on free software, and was last updated on . You can optionally follow him on Mastodon, Twitter, PeerTube or Neocities, and donate via Ko-fi or Liberapay.


An intro to Bob

I'm a British guy in my late 20s, and I live in a town called Swindon in the South West of England. I also grew up in that area, but have lived and worked in places as far-flung as Plymouth, Ipswich, London and even Belgium. In my free time you'll typically find me playing video games of various ages, refurbishing old computers, pottering around in my garden, drinking strange beer in a foreign country or keeping in shape with some cycling.

My computing career originally started in , which is also when I started Bob's Tech Site. I spent a combined five years receiving training for a BTEC National Diploma for IT Practitioners from Wiltshire College and a BSc (Hons) Computer Science degree from the University of Plymouth. I graduated in .

The first paid position in the technology industry I ever had was an internship with Future Publishing, where I worked for three months over the summer of writing for a technology magazine called Linux Format. I have since contributed articles on a freelance basis.

During a gap year from to I worked for an international school in Belgium called The British School of Brussels as an "ISS Admin Assistant". My primary responsibilities included data entry, the creation of SSRS reports, assisting IT technicians with computer maintenance, and providing over-the-phone IT support for teachers and academic support staff. This role later evolved to include creating database front-ends for SQL Server and implementing a campus-wide VoIP intercom system (this used NIC units and netbooks running customised software on Windows).

After graduating I acquired nearly five years' experience as a professional software engineer. Three of those years were spent working for BT in their IPTV organisation, where I wrote and maintained RESTful web services using Java, Python and C#. I also won an industry award for my career to date and volunteer work teaching kids to code in the local area. Subsequently I worked as a consultant on behalf of Capgemini, and wrote Java microservices for clients such as the Metropolitan Police Service and Jaguar Land Rover.

I joined Oracle in the summer of , and now work remotely as a technical writer in a globally-distributed team. I contribute to the official documentation for Oracle Linux and re-packaged versions of software products like Docker and Kubernetes. This has afforded me the opportunity to pursue a good work-life balance without compromising my ability to attract a comfortable salary, so I'm not displeased that programming is now a hobby rather than a profession. Returning to the kind of writing and support work I enjoyed doing in my early career has so far turned out to be a positive decision that's made me a lot happier with life, the universe and everything.

Return to top


How Bob does his computing

This section was inspired by Richard Stallman's much longer article.

Computers

My main productivity machine for home use is a HP Spectre 13 "ultrabook" laptop I bought in . It has a dual-core Intel Core i5 processor, 8GB RAM and a 256GB SSD. While it is very pretty and light, I also have anxiety about the components failing because it's impossible to repair! The WiFi adapter also requires proprietary Intel firmware to function, and HP's decision to only include three USB-C ports for expandability (one of them is used for the power cable) continues to be problematic.

In I also built my first desktop gaming PC. It has an 8 core AMD FX 8350 processor, 16GB RAM, two hard drives (2TB and 1TB) and an MSI-branded AMD R9 380 graphics card. While it wouldn't impress "hard core" gamers used to their "souped up" machines, it's certainly more than a match for modern games consoles and cost about the same as a mid-range laptop to build and upgrade.

At the start of I picked up a second hand Mac Mini. It's the mid-2010 model with the RAM increased to the maximum supported 8GB. I picked this up partly for catharsis (I bought a previous one new, but had to sell it in when money was tight), but mostly because I wanted a dedicated workstation for writing blog posts and working on podcasts.

My current smartphone is a second-hand iPhone 7, and I have a 10.1" Samsung Galaxy Tab A (). There are also a number of Raspberry Pi devices connected to my home network.

Finally, I collect old computers. Sometimes I restore them for educational or gaming purposes, other times it's to test if Linux or BSD UNIX will still run on them.

Linux distros

For my full-time employment I use Oracle Linux on everything, as that's the operating system I'm paid to write technical documentation for.

At home I use Debian 9 "Stretch" with the GNOME desktop as my primary operating system on every machine that supports it.

On my PC gaming rig I have one hard drive setup with Debian and another with Windows 10 Pro. I'm hopeful that as more games are ported to Linux (or supported with Steam Play) I will eventually be able to delete the Windows installation.

The mid-2010 model Mac Mini I bought "second hand" alternates between running macOS "High Sierra" and Debian 9 depending on what I am using it for.

First choice Linux distros over time

Using the Internet

Since I have used Mozilla Firefox as my primary browser. Mozilla does annoy from time to time though with their weird decision to spend years slowly deprecating features I use in favour of ones I don't (such as Pocket, "Highlights" in new tabs, Hello, and "experiments" that are actually adverts) for monetisation purposes has negatively impacted my workflow. The "Quantum" changes in ESR 60 were definitely welcome, but it is still quite sluggish on most systems and has problems rendering an annoying number of websites.

In I spent some time trying out Chromium as my primary browser. This is still open source and doesn't include the non-free components of Google Chrome, but I found the constant prompts to track me annoying and aside from a few sites working better in its webkit engine there was not much benefit to switching. I use Safari when I use macOS though, and I have tentatively started to try Vivaldi on my Debian installs.

My current employer makes me use Mozilla Thunderbird with their internal mail system, but this has not changed my mail client preferences. For over a decade (since ) I have used Evolution mail as my primary email client on Linux systems, and I currently use it in addition to Tutanota, a GPLv3-licensed service hosted in Germany that provides end-to-end encrypted email in the browser.

When it comes to social media I use a self-hosted instance on Mastodon. I also have a profile on LinkedIn for work purposes, and I used to have one on Facebook but I finally deleted my account in . I have used Twitter on and off since . Friends and family have pressganged me into using WhatsApp and Discord, but I am casting around for better alternatives they might be willing to use.

Programming

My "go to" coding language is Python, as I can quickly prototype applications and write simple scripts without all the extra "boilerplate" other languages require. Its huge repository of third party libraries and Lisp-like syntax also appeal to me, and for more complex projects the IDE support is excellent.

I am currently thinking up what my next free software project should be, but I am tempted to use it as an opportunity to learn Rust as I have heard good things about it, even if a silly stereotype did initially put me off!

Return to top


Linux distributions that Bob recommends

My assumption here is that you have already made up your mind to give Linux a try and want some advice on which distros are worth experimenting with. The biggest hurdle you will encounter if you have only ever used Windows before is having to re-learn how to use a computer. You can make that easier by spending some time using free software tools like Mozilla Firefox, LibreOffice, GIMP, Clementine, VLC and others on Windows first.

The best advice I can give you is to try different "distros" and desktop environments for yourself to figure out what works best for you and your workflow.

Here are ten suggestions for Linux distros you could try, in friendly alphabetised categories that reflect the four stages of being a Linux user. These are based on my own experience of trying out distributions over the last decade, and conversations I've recently had on this subject with very cool Mastodon users.

"I want to try out Linux and maybe dump Windows"

"I like breaking things to see if I can fix them"

"I'm a power user that wants to customise a stable lightweight base"

"I must live a pure life without proprietary software"

There are plenty of other great choices, and I recommend you check out Distrowatch for inspiration. If you have a favourite distro and are upset that it wasn't included in this list, or you disagree with the category I put it in, please accept this commiseratory picture of a cute and fluffy kitten.

A cute grey kitten with adorable blue eyes

Return to top


Linux or GNU/Linux?

This has been a hotly debated topic since the early '90s, and there's still no "agreed" answer.

Richard Stallman's stance is that all distributions should be considered "GNU/Linux", because "Linux" refers to the operating kernel, and without the GNU tools and philosophy the kernel itself (and the tools that run on top of it) would not have been possible.

Linus Torvalds and Eric S Raymond think that using "Linux" to refer to the ecosystem in general and the individual distributions (or "distros") by name makes more sense.

I tend to use "Linux" because I don't think the distinction between the kernel and the operating system is something non-technical users should need to care about. However I think non-technical users should care about their own freedom, which is why I refer to "fully free" distributions endorsed by the Free Software Foundation as "GNU/Linux".

Return to top


Free software or "open source"?

I prefer to say "free software" instead of "open source" where it's applicable. Here are Richard Stallman's thoughts on the subject, and here's the Open Source Initiative's definition of open source.

My understanding is that "open source" focusses on code availability instead of the end user's rights, which can lead to strange situations where the user can review the code for an application but they can't use the same build tools or share the final executable. One such example is Visual Studio Code.

While the differences are fairly small, I disagree that the free software philosophy needs to be sanitised to increase the creation and adoption of software with user-respecting licenses. It should be a feature, not a bug!

"Open source" is often sold to business owners and managers as "outsourcing development effort" or "the cheaper option", when what it's really about is collaborating with others to improve software security and sharing costs related to development or licensing. Free software also provides flexibility for future decision-making through the use of open formats and cross-platform interoperability, and inspires loyalty from customers and employees by respecting their rights as end users.

It is not uncommon to see businesses or individuals that try "open source" for the wrong reasons revert back to old habits because of the way the solution was sold to them. If you want to successfully evangelise free software, start evangelising the merits of free software, not just open source!

If you'd like a more detailed explanation about the difference between free software and "open source", as well as the pros and cons of using free software compared to non-free "proprietary" alternatives, I recorded a podcast about it in .

As for my own code projects, I generally choose an MIT-style license. This is because it imposes very few conditions on other projects, clarifies user rights under international copyright law and (in theory) protects me from being sued. As an individual, I do not expect to be able to enforce the full terms of the GNU GPL (General Public License) for my personal projects. In practise it is mostly the projects that are used widely enough to attract the attention of the Software Freedom Conservancy that seem to have enforceable uses of that license beyond "public shaming" on social media.

Return to top


When will it be "the year of the Linux desktop"?

It has already come and gone! was "the year of the Linux desktop" because netbooks running the operating system appeared in department stores, proving they could be marketed and sold at scale. Ubuntu was also mature enough for disaffected Windows users to switch across without in-depth technical knowledge. Google also stole a march on Microsoft with Android, and by the time Windows Phone arrived it had already lost the battle for smartphone dominance.

Since that year Linux has gone on to dominate every device category in the industry. The vast majority of websites, business servers, motor vehicles, WiFi routers, cable boxes, games consoles, CCTV systems, smartphones, tablets and more "embedded systems" than I can name now run on Linux as standard. You can also buy computers with Linux pre-installed by mail order from companies like Dell, System76, Purism, Pine64, TechnoEthical, Entroware and others.

Over a decade later the only hurdles to adopting Linux for most users are niche proprietary software products that haven't been ported to "the cloud" yet or don't have free software equivalents. PC games continue to be a sticking point, but Valve and EA have made positive steps to encourage improved emulation of Windows games and new native Linux ports. Compatibility with Microsoft Office is no longer an issue because (on the rare occasions LibreOffice can't open a file properly) users can pay Microsoft a subscription for the browser-based version.

Microsoft gave Windows 10 away for free to their existing customers, has shifted their focus to subscription services and the cloud, is pushing hard to lock down devices so they can't install Linux, started porting their applications to rival platforms, and has even bought "open source" companies and provided a Linux emulation layer just to stay relevant. They can clearly see the writing the wall, and they know their dominance on consumer desktops is only maintained by market inertia.

Finally, for the past five years schoolkids have been taught how to program on the Raspberry Pi and similar devices. Google is also finding some success in classrooms with its Linux-based Chromebooks. The old-timers might be set in their ways, but I think the next generation will push back against being passive consumers of proprietary technology and be more discerning in their technology choices, because they know there are compelling alternatives.

tl;Dr: Linux has been supplanting Windows and UNIX for over a decade now, but existing home users have barely noticed.

A dose of reality

Despite those very upbeat things I just said, there are serious hurdles to mass Linux adoption on the desktop. Gaming remains a problem, and core applications like Adobe Creative Suite, Microsoft Office, AutoDesk and others will probably never be ported. Also the lack of a support network beyond forums and no pre-installed systems in retail stores means that Linux on the desktop is likely to continue being used mostly by enthusiasts for the foreseeable future.

I suspect the biggest challenge to Microsoft's dominance will come from Google Fuchsia. Games and those core programs are already available because of its support for Android applications, and first class support for the Swift programming language means that iPad and Macintosh apps could be ported over with a lot less effort. Google has also already proven with their mobile platform that they can sell their own hardware and convince other manufacturers to mass market clone devices in real world shops that provide warranties and technical support.

The bad news for the Linux community is that Fuchsia does not use that kernel, in fact Google has written their own called "Zircon". You can find the full source code for this operating system on Google's own git repository.

Return to top