Skip to content

Month: August 2017

The road to hell is paved with outdated passwords…

So I am using Chrome in a corporate context. Outdated password regulations force me to increment my password every three months. The reason for that is well understood (PCI compliance), but can’t be changed from inside the corporation.

Previously, Chrome stored my passwords in the Apple Keychain. So I could script this, using /usr/bin/security and push my password change into all saved passwords, or, alternatively, bulk delete all those old passwords.

Recent Chrome does not do that any more.

9 Comments

“Zwangsbemüllung”. Oh, and phonebooks.

Photo: kandschwar

Somebody is still printing and delivering phone books (Article in German). 300 000 of them have been dropped all over Nürnberg, where they are now rotting (Facebook article in German), because nobody wants them.

German is a good language to make up compound nouns. The current one: »Zwangsbemüllung«

As compounds go, this one is pretty awesome:

Zwang = Force, Müll = Trash, bemüllen = a made-up verb from the noun Müll, where the prefix be- conveys a sense of ‘from above’ and a sense of passiveness. But -ung is a suffix that makes a verb a noun again, which makes the construct even more awesome.

Together, Zwangsbemüllung all in all it transports a sense of helplessness and suffering, while one has to endure trash which is being dropped on oneself. It’s a made-up thing that is not in the Duden, but it is perfectly clear what it means.

Also, only in Germany: Printed Phone Books are still a thing.

7 Comments

Why you can’t have nice things…

»Yay for discounts, aber die Einstellung vom Köhntopp finde ich ja eigentlich ziemlich vermessen und ekelhaft.«

Back in the day at university, there used to be a group of people who went to the Cinema every week on Thursday. We were sometimes six, sometimes more like ten people, but at the core it was a pretty stable group. Ticket sales started one week before and we are pretty consistently getting our tickets pretty much the hour ticket sales started.

10 Comments

PHP: Understanding unserialize()

The history of serialize() and unserialize() in PHP begins with Boris Erdmann and me, and we have to go 20 years back in time. This is the day of the prerelease versions of PHP 3, some time in 1998.

Boris and I were working on Code for a management system for employee education for German Telekom. The front side is a web shop that sells classes and courses, the back end is a complex structure that manages attendance, keeps track of a line manager approval hierarchy and provides alternative dates for overfull classes.

In order to manage authentication, shopping carts and other internal state, we needed something that allowed us to go from a stateless system to a stateful thing, securely. The result was PHPLIB, and especially the code in session.inc.

That code contained a function serialize(), which created a stringified representation of a PHP variable and appended it to a string. There was no unserialize() necessary, because serialize() generated PHP code. eval() would unserialize().

7 Comments

Making large tables smaller: Compression in MySQL

So JF has been busy abusing MySQL again:

  • An Adventure in InnoDB Table Compression (for read-only tables) is trying out different KEY_BLOCK_SIZES in InnoDB to find out which settings yield the best compression for a specific table.

    His sample script copies a table and compresses it with one setting, then does this again, and if the new version is smaller, keeps the new one. Otherwise the first version of the table is being kept. This is then done over and over until a minimum sized InnoDB compressed table has been created. JF managed to create a compression ratio of 4.53, bringing a 20 TB instance down to 4.5TB.

  • In Why we still need MyISAM (for read-only tables) he does the same thing with his database in MyISAM format, and then compresses using myisampack, which is ok because his data is read-only archive data.

    MyISAM uncompressed is 22% smaller than InnoDB uncompressed. Compressed, his data is 10x smaller than the raw InnoDB uncompressed, so his 20TB raw data is below 2T compressed.

Using MyISAM for read-only data is much less critical than it would be for data that is being written to: Data corruption due to the lack of checksums is much less likely, and while the lack of clustered indexes can not really be compensated, “myisamchk –sort-index” is at least keeping the regenerated indexes linear in the MYI files.

1 Comment

Monitoring – the data you have and the data you want

So you are running systems in production and you want to collect data from your systems. You need to build a monitoring system.

That won’t work and it won’t scale. So please stop for a moment, and think.

What kind of monitoring do you want do build? I know at least three different types of monitoring system, and they have very different objectives, and consequently designs.

Three types of Monitoring Systems

The first and most important system you want to have is checking for incidents. This Type 1 monitoring is basically a transactional monitoring system:

3 Comments