Skip to content

Month: August 2017

“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.


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.


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

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().


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:


Scaling, automatically and manually

There is an interesting article by Brendan Gregg out there, about the actual data that goes into the Load Average metrics of Linux. The article has a few funnily contrasting lines. Brendan Gregg states

Load averages are an industry-critical metric – my company spends millions auto-scaling cloud instances based on them and other metrics […]

but in the article we find Matthias Urlichs saying

The point of “load average” is to arrive at a number relating how busy the system is from a human point of view.

and the article closes with Gregg quoting a comment by Peter Zijlstra in the kernel source:

This file contains the magic bits required to compute the global loadavg figure. Its a silly number but people think its important. We go through great pains to make it work on big machines and tickless kernels.

Let’s go back to the start. What’s the problem to solve here?

Leave a Comment

And the cost of energy storage?

Kittner, Lill and Kammen made use of a model similar to the one for PV pricing in their Paper Energy storage deployment and innovation for the clean energy transition (PDF) to model and predict pricing for batteries.

A deeply decarbonized energy system research platform needs materials science advances in battery technology to overcome the intermittency challenges of wind and solar electricity. […] Here we analyse deployment and innovation using a two-factor model that integrates the value of investment in materials innovation and technology deployment over time from an empirical dataset covering battery storage technology. […] We find and chart a viable path to dispatchable US$1 W−1 solar with US$100 kWh−1 battery storage that enables combinations of solar, wind, and storage to compete directly with fossil-based electricity options.

Leave a Comment

Evaluating the Changing Causes of Photovoltaics Cost Reduction

Evaluating the Changing Causes of Photovoltaics Cost Reduction

Why is PV Solar Energy getting cheaper and cheaper?

We find that increased module efficiency was the leading low-level cause of cost reduction in 1980-2001, contributing almost 30% of the cost decline. The most important high-level mechanism was R&D in these earlier stages of the technology. After 2001, scale economies became a more significant cause of cost reduction, approaching R&D in importance. Policies that stimulate market growth have played a key role in enabling the cost reduction in PV, through privately-funded R&D and economies of scale, and to a lesser extent learning-by-doing

Leave a Comment