Wandering Thoughts archives


Companies and their stewardship of open source projects

One of the articles of the time interval is Dustin Moris Gorski's Can we trust Microsoft with Open Source?, written in the wake of what I will just describe as Microsoft shenanigans around .NET. In the wake of reading that and having some general thoughts, I tweeted:

Can we trust Microsoft with open source? No, of course not. Nor can we trust Google, Apple, or Facebook. Any appearance of open source friendliness is tactical; it's not and has never been a deep seated cultural value.

(Applications to Github are left for Halloween scares.)

All of these companies (and others) have behaved in less than desirable ways around open source projects that they have either founded, inherited, or become significant contributors to (whether that contribution is developer resources, money, or what have you). And these are the good companies, the ones where the issue is even worth talking about.

(Oracle closing off OpenSolaris is very well known, but no one expects anything from Oracle except rapacious pricing.)

As a good first approximation, we cannot expect any company to be a genuinely good steward of open source projects. Unless open source is extremely deep in the company's culture, their support of open source is not a core imperative, it's a cold blooded business decision. This doesn't necessarily mean that they are exploiting open source, but it does mean that their support for their open source projects will only continue as long as they consider it not harmful and not too expensive for the benefit that both the project and being good stewards bring them. As we saw with .NET, when this is no longer true, things happen.

(Microsoft backed down this time but that was because their calculus of costs and benefits changed, not because they had a change of heart. The future course of Microsoft's stewardship of .NET is now clear, if it wasn't already.)

I do think that large companies can make what they feel is a good faith decision today to be a good steward to some open source project. Companies are made up of people and people can have good intentions and take actions with them. But companies also respond to incentives (and indeed are forced to), and over the long run those incentives point in the wrong direction. By default, a company is a remorseless machine that will crush any significant obstacle in its path.

tech/CompaniesAndOSStewardship written at 22:58:17; Add Comment

Your SMART drive database of attribute meanings needs regular updates

A lot of people use the smartmontools tools to monitor their drives, either automatically through smartd (which is often set up by default) or directly through 'smartctl'. If you've ever used 'smartctl -A' to get the SMART attributes of your drives, you know that these attributes have names that often give you important information on how to interpret their values. Sadly, these names (and measurement units) mostly aren't standardized; instead, drive vendors come up with whatever they want, including varying them from model to model. Even when they use the same SMART attributes for the same purpose as other drives they may change the units.

Smartmontools deals with this by having a text file that contains a bunch of mappings for what various SMART attribute IDs mean on various different drives. On many systems, you can see your current version of this database in /usr/share/smartmontools/drivedb.h or /var/lib/smartmontools/drivedb/drivedb.h. Unsurprisingly, this drive database is updated on a regular basis to add and correct entries.

A SMART database that's missing necessary entries for your disks can have two effects. The obvious effect is if some SMART attributes are called just 'Unknown Attribute'; this at least lets you know that you don't really know what's going on. More dangerously, some attributes might be mis-labeled, so that for example smartctl thinks that the attribute is 'Total LBAs Written' when it's actually 'Host Writes GiB' (which explains why the values we see are so low on that disk model).

If you're using a Linux distribution that makes frequent releases, your smartmontools probably has a pretty up to date version of the drive database. If you're using a less frequently updated distribution, for example Ubuntu LTS, your SMART drive database is going to be out of date almost as soon as the distribution is released. This generally means that you want to update your drive database on a regular basis, unless you only ever use drives that are sufficiently old that they're in a SMART database from, say, 2018 (spoiler, they're not).

Smartmontools ships with an update-smart-drivedb script that can be used to do this. By default, it updates the location that was built into distribution package, which you may not want to do. Fortunately you can tell it to fetch to some other location, which you can then tell smartctl to use with 'smartctl -B ....'. You can also just read the script to determine the URLs and then fetch one of them yourself. I've generally used the smartmontools Github repo since I find the web interface much easier than SVN. You want drivedb.h in raw format, possibly from a branch instead of trunk.

(We've used the trunk version of drivedb.h without problems so far. Well, without obvious and visible problems at least.)

linux/SMARTUpdateDriveDatabase written at 00:22:43; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.