Why is it always cynicism when you're right?
While tinkering with a new project last week that involved my old BBS tagline database I rediscovered the tagline that I used as the title of this post. I've been trying to keep up with my pattern of posting at least once every month but it's been hard, what with everything going on. Out of an abundance of caution I ran a post I'd been working on past my lawyer for advice and was informed that I should refrain from publishing it, even with multiple disclaimers because we live in a time that would have given Cardinal Richelieu an erection. I guess we really do live in a Cold War-like era once again. We also seem to live in an era where people are hiding their neighbors because there are masked kidnappers executing military raids in the United States.
Anyway, taglines.
Sometimes for the sake of my mental health I poke around with stuff just to have something constructive to do. In this case I was reading through the documentation for Homer, the personal dashboard I use to organize all my stuff 1. I don't really read the docs for it because it's a static web page that reads a config file on the back end and displays links with nice icons when you load it. Not much to it. What caught my eye was that there is now a feature where you can have a message box at the top off the page that can pull from a REST API, parse the output, and display it on a schedule. There didn 't seem to be anything out there that would do what I wanted, which was pick an entry randomly from a datastore and return it as part of a JSON blob so I took a stab at writing one. My first few attempts didn't come to much so I decided to try my hand at PHP, which is a language that I haven't really don't much with (except for one quick hack a few jobs ago). I decided to approach it the way I would a Python project:
- Open a text file for input.
- Read every line in the text file into an array.
- Close the input file.
- Pick a random element of the array.
- Clean up the text a little.
- Pack the string into a little blob of JSON with the key "tagline".
- Print the JSON, which sends it to the HTTP client.
Breaking it down like that I was able to look up how to do each task in PHP separately and I had it up and running inside an hour. It's a dumb little hack, not even 30 lines of code, but it was fun to tinker with.
Something I've been kicking around in the back of my head is an article that talks about the state of web browsers in general. These days options are pretty thin on the ground - there's Firefox and all of its forks 2, Chrome and all of its forks 3, and Safari if you use Apple stuff 4. There are, however, some alternatives out there that aren't one of the big three. I've got links stashed away and half-baked plans of putting them through their paces but I haven't had the time or compute cycles to sit down and do it. What I do have is a few months of kicking the tires on Librewolf after Mozilla stuffed LLM support into Firefox, which I trust about as far as I can throw a Buick. 5 Anyway, I ran into two particular problems (well, one annoyance and one problem) that I finally sat down and figured out a while ago. When reorganizing some things in my wiki a few days ago I stumbled across my notes and figured that I should post them because somebody else might find them helpful.
The annoyance was that trying to open something that didn't use HTTPS for its control panel (like most wireless access points and DSL modems) would result in an error window and a "Yes, for pete's sake I'm sure" button the click through. In theory it's a great idea for keeping people from clicking on phishing sites but in practice phishing sites were the very first to take advantage of cheap-to-free and easy to get SSL certificates 6 so it's just a pain in the ass for the rest of it. This is because web browsers in general (and Librewolf in particular) have an HTTPS only setting that needs turned off. To do so:
- Type about:config into the URL bar.
- Search for dom.security.https_only_mode
- Flip that setting to false
- Try loading the annoying page in question again.
Also along those lines, and it was a big enough pain in the ass that I kept Firefox installed in parallel only for this purpose was getting through the captive portals at coffee shops and hotels. What I usually did was hit a URL that I know supports HTTP (I Can Haz IP?) and that would be enough to trigger the captive portal (and captive portal detection in the browser). However, for some reason Librewolf wasn't having it and it took me a while to collect enough information to troubleshoot it. It comes down to the above "HTTPS only mode" and a few configuration options that I think were changed as part of the fork-and-rebrand part of Firefox's license. So, here are the config changes I had to make in addition to the above HTTPS-only one:
- Type about:config into the URL bar.
- Search for captivedetect.canonicalContent
- Set it to
<meta http-equiv="refresh" content="0;url=https://support.mozilla.org/kb/captive-portal"/> - Search for network.connectivity-service.enabled
- Set it to true if it's not already.
- Search for network.trr.wait-for-portal.
- Set it to true if it's not already.
- Search for network.connectivity-service.IPv4.url.
- Set it to
http://detectportal.firefox.com/success.txt?ipv4if it's not already. - Search for network.connectivity-service.IPv6.url.
- Set it to
http://detectportal.firefox.com/success.txt?ipv6if it's not already.
After making those changes I no longer had any trouble with Librewolf, and it's worked with the last three or four releases of Librewolf.
All of that said and done and said and done again, I leave you with this bit of wisdom:
This message is for one reason alone: To tell the strongest among you - those with the greatest power protect those without. That's my message to the world.
--Professor Charles Xavier, X-Men: Apocalypse
-
I keep forgetting to write about Homer. It's extremely helpful software, and about as lightweight as any recently written web stuff can be these days. ↩
-
All of which basically have the same codebase, just different branding and user.js files which may or may not be helpful or useful. ↩
-
Ditto. ↩
-
I don't know if you can call Webkit it's own browser or not. It's an engine that can be used to build a web browser. ↩
-
I know, I said "not a fork of one of the big three." I need a daily driver web browser than I can trust somewhat more than the big three and doesn't have nerfed adblocking support. I know that Mozilla said they have no plans to remove Manifest v2 support from Firefox, but much of the Mozilla Foundation's funding comes from Google and a half billion US dollars never, ever comes without strings attached. It is a truism that the best way to control the opposition is to lead it yourself. ↩
-
Just like spammers were the very first to jump on all of the DNS-related anti-spamming measures to ensure that their garbage got through. They were set up and running weeks before most companies even got their change control requests approved. ↩