0 comment

How to read in a statistic whatever you want

Professor at chalkboardIt’s a common place that you can read nearly any result you want from a statistic. You just have to optimize your mathematical model or cut short the reasoning about the data. There is currently a JAMA publication from the American Medical Society which is cited in many magazines and newspapers (even in German Spiegel) as “22% less risk of colorectal cancer for vegetarians”. No ordinary reader of these reviews will have a look at the original numbers in the publication since it is not freely available (yet another reason for open Publication …). But here they are:

  • Vegetarian participants: 40367
    Cancer cases: 252
  • Nonvegetarian participants: 37292
    Cancer cases: 238

This makes for the following relative case numbers:

  • Vegetarian: 0,624 / 100 participants
  • Nonvegetarian: 0,638 / 100 participants

Or a difference of 0,014 cases per 100 people. This means, if you eat meat your risk to come down with a form of colorectal cancer increases by 0,014 percent. This reads quite different, doesn’t it?

0 comment

Changing filenames to camel case

Sometimes you’ll encounter the task to rename files named with snake_case to CamelCase. And sometimes there are a lot of those files. For example when porting a CakePHP 1 project to CakePHP 2 or 3. In CakePHP the upgrade console does a decent job renaming a lot of files for you. But in larger projects having subfolders you’re left with an awful lot of unrenamed scripts. This is where my Python 3 script comes in. It renames any filenames in the current directory given as parameters (thanks to Python 3 argparse you can use wildcards!) from snake_case to CamelCase filename. It preserves the extension if the filename has one. It also has a quiet mode (use -q) to suppress any output at the command line and a preview mode just like GNU make (use -n, supersedes -q), which doesn’t do anything but print out what it would have done.

(Picture by Startup Stock Photos CC 0,

0 comment

Knowledge series, Part 1 – Human capital vs. Human resources

2631466945_de1bbc2cfd_zThe term human capital was coined by american economist Theodore Schultz in his seminal paper “Investment in Human Capital” from 1961 [1]. He starts by discussing that often the consideration of human beings as a form of capital is seen as unethical. To count human beings as capital is justified by a rationale drawing on comparisons and discussions from the beginning of the 20th century, comparing e.g. this approach to sacrificing a hundred human beings in order to save a gun in war. Well, our views on war have changed since 1906. This might explain why today we tend to abhor counting humans as capital.

But there is a second approach originating in the theories of french sociologist Pierre Bourdieu readily summarized in 1986 [2]. He derives his concept of cultural capital from observations of french upper class children gaining substantial advantages in their life compared to working class children resulting from their education. He states that their parents invest economic capital (money) in the education of their children. They accumulate a certain amount of cultural capital which can later on be converted back to economic capital when the owners of the cultural capital get more profitable jobs because of their better education. This cultural capital is saved in what he calls the embodied form which means that the knowledge and education belongs naturally to the person acquiring it. It can not be sold like a physical item. When investing e.g. in a collection of paintings this capital can be seen as transformed into another form of economic capital since the paintings have a certain economic value. But the consumption and appreciation of art and its display at social events also counts as a form of cultural capital, this time in objectified state. When acquiring an academic title the title itself represents the embodied cultural capital of the title holder in a certain institutionalized state.

In contrast the term human resources is nowadays widely used to describe all that concerns staffing or personnel management. It was first used by american economist John Commons in 1893 [3] and was commonplace (please excuse the pun) in economic literature from the 1910s on. It represents the view of employees as assets to the firm. This interpretation is opposed by the preamble of the United Nations International Labour Organization including the principle “Labour is not a commodity“.

When forced to  choose one of the two terms I would opt for “human capital” since its philosophical and sociological implications put the human being at least a bit more in the focus of interest.


[1] Schultz, T. W.. (1961). Investment in Human Capital. The American Economic Review, 51(1), 1–17

[2] The Forms of Capital: English version published 1986 in J.G. Richardson’s Handbook for Theory and Research for the Sociology of Education, pp. 241–258.

[3] John R. Commons, The Distribution of Wealth, New York, 1893

(Picture by Ian Muttoo CC BY-ND 2.0,

0 comment

Knowledge in and out

wp-1456109997332.jpgIn my last post I mused about employer policies concerning training and learning of employees. I would like to use this as an introduction to a series of postings related to knowledge management and innovation in firms. Much has been written and discussed about the creation and finding of knowledge. From a practical point of view and in philosophy, which discusses these topics as epistemology. In this first installment I would like to give an overview of what’s ahead and how I would like to structure my texts.

My first approach was to put all of this in two or three postings. Since this is way too much text to be read comfortably I will divide the topics in a more or less natural way like this:

  1. The idea of human capital in contrast to human resources
  2. Philosophy and theory of knowledge, from information via knowledge to innovation
  3. Flow of knowledge in the firm and exchange with external resources
  4. Knowledge management from a social network point of view
  5. Challenges for human resources departments concerning knowledge management
  6. Impediments for knowledge creation and usage (e.g. Not-Invented-Here-Syndrome, NIH)
  7. The state of open innovation
  8. Simulation of knowledge flow and NIH using cellular automata

What do you think? Interested? Is something missing? Should I reorder the topics? Let me know!

(Picture by Tommy Ellis CC BY-ND 2.0,

1 comment

Degradation on the job

I remember a conversation with my father-in-law. We were discussing the transition of my freelancing work into an employment. We spoke about the salary and benefits in the contract. He asked, if I had included a surcharge for being on a permanent task. I asked him to explain. And here is the bottom line.

Photo from Death to Stock photos

We (in this industry) are knowledge workers. This is a much overly used phrase. It boils down to that our value as an employee or freelancer depends on our knowledge, be it explicit or tacit. If we are hired for a certain position, we need to keep at it. There are several possibilities how we can do that. Going to conferences, taking a training, meet colleagues etc. This needs time. And sometimes money. All this expenditure has to be accounted for. By you or by your employer. He may support you with money or free time or he may not (which is common in Germany). If not the salary has to compensate for your personal investment. So why has he to do that?

Because his order to work on a certain task or field for a (supposedly) very long time distracts you from acquiring additional knowledge. If you would still be freelancing, hopping from gig to gig you would to some extent learn new things. And you would invest some of your time and / or money in getting new things to know. Since you are your own boss.

If you work on a defined focussed task for a longer time, you will be left behind on your fields of expertise. This once was the reason you were hired. After some years, your worth as a coworker will degrade. And this is the reason good employers care for your knowledge.

1 comment

How to merge two WordPress blogs

Introduction and Overview

For some of you it might be pretty obvious how to do that. But for some of my readers this might be a new topic. So here is a short overview of how to do it:

  1. Test if it works:
    1. Prequisite: you’ll need a locally running web server with PHP support. If you don’t have one, you could try to test the merge on a second web server, but alas that’s out of the scope of this posting.
    2. Download the destination blog and install it locally.
    3. Install the WordPress Command Line Tool.
    4. Download all articles from the source blog as XML file.
    5. Install the WordPress Import plugin.
    6. Try to import the XML file.
  2. If all works well, repeat that (without step 3 since the URLs are ok for production) in the production instance of the destination blog.

Local test

Download destination blog

First we need a download of the blog, where all postings should be merged together. This means:

  • Zip or tar the whole WordPress directory together, get it down to your machine.
  • Install it as a virtual host on your local web server.
  • Get a full export of your WordPress database.

My WordPress directory was called “www” and resided in /opt/sites/de/technologyscout (that’s how all my web server document roots  are organized /opt/sites/TLD/DOMAIN/SUBDOMAIN). So I downloaded it to my laptop, moved it to /opt/sites (yes, I maintain that also locally) and renamed it to “techscout”.

If you’re like me, it’s a good idea, to look up the database credentials in WORDPRESSROOT/wp-config.php:

I also like to have exactly the same credetials locally, so at the MySQL command line I do:

Then I import the downloaded WordPress database with:


Install WordPress Command Line Tool

Since WordPress has a habit of saving absolute URLs in the database, which is btw. a very bad and stupid habit, we need to patch those URLs to work locally. This is done with the indispensable wp-cli tool:

This will replace every occurrence of with http://techscout. Now please try to log in with your credentials. Everything should work locally now. Please have a look at the URL in your browser after login. If you see the productive URL (for me this means the search and replace didn’t work as expected.

Download XML archive with all postings

Please go to Tools -> Export in the admin and select “Posts”. You’ll see additional options. I selected:

  • Categories: All
  • Authors: All
  • Start date, End date: Nothing, just go with –Select–
  • Status: All (You can only import published posts, if you like)

Now click on “Download Export File” and save the file locally.

Install WordPress Import plugin

Now please go to Tools -> Import inside the admin panel. You will see a list of options similar to this one:


Please select the last entry called “WordPress” (who could guess that, right?). If you didn’t have the WordPress import plugin installed WordPress will ask you if you would like to do so right now. We certainly want to. After installing the plugin, we are ready to …

Import the WordPress XML file

Proceed by selecting the input file we just downloaded. Everything should work smoothly. The imported postings should be sorted according to their original date into the database.

Do it in production

It’s a good idea to get a database backup of your production destination database before importing the blog posts. Then go to Tools -> Import, install the import plugin if needed, and import the XML file we already used locally.

That’s all. Have fun!

0 comment

Blogumzug – Blog move


Hallo, vielleicht wundern Sie sich, daß Sie auf dieser Seite landen, obwohl Sie die deutsche Version sehen wollten. Ich habe festgestellt, daß es auf Dauer eher unsinnig ist, zwei Blogs mit ähnlichen Inhalten zu verwalten und habe daher die beiden Blogs zusammen gelegt. Die Inhalte von finden Sie jetzt auch hier auf der Seite.


Hi, you might wonder why you got here instead of seeing the german version you expected. I realized, that it is a bit of a hassle to support two blogs with very similar content, so I merged them. So now you can find the content from in here.

0 comment

Practical tips for using map()

When using map() you sometimes can be fooled by Pythons lazy evaluation. Many functions returning complex or iterable data don’t do this directly but return a generator object, which when iterated over, yields the result values.

But sometimes you will need the result set at once. For example when map()ing a list one would sometimes coerce Python to return the whole resulting list. This can be done by applying the list() function to the generator like this:


In line 5 I have to recreate the map object since print() seems to empty it.

When applying a standard function with map() it’s needed to qualify the module path on call:

In this case it’s the str module:


Thats all for now. Have fun.

1 comment

Aber du liebst deinen Job doch, oder?!?

Heute würde ich mich gerne kurz mit dem Verhältnis von Arbeitgebern und Arbeitnehmern in Festanstellung beschäftigen. In diesem Bereich greift immer mehr der Usus um sich, all-incl Arbeitsverträge zu machen. Das bedeutet, darin stehen so Formulierungen wie

“Mit dem Grundgehalt gelten alle Überstunden bis zur gesetzlichen Höchstgrenze als abgegolten.”

Wenn man seinen Unmut darüber äußert, daß man Arbeitszeit leisten soll, die dann nicht gesondert vergütet wird, heißt es oft: “Oh, das geht nicht. Da haben wir ja keine Kontrolle über die Kosten!”

Um es einmal klar zu sagen:

Keine Überstunden zu vergüten bedeutet, das unternehmerische Risiko auf den Mitarbeiter abzuwälzen.

Ein Unternehmen nimmt einen Auftrag an und hat dafür eine Vergütung vereinbart, die aufgrund der Angaben des Auftraggebers abgeschätzt ist. Wenn da etwas nicht stimmt, ist das kein Risiko, daß ein Arbeitnehmer tragen sollte. Das ist unredlich.

Man kann das auch von der anderen Seite sehen: mein erster Projektvermittler als Freelancer meinte mal auf meine Einlassung: “Ach, das halbe Stündchen hab ich nicht aufgeschrieben!”:

Ihre Arbeitszeit ist das einzige Gut, daß Sie zu verkaufen haben. Verschenken Sie das nicht. Ihnen wird auch kein Geld geschenkt.

Natürlich sollte man das lieben oder wenigstens gern machen, was man beruflich tut. Und was man gern tut, da schaut man nicht auf die Minute. Aber so lange ich kein Geld für nichts geschenkt bekomme, kann ich keine Arbeitszeit für nichts verschenken. Manus manum lavat nannten das die Römer …

0 comment

Sense and Sensibility of enterprise IT policies

From time to time I come across a sort of dispute or even sometimes war at companies of every size: the central IT department tries to impose a certain hardware or software policy on the coworkers they are entitled to take care of.

Every time this happens there are discussions of BYOD vs. company owned devices. The IT departments claim that they can’t guarantee a certain service level, when they don’t have access to the resources used by the coworkers. The supporters of BYOD argument that using their own chosen hard- and software augments productivity and satisfaction.

I have to confess that I’m a strong campaigner for using my own devices and software at work. But to get some insight into this topic we need to separate different requirements determined by the type of job the employees do:

  1. Office workers need to get things done. With standard tools. They often are happe to have someone to call if things don’t work like expected or needed.
  2. Software engineers use their (mostly) laptops to build software. They need some control over the environment they work in. Libraries, databases, IDEs, operating systems. They choose the tools hat get the job done. When things don’t work they are able to fix problems by themselves.

These two roughly separated requirement profiles are opposed by two sorts of enterprise environment:

  1. Proprietary systems and protocols chosen by the IT departments because they know these systems very well and know how to get support from the provider. Things in this category may contain: Microsoft products (Windows, Exchange, …) or enterprise groupware systems like Novell Groupwise, Lotus Notes etc.
  2. Open protocols and services offer similar options but with a different type of maintenance.

Both approaches require nearly the same amount of maintenance but of different types. Proprietary systems often offer poor support to clients offside of the mainstream. For example have you ever tried to connect an Apple laptop to a Novell file share? Don’t try. You’ll get mad about getting the right client tools, software incompatibilities and stuff like that.

So there is a natural match for BOYD environments: use standardized protocols and services like NFS, SMB (which both have their origin in proprietary systems …) or mail protocols like SMTP and IMAP.

If your users would like to work without tinkering with software or services: use a centralized management system. This doesn’t naturally contain closed source and proprietary tools. But often it does.

For a company with technologically apt users it’s better to adopt the BOYD way to maximize productivity and user satisfaction. The latter often is no valid point with IT service departments. Then it’s the job of the people whose job it is to provide a suitable working environment for happy colleagues to make the service departments to work they way they are supposed to work.

This seems to be a particular problem in Germany where I often enjoy contact to IT service departments featuring a very self-centric philosophy. The notion of being a service department to help others do their job is not very popular.

Several studies show that companies are seen as more attractive to new employees when they allow BYOD policies.

On the other hand there are security considerations to be taken into account. But I don’t know of any company owned system that prevents willful or even lazy security breaches.