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.