• Home
  • Blog
  • Contact
  • Projects
  • Content Mirror
  • Matrix Guide

  • May Status Update

    May 19, 2022

    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 blindly rsync(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.

    © 2019-2023 Jordan Bancino.