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

  • Embracing The Browser

    July 27, 2023

    It is a most unfortunate truth that to do business in modern society, one requires a sufficiently modern web browser. There is, simply, no escaping it. Every machine I set up, whether for myself or for my family or friends, with either have a browser built into it, or require one to be installed to actually be useful. For at least the last year and a half1, I have been displeased with this reality, but that simply has not been productive. It is impossible to purchase a domain, or do any sort of online banking, or attend a university without a browser. The things that matter most to me absolutely require it.

    I have tried to compensate for this fact by avoiding the browser all costs when it comes to the things that don't matter as much, like my own personal projects. Notably, my website and blog have suffered. If you recall from my very first blog post 2, I didn't have a proper website, I was doing everything in plain text files and just dumping them up on a web server and calling that a website. To be fair, that still is my ideal situation, but as I contemplate how I can cut down on my dependencies in other places, I came to the realization that I would need a proper website generator eventually. I currently run my fiancée's website in its own VM because it is bloated PHP software that I don't want cluttering my main server. She absolutely would not settle for plain text files, so if I have to come up with something new for her anyway, I might as well re-do my own website too, if for no other reason than to prove that it works.

    Earlier this week, I set out to create not just a static website generator, but an entirely generic text preprocessor that can be used to generate all kinds of output, from HTML to Troff to TeX, to some format that I probably haven't discovered yet. I accomplished this task just before writing this post—in fact, this is my first post utilizing my new website setup. Visually and functionally, my site has become instantly better than it was before, and I am pleased to report that the overhead required to maintain it is not much greater than it was before. At the very least, the additional overhead is tolerable. It strikes a good balance between the full-fledged CMS I used to use and the entirely-manual setup I've been using for the last few years.

    Whether or not my fiancée will be able to appreciate this system for her own website is yet to be seen, and I'm sure I'll iron out a few bugs and inconveniences along the way. I will probably do a separate write up for my text preprocessor, which I am currently calling tp. The name may change, but the syntax is probably pretty close to what it will be. I personally find it quite elegant, but that is a topic for another post.

    In this post, I am striving to codify my thoughts on web browsers and how I see my relationship with them going forward. In my post on JavaScript3, I was very opposed to the modern web, and while I am still just as opposed in theory, I realize that it is simply inescapable as it pertains to everyday life and is therefore illogical to reject some of the conveniences and aesthetic improvements it offers. That is, there is something to be said about a well-designed website, or a perfectly-rendered font, or both. I am no web developer or designer, but I personally find my website to be both functional and aesthetically pleasing. Yet, at its core is that simplicity that I've often sacrificed so much to maintain.

    My ultimate goal is to depend on as few software packages as possible. Whereas before this meant using only a few simple command line tools, and ugly user interfaces—like a plain-blog—I wonder now if this means embracing the web browser for the tool that it is instead of rejecting it whenever possible, because whether I like it or not, it is a tool that will always have to be installed on my computers, and it is one that more people have access to than any other piece of software. I of course still am particularly fond of my command line tools, and I will always have plenty of scripts, and I will always prefer to write native software in C whenever possible, but I think, where practical, I can perhaps condense some of my software into the browser. Instead of using Troff, maybe I can roll my own “typesetting” system that uses HTML and CSS, and a little bit of JavaScript to split it up into pages that can be easily printed to a PDF 4. Of course, nothing is certain; where a command line tool will suffice, a command line tool I shall write, but document preparation is an inherently visual thing, and I feel that the browser is well-equipped to handle that task with no additional software.

    In the great quest to reduce my dependency on complex software, maybe embracing the modern web browser is not where I will eventually land, but for the time being, I see it as a step in the right direction. This may seem paradoxical, but by building a website generator of my own, and taking care to present an an attractive website, I am helping rid my systems of complex server-side software, by encouraging server-side simplicity. Instead of running a hefty PHP-powered website with a JavaScript administrator interface, I can run a simple utility written in C that generates the HTML sent to the browser, allowing me to cut out the JavaScript and PHP entirely. In practice, this would mean I could power down an OpenBSD VM dedicated solely to running PHP, and host more websites directly on my main server, which reduces network complexity and operating costs.

    As I embrace the modern web browser, however, it is still important to be wary. Browsers are, the way I see it, still an evil; albeit a necessary one. Google Chrome blatantly infringes on its users' right to privacy, and attempts to force DRM and other anti-user technologies on the web. Google attempts to use its large market share as a way to control what the web looks like, and it appears to be winning. This is why the choice of browser matters. Unfortunately, there are not many choices. The browser would probably not be so evil if there were more options, because competition in software ensures that users' rights are respected, and also standardizes the tech stack, ensuring that websites play well because they want to be compatible with as many browsers as possible to attract users. Unfortunately, the only viable web browser is Firefox or derivatives thereof. There are three major browsers—Safari, Chrome, and Firefox—and Chrome rules itself out due to privacy and anti-competitive practices; Safari rules itself out for many of the same reasons.

    It is too early to say whether or not I will attempt to create a modern browser of my own. It is only logical that I would eventually, as I have sought to re-create many of the programs that I depend so entirely on, mostly for my own personal satisfaction because I find much of it in understanding how the software we often take for granted actually works. Such a project probably lies far in the future for me; it is not something I have thought much about by any means. My focus right now is on trying to step back and ponder what is most important to me, and right now, that is condensing my server infrastructure by ridding it of complex software. My focus right now is my PHP runner; next on the list is my Matrix homeserver, which is why I am developing a Matrix homeserver of my own 5. This task requires re-working some of my tools, and in the process, it has been necessary that I embrace the browser and focus some of my energy on it so that I can reduce and minimize my software stack in other places.

    I am extremely happy with how my website has turned out; technologically, for certain, but also visually. I have always admired simple yet visually appealing websites, and I hope that mine is now one of them. The effort I have put into it is well worth it. I am realizing more every day that there is more to focus on than simply what is practical and efficient. It is not wrong to enjoy visually pleasing websites, books, and sheet music. I have always been fascinated by the way sheet music and old books are typeset, and I think that fascination and appreciation can carry over to the web. Though I may really never get into the art of typesetting music or old books, I can be satisfied with the appearance of my website, and to do that, I must embrace the web browser, which makes it all possible.

    1. I chose this figure because my blog is roughly a year and a half old. It's probably around that time that I took my digital minimalism to its absolute extreme. 

    2. To Start A Blog 

    3. My Site WorksWithout JavaScript. It's still true, there's no JavaScript here, everything is done statically on my side. As you can see though, I have added some pretty CSS. 

    4. You may recall an old project I was working on called PageJS. I am working on re-building it from scratch because that project was absolute garbage. The next version will feature a much better pagination algorithm. 

    5. Telodendria 

    © 2019-2024 Jordan Bancino.