software engineering, robotics, machine learning, and other fun stuff
As some of you may know, I had to retire my old site. My hosting provider had updated their PHP install, which caused my site to crash. I felt it was better to take it down, than to try to fix it. I already was worried about potential vulnerabilities, this just made my decision easier. I was then free to contemplate what I really wanted for my new site.
As I thought about and explored the possibilities for my new site, I kept in the back of my mind a few basic goals about what I wanted. My site needed to be:
I wanted my site to automatically and as cleanly as possible adapt itself to the constraints of the browser, whether that was on a phone or a desktop computer, or anything in between. If it could be made properly responsive, and I focused on how it would look on a phone, it should look great anywhere.
I also wanted any controls (icons, links, etc) to be easily understandable about their function, and for the user to know where a link would take them when they clicked on it. I also wanted the controls to be easy to use whether you were clicking on them with a mouse, or tapping on a screen.
I wanted the text to be easy to read without causing eye strain; contrast between the foreground and background should not be jarring, and the colors should also be in harmony and consistent.
Lastly, I wanted the site to not have any potential vulnerabilities simply due to how it was engineered; it also shouldn't fail to work due to anything constructive my hosting provider decides to change or implement.
My decision seemed clear: I needed a statically generated web site, and I needed to keep things very simple. I didn't need a full CMS. I didn't need any form of "user management" or login capability.
I looked at various static site generator tools and frameworks, but all of them had the flaw of being overly complex, or too rigid in structure. I didn't need a tool to create the next great web application or anything like that, I just wanted something that would let me easily compose an article, publish it to my hosting provider, and get out of the way. None of the tools I looked at met that need.
I decided that I would have to create the tool myself, and I thought maybe others might like use it as well. Since I wanted to make it as simple as possible to use, I figured creating it as a Bash script might work best. I didn't want to have a very long configuration process. Ideally, one should be able to install the tool with a minimum of effort (provided dependencies are met), and then easily generate a static site, from the command line.
With some research, I turned up a few other static site generators that used Bash, but they were either too simple for my needs, or used some custom and "proprietary" means to generate a site. One example in particular though, caught my eye.
But I wasn't able to get the code included to run, at least on my Ubuntu-based system. It might have been written with MacOS in mind - while the commands were similar, certain parameters and assumptions caused it to not work. Even so, it showed me a great way to approach the problem: By making use of the command-line tool called Pandoc, I could build my site using standard Markdown, composed in a text editor or IDE.
Once that would done, the script could then convert those files to publishable content pages using pre-defined HTML markup as a template. Then I could easily publish the site to my virtual host using other basic tools (tar, gzip, and ssh). And I could do it all from the same simple script. One script, one command, hit return and it's published!
At least, that was the theory. I just had to build the thing.
So, over the course of several weeks of tinkering, I came up with this new tool. You can find the github repo here. Be sure to review the
README.md file in the repo to get familiar with how to install and use it.
My site was to serve as the "guinea pig" and "proof of concept" for the new tool. As I created the tool, I would also be creating the rough outline of my new website for it to generate. The new site had to meet the goals outlined above, of course.
I know it was started as a piece of satire, but I took more than a bit of inspiration for these goals from this site, including all the "knockoffs" it spawned. I'm indebted to the creators of those sites, for showing me the way to make things better - satire or not.
You are now looking at and using the results of that effort.
You no longer have to deal with browsing a site that doesn't fit your device properly. You'll be able to easily navigate around the pages quickly and with a minimum of discovery effort, whether tapping with a finger or pointing-and-clicking with a mouse. You'll have an easier and more comfortable site to read and discover.
I no longer have to deal with a custom, possibly buggy CMS. I won't have to make clunky edits and updates, to the site or the content. I can now simply sit down at my preferred editor, create a folder for an article, write a bit of markdown, and publish it.
All using a simple command line tool, which I'm hoping will allow me to maintain and update my site, and give it the attention both you and it deserves.
Thank you for visiting, and I hope you enjoy browsing my new site.