Slow computing 2023

[ Day 0 | Day 1 | Day 2 | Day3 | Day 4 | Day 5 | Day 6 | Day7 ]

This year's Old Computer Challenge runs from Monday 10th July 2023 and finishes on Sunday 16th July. People are documenting the challenge using...

My project for the week of the challenge is to use graphical applications as much as possible to get some maths teaching notes written.

I'm using my Thinkpad T42 with one Centrino core pegged at 600MHz and 512Mb of physical RAM. The 40Mb hard drive rotates at a stately 5400 rpm.

The software includes...

My previous Old Computer Challenge pages are

Day 0: July 9th

[ top ]

I'm editing this Web page in Seamonkey's graphical Web page editor. Some of the mark-up might be a bit redundant but the Web pages usually render OK on most Web browsers.

I'm just reading through some of the Web/gopher/gemini pages linked from  I've subscribed to the mailing list that Tekk has kindly set up: I used the old convention of sending an email to the address given with subject 'subscribe'. It hasn't bounced which is a good sign, but I have not yet had any kind of automatic reply from the list manager software.

Below is the output from free -m with Seamonkey's three components running in a single thread, UXTerm and fluxbox...

bash-5.1$ free -m
               total        used        free      shared  buff/cache   available
Mem:             480         314          20          25         146         127
Swap:           1023          75         948

As you can see the T42 is using a tiny bit of swap. The key to managing a slow computer is to have a good idea what task you want to work on and load just the software you need. This morning is Web and mail. Tomorrow will be mostly OpenOffice and LyX.

Below is part of the output from cpufreq-info...

  current policy: frequency should be within 600 MHz and 1.70 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz.
  cpufreq stats: 1.70 GHz:0.30%, 1.40 GHz:0.04%, 1.20 GHz:0.03%, 1000 MHz:0.05%, 800 MHz:0.14%, 600 MHz:99.45%  (1028)

I'm using Slackware's 'huge.s' kernel (the T42 can't support a PAE kernel) which I suspect is built with the ondemand CPU governor configured. My /etc/rc.d/rc.local file has the following commands which kick in when the kernel switches to userland...

bash-5.1$ cat /etc/rc.d/rc.local
# /etc/rc.d/rc.local:  Local system initialization script.

cpufreq-set -c 0 -g powersave
powertop --auto-tune

So I think that I am as close as I can be to the rules without building a custom kernel.

bash-5.1$ echo "/cgi-bin/submit?gopher://" | nc 70
Sorry, you already submitted something today.
You can try again in a few hours

I was quite pleased to see this error message as it means that the server at has received my earlier submission of this Web site. It took me an embarrassingly long period of time to work out that you have to use the commands given at from a command line and not a gopher browser (lynx in my case). Good old Slackware has netcat (nc) already installed.

Day 1: 10th July

[ top ]

Things that worked:

Things that didn't work



Some of the other participants are using P3/256Mb based laptops, even one with 128Mb. These participants tend to be using command line applications (e.g mutt for email).

One participant is using an operating system contemporary with their laptop which is a nice idea. That would give me Windows 2000 or Slackware 10.2 to 11 for this laptop (2004 to 2006 model availability). I know that Windows 2000 and Office 2000 would work very quickly on this machine. I used Windows 2000 at work in early 2000s and it was fine on a P120 (Pentium 3 I think) with 256Mb of RAM. Slackware 10.2 looks like a bit of a challenge to get working - I'd have to modify a testing 2.6 series kernel and manually install kernel modules for the WiFi. KDE 3.5 and Xfce version 4.6 should fly though. 

Day 2: 11th July

[ top ]

Didn't spend that much time on screens today. I did email and some Web surfing this morning. Right now I'm compiling GNU Octave on the T42 using the semi-official slackbuild. Actually, I'm part way through compiling OpenBLAS which is a dependency.  Below is the first few lines from top

bash-5.1$ top -b -n 1
top - 20:09:41 up  2:25,  3 users,  load average: 1.14, 1.30, 1.32
Tasks: 141 total,   2 running, 139 sleeping,   0 stopped,   0 zombie
%Cpu(s): 80.8 us, 19.2 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :    480.9 total,     66.0 free,    221.2 used,    193.7 buff/cache
MiB Swap:   1024.0 total,    967.2 free,     56.8 used.    237.8 avail Mem

 4547 root      20   0   47628  22664  15844 R  69.6   4.6   0:00.34 cc1
 4545 keith     20   0    5128   2964   2428 R   4.3   0.6   0:00.05 top
    1 root      20   0    2400   1408   1376 S   0.0   0.3   0:00.79 init

As you can see progress is sedate and there is some use of swap. I have a couple of UXTerm windows going, the various compilers and build tools that the slackbuild script runs, and Seamonkey's Web browser component and Composer (page editor) component. One advantage of using the powersave CPU governor is that the laptop stays nice and cool... but compilations proceed in a sedate manner. The interface remains responsive and Seamonkey is useable.

bash-5.1$ sensors
Adapter: ACPI interface
temp1:        +44.0°C  (crit = +93.0°C)

Adapter: ISA adapter
fan1:        2991 RPM
CPU:          +44.0°C 
GPU:          +46.0°C 
temp3:        +29.0°C

Why am I compiling GNU Octave? Well I thought that I had already compiled Octave packages for Slackware 15.0 but found that they were all 64 bit. Compiling is the usual way of adding software additional to default Slackware install. There are some repositories that provide pre-built binary packages but I could not find a 32 bit Octave build in any of them. SlackOnly is 64 bit only for Slackware 15.0.

Why do I need GNU Octave? I'm teaching myself some linear algebra from Gilbert Strang's Linear Algebra for Everyone which I bought a copy of and collected today. The exercises suggest devising simple Matlab commands to explore some of the concepts in a concrete way with actual numerical matrices. Octave uses a similar syntax to Matlab, at least for the basics. 

Note added early on Wednesday morning: OpenBLAS took around three hours to compile and Octave 7.3 itself took 8 hours or so overnight. With OpenBLAS being mostly highly optimised fortran routines, cc was mostly in use and the linking step hammered the swap and CPU. The compilation itself was fairly calm as mentioned above. Loading Octave and trying to plot something brings up a plot window that is a blank black slab. Closing that plot window causes Octave to exit without an error message. The default qt plot backend isn't happy about the ancient radeon graphics in the T42. Using graphics_toolkit ("gnuplot") sorted the issue, so that is going in the startup file.

Real Life: I bought Strang's book from which is an alternative to Amazon. Hive can deliver books to an independent bookshop that you choose near where you live, and the bookshop that you nominate gets a small cut of the markup on the book. The only problem is that Birmingham does not have a large number of independent bookshops, so I had to go across the city to pick the book up. Exploring the unfamiliar neighbourhood lead to an old-school greasy spoon cafe. Plenty of space, not many people in, no flat screen television, radio on in the background at an almost subliminal volume level. So I stayed there for some time writing (in a notebook with a pen). I'll be typing up some of the stuff tomorrow in Lyx.

Reflection: I've been reading the pages that some of the other participants are putting up. Quite a range! I think the most minimal must be the Amiga CDTV with 9Mb of RAM (not a misprint!) which Steve Lord uses to process pictures from an old digital camera. I'm thinking along the lines of trying a Linux distribution that is roughly contemporary with this T42 laptop and seeing how far I can get. The limiting factor will always be the Web browser.

Day 3: 12th July

[ top ]

Routine use: Web, email this morning, backup to external hard drive using rsync, not much new writing. Worked out some matrix arithmetic with Octave.

Real Life: Summer is holiday time in teaching. I'm just doing sessional work at present so no 'holiday' pay but a holiday vibe so not much screen time. Went out to Wolverhampton for the first time since 2019 - lots of new building in the centre. Some of the new housing looks actually good. Loss of some of the nice 1960s buildings South of the old market. The new market is much smaller than the old one used to be but there was plenty of trading going on. Tram both ways.

Mad science experiment: Downloaded a Blag Linux 140000 live iso from 2011ish and dd'ed it to a USB stick. Boots fine and reveals a stunningly responsive Gnome 2 desktop. The Thinkpad T42 dates from around 2005 so using a Linux that is 6 years later feels about right - you know the drivers will be sorted. The mad science bit was downloading an appropriate version of Apache OpenOffice and trying to install it within the live session. Nearly worked, but there was only 500Mb or so of user space and I suspect that the Blag live iso could not use the swap partition on the T42's hard drive as that partition was created using the recent ext-utils on the Slackware 15.0 installer. The Blag live session ground to a halt as more of the OpenOffice rpms were installed, and I was running it from a console window not an Xorg graphical session.

I might try an age-appropriate Debian install - the archive has the DVD-1 and DVD-2 installer images available going back to Debian 5 (the one before Squeeze). That is well enough software available for offline installation, and guaranteed to be mutually consistent and with all dependencies available. The kind of thing you need if you are going off grid. Which I probably would be given the TLS version mismatch with the older Web browser versions. The limiting factor is always the Web browser. Again.

Lesson learned: When trying out the Blag live image I realised that the DNS settings for this Web site is set to redirect to https for all traffic so I could not actually see this page. I'm changing the settings to rectify that.

Day 4: 13th July

[ top ]

Never could get the hang of Thursdays: Booted up this morning for email with coffee and had fsck complain and Slackware dropped me into a single user session. I had to boot off the Slackware installer USB and run fsck manually to clear some dangling inodes and copy them to lost+found. Looks like last evening's mad science experiment with Blag 140k resulted in overwriting part of /dev/sda2 which is the root partition. This is the first time I have ever had to do this - no major damage done. Unscientific analysis of the files in lost+found (strings | less) suggests they were from Seamonkey's cache - nothing irreplaceable - so I was lucky. I have file system level backups of work but I have not clonezilla'd the hard drive yet. I might do that tomorrow morning.

Business as usual: Lyx editing a short document and inserting eps charts exported from Gnumeric all worked fine. Need to spend more time on that tomorrow while it rains (forecast is heavy rain). Playing 18 Musicians and writing this now and reading a long email newsletter. Top is saying roughly 0.4 load average and 4% cpu with Audacious, the Seamonkey editor and a couple of UXTerms open.

Better behaved mad science: Debian Squeeze (2009, glibc 2.11) is available as a live iso so I downloaded the Xfce4 version, dd'ed it to a USB stick and booted it before starting this entry. The small image gives you xfce4, an ancient Iceweasel (aka Firefox), OpenOffice 3.2.1 and Gimp/Ristretto. Archive repositories are still available online amazingly but I think I would probably download DVD-1, install and then download DVD-2 and mount them both as DVD images and try to con apt-cd into letting me install packages from them. should work with old Web browsers now, I have changed the server settings so that an http request receives unencrypted pages and an https request receives encrypted pages.

Day 5: 14th July

[ top ]

Business as usual: Typed up a couple of pages of the probability notes in LyX with some charts exported from Gnumeric as eps files. So I had LyX, Xpdf, Seamonkey Web browser all running and a UXTerm. No sweat, no drama, just a bit of a lag when switching from LyX to Seamonkey to search for how to do something.

Catch 22: I installed Slackware 15.0 and I used the Slackware installer to make new partitions on the 40Gb IDE drive in the T42. So of course recent file system utilities. I wanted to make an image of the entire system before any more mad science experiments with Debian Squeeze (which looks viable by the way). I need to use a version of CloneZilla old enough to boot on a non-PAE machine but which has file system utilities new enough to cope with my ext4 root partition (/dev/sda2) created by the Slackware 15.0 installer's cfdisk and mkfs programs. Looks like no deal if I have interpreted the CloneZilla error log correctly.

Work-around: One of my external drives is formatted as exFAT and in theory can handle huge files. So i used a tar command (corrected version)...

# tar czf /external/image2.tar.gz \
--exclude=/dev \
--exclude=/mnt \
--exclude=/proc \
--exclude=/sys \
--exclude=/tmp \
--exclude=/media \
--exclude=/lost+found/ \
--exclude=/run \
--exclude=/external \

The image.tar.gz file will be something like half the size of the files in /. The command took less than a couple of hours (I left it cooking after a bit). All the --exclude= options are to omit directories that change or that are not actually on the disk. I need to investigate the --one-filesystem option a bit more.

Restoring the partition (if I decide to abandon the Debian Squeeze installation) would be done by booting off the installer USB and untaring the image back to the root of /dev/sda2, then chroot into the system to run lilo to rewrite the mbr. We shall see! The forecast tomorrow is thunder and high winds so I'll give Squeeze a try.

Day 6: 15th July

[ top ]

Mad science update from Debian Squeeze: Debian provide archived repositories frozen in time! My /etc/apt/sources.list looks like this...

keith@debian:~$ cat /etc/apt/sources.list
# Archive repositories - no updates!
deb squeeze main contrib non-free
deb squeeze-lts main contrib non-free

# To stop the release file date check add the following custom rule
# echo 'Acquire::Check-Valid-Until "false";' >/etc/apt/apt.conf.d/90ignore-release-date I can install any software from the huge and nicely aged repository.

The latest Firefox-esr I can use (binaries from the mozilla archive) is version 45.9. Lots of certificate errors. The default gnome email client can't cope with the TLS version on my imap account so it is Web mail for now. But sftp and ssh work fine? The version of LyX in the Squeeze repository is much older than the current release and can't edit my files, but OpenOffice 3.2.1 uses the same file type as OpenOffice 4.1.14 so I can work on the shape handout tomorrow. The fan control is less good in Squeeze than in Slackware 15.0 as you might expect, I might look into the old thinkfan user space control script. And no Seamonkey in the repositories so I'm editing the HTML of this page in gedit. Swings and roundabouts.

The sheer performance of Gnome 2.30 on this slow computer does provide food for thought. What are we actually gaining with recent desktop environments? Perhaps accessibility?

Fun fact of the day: I keep an eye on top now and again when loading the slow computer down with tasks. The highest load factor I have managed so far is around 3.5 and that was dding the Squeeze DVD-1 iso to a USB stick.

Real Life: It was supposed to be thunderstorms with rain and high winds all of today. But we got a few gusts and one roll of thunder in the distance. I made soup. R tidied the books and found some old theatre leaflets.

What after Old Computer Challenge week?: I'll probably put a modern supported Linux back onto this machine as it has a good clear screen (IFS) and a nice keyboard for typing. I think showing that a recent supported Linux distribution with current security will work ok-ish on a Centrino with 1Gb of RAM and a mechanical hard drive is a valid sort of thing to do. I might hunt down a Windows 2000 installer for next year though. Age appropriate.

Day 7: 16th July

[ top ]

Back to Slackware: Squeeze was fun and Gnome 2.30 was educational, but the latest Firefox version that would run was Firefox-esr 45 and that meant endless certificate errors and having to confirm security exceptions. Plus there was no route to secure email. So I (re)installed Slackware 14.2 ('old stable' in Slackware terms - still gets occasional security updates). Xfce 4.12 is gtk-2.0 based and light enough to run in 512Mb.

One of the other participants did write that 'Unix is cheating', by which I think they meant that it is quite possible to multi-task a desktop environment and applications with a secure network connection on a slow computer. So not quite a 'challenge'.

Perhaps there are different threads to this:

Real life: It was supposed to rain heavily yesterday with thunder storms and be fairly bright today. Actually happened the other way round. So today was a slow day.

Challenge for next summer: depending on what form the challenge takes, I might try to produce something like a short video or podcast  using lo-fi recording equipment. Sort of like a Ken Burns trailer for retro-computing (I like using stills in videos).

Last update: 2023-07-15