Build your own Spotify-like music streaming solution using mpd

Since I distrust centralized services such as Spotify that can delete content you love at any time they like, I’ve always bought my own music and have a huge collection. But there’s no denying that streaming music to any device or location is a useful feature. You still don’t need Spotify for that, thanks to the FOSS community you can build your own Spotify-like streaming system, and this guide shows one combination of software to accomplish this.

The goal: Stream your music collection from your own PC (or NAS or whatever storage you have) to any web browser, mobile phone and desktop clients.

The method: A little Linux magic involving the following components:

Continue reading “Build your own Spotify-like music streaming solution using mpd”

All the people being raped by Facebook now realize they are being raped by Facebook (updated)

Of course people like me have been telling them to quit Facebook forever, but they didn’t listen. If I were nasty, and I am, I’d say that if you ignore the warnings you probably don’t have much right to complain. The level of brainwashing and manipulation by Facebook and friends is even higher than I  imagined, though. I believed they were just reaping obscene profits from wide-ranging psychological profiling and privacy abuse, but it’s become much worse than that.

Here’s Richard Stallman on this and similar topics, in an older but still valid talk from 2016:

Update: Elon Musk has deleted the Facebook pages for Tesla, SpaceX and himself, Mozilla has pulled all ads from Facebook and the SF Chronicle is picking up on the idea of federation. Techrunch meanwhile discovered that Facebook knows everything about you and what started as a rumor is now confirmed: If you have Facebook’s mobile app, Facebook knows exactly who you called and when.

Update 2: The news has made it to the mainstream press now. People are outraged that Facebook knows each and every social event they’ve been to. What did you expect if you use Facebook to organize your events, have the app installed and have GPS positioning on? They are also surprised that they’ve been snitching on all their friends, uploading phone numbers and call logs for years. The naïveté on display is on one hand charming but also alarming, as it shows that the population at large is not really ready to use the services they’ve signed up for. They don’t even bother to read the fine print and are then surprised when what’s in the fine print actually happens.

I have to say, “we told you so”. For ten years we’ve been warning about the dangers of centralization, of communications silos, of non-standard interfaces and specifically the nastiness of Facebook and friends. I feel vindicated now, it’s just stupid that it always seems to take ~10 years for the greater public to catch on to such dirty behavior.

What will happen in 10 years? Will there be a backlash against siloed streaming services like Apple Music or Netflix as they remove more and more of the content you love due to “complicated licensing”? Against insurance companies using your collected health data from smart devices to refuse to grant you reductions due to your unhealthy lifestyle? The same with black boxes in cars?

Sweeping face recognition will inevitably get something wrong and someone will suffer or die because of it. The Internet of Things as it is right now is insecure. There are already Internet-connected buttplugs that spill details about people’s sex life. What else do you need before you wake up?

You could resist all of this now, by being complacent you lose your right to complain when shit hits the fan.

I thought we had been screaming loudly enough about all these problems, but it seems we were just a whisper. We need to make our warnings be heard this time. I just don’t know how.

Which GNU/Linux distributions are the freest?

Users of proprietary operating systems don’t really have control over their computers, and thus sometimes have to deal with inconvenient changes that they didn’t want and couldn’t plan for.

macOS users had a new filesystem called APFS forced on them. A filesystem that is young and obviously still full of serious errors that can lead to data loss. The OS can only be installed on APFS volumes now, effectively leaving users no choice in the matter unless they want to partition and risk “only” the OS portion while keeping their data in a more battle-tested filesystem.

The situation isn’t better in the Microsoft camp, with forced updates making some computers unusable again and again. It has lead to headlines like “Microsoft Delivers Yet Another Broken Windows 10 Update“. If you read The Register, you’ll catch something like that at least once a month.

Because these companies operate according to their own strategic market interests and not in the best interest of their customers and users, this kind of thing always feels to me like they’re raping people’s computers. The user doesn’t want it, the computer certainly doesn’t need it, yet the actual owners just have to open wide and swallow because these companies have decided for them.

Are things better in the GNU/Linux world, then? Yes and no. Some GNU/Linux distributions are controlled by companies that also serve their own interests first, such as Canonical, makers of the Ubuntu distribution. They have previously partnered with Amazon to supply sponsored search results inside the OS search function. This month they’ve announced that they will collect data on users’ machines. Granted, it’s a lot data less than what Microsoft collects about its users, but it’s an ugly move that doesn’t fit the GNU/Linux mentality.

Continue reading “Which GNU/Linux distributions are the freest?”

Yet another way to get a tear-free, stutter-free desktop with Plasma/KDE and Nvidia

So the proprietary Nvidia driver is a large, steaming, smelly pile of shit. At least that’s the impression you get when you read what developers say about it. There’s a bug here and a workaround there, and we haven’t even started talking about the messy situation that is EGLstreams yet. So why do people use Nvidia cards on Linux? Because so far, they give good bang for the buck, use relatively little energy for what they do and work with all commercial games. I’m pretty sure those are the reasons, anyway.

But Nvidia at least on Plasma/KDE has some serious problems with tearing and stutter — I have three Nvidia setups and they all are unsatisfying out of the box. If you use ForceCompositionPipeline like I recommended earlier, you will probably run into stutter issues. But I think I found the perfect setup now, stutter-free and tearing-free for desktop use as well as perfect for gaming.

There are two alternatives:

Method 1: Solve it by switching the GL yield mechanism to USLEEP

Add the following to ~/.config/plasma-workspace/env/kwin.sh:

#!/bin/sh
export __GL_YIELD="usleep"

Thank mahenou on Steam for suggesting I try this again. The first time I did, it was probably too late in the environment for Kwin to pick it up. It’s important that the var is set when Kwin initializes.

Method 2: Solve it by forcing triple buffering

Add the following to ~/.config/plasma-workspace/env/kwin.sh:

#!/bin/sh
export KWIN_TRIPLE_BUFFER=1 

And chmod +x the file. Then add the following to an Xorg config snippet, for example /etc/X11/xorg.conf.d/20-nvidia.conf:

Section "Device"
        Identifier      "Videocard0"
        Driver          "nvidia"
        Option          "TripleBuffer" "true"
EndSection

Finally, enable compositing and vsync

Then make sure you have compositing enabled in System Settings -> Display and Monitor -> Compositor. If you are very doubtful, do a restart. After that you should have a perfect, tear-free and stutter-free desktop experience. I had to disable compositing manually with Alt-Shift-F12 before starting games with the triple buffering method. This was unnecessary with the __GL_YIELD method.

I can’t truthfully explain why this works, but I know it works around a bunch of bugs and unexpected default settings in the Nvidia driver. Also, Kwin is now able to compute the right timings and handle triple buffering instead of rendering half-finished frames like a fucking moron when it still believed Nvidia was doing triple buffering by default.

For me this has been wonderful. The desktop is smooth as if I were using a proper graphics card like an AMD RX 580 with Mesa. Games run exceedingly well, and there is no stutter or delay like with ForceCompositionPipeline. Not even in videos. It’s all just perfect.

This is a mix of hints received from several people on Reddit and Steam that I unfortunately forgot the names of, as well as info from the Arch Linux wiki. I’d like to thank all these people for their knowledge.

Working around broken firmware for Realtek USB WLAN adapters on newer kernels

If you run a combination of newer (4.9ish) kernels and systemd, your USB wifi networking gear probably now gets funky names such as “wlx74da387e95fe” instead of “wlan0” like you were used to back in the good days. This wouldn’t be so bad, only that the firmware on those dongles can mess up when the device gets a long name. Suddenly it won’t let you connect to your wireless network, claiming that the network does not exist, even though you know for a fact that it does. What your machine is actually trying to say, I believe, is that the network device doesn’t seem to exist.

If you have those symptoms, this answer by Maciek on Stackexchange will probably help. I encountered the problem while using one of the Edimax USB wifi dongles that are popular on the Raspberry Pi.

I had to add this to /etc/udev/rules.d/70-persistent-net.rules:

# edimax USB stick
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ba:ba:ba:ba:ba:ba", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan", NAME="wlan1"

Substitute your own dongle’s MAC address for ba:ba:ba:ba:ba:ba and things should work. Of course make sure wlan1 isn’t taken already. If everything turns out well, your dongle now has a sane name again and connecting should just work.

Paul Hedderman does Buddhism with Star Wars and Sauron

That’s not the only thing he does, of course, but I needed a clickbaity title. This is one of his latest videos and it does have those two exact examples, though:

As far as I saw, most of his lectures focus on the non-self (anattā) and they’re delivered as big rambling streams of consciousness. Some smart people once said that if you truly get it, wisdom (dhamma) just flows out of your mouth freely without thinking. I guess that phenomenon produces eloquent masters that speak in a structured way or with beautiful similes, such as Thích Nhất Hạnh, Ajahn Sumedo, Brad Warner or Ajahn Chah.

But it also produces masters like Paul Hedderman. He’s more like a gurgling stream. You have to run to catch up with the ideas he presents and you never know if you interpret things correctly. But then again, at least he doesn’t make you solve koans. So far what he’s saying clicks with me and even those times when I learn nothing it’s still entertaining, so nothing’s lost. If you find the website a bit disorganized and just want the videos, the YouTube channel is simpler.

Paul has been in the recovery movement since the 80s and I first heard about him from a random person in chat while drunk. This person knew that I know some of the other teachers but specifically suggested Paul. I wonder what the hint was.

Starting a second year of game-buying abstinence

The last time I tried this went OK, but I think it didn’t really cure me yet. This is evidenced by my growing list of games on Steam, mostly coming from sales and bundles.

So for this second attempt at game-buying abstinence, I follow all the rules from my earlier attempt and add some additional restrictions:

  • No looking at bundles
  • No looking at sales

I found out that psychologically, what always gets me are very good deals (-75% or such). I might not actually play that game or anything from a bundle for several years  because my backlog is so long, but I always end up buying it anyway. That’s idiotic — if I waited two more years without buying any games, whatever is at -75% now will likely be even cheaper by the time I actually have time to play it. And my backlog should be shorter.

Of course it’s the crafty pricing psychologist that Valve hired in 2011 who is to blame for my failing. Not me! How could it be me?

Not even looking at any sales should help with this. As I found out last time, you can disable all sales notifications in Steam’s interface settings, and also skip directly to your library view instead of going to the store first. This helps more than you might think.

I’ll report in a year. Maybe I can make an improved list of suggestions.

Using Xbox 360-compatible controllers properly inside WINE

If you need to use WINE to play some Windows games, the lack of Xinput support might get on your nerves. WINE maps joystick devices to Dinput. That works for some older games, but buttons need to be mapped manually, and many newer games don’t detect the controllers at all because they expect Xinput.

I tried to get by this issue using x360ce, but this is a fickle beast already when run natively on Windows; even more so in WINE. What worked really well for me was dumbxinputemu. Sometimes dumb things are the best.

To use it, determine if you’re running a 64-bit or a 32-bit game, then copy at least the matching xinput1_3.dll from the latest release to the same directory as the game’s binaries. In the case of Steam, that’s probably somewhere inside Steam/steamapps/common. Then make sure your WINE is set to prefer the native version of the DLL via winecfg:

In the “New override for library” dropdown select “xinput1_3”, then “Edit…” that entry to set it to “native” only. If you have a very new game, you might need to do repeat all these steps for xinput9_1_0.dll. This worked surprisingly reliably for me, no more double-detection of joysticks, no more wrong labels for buttons inside games, no more fiddly x360ce that works sometimes but then mysteriously breaks. Everything behaves as it shoud. Thank you, kozec.

Something for the weekend: Week 51, 2017

These are some longer things I’ve read this week. I don’t guarantee that they’re new, just that I found them interesting:

  1. Google is using its dominance to bully the makers of the Vivaldi browser. Google has blocked Vivaldi’s AdWords revenue and asked them to post links to “uninstall instructions” for the Vivaldi browser on their web page. Something Google itself doesn’t provide for Chrome. This is what happens when you let a single browser maker also control most of the online advertisement market, and things will only get worse the more people use Chrome and AdWords.
  2. Microsoft is using its dominance to bully Google (in the Windows Store). They kicked the Chrome installer out of the Windows Store because only browsers based on Microsoft Edge technologies are allowed there. This is similar to how Apple bullies browser makers on iOS, where you can’t add a browser with its own rendering or JavaScript engine, you must use Apple’s instead. This kind of non-competition is a straitjacket for innovation and destroys user freedom, just because some greedy big companies force it to be this way. Not the best technology wins, just whichever technology the oligopolist forces on users.

I’d be delighted if some of that tickled your curiosity.