Welcome to my renewed website. I've decided to stop procrastinating and instead of rolling my own blog software I decided to simply take Hyde and actually start blogging!
The quest for better blogging software
I've started writing blog software from scratch about three times by now. The first time I attempted making what one could call a "clone" of Wordpress or other similar blogging "platforms". This means that software would be based on other people's preconceptions of what blogging software is supposed to be like:
- Dynamically generated from a database.
- A web-based backend interface for writing posts, with a session-based login system.
- A full-fledged rights system.
- HTML as markup language, maybe with a WYSIWYG editor since HTML is so painful to write manually.
I think I started with this project because I thought that having a fully featured web publishing platform written in Chicken Scheme would ensure all the prerequisites for building "large-scale" web applications would be available, thereby possibly making it more useful for my dayjob. There are still quite a few components that are missing, like a proper "safe HTML" filter (useful for when you have guest bloggers who shouldn't be able to post using all available HTML tags), multipart/form-data support for file uploads, a good e-mailing library, etc.
Of course this project was doomed to fail because this type of software is nowhere near my ideal workflow; I prefer tapping away at the keyboard using my current favorite text editor, Emacs. The text-input interface provided by most web browsers is pretty horrible and if you close the window or refresh the page by mistake, you lose everything you just typed in, too! Like most programming geeks, I also generally prefer storing stuff in a version control system so I can track the edit history of my writings. Of course if I was going to make a serious blogging platform, I'd have to replicate most features from a version control system too...
Return to sanity
Sick and tired of writing tedious HTML nonsense I was never going to enjoy using in the first place, I decided to get started on my second attempt, more attuned to my own preferences with severely scaled-down scope:
- Dynamically assembled content from simple textfiles with minimal markup (using simplified svnwiki syntax).
- Content stored in a version control tool like mercurial.
- No comments, since on technical blogs people often just bicker and argue in comments anyway, and you also end up fighting lots spam - that's not worth my time.
I almost managed to get this "finished" (I was at the the eternal 90% done stage of development), but then I decided it's silly to write something like that when there's a perfectly useful alternative. The not invented here approach to software ends here, now.
One of the advantages of a static website generator rather than using something dynamic is that there can be no security problems related to the blog software. Hyde generates flat HTML files which are served up by the webserver. There is no dynamic content at all. This is also really fast, since all the parsing of blog posts and the conversion to HTML is done at "compilation time". And instead of pouring infinite amounts of time into writing code I'll never use, I can focus on the content (and spend way too many hours tweaking the styling...)
The current site sticks to minimalism everywhere; even the archive page is very straightforward, listing only the titles and dates of all posts. If it turns out I write so many posts that a fancier paging system is necessary, I'll write it at that moment, but not a moment sooner!