music-explorer
doit
Our great sponsors
music-explorer | doit | |
---|---|---|
5 | 20 | |
31 | 1,781 | |
- | 1.5% | |
8.0 | 0.0 | |
3 days ago | 6 months ago | |
Shell | Python | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
music-explorer
-
When do we stop finding new music?
The article might describe a common scenario, but there are plenty of outliers. I hardly listen to music I liked in my teens and early twenties. I love discovering new music.
Many comments here are very insightful and discuss phenomena like high music diversity, music proliferation and easy of producing music, and automated recommendations.
One thing that has been occupying me is that curation is still harder than I'd like when using streaming tools like Spotify, YouTube Music, Apple Music, Tidal. Pandora had good roots with its music genome project, and have built on that. (I can't use it without a VPN since they discontinued supporting the country I mostly live in). It's probably a function of how I consume my music today - no longer desk-bound at work, but on the go, so iPhone (and Apple Watch) are primary tools. Being able to select/skip/preview/tune what I'm listening to is nowhere near as powerful as I'd like. I've written library curation tools in the past, these always expected me to spend significant dedicated time in front of a screen (e.g. a similar tool like the cool looking https://github.com/kristopolous/music-explorer, I think).
This has strong parallels to how older people consumed music - either totally passive curation (radio), or very deliberate (find music in record stores, at a friend's place, and/or select records/CDs in your own shelves). Today's ephemeral digital libraries are much lower effort, are huge and curation/selection tools are not easy enough to use, so I tend to fall back onto old favourites or recommendation engines that usually don't satisfy me.
A solution would be a much more configurable curation assistant that is also super easy to use (and, in my case) very accessible on a mobile device with 0-1 clicks (because I'm busy doing other things).
-
Goodbye Spotify
Might as well drop what I use for my music discovery, my fairly poorly documented hacker-friendly set of tools:
https://github.com/kristopolous/music-explorer/
-
Write Posix Shell
I'm a big fan of not posix bit instead modern bash and to all the complainers about dash and ash, I say "tough cookies".
Sometimes I'll even use zsh
Here's some example of a modern tool I have written for a subject I call "music discovery"
https://github.com/kristopolous/music-explorer/tree/master/t...
You'll see many languages in there.
If you don't like my practice then I guess don't use it. I've been using/developing these particular tools nearly every day for over 3 years and it works well for me.
I'm not going to say bash is awesome but it's pretty great for programming.
I use zsh as my interactive though
-
Why DRY is the most over-rated programming principle
Sure. Related. It's an art.
Here's some code I wrote earlier, probably a good example
https://github.com/kristopolous/music-explorer/blob/master/w...
It's self contained, not very big, not trying to be fancy, as direct as possible
doit
-
How do you deal with CI, project config, etc. falling out of sync across repos?
I like mage for Go and doit for Python.
-
What’s with DevOps engineers using `make` of all things?
Some competitors - Rake (ruby) - Bake - Earthly - SCons - doit
-
Show HN: Jeeves – A Pythonic Alternative to GNU Make
An alternative to Scons could be Doit (<https://pydoit.org/>), which if I remember correctly was built as a faster alternative to Scons. See also reasons of some users to prefer the later to other mentioned here: <https://pydoit.org/stories.html>.
- A Python powered task management and automation tool
- Makefile Tricks for Python Projects
-
Write Posix Shell
If you code in Python, your probably should use the language as much as possible and avoid calling shell commands.
E.G:
- manipulate the file system with pathlib
- do hashes with hashlib
- zip with zipfile
- set error code with sys.exit
- use os.environ for env vars
- print to stderr with print(..., file=...)
- sometimes you'll need to install lib. Like, if you want to manipulate a git repo, instead of calling the git command, use gitpython (https://gitpython.readthedocs.io/en/stable/)
But if you don't feel like installing a too many libs, or just really want to call commands because you know them well, then the "sh" lib is going to make things smoother:
https://pypi.org/project/sh/
Also, enjoy the fact Python comes with argparse to parse script arguments (or if you feel like installing stuff, use typer). It sucks to do it in bash .
If what you need is more build oriented, like something to replace "make", then I would instead recommend "doit":
https://pydoit.org/
It's the only task runner that I haven't run away from yet.
Remember to always to everything in a venv. But you can have a giant venv for all the scripts, and just she-bang the venv python executable so that it's transparent. Things don't have to be difficult.
-
Alternatives to Makefile for Python
I've been using Doit for a project which involves gathering together documents made up of multiple Markdown files and converting to multiple formats. It's really cool but has some irritations. It didn't end up being much simpler than Make for me. I'm interested in trying some of the alternatives people have posted.
- Just: A Command Runner
-
I used Python to control a custom stop-motion animation drawing machine
The code for all of this is available here, and described in detail in my article. I'm particularly fan of doit for this type of project, and highly encourage everyone to check it out!
-
Monorepo Build Tools
Instead, I use pydoit (which is basically a Python version of make). It's simple, flexible, and quite extensible. So, here's what I do with it: