The past few weeks have been crazy lately. I really don't even have time to be writing this post, but I'm going to anyway because I want to. Anyway, the winter semester ended just fine, and then my dad and I took a trip to Gatlinburg, TN. We had a great time, and when I got back, summer classes started immediately, so suffice it to say that I've been really busy.
Somewhere between work, school, and family trips, I was able to get all of my OpenBSD machines updated to 7.1. OpenBSD makes upgrades really easy, so it was just as simple as running a few commands on each machine and letting them reboot. It couldn't have gone better, and since I try to adhere to the base system as closely as possible, there's hardly anything that can break anyway.
LineageOS 19 support hasn't dropped for my OnePlus 8 Pro (instantnoodlep
)
yet. In fact, I likely won't see it until OnePlus releases a build
of Android 12 for it, so that LineageOS can get Android 12 binary
blobs and kernel sources. I read on the LineageOS blog that Android
12 requires a lot of kernel changes that are not easily backported
to 4.x kernels. I am stuck on kernel 4.19, which means that unless
OnePlus ships and update to kernel 5.x, I probably won't see LineageOS
19 for my phone. While I'm a little bummed, I don't think it is the
end of the world, because I still get monthly security patches, and
I will until LineageOS 20 comes out. And honestly, Android 11 works
for me. There's nothing lacking or incomplete. Everything is fully
functional and its design has been refined over many years. There's
no need to fix it if it isn't broken!
Over the last few days, I've been phasing graphical applications out of my personal computing life. I want my computers to be simple, so that I'm not distracted by them, given how busy I am. I switched from NetSurf to w3m, a text-based browser, and I uninstalled Firefox on my Raspberry Pi, because I only used it for BlackBoard, but my school upgraded BlackBoard to some new, heavier interface that works horribly on such a low-powered device. Given that LibreOffice never ran on my Pi anyway, getting rid of my browsers has allowed me to actually get away without running xenodm(1). Yes, I now do all my work from an OpenBSD TTY!
I've made great use of tmux(1)
to split screens and open up new
windows. And, now that I'm using troff(1)
for all of my documents,
I can use the -Tascii option with less(1)
to preview my documents,
instead of requiring a hefty GUI application such as a browser to
render PDFs. If I'm happy with the ASCII representation of my
documents, then I can just tell troff(1)
to print a PDF and send
it off, all without ever having to see the PDF, although I probably
will give documents a quick look before sending them off, just to
make sure.
Now that I don't need a graphics stack for most of my work, I've switched to doing most of it on my server over SSH. My Raspberry Pi is now just a dumb terminal that hooks up to my server, where all my calendars, to-do lists, emails, and other files live. This allows me to leave some tmux(1) windows open on my server, and then connect to them from my laptop if I have to. Of course, I still have a CVS module that I keep all my documents on so that I can propogate them to all of my travelling machines, in case I'm ever in a situation where I can't access my server.
Because of this setup, I've found it necessary to install groff(1)
and w3m(1)
on my server. Up to this point, for as long as I've been
using OpenBSD on my server, I've steered clear of installing any
3rd-party packages, just because I didn't want them to pollute my
filesystem. But now, I actually use my server to get productive
work now, and it's hard in this day and age to get work done without
typesetting software and a browser. I chose groff(1)
and w3m(1)
because they are both very lightweight. Groff is just a single
package install with no runtime dependencies, and w3m I think only
has 2 small runtime dependencies. So I have no problem with installing
these tiny packages on my server if it means I can get more work
done.
Now, I would love to see OpenBSD ship with a troff(1)
implementation
in base that could render PDFs, but given that groff(1) is GNU-licensed,
I don't see that happening. I did find a thread in which some NetBSD
users were talking about making a BSD-licensed troff(1)
though, so
if that goes anywhere, I'd happily start using it. I don't know
what the licensing situation with w3m(1)
is, but I would also love
it if OpenBSD baked in a text-based browser. Once those two things
are in place, the OpenBSD base system really will have everything
I need to be productive. I also installed sc(1)
for good measure,
but I haven't used it in a long time, and if it's been a while and
I still haven't used it, I will probably just get rid of it. I don't
think I have any spreadsheets that are written in the sc format.
The only thing I can't do from a TTY is typeset music. Sure, LilyPond
exists, and sure, it does the job pretty great, but it has far too
many runtime dependencies to be useful to me. I did some research
on typsetting music in troff(1)
, but that sounds like such a pain.
Which is probably why nobody has done it yet.
I've been building packages from the ports tree now, instead of
just blindlyrsync(1)
-ing them from the official mirror. I chose
to fetch all 67GB of source code tarballs so that I can build ports
offline, too. My goal is to have an entirely self-contained system,
such that if I were suddenly to lose my internet connection and
never get it back, I could still be productive with OpenBSD because
I would have all the programs I could never need, and the source
code to make changes to them if necessary. By just mirroring the
binary packages, I don't have the option to make changes, and that's
no good because things are bound to break over time. I also have a
copy of the OpenBSD system source code as well, and I've even forked
a few of the userspace programs and made changes to them already.
I tried to submit my patches upstream in the mailing list, but
nobody responded to my email, so it is unlikely any of my changes
will get merged in.
Maybe someday, if I accumulate enough changes, I will ship my own BSD system based on OpenBSD. I think that would be really neat.
So that's what's going on in the computing world for me. I've been making steady progress on my cello the past few weeks. I'm working through some Popper etudes and a Boccherini cello concerto. It's also on my to-do list to tackle the Bach d-minor suite. I'm looking into selling my iPad, which I've used in the past for sheet music, and I've found it very convenient, but my foot petal for turning the pages is in the process of failing, so it really isn't useful for me. And I don't trust it in concerts, so I end up printing all my music anyway.
I've also been getting into my Bible some more as well. I always struggle when I'm busy because I feel like I never have time to read my Bible or pray, or anything like that, but that feeling has completely gone away now, and I will in fact put off homework so I can read my Bible. I feel like I'm making a lot of progress on that front. While everyone else in my classes is freaking out about the workload, I've managed to keep my head on straight, knowing that this life is just a momentary affliction that is fleeting in the grand scheme of things. My girlfriend and I are currently studying the book of Acts, and I'm also reading a chapter of Proverbs each day. I genuinely look forward to reading my Bible now; it doesn't feel like a checklist item any longer, so I thank God that his Holy Spirit is working in me.
I of course still struggle; I'm definitely not saying life is just perfect these days. But I am seeing progress, and I am encouraged by that. One of the great challenges of the last few days has been reconciling the story of science with the story of Genesis. I'm stilling working on it, but I know for certain that there are things science can't explain that can only be explained by God, so I have no doubt in my mind that God is still there and still has a plan for his creation. Evolution appears at the surface level to make a lot of sense, until you remember that it can't account for consciousness, morality, or the profound intelligence that sets humans apart from all animals.
Well, that's all I can think of that's happening around here. Work is going well; I'm hoping to deploy a project I've been working on for a while into production sometime early next week. I get to go into the office for a full day on Fridays, which is great for my productivity.