DEV Community

loading...

How write(1) saved the day

Ryan Westlund
I'm a programmer, writer, and philosopher. My Github account is yujiri8; all my content besides code is at yujiri.xyz.
・3 min read

I think this is an interesting story. Background: I have a friend who lives several states away and is staying at a homeless LGBT shelter. I met them over the internet and have been teaching them Python. But they don't have their own computer, so I had the idea to set up one of the ancient laptops I have around here and send it to them. Only one of said laptops is able to power on, and its Windows Vista installation is trashed, so I went to install Linux.

I figured it wasn't important to choose a user-friendly distro because I'd be setting it up with a desktop environment myself before sending it, and I'd also be available for guidance. My first thought was to install Artix to match my own system. But I couldn't get Artix working due to bootloader issues (this dinosaur has no UEFI). I gave up and resorted to Void Linux.

The laptop is truly a dinosaur. With less than a single GB of memory, it is useless for many tasks. I found that window managers with fancy effects such as KDE were unusable due to lag. I settled for installing i3 on it - I found an i3 tutorial video that I'd link my friend to. Firefox could start, but barely. Loading a website with lots of Javascript would literally freeze the computer.

However, when my friend received the laptop, I realized I had made many mistakes preparing it for use by someone not experienced in Linux. And those mistakes were going to become problems since the internet over there is spotty. My friend had to communicate with me using the shelter's computer while I tried to walk them through setting stuff up.

I had tested Firefox on the laptop on some lighter websites, and it was usable. But my friend was utterly unable to open Twitter or Element, our normal communication channels. I recommended the Disable JavaScript extension since I know Twitter has a scriptless fallback, but even that didn't work - my friend couldn't even install the extension.

So I suggested installing Fractal, in the hopes it would be able to run where Element couldn't. This is where I felt really bad about my lack of decision to preinstall Fractal. I should've anticipated this. It was my fault. And worse, they ran into package manager issues installing it!

It was here that I realized I also hadn't set up a proper mirror. It was trying to download it from a mirror in Germany, which made it take forever to download and the internet kept cutting out temporarily and failing the whole installation. I tried to guide my friend to switch to a mirror in the USA, but we had other problems with that that I couldn't debug.

Finally, I suggested SSH. I would have my friend generate an SSH key and log into my server with me. Then we would use one of those ancient console chat apps I remember from when I was first learning Linux... what were they called, write? talk?

I tried talk. But alas, it couldn't connect because it needed some daemon to be running! I didn't have time to figure out how to configure it. The only option left was... write(1).

And that was how I finally established a way to communicate with my friend that didn't require them to use the shelter computer, just in time before they had to give it up.

Discussion (0)