Skip to content

Half-baked ideas I don't want to forget

Darwinian Architecture

Building an open system of (micro-)services that anyone can contribute to. Start with some core ones like auth. Then add for things like skills and accomplishment tracking (aka AMABot), who is working on what.

Make them really easy to deploy to a cluster of some sort. Those which are useful will continue to be used and become integral, others which are unmaintained and unused fade away. But make the fade away part enforced - you don't get used for a week? We shut you down. Leaving your persistent data present so we can spin you up again if you get requests again later.

You could even have multiple levels between active and archived:

  • Active, fully running
  • Suspended, backing services still exist (e.g. DB) but app itself is not running
  • Shutdown, app not running, db dumped for backed up and then terminated
  • Archived, as above but can no longer be automatically restarted by a request

Helps to keep resources in check. But gives a free playground for people to just build stuff. Embracing the Shadow IT

Django - but "clean"

Build out something that gives the RAD feel of Django but is better aligned with a layered, onion skin architecture.

  • Starlette
  • Pydantic
  • Perhaps FastAPI as it is built on Starlette and Pydantic
  • Tortoise-ORM, but I really wish it had migrations

Python Firefly

I saw this initially as just one tutorial for Micropython. Could I build it up much more slowly. Make it an introduction to coding with Python.

Should I even switch to making it a curliboi thing - with the firefly tail as a fun exercise. Papercraft "skins" maybe?

Slack Bot/Command for AEMO Acronyms

The Australian national energy market is chock full of acronyms, not unlike our industry in general. It might be nice to create a simple slack bot/command to let people ask what an acronym stands for.

Aside

What if we took it further and had it as a tuple-store? Then we could do interesting things like linking C4s with TableReplication transactions building out an interesting web of information.

Visualising Code

There are many ways to view code. The 2 most obvious are the raw text itself, and the actually output of the application as it runs. But there are others...

Gource for example is a tool for visualising the history of a source code repository. It presents the files added, modified and removed from a code base as video. It is quite fun to watch a large project evolve over time. Watching it acquires little constellations of files, then seeing them merge, split or even simply wink out of existence. What is also really interesting is you can see quite clearly when significant refactoring occurs.

This got me wondering if this or other visualisations of code, in particular over time to help identify when these large refactoring becomes necessary? To perhaps even pre-empt them. Could you also identify poor architectural choices - or where specific part of the code base doesn't follow the same patterns as the rest of it.

Revive the BBS over SSH

The Python cmd module is a simple and easy way to build custom shell type interfaces. Could this be combined with SSH to provide a simple BBS type system?

Perhaps by running it with the SSH config option ForceCommand. A BBS with unicode and emojis would be fun.

DevOps for 1

Small scale CI/CD with CapRover and Github actions might be all you need.