Computer monitors are typically designed to look good, at least in their default settings, when the ambient lighting is sunlight. Sunlight is quite bright and has a color temperature of around 5500k, depending on where you live and what time of the year and what time of day it is. Indoor lighting tends to have a much lower color temperature and therefore at night if your screen color temperature doesn't change it won't match the light in the rest of the room. This causes eyestrain and also can cause issues with falling asleep if you get exposed to too much bright blue light late at night.
The Redshift application adjusts the amount of blue light generated by your monitors and it helps match the light with the lighting that you'd have in room by changing the color output of the monitor depending on the time of day. Some sort of color temperature changing software that automatically adjusts based on the time of day is something I highly recommend installing (f.lux is another alternative if you have the misfortune of running Windows). Now because the earth rotates around the sun and there's different daylight hours in different parts of the world so you have to do some calculations in order to know what time of day to change the monitor color to match the sunset and sunrise for whatever part of the world you are in.
I noticed the other day that it was night time and my screen was far too blue, there was a jarring difference between the screen and the rest of the surroundings. This is an effect I've noticed in supermarkets where they deliberately install lighting with different color temperatures in certain fridges (the idea being that certain food looks better in certain light) which then is super jarring when you go to an isle with the regular lighting1. Anyway my monitor was doing this and it was clear that Redshift hadn't started properly, upon investigate I found this error message:
Unable to start GeoClue client: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied
The geolocation service in Ubuntu is called GeoClue and basically it exists to attempt to find information about your machines geographic location. This bug I found especially irritating because I'd explicitly set Redshift up on this machine up to take the geo coordinates from a configuration file instead of using the geolocation service due to a previous bug in geoclue causing Redshift to not work some time ago. As a general software engineering principle it's good to only pull in heavy dependencies like this when you actually need them, but in this case it was pulling it in anyway even if the config explicitly was set up to not use this.
When looking around for solutions to this issue I found a few other annoying things too.
When you run something like
netstat -uta you'll see what network connections your machine currently has open with the world. Now annoyingly it appears that some of the default behaviour in some Ubuntu installs is actually to call home for a number of things and some versions leave open sockets. There's an interesting discussion about these connections here.
Now dealing with timezones in computer software is just hell due to things like daylight savings, so in terms of supporting non technical users it might make sense for a utility like geoclue to phone home to get some information to automatically configure this. But creating an outbound socket connection that calls home on every system start just strikes me as a terrible default, especially considering the ethos of linux that tends to be strongly against such things. At least it's not as bad as having a socket open the entire time, which appeared to be the old default behaviour.
Also I wasn't too happy that there's these "lens" applications that also seem to open up socket connections.
Frankly I don't use these so I uninstalled them. But once again I'm not happy that more bloat is becoming more and more the norm. This is especially annoying when the bloat might possibly open up more of a security attack surface, I'd be really annoyed to hear about vulnerabilities that exploit software that I didn't even want to have installed on my boxes at all.
I found some inspiration here and here for what to remove. This pointed my attention towards something called Zeitgeist which is yet another piece of software that I don't want to have installed by default.
There's seriously a whole industry around "optimizing" (translation: extracting more money from customers by applying research in psychology to manipulate the mental states of customers to part them with their money more effectively) lighting for food in stores. This strikes me as yet another way in which modern society is poorly allocating the time, effort and attention of smart people into researching things that aren't the most useful for society. ↩