Category Archives: Software

python3 cv2 installation

Homebrew is struggling with the older python 2.7 version that is missing ssl support. Python 3.8 did not recognize cv2 but this finally worked

brew install python3
brew postinstall python3
pip3 install virtualenv virtualenvwrapper
virtualenv env_name --python="python3"
/Users/wjst/env_name/bin/pip3 install opencv-python
/Users/wjst/env_name/bin/pip3 install pandas scipy matplotlib Pillow tqdm sklearn imageio
/Users/wjst/env_name/bin/python3 -c "import cv2"

then I could finally run the image forgery detection from Github.

cd /Users/wjst/Desktop/image-copy-move-detection-master
/Users/wjst/env_name/bin/python3
> from copy_move_detection import detect
> ...

Was ist eigentlich Meinung, was ist Tatsachenbehauptung?

Volker Kitz erklärt den Unterschied

Was ist eine Meinung? Eine Meinung gibt ein persönliches Werturteil wieder. Das wesentliche Merkmal der Meinung ist: Sie kann nicht “richtig” oder “falsch” sein, man kann sie nicht überprüfen. Das unterscheidet die Meinung von der Tatsachenbehauptung. Sage ich: “Mein Nachbar prügelt seinen Hund”, lässt sich diese Äußerung überprüfen, ist also eine Tatsachenbehauptung. Sage ich hingegen: “Der Lebenswandel meines Nachbarn ist inakzeptabel”, lässt sich das nicht überprüfen. Andere können das anders sehen. Es ist eine Meinungsäußerung.

Das ganze ist deshalb so schwierig weil zuweilen Meinung und Tatsachenäußerung direkt in einander übergehen. Über eine Tatsachenbehauptung lässt sich manchmal sehr einfach auch eine Meinung transportieren. Tucholskis “Soldaten sind Mörder” beinhaltet die Tatsache, dass Soldaten unter bestimmten Voraussetzungen andere Menschen töten (die Aussage ist also durch Art. 5 Abs. 1 GG gedeckt …).
Allerding muss die Tatsache an sich stimmen. Mit unwahren Aussagen kann man sich nicht auf Meinungsfreiheit berufen.

Image and text forensics

I was looking for some simple tools for clone detection in pictures – unfortunately or luckily – there is no one button solution also in 2020.

To extract the pictures I use unar (“brew install unar”) which preserves much more detail than a screenshot. For the next step, I can recommend Forensically, Fotoforensics or Reveal.

Maybe there are also situations where some some individual adjustments are needed where I move to Affinity like in the following picture.

source https://twitter.com/science_surf/status/1216269150064082946

For text plagiarism check, it probably needs some paid service: docoloc, Plagscan or Turnitin (German researchers may get an account at GWDG in Göttingen). For simple text comparison I use BBEdit while for PDFs I suggest Copyleaks.

“There is currently worldwide concern over corruption in education. This concern touches all Member States and all levels of education” according to the European Counsil. Academic integrity is now a major issue that needs much more attention.

Link out symbol

I have been looking for a wikipedia-style link out symbol (wikipedia uses a svg symbol). Some websites recommend font awesome symbol /f08e others are in favor of the north east arrow #x2197; while I modfied now a code pen by thiago for the css of this wordpress child theme

  a:not([href*='wjst.de'])::after {
    content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==);
    margin: 0 3px 0 5px;
  }

How to include a PDF in reveal.js

Right now there is a lot of information out there how to export a reveal presentation as PDF but much less not how to include a PDF document. The most natural way would be some embed

<section><object data="test.pdf" style="width:100%"><a href="test.pdf">PDF laden</a></object><section>

looks strange, not full frame, no handlers

<section data-background-iframe="test.pdf" data-background-interactive></section>

works but cannot jump to a certain page and cannot style the background.

So I am using now additionally the Chrome plugin that is based on pdf.js.

Nicht repräsentatives Sampling

Ob das Sinn macht? Krautreporter hat eine sehr positive Zusammenfassung von neueren Internet basierten Umfragemethoden

Eine nicht zufällig ausgewählte Stichprobe wird aber immer die zweitbeste Option bleiben. „Wenn man eine repräsentative, zufällige Stichprobe bekommen kann, wird jeder Wissenschaftler immer das nehmen”, sagt Gschwend. Das ist aber in der Regel viel teurer. Deshalb müsse man aus wirtschaftlichen Gründen die Nicht-zufällige-Stichprobe in der Wissenschaft vorantreiben und neue Verfahren mit Big Data weiterentwickeln.
Berechnet wird die Civey-Umfrage mit verschiedenen höheren statistischen Methoden, die Bayesianische Statistik, Riversampling, Poststratifizerung und Raking heißen, und die von deutschen Meinungsforschern noch recht selten verwendet werden.

Es gibt nur leider kaum eine Alternative zu einer repräsentativen oder einer totalen Befragung, auch bekannt als garbage in, garbage out Phänomen. Das bleibt so auch mit big data hype und Kalibration am Mikrozensus. Wenn Daten fehlen, dann fehlen sie. Einmal kann die Interpolation stimmen, aber beim entscheidenden nächsten Mal stimmt sie dann doch nicht. Dazu werden solche Umfragen durch immer ausgefeiltere Bots bedroht.

Civey und Opinary sind wohl mehr Marketing Methoden als Meinungsforschungsinstitute.

Was steht in dem zitierten wissenschaftliche Artikel?

After adjusting the Xbox responses via multilevel regression and poststratification, we obtain estimates which are in line with the forecasts from leading poll analysts.

Das Sample hier ist die Gamer Szene: 90% Männer, 10% Frauen, bei denen Stimmungsschwankungen in 3 Tagesabständen gemessen wurden.  Da Frauen bei der letzte Europawahl aber zu 24% Grüne wählten, aber Männer aber nur zu 18%, wäre der Forecast hier irrelevant, was heisst da schon ein Anstieg von plus 2% dieser Männer?
Und was ist mit Ereignissen kurz vor der Wahl, welche die Gamerszene nicht mitbekommen hat? Der Mobilisierung von Nichtwählern?
Zudem ist das amerikanische Wahlsystem nur eingeschränkt als Modell zu gebrauchen; die tatsächlichen 332 Wahlmänner wurde im übrigen mit der Vorsage 303 Wahlmänner deutlich verfehlt.

Print your reveal.js presentation

I like the reveal.js framework for slide presentation, while I have even written a remote control for it.
Reveal allows branching of your slide presentation, has some zoom capability and can include external websites with interactive and dynamic plots. Best of all, the display is really full-frame when displayed with Chrome.
Maybe it is important to note, that I still produce slides in Keynote but export them into a directory that serves as a repository for building the final reveal presentation.

<div class="reveal">
  <div class="slides">
<?
$files = glob($dir . '/*');
for ($i = 1; $i<= count($files); $i++) {
  echo '<section data-background-image="' . $i . '"/><span></span></section>';
}
?>
  </div>
</div>

Printing the final presentation isn’t straightforward as the built-in mechanism did not work for me with dynamic slides although they already exist:

Reveal.addEventListener( 'slidechanged', function(e) {
  createChart();
});

The only solution that worked for me is decktape which produces a valid PDF

brew install node
npm install -g decktape
decktape -s 1280x720 reveal http://myserver/reveal.php reveal.pdf

Remote control your reveal.js presentation

Add this somewhere at the end of your presentation.php

function sync() {
$.ajax({url: "position", success: function(e){
      Reveal.slide(e);
    }
  });
}
if (!window.location.search.match( /master/gi ) ) {
	setInterval(sync,1000);
    Reveal.configure({
  		keyboard: {
    	13: null,
    	23: null,
        32: null,
        37: null,
        38: null,
        39: null,
        40: null,
        68: null
  		}
	});
}
Reveal.addEventListener( 'slidechanged', function(e) {
	 $.ajax({
	 	url: "write.php",
	 	type: "get",
	 	data: {"k":e.indexh}	 	
    });
});

write.php

$fp = fopen('position', 'w+');
$k=$get["k"];
fwrite($fp, $k);
fclose($fp);

presentation.php?master will control the presentation. A simple presentation.php even at a dozen locations will show it.

Update problems of MacOS Catalina

MacOS Catalina is bringing a lot of problems as 32 bit support is now being removed. Various software packages are broken.

Microsoft Office 2011 is gone as I will NOT pay an annual subscription of $69.99.

TextWrangler is gone, not sure if BBEdit will replace it?

ScanSnap doesn’t work. After a long search, I found an update.

Syncovery stopped working. Bought an update for 29,95€.

Transmit, New version 45.00€.

Little Snitch doesn’t work. Bought an update for 25,00€. Re-installed Catalina a second time (!)


Carbon Copy Cloner is defect. New Version $37,70.

Lightroom doesn’t recognize tethered Nikon cameras. Found a work-around although the end is near as I will NOT pay any monthly subscription of 11,89€.

Haven’t checked Capture One DB so far (but there are reports that it it will be  slower).

Find Any File can be updated.

Max is gone.

Garmin Basecamp is gone – don’t care.

Quick Time Broadcaster is gone – don’t care.

Picasa is gone – don’t care.

Remote Desktop Verbindung can be updated.

Tuxera NTFS Disk Manager – no more necessary.

Home Concert Xtreme: Not working right now, update promised.

Catalina therefore will cost you 150€ and 5 hours.