DiscoDOS - The geekiest DJ tool on the planet
Last weekend I released the final 1.0 version of DiscoDOS. Since it got its own website, there shouldn’t be much to say in this blog post. So head over to discodos.jojotodos.net and read all about it!
But wait, why not leave a little big history here?
Back in autumn 2018 I decided that it’s about time for my DJ set notes to move from my Moleskin notebook to a proper digital version. Before that, I went for some clumsy excourses using spreadsheet software. I wrote down my set lists and also tried to put in my pool of records but as always spreadsheets are not a database, data is doubled, constantly has to be copied around, all is basically just errorprone and a nightmare to keep up-to-date. Hence Moleskin and my favorite pencil stayed my best option for a very long time.
The idea of using what is already there - my personal record collection on discogs.com - and not reinventing the wheel too much probably was in my head a long time ago but since my programming skills only became decent enough roughly during the last 5 years, probably it took that long until I decided that I’m good enough to do it.
First hackish approaches were finished in a couple of weeks - I could import my records from Discogs into a local SQLite database, search my collection, create mixes and it was usable good enough for me personally.
By the start of 2019 I called it a version 0.0.1 but at the same time decided that my code was crap and since I was just about to understand a lot more programming concepts I started refactoring a lot of the original code, rewrote things entirely and threw away old code.
Somewhere in the middle of 2019 my friend F. joined the project. He was eager to learn GUI programming in Python and started to build a Tkinter version of DiscoDOS. Also this gave me a lot of thought and motivation on improving the backend code, so again a lot of stuff was refactored, improved and thrown away. Also around this time I decided that since Python is cross platform but not every DJ knows how to install Python software out of a github repo, there should be proper support for the major Desktop platforms. My journey on learning on how to package for Windows and macOS began.
By the start of 2020 I actually thought “We are almost 1.0 now, just a couple of things”, but things turned out differently and a couple of months passed until the first release candidate came out by the end of April. I think it was exactely the 1st of May actually, which usually is a great day and kind of starts summer for me ;-)
Since I am a fan of Open Source software, especially Linux, since the late 90’s, my next decision for gathering even more work was obvious: “There needs to be a software package for Debian GNU/Linux”.
Again this was new territory for me and it took another 1-2 months to get it straight. Since I learned a lot more about proper Python packaging and Debian being pretty strict on how a package has to look like (for understandable reasons), major things had to be changed and also a lot of work went into macOS and Windows packaging again.
After the next release candidates around June 2020 I took a break from the project since there where other things to do (too many projects as usual) and actually I was happy that DiscoDOS made it that far and was pretty darn stable already.
And now we are here: Between January 2021 and last week I fixed and refactored a couple of things I was aware of since a long time already but never found the time to do. I teached myself on how to use the Sphinx framework to build beautiful documentation, built a website, packaging for macOS was improved again and most importantly: Both Windows and macOS packaging was automated pretty good using oldschool bash magic but also using the wonderful CI/CD pipeline possibilites of github actions, which will keep me from fiddling around with boring, errorprone packaging stuff ever again… famous last words… ;-)