The internet today is creaking under the weight of a seemingly endless barrage of auto-generated clickbait articles, irritating website design, and next-to-useless search-engine results. Even when Google does manage to surprise you with a relevant result, there’s a high chance that the website you end up visiting will attempt to sell you thirteen different things before you manage to spot the information you’re after, usually nestled conveniently behind a slow-loading cookie configuration dialogue.
There’s not much any single person can do about this mess, and it often feels easier to simply give up and accept that what we used to call the internet is actually now just a handful of websites owned by billionaires, plus the rapidly deteriorating husks of a handful of search engines, for whenever you fancy a little ad-supported disappointment.
Fortunately, if you’re reading this, then there’s a good chance that you’re a human, and that means you’re more than capable of eschewing the nonsense and empowering yourself! Your computer is a serious machine - orders of magnitude more powerful than the systems which landed us on the moon - and we shouldn’t allow ourselves to be blinded by a terrible online experience.
In an effort to convince people that we don’t have to wait around for real power and agency, I’ll be posting regular tips under How To Actually Use A Computer - with today’s episode featuring some broad brush strokes before I dig deeper into specifics in a later post.
#1 - Don’t Fear The Terminal
The terminal is the powerhouse of your desktop machine, giving you access to a wide range of tools, with greater flexibility than the standard GUI of your operating system.
It’s important to note the distinction between the terminal and the shell. In simple terms, a terminal is just the interface / app that lets you type. The shell is the thing you ultimately interact with.
Windows
Recommended Terminal App: Windows Terminal
Default Shell: PowerShell
Mac
The default look and feel of any terminal is pretty bare-bones, but you can, with a little work, customise things more to your liking.
I recommend using Oh My Posh on both Windows and Mac to improve the look and feel of your terminal. After all, if you’re going to be spending a lot of time there, you might as well make it look pretty!
It’s worth getting to grips with the basics of terminal usage at a bare minimum. Tom Rankin at Make Tech Easier wrote a very friendly beginner’s guide to using Zsh. Many of the basic commands you use in Zsh are aliased (i.e. type the same thing, get the same result) in PowerShell, but if you want to explore further, then Tim Keary at Comparitech recently produced an excellent PowerShell cheatsheet.
Proficiency with the terminal is something that pays off continuously. Quickly navigating, searching, and performing batch operations across different sets of files and folders is trivial once you know a few basic commands, but is unnecessarily cumbersome if you’re limited to clicking around. Familiarity here will unlock a world of utility, and understanding some basic shell scripting - which I’ll go into in a later post - will be your first step to truly unlocking the potential of your machine.
#2 - Use A Package Manager
A package manager helps you find, install, and maintain the software installed on your machine. Though package managers are not new, and standard for Linux users, I find that Windows and Mac users (even those who are technically inclined!) are often unaware that they exist, or what they can offer. You probably use a package manager already: Apple’s App Store, or Google’s Play Store. These are, fundamentally, just package managers - but there is an entire universe of software waiting to be discovered outside of these tightly controlled stores.
Package managers are more vital than ever given the mess that search engines have become. When all you want is to try some new software, being forced to navigate a parade of websites - apparently designed with the sole aim of frustrating you - can mean you’re more likely to constrain yourself to whatever’s on the app store, or, more likely, simply give up. Package managers have vetting and verification procedures to help ensure that software is safe to install and that users are able to trace the origin of their software easily.
The package managers below are free, and so is most of the software available through them. Particularly on Windows, I would strongly recommend that you perform an audit of your commonly-used software and then reinstall things via the package manager if the same software is available there: this will help ensure that you always know the origin of the software you’re using, and help you to keep things up to date.
Windows
Recommended Package Manager: Chocolatey
Official Package List: Chocolatey Packages
GUI Package Manager: Chocolatey GUI
Mac
Recommended Package Manager: Homebrew
Official Package List:
Homebrew Formulae (mostly command-line software, great for developers, academics, and technical users)
Homebrew Casks (macOS GUI apps - great for everyone!)
GUI Package Manager: Cakebrew
Both Chocolatey and Homebrew are intended first and foremost to be used from the terminal, but both have GUI tools available to manage your packages if you prefer. In the case of Homebrew, there is no officially supported GUI tool, but Cakebrew is one of the better free third-party tools available. It, unfortunately, is no longer under active development, and so doesn’t support the installation of Casks - i.e. GUI apps. However, the Cork app does support Casks, and has a free demo. You can always build the app yourself from source, or development can be supported for $5/month which gets you access to downloadable builds.
An added benefit to package managers is that should you need to move to a new system or start your existing one from scratch, then you can simply export your currently installed package list and reimport it when you’re ready. In a work environment, this is a quick, low-cost way to make sure everybody has access to the same tools.
NOTE: Microsoft has (finally) gotten around to providing its own official package manager: WinGet - which is worth investigating due to its officially supported status, but it doesn’t yet compete in terms of what’s actually on offer.
#3 - Use Containers
I’ve mentioned Docker in the past, in a post about self-hosting:
It’s worth another mention, however, in the context of making the most of your desktop or laptop machine.
Though Docker can take a little work to set up on Windows machines, and may require you to tweak your BIOS settings to enable Virtualization, it’s worth the effort.
There are many, many Docker images publicly available, ready for you to use, on Docker Hub and other registries. You can think of docker registries as a little like a package registry, filled with software and services that can help you save time, improve your workflow, or just have fun.
Using Docker Compose, you can stitch together services into a single coherent stack, allowing you to run web apps, media servers, or anything else.
For example, perhaps you’d like to run Paperless-ngx on your home PC. This will allow you to drag and drop all of your important documents into a single import folder, and have them OCR-scanned, categorised, tagged and organised - saving a huge amount of time and effort.
Or perhaps you deal with a lot of data and want to run something locally that allows you to analyse, visualise and produce compelling reports. You could pay (the excellent) Metabase $85 a month (!) for their extremely user-friendly software, or you can just run it yourself, for free, whenever you need it and take advantage of their automatic insights and chart plotting.
To summarise - Docker makes it incredibly easy for you to run software which could otherwise be a pain to install and maintain or could cost you a significant amount of money to pay for a subscription. If you run an independent business or work from home and want to give yourself an edge, things like Paperless and Metabase can help you keep on top of things, without needing to spend a penny.
Although Docker is primarily used in server environments, it can be an incredibly powerful addition to your toolkit at home, allowing you to run entire services which you’d otherwise be paying somebody else for.
There are thousands of apps and services available for use with Docker, so whatever your needs, there’ll be something for you. Take a look at the Awesome-Selfhosted list on GitHub for ideas, and let me know in the comments what your favourites are!
Next time in How To Actually Use A Computer, I’ll talk shell-scripting and automation, with a few basic examples to get you started.
Over time, the aim of this series is to show that anybody, with a little work, can take advantage of the wealth of opportunity that exists out there. Whether for work or leisure, we have immense power and agency at our fingertips - and I hope to convince you that it shouldn’t cost an arm and a leg for you to get the full benefit of all that the technological world has to offer.
If you’ve enjoyed these tips, and want to receive more - or you know somebody who would, then feel free to share and subscribe! This post is free, but a paid subscription will help me to keep them coming.