Category Archives: Software

Computer skills

We usually assume – even in science – that many if not all have high computer level skills. But that may not be true according to the Nielsen Norman Group. They summarize the results of any OECD survery where 215,942 people were tested, with at least 5,000 participants in most countries.

26% of adult population
can’t switch on Computers

14% – Below Level 1
Being too polite to use a term like “level zero,” the OECD researchers refer to the lowest skill level as “below level 1.”
This is what people below level 1 can do: “Tasks are based on well-defined problems involving the use of only one function within a generic interface”.  An example of task at this level is “delete this email message” in an email app.

29% – Level 1
This is what level-1 people can do: “Tasks typically require the use of widely available and familiar technology applications, such as email software or a web browser. ” An example of level-1 task is “Find all emails from John Smith.”

26% – Level 2
This is what level-2 people can do: “At this level, tasks typically require the use of both generic and more specific technology applications.” An example of level-2 task is “You want to find a specific document that was sent to you by John Smith in October last year.”

5% – Level 3
This is what this most-skilled group of people can do: “At this level, tasks typically require the use of both generic and more specific technology applications.” An example of level-3 task is “You want to know what percentage of the emails sent by John Smith last month were about a specific topic.”

Eine Beglaubigung reicht nicht – Wissenschaft im Vakuum

Mit dem Übergang von der persönlichen Betreuung der Doktoranden zu den “research schools”, aber auch der immer längeren und immer schlechter bezahlten Promotionszeit, sind die direkten Stellenbewerbungen aus der eigenen Hochschule oder dem eigenen Bundesland immer weiter zurückgegangen.

Die Zeugnisse aus den Bewerbungen ausländischer Bewerber werden mühsam übersetzt und beglaubigt und dann mehr oder weniger vorausgesetzt, dass dieselben Bildungsvoraussetzungen vorliegen. Das reicht aber nicht, denn Wissenschaft findet nicht im Vakuum statt, so auch ein Kommentar in Science diese Woche.

A student at the small liberal arts college where I am a biology professor had allegedly posted anti-Semitic neo-Nazi rhetoric on social media. Faculty members and students alike were shocked. The bubble of our close-knit community had burst; the realities of the external world were now the realities of our internal world, too. In the hours and days that followed, we all asked, “How could this happen?” Students asked another question, too: “Why don’t faculty in our STEM courses discuss these issues with us?” This second question troubled me.

Vielleicht sollten wir mit unseren ausländischen Studenten nicht nur fachspezifisches Wissen vermitteln, sondern auch über Ethik reden. Oder vielleicht auch über politische Fragen.

Whatsapp durch Email ersetzen?

Eigentlich wäre es eine gute Idee, über IMAP Facebook auszuhebeln. Im Prinzip ist ja auch Chat über IMAP möglich – COI Implementierung u.a. von Delta Chat. Praktisch gibt es aber dann doch Probleme wegen der veralteten Verschlüsselung oder wieder verloren gegangenen Nachrichten. Schade eigentlich, so auch

Forward WordPress URL variable to iframe URL variable

It may not be the best programming idea, but iframes are still quick way to add an existing page into a WordPress hierarchy.
The are many ways to forward an URL variable to an iframe (php function, plugin, …) while I think the easiest way is a short javascript

url_string = new URL(window.location.href);
uuid = url_string.searchParams.get("uuid");
new_url_string = 'https://xxx/index.php?uuid='+uuid;
el = document.getElementById('iframe');
if (uuid) { el.src = new_url_string };

and hook that into wordpress at the end of functions.php

add_action( 'wp_enqueue_scripts', 'myscript' );
function myscript() {
	wp_enqueue_script( 'myscript', 'https://xxx/myscript.js"', array(), false, true );

the last wp_enqueue_script parameter is important…

Verify phone number by SMS

Even many bank accounts rely on it. But given the fact that there are a dozen of web sites commonly used to receive SMS authentication tokens on behalf of users (Twilio, Sellaite, Pinger, TextNow…) it may be insecure as the SMS are public available. A new study in Firstmonday looked into that and found some astonishing results. As expected most users needed it for Tinder… More importantyl, 76.5 percent of those messages included the name of the application for which the message was intended compromising their accounts.

Multisite WordPress user management is a pain

I installed the “Network Subsite User Registration” plugin which gives an extra menu point at each dashboard under Users>Registration>allowed  There is, however, a glitch as wp-activate.php redirects to the main site in “signup-welcome” and “lead-in” sections that need to be commented out.

After all, I changed to “Profile Builder“, but it had its own problems, missing functions, large overhead, $$$ for extras and strange formatting instead of using the theme definitions.

Finally, I ended up with , a lightweight user profile plugin that features front end user directory, a registration and a login form. The only modification here is another line in my child theme to suppress the WordPress admin bar.

#wpadminbar { display:none !important;}

Test before redirect

I need to test if a ssl server is likely to respond before doing any forward as I would otherwise “loose” a projection screen.
As the server uses only a self-signed certificate, basically all javascript tricks (iframe on the fly, jsonp, …) failed either due to Cross-Origin Resource Sharing (CORS) rules. Even after switching to php the first two methods failed (get header, fsockets) while I finally ended with a simple curl request

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://localhost:8443');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_error($ch)[0]=="") header('Location: https://localhost:8443');

The best videoconferencing system (even running on a Synology box)

There are many $$$ systems. But there are also super nice systems like Big Blue Button, Apache Open Meeting and Jitsi that are working equally well if you stick to Chrome or Firefox.

I recommend Spreed WebRTC audio/video call and conferencing server. Just run

docker pull spreed/webrtc
docker run --rm --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 \
-v `pwd`:/srv/extra -i -t spreed/webrtc

and you are done. The only issue  – how to route your local IP to the docker container?

sudo route -n add -net  146.x.x.x
sudo route -n delete  146.x.x.x

In the meantime, I managed to get it also on the Synology DS418play but only with a manual installation using the DS216+ ii docker binary according to some helpful comments on the synology forum.

Firefox 66 runs  microphone, webcam and screen sharing without any problem, Chrome 73 needs a plugin for screen sharing.



How to mount your Synology NAS under OSX High Sierra


sudo nano /etc/auto_master
# Automounter master map
+auto_master		# Use directory service
/net			-hosts		-nobrowse,hidefromfinder,nosuid
/home			auto_home	-nobrowse,hidefromfinder
/Network/Servers	-fstab
/-			-static
/mnt/NAS		auto_nas

Add mount point

sudo nano /etc/auto_nas
Lightroom -fstype=afp afp://username:password@bilder.local/Lightroom


wakeonlan 00:11:32:xx:xx:xx
sleep 30
read -p "Press Enter to continue" </dev/tty
sudo automount -vc
exec sleep 1


diskutil unmount /mnt/NAS//Lightroom
ssh admin@bilder.local 'sudo shutdown -h now'
exec sleep 1

Stop without password entry

sshpass -p 'password' ssh admin@bilder.local sudo -S <<< 'password' shutdown -h now

Corrupted file list in Next Cloud

This seems to happen for whatever reasons – the server file list is not  in sync with the local file list and cannot even be modified manually. This may be a particular problem when you are at 1&1 /ionos with a hosted package. Here is a solution

$path = realpath(dirname(__FILE__));
#exec("php $path/console.php upgrade 2>&1", $out, $result);
exec("php $path/console.php files:scan --all -v 2>&1", $out, $result);
echo "<pre>result: " .$result .PHP_EOL;

Bundestag Videos in WordPress einbauen

WordPress verbietet aus Sicherheitsgründen das Einfügen von Javascript. Ich habe die Bundestagsverwaltung angeschrieben, ob sie nicht ähnlich wie Youtube einen Embed Code mit Iframe anbieten könnte, denn bisher bekommt man lediglich

<script id="tv6995628" src="">
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>

Natürlich könnten man in wp-config.php die Zeile define( ‘CUSTOM_TAGS’, true ); einfügen. Besser scheint mir aber, bis auf weiteres das Code Embed Plugin zu installieren und ein Custom Field für den Video Code anzulegen.

Das Ergebnis sieht dann so aus:

Das ist aber auch nur so lange sicher, als der Bundestag nicht wieder gehackt wird.

What is principle component analysis?

There is a wonderful description at how science should be taught

Imagine a big family dinner, where everybody starts asking you about PCA. First you explain it to your great-grandmother; then to you grandmother; then to your mother; then to your spouse; finally, to your daughter (who is a mathematician). Each time the next person is less of a layman. Here is how the conversation might go

This science not by some older science journalists or some younger science slammers but a real expert.