A Test Post -- Show off features

musings by Bast on Sunday June 7th, 2020

Deciding I wanted to write a blog was as easy as saying "I'll do it tomorrow". Actually doing so went about as well as the saying would suggest it would. There's truly a wealth of technologies to pick from–django, flask, starlette, a hundred markdown-to-html static site generators, site builders, blog software, forum software repurposed as blog software.. There's the ever tempting rust ecosystem–actix, warp, rocket, hyper. How do I want to write my posts? How do I want to display them? Should they be entered into a cms, or stored as local data files?

Django comes with a builtin cms–django-admin as well as a wealth of related tools: The Django ORM, Django Templates, ContentTypes, the Django Admin site. There's a variety of tools for packaging and setting up your Django server–but I've spent a bit too much time with Django at work to want to spend more on my own time. I also don't like some of the decisions they've made, such as the change from 1.1-1.11 to the 2.1, 3.0 split. But I suppose at the core I know what I want to do is probably not best written as a Django app. It's not active, it's not dynamic, it doesn't take in user input and it doesn't really make a large model set or template array.

So I thought for a second: I could make a wordpress site?

Haaaaaaaaaaa

There's a lot of other frameworks in other languages than Python and Rust too.

Some are written in Node. Like Next.js. I do not want a react application for a blog, though, thank you. Or Eleventy, which converts markdown into pages. But, well, install 11y and..

added 532 packages from 416 contributors and audited 3763 packages in 23.012s

along with a few lines of "this package is deprecated" and a few need-contributor messages. I don't care what you tell yourself those are in fact ads and get them away from my code.

Some are written in Go, like Hugo. But I personally do my best to avoid Go as a language due to it's historical decisions (see the drama about binary size and debug symbol embedding, or the roll-their-own-libc on osx, or the garbage that is if err != nil. Who thought that was a good idea??).

Ultimately I just gave up trying to fit everyone else's square (or Complex Polyhedron) into my perfectly serviceable round hole and wrote one myself.

An example section title

@dataclass
class Test:
    name: str

    def whoami(self) -> str:
        return self.name