@@ 0,0 1,82 @@
+#+TITLE: Oomph
+#+DESCRIPTION: Introduction Oomph! A mastodon music-genre bot
+#+KEYWORDS: music fediverse mastodon bot
+#+DATE: <2024-02-09 Fri 15:50>
+
+* Why?
+About two years ago I had a friend reach out to me asking whether it would be possible,
+to build an app that notifies its users every day / every other day / every week,
+and introduces them to a new genre of music.
+
+After some back and forth, said friend agreed to create a mastodon account and follow the bot I had yet to write.
+
+You might be wondering: Why not a normal app with notifications?
+And that is a great question, because it would probably be better for the users,
+however, I don't really like Google Firebase, nor did I own a server that was guaranteed to be up 24/7.
+
+* How
+As I mentioned before, when I started the bot, I didn't own a server that was running every day,
+so running a service people depended on (or at least one person) was kind of impossible.
+
+This is where mastodon comes into play,
+basically, most Mastodon servers allow you to schedule posts.
+And when the time specified when scheduling the post is reached,
+it will automatically post the message for you.
+Which is great - especially because I don't think there is a message limit,
+or at least I've never reached the limit in [[https://botsin.space/][botsin.space]],
+which is where the official oomph account has been hosted since ~Sep 22, 2022~.
+
+* Getting the data
+After figuring out the /server setup/ it was time to get my hands on a lot of genres - and with a lot I mean a lot.
+
+My friend recommended this list [[https://everynoise.com/everynoise1d.html][from everynoise.com]],
+which appears to be created by Spotify,
+based on all the genres on their platform.
+
+I then performed these steps to get the data:
+1. ~Ctrl-A~
+2. ~Ctrl-C~
+3. Open a new file in ~neovim~
+4. ~Ctrl-Shift-V~
+5. use neovim macros and regex to fix the file
+
+Afterwards, I shuffled the list and saved it.
+
+* Iterations
+The first version of oomph was written using bash and can still be found [[https://codeberg.org/comcloudway/oomph/src/branch/shell][here]],
+after getting somewhat annoyed by bash and the fact the code was really hard to read and extend,
+I decided to rewrite it in ~vlang~,
+which turned out great, and you can have a look at the ~vlang~ version [[https://codeberg.org/comcloudway/oomph/src/branch/vlang][here]],
+however I still wasn't happy,
+because I thought that the cli pages weren't as beautiful as they could be.
+
+Which is how the current version of oomph was born,
+which is completely rewritten in rust.
+Because, why not?
+
+If you want to have a look at the source code and usage instructions,
+if you want to host oomph for yourself,
+head over to the [[https://codeberg.org/comcloudway/oomph/releases/tag/v0.3.0][codeberg page]].
+
+Also, the rust rewrite featured a user-friendly ~.toml~ file to configure the bot,
+because I always lost my token and the number of the last genre,
+which is now handled by a config file.
+This file also gives you control about nearly everything the bot can do,
+so you could totally repurpose it to share recipe ideas or something like that.
+
+* The future
+To be honest, I didn't expect oomph to get many, if any, followers at all,
+and whilst I'd love to see more people following the account,
+I'm sure there are better bots out there,
+but this one doesn't require a running server (only me going in and scheduling a new set of posts ever other month).
+
+In fact,
+if we keep going at the rate we are currently going (posting a genre every other day),
+we'll last for about 30 years - I think.
+
+The genre list currently has ~5963~ lines,
+and we've had the first ~280~ genres so far.
+
+* Follow Me
+If this post sparked your interest, and you want to get to know a new music genre every other day,
+then head over to [[https://botsin.space/@oomph][Mastodon]].