I’ve been wanting to get rid of Spotify for months as the service has been getting worse and worse and this might just be the straw that breaks the camels back.
Does anyone know of alternatives with
1) decent discovery for new music
2) preferably not self hosted
3) a functional Linux desktop app
4) allows downloading playlists for offline listening
getting all of these in one place and having them work well is why I’ve been stuck with Spotify for so long :/
when I was at JPL, Akins laws (html version) were linked on the front page of the wiki. still one of the best (funniest) sources of engineering tips I’ve come across.
My favorite is still Mar’s law:
> Mar's Law) Everything is linear if plotted log-log with a fat magic marker.
I have the SS-02, and I like it - I had one of the cheap blue ones first, but the pliable rubber tip really makes a difference. If you’re soldering smd by hand, it’s more than worth the $20
The USB-C step is humongous, and hard to implement.
the complexity is high, but how else can you tell a cable that supports USB4 (40GBps) from one that’s only good for charging your phone (and everything in between)? users aren’t going to be able to tell the difference (using a cable with no data lines is already a super common issue with people getting into MCUs) so the device needs to be able to tell how much data and power the connected cable can distribute automatically.
this also why usb-c extension cables (M-F) aren’t spec complaint
it’s a real cool port, but the complexity demon is definitely present in the spec :)
I’m not sure if e.g. Displayport even has the capacity for link training (and there are USB-C to Displayport cables that have to support legacy devices that know nothing about USB); HDMI (until 2.2 or so) definitely does not.
It’s ok to not agree with the USB-IF’s tradeoffs in their solutions, but denying the complexity of the problem space can be a hint that you don’t sufficiently understand it to pass that kind of judgement.
Intel has a flow for how link training is done on DisplayPort.
Probably shouldn't be surprised but it involves communicating over the AUX channels. Is this something that a sizable % of computers can do? For some reason I thought aux channel was semi free for use, that it could be for Ethernet or USB in a pretty naked form. Didn't realize that needed mode switching?
Ah, so maybe DisplayPort has mandatory link training then, which would indeed allow unmarked cables.
But to GPs point, there still needs to be a way to tell the source that a given cable is a USB-C-to-DisplayPort one in the first place. So why not include the metadata on what signal grades it’s rated for in that same indicator? That’s exactly what e-markers are.
This means cable might start at speed which is too high and get horrible errors if the cable is bent.
And even with Ethernet, that autorating has plenty of downsides. I've had a cable which I accidentally nailed through, so sometimes it could only connect at 10Mbps. It took me a long time before I realized it needs to be replaced, precisely because it'd just downshift instead of throwing any errors.
compared to every exception-based language I’ve used, rust error handling is a dream. my one complaint is async, but tbh I don’t think exceptions would fare much better since things like the actor model just don’t really support error propagation in any meaningful way
Does anyone know of alternatives with 1) decent discovery for new music 2) preferably not self hosted 3) a functional Linux desktop app 4) allows downloading playlists for offline listening
getting all of these in one place and having them work well is why I’ve been stuck with Spotify for so long :/
reply