Incremental Improvements

Despite being a Saturday, I was hard at work today from 6:00am until mid-afternoon to migrate a bunch of data from one vendor to another. The effort has been months in the planning and resulted in quite a bit of frustration while working out issues like incomplete CSVs, uncommon character encodings, and other attempts by the first vendor to limit our ability to move to the second. Fortunately I've been able to reverse out all the silliness with some custom code that was written to "fix" the CSV data and prepare it to be inserted into a SQL Server database, where it would then get mashed up with five other databases before coming out as a unified, wholly complete series of records. Fun? Only for a certain kind of person.

This kind of work does take its toll on a computer, though.


This is a quick overview of resource consumption from the newish Thinkpad I recently received from work. The machine is the fastest computer I've had the opportunity1 to use. That said, it does suffer from a lack of memory. With just 8GB soldered to the board and zero expansion slots, the X1 Carbon is better suited for people who are working more with email, spreadsheets, and browsers than those regularly transforming gigabytes of data into useable information. The Lenovo — like just about any other computer — can do much of the work, but not without complaining about a lack of resources the whole time. As the image above shows, not only did the system consume almost all of its RAM, but it ate up the entire swap file as well. Rarely have I ever seen this while using Linux, but it's not uncommon with resource-constrained machines.

For people who have used Linux for any length of time, they'll likely have run into a situation similar to this. Unlike Windows and macOS, Linux systems generally have a fixed amount of space dedicated for a swapfile, which can be thought of as a file where the computer can store some less-accessed data from the RAM to make space for immediate tasks. In the past, the swap area on a Linux-based system was written to dedicated partitions on a hard drive (or other storage medium). This would mean that to allocate more space for the swap file, people would need to create or grow partitions, ensure it's properly formatted, and ensure the volume was properly mounted at boot time. This was not a task for the faint of heart. Recently, however, this has become a lot simpler.

When I installed Ubuntu 18.10 a few weeks back, I went with a pretty stock installation as I wasn't expecting to stay on Canonical's latest release for very long. Typically when I'm setting up a mission-critical computer, I try to stick to LTS2 releases of Linux. This ensures that the system will not see many drastic changes between updates for about two years. Almost since the time of its first release, I've been an avid Ubuntu MATE fan and have it installed on both my personal Mac and another work-supplied Lenovo notebook. The 18.04 LTS is rock solid, dependable, and much more responsive than 16.04, and I would highly recommend anyone on an older release upgrade during their next maintenance window3. The latest version of stock Ubuntu, however, is really good. After just a few hours with the system, I opted to keep Cosmic Cuttlefish4 and make the best use of Canonical's release as possible. However, this meant sticking with the default 980MB swapfile.

Fortunately, changing this was a 5-minute process. Rather than outline the steps here, what I really wanted to say — in my incredibly rambling manner — is that while the barrier to entry for Linux is still a little high for most people, it has evolved to become an incredibly forward-thinking and flexible operating system. Five years ago increasing the swap file would have taken an hour or more and required some compromises. Today it's simple enough that someone could probably create a quick little utility to do it for them, on demand, when the system can pause for a few minutes to catch its breath … so to speak. A lot of the Linux operating systems that I've used over the years have seen similar incremental improvements. Fedora, SuSE, and Ubuntu5 have all gone from systems that required a person to know the difference between IRC and an IRQ to something that I would be comfortable recommending to anyone who was tired of Microsoft or Apple. A lot of things "just work" out of the box, and software is nowhere near as difficult to find, install, and update as it once was.

This gives me hope.

The odds of there ever being a "Year of Linux on the Desktop" are slim but, with the continued refinements that come out of every release, there is a very good chance that more people would be willing to look at the system and see if it makes sense to them.

  1. It's the fastest, but not the most computationally powerful.

  2. Long-Term Support

  3. Most people don't have maintenance windows. but it's not a bad idea to try and stick to one.

  4. It's a shame they didn't go with Chester Cheetah. A snack food company in the US might have a problem with that, of course.

  5. These are generally the three main systems that I've used over the years. There have been times when I've dabbled with systems like KDE, but it's hard to do this with a wide range of distributions when married, employed, and raising a young child.