<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
	<title>Gopher.ICU - Computing</title>
	<link>gopher://gopher.icu/0/phlog</link>
	<description></description>
	    
        <item>
	   <title>Sinclair-ZX-Spectrum-48k</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Sinclair-ZX-Spectrum-48k.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Sinclair ZX Spectrum 48k+

## Child of the 80's

Like many children of the 80's my first computer was a Sinclair ZX
Spectrum. I spent many hours on it playing games, bought magazines, 
books and even tried my hand at programming. Programming for me at 
that time meant typing out long pages of machine code that often 
resulted in several wasted hours. Rarely did it work...


## The motivation 

It's been a strange week. Somehow the topic of Z80 computers came up
and I started doing a little digging. I actually had no idea, or had
forgotten, that the humble ZX Spectrum had a Zilog Z80 processor at 
its heart. Remembering that I still had one complete Sinclair 
Spectrum 48k+ and a case in it's original box (from my original 
Spectrum) in the loft, I felt motivated to do something with them. 

Sadly a day or two later came the news of Sir Clive Sinclair's 
passing. The man who had inspired a generation of computer 
enthusiasts with his accessible home computers was gone. The news 
both saddened me and strengthened my resolve to bring my Spectrum 
back to life, as a personal tribute to this great man.


## Bringing it back to life

My first task was to get the computer and box out of the loft. To my
surprise there was also an original Boots cassette player up there 
too. Unfortunately on inspection the complete Spectrum wasn't in 
great shape as it had been left in a damp loft for many years. The 
case that was inside the box however was just as fresh as the day I 
put it in there in the late 80's or early 90's. The reason the case 
was empty was that I had bought a better quality case for it with a 
PC style keyboard.
I cleaned off the main board[1] as best I could and took note of the
issue number so that I could order a replacement capacitor kit. 
After doing some reading up and watching youtube videos detailing the 
restoration process, I ordered a capacitor kit. This kit[2] included
a full set of replacement capacitors, a heatsink for the ULA and a 
100uf capacitor to perform a composite mod. While waiting for the kit
to arrive I tried to assemble the various bits of Spectrum hardware I
had laying around. I managed to find a power-play joystick interface
and a Currah Speech interface along with its manual. Unfortunately I 
couldn't find the PSU or cassette cable...

*WARNING* - If you have an old computer such as this, do not
attempt to power it up without first changing the capacitors. It is
likely they have dried out and are way out of specification.
Attempting to power up the system could result in destroying other
sensitive electronic components on the board or even a fire. 


## Capacitor replacement

Replacing the capacitors was a little fiddly but I knew what to
expect after watching several youtube videos. I did the composite mod
first, then I replaced the capacitors one by one, making sure I 
replaced each with the correct value and in the correct polarity.

The whole process took me an hour or so to complete and I was fairly
satisfied with the result[3].


## Cleaning and reassembly

I spent some time cleaning up the edge connector with a fibreglass
pen and removing any remaining solder flux. The board was then given
a light scrub with contact cleaner. On checking my original case, 
everything was in good order and just required a light clean inside 
and out before beginning reassembly[4]. 

The computer is now back in one piece[5] and awaiting a modern 
switching PSU to arrive so that I can test the system.


## PSU arrived (20/10/2021)

It doesn't work... The power supply arrived about a week ago but I
was too disappointed to do anything more with it. The past few days I
have been investigating the issue with a multimeter and reading up
online. It seems that a common fault with these old spectrums is the
lower memory modules become bad, either with age or from other issues
that affect the voltages going to the chips. The result is garbled
colours on the TV or black & white bands and other vertical lines. 


## Lower Memory

The lower memory consists of 8 x 4116 chips[6] and requires 3 
separate voltages (-5v, +5v and +12v). If any one of the voltages 
goes too far out of specification it can damage the chips.

Having checked all the voltages everything seems to be within
specification, so I can only assume they have just expired through
age. From what I have read they are quite prone to failure and also
becoming increasingly hard to come by.

Thankfully there are options to replace the problematic 4116 chips:
1) Purchase an all in one Lower RAM replacement board[7]
2) Use 4164 upper memory modules 

Both options require removal of all 4116 lower memory chips.


### Lower RAM replacement board

The easiest, and cheapest, repair is option 1. The board requires 
soldering only the necessary legs from the daughter board to 
function, rather than all 16 legs of every replaced chip. It does 
however not look pretty, IMHO, so if you are hoping to keep your 
spectrum looking original then you may want to consider another 
option. It does use modern chips and a single voltage however, so
it should be more energy efficient, generate less heat and be more
reliable.


### Use 4164 memory modules

Using 4164 chips, which seem to be more robust and available, is an
option I considered. Unfortunately it works out more expensive and 
is quite a bit more work. It would however retain the aesthetic of 
the original unit.

If I had gone this route I would have socketed all the lower memory,
so that future replacement would be fairly trivial. 

The 4164 uses only a +5v feed and so requires some modification to 
the chips, or the board, to remove the unnecessary voltages and 
supply +5v to pin 8. 

I wanted to avoid making many changes to the board and make the 
changes easily reversible. The 4164 requires no -5v to pin 1. Looking
online people have solved this by simply cutting off the leg of the 
chip, this saves breaking any tracks on the board, but obviously you
are damaging the chip and preventing later use for some other 
application. The +5v to pin 9 can remain in place, but we need to 
provide a +5v feed to the pins which provided +12v to the 4116 chips. 
The only neat way I could see of doing this was to cut the 12v supply
track somewhere near the positive terminal of capacitor 44[8] of my 
model 4B board. Then a short bridge wire could be installed between 
the nearby +5v and previous +12v rail to provide the required power
for the chips.

*NOTE* - The above 4164 modification is speculative. This
modification is untested by me and I have no source proving it would
work.


### Removal of 4116s (23/10/2021)

Knowing this was going to be tricky, I ordered a good quality solder
sucker to make the job a little easier. Even with the premium solder 
sucker it took me the best part of 3 hours to carefully remove the
lower memory[9][10] without damaging the chips.


## Ordered Parts (24/10/2021)

Placed order with retroleum.co.uk for:
1) lower memory module
2) switching power regulator
3) mono cassette cable
4) 8x 16 pin IC sockets


## Parts arrived (30/10/2021)

I was quite excited to receive the package in the post this morning,
so I quickly got all the soldering gear out and set to work.
I replaced the power regulator first, followed by the memory module,
taking care not to get the legs too hot.

Unfortunately, upon testing, there is still a problem. The thick
black and white bands have now gone, but the coloured blocks that are
alternating background and foreground colour remain. I don't know
what the problem is, practically everything has been replaced. The
only notable thing is that TR7 is rather hot and there is a quiet 
wheezing noise coming from the speaker...

At this point I have put around 40GBP and 6 hours of my time into 
restoring it and I'm about all out of enthusiasm to invest any more 
time or money.


## Ordered Parts (09/11/2021)

Placed order with retroleum.co.uk for:
1) 1x 28 pin DIL socket
2) 1x ROM replacement module

After emailing Phil at retroleum.co.uk and explaining my continued 
issues he suggested that it would be best to try identifying the 
problem with a diagnostics ROM, rather than blindly changing 
components. For less than 10 pounds, including postage, it seemed 
like a sensible thing to do. The side benefit of this approach is
that the ROM module has a switch and can be programmed with two ROM
images. I chose the standard Sinclair 48k ROM and his diagnostics ROM
,so if there is a problem with my original ROM the new one can be 
left in place.


## Parts arrived (12/11/2021)

I took my time desoldering the ROM module and then proceeded to
solder in the DIL socket. The DIL socket will allow easy replacement
of the ROM in future. Once the socket was installed I fitted the ROM
card and connected the board up to a TV and PSU. To my surprise the 
Sinclair copyright logo appeared! It would seem that the issue was 
with the original Sinclair ROM. I switched it off and connected up 
the keyboard but unfortunately only some of the keys worked.

At this point I knew the system was working and needed a replacement
keyboard membrane. I figured having gone this far I should get one
ordered.


## Ordered Keyboard Membrane (24/11/2021)

After reading on the retroleum.co.uk website why Phil doesn't supply
spectrum + membranes and reading on his blog that he had a good 
experience with one provided by RAWP. I proceeded to order one from
them via sellmyretro.com[11]. Unfortunately not the cheapest option 
at almost 20 pounds, including shipping.


## Membrane arrived (03/12/2021)

I fitted the membrane without issue and on testing all keys 
functioned as they should, result! I installed the 'ZX Tape Player' 
app to my android phone and, with the volume turned up to full, 
managed to load and play a game or two of 1943 & Jetpac.


[1](gopher://gopher.icu/I/phlog/Computing/images/spectrum/before.jpg)
[2](gopher://gopher.icu/I/phlog/Computing/images/spectrum/refurb-kit.jpg) 
[3](gopher://gopher.icu/I/phlog/Computing/images/spectrum/after.jpg) 
[4](gopher://gopher.icu/I/phlog/Computing/images/spectrum/base.jpg) 
[5](gopher://gopher.icu/I/phlog/Computing/images/spectrum/complete.jpg) 
[6](https://sinclair.wiki.zxnet.co.uk/wiki/DRAMS)
[7](http://retroleum.co.uk/zx-spectrum-chips)
[8](https://spectrumforeveryone.com/wp-content/uploads/2017/08/ZXSpectrumIssue3b-Layout.gif)
[9](gopher://gopher.icu/I/phlog/Computing/images/spectrum/lower-ram-fr.jpg)
[10](gopher://gopher.icu/I/phlog/Computing/images/spectrum/lower-ram-bk.jpg)
[11](https://sellmyretro.com)]]></media:description>
	   <pubDate>Tue, 21 Dec 2021 19:06:40 +0100</pubDate>
	</item>
        <item>
	   <title>My-next-hardware-project</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/My-next-hardware-project.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# My next hardware project

Over time I have collected a lot of old hardware. It was all in
working order at some point, but over time batteries and hard disks
have died or they have been cannibalised for other projects.


## The contenders

### Unnamed 4U

Dual Pentium Pro 200mhz ATX motherboard, 128mb RAM. It will hold
standard ATX components and PSU. Possible RAM upper limit of 256mb...
I took 128mb out of it for the SGI.

### Compaq Proliant 6U(ish)

Dual Pentium Pro 200mhz (with second daughter board to hold another
pair), 384mb? RAM, Compaq Smartraid 2 SCSI card with 4x 9.1Gb SCA 
SCSI disks. The turn-off for me on this is that a lot of it is
non-standard form factor.

Picture of both systems[2] stacked.


## Parts and thoughts

This week I purchased an 8Gb CF card and a CF card to 40 pin IDE
adapter with bracket[1]. I had the idea of resurrecting the 4U dual
pentium pro, using it with a version of Linux that will run in memory
and maybe a separate CF card with FreeDOS on it. I like the idea of
them being switchable ROMs of sorts so may include a separate drive
of some kind for user data.

Today I was talking to someone on IRC who has 3 Proliants and I
started thinking that there was a lot more scope for expansion with
the Proliant. I can add a lot more memory and a second pair of CPU's.
The SCSI sub system could be removed and replaced with something more
modern, maybe a pair of SATA drives... I already have a 3ware
hardware raid card and a couple of 200Gb SATA drives in hot swap
caddies.

Now I'm really in a bit of a dilemma! Thankfully there is a 
democratic way to settle this since I finished the gopher poll 
system. 

Cast your vote![3]

[1](https://www.ebay.co.uk/itm/364016036247)
[2](gopher://gopher.icu/I/files/which-server.jpg)
[3](gopher://gopher.icu/1/poll?poll=1676405525)]]></media:description>
	   <pubDate>Tue, 14 Feb 2023 21:34:14 +0100</pubDate>
	</item>
        <item>
	   <title>Tokenizer</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Tokenizer.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Tokenizer

I had the idea after seeing an IRC channel topic asking people to use
a pastebin with an example using netcat:
`command | nc somepastbin.com 9999`

## Flexibility
Initially I thought about just copying the pastebin functionality but
then I realised it could easily be used for URL shortening too.

The basic premise is to pass some data to the server in return for a 
token, which can later be exchanged for the stored data.

There are a number of options to extend functionality:
- Decide how long the data is retained
- Count how many times the token is accessed
- Limited access tokens (disable/remove the token after X clicks).

## Implementation 
I wrote a perl module, Token.pm, which handles storing & retrieving
of data and token creation. 

I then created a basic server to listen for data on a specific port 
which returns a URL containing the token in reply. 
If the data passed begins with http:// or https:// then it returns a
URL which provides a redirect to the URL. Otherwise it returns a URL
to view the data as plain text which can either be retrieved with 
curl or by viewing the URL in a browser:

Example:
`#echo "This is the cats meow!" | nc MY-IP-ADDRESS 2020`
`https://MY-IP-ADDRESS/V/yjOLc2`

`#echo "http://google.com" | nc MY-IP-ADDRESS 2020`	
`https://MY-IP-ADDRESS/R/ztbvx2`

The final part was to create a cgi script that would return the data
or perform a redirect when viewed in a browser.
Ideally this should be hosted on a very short domain name.

`#curl -s http://MY-IP-ADDRESS/V/yjOLc2`
`This is the cats meow!`

## Status
At the moment it works locally, providing URLs for viewing / redirect.
It also stores token creation date and counts the number of times it
has been accessed.

UPDATE 11-12-2020:
I have extended the functionality to include viewing with gopher and 
keeping a count of how many times a token/link is accessed. I also
shortened the https:// URL's as much as I could but ideally need a 
short cheap domain name.]]></media:description>
	   <pubDate>Fri, 11 Dec 2020 19:19:59 +0100</pubDate>
	</item>
        <item>
	   <title>kempston-joystick-interface-repair</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/kempston-joystick-interface-repair.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Kempston Joystick Interface Repair

This was part of an Ebay lot. I was actually only interested in the 
zipstick joystick that was part of the bundle, but seeing as the
bundle was less than a zipstick alone. I figured it was worth a 
punt, even though the items were listed as 'untested'.

The interface is an original Kempston Joystick Interface+ in its
original box, complete with the instruction card. Unfortunately on
plugging it in to my spectrum any game I enabled the kepmston
joystick on would steer left and not recognize any other direction,
whether a joystick was plugged in or not. I concluded, after
reading some articles online[1], there was an issue with the logic IC. 
The chip is a DM74LS366AN which no longer seems to be produced. i
Luckily I managed to find one NOS on Ebay for 2.50 GBP including 
postage.

I have removed the logic chip and prepared the board for the 
replacement in anticipation of its arrival. Desoldering the IC with a
good quality solder sucker and cleaning up with solder wick was 
straight forward[2]. 

## Update 17/12/2021
Chip arrived and soldered in. Unfortunately no change in behaviour so
I've ordered a replacement 74LS138N. It's the only other chip on
there so I'm hopeful this one will resolve the issue! 

## Update 23/12/2021
Chip arrived and soldered in. Again, no change so I'm stumped.

One possibility is that, after testing my new game loader which is
fitted with a diagnostics ROM, M1 is reporting as being defective on
my CPU. From what I understand this is fairly common on zx spectrums
and can lead to external devices not functioning or functioning 
incorrectly. It looks like I will be replacing the z80 CPU in the 
near future...

[1](https://oldmachinery.blogspot.com/2014/01/joysticksnstuff.html)
[2](gopher://gopher.icu/I/images/kempston1.jpg)]]></media:description>
	   <pubDate>Thu, 23 Dec 2021 16:47:30 +0100</pubDate>
	</item>
        <item>
	   <title>Computer-Input-Devices</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Computer-Input-Devices.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Computer input devices 
Over the past five decades computers have decreased in size and 
increased in their processing capacity exponentially. Unfortunately 
our interface with them has changed very little.

## Keyboards and Keymaps
The keyboard, our primary means of input, it's offset keys and it's 
keymap are hangovers from the days of mechanical typewriters. The 
keymap, designed so that there was minimal chance of the hammers 
binding with the speed of a competent typist. The offset, due to the
bars connecting the keys to the hammers. The qwerty keymap in common
use today dates to 1878.
Although neither of the above mechanical constrains exist and keymaps
have been created, more optimally laid out for many languages. They 
have not been widely adopted. 

## Mice
Mice were designed in the 1970's as a secondary input device, but due
to their intuitive nature, have come to rival or even take precedent 
over the keyboard for many tasks.
Software has developed that exacerbates this trend by allowing 
draggable windows and bars. These software concessions make computers
easier to access and more intuitive but then the majority of users 
never progress to learn how to effectively use the keyboard shortcuts.

These are grave mistakes in my opinion and causing harm to many, as 
modern life, for an increasing number of people, requires many hours
use of these devices.

## Injury to Health
Documented conditions resulting from prolonged computer use:
* RSI (Repetitive Strain Injury) to the arms and wrists.
* Upper back and neck problems resulting from being in a fixed 
   position for too long or with bad physical alignment.
* Eye problems and headaches due to poor monitor refresh rates, 
   brightness or just too long focusing on a fixed position.

## My Personal Journey
A number of years after I began using computers for long hours I 
started to experience pain in my right wrist. This would persist for 
a while, even after I stopped using the computer. I'm fairly self 
aware and sought to address the problem on noticing it. Due to the 
pain being only in my right wrist and noticing it more when using the 
mouse for extended periods, I first tried switching to using the 
mouse left handed. Of course, that just moved the problem. 

I then went through a couple of years trying different trackball 
designs. Fortunately, by this time, I came to own an IBM thinkad with
a Trackpoint mouse. While using it I noticed that I didn't suffer the 
same pain. After discovering there were USB versions of the Trackpoint
keyboard, I bought one to use with my desktop computer. 

I continued looking for ways to further reduce my symptoms. On reading
that a different keymap, more optimized for typing the English 
language (Dvorak), may reduce some fatigue, I decided to give it a 
try. After 6 weeks with a piece of paper above my keyboard, so I knew
where the keys were, I achived parity with my previous typing ability.
From this point on my speed and accuracy increased and I could use the
computer for longer with little to no discomfort.

## Conclusion 
From the above you will notice that the mouse was the primary source 
of my problems. The wrist is not designed to be in a craned position 
for extended periods or for micromovements which cause strain to the 
tendons. Fingers are much better evolved for such fine movement. 

### How can we improve our experience?
* Ortholinear/Ergonomic Keyboards
* Change keymap to one best optimised for your language
* Pointing Stick Mouse built into the center of the keyboard
* Learn keyboard shortcuts and make effective use of the keyboard

I realise that changing keymap is a significant investment in time, 
but I would say that if you are brave or committed enough to make 
that investment, you will forever reap the rewards. ]]></media:description>
	   <pubDate>Wed, 04 Aug 2021 08:30:37 +0200</pubDate>
	</item>
        <item>
	   <title>Stop-IT-waste</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Stop-IT-waste.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Stop IT waste

What we buy determines what companies produce and in what quantity.
If we buy their products in vast quantities we are telling them that 
they are producing what we want.

Do you really want to buy devices which spy on you or have a 
pre-planned end of life, likely way before they physically expire?

Non replaceable batteries, non upgradable components, time-limited
software updates, specialist repair centres, use of low quality
materials, all contribute toward an early end to the useful life for 
our devices. The term for it is planned-obsolescence. 1. 

The biggest drivers of this ever quickening turnover of hardware are 
mobile phone and tablet manufacturers. 


## Personal experience

I unfortunately own two android tablets, one is already obsolete and 
could only be rescued with a custom firmware. The other is heading the
same way, even though it is a high specification tablet, there are no
further firmware updates from the manufacturer and gradually apps are
requiring newer and newer versions of android to run them.

I remember when you bought a piece of hardware and it worked until it
physically didn't. Any applications that were installed would
continue to function as they did from the day you bought the device. 
Now it's quite possible for you to turn on your phone or tablet and 
discover an app crippled by an automatic update because the developer
wants you to use something else or they decided to increase the
minimum OS version requirement. This recently happened with the play
app on my android phone and tablets. A basic feature that I bought 
the device with, mp3 playing, was suddenly crippled by an update. I 
couldn't revert back to the previous version, but I could uninstall 
all updates to return me to the factory installed app. This restored 
the function, but how many people would have just followed the notice
to use youtube music or whatever? 

These practices are manipulative and fundamentally wrong.


## Reversing the trend

My suggestion is for you to understand what you need and find
suitable, preferably used, hardware to fulfill that need. There is 
only one way to signal to companies that you dislike their products, 
or the direction they are taking with them and that is to not buy 
them.
Older computers are far more upgradeable than new ones and, with the 
correct choice of operating system, give you far more freedom over its
use. For example, a core 2 duo with 2 - 4 Gb RAM will speedily run 
Linux or one of the BSD's, where as with windows 10 it will struggle.
The majority of people can and should work effectively using Linux  
or one of the BSD's and readily available open source software.

There are two reasons I suggest used hardware. The first, is that it 
sends no signal to the supply chain that there is more demand. The 
second, from an environmental standpoint, you are using something 
which has already been made and so making no further impact on the 
environment. To continue using items as long as you can is a big win
for your bank balance and the environment; no new item has to be made
and no old item has to be disposed of.


## Living by my principles

### Phone

My daily carry is now a Nokia E71. 2. After thinking about what 
functionality I actually needed and how I'd been let down by various 
messaging apps (Fring, WhatsApp, Signal ...), I decided upon self 
hosting an XMPP server and reverting to SMS for contacts without 
XMPP. Finding an XMPP client for the Nokia took some time but it was 
worth it to be able to use my data for messaging again.

Functions I use:
  * Calls
  * SMS 
  * IM (XMPP)
  * Navigation
  * Alarm clock
  * Calendar
  * Calculator
  * mp3 player
  * Camera

Possibly I will upgrade to an E72 or Blackberry Classic at some point.

### Computers

I have two 4U ATX rackmount cases which I purchased around 15 years
ago. The internals have been upgraded several times. One of them
ran as a server for 12 years or more, the other has been a desktop. 
Upgrades have been purchased off Ebay, usually, with some new 
components like HDD's, drive caddies and PSUs from other sources. The 
most recent upgrade was to a used core 2 duo motherboard bundle which 
replaced an ailing dual celeron motherboard which had several leaking 
capacitors. 3.


Foot notes:
1. [Planned Obsolescence](gopher://gopherpedia.com/0/Planned%20obsolescence)
2. [My Nokia E71](gopher://gopher.icu/0/phlog/Computing/Nokia-E71-in-2021.md)
3. I intend to replace the capacitors on the Abit BP6 board.

Note: For full disclosure I do still have an android phone which I 
use at home, without a sim-card, for LINE contacts and Strava.]]></media:description>
	   <pubDate>Fri, 01 Oct 2021 00:22:23 +0200</pubDate>
	</item>
        <item>
	   <title>OCC-conclusion</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-conclusion.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge - conclusion

I found that my habits and enjoyment changed considerably during the
challenge due to a number of factors.


## Hardware

My choice of hardware for the challenge was probably a bad one. Using
old systems is one thing, but when you use old uncommon types that
probably weren't particularly well supported when they were in common
use, then you're in for double the pain. They are usually the first 
to be abandoned by developers.


## Software

The most significant impediment to my being able to use the computer
meaningfully was the software. Software rot, not due to the software
itself changing or degrading but goal posts change due to external
factors. My biggest bugbear was that I couldn't connect to modern
websites using SSL/TLS due to the age of the libraries the software
was built against. You might think, as I initially did, no problem I
will just update the libraries and rebuild the software. Let me tell
you, it's really not that simple, neither libressl or openssl would
build on this system using the version of gcc and libc that I had.
Compilation on such old hardware is also painfully slow, lots of
wasted time trying to get stuff to build that ultimately failed. I
don't have the knowledge or experience to understand or fix the 
errors reported by the compiler, that's on me.

I found myself falling back to using the tmux session on my usual
computer just to use lynx. I hoped I'd only have to do this to
download the software libraries to fix the issues on the laptop but
it was a futile exercise. 

If I had started this challenge again I should have at the outset
tried to find a more recent operating system for the architecture. 
NetBSD would probably have been a good choice. NetBSD is a rare gem
in that it still supports many of these old architectures which have
been left behind by Linux.


## Final thoughts

If you decide to do this challenge then do it with as modern OS as
you can find. Don't expect to be able to connect to modern webservers
with old versions of browsers, wget, curl etc. If you're lucky you
will find a few that still have ftp, but non https webservers seem to
be becoming more scarce.

On the positive side I found myself using the computer a lot less and
in a more focused way, because it was a bit of a chore and I didn't
have easy access to things like youtube or podcasts.

Getting into the habit of switching your computer off is a good
thing. I leave my normal computer on 24/7 as it serves gopher, it's
too convenient to just sit down and start wasting time. 

I have a VPS so I'm thinking I will move my gopher service there and
also everything I currently run in tmux, so I can attach from any
computer that has a terminal application. With a change to my backup
strategy I should be able to switch this machine off when I'm not
actually using it which will save wasting electricity too. I don't
need to be connected to the internet all of the time.]]></media:description>
	   <pubDate>Tue, 28 Mar 2023 14:47:26 +0200</pubDate>
	</item>
        <item>
	   <title>Web2Atom</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Web2Atom.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# web2atom 

A simple utility for parsing data from a web page with multiple items
and making it into an atom feed.

Requirements:
  * Perl

Get it: git clone git://gopher.icu/web2atom


## Commandline usage
curl -s 'http://greatsite.com' | web2atom -p "great_site"


## Sfeed integration
This utility was designed to work with sfeed[1].

To enable this modify ~/.sfeed/sfeedrc to look like the following:
```
feeds() {
	feed 'Ebay - ZX Spectrum' 'https://www.ebay.co.uk/sch/i.html?_nkw=zx+spectrum&_sop=10&rt=nc&LH_PrefLoc=1' 'ebay_watcher'
	#feed 'Another great site' 'http://greatsite.com' 'great_site'
}

parse() {
	if [ "$3" = "ebay_watcher" ]; then
		web2atom -p "$3" | sfeed	
	#else if [ "$3" = "great_site" ]; then
	#   web2atom -p "$3" | sfeed
	else
		sfeed "$3"	
	fi
}

```

The above is a working example. You will of course wish to tailor
this for your own purposes.


## web2atom
Inside the program you will find a list of profiles:
```
my %profiles = (
	'ebay_watcher' => {
		itm  => '<li class="s-item s-item__pl-on-bottom s-item--watch-at-corner".*?>.*?<\/div><\/div><\/li>',
		dmap =>	{	
			## Default Atom
			link      => 'class=s-item__link href=(.*?)\?.*?>',
			title     => '<h3 class=\"?s-item__title.*?>(?:<span.*?<\/span>)?(.*?)<\/h3>',
			published => 's-item__listingDate"><span class=BOLD>(.*?)<\/span><\/span>',
			content   => '',
			
			## Custom fields used in applyCustomFormating()
			price     => '<span class=s-item__price>(.*?)<\/span>',
			postage   => '<span class="s-item__shipping s-item__logisticsCost">(.*?) postage<\/span>',
			buyprice  => '<span class=s-item__price>(.*?)<\/span>',
			buyitnow  => '<span class="s-item__dynamic s-item__buyItNowOption">(.*?)<\/span>'
		}
	}
);
```

You must create a profile such as 'ebay_watcher' for each site you
wish to parse data for. This entry must exist in the program itself 
and also in the feeds() and parse() functions in ~/.sfeed/sfeedrc
as per the example . It is important that the 'itm' regular 
expression encompasses each item you wish to capture. 

*note* Setting the DEBUG constant to 1 will be useful while
experimenting. Using firefox developer tools to view the html layout
of a page and select the containers you're interested in is useful 
for creating the regular expressions.


## Default fields
Treat the 'Default Atom' section as required fields for making a
basic atom feed. The content regular expression is left blank as this
will be populated later in the script with whatever is matched by the
'itm' regular expression.


## Custom fields
The 'Custom fields' are totally optional and allow a great deal of
flexibility. You can use the applyCustomFormatting() function to
manipulate any of the captured fields. 
The below example shows how dates can be manipulated and how the 
title can be amended to include other data:

```
sub applyCustomFormatting
{
	my ($src, @entry) = @_;

	foreach my $entry (@entry)
	{
		if ($src =~ /^ebay/)
		{
			# Fix and format date
			my ($date, $time) = split(/ /, $entry->{'published'});
			$date .= qx#echo -n `date +"-%Y"`#;
			$entry->{'published'} = qx#echo -n `date --date="$date $time" +"%a, %d %b %Y %T %z"`#;

			# Append stuff to title
			$entry->{'title'} = "[BID $entry->{'price'} $entry->{'postage'}] - $entry->{'title'}";
			if ($entry->{'buyitnow'})
			{
				$entry->{'title'} = "[BUY $entry->{'buyprice'}]$entry->{'title'}";
			}
		}
	}
}
```


[1](https://codemadness.org/sfeed.html)]]></media:description>
	   <pubDate>Thu, 20 Jan 2022 14:58:52 +0100</pubDate>
	</item>
        <item>
	   <title>OCC-day2</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-day2.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge - day 2

## Hardware issues

The G3 Wallstreet is taking several attempts to start OS9 from where
I have to launch the Linux boot loader. After several failed attempts
with 'bus error' this morning, having to pull the battery and the
power lead and try again, I decided to take it to pieces to reseat
the ram and CPU. Having done this, I can now report that it's not
made a bit of difference. It still refuses to start Linux at the
first attempt.

I also noticed that Linux isn't recognizing all of the ram. It only
sees just over 100Mb when there is 512Mb installed. OSX sees the
correct amount of memory but OS9 also only sees 128Mb. I tried adding
'mem=512M to the kernel boot line but it seems to have made no
difference.


## Software issues

The old software is becoming a bit of a problem in that the world has
moved on. Even lynx and w3m text based browsers are refusing to work
with some sites, including duckduckgo.com, as they must require a
newer version of TLS.  Configuration files from my existing system
also don't work with the earlier versions of the same software
(i3wm).  This is proving to be a bit of a pain. I want to search for
new libraries and software to download to fix the situation but I
can't. Only recently I said "Hardware dies, software just gets
forgotten.". However it would seem that if there are external
factors, protocols, APIs, software can fail too.


## Thoughts

The problem I have is that I'm using a 1998 32bit PPC mac. Most major
distros have already left this machine to the digital dumpster,
that's if they ever supported it at all. I have to decide whether to
try to make do with this aged operating system and upgrade the
software that's causing me problems or to try to find a newer OS to
install.

If the hardware wasn't misbehaving then this wouldn't feel like such
a chore, but it really is starting to bother me. All of my daily
computing is being done using this as a VT connected to the tmux
session on my usual computer at the moment because I'm in this do I /
don't I limbo.]]></media:description>
	   <pubDate>Wed, 22 Mar 2023 00:59:18 +0100</pubDate>
	</item>
        <item>
	   <title>VPS-vs-Home-hosting</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/VPS-vs-Home-hosting.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# VPS vs Home hosting

When I was working commercially in IT I would always shy away from
hosted services. You don't know exactly what the infrastructure is,
how it's managed, whether the support are complete monkeys (until
something goes wrong) or when they are going to put the price up.

So many variables outside of your control...

Then a couple of years ago I worked out how much it was costing in
electricity to power my server and was faced with potential downtime 
switching to another ISP.


## Living the cloud dream

I conceded, and got myself a VPS with A2 hosting. They had decent
reviews and the price was very reasonable for an entry level VPS,
which was all I needed. I had no issues for a year or more.

Then there was a short outage and not much in the way of apology or
explanation... Then my VPS became a 'legacy VPS' and they offered new
VPS on some other platform that I could move to, but they could not
migrate my existing setup. They also took this opportunity to put the
price up, probably to encourage me to move so they could decommission
whatever infrastructure my VPS was on.

Then they had another outage which lasted best part of a day, again
no apology or explanation, and nothing I could do but sit by and
twiddle my thumbs until it came back online.

So basically, now I'm in the position where I'd need to buy another
VPS to run in parallel to the one I'm already paying for so I could
migrate everything across to avoid an outage... 


## Should I stay or should I go?

The question now is do I get another VPS or go back to home hosting?

I was looking at openbsd.amsterdam[1] at 64 euro per year. That's
less than I'm paying now for twice the RAM and over twice the
storage.

The only issue I ever had with hosting from home is with email, I had
to do some weird ssl tunnel before to get my mail out through my
ISP's SMTP server. Then there was the maintenance of the physical 
server. The last one spewed its' capacitor guts all over the place, 
so it was in dire need of some TLC. But then I'm back in the position
where if I switch ISP I'm going to have an outage, if the server
dies it's on me to fix it and there's no off site copy of anything...


[1](https://openbsd.amsterdam)]]></media:description>
	   <pubDate>Fri, 31 Mar 2023 01:10:32 +0200</pubDate>
	</item>
        <item>
	   <title>Compaq-Portable-386</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Compaq-Portable-386.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Compaq Portable 386

I saved [1]this computer from being dumped in a skip many years ago 
after learning of its impending demise on a newsgroup. After I got 
it home I played with it for a week or so before putting it away. 

From memory it had DOS and windows 3.11 for workgroups installed. 
Everything worked, the motherboard battery was OK, so too was the 
original connor 40mb harddrive.

The machine specs were:
6mb Ram
40mb harddrive
5.25 inch floppy
ISA expansion box containing:
* 10Mbit Network card
* Full length soundblaster with a speaker held in place with blutak

I removed the small speaker, blutak and soundblaster as it looked a 
bit of a mess. I still have the soundcard but not the speaker.


## The second inspiration

Some years later I fired it up again, I can't remember why. Maybe just
to see if it still worked. Unfortunately at this point both the CMOS 
battery and the harddrive had died. 

These systems have no BIOS to speak of and need configuring using a 
utility disk. Luckily I managed to find disk images in both 5.25 and 
3.5 format which allowed me to set the time and drive parameters. 

I had a few old ide drives laying around and managed to find one that 
would work with the unusual disk numbering system. From memory I 
installed a 500mb hard drive, but it wasn't recognized as the full 
volume of the disk. It allowed me to install windows 3.11 again and 
I remember spending a lot of time trying to find and install a 
very small linux distro. 

I used it for a while but quickly tired of having to set the drive 
parameters using the floppy utility every cold boot.


## Jump forward to 2021

COVID lockdown, boredom, reminiscing about old computers and that they
could still be useful. Lets see what I can do with the old girl!

Planned fixes and upgrades:
* CMOS battery, retrofit with CR2032 battery and carrier.
* Install soundblaster card and hidden speakers.
* Replace 5.25 floppy with more standard 3.5 (half height full width)
* IDE to CF card adapter with CF card as main drive.
* Install DOS, windows 3.11 and NetBSD 4.0.1 (last 80386)
* [2]Cat5 to WIFI bridge (hidden inside the expansion box)

The idea is to get the most out of her without making any structural
modifications. No cutting of any of the plastic casings and remain
externally original to the period.


## Update 21/01/2021

The CR2032 carrier and batteries arrived over the past couple of days 
so today, having all the parts, I set to replacing the CMOS battery.

The original EAGLE PICHER LTC-16P-CO-F-S3 battery was fitted deep 
[3]inside the unit requiring removal of the harddrive and floppy 
assembly for access. This isn't ideal, so I decided to make a new one
that was more easily accessible.

I had spotted a handy vacant space down next to the psu that looked 
a perfect size for the battery carrier, with a little padding added 
to stop it sliding around. 

After making sure the assembly fitted snuggly in the [4]space, I cut 
the wires to the required length and refitted the original motherboard 
connector. The [5]replacement carrier wiring and battery, were checked 
with a multimeter before final assembly.


## Update 23/01/2021

The past two days are a blur as there have been many obstacles to 
overcome.

I searched the entire house, including the loft space, but I couldn't 
find the 5.25" system disks anywhere. This meant I had to find the 
[6]DOS utility program again to create new ones. The 500mb harddrive
was in fact only 120mb, so I was far more space constrained than I 
thought. This meant I had to settle on just installing NetBSD, as I 
was more likely to use it than either windows 3.11 or DOS. I could 
always boot DOS from floppy disk for games. 


### Creating a utility disk

It sounds like a trivial thing to do, apart from I no longer have any
5.25" disks. I managed to find a [7]3.5" disk image, but that needed 
to be a low density 720k variety which I also nolonger have. After 
much experimentation with various floppy drives and floppy disks I 
found that I could fool the drive using an old trick of putting tape 
over the right hand hole in the floppy and formatting it a particular
way. Thankfully I had a USB floppy drive for such emergencies!

To format the freshly taped floppy:

  linux:
    $ufiformat -f 720

  DOS/Windows:
    format a: /T:80 /N:9

After that writing the disk image was straight forward:

  linux:
    $dd if=compaq-720.img of=/dev/<floppy>

  DOS/Windows:
    RAWRITE.EXE

After practically a day of trying, this allowed me to run the utility
to set the date; and then spend several more hours trying to guess the 
correct hard drive type from the 47 available options...


### Installing NetBSD 

With only a 120mb (unformatted) hard drive and 6mb of RAM I knew that
this would be a challenge. I was not wrong!

NetBSD 4.0.1 was the last to support 80386 processors. The minimum 
requirements were 4mb ram and 50mb hard disk space. Though there is a 
disclaimer of sorts "we do not know of anyone running with a system 
quite this minimal today.". I tried, the memory requirement was too 
high... 

Going back a little further, to 3.1.1, there is a boot-tiny.fs 
floppy image which had a GENERIC_TINY kernel. This booted and got me 
to the installation menu. I proceeded through the install, partitioned
the hard disk (manually set the geometry because it was incorrect) and 
tried to configure the networking but I could not get the network to 
come up. Eventually I gave up and shut down the machine. Shutting down 
gave me opportunity to swap out the Kingston KNE2000 for a 3com 3c509.

I tried installing again. This time I succeeded in configuring the
network card and, with some modification of URL paths due to these 
old BSD's being archived, I could now install the basic package sets 
(base, kernel and etc). I finished up the install and rebooted.

On booting up it just stopped, as if there was no bootloader installed.
I remembered that I had manually altered the drive geometry because it 
was reading incorrectly from the BIOS. I thought maybe this was the 
problem so I rebooted to perform the install again, this time leaving
the disk as recognized by the BIOS. Unfortunately this reduced the 
available drive size to around 70mb which was not enough to do the 
install. 

I decided to try selecting another drive type using the utility disk 
to see if I could find one that showed more space when running the 
installer. 

The result was much better, with closer to 100mb available without 
manually changing the disk geometry. I made a swap partition of 12mb 
(twice the ram) and used the rest for /. I proceeded to install the 
sets via the network and finished up the install. 

As I saw the NetBSD boot loader come up on screen and scroll through
to a login prompt, I was so happy! My efforts had not been in vain and 
I had managed to get NetBSD installed on a 386 class computer with only 
6mb of ram and in less than 100mb of hard disk space. [8]A success!

There is still some tweaking required but I'm happy with how it's gone
so far. Now I just need to get a dvorak keymap on there...


## Update 24/1/2020

I modified the network configuration to use DHCP. This required setting
dhclient=YES in /etc/rc.conf and modifying the static ifconfig line
in /etc/ifconfig.ep0 to read 'media 10baseT'. I discovered during the
install that media type is not detected automatically on some older
multi-media (BNC, AUI, 10baseT) network cards.

The keymap has been a struggle. Aparently the GENERIC_TINY kernel 
doesn't have wsmux, which would ordinarily link to wskbd. The end fix
was 'wsconsctl -f /dev/wskbd0 -k -w encoding=us.dvorak'. I have added
the line to /etc/rc.conf for now to set it at boot.

ksh needed a .kshrc to make arrow keys and command history work :
set -o emacs
HOME=/home/<my_user>
export HOME
HISTFILE=$HOME/.sh_history 
export HISTFILE

While not essential, the above tweaks have made further configuration
of the system much more efficient.


## Update 30/1/2021

The CF to IDE adaptor arrived today. I connected everything up and 
hoped that a CF to SD card adaptor with a 2gb SD card would do for 
testing. However, the system refuses to boot with the card fitted.
I have ordered a 512mb CF card to see if it is the card or the adaptor
that is the problem.


## Update 04/2/2021

The 512mb CF card arrived today, so I tested the CF adapter with the 
new card. After some time spent trying the various drive types I found 
one that seemed to give me close to the full drive capacity (type 41). 
After installing DOS it successfully booted from the CF card.

Now that I was sure everything was going to work, I could start work
to mount the CF adapter. The adapter came only with a steel bracket
to mount it into the back of an ATX case. I figured that I could bend
and drill the [9]bracket to fit into the drive rails without drilling
any extra holes. This worked quite well until the point I realized
the power connector was too close to the rail to fit. After some time
thinking of a solution, it stuck me that I could unsolder the connector
and place it on the back of the adapter which would make it face away 
from the rail. I was pleased with the [10]final assembly.

I then cut one connector off an old HD ribbon cable for a best fit as
the original was too short to reach the CF adapter. I then trial fitted
and tested the adapter in situ. All was well, so I decided to install
Windows 3.11 for workgroups. This was a little tricky as I had to 
modify the disk images to add support for the Compaq Plasma screen
and CGA adapter. This makes the installation more straight forward
though as you don't have to install drivers from alternative disks
should it need to be reinstalled in future. To complete the retrofit
I installed a soundblaster 1.5 that came with the machine and installed
prince of persia and lemmings which would allow me to test the card.
After making an IRQ jumper change everything worked great. I was quite
impressed by the sound from this old card, despite nearly deafening 
myself when testing it with earphones!

I reassembled the unit and gave it a final test by playing a few levels
of lemmings with some powered speakers plugged in. The experience took
me back to my teens when we had an Amstrad PC1512. 


## Conclusion

It was nice to have retrofitted the Compaq and have it working again
without harming the integrity of the original system. I had ambitions
when I started the project about maybe using it myself and installing
WIFI and speakers in it. But really it belongs in a museum or with 
someone who will use it and appreciate it more. That is why I installed
DOS and Windows 3.11 rather than NetBSD in the end. I set it up for
a new owner rather than for myself as through the process I sadly 
realized that I would rarely, if ever, use it.

1. [Compaq Portable 386]( gopher://gopherpedia.com/0/Compaq%20Portable%20386 )
2. [Cat 5 to WIFI bridge]( https://www.amazon.co.uk/Convert-Ethernet-Wireless-Repeater-Multi-Functional/dp/B07PMR673M )
3. [Original battery location]( gopher://gopher.icu/I/phlog/Computing/images/old-battery.jpg )
4. [Trial fitting new battery]( gopher://gopher.icu/I/phlog/Computing/images/trial-fit.jpg )
5. [Finished assembly]( gopher://gopher.icu/I/phlog/Computing/images/new-battery.jpg )
6. [Utility disk programs (3.5" & 5.25")]( gopher://gopher.icu/9/files/compaq-portable-386-utils.zip )
7. [3.5" 720k floppy utility disk image]( gopher://gopher.icu/9/files/compaq386-cmosdiskimg.zip )
8. [NetBSD Installed]( gopher://gopher.icu/I/phlog/Computing/images/install.jpg )
9. [CF Card Adapter Bracket](gopher://gopher.icu/I/phlog/Computing/images/cf-bracket.jpg )
10. [CF Assembly](gopher://gopher.icu/I/phlog/Computing/images/cf-assembly.jpg )]]></media:description>
	   <pubDate>Thu, 11 Feb 2021 01:44:31 +0100</pubDate>
	</item>
        <item>
	   <title>Gopher-Poll</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Gopher-Poll.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Gopher Poll

There was a gopher polling system[1] already, which I had used
previously with no complaints. Unfortunately when I wanted to create
a poll recently it was very slow, seemed to have issues creating the
poll and the author didn't reply to my email, so I reverse engineered
it.

I had a good look at their system, took what I liked about it and
changed what I didn't, which has resulted in something quite basic
but functional[2].

To anyone who would like to test it or use it, please do and let me
have your feedback.

The code is available here[3].

[1](gopher://khzae.net/1/poll)
[2](gopher://gopher.icu/1/poll)
[3](git://gopher.icu/poll)]]></media:description>
	   <pubDate>Sun, 12 Feb 2023 01:09:00 +0100</pubDate>
	</item>
        <item>
	   <title>Nokia-E71-in-2021</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Nokia-E71-in-2021.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Nokia E71 in 2021

## Into the darkness
Thinking back, the sole reason I stopped using my Nokia E71[1] was due
to WhatsApp dropping support for the s60 platform. I had used WhatsApp
for many happy years and my dependance on it, for keeping in contact 
with friends and family, was such that I switched platform to android 
to continue using it.

## WhatsApp bought by Facebook
I have never liked/trusted facebook and so never created an account.
News that WhatsApp was being aquired by facebook was a real hammerblow
to me and I immediately expected the worst. When the updated terms of
service, with an ultimatum to accept data sharing with facebook[2] or 
else, bomb dropped. I immediately sought an alternative and decided 
upon Signal. 
Unfortunately, in spite of my best efforts, my family and friends have
continued to use WhatsApp...

## Android Paranoid 
I know it's spying on me, feeding data back to google at my expense,
but I hadn't realized just how much until I looked at the data usage 
by application. Applications I didn't even use! If I were on an 
unlimited data plan then maybe I could turn a blind eye to it, but 
I'm not. Aside from this, there was a recent update to the Play app
to cripple it. This was done for no other reason than to force users 
to youtube music. Fortunately I realized that by uninstalling updates
for the app the functionality could be restored. Then the final straw,
my contacts disappeared and gave some error about syncing. I have 
never enabled syncing of my contacts to google...

## Alternatives 
I looked at alternative options only to find that in modern times you
really have only two, iOS or android. If that's not a monopoly I don't
know what is. I didn't want to be part of either of those ecosystems
so I started looking back in time.
Firstly I considered a Blackberry Classic. I had missed the keyboard 
of the E71. The classic would provide newer hardware with a nice 
keyboard and a better camera, but I resisted the urge to buy the first
reasonably priced one on ebay. In the meantime I decided to put my sim 
back in the E71.

## Fast forward 
It has been approximately four weeks since I reverted back to my 
trusty Nokia E71. This wasn't as much of a shock to me as it would 
be for many as I don't participate in any social media. The only apps
I used with any regularity were Strava, WhatsApp, play (for music) and
occasionally Maps for navigation. Since I had already switched to SMS
and using Signal after closing my WhatsApp account. For the most part
I haven't missed anything, other than the cheap messaging offered by 
an IM client that uses data rather than SMS which I currently pay 4p
per message for.

## Opportunity
After the WhatsApp disappointment and then reports of Signal offering
digital payments[3] I had already began to think seriously about using
an open IM protocol and self hosting. It didn't take long for me to 
decide upon XMPP, more commonly known as Jabber.
Installing the prosody XMPP server[4] was fairly trivial, getting it 
to work with conversations/blabber on android however, was more tricky.
As a client on the E71 I ended up installing 'slick'. It is fairly 
basic but at least allows me to exchange messages. I believe nimbuzz 
is more feature complete and will do voice calls too but I have yet 
to find a download.

## Software
Finding software for s60 in the present day is a problem. Thankfully
I still had backups of some useful apps:
  * BirdStep SmartConnect (Connection manager)
  * Opera Mini (web browsing)
  * Ovi Maps (navigation)

I was actually quite fortunate to get Ovi Maps working again. Although
I had the mapping application, I didn't have any of the map data saved
and all the servers which hosted them have disappeared. Finding the
map data[5] on archve.org and some helpful instructions[6] made my day.

A nice bonus was to discover a gopher client[7], all be it written in 
java.

## Conclusion
It's not perfect but then nothing is. I do however feel more confident 
in the phone. Knowing that the apps installed will continue to function
as they always have, that my credit is not being wasted and that data 
about me is not being collected and used or sold for profit by google.

[1](gopher://gopherpedia.com/0/Nokia%20E71)
[2](https://www.zdnet.com/article/whatsapp-this-is-what-happens-if-you-dont-accept-our-new-privacy-terms)
[3](https://decrypt.co/55422/signal-is-experimenting-with-stellar-based-cryptocurrency-report)
[4](coming soon)
[5](https://archive.org/download/Nokia_Maps_original_caches_from_Nokia_servers)
[6](https://answers.microsoft.com/en-us/mobiledevices/forum/all/newest-nokia-ovi-maps-0125114-manual-download/7f0e8253-ea9b-4d64-9005-a7538dca468c)
[7](https://felix.plesoianu.ro/mobile/pocket-gopher)]]></media:description>
	   <pubDate>Sat, 31 Jul 2021 09:13:12 +0200</pubDate>
	</item>
        <item>
	   <title>dallas-ds12887-cr2032-battery-mod</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/dallas-ds12887-cr2032-battery-mod.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Dallas DS12887/DS12C887 CR2032 battery mod

The modification is fairly simple but can be done in two ways. When I
performed this mod I exposed only pin 20, for the positive feed, and
cut a groove into the casing at pin 12, to expose a little of the pin
shoulder to solder the negative lead to[1].

Most mods I've seen done have used pins 20 and 16, with the CR2032
battery holder I had it seemed tidier to use pin 12, YMMV.


## Pinout

                          --------
                    MOT [|1  V  24|] Vcc
                     NC [|2     23|] SQW
                     NC [|3     22|] NC
                    AD0 [|4     21|] RCLR 
                    AD1 [|5     20|] NC =========== +
                    AD2 [|6     19|] IRQ
                    AD3 [|7     18|] RESET
                    AD4 [|8     17|] DS 
                    AD5 [|9     16|] NC =========== - 
                    AD6 [|10    15|] R/W 
                    AD7 [|11    14|] AS
                    GND [|12    13|] CS
                          --------

[1](gopher://gopher.icu/I/images/dallas-ds12887-cr2032-battery-mod.jpg)]]></media:description>
	   <pubDate>Thu, 02 Mar 2023 21:46:24 +0100</pubDate>
	</item>
        <item>
	   <title>OCC-day1</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-day1.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge - day 1

Where to begin, things haven't gotten off to a good start!

Firstly, the G3 apple wallstreet powerbook I had decided to use for
the challenge has been very unreliable to boot. It's OK once booted
up, but if I have to restart the machine for some reason I'm getting
bus errors. I didn't have this issue the last time I used it so maybe
something is suffering a little from old age, maybe some capacitors
somewhere? Amazingly the battery still charges!

The version of Linux installed is Linux mint 9. It's based on Debian
squeeze for which long term support ended back in 2016. All the repos
have been archived and I had to mess around with the apt sources.list
to get access to the binary packages to install / update software.

I did briefly get annoyed to the point that I decided to attempt to
use the dual pentium pro computer that I recently got running again.
Unfortunately something caused a reboot and it has managed to corrupt
the CF card I'm using as a HDD and ruin the NetBSD install that's on
there. It also draws 120w, so it was back to the laptop for another
attempt, after I'd calmed down from uninstalling network-manager
which broke my wifi card configuration ...

The version of i3wm in the repos is too old for the configuration
from my current system to work, so it seemed like a good opportunity
to give ratpoison a try. It's taking a bit of getting used to and
I'm missing some kind of status bar at the top. I don't think there
is one built into ratpoison so I may have to install some stand alone
status bar.


## Software change summary

Uninstalled lxde and associated packages.

Openbox    -> ratpoison
lxterminal -> urxvt
bash       -> mksh

Copied over my .mkshrc and .Xresources files.]]></media:description>
	   <pubDate>Tue, 21 Mar 2023 00:48:24 +0100</pubDate>
	</item>
        <item>
	   <title>Sabbatical-over-and-permacomputing</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Sabbatical-over-and-permacomputing.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Sabbatical Over

I'm not sure if anyone actually reads my phlog posts, or cares, but
sometimes I think it's just good to put in writing the things that
are whirring around in my mind, if for no other reason than to 
clarify my own thoughts.

The end of last year was a bit of a rough time for me and I withdrew
from everything, including being online and doing anything computer
related, other than checking my email and RSS feeds maybe once a day. 
Maybe that's just what people should be doing rather than using 
computers in a non-deliberate and permanently connected way, as a 
distraction or for entertainment. Is there a difference?


## Permacomputing

I've been reading quite a bit on the subject of permacomputing the
last few days and have read a number of articles by Solderpunk[1], 
Viznut[2] and others. Orphans of Netscape[3] really resonated with me 
as I am one of those orphans. 

It's strange how there is a growing feeling among people that there 
is an inevitable shift coming in the availability of electronics and 
computing that we currently take for granted. No one is really sure
what that landscape will look like, but there is a tangible 
nervousness with people trying to predict and prepare for what is to
come.  Whatever it is, the change will be far wider reaching than 
just our personal computing abilities and maybe computers as we use 
them today will cease to even matter...


[1](gopher://zaibatsu.circumlunar.space/1/~solderpunk)
[2](http://viznut.fi/texts-en/)
[3](gopher://zaibatsu.circumlunar.space/0/%7esolderpunk/phlog/orphans-of-netscape.txt)]]></media:description>
	   <pubDate>Wed, 25 Jan 2023 16:31:23 +0100</pubDate>
	</item>
        <item>
	   <title>Quarry</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Quarry.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Quarry (indexer, search interface and supporting tools)

> A place, cavern, or pit where stones are dug from the earth, or 
> separated, as by blasting with gunpowder, from a large mass of rock.

> Hunted or slaughtered game, or any object of eager pursuit.

Quarry contains a number of components:
  1. Crawler/indexer (quarry.pl)
  2. Gopher search, front end to search index (search.dcgi) 
  3. Wrapper for quarry.pl to process pending host index requests
      (indexPending.pl)
  4. Sitemap generator (generateSitemap.pl)
  5. Host and selector maintenance (checkHosts.pl)

Requirements:
  * Perl
  * curl
  * MariaDB/MySQL 

Try it: gopher://gopher.icu/1/quarry

Get it: git clone git://gopher.icu/quarry


## 1. Crawler/indexer
The indexer will by default visit every link on a gopher site and 
store the type, link-title, selector, hostname and port in the 
'selectors' table. It will do this only for those types defined in 
HARVEST_TYPES.

The robots.txt standard file format is supported and honoured. A
bespoke sitemap file format is also supported and will be used to
populate the database if found.

There are a number of parameters which can be set at the top of
the file to change it's behavior:

  DEBUG (Default 1)
     Display verbose status messages.

  MAX_DEPTH (Default 5) 
     Defines the maximum number of levels of recursion.

  IGNORE_ROBOTS (Default 0) 
     Ignores robots.txt and any directives therein.

  IGNORE_SITEMAP (Default 0)
     Ignores the sitemap and instead indexes the site by recursion.

  CRAWL_DELAY (Default 2)
     Default delay in seconds between requests. This parameter is
     overridden by robots.txt if found.

  HARVEST_TYPES (Default '10Igs9')
     Defines the gopher types captured.

  TRAVERSE_DOMAINS (Default 0)
     *Best avoided* as sitemap and robots are only parsed for the 
     start domain. It is better to index each host individually and 
     use alternative means of host discovery.

  REINDEX (Default 0)
     Removes all selectors for host before re-indexing.

Usage: quarry.pl some-gopher-domain.net

The port can be optionally specified eg. some-gopher-domain.net:7070.

        
## 2. Gopher search 
This provides a font end to the index generated by quarry.pl.

Features iclude:
  * General search
  * Image search
  * Sound search
  * Video search
  * Submit site to be indexed 

The current search function is basic and tries to match the search 
string against the selector or title fields and returns any that 
match. This will change once metadata is added and implemented in 
the search.


## 3. Wrapper
This program simply looks in the 'pending' database table for hosts
submitted to be indexed, via the gopher search front end, and passes
them to quarry.pl to be indexed.

Usage: indexPending.pl


## 4. Sitemap generator
The sitemap generator uses data from the index generated by quarry.pl.

The reasons for the sitemap are twofold:
  1. Efficiency, downloading a single index file rather than crawling.
  2. The format supports additional metadata:
      * Description
      * Categories
      * Keywords

These extra metadata fields can be used to greatly enhance search 
results.

Example of records:
```
Type: 1
Selector: /contact.dcgi
Host: gopher.icu
Port: 70
LinkName: Contact
Description: My contact details
Categories:
Keywords:
--------
Type: 1
Selector: /gutenberg
Host: gopher.icu
Port: 70
LinkName: Gutenberg (unofficial book and audio search interface)
Description: Gopher search interface to the official Gutenberg book
 repository
Categories: Books
Keywords: Books
--------
```

Usage: generateSitemap.pl some-gopher-domain.net > sitemap.txt


## 5. Host and selector maintenance
Only basic host checking has been implemented using 'hostcheck'.

Currently the checkHosts.pl script checks each host twice in a 24 
hour period. If the host fails two concurrent checks then it is 
flagged as inactive and selectors will not display in search results. 
If on a subsequent check the host has recovered then it is again 
flagged as active.

Hostcheck: git clone git://gopher.icu/hostcheck


## 6. IndexNow
IndexNow[1] is an easy way for website owners to instantly inform
search engines about content changes on their website. 

It has been implemented in a basic way to allow submission of a
single URI per request:
curl -s 'gopher://gopher.icu/7/quarry/indexnow.dcgi?url=<MY-URL>&key=<MY-KEY>'

[1](https://www.indexnow.org/)]]></media:description>
	   <pubDate>Tue, 15 Feb 2022 23:29:07 +0100</pubDate>
	</item>
        <item>
	   <title>OCC-day5</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-day5.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge - day 5

I gave up trying to update software. For internet stuff I'm using
weechat, sfeed, mutt and lynx via my tmux session on my usual
machine. I have settled into using ratpoison and urxvt on this apple
G3 laptop.  The only thing I'm really missing is having a status bar
to see battery life and time. I did briefly have a go at using
i3status with dzen2 but no text appears in the bar that appears at
the top of the screen, so I gave up on it. The time can be seen with
'C-t a' via ratpoison or 'C-b t' in tmux...


## Changing habits

Today I have mostly been testing and scrubbing old SCSI hard drives
on my Pentium Pro. I have a lot of old hardware which I don't need
and requires testing. Seeing as it's now working again I'm making use
of it for testing these old components. I have no plans to use SCSI
in the future so I'm going to sell them on, hopefully to people who
have a need for them to keep their old systems running. 

This afternoon I mowed the back lawn. I definitely find myself
spending less time on the computer without a purpose. Due to not
readily being able to waste time browsing Ebay or watching Yewtu.be
videos, I guess I have been getting on with things which I've been
neglecting.

All this has made me realize that the computer I currently have
running 24/7 could be switched off over night, and other times too.
The only reason it stays on is to backup my VPS and serve gopher.
Gopher can be moved onto my VPS and I can figure something out with
the backup strategy.

With it sat there running all the time there is always the temptation
to just sit down and use it. If I had to wait for it to boot up then,
unless I really had something to do, I wouldn't bother.]]></media:description>
	   <pubDate>Sat, 25 Mar 2023 00:53:40 +0100</pubDate>
	</item>
        <item>
	   <title>Simple-Computing</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Simple-Computing.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Simple Computing

There appears to be emerging a renaissance in retro computers and
retro computing technologies. My own earliest memories of computing
are of playing games on my ZX Spectrum 48k and using BBC Model B's at
school. In those days both hardware and software were much more
simplistic and because of it, more accessible to hobbyists.

Over 20 years have passed since I embarked on a career in I.T. and to
be honest it was drudgery for the most part. Sometimes I was able to
come up with some neat simple solution of my own devising but it was
not often I had the freedom to craft something from the ground up. I
also spent most of that time contributing to the commercial web for
which I now have a lot of resentment.

I much prefer tinkering with my old computers, they have character!
Unlike the glossy screened featureless rectangles of today's masses.

Not because of age, but because of the speed at which computing
technology has moved on in my lifetime, I am a dinosaur of the
digital age. To me this stuff isn't retro, it's what I grew up with,
what I feel at home with and I will do my best to hold onto all that
was good.


## Tools to create 

Every home computer in the 80's came with a built in programming
environment and documentation allowing the new owner to extend the
system by writing their own programs. A whole generation of game
studios and legendary programmers emerged from this perfect storm.
Unfortunately as commercial software took off the included tools
allowing you to create your own steadily disappeared.

In hind sight, if I were at the beginning of my career again, I 
would have learned C, Lua and POSIX shell. Forth has also recently
come to my attention and intrigues me. Interestingly the Jupiter
Ace[1] personal computer from the 80's came with a Forth interpreter
as opposed to the usual basic interpreter of the time. Operating
systems such as Collapse OS and Dusk OS are Forth based. 

We should be eternally grateful to those who have contributed to free
and open source software. They have given us a lifeline from the
tyranny of commercial operating systems and development software. I
do believe however that much of it is far too complex...


## Plain text

There are many text editors and command-line tools designed to work 
with plain text and this format is truly cross platform. I tend to 
write all my articles using markdown so that they can be converted 
easily to other formats which support text attributes like **bold**, 
_italic_ and headings etc. Although I rarely use anything other than
headings and foot notes... 

I use vim for everything. Choose an editor and learn to use it well,
this is your most important tool for working with text.


## Gopher

Due to my resentment of the commercial web, and in some attempt to 
repent, I have become a gopher advocate and contributor. Through 
providing some small services (Gutenberg Search, Quarry Search
Engine, Podcast Search) and writing content unique to gopher I hope
to encourage its use and popularity.

Gopher has not lost its community feel. Unlike the majority of the
WWW, you don't have to look far to find content that has been created
because it mattered to the author to share their knowledge or their
opinion.


## A consideration

To quote Solderpunk[2] "The dominant use of personal computers in the
21st century is the functional simulation of non-computers.". The
emulation of analogue devices (clocks, calendars, 
typewriters, music players ...) and tasks. In response to that I'd
simply like to say that it was only after the tools of creation were
no longer distributed along with these devices and they lost the
primary means of interacting with them in a meaningful way (a real
keyboard) that they became devices of consumption. The clue is in the
fact that the screen is the most significant part of them. To write
software for android it would appear you need to download android
studio which runs on what I would consider a real general purpose
computer. They are not self contained multi purpose computers like
those in the 80's.


[1](gopher://gopherpedia.com/0/Jupiter%20Ace)
[2](gopher://zaibatsu.circumlunar.space/0/%7esolderpunk/phlog/do-you-even-compute-bro.txt)]]></media:description>
	   <pubDate>Thu, 26 Jan 2023 00:03:42 +0100</pubDate>
	</item>
        <item>
	   <title>Unnamed-4U-computer</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Unnamed-4U-computer.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Unnamed 4U Computer

Ok so only two people voted[1] on which of the two Dual Pentium Pro
computers should be my next hardware project and they both voted for
this one, so here it is!


## The hardware

* Motherboard - ECS P6FX2A (Produced in 1996)
* CPU(s)      - 2 x Pentium Pro 200mhz (256k Cache)
* RAM         - 256mb 66mhz EDO (512mb max according to manual)
* HDD         - 8gb Lexar CF card connected via IDE to CF adaptor
* Video       - Matrox Millenium 16mb (dual vga output) PCI card
* Network     - Realtek 8139c 100mbit PCI card
* I/O         - 4 port USB 2.0 PCI card, IR and USB 1.1 board headers
* SCSI        - Diamond Fireport 40 PCI card with 9.1gb UW SCSI HDD
* Case        - Generic black 4U server case

On first switching on the machine I was pleased to discover that
there was in fact 256mb of RAM installed! Unfortunately the BIOS
battery reported as being on its last legs, so that was to be my
first job. I have written an article about the CR2032 battery mod[2]
to the Dallas RTC chip, so I won't elaborate on that here. 

On reading the manual I discovered there were headers for both IR and
2 x USB 1.1. Also notable was that the board was capable of taking a
maximum of 512mb of RAM.


## Grouch

So this machine was unnamed but on thinking about it, the last host
name I gave it was 'Grouch', and I'm beginning to remember why! This
thing is quirky beyond all quirkiness. It won't boot from CD, gives
some error 'AX = FF' after beginning to boot. I can't find a modern
linux distro that will get beyond the first stages of trying to boot
a kernel, all result in some kind of kernel panic, something about a
trampoline??? The last operating system I had successfully run on it
was Windows 2000 Pro and from memory I had to install it from floppy!

Anyway, after much mucking about downloading and writing various
linux iso images to a USB thumbdrive, which I had to initialise using
plop[3] from a floppy as the system has no option to boot from USB, I
finally got something to work, NetBSD[4] to the rescue! The USB
install image worked right off the bat, no dramas at all.


## What to do with it?

I have a lot of computer parts which are about the same vintage as
this computer so for starters, I will use it as a test bed for those
components. I can then have a clear out of things I no longer need
and get them listed for sale so they can find new homes with people
in need of them.


## Conclusion

Its fans roar and its SCSI drive wails as it bursts into life. It's 
loud, ponderous and ungainly, a relic of the past.
I can't help but feel satisfaction having extended the life of this 
digital dinosaur. As old and slow as it is, it could still manage 90%
of my daily computing needs...

Old-computer-challenge?[5]

I'm feeling a lot of love for the NetBSD folks right now.


[1](gopher://gopher.icu/1/poll?poll=1676405525)
[2](gopher://gopher.icu/0/phlog/Computing/dallas-ds12887-cr2032-battery-mod.md)
[3](https://www.plop.at/en/bootmanager/download.html)
[4](https://www.netbsd.org/)
[5](https://dataswamp.org/~solene/2021-07-07-old-computer-challenge.html)]]></media:description>
	   <pubDate>Thu, 09 Mar 2023 17:49:19 +0100</pubDate>
	</item>
        <item>
	   <title>vimb-web-browser</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/vimb-web-browser.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Vimb Web Browser

I've been a firefox user longer than I can remember, but over recent
years it has begun to annoy me with it's user hating interface
changes and other negative aspects of the mozilla foundation.

This has prompted me to look for an alternative. I'm also a long time
vim user and for the past few years have used browser plugins to
enable vim like key bindings to control the browser. The experience
unfortunately, has always been somewhat lacking.

vimb came to my attention due to it being webkit based and also
having more integrated vim keybinding control.

Building the software was quite straight forward following the
instructions on the github page[1].


## Requirements

* gtk+-3.0
* webkit2gtk-4.1
* gst-libav, gst-plugins-good (optional, for media decoding among 
other things)

From memory I think I had to install gstreamer1.0-libav on devuan to
get youtube videos to play.


## Getting it to work as x-www-browser

Initially my system kept opening firefox when I clicked on links in
the terminal. To rectify this on devuan I tried to run
update-alternatives --config x-www-browser

Unfortunately it didn't detect the browser I'd installed from source
as there was no reference to it in the dpkg alternatives which is
located here: /var/lib/dpkg/alternatives/x-www-browser

After adding an entry for vimb like the following:

```
/usr/local/bin/vimb
70
/usr/local/share/man/man1/vimb.1
```

I could then successfully run update-alternatives and select vimb to
be the new default.


## Conclusion

It's taking a little getting used to but I'm starting to really like
it. The fact that there are no tabs stops me from leaving lots of
tabs open so it's actually changing the way I use the web browser, 
for the better in my opinion.


[1](https://fanglingsu.github.io/vimb)]]></media:description>
	   <pubDate>Wed, 08 Feb 2023 03:24:27 +0100</pubDate>
	</item>
        <item>
	   <title>Gutenberg</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Gutenberg.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Gutenberg

Gutenberg is a fantastic free eBook resource with a truly enormous 
catalogue of over 60,000 out of copyright and public domain books. 
Through my gopher browsing I discovered that they still have a 
[1]gopher server which provides access to the text versions of all 
books, as well as some audio and video files. What they didn't appear 
to have was a nice way to search the catalogue using gopher.


## Gopher interface

I had been thinking for a while how I could contribute to the gopher
revival and this seemed like a logical union. Rather than providing a
gopher interface to http resources, here was a gopher resource that 
was not being fully utilised. I set to work to rectify this situation.


## The index files

In the directory listing there are several index files listed by year
from 1996 in the format of GUTINDEX.<year>. There is also a GUTINDEX
.ALL and GUTINDEX.zip containing a consolidated catalogue listing. I
chose this later file to parse and build a searchable index. 

Parsing the file was not without it's trials, with multibyte charact
ers causing me some frustrations. However, perseverence allowed me to 
get what I needed from the file and build the index. Creating the file
path URI's from the book numbers was fairly easy. An example of how
to resolve the number to a directory was helpfully given in the README
file.

Example, book 1190. You split the numbers and each number would be a
directory except the last. So /1/1/9/1190 where the book was single
digit number you had to begin at zero. So book 9 would be /0/9.


## Gopher menu 

Initially I tried to link directly to the text files. Unfortunately
the naming convention was not consistent and after guessing and 
programatically trying to verify the existance of the file. I decided 
to just link to the directory. This was a much cleaner solution. 
When I noticed there were [2]audio and video files as well I conceded 
that this was the best option.

The end result is a [3]gopher menu which provides a search function 
that searches the catalogue for matching authors and titles. It also 
shows the five most recent additions to the catalogue and five most 
downloaded, with a link at the bottom of each section to list more. 

## Update 01/06/2021 - Atom and RSS new book feeds added.

After a request on IRC for a feed of newly added books, both [4]Atom
and [5]RSS feeds have now been created.
The Atom feed can be accessed directly from a link on the front page 
of the gutenberg interface.

1. [Gutenberg Gopher Server](gopher://dante.pglaf.org/1)
2. These can be searched for by searching 'Audio:' and 'Film:'. 
3. [Gutenberg gopher interface](gopher://gopher.icu/1/gutenberg)
4. [Atom new book feed](gopher://gopher.icu/0/gutenberg/newbooks.atom.xml)
5. [RSS new book feed](gopher://gopher.icu/0/gutenberg/newbooks.rss.xml)]]></media:description>
	   <pubDate>Tue, 01 Jun 2021 10:31:25 +0200</pubDate>
	</item>
        <item>
	   <title>OCC-day3</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-day3.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge - day 3

I started the day with the usual unplug, battery out, wifi card out,
half a dozen reboots to get linux booted. 


## Software rot

The day has been consumed by finding and downloading software
dependencies and compiling them. This was made doubly difficult by
the fact that the reason I'm doing this is because none of the
installed web browsers will connect to large number of websites via
HTTPS. It's a bit of a chicken and egg situation. Luckily some of the
sites I needed to download software from still had ftp servers
available. For the ones that didn't I resorted to downloading the
source to my normal computer and then using scp to bring them across
to the laptop. Needless to say old machines take a lot of time to
build code from source, especially large packages like gnutls which
have quite a lot of dependencies.

I figured if I could update gnutls then I could at least build lynx
and maybe a light graphical web browser so I can have some access to
modern websites without cheating and using my normal machine in some
way.

By lunchtime I decided I'd had enough for a while and decided to go
out and do some gardening[1].


## The afternoon 

Later in the afternoon I got back to it and managed to assemble the 
remaining software dependencies to build lynx, either from source or 
binary packages. The first attempt at building lynx resulted in no
SSL/TLS in spite of adding the necessary flags to the configure line.

./configure --with-ssl=/usr/local/lib --with-gnutls=/usr/local/lib
--enable-gnutls-compat

I figured something must have gone wrong with my build of gnutls;
sure enough I hadn't enabled openssl compatibility, so I had to
rebuild it again.

I'm currently waiting for lynx to rebuild, fingers crossed it works
this time ...


[1](gopher://gopher.icu/0/phlog/Self-sufficiency/230322-Gardening-diary.md)]]></media:description>
	   <pubDate>Thu, 23 Mar 2023 02:50:13 +0100</pubDate>
	</item>
        <item>
	   <title>Old-computer-challenge</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Old-computer-challenge.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old computer challenge

I feel a little bit of a fraud being in #old-computer-challenge on
libera.chat, having never actually done the old computer
challenge[1]. So, I will be starting the challenge this coming
Monday, 20-03-2023!


## Hardware

I have decided to take the challenge on this occasion using an Apple
G3 Wallstreet Powerbook[2]. Specifications as follows:

* 300mhz G3 Single core processor
* 512mb RAM
* 60Gb HDD (spinning rust)
* CDROM
* 14" Screen
* 1 mouse button (Surely this alone is a challenge!)


## Operating system

Currently it has OSX 10.2 or 10.3 and an old version of Linux Mint.
This may well change depending on my annoyance levels ...


## Initial thoughts

I will try not to cheat and just use it as a terminal connected to my
normal machines'  tmux session. 

This should be an opportunity to test out some alternative software
to that I normally use.

I hope it still works ...


[1](https://dataswamp.org/~solene/2021-07-07-old-computer-challenge.html)
[2](https://everymac.com/systems/apple/powerbook_g3/specs/powerbook_g3_292.html)]]></media:description>
	   <pubDate>Thu, 16 Mar 2023 13:37:53 +0100</pubDate>
	</item>
        <item>
	   <title>Tablify</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Tablify.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Tablify

Tablify is a basic utility for creating neatly formatted text tables
from a tab/other delimited file. It attempts to right align numeric 
fields and left aligns all others.

## Options

  -h  Use first line for column headings
  -s  Skip blank lines in file
  -d  Specify alternative delimiter (default is tab)


## Usage

user@host:/home/user$ cat stuff.tsv | tablify    
+-----------+-------+
| Vegetable | Price |
| Carrots   |  1.00 |
| Potatoes  |  2.00 |
| Onions    |  1.00 |
| Asparagus | 10.00 |
+-----------+-------+

user@host:/home/user$ cat stuff.tsv | tablify -h
+-----------+-------+
| Vegetable | Price |
+-----------+-------+
| Carrots   |  1.00 |
| Potatoes  |  2.00 |
| Onions    |  1.00 |
| Asparagus | 10.00 |
+-----------+-------+


## Download

git clone git://gopher.icu/tablify]]></media:description>
	   <pubDate>Wed, 06 Oct 2021 14:13:05 +0200</pubDate>
	</item>
        <item>
	   <title>For-Sale</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/For-Sale.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# For Sale

## Computers

### Compaq Portable 386

This computer[1] has 6Mb RAM, 512Mb HDD, 5 1/4" FDD and comes with 
the optional expansion box that can house two full size ISA cards.
It has been retrofitted with a CR2032 battery for the CMOS and a CF 
card HDD without making any structural mods. A compatible working 
117Mb mechanical HDD is included. It is pre-installed with DOS and 
windows 3.11 for workgroups. 

Two none original Compaq 5 1/4" system disks are also included.

[1](gopher://gopher.icu/0/phlog/Computing/Compaq-Portable-386.md)

Price: 250 GBP


### SGI Indigo 2

This computer has 256Mb RAM, 9.1Gb HDD, GR3 Elan graphics and a 20"
CRT monitor. The keyboard, mouse and monitor are all the original
granite finish items. It is currently running IRIX 6.5. There is also
a 13w3 to VGA adapter to allow for use with a sync on green
supporting VGA monitor.

Price: ?


### HP N54L microserver

Dual core AMD Turion 2.2Ghz processor, 4Gb of ECC RAM, HP 410p
512mb battery backed cache raid card and 2x 2Tb WD Red drives.
Has been a great NAS and daily driver but I have downsized.

Price: 250 GBP


### Dell sx620 USFF

Dual core Pentium D 3.4Ghz, 4Gb RAM, 500Gb HDD and DVDRW. There is a
19" Dell monitor and logitech wireless keyboard with trackpad to go
with.

Price: 100 GBP


### Apple 12" Powerbook

1.5Ghz, 1.25Gb RAM, superdrive, bluetooth, wifi, 160Gb HDD. Comes
with the original box, PSU, connectors and manuals. Battery is
totally useless and won't charge.

Price: ?


## Components

### SCSI HDD

* IBM DNES-309170W 9.1Gb UW 68pin 7200rpm x2

* Seagate ST32430M 2.1Gb 50pin 5411rpm x2 

* Seagate (CDC) 94191-15 668Mb 50 pin Full Height

* Hot swap 5 1/4 bays for 68pin drives x2


### SCSI Controller Cards

* Diamond Fireport 40 - 50pin and 68pin PCI 


## Mobile Phones

### Nokia 8110 (NHE-6BX) with refurbished battery

The famous banana phone used in the Matrix (not the actual one) with
a refurbished battery[2]. The phone is in good used condition and
working order but I suspect locked to O2 and its derivative networks.
I will in the next few days verify this.

[2](gopher://gopher.icu/0/phlog/Computing/Nokia-BLJ-2-battery-refurb.md)

Price: 90 GBP]]></media:description>
	   <pubDate>Sat, 20 Jan 2024 15:19:06 +0100</pubDate>
	</item>
        <item>
	   <title>Reduce-and-Simplify</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Reduce-and-Simplify.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Reduce and Simplify

Over recent years I have gone through phases of consolidation and 
reduction in all areas of my life and that has inevitably included 
the hardware and software choices I have made. 

Consider with care that which you truly would not want to be without
and know that it will continue to serve you tomorrow as it did today.


## Hardware considerations

Try to buy hardware which adheres to standard form factors, like ATX,
and uses common discrete components (not everything on a single
board). This gives the largest scope for repairability and sourcing
of replacement parts.

At one point I had 3 computers running 24/7 eating up electricity. I
now just have one computer running 24/7 which serves as my desktop
pc, gopher server and NAS. Thinking about it I could probably switch
it off over night if I moved the gopher server to my VPS and changed
my backup strategy ...

If items use batteries, buy ones that use standard cell batteries (AA
, AAA, C, D) that are easily replaceable or at least ones that are
removable and fairly easy to source (Nokia BP-4L / BL-5C).


## Software

### Operating System

I migrated to Devuan linux from Debian because I didn't like the fact
that systemd was becoming much more far reaching than just an init
system. It was ceasing to be something that was an option and was
fast becoming an ever more inextricable part of many linux
distributions. This was a simple transition for me as Devuan is
Debian based. The primary reason I started using Debian all those
years ago was due to its advanced package management system.

Void linux was also on my radar when I was looking to move from
Debian and systemd as it provides init system options and there is
also a Musl library based version. I decided against it as it has its
own package management system and I didn't really want to have to
learn a new one.

I also like and would consider using any of the BSD family of OS,
having spent a little time using all of them over the years. pkgin
now seems to offer all the functionality of Debians apt package
manager.


### Window manager

Xfce -> i3wm - I started using a tiling window manager to maximize
usable screen real estate and minimise distractions, along with CLI
application replacements for any GUI ones that I happened to still be
using.

I have recently been toying with the idea of giving ratpoison a try.

My typical desktop[0].


### Terminal

xterm -> urxvt - Urxvt is a lot smaller in size and has some nice
extras. It allows you to configure URI recognition so you can click
on URI's in any terminal application to open them. Using this in
combination with a plumber program, which decides on the correct
application to open them with, makes for a very slick integrated
feel: I click on youtube links and it opens them with mpv, I click on
gopher links and it opens them in lynx, http and it opens vimb etc.
Kudos to __20h__ for the plumber utilities.

I use tmux in combination with the terminal application to
essentially give myself virtual workspaces with different
applications so I can easily switch between them. Also it means I can
detach tmux and restart my windowmanager if there's an issue and
reattach without having to re-open everything.


### Editor

Vim - I use vim for everything and use vim keys to control other
applications wherever possible (vimb, ksh, lynx, ...). 

For years I used vim commercially and without a clue as to its power,
not even scratching the surface of its features. 

A text editor is a vital part of your tool kit, invest the time and
learn to use it well.


### Email

Thunderbird -> Mutt - It was a coin flip between alpine and mutt. I
found a few good tutorials on setting up the mutt config file so
after all the time invested in setting it up how I like it, I've
stuck with it.


### RSS

Newsboat -> sfeed_curses - Brilliant RSS feed reader, kudos to
Evil_Bob for such a great piece of software. I use it every day and
it saves me from the tyranny of the WWW by bringing content I'm
interested in to me.


### WWW + Gopher

Firefox -> Lynx/vimb - I find myself using Lynx more and more as it's
a great text based browser which also supports Gopher out of the box.

All modern graphical web browsers are huge and bloated and there's no
way around it. Firefox, I started to have some ethical as well as
usability issues with. Fortunately after a bit of searching, keeping
in mind my love of vim keys, I discovered a webkit based browser
called vimb. For the most part is has been nice to use and has
changed the way I browse the web. I no longer leave lots of inactive
tabs open.


### IRC

Xchat -> weechat


### Music

Rhythmbox -> mocp


### Video

VLC -> mpv + yt-dlp


## Programming languages

Perl was the first programming language I learned, and my general
go-to language, but it has quite a large footprint. There are worse
options, but I know now that there also lighter alternatives. I will
certainly be looking at using Lua in place of Perl for future
projects. Although in the meantime I have found myself using shell a
lot more for small jobs. 

I should also put some real effort into improving my C programming
as many projects are written using it in the open source world.

Forth looks an intriguing, minimalist, low level language, maybe I
will dabble with it a bit too at some point.


## Conclusion

I hope the above will give some inspiration for those looking to
reduce and simplify their hardware and software footprint. If you
manage to have a more focused computing experience or get a few more
years service out of your existing system from anything I've written
then, to me, it's been worthwhile.

If you have any suggestions or alternatives to any of the above
software, that you think I should take a look at, then please get in
touch.


[0](gopher://gopher.icu/I/files/desktop.png)]]></media:description>
	   <pubDate>Mon, 13 Mar 2023 18:58:40 +0100</pubDate>
	</item>
        <item>
	   <title>OCC-day4</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-day4.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge - day 4

I've learned my lesson, to avoid spending the first 10 - 15 minutes
of the day trying to get linux to boot, I'm now leaving the laptop
switched on. The sleep and resume function seems to work well and the
battery also amazingly still holds about an hour of run time.


## lynx

It still didn't build with gnutls and ssl. I must have tried 10 times
now, with various flags and paths, and all I'm doing successfully is
cooking my balls! This thing gets hot!


## Distractions

I decided to fix the NetBSD install on the Pentium Pro machine and
reset the BIOS settings back to optimal in the hope that whatever
caused it to reboot last time and hose the installation won't happen
again. I've installed xfree and a few other bits and pieces. It's
giving me grief over not having termcap for urxvt but that's the
least of my worries at the moment. At least the version of lynx on
there can access HTTPS websites!

I refitted the SCSI card to the Pentium Pro while I was at it and
decided to start scrubbing the old SCSI disks I have laying around so
I can get rid of them. The first 9.1Gb drive is done and the second
one is most of the way through as I write this. Hopefully it will be
done soon because I want to go to bed and this thing is pretty loud.
From down stairs it sounds like there's a small truck running in my
bedroom.

On the positive side it has been running all afternoon and not missed
a beat.


## lynx pt2

I figured maybe the openssl libs which are installed are too old so I
downloaded libressl and tried to compile that. That too fails to
build so it's not looking promising I'll get lynx to build any time
soon. I tried asking on #lynx on libera.chat but no one answered...


## Thoughts

Software dependency rats nests! There's nothing standard about
anything, not even the compression tools used to compress the files
for download. How on earth package maintainers deal with all this and
stay sane, I'll never know!]]></media:description>
	   <pubDate>Fri, 24 Mar 2023 11:37:00 +0100</pubDate>
	</item>
        <item>
	   <title>openbsd.amsterdam-vps</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/openbsd.amsterdam-vps.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# OpenBSD.Amsterdam VPS

So I did it, purchased another VPS and decided to commit to a year
with openbsd.amsterdam. So far I have not been disappointed, the VM
was set up during a holiday! I get regular emails about planned
updates or service additions, nothing trying to sell me anything. I'm
very happy so far.


## Server Migration

If you have read my previous post you would know that I already had a
Linux VPS with A2 hosting. I expected there to be some snags moving
to openbsd but some of them I really wasn't expecting.

Many of my shell scripts would not work without significant
modifications, even though I used mksh on Linux. Many of the problems
were due to GNU extensions to base utilities like sed, awk, date that
I'd inadvertantly used. I got so fed up at one point that I installed
gawk just to have inline file modification.

Firstly I moved my gopher hole and all associated software, there was
a lot more than I realised.. I then moved my git repositories and set
up git.  This transferred everything I was hosting from home which
has allowed me to start shutting down my desktop computer at night
and hopefully save a little on the electricity bill. 

Next I moved my static business website and domain, while leaving the
email where it was. I then copied across the remaining websites,
which included a MediaWiki and Wordpress sites. After that I dumped
the databases and copied those across too.

Getting the websites to work was a little more involved than I
thought. Webservers on OpenBSD (openhttpd and nginx) both run inside
a chroot. Due to the way partitions are assigned on the VM /var
doesn't have much space so I wanted to put the websites on the home
partition. In order to achieve this I had to change quite a few paths
, including that of the php-fpm.sock. It proved to be a bit of a faff
but I got there in the end. Also the database wouldn't connect on
localhost but for some reason worked on 127.0.0.1.

After I got the first site working I, one by one, changed the DNS to
point the domain names to the IP address of the new server. During
this process I set up nsd, which is the OpenBSD domain name server.

I had been meaning to host my own DNS again after I had some issues
transferring my business domain. On transferring the domain from my
previous registrar I had to wait and didn't know when it would happen
exactly.  When the domain did finally transfer none of the zone
information was carried across, resulting in a short outage. It
wasn't the first time I'd had problems like this and I didn't want
that happening again so now I'm hosting it again myself.

All that remains now is to move my email, which I have been
procrastinating over because the last time I did it, things didn't go
so well...]]></media:description>
	   <pubDate>Mon, 15 May 2023 00:42:47 +0200</pubDate>
	</item>
        <item>
	   <title>kindle-offline</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/kindle-offline.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Kindle Offline 

## Privacy

I highly recommend switching off 'whispersync for books' and amending
the 'Privacy' settings of your device.
Better still don't connect it to your WIFI...


## Connect to Linux

Connect your kindle to your computer with a USB cable; the device
should display 'USB Drive Mode'.


Identify the kindle drive using 'dmesg':

    [ 4802.467725] scsi 7:0:0:0: Direct-Access     Kindle   Internal
    [ 4802.468745] sd 7:0:0:0: Attached scsi generic sg2 type 0
    [ 4802.473757] sd 7:0:0:0: [sdb] 6385664 512-byte logical blocks:
    [ 4802.579692] sd 7:0:0:0: [sdb] Write Protect is off
    [ 4802.579705] sd 7:0:0:0: [sdb] Mode Sense: 0f 00 00 00
    [ 4802.689915] sd 7:0:0:0: [sdb] Write cache: enabled, read
    [ 4802.924022]  sdb: sdb1
    [ 4803.169675] sd 7:0:0:0: [sdb] Attached SCSI removable disk


Find the UUID of the device:

    # blkid /dev/sdb1
    /dev/sdb1: LABEL_FATBOOT="Kindle" LABEL="Kindle" UUID="####-####"
BLOCK_SIZE="512" TYPE="vfat"


Add UUID to '/etc/fstab':    

    # Kindle
    UUID='####-####'  /mnt/kindle   auto user,noauto,nodev   0   0


Make directory on the filesystem to mount it to:    

    # mkdir /mnt/kindle


Mount the kindle:    

    $ mount /mnt/kindle 


You can now copy books in .txt or .mobi format directly to the
device; simply copy your files to '/mnt/kindle/documents'.


Unmount the device before disconnecting the USB cable:

    $ umount /mnt/kindle


## Get free books from Gutenberg

I have written a small utility[1] for getting books of the correct
format onto your kindle once mounted using the above instructions.

There is also a daily updated RSS feed[2] of newly added books to the
Gutenberg catalogue which can provide the book number for use with
the above utility. Just take the last number from the resource URI:
gopher://gopher.pglaf.org/1/6/7/6/5/67650

And execute the following command, after installing the utility.

    $ getGutenbergBook 67650 


[1](git://gopher.icu/gutenbergToKindle)
[2](gopher://gopher.icu/0/gutenberg/newbooks.atom.xml)]]></media:description>
	   <pubDate>Fri, 26 May 2023 19:32:14 +0200</pubDate>
	</item>
        <item>
	   <title>Usenet</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Usenet.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Usenet

My earliest memories of using the internet date to around the mid
90's. Back then I was on dial-up, like the majority of people who had
any personal internet access.

The multitude of giant internet and social media companies were in
their infancy and if you wanted to communicate with people regarding
some subject, you would either do it through IRC or Usenet news
groups.


## 90's Dial-up era 

In the dial-up era, every ISP used to provide news servers along with
email servers for their customers. There were newsgroups on
practically every subject and they were very active. I got my first
IT job through a posting on a newsgroup, I also bought and aquired
computers and other hardware through them. Then Yahoo auctions and
shortly after Ebay came to the fore as places to buy and sell.
Myspace became a thing and everyone started making a personal
website...

I don't really know how or why, but newsgroups dropped off my radar 
entirely as everything seemed to be made accessible via the WWW. 


## Escaping 2020's WWW monoculture 

Today everything is provided via the WWW or some app, everything has
converged to that advert, popup, javascript infested mess and mass of
sponsored content designed to keep you engaged and feeding your data
back to the mega-corporations.

In the beginning there were numerous competing and complementary
protocols.  NNTP (network news transfer protocol), gopher, WAIS,
HTTP, FTP, finger, telnet, SMTP, POP, IMAP... Few are those who
actually use them natively any more.

I had already decided I wanted out. I was already partly out due to
my adoption of RSS, gopher and return to IRC, but there had to be a
way of further removing myself. What was it that I did before the
boom of the WWW? Newsgroups, that's where I used to engage with
people on things that I was interested in, or when I needed to know
something that I couldn't find an answer to... 


## Usenet - I'm BACK! 

Firstly no ISP's today seem to provide news servers. If you do manage
to find a free provider, they are few and far between and will
probably not offer the binary groups as this requires so much more
storage and bandwidth. www.eternal-september.org are one of the few
remaining free usenet access providers. Kudos to them for providing 
free accounts for people to access this resource.

After registering for an account I looked for a CLI application to
subscribe to and read the groups. slrn is a common one I believe, but
on initial usage I couldn't get to grips with it. I ended up
installing tin, which somehow seemed more intuitive. I managed to
subscribe to a few groups, some that I remember from years past and a
few new ones that more reflect my current interests.

I decided to send a message to eternal-september.test, to make sure
everything was as it should be, entitled 'Usenet - I'm BACK!'. To my
great surprise I got replies! I had the feeling of stumbling into
some hermitage where the inhabitants were only too happy to have
visitors! My initial happiness unfortunately was all too quickly
replaced by a feeling of melancholy at the dates of some of the last
posts. Some were years previous, others had maybe one or two posts,
that weren't spam, within the last 12 months. I found myself replying
to old posts or posts I normally wouldn't just to generate a bit of
traffic and let people know there were others still out there too.

Usenet was a great resource and can be again. Get yourselves a free
account[1] and reclaim it before it is lost forever.

[1](gopher://bitreich.org/1/lawn/c/newsgroups.gph)]]></media:description>
	   <pubDate>Wed, 14 Jun 2023 12:52:09 +0200</pubDate>
	</item>
        <item>
	   <title>IRCNow</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/IRCNow.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# IRCNow

## Of the Users, By the Users, For the Users

I first became aware of IRCNow through a talk Aaron Lin (jrmu) gave
during Libreplanet 2022[1]. 

I was enticed by both the will to create an open user run network and
also the opportunity to learn more about OpenBSD. At the time I was 
in the process of looking for another VPS provider and considering
moving to openbsd.amsterdam. It appeared to be a great match for me.


## Joining the team 

To cut a long story short I joined their IRC network and introduced
myself to jrmu. We talked for a while and he set up a VPS for me to
do their minutemin training programme. It took me a while as I had
other things going on in the background but eventually I completed
the majority of the training and teams were asked if they wanted
someone to join their team. I ended up being invited to join team
nastycode[2].


## The network

There are 13 servers that should have a team assigned to each. Why
13 you may ask? It was a little while before I learned that it was
because there were 13 founding states of the USA... 

Having 13 servers is actually a bit of a hindrance both technically,
as you obviously need enough staff to man them, and financially. My
objections to this have thus far fell upon deaf ears and partly due
to lack of human resources we have issues with something or other
on an almost daily basis.

The servers are a federation, each team has control of their own
server, runs their own choice of services and the only thing that 
really joins us all together is IRC. I get along with most of the
other admins but seem to have gained the AKA of IronJ for my spirited
arguments with the ones I don't.


## Team server (nastycode.com)

When I joined, the disk usage of the server I am now sysadmin of was
105% on /home and 90% on /var. I didn't actually know it was
possible to go beyond 100%. The disk was so full I couldn't actually
delete large files and had to whittle away at things that looked safe 
to delete until the machine started to respond more normally. 

I found a lot of problems: expired SSL certificates, wrong
permissions on directories that were part of the mail systems
filesystem, backups in peoples home directories, which were also
backed up when /home was backed up. Frankly it was a mess and not
what I'd signed up for. 

I expected to be a junior and have someone to help and guide me with
looking after the server but as it turned out I was pretty much left
to my own devices for 2 days before another sysadmin appeared. 

To be fair though jrmu has been really good in helping out when I've
needed assistance and between us we got most of the critical
outstanding issues resolved pretty quickly.


## Progress

I've ironed out a lot of the niggles on the server. A lot of the
routine stuff is now automated to keep log file sizes sensible and
certificates updated.

Things have gotten better this past week. We have a new team member,
gtlsgamr. He is admin of tildevarsh.in[3], a pubnix system in India.
He was initially coerced by jrmu into helping out with creating a new
wiki for IRCNow but he seemed keen to join a team. Based on the work
I'd seen him do up to that point, I was more than happy to have him
join ours.

We had already talked quite a bit when discussing the wiki so he was
aware of my stance on minimal software and complexity. This has
resulted in us building our own team wiki and website more in line
with our own philosophy; a git repository of markdown files and a
static site generator (mkdocs[4]).


## Join us!

There's never a dull moment over at IRCNow.org, if you're an admin
anyway... Come and join us to chat[5] or maybe even do the Minutemin
Bootcamp[6] training; learn how to admin OpenBSD and join one of the
teams!


[1](https://media.libreplanet.org/u/libreplanet/m/ircnow-of-the-users-by-the-users-for-the-users/)
[2](https://nastycode.com)
[3](https://tildevarsh.in)
[4](https://www.mkdocs.org)
[5](ircs://irc.nastycode.com:6697)
[6](https://wiki.ircnow.org/index.php?n=Minutemin.Bootcamp)]]></media:description>
	   <pubDate>Fri, 16 Jun 2023 23:58:01 +0200</pubDate>
	</item>
        <item>
	   <title>Ode-to-Gopher</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Ode-to-Gopher.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Ode to Gopher

Like many others who's phlogs I have discovered in the gophersphere.
I am frustrated with what the web has become.
I remember the days before broadband and rich media, where text was
king and the signal-to-noise ratio was much greater.
Let us return to those naive days of discovery and wonderment!
Long live gopher!]]></media:description>
	   <pubDate>Mon, 19 Jun 2023 20:07:56 +0200</pubDate>
	</item>
        <item>
	   <title>IRCNow-update</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/IRCNow-update.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# IRCNow update

## All good things must come to an end

After several weeks/months of fighting with uninformed hobby hackers
I finally decided it was a futile effort and to call it a day; I
resigned.

I could go on about all the problems at IRCNow and who was to blame
for what, but it would do no good whatever. The idea is sound, if it
wasn't I wouldn't have put the time and effort into it that I did
for as long as I did. But there are always those in any group that
feel threatened and band together to obstruct the 'movers'[1]. 

[1](gopher://morena.rip/020230618)]]></media:description>
	   <pubDate>Tue, 20 Jun 2023 23:50:18 +0200</pubDate>
	</item>
        <item>
	   <title>Thinkpads</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Thinkpads.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Thinkpads

My personal history with IBM Thinkpads goes back a long way. I am a
serial Thinkpad owner, my first Thinkpad was a 760ED, followed a
while after by a 560 (I loved this machine) that got stolen and then
the R31 that replaced it.


## My previous Thinkpads

I loved the modularity of the 760ED and the ultra-portability of the
560. Unfortunately the R31, although far superior in performance, was
a bit of a letdown. After the R31 I lost my way and in 2005 ended up
purchasing a 12" apple powerbook...


## The return

Of late my tastes have been somewhat retro with regard to hardware
and my love of Thinkpads has never gone away, I even use a Thinkpad
USB Trackpoint keyboard on my desktop computers! 

I had already decided in my mind that I would keep an eye out for a
vintage, yet usable, example if one should present itself. Candidates
were x200 or x61. The x61 reminded me so much of my second love, the
560. With its square format screen it had the perfect retro aesthetic
and was of enough age that it still appeared to have that genuine IBM
quality that has all but been lost since their aquisition by Lenovo. 

With a dual core processor and maximum ram capacity of 8gb I was
pretty sure it could easily meet my meagre mobile computational needs.

I had happened to mention my Thinkpad preference in passing on
#gopherproject and as sometimes rarely happens, the stars aligned.
One of the regulars, lumidify, happened to have an x61s that he
didn't need, which required a battery and harddrive but was otherwise
in good condition and working order. He offered to send me the laptop
and I couldn't refuse. 

A couple of days later he notified me that the package was in the
post and with that I identified a fast 120Gb SSD (Samsung 850 Evo)
and bought the cheapest second hand one I could find on Ebay. 


## Package arrives

I had been waiting in anticipation for the arrival of the laptop and
soon enough there was a knock at the door. I was initially surprised
that I wasn't asked to pay some import tax on the package before it
was handed over. But once the door was closed my attention was fully
on what was inside the box. It had been well packaged, as I'd hoped,
and the charger brick and cable kept separate from the laptop so
nothing got bashed together in transit.

Taking a first look at it, I was amazed how small it seemed, was this
really a 12" screen? It was so slim and light, it reminded me so much
of my 560 that it was love at first sight...


## First inspection

On opening the screen I could see that it was a bit dirty, especially
around the bezel so I got out the foam cleaner, some clean cloths and
a fine boar bristle brush. I first cleaned the power brick, as I'd
been told it was a bit smelly as it had been owned by a smoker. I
gave the cable and plastic housing a thorough clean with the foam
cleaner and cloth. 

I turned my attention to the x61s itself, first cleaning the exterior
and then opening it up to thoroughly clean the screen, bezel and then
keyboard. And there it was, a few scars telling of it's road warrior
life but you could tell that it had been cared for and not abused by
its former keeper.


## Spirit of the machine

Machines like this deserve care and respect. Treated well they will
serve you for decades, if you don't get caught up in stupid fads of
the web and corporate software... OpenBSD and I will be its new
companions, hopefully for many years into the future. ]]></media:description>
	   <pubDate>Wed, 21 Jun 2023 13:45:18 +0200</pubDate>
	</item>
        <item>
	   <title>Advent-of-Computing</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Advent-of-Computing.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Advent of Computing

I don't usually go out of my way to promote something unless it is
truly worthy of note, but recently I have been really enjoying this 
podcast[1]. 

It is well produced and full to the brim with geeky informative
goodness; a must for any retro computing enthusiast!

[1](https://adventofcomputing.libsyn.com/rss)]]></media:description>
	   <pubDate>Fri, 23 Jun 2023 17:34:55 +0200</pubDate>
	</item>
        <item>
	   <title>The-Ascetic</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/The-Ascetic.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[## The beginner

Adopter, adherent, consumer and proliferator of all new things. The
novice is easily lead to new fads in all things tech.


## The intermediate

More cautious, the process of discernment begins to arise. Merits
and weaknesses of all things are weighed. 


## The ascetic 

Only that which is needed is created, the superfluous is discarded. 
Nothing but that which serves remains. ]]></media:description>
	   <pubDate>Sat, 24 Jun 2023 21:33:18 +0200</pubDate>
	</item>
        <item>
	   <title>OCC-July-2023-Prep</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/OCC-July-2023-Prep.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# OCC July 2023 - Preparation

The last time I did this challenge I did it with practically no
preparation. I just made sure the machine I had intended to use
actually switched on the previous day.

On that occasion[1] I quickly realized that this lack of preparation
had been a huge mistake and so was keen to avoid the same suffering I
had during the last challenge.


## My champion

I intend to do this challenge using a somewhat revised configuration
of 'Grouch'[2]. This is a 1996 dual pentium pro 200Mhz system with
256Mb of RAM and an 8Gb CF card as the HDD; I will likely add a
soundblaster ISA card. The operating system is currently a fairly
bare install of NetBSD. This will change throughout the challenge as
I try to construct a workable environment for my computing needs
around the limitations of the hardware.


## What's the point?

The point of my participation is two fold:

1) Proving actual old hardware can still provide the majority of
every day needs.

2) Maybe the hardware limitations will force me to some software
choices and solutions that I hadn't before considered.


[1](gopher://gopher.icu/0/phlog/Computing/OCC-conclusion.md)
[2](gopher://gopher.icu:70/0/phlog/Computing/Unnamed-4U-computer.md)]]></media:description>
	   <pubDate>Wed, 28 Jun 2023 14:27:32 +0200</pubDate>
	</item>
        <item>
	   <title>Smart-terminal-not-client</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Smart-terminal-not-client.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Smart Terminal - not client 

For some time I have been using what is referred to as a plumber
program. This is a program which decides which application to open a
file with based on its URI type and file extension. For example
gopher:// links open in my chosen gopher client, http:// links in my
chosen web browser, image files in my chosen image viewer etc...

Used in combination with a terminal application which supports URI
matching, like URXVT, it has effectively given me the ability to open
links in any terminal application. This also has the added benefit of
making ordinary text files into interactive documents[2].


## Putting it together

1) Download and install the plumber[1] program.

2) For URXVT add the following to your ~.Xresources file:

	URxvt.perl-ext-common: default,matcher
	URxvt.matcher.button: 2
	URxvt.matcher.launcher: p $0
	URxvt.matcher.pattern.1: \b(\w+\:\/\/\S+)\b
	URxvt.matcher.launcher.1: p $1
	URxvt.keysym.Mod1-Shift-M: perl:matcher:list
    
Line 4 above adds matching of any URI to URXVT. Line 5 passes the
matched URI in $1 to p which is a symlink to the plumb script. 

Button 2 is middle click and can be used to click on links to cause
them to open using the plumber; alternatively you can use alt+shift+m
to display a numeric menu of links that can be selected by pressing
the respective number of the link.


## Update 12/07/2023

I had written a few patches for the plumber in the past but after
this last install I wasn't particularly happy with calls to unknown
programs being hidden away in the opener files. In an attempt to
improve this I wrote a patch to require specifying the more common
programs as environment variables.

.xsession:

    ...

    # plumber programs
    export XTERM='urxvtc'
    export PLUMB_IMAGE='feh -F --auto-rotate'
    export PLUMB_MEDIA='mpv'
    export PLUMB_GOPHER='gopher'
    export PLUMB_TXTGOPHER='gopher'
    export PLUMB_PDF='xpdf'
    export PLUMB_FILEMANAGER='ranger'
    export PLUMB_WEB='lynx'
    export PLUMB_TXTWEB='lynx'

    ...


[1](git://r-36.net/plumber)
[2](gopher://gopher.icu/I/images/interactive.png)]]></media:description>
	   <pubDate>Thu, 13 Jul 2023 11:26:11 +0200</pubDate>
	</item>
        <item>
	   <title>grouch-occ-prep</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/grouch-occ-prep.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Grouch OCC prep 

## Hardware

Grouch[1] with the following additional hardware:

IDE
* 8Gb CF card with IDE to CF adapter (found to be faulty so added PCI
  SCSI controller and SCSI HDD)

PCI
* Matrox Millenium G450 GFX (replaced with Nvidia GeForce FX 5200)
* Realtek 8139C generic 10/100NIC (replaced with Netgear 10/100)
* Belkin USB 2.0 card (USB header on motherboard doesn't work)
* SCSI controller (added after CF card found to be faulty)

ISA
* Soundblaster AWE 64 ISA sound card (removed as caused hang in X)


## Software

* vim
* ratpoison
* urxvt (missing terminfo on NetBSD)
* gopher (crashes in X on OpenBSD)
* lynx (SSL error: unable to get local issuer cert .. NetBSD)
* mpg123 (never used this befoe but moc looks ugly out of the box)
* git
* mutt (compiled without sidebar on NetBSD)
* xnotify 



## Software configuration and optimisations

### Fixed size fonts 

This may sound bizarre but it was actually the biggest single
usability improvement I made. When I installed X it seemed usable but
after I copied my .Xresources file over from my other system, which
included xft:dejavu sans mono with antialias things really did start
to chug and I didn't realize the issue straight away so persevered
with it. That was until I was chatting on IRC and the annoyance of
watching each line shuffling up the screen like a caterpillar became 
too much to bear!

.Xresources 

    URxvt.termName: rxvt
    URxvt.cursorUnderline:                false
    URxvt.cursorBlink:                    true
    URxvt.font:                  x:9x15,xft:FontAwesome:style=Regular
    URxvt.boltFont:              x:9x15B,xft:FontAwesome:style=Bold
    URxvt.scrollBar:                      false 

    ! map ctrl+shift+c/ctrl+shift+v to copy/paste
    URxvt.keysym.Shift-Control-V:         eval:paste_clipboard
    URxvt.keysym.Shift-Control-C:         eval:selection_to_clipboard

    URxvt.perl-ext-common: default,matcher
    URxvt.matcher.button: 2
    URxvt.matcher.launcher: pj $0
    URxvt.matcher.pattern.1: \b(gophers?\:\/\/\S+)\b
    URxvt.matcher.launcher.1: pj $1
    URxvt.keysym.Mod1-Shift-M: perl:matcher:list


### urxvt in daemon mode (urxvtd + urxvtc)

This improves the speed of launching new terminal instances maybe at
the expense of stability, not that I have noticed any issues.
To facilitate this I started the daemon in .xinitrc and then exited
it again with a hook in .ratpoisonrc. As long as you :quit ratpoison
properly then it will kill urxvtd.


.xsession:

    xrdb ~/.Xresources
    setxkbmap -option caps:escape
    urxvtd &
    ratpoison


I was a bit annoyed that I had to specify the keymap again after
setting it up during the NetBSD install. On OpenBSD it works
correctly for both terminal and x.  Also terminfo was not configured
for urxvt and I had weird colour issues that I didn't have on OpenBSD
, even after following the recommendation to 'export TERM=rxvt'.


.ratpoisonrc:

    bind c exec /usr/pkg/bin/urxvtc
    addhook quit exec pkill urxvtd
    set fgcolor orange
    set bgcolor black
    set barinpadding 1
    set padding 0 20 0 0
    set msgwait 0
    set startupmessage 0
    set winliststyle row


## Conclusion

There are annoyances with both NetBSD and OpenBSD.

OpenBSD:
    1) Really slow bootup due to relinking (fixed by modifying
    /var/db/kernel.SHA456 - make last hash char a comment)
    2) X doesn't launch properly and I have to switch between VT 1
    and VT 5 each time I launch it to be able to see the DM. (fixed
    by changing GFX card)
    3) Sometimes the DM shows corrupted fonts and the cursor as a big
    square fuzzy block (HW conflict?). (fixed by changing GFX card)
    4) Annoyingly displays console log on DM and then again when you
    start the WM. (fixed by editing /etc/X11/xenodm/Xsetup_0)

NetBSD:
    1) set hostname but on reboot back to localhost
    2) Similar corruption of fonts sometimes when launching X
    3) missing certs in lynx
    4) mutt compiled without sidebar
    5) No proper termcap for urxvt
    6) After specifying dvorak keymap on install, I had to add it to
    .xinitrc as for some reason it went back to qwerty 
    

Currently I'm not sure whether to go back to OpenBSD. I was expecting
performance of NetBSD to be a lot better but it's actually not...
Just the lengthy post boot relinking annoyance and the having to
switch back and forth between VT's to get X to display are the main
concerns to switching back.


## Update 8/7/2023

I reverted back to OpenBSD and have managed to resolve the previously
mentioned issues. Fixes have been listed above next to the issue.
Unfortunately I discovered another issue which was that the ISA sound
card would hard hang the system if I tried to use it while in X. For
some reason it was fine using it from the terminal but once X was
started it would cause it to hang. I tried removing all the other
cards and also using different GFX cards but to no avail.

Unfortunately this meant that I now needed a free PCI card for sound,
as I didn't have another ISA card, and I didn't have one due to
having to us a PCI SCSI controller because of the faulty CF card...


## Update 9/7/2023

I had to make a call between going the week without sound or buying a
replacement CF card so that I could revert to IDE and free up the PCI
slot currently occupied by the SCSI controller.
CF cards are expensive for the capacity so I was reluctant to buy one
but it actually seemed like the only sensible option. I had already
made the decision to sell off my SCSI drives and cards. Continuing to
use them was just adding to my procrastination over selling them.


## Update 10/7/2023

It was late in the day when the replacement CF card arrived but
arrive it did so I set to work. First I wiped the old CF card and a
small IDE drive I'd used to check if there was a problem with the IDE
controller. I fitted the new CF card and attempted to start up the
machine but it was a no-go. The bios seemed to recognize the card as
an ATA device but at that point it hung and would proceed no further.
I tried reconnecting it and restarting the machine a few times to be
sure but it wasn't going to work.

I conceded that I would have to do the challenge using the SCSI
subsystem so I reconfigured it to boot from that. While in the
process I remembered I had an external USB sound card. It certainly
wouldn't hurt any to give it a try. I was surprised that OpenBSD
recognized the card on boot and on testing I was able to play sound.
This meant I wouldn't have to do the challenge without audio; some
small relief.


[1](gopher://gopher.icu/0/phlog/Computing/Unnamed-4U-computer.md)]]></media:description>
	   <pubDate>Wed, 12 Jul 2023 23:54:57 +0200</pubDate>
	</item>
        <item>
	   <title>Old-Computer-Challenge-July-2023</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Old-Computer-Challenge-July-2023.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Old Computer Challenge July 2023

## Day 1

Day one was a bit of a write off due to me not wanting to start
investing time in setting up the software on the machine as I thought
I would have to start from scratch once the CF card arrived. I had
some basic settings that I'd worked out during my preparation[1] for
the challenge that would give me a good starting point.

Toward the end of day one the CF card arrived but sadly the computer
didn't like it and would hang after the point of identifying it as an
ATA device. To cut a long story short I ended up back on the SCSI
subsystem and with an external USB sound card, so at least I had
audio for the week.


## Day 2

Tuesday was mostly filled with configuring software. I had some
annoying display issues with urxvt that I coudln't seem to resolve
and also the plumber[2], which I like so much, wouldn't open any of
my links. I figured this was down to the environment not being
correct. I was a bit disappoited by the end of the day and felt I
hadn't made much progress. 

Highlight of the day was probably discovering I could take
screenshots without installing additional software, after installing
mpv anyway...

    ffmpeg -y -f x11grab -s 1920x1200 -i $DISPLAY -vframes 1 -vf
    scale=1280:-1 screenshot.png


## Day 3

Today was a better day. I finally resolved the display issues with
urxvt and the problems with the plumber. Both issues were down to the
environment not being set correctly. The soultion in the end was
adding '. ~/.kshrc' to .xsession so that the environment variables
etc were properly set before the window manager was started. I think
the display issues were down to no defined locale settings.

.kshrc:

    export PATH=$PATH:$HOME/bin
    export LC_ALL="en_US.UTF-8"
    export LC_CTYPE="en_US.UTF-8"
    export LANG="en_US.UTF-8"
    HISTFILE=$HOME/.ksh_history
    set -o vi

    alias S='function ddg { lynx "https://lite.duckduckgo.com/lite?q=$*";
    }; ddg'
    alias W='function wik { gopher -p lookup -T 7 -i "$*"
    gopherpedia.com; }; wik'

    export EDITOR=vim


.xsession:

    . ~/.kshrc

    # plumber programs
    export XTERM='urxvtc'
    export PLUMB_IMAGE='feh -F --auto-rotate'
    export PLUMB_MEDIA='mpv'
    export PLUMB_GOPHER='gopher'
    export PLUMB_TXTGOPHER='gopher'
    export PLUMB_PDF='xpdf'
    export PLUMB_FILEMANAGER=''
    export PLUMB_WEB='lynx'
    export PLUMB_TXTWEB='lynx'

    xrdb -merge ~/.Xresources
    xsetroot -solid black
    setxkbmap -option caps:escape
    urxvtd -q -f -o 
    ratpoison


I managed to get a bit of work done today too. Several updates to
my phlog, including:

    * Addition of index file for /phlog directory to list all posts
    * Removal of '-' and '.md' from post titles
    * Update to 'grouch occ prep'[1] post to cover final hardware
      changes
    * This post

In addition to this I made some code changes to the plumbing program
and subimitted a patch for those changes. That is the reason for the
PLUMB_\* environment variables above. I pulled several of the hard
coded program names out of the individual opener files and made
environment variables for them to be defined.

Outstanding issues:

    * Problem with mpv/ratpoison stretching the display of small
      format videos
    * Seemingly no hw acceleration in mpv with this nvidia fx5200
    
Both of the above issues make watching video practically impossible.


## Day 4

I spent most of the morning wrestling with mpv and eventually came up
with some settings that worked acceptably with ratpoison; to stop it
from stretching the videos and to completely black out the rest of
the window.

.confif/mpv/mpv.conf:

    --video-unscaled
    --no-keepaspect-window
    --ytdl-format="best*[width=640]"

The last line is just to tell yt-dlp which video format to fetch. 640
wide is about all this thing can manage without hardware acceleration
which I have, so far, been unable fix.

Having checked the Xorg.0.log I can see that the card is using the
'nv' driver for my NVIDIA GeForce FX 5200. But there is a notice that
explains my lack of hardware acceleration: AIGLX: Screen 0 is not
DRI2 capable

Today I considered installing my Usenet and RSS clients, but I
resisted the impulse to do it. There is a certain tranquillity that
exists as a side effect of my current hardware limitations.

I spent some time reading other peoples experiences on gopher,
listened to a podcast and got my K&R C book out of my book case with
the aim of beginning at the beginning, for about the third time, and
progressing my way through the exercises in the book. 

hello.c:

    #include <stdio.h>

    int main()
    {
        printf("Hello, world!
");
    }


## Day 5

Well, I started out with the intention of continuing with my C
exercises but somehow that was put asside quite quickly. 

Quarry[3] became the focus of the day as I was very aware that I'd
neglected it for some time. I hadn't re-indexed any of the sites I
had already in there for months and I had never gone back and removed
dead links. That was something I had intended to fix some time ago
but hadn't got around to. 

I managed to crash my webserver while running the re-indexing script,
that caused me a bit of a panic as I had to login to the vm host for
the first time and use vmctrl. It was all a bit daunting as I
couldn't email for help as my email is hosted on the server doh! 

This is the first day that I've just used the computer without making
any tweaks to configuration or adding any software.


## Day 6 and 7

Not much to report really. I spent day 6 continuing my work on quarry
and most of day 7 I was out. When I did return home I continued my
work on quarry and read about the experiences of other people taking
the challenge, on gopher of course!


## Conclusion

I didn't get off to the best start in spite of putting about a week
into preparing the system I intended to use for the challenge. 

I was surprised that OpenBSD performs as well as it does on this
system. I fully expected NetBSD to be my only option but OpenBSD was,
for me anyway, a much more polished experience.

Unfortunately I didn't manage to get hardware acceleration working or
I may well have been able to prove youtube to be watchable at low
resolutions.

It was nice to have a fresh setup for the first time in several years
to experiment with. I had used ratpoison for my last challenge
earlier in the year but hadn't put much effort into configuring it
last time. In the end I found myself using tmux as my window manager
and ratpoison windows as virtual desktops; one for local and one for
my vps.

The temptation to install tin (for usenet) and sfeed (for rss/atom
feeds) was resisted so I was better able to stay focused on doing
something useful. The older system has just enough latency to make
you consider more consciously what you are about to do. 

When all is said and done, I have quite enjoyed the challenge on this
occasion. I have proved that I can be productive using this 27 year
old computer and I don't feel that I have been lacking for anything.

    
[1](gopher://gopher.icu/0/phlog/Computing/grouch-occ-prep.md)
[2](gopher://gopher.icu/0/phlog/Computing/Smart-terminal-not-client.md)
[3](gopher://gopher.icu/0/phlog/Computing/Quarry.md)]]></media:description>
	   <pubDate>Mon, 17 Jul 2023 01:26:42 +0200</pubDate>
	</item>
        <item>
	   <title>Quarry-gopher-search-engine</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Quarry-gopher-search-engine.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Quarry gopher search engine

Quarry[1] began life somewhere in the middle of 2021. After spending
several weeks working on it and getting it reasonably functional,
something undoubtedly happened which took my focus away from it.
Since that time I hadn't really invested any time in it.

I hadn't re-indexed any of the sites I had already in there for
months and I had never gone back to remove any dead links. That was
something I had intended to fix some time ago but hadn't got around
to.

To cut a long story short, towards the end of last week the subject
of Quarry came up and I found some time and motivation to put into it
once more.


## Re-indexing

To begin with I ran the indexer against the existing hosts that I had
in the database. This was unbearably slow and took the best part of 3
days to complete. When it was complete I found several problems with
the data that it collected.

I had some rogue strings (\xC2\x80\xC2\x98yo...) breaking my database
inserts. I thought this may have been cured by setting up the perl
script to use utf8 for input and output but it doesn't appear to have
made much difference, if any. A bit of modification to various sleep
times that I'd put in various parts of the indexing code however,
made a big improvement to the speed.

I had made some small database change to set an update date stamp
whenever a selector was added / updated so that I could spot ones
that hadn't been updated after an indexing run and remove them. This
gets rid of stale links collected from menus but currently there is
no checking before adding selectors to the index.


## Search results

There was a lot of junk collected during the initial re-indexing. In
order to deal with this I modified the rudimentary filtering that I'd
created first time around and extended it with more filters as I
manually trawled through the database and also from what I was seeing
in search results. I also wasn't happy with what was being returned
to searches, the results didn't seem particularly relevant in spite
of my using a fulltext search index. It turns out that I had also
indexed the selector itself, probably not the best idea. Having
removed that index and matching only on the title, the search result 
relevancy improved quite a lot. This also had the added benefit of
reducing the number of results returned.


## Future indexing

I created a script to take all of the hosts and iterate through them,
checking they are active before running the indexer against them and
finally removing any selectors that weren't updated, meaning they
were no longer present on the site. I ran this a couple of hours ago
and the total indexing process took 6 hours and 44 mins, a bit better
than the 3 days it took previously. Now that this is working I will
put it on a cron-job and run it once a week. 

If you have a site and don't want to wait, there is an API feature
you can use to request spidering or you can add your URL through the
search interface[2]. 


## To Do

    * Fix the rogue characters breaking my inserts
    * Extend filters so they can be restricted by host
    * Verify selectors before including in index


[1](gopher://gopher.icu/0/phlog/Computing/Quarry.md)
[2](gopher://gopher.icu/1/quarry)]]></media:description>
	   <pubDate>Thu, 20 Jul 2023 00:36:25 +0200</pubDate>
	</item>
        <item>
	   <title>Darkmode-Saves-Power</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Darkmode-Saves-Power.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Darkmode Saves Power

I had a thought recently after changing the background colour of my
terminals and desktop wallpaper to black due to getting eye fatigue.
It got to the point where my left eye would weep and due to this it
got very sore. Often, late in the evenings, I could feel my eyeball
going into spasm; not a pleasant experience!

Because it made such a difference to my eyes and was noticeably less
bright I pondered how much less energy was being used due to the
black background, so I did a little test.

I connected a power meter to the 24" IPS screen and monitored the
wattage. Firstly with a white background (10.1w) and again with a
black background (8.3w); a saving of 1.8w.

Now 1.8w doesn't seem like much. However, like anything that's
switched on for long periods of time, it all adds up! For mobile
devices with limited portable power, this can also make a significant
difference to run time...]]></media:description>
	   <pubDate>Wed, 26 Jul 2023 13:09:53 +0200</pubDate>
	</item>
        <item>
	   <title>4G-Challenge</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/4G-Challenge.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# 4G Challenge

I've been with my current ISP, even though it has changed names
several times, for over 20 years. Unfortunately over recent years
they have continually increased the prices and more recently it is
even in the terms that they can increase the price during the
contract! We are now paying a discounted price of 32Gbp per month. 


## Playing the game

A little under 18 months ago, just as our contract was about to end,
we had done some looking around and there were cheaper alternatives.
None of them could match the outright speed of my current connection,
but I don't believe I needed that amount of speed in the first place.

We were all set to leave, but they offered to match the price of my
proposed replacement provider and let me keep my existing service. It
seemed like a win, no need to change anything and I get the price
match. Unfortunately I didn't consider the in-contract price rises
which means my cushy 25Gbp a month deal turned into the current 32Gbp
about half way through the contract.


## Falling cost of mobile broadband

I'm not falling for the same thing again this year so I am determined
to leave. Over recent years a lot of investment has been made into 4G
and 5G technology and I am always seeing adverts regarding its speed,
which now largely rivals some of the more basic fixed fibre
offerings. Pricing has also fallen dramatically and unlimited data
SIMs are available for around 20Gbp a month. I happened to spot a
good deal of 16Gbp a month for the first 12 months and so got myself
a SIM card, along with a 4G modem, to see if it could be a viable
replacement for my fixed broadband; before my current contract ends.


## 4G Setup

I'm using a Proroute H685[1] 4G industrial router, which I purchased
second hand off Ebay, and a SIM with unlimited data on the 3 network.

I've been using this setup for the last couple of days and apart from
the occasional bit of lag, it is performing very well. Even my
Eurosport streaming subscription seems to be working without any
problem at all.

Speed[2] of the connection seems to fluctuate but even with the
standard antennas I get around 20mbits down and 10mbits up. If things
work out then maybe I'll invest in an outdoor antenna to try to
improve the signal a little.


[1](https://proroute.co.uk/proroute-4g-routers/proroute-h685-4g-lte-router/)
[2](gopher://gopher.icu/I/images/4g-speedtest.png)]]></media:description>
	   <pubDate>Wed, 26 Jul 2023 17:49:57 +0200</pubDate>
	</item>
        <item>
	   <title>Computer-Upgrade</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Computer-Upgrade.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Computer Upgrade

I have been using a HP N54L Microserver as my daily driver for about
8 years. It's a small square unit that doesn't consume much power
(56w idle), has been installed with 4Gb of RAM, 2x 2Tb WD Red drives
and a HP p410 battery backed raid card with 512mb cache. It also has
a low profile soundblaster sound card to provide sound.

The machine has served me well, but as time has gone on the fact that
it is a non-standard form factor has been an increasing concern to
me. If you have read any of my posts about hardware preferences[1]
you would know that I advocate for standard ATX form factor computers
because replacement parts and upgrades are far more readily
available.

I have had a more powerful computer sat idle for some time in the
form of a 4U rack server case which holds standard ATX components.
After it stopped being my webserver, when I moved hosting to a VPS 4
years ago, I bought a 3Ghz core 2 duo motherboard bundle with 4Gb RAM
off Ebay quite cheaply to replace the Abit BP6 which had several
leaking capacitors. Since puting it together I've added a further 4Gb
of RAM and then done nothing more with it.

Now seemed like a good time to put that more powerful system into
service, if I could transfer the raid system across from the HP and
ensure it would run reliably.


## Xeon modification

I had been aware that it was possible to fit a socket 771 Xeon
processor to some of the 755 boards, with a little modification.
Some months ago, after a little research, I had decided to purchase
an E5450 Quad Core Xeon to attempt this modification. This is a Quad
Core 3Ghz CPU with 12Mb of cache.

The 771 socket is a little different to the 755 so requires you to
buy a little sticker to reverse two of the pins on the CPU, you also
need to file 2 new grooves into the CPU, or remove the locating tags
from the CPU slot on the motherboard. I didn't fancy potentially
ruining the motherboard attempting to cut off the locating tags so I
took to filing the CPU instead. It took a few trial fittings and
repeated filings to get it to fit nicely but after a little work it
fitted well. The sticker was a little fiddly to get perfectly aligned
with the pins but also went without a hitch.

I refitted the CPU fan after cleaning both the top of the CPU and the
heatsink face with IPA and applying a thin film of arctic silver 
thermal compound. Firing up the PC was a bit nerve racking as I had 
never tried this before. The computer bleeped and then powered off, I
thought maybe something was up with it but pressed the power again
just in case. I saw some warning about the bios battery, it had
obviously died since I had last used the machine but it proceeded
through the boot sequence and appeared to show the correct CPU
values. There was an old install of Debian on the HDD which it
proceeded to boot. Checking 'cat /proc/cpuinfo' showed that there was
indeed a Quad Core Xeon fitted[2].


## Waiting on a mini SAS cable

So the machine appears to work, but in order to move the raid
subsystem from the other machine I need a mini SAS cable. I have one
on order and it should be here in the next couple of days.

Further updates will follow.


## Update 01/08/2023

The SAS cable finally arrived this morning. I hurriedly pulled apart
the HP microserver to get out the hard drives and raid card that I
needed to transplant into the Xeon. However, there was just enough
doubt in my mind not to proceed with cutting the cable ties securing
the cache battery to the chassis. 

Assembly of the components was simple as I had already refitted the
hot swap SATA drive bays and the raid card was just a PCI-E card slot
secured with a single screw. The cable was a little tricky as there
wasn't much space at the back of the drive bays.

I powered on the machine, but there was no display. I didn't remember
having any problem with HDMI previously but just to rule it out I
tried the DVI port, with the same result. I decided to check the BIOS
to see if there was anything. I noticed that there was a setting for
video which was set to auto detect, you could select internal or
PCI-E. I wondered if it had gotten confused by the raid card so I set
it manually to onboard. Rebooting again resulted in the same black
screen. I pulled out the raid card and tried again. This time I got
the boot screen. This proved there was no issue with the display so I
refitted the raid card and disconnected the cable in case this was a
source of the problem. Still there was no display.

For whatever reason the system doesn't seem like the HP p410 raid
card. I fitted my old PCI 3ware raid card, which has no cache or
battery back up, to see if this worked; and it did. I continued to
fit two 200gb drives that were previously in the same chassis when it
was my former web and email server. This made it into a usable system
but not the one I had hoped for.

There was nothing more I could do but clean up the inside of the HP
microserver and refit the parts I'd taken out. Thankfully everything
worked just as it had before when I came to power it on again.

I was honestly quite disappointed at this point. I'd spent the
morning stripping down a perfectly serviceable computer to transplant
the best disk subsystem I own into the most powerful computer that I
own, only for it to fail to work. 

I've since installed OpenBSD on the Xeon machine and done a little
configuration. I'm actually writing this post on it, but I really
don't know what I will do with it in the long term... 


## Update 04/08/2023

To cut an ever longer story short. I bought an Adaptec ASR-5405Z
512mb cache SAS raid controller off Ebay for 11Gbp. I was already
quite heavily invested in this thing so I thought, what's another
11Gbp? I hoped that this generic raid card would not have the same
conflict as the HP one and that life would be good again, but I also
braced myself for the fact that it too may not work for the same
reason as the HP raid card.

Well, I fitted the card and connected it up with the SAS cable I had
bought to connect the drives to the HP controller and ... Blank
screen, same as the HP controller. I wasn't about to give up and
thought there has to be something I can do. So I removed the raid
controller and set about downloading BIOS updates. After several
attempts I managed to make a bootable CD with the necessary software
on it. Everything looked good but it just seemed to hang at the point
of writing the first part of the update, I left it for quite some
time as I didn't want to interrupt it if it was actually writing data
but after some 20 minutes of it sitting there with the power light
blinking and the screen stuck at 'writing intel me...' I decided to
pull the plug. Next I managed to put a bios update file on a USB
stick which could be read if it was vfat with the file on and
accessed from the built in 'f7' bios update menu. It stuck at exactly
the same place in the same way.

I was getting pretty desperate by this point so I pulled out the xeon
and put the core 2 duo back in to see if this made any difference; It
didn't. Last resort, RTFM. So I started digging through the
motherboard manual and stumbled upon the following passage:

```
    When a non-video PCI Express add-in card is installed in the PCI
    Express x16 connector on the Desktop Board, the HDMI port is
    disabled.

```

"You've got to be kidding!!" so I found myself a dvi -> vga adapter
and put the raid card back in and tried again. It worked!

What a palava! I'd been pulling my hair out all because the HDMI
connector is disabled if you fit a card in the pci-e x16 slot. Just
to be sure I connected the SAS cable and configured the drives. Sure
enough everything worked as it should and the day, and my sanity, has
been saved!


## Update 09/08/2023

The saga continues. After my last update it seemed that I was home
free and only had to install my OS. Well unfortunately that wasn't
the end of it. I tried to install OpenBSD but it turns out there is
no driver support for that card (adaptec ASR-5405Z). I was back to
square one...

At this point everything came into question, should I install
FreeBSD which does have a driver? Should I just go back to Linux
which also has a driver, or should I just go back to my old computer
with OpenBSD as I could see that the p410 raid card was supported? 

I tried the p410 raid card in the Xeon for a second time and it
seemed to work at first, I could see it initializing the raid. But
just as I thought I was out of the woods, and it should have started
reading from the disk, the screen went a light grey and everything
appeared to hang. I tried a couple more times just to be sure it
wasn't some weird timing issue but to no avail.

I actually conceded defeat at this point and installed OpenBSD to the
HP microserver but the pci-e Sound Blaster sound card wouldn't
work... 

Now more determined to stick with the plan, I put the 3ware raid card
back in the Xeon and began to use it to make sure it was going to be
viable as my daily driver. Everything appeared to work OK and it was
fairly snappy, apart from some noticeable lag of the disk subsystem.

As I saw it I had 3 options:
    1) Buy a supported SAS raid card, knowing I would lose HDMI 
    2) A hybrid system - SSD for OS and PCI raid with HDD for storage
    3) SSD only - ditch the raid, small SSD for OS and second bigger
    one for storage 

In an attempt to speed the system up, future proof it and reduce its'
energy consumption; I have decided upon option 3. This will consist
of one 120Gb SSD main drive and a 500Gb SSD for storage. i

I can't realistically ever see myself filling 2Tb. I managed to back
up everything I have onto the 500Gb SSD with quite a bit of space to
spare and I know there is a lot that could be deleted...


[1](gopher://gopher.icu/0/phlog/Computing/Stop-IT-waste.md)
[2](gopher://gopher.icu/I/images/xeon.png)]]></media:description>
	   <pubDate>Thu, 10 Aug 2023 02:49:52 +0200</pubDate>
	</item>
        <item>
	   <title>Low-power-computing</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Low-power-computing.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Low power computing 

If you have been reading along with my adventures lately, you will be
aware that I had been upgrading one of my old ATX machines[1] to be
my new daily driver and things hadn't been going too well. Having
gotten the machine to a useable state I put it on the power meter to
find it was drawing 68w at idle, which jumped to around 100w when
scrolling around in firefox-esr. 

I really wanted this machine to be my forever system that I would
simply upgrade and repair as time went by, but 68w ticking over is
quite a lot. The HP microserver comparatively was 56w. Could I save
10w by removing the spinning rust and raid card? Possibly...


## Mighty Atom

I can't remember the exact motivation for my next move but I had an
old asus eeebox b202 which had previously been my mom's. After she
had finished with it I had installed FreeBSD and used it for about 8
months, after upgrading the memory in it to 2Gb. From memory it
wasn't exactly fast, as you'd expect from a 1.6ghz Intel Atom, but it
was perfectly usable. I had earlier in the day checked the specs and
had noted the maximum video output was 1600x1200, which was a bit of
a disappointment as I have a nice 1920x1200 24" monitor. Undeterred I
fetched it from its resting place, connected it to my monitor &
keyboard and fired it up. 

It booted into FreeBSD and to my amazement it was at 1920x1200 when I
checked xrandr. After a futile attempt to update FreeBSD (no idea why
I even tried) I made an i386 miniroot USB stick to install OpenBSD. I
have done this quite a few times recently so it didn't take long,
especially now my all my dotfiles are in a git repo and easily
deployed with stow. It was disappointing to discover there was no
firefox-esr in i386 OpenBSD and I had to seek an alternative for
those times I really must use the web. Ungoogled-chromium seemed like
a viable option so I installed it to give it a go. It was just a bit
too slow and clunky to be tolerable. On checking the power meter I
noted that the system was drawing only 17w... 

Encouraged by the fact that everything worked so well out of the box
with OpenBSD and that the system only consumed 17w, I pondered what I
could do to make it a potential daily driver. The next day I would
take delivery of a 120Gb SSD meant for the xeon...

When the SSD arrived I had already decided to try it out in the Atom.
Removal of two screws allows the HDD tray to slide out revealing four
more screws to remove the drive. I went through the same installation
procedure as the previous day and in under 20 minutes I was back at
the point where I could again try out ungoogled-chromium. The SSD had
pepped the machine up quite a bit, booting was noticeably more speedy
and everything seemed that bit more responsive. Chromium certainly
wasn't fast, but it was at least now tolerable. Just enough
sluggishness not to make you want to do too much on the web; it was
perfect! I used it for the rest of the evening.

This morning I took it apart and made a new BIOS battery[2], as the
old one had died forcing me to reset the date every time I unplugged
it. With the new SSD, and a second one plugged in via USB, it draws
just under 16w and does everything I need[3]. 


[1](gopher://gopher.icu/0/phlog/Computing/Computer-Upgrade.md)
[2](gopher://gopher.icu/I/images/asus2.jpg)
[3](gopher://gopher.icu/I/images/asus3.jpg)
 ]]></media:description>
	   <pubDate>Thu, 17 Aug 2023 14:57:42 +0200</pubDate>
	</item>
        <item>
	   <title>Do-more-with-less</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Do-more-with-less.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Do more with less

We have been convinced that more and newer is always better, faster,
more convenient, which if you're in the business of selling products
is exactly what you want. But in the interests of personal
development and sustainability I have actively been pursuing the
opposite.

In the modern world we are suffocated with choice, from toothpaste to
programming languages, and constantly bombarded by technology vying
for our attention.

The more stuff you have the greater the burden of ownership and the
less time and attention you can give to any one thing.


## Computer downgrade

I recently downgraded[1] the computer I use daily to one that is
adequate for my needs and consumes just 16w of power[2]. This wasn't
really a planned downgrade at the outset but rather the result of
some experimentation and long held philosophy regarding
sustainability and minimalism. 

I have been using the system for over a week now and it is adequate
for how I use it. Though I realize such a system would be impractical
for most due to their software choices.

Web browsing is possible using ungoogled-chromium, the sites that I
have needed to use, for online banking or ebay, have all been quite
slow but usable. This is more of a feature than a problem as it makes
browsing the web tedious and so it is kept to a minimum.

Mostly my local system is used much like a terminal, with many of the
internet applications (Email, IRC, Usenet and RSS feed reader)
running on my VPS. My thinking here was that, if I needed access to
the internet to use them, they might as well exist on my VPS which
reduces the amount of configuration and software I need on my local
system(s).


## Software footprint

For a while I have been actively trying to use lighter weight
software for my daily tasks and have migrated from heavy GUI
applications like Thunderbird, VLC and Rhythmbox to lighter TUI
alternatives.

I typically use:
 * mutt      - mail client
 * tin       - Usenet news reader
 * sfeed     - RSS/Atom feed reader
 * irssi     - IRC client
 * gopher    - gopher client
 * lynx      - text web browser
 * feh       - image viewer
 * mpg123    - audio streaming / local mp3 playing
 * mpv       - video streaming
 * urxvt     - terminal
 * tmux      - terminal mutiplexer
 * vim       - text editor
 * apvlv     - pdf viewer
 * ratpoison - window manager

My operating system of choice is now OpenBSD.


## Computing distractions 

Computers can be a total time-sink and rather than enhancing your
life, giving you super-powers to create things and solve problems.
They create more problems and frustrations.

Don't waste your life trying to find the perfect operating system or
hardware setup, you have more chance of finding the holy grail!

Be wary of creating too many customizations and be sure that the ones
you do make are worthwhile and replicable. 

Use something like stow to manage configuration files for future
speedy deployment. 

You should aim to be able to install your OS and replicate your setup
on any system in less than 30 minutes. This reduces the importance of
the hardware.


## Create things

If you disallow computing distractions to take hold you should find
time to exercise your creativity. Writing texts or maybe software... 
How you express your creativity is up to you, but don't settle for
being a consumer, there is no lasting satisfaction to be had there.

Computers should be a means to an end, not an end in themselves.

Above all, choose freedom ...


[1](gopher://gopher.icu/0/phlog/Computing/Low-power-computing.md)
[2](gopher://gopher.icu/I/images/asus3.jpg)]]></media:description>
	   <pubDate>Fri, 01 Sep 2023 02:01:30 +0200</pubDate>
	</item>
        <item>
	   <title>Offline</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Offline.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Offline

I have been using a 4G router on the mobile network for the past
couple of months and apart from the odd bit of lag it has been quite
reliable. This morning however, having unusually left the router
switched on all night, my connection appeared to be down. 

Power-cycling the router seemed to revive the connection, although it
wasn't long before I started having issues again.  Once more I
rebooted the router, it was slow but again the connection returned
and I continued with checking my RSS feeds, email and a conversation
on IRC, then it went off again ...

At this point I gave up and went to get a shower, after that I got my
kindle and went down stairs. 


## Radio 

I'm not sure what prompted me to put on the radio, other than it
catching my attention from the bookshelf where it occupies a space. I
browsed around a little twisting the dial around, first on AM and
then on FM, where there seemed to be more choice of channels. 

While turning the dial I stumbled upon a talk show where a woman was
being interviewed about the UK government figures for immigration. 
She was explaining, in some detail, at how these figures were arrived
at and the effects of certain policies on those numbers both
historically and going forward. The thing that struck me about this
conversation was that this was someone knowledgeable on the situation
giving a fair account. This was not news as we are usually fed it
today, or the circus that is Westminster, where there is some agenda
behind how the information is used to slight some person or party. It
was a refreshing experience to hear an expert explain something,
seemingly without bias. Maybe I should listen to the radio more often
... 

This actually reminded me of a video I saw recently about short wave
radios, where an American was explaining how he would sit and listen
to radio broadcasts from other countries to have a more rounded view
of what was actually going on in the world, free from the biases of
his own. 

The BBC used short wave radio for propaganda during the second world
war, as they knew the signal could be received deep into Eastern
Europe and Russia. It has been reinstated since the beginning of
the Ukraine war for this very purpose.

You can't firewall radio waves or censor their broadcasts from
outside of your jurisdiction. In some countries it was a crime to
own a short wave radio for this reason.


## Microadventures

I enjoyed reading Jay Scot's phlog post a couple of days ago. It
inspired me to get out for a walk yesterday, in the very fresh but
unusually dry and sunny weather.

Post COVID I had started going out for walks occasionally and had
hoped to make a regular habit of it and even maybe expand upon it to
do some wild camping. I've spent far too much time watching video
howto's not to at least give it a try. Plus I think I already have 
everything I'd need, other than a bivvy or tarp, to do an 
overnighter. 

It felt good to be out yesterday. I definitely need to get out more
but I will probably hold off on the overnighter, until the weather
warms up a bit!


## Phlogging

It's been a while since I posted anything but sometimes I think if
you don't really have anything to say then maybe it's best to say
nothing... 

Usually I would write the post on my VPS and just copy it to the
relevant directory but that is not possible today, so it's back to
old-school offline writing which I will scp across once my internet 
connection returns.]]></media:description>
	   <pubDate>Sun, 03 Dec 2023 12:02:05 +0100</pubDate>
	</item>
        <item>
	   <title>Usenet-update</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Usenet-update.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Usenet update


Some big news regarding Usenet[1]:

>  Starting on February 22, 2024, you can no longer use Google
>  Groups (at groups.google.com) to post content to Usenet groups,
>  subscribe to Usenet groups, or view new Usenet content. You can
>  continue to view and search for historical Usenet content posted
>  before February 22, 2024, on Google Groups.


In my view googles groups integration with Usenet practically
destroyed it. As they do with most things, they assimilate and
destroy wholesome technologies from within.


## What's so good about Usenet?

There are several good reasons to make efforts to revive Usenet:  

* It is the original decentralised, federated forum.  

* It uses a simple protocol designed to work over low bandwidth and
  impermanent communications links, like dial-up.  

* News reading clients are ubiquitous and part of many email clients,
  even if you don't realize it. 

* The small technical barrier to entry keeps undesirables away, or
  at least that's how it should play out once google ceases
  to make it easy for web users to access Usenet.  

* Forums on websites come and go with the fortunes and interests of
  their often corporate owners. Because of the federated nature of
  Usenet, the information therein continues to live on.  

* ISPs no longer routinely provide access to Usenet.  
 

Is Eternal September[2] finally coming to an end? No longer are ISPs
routinely providing access to news servers and from February google
will stop providing access to people via the web. This should return
the sovereignty of Usenet to those who should rightfully have a claim
to it.

There has never been a better time to reclaim the wonderful resource
that is Usenet.


## How do I access Usenet?

Please read the wonderful guide[3] written by Matto.


[1](https://www.theregister.com/2023/12/18/google_ends_usenet_links/)
[2](gopher://gopherpedia.com/0/Eternal%20September)
[3](gopher://box.matto.nl:70/0/usenet-getting-started-guide.txt)]]></media:description>
	   <pubDate>Wed, 20 Dec 2023 13:10:02 +0100</pubDate>
	</item>
        <item>
	   <title>Nokia-BLJ-2-battery-refurb</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Nokia-BLJ-2-battery-refurb.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Nokia BLJ-2 Battery Refurb

I have a couple of old Nokia banana phones, an 8110 and an 8146 which
both have dead batteries. If you should manage to find one of these
batteries second hand, they are extortionately expensive.


## Battery Disassembly 

Dismantling the battery is fairly easy, carefully insert a spudger /
guitar plectrum down the seam on the inside of the battery and gently
pry it up. There is some black adhesive used to stick the cover to
the battery so you may want to get something longer underneath to pry
closer to the adhesive until you manage to separate it.

Once the outer cover is off you can see the cells and the circuit
board. I carefully separated the battery cells from the casing along
with the circuit board. To separate the battery from the circuit
board I initially gently worked the circuit-board back and forth
until the metal battery tags sheared. After this I used a soldering
iron to remove the remainder of the pads from the circuit-board and
added a little fresh solder for later.


## Parts

The BLJ-2 battery is rated at 7.2v and had two cells. I figured if I
could find two 3.7v cells of a suitable size then I could wire them
in series to achieve close to the voltage I needed.

Having measured the available space inside the battery housing, and
looking around at various battery packs, I discovered that two 503040
battery packs could be fitted to replace the original cells. Each of
the packs is rated at 600mah 3.7v. 


## Fitting

The battery packs come with a circuit board attached to prevent over
voltage, and other things, but this seems to get in the way of using
them in series and also there isn't space inside the housing for the
batteries with these fitted, so I removed them. I cut the battery
tags as close as I could to the circuit board with side cutters,
being careful not to short the battery terminals.

Once that was done I tinned the battery tags with a little solder and
then placed them inside the battery shell along with the circuit
board ready to wire everything up. Here I think a picture best
explains what has been done[1].

The final assembly is quite snug once the cover is popped back in
place. I used no adhesive to secure the new cells or cover and
nothing appears loose.


[1](gopher://gopher.icu/I/images/blj-2.jpg)]]></media:description>
	   <pubDate>Sat, 13 Jan 2024 03:10:48 +0100</pubDate>
	</item>
        <item>
	   <title>Computing-in-2024</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Computing-in-2024.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Computing in 2024

Last year I made several changes that reduced the energy consumption
of my computing activities at home. This year I plan to provide some
of my energy requirements via solar power. I also want to start
experimenting with ham radio data modes.


## Computer

The Asus B202 eeebox[1] has been serving me well for the past 5
months, though I have had to recently replace the fan and bios
battery. It is sufficient for everything but dealing with a full-fat
web browser. Ungoogled-chromium works for most sites but not all,
with some it really struggles.

I've decided that there is already more than enough used I.T. surplus
in the world and that something already out there can surely fit my
needs. I have recently been thinking of changing the above system for
a HP T620[2] thin client. This should provide a small foot print, low
energy (15w) 64bit system with no moving parts that would offer a
good performance upgrade over the current system.

Other than that I'm quite happy with my current setup:
 * Asus B202 eeebox (1.6Ghz Atom 32bit CPU, 2Gb RAM and 120Gb SSD)
 * 24" Asus pro-art monitor (1920x1200)
 * Lenovo KU-1255 USB Trackpoint keyboard


## Software development

I will continue to use shell and awk for any small programming
projects. Perl is my default language but I've been forcing myself to
learn how to use more primitive tools which are to be found on all
unix and linux systems. You could argue that Perl is found on all
those systems these days, but I think it's bad practice to keep
installing programming languages on systems and to make them
requirements. What was once all shell scripts is now a mishmash of
perl, python, lua and whatever else. I know as well as anyone how
strong the desire is to use what you know, but sometimes, for the
greater good, it is better to force yourself to convention and
broaden your horizons.


## Solar

I need to calculate how much solar power I need to produce and store
in cells to operate without downtime. This means at some point I will
be purchasing solar panels and either an all-in-one solar generator
or building my own from components (battery, charge controller,
inverter, ...).


## Radio

I've been studying for my foundation ham radio license and hope to
soon start mixing computing with radio for communications with data
modes. I'm looking forward to experimentng with JS8Call, ft8, winlink
and RTTY.


[1](gopher://gopher.icu/I/images/asus3.jpg)
[2](https://support.hp.com/gb-en/document/c04017240)]]></media:description>
	   <pubDate>Fri, 19 Jan 2024 17:59:52 +0100</pubDate>
	</item>
        <item>
	   <title>The-state-of-gopher</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/The-state-of-gopher.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# The state of gopher

I've become a little frustrated with gopher recently. The feelings
are mixed because I'm happy there is more content, created by real
people. However, many people are arriving in this space and although
they bitterly complain about the state of the web, they are bringing
ideas and content from the web to gopher. 

If you want to come to a new space, presumably because you are
looking for something different, then please leave the web on the
web. It's still there, you can visit any time. Just fire up that fat
browser and off you go! Just please don't pollute gopher with it.


## Standards and common practice

When you start in radio, or many other disciplines, you are informed
of the rules and are expected to listen, to get a feel for the
etiquette before you participate. Because it's so easy to fire up a
gopher server or get a tilde that provides space these days, it's
easy to bypass the learning phase and to jump straight in. The rules,
in our case, are laid out in the RFC for gopher[1].

[1](gopher://gopher.32kb.net:70/0/rfc/rfc1436.txt)


### 70 Columns 

Gopher is from a time where your average terminal had a physical
limit of 80 columns. To give some space for the type indicator the
RFC states "the display string should be kept under 70 characters in
length". Now, modern terminals are capable of more, but by ignoring
this standard you make things awful for people, with older systems,
or those who view in split screens[2]. It's a slippery slope to
becoming like the modern web, where developers don't seem to give a
crap about standards, backward compatibility or accessibility. 

![2](gopher://gopher.icu/I/images/sog1.png)


### Gopher maps are for navigation, not content

There is a habit forming of people misusing maps to create content
pages with pseudo in-line-links, like on the web. The problem is that
pages become full of info lines, which the original gopher client
ignores. So when your content spans multiple pages, the original
gopher client cannot page down to see anything after the first page.
Another side effect of this is that, if the content is a menu you
can no longer press 'd' to download it, as was intended for files. 

You are breaking functionality of the original gopher client, written
by the people who created the gopher RFC. Doesn't that hint to you
that maybe it wasn't designed for that purpose and that maybe you
shouldn't do it?

*clause* - I consider it excusable only for creating applications
requiring interaction, as there is no other way to do it, with the
proviso that links must exist at regular intervals throughout the
page to ensure it remains scrollable in the original gopher client.


*Addendum 05/02/2024*

The RFC position on non-core item types, which includes 'i', is that
the client implementation may choose whether to display them:

> 3.5  Building clients
>
> If a client does not understand what a say, type 'B' item (not a
> core item) is, then it may simply ignore the item in the directory
> listing; the user never even has to see it.  Alternatively, the
> item could be displayed as an unknown type.

To put your content within a non-core type is therefore not advised.

Additionally, there is a commit[3] to the client code which notes
that it was a deliberate change to "Skip over type 'i' items". Maybe
they foresaw the potential for misuse, or it was already being
misused, and decided to address it in this way?

[3](https://raw.githubusercontent.com/jgoerzen/gopher/master/doc/client.changes)


### Gopher clients are not terminals

Please do not use terminal escape codes to attempt colours and
artwork in gopher. They may work in your particular client but
generally they don't and look horrendous to the casual user[4] [5].

![4](gopher://gopher.icu/I/images/sog2.png)
![5](gopher://gopher.icu/I/images/sog3.png)


## Conclusion

The saddest part for me is that many of these individuals appear to
be in IT or technical disciplines and have some proficiency.
Unfortunately they choose either not to read the RFC, blatantly
ignore it, or adhere to best practice. Don't be that person ...]]></media:description>
	   <pubDate>Mon, 05 Feb 2024 20:31:55 +0100</pubDate>
	</item>
        <item>
	   <title>Responses-to-The-state-of-gopher</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Responses-to-The-state-of-gopher.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Responses to The state of gopher

Thank you all for your kind words and consideration regarding the
problems I, and others, encounter using gopher at the present time.
Clearly there are a lot of opinions, but the following will always
remain true:

1. Vintage hardware has a physical 80 character limit. It is a thing,
   and a large body of people still use it. Unless you have X running
   on Linux / UNIX then you are also probably stuck with an 80
   character limit.

2. Many gopher clients exist, and are in use, that are written to
   that RFC specification and will never be retrospectively changed. 

3. The UMN gopher client ships with most Linux and BSD systems and
   may be many peoples first experience of gopher.

4. RFC exist so that we can all play nice together. They were written
   in gentle times by academics that expected them to be followed.

5. Mutually giving each other permission to disregard RFC, due to age
   or what has become common and doesn't affect you or your cloister,
   doesn't make it right. See point 4.


If you don't like the limitations of the protocol then please make
one or use one that better suits your requirements, Gemini?

----

I would like to take this opportunity to ask the community what
clients[1] they are currently using?


[1](gopher://gopher.icu/1/poll?poll=1707390454)

* All contents 100% gopher friendly]]></media:description>
	   <pubDate>Thu, 08 Feb 2024 18:14:32 +0100</pubDate>
	</item>
        <item>
	   <title>Wordprocessing-with-vim-and-pandoc</title>
	   <link>gopher://gopher.icu/0/phlog/Computing/Wordprocessing-with-vim-and-pandoc.md</link>
	   <description></description>
	   <media:description type="plain"><![CDATA[# Wordprocessing with vim and pandoc

It has been quite some time since I have needed to create documents
for ordinary folks that expect .docx or .pdf files. Having recently
taken on some administration responsibilities for the radio club I am
a member of, I find myself again needing to create .pdf documents.


## Abiword

At first I installed abiword, along with all its dependencies, which
turned out to be quite a lot. I tried it briefly, but after many
years using vim to edit text, it felt terribly slow and awkward.


## Markdown

Markdown is an excellent minimalist markup that doesn't look out of
place in plain text documents. My phlog, as you may be aware, is
written in markdown. Markdown was chosen as I knew tools existed to
convert it into many other document formats. It can easily be
converted into web pages or document types suitable for printing.
Pandoc is probably the most widely known of these tools. 


## Pandoc

On OpenBSD I installed the pandoc package and attempted the
conversion of a markdown file: 
> $ pandoc myfile.md -o myfile.pdf

Unfortunately something was missing and the conversion failed with an
error. After a short search for the error message, and test
installing other packages, I discovered that texlive_base-2023 and 
texlive_texmf-minimal-2023 were also required.


## Workflow

I write the documents in vim, using markdown in the same way that I
would for my phlog, and then run pandoc on the file to output it in
PDF format. 


## Summary

I use vim for all my text editing and wanted a solution where I could
continue to do that. This solution is fast and avoids any interaction
with a word processor, while achieving the same result. I'm quite
satisfied with it.]]></media:description>
	   <pubDate>Thu, 16 May 2024 12:35:50 +0200</pubDate>
	</item>
    </channel>
</rss>