Category Archives: Software

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 golem.de.

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 https://userswp.io , 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);
curl_close($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 0.0.0.0/16  146.x.x.x
sudo route -n delete 0.0.0.0/16  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

Add NAS

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

Start

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

Stop

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

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;
print_r($out);

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="https://webtv.bundestag.de/player/macros/bttv/hls/player.js?content=6995628&phi=default">
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
</script>

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 stats.stackexchange.com 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.