That Time Of Year Again, 2018 Edition

It’s that time of year again where I start planning things for 2018.

Every year, I hack together a simple Year-at-a-Glance calendar, in the German style (but without Kalenderwochen).

— It fits on two double-sided A4 or letter-sized sheets of paper.
— It doesn’t have any stupid inspirational quotes.
— It doesn’t violate any of Edward Tufte’s rules for honest information design.
— It doesn’t win any awards for originality.

Here’s my 2018 Year-at-a-Glance Calendar (A4-sized)

Here’s what it looks like on A4 paper, easy to use, easy to carry around:

Every year I hack up a 2-page calendar, which is easy to carry around and helps me keep track of things. I am not Franklin Covey, I am a highly-effective person, I hate carrying useless paper around.

Here’s the 2018 Year-at-a-Glance Calendar (Letter-sized).

With a double-sided printer, print pages 1 and 4 first, then 2 and 3; doing this means you can look at 6 months at a time.

Majority-Circuits Are Good

Pretty interesting writeup of a hack on the SWIFT banking system last year: http://baesystemsai.blogspot.de/2016/04/two-bytes-to-951m.html

One thing that is astounding to me is the fact that the SWIFT network seems to rely on human bankers to double check paper receipts. And that the system checks rules on the individual client computers. Endpoint nodes, in other words.

I would have expected that given the volumes of money involved, there would be majority-circuit systems in place: i.e. one Windows machine, one Linux machine, one Mac machine, which all have to validate transactions using identical input. Inconsistencies in output would then indicate whether some kind of hack was occurring on one of the three systems.

This would prevent any single point of failure from causing invalid transfers to occur and it would mean anyone wanting to crack your system would have to find 0-day vulnerabilities on at least two heterogeneous machines.

On aircraft, this kind of multiple redundancy means that many critical electronics units have two or possibly three systems processing the same information. Sometimes this also means multiple power supplies, multiple AFDX networking switches, even potentially using two different CPU architectures and two different compilers to guarantee that bugs can be identified and mitigated in these foundational pieces.

Surely, I would hope money transfer systems have this kind of multi-layer defense-in-depth?

Goddamnit, Microsoft; Goddamnit, Realtek

Next time you do a goddamn driver update, don’t fuck with my microphone settings such that my Mom can’t hear me anymore when we Skype.

I didn’t touch anything in the sound settings, but somehow after this driver update:

She can’t hear me anymore. AWESOME.

Realtek, fix your goddamn settings too:

Beamforming doesn’t work, Acoustic Echo Cancellation doesn’t work, Keystroke Suppression doesn’t work. All of these things just turn the volume down and make it impossible for the other side to hear me.

How do I know? Because when I call my Mom on Skype, she can’t hear me.

Do you actually test your software? Like actually sit people down and have them Skype with your default settings?

Can you imagine the number of people who suddenly could not talk to their loved ones because of your boneheaded update?

The only way I managed to make the volume on the other side comprehensible was to disable all of this extra crap, which I had already previously disabled.