Well known

Everyday I learn something new. I’ve come across the .well-known directory at the root of domains before, but I don’t remember why. Today a post on, where else, Hackernews mentions a proposal for a /.well-known/change-password, and this led me to learn there’s a whole standards-based system to this directory, intended for auto-discovery things such as Thunderbirds email configuration but also GPG key discovery. So, using this script I’ve placed my key in the right place. If I understand it well, your (recent) openpgp software should find the key automagically when you’re trying to email me.

Fishing and Proton and GPG

Hopefully spammers do not parse these blog posts, but I don’t get a lot of spam. So, when I receive some, I usually look through them just in case the filter was over eager. Props to Zoho by the way; I can’t recall having had legitimate mail being classified as spam during the 2 years or so I’ve used them for my personal domain. Today I received a (second) attempt at fishing. Well, fishing, not even that really, the mail claims, in cleverly vague terms, to have hacked my ‘os’ and ‘email’, and in exchange for silence I should send some amount to a bitcoin address. What is interesting is that this email has my own email address in the from and return-path fields. Either this person did hack my account, or Zoho allows impersonation a bit too easily. In the mail body I see the spf authentication failed (the IP is indeed different, the domain is .com.ar). Not sure if the DKIM result should be there too, but it isn’t. Recently I set up a DMARC record, hookup up to dmarcian (free for low volume domains), and at the moment I’m not restricting any fails from being sent, just in case (which case I’m not sure, but it’s what’s advised). I guess I could set the policy to reject in order to get rid of this kind of spam. It’s kinda fun to learn all this stuff this way though.

So apart from the technical side of spam, what was interesting was searching for that bitcoin address, since, I expected other people to warn against the hoax. Not all, but many of the hits on the first two pages were actually pages (with identical copy, so clearly content farmed) treating the threat seriously and recommending you run some (likely fake) anti-malware software (Windows, even though the mail is delightfully unspecific with ‘os’). So I guess these pages are part of the fishing campaign. I can fully imagine that this is enough to convince people to send money, and they bitcoin being bitcoin, we can easily check the ledger to see they indeed are doing that, and the creator of the campaign is also taking money from the account as of yesterday: 182PJESsEWbuJ8PEgfM58p64jbok3i1gNU.

And now for something completely different. Yesterday I spent my time not clearing out bitcoin addresses, but discovering how easy it is to send and receive GPG signed and encrypted mail with Protonmail. You may have read earlier messages about how it wasn’t so easy to set up clients with my keypair, so I guess that’s the nice for which Proton gets and deserves all its fame. I’d like to add that I also discovered key exchange in Kmail can be as easy as clicking ‘add my public key’ when you’re drafting a new email. Too bad Proton doesn’t do IMAP/SMTP without that silly bridge of theirs, and is kinda expensive in case you want to hook up your own domain.

Pensioenakkoord

Het filmpje is al een paar maanden oud, maar omdat pensioenen nooit oud nieuws zijn, post ik deze samenvatting van het pensioenakkoord toch nog:

Bovenstaande was het voorstel waarover nu gelukkig de onderhandelingen in het slop zitten, maar het zou goed kunnen dat het er op termijn toch nog van komt. Er zit uiteindelijk ook niemand van onder de 50 aan tafel daar, en boomers doen dan gewoon wat boomers altijd al deden: de rekening op de kinderen afschuiven.

Depolarisator

Via een interessant artikel kwam ik achter Bart Brandsma, een professioneel “depolarisator”. Op zijn website, polarisatie.nl vind je wat uitleg, in de vorm van o.a. een toegankelijk filmpje. Dit is eigenlijk wel een heel goede handleiding om bepaalde vraagstukken in met name internetdiscussies te benaderen. Het bevat dus ook een handleiding voor hoe in te grijpen: bruggen bouwen werkt soms averechts, iets dat ik wel herken ;)

Toen de auteur vroeg: valt depolariseren te leren:

De kunst is vooral: durf je te wachten met het vellen van een oordeel? Kun je om een vraagstuk heen draaien zonder meteen een positie in te nemen? Net zo lang vragen stellen tot je weet wat er echt, onder de oppervlakte, aan de hand is? Oog hebben voor de gevoelsdynamiek, en niet alleen voor de rationele kant van een conflict? Dat zijn gewoon vaardigheden die je kunt leren.

Albert Speer

Deze naam ken ik vooral van de BBC documantaire The World at War, waar hij een van de geinterviewden is en uiteraard een blik geeft in de gang van zaken aan de top van het Derde Rijk. Al is en blijft het een dader, het feit dat hij (enige) openheid van zaken lijkt te geven, spreekt voor hem.

Hij neemt ons hier, en in al zijn eerdere biografien, bij de neus, volgens Magnus Brechtken. In zijn biografie van Speer komt een heel ander beeld naar voren, namelijk die van de rasmanipulator die hij was en bleef tot het eind. Brechtken stoelt deze stelling op origineel bronnenonderzoek, waar hij voorgaande biografeurs verwijt zich hoofdzakelijk te baseren op de verhalen van Speer zelf. Geen van hen is de archieven ingedoken volgens Brechtken, wat natuurlijk schandelijk is en direct de geloofwaardigheid van elke andere biografie op losse schroeven zet. Is dit volstrekt de gang van zaken?

In elk geval komt in het interview bij de NRC meer naar voren over hoe hij zorgvuldig de geschiedenis is gaan schrijven na de oorlog, opdat we hem op vreemde manier toch sympathiek zouden vinden en hem het voordeel van de twijfel rondom zijn holocaust-onwetendheid zouden gunnen. Mooi niet, volgens Brechtken. Dat manipuleren deed hij met Hitler zelf, door hem te geven wat die wou zien in termen van groteske architectuur. Credit nemen voor andermans zaken, “Führernähe” gebruiken om invloed over dertien miljoen arbeiders te bereiken.

Het beeld is een ongebreideld en kennelijk buitengewoon effectief egoisme, waar wereldwijd historici en publieke opinie in is getrapt. Brechtken wijst aan waar in het archief zijn misdaden zoals het gebruik van arbeidskrachten uit concentratiekampen voor zijn constructies staan opgeschreven.

Ik ben er ook ingetuind.

Hourglass interfaces

A friendly redditor put me on the path of the Hourglass Interface. It’s a pattern that facilitates stable ABI interfaces, such as those between program and library. If you control all the source code this is usually not an issue, but even if you do, you may want to be able to use libraries and programs compiled with various compilers. In particular, this is a problem with C++, where something as basic, yet complex, as std::string is not binary compatible between compilers, and not even between compiler versions (you know who you are, Visual Studio. At least Microsoft seems to have changed this with VS2017).

So, what’s a stable ABI interface? C! Our old, reluctantly typed friend is the defacto binary interface because it’s simple, and never really changes. Well, it has, but C89 is spoken by virtually every FFI (foreign function interface) out there. So, Stefanus Du Toit argues, it is the perfect solution for solving ABI compatibility. It even facilitates creating binding with e.g. SWIG, because you’ll be designing the interface intentionally, rather than letting SWIG figure it out (probably suboptimally, which it can’t really help). The hourglass refers to the interface: we must squeeze, from out fat application, through C89, to the again (possible) fat library. Of course, you are free to chose something else, as long as your language can cooperate. Stefanus placed his example here.

Another comment on reddit pointed to cppcomponents, a library that automates some of this. I haven’t looked into it very deeply yet, but for sure I’m keen to try out this pattern.

Conda is a package manager

This article cleared up what (Ana)conda precisely is. Altough I’ve used the miniconda installers and the mkl-built numpy library for a long time to get modern and fast version of the various scientific libraries working on a variety of platforms (Ubuntu with outdated matplotlib, CentOS servers with even more outdated or simply unavailable packges, Windows desktops). So it turns out conda is a package manager (I’ve always used the command as such) and just provides hosting for the packages. Anaconda is the distribution that you can also download, and then possible pay for support on. I did not know that conda is pippable!