Bye-bye Facebook

Freitag, 22. Dezember, 2017

Nachdem ich heute einmal alle Aktivitäten heruntergeladen habe - das waren gerade einmal 8 MB, ich habe mit Schlimmerem gerechnet - wurde der Account deaktiviert.

2017-12-22-byebye-facebook.png

Kurz darauf kam eine E-Mail:

On 22.12.2017 22:16, Facebook wrote:
Hallo Axel,

wir haben eine Anfrage auf dauerhafte Löschung deines Kontos erhalten. Dein Konto wurde von der Seite deaktiviert und wird innerhalb von 14 Tagen dauerhaft gelöscht.

Falls du die dauerhafte Löschung deines Kontos nicht beantragt hast, melde dich bitte bei Facebook an, um diesen Antrag abzubrechen:

https://www.facebook.com/login.php

Danke,
Das Facebook-Team

Aber auch wenn der Account endgültig gelöscht ist, gebe ich mich keiner Illusion hin: natürlich weiss ich, dass mich Facebook weiterhin im Internet tracken wird.

weiterführende Links: (für Nachahmer :-))

  1. Seite Facebook: Mein Konto löschen
  2. Und wie sie sammeln… Heise: Datensammlung: Bundeskartellamt droht Facebook mit Sanktionen Entweder das US-Unternehmen schlage eine eigene Lösung vor oder das Kartellamt müsse “das Sammeln und Verwerten von Daten aus Drittquellen ohne ausdrückliche Zustimmung der Nutzer” verbieten, sagte Kartellamts-Chef Andreas Mundt.

Es wird Weihnachten …

Sonntag, 10. Dezember, 2017

… das merke ich in der Statistik von Jamendo: gut 33.000 Streams und knapp 800 Downloads im Monat habe ich sonst durch das Jahr nicht. Also nicht einmal ansatzweise :-)

2017-12-23-jamendo-streams.png

weiterführende Links:

  1. jamendo.com

Axel was here … OpenNebula Conf 2017

Mittwoch, 8. November, 2017

Na, ein Glück, gibt es ein Beweisfoto! Oder Suchbild. Je nachdem.
Demnach war ich wohl im Oktber 2017 in Madrid bei der OpenNebula Conf.

2017-11-08-opennebulaconf-01.jpg

Anm.: OpenNebula ist ein Verwaltungswerkzeug für virtuelle Server verschiedener Hypervisor (z.B. KVM, Xen, Vmware … und auch gemixt) in einem oder mehreren Rechenzentren für private, public und hybride Clouds.

weiterführende Links:

  1. opennebula.org

Diashow Algarve

Mittwoch, 11. Oktober, 2017

Im Oktober 2017 waren wir 1 Woche in den Ferien in Alfamar … einmal das Bild anklicken, um die Diashow zu starten:

Die dortige Hintergrund-Musik ist etwas mit Samples zusammengeklicktes. Weil es schnell gehen musste :-)
Download: mp3 (Axel Hahn; Lizenz: cc 3.0 by-nc-sa)

PHP-Funktion: Passwort-Check bei haveibeenpwned.com

Mittwoch, 16. August, 2017

Anbei eine Funktion, die mit der API von haveibeenpwned.com ein Passwort prüft, ob dieses als gehackt gilt.
Wenn die Funktion true zurückliefert, wurde das Passwort gefunden (sprich: wurde gehackt). Diese Funktion kann man z.B. in einer Applikation einbauen, wenn man Benutzer ihr Passwort setzen lässt. Wenn die Funktion true liefert, dann wäre die Benutzereingabe als unsicher zurückzuweisen.

/**
* check password in an online database; it returns true if the password
* was found in the database
*
* @see https://haveibeenpwned.com/API/v2
* @param string   $sPassword   password to check
* @param boolean  $bShowDebug  show debug infos or not (default: false)
* @return boolean
*/
function haveibeenpwned($sPassword, $bShowDebug=false){
   
    // --- make the request
    $sCheckPwUrl='https://haveibeenpwned.com/api/pwnedpassword/'.sha1($sPassword).'?originalPasswordIsAHash=true';
    $context = stream_context_create($opts);
    $sPwReturn = file_get_contents(
            $sCheckPwUrl, false,
            stream_context_create(
                array(
                    "http" => array(
                        "method" => "GET",
                        "header" => "User-Agent: php-check-4-my-password\r\nAccept: application/vnd.haveibeenpwned.v2+json\r\n"
                    )
                )   
            )
    );
    $aRespHeader=$http_response_header;
   
    echo $bShowDebug ? '<pre>'.$sCheckPwUrl.'<br>'
            . 'Header: '.print_r($aRespHeader, 1).'<br>'
            . '$sPwReturn = '.$sPwReturn.'<br>'
            .'</pre>' : '' ;
   
    // --- check result
    $bFound=array_search('HTTP/1.1 200 OK', $aRespHeader)!==false;
    echo $bShowDebug ? (
            $bFound ? 'ERROR: The password was found in the database :-/'
                : 'OK: seems not to been hacked yet :-)'
            ) : '';
    return $bFound;
}

weiterführende Links:

  1. https://haveibeenpwned.com/
  2. haveibeenpwned.com - API

PHP-Klasse cdnorlocal

Dienstag, 25. Juli, 2017

Eigentlich begann es als Abfallprodukt. Ich brauchte da in einer Web-Applikation eine Klasse … und habe halt jene kleine Klasse geschrieben: wenn ein Verzeichnis für eine Bibliothek im Vendor-Verzeichnis lokal existiert, dann wirf eine lokale URL zurück. Wenn nicht, dann eine zu einem CDN Hoster. Sowas packt man an sich als Funktion in einen 3 Zeiler.

Damit kann ich abstrahieren, wo eine benötigte Bibliothek tatsächlich liegt. Mein Produkt-Download wird klein, weil ich Bibliotheken nur extern verlinke, statt mit in den Download zu packen. Soll das Produkt auf einem System ohne Internet-Anbindung verwendet werden, kann man die Bibliotheken aber optional lokal legen und auf einen Internet-Zugang verzichten.

Tja und dann kam mir der Sinn, noch eine Admin dafür zu schreiben: ich will live in einer API nach Bibliotheken browsen, Details einsehen, Versionen wechseln, Bibliotheken zu “mir” herunterladen.

Ach so Versionen … da gibt es bei gefragten Produkten in relativ kurzen Intervallen neue Releases. Sei es jQuery, Font-Awesome, Plugins … eigenlich habe ich selbst gar keine Kontrolle über all jene Updates … und wenn was neu ist, dies in meinen Applikationen zu aktualisieren.

Und wenn man Versionen lokal hat und sie schon mal lokal erfragen als auch remote die aktuellste ermitteln kann … machen wir noch einen Versions-Checker für sämtliche lokal gemachten Bibliotheken auf einmal dazu. Es kam eins zum anderen. Ich glaube, ich habe mal ein Grundgerüst. Das wird später einmal eine gute Hilfe, den Überblick über alle meine Bibliotheken und deren Versionen zu behalten.

Browsing (Rendering der API Such-Abfrage bei CDNJS):

2017-07-25-cdnorlocal-01.png

Details (Rendering der API Abfrage einer Library bei CDNJS):

2017-07-25-cdnorlocal-02.png

Versionscheck: lokal hinterlegte Versionen von Bibliotheken werden mit der online aktuellsten Version verglichen

2017-07-25-cdnorlocal-03.png

weiterführende Links:

  1. Github: cdnorlocal
  2. Docs: https://www.axel-hahn.de/docs/cdnorlocal/
  3. https://cdnjs.com/

OWA: die “Kalender von Pers”

Freitag, 21. Juli, 2017

Im OWA-Kalender des aktuellen Exchange 2016 kann man die Breite der linken Spalte nicht verschieben.
“Kalender von Pers” steht dann dort. Und wenn man Ausleihgeräte über einen Exchange Kalender verwaltet, sieht man leider nicht sofort den kompletten Namen.

2017-07-21-kalender-von-pers.png

Bis Microsoft das behebt, kann man sich ein Bookmarklet [01] in seinem Browser ablegen. Jenes funktioniert unabhängig von der Domain/ URL, wo sich eure OWA-Installation befindet und unabhängig vom Webbrowser (Anm.: leider weis ich nicht, wie man in Edge ein Bookmarklet erzeugt).

Anleitung:

  • Den nachfolgenden Link per Drag and Drop in die Lesezeichenliste ziehen: Kalenderbreite
  • OWA im Browser starten und in den Kalender wechseln
  • In der Lesezeichenliste auf das eben erstellte Bookmarklet “Kalenderbreite” anklicken. Die Kalenderbreite wird dann angepasst. Und bleibt so bis zum Neuladen der Seite.

Wie das Bookmarklet funktioniert:

In das aktuelle Dokument im Browser wird zusätzlicher CSS-Code eingeschleust.

Der Wert für die Breite wird in 2 DIVs benötigt, die unterhalb des DIV der Klasse “._wx_P” sind.
Ich setze eine Variable w auf die Breite von 300 Pixel und weise dem 1. Div nach dem Div der Klasse “._wx_P” die Breite auf w und beim 2. Div den Wert left auf w.
Wenn man im Inspektor schaut – die 2 Originalwerte “210px” werden mit “300px” übersteuert. Wem das nicht breit genug ist, kann das Bookmarklet bearbeiten und den Wert hinter w=… anpassen.

2017-07-21-kalender-von-pers-2.png

weiterführende Links:

  1. Wikipedia: Bookmarklet
  2. Nochmal das Bookmarklet … Drag and Drop: Kalenderbreite

SBB - Merci für den Link

Donnerstag, 20. Juli, 2017

ohne Worte:

207-07-20-sbb-email-link.png

Song: Ticker

Donnerstag, 15. Juni, 2017

Instrumentale, elektronische Musik - erstellt mit Magix Music Maker. Eine harte Basedrum, sphärische Pads und eine gute Laune Melodie.
Elektro Beat mit 120 BPM.

Download:
https://www.axel-hahn.de/axel/download/ticker_2.0_.mp3
https://www.axel-hahn.de/axel/download/ticker_2.0_.ogg
… und 5.1 surround
https://www.axel-hahn.de/axel/download/ticker_5.1_.m4a
https://www.axel-hahn.de/axel/download/ticker_5.1_.ogg

weiterführende Links:

  1. Song auf Soundcloud

Aomai Backup - Avira meldet darin Adware.Gen2

Montag, 5. Juni, 2017

Nach dem Upgrade von Aomei Backup Pro V3.x auf 4.0 meldete Avira “Adware.Gen2” in der Backupper.exe.
Hm, in einer Freeware mag ja sein, dass da Hersteller so ihren Unfug treiben, um Banner einzublenden oder Sonstwas im System zu verbiegen - aber in der bezahlten Pro-Version?

Wie schafft man Abhilfe?
Auf der Website https://www.virustotal.com habe ich die Exe-Datei hochgeladen - dort wird sie von zig (ca. 60) Virenscannern untersucht.
In dem Fall scheint es ein False Positive - also ein Fehlalarm - zu sein! Also wurde eine Ausnahmeregel definiert.

Ich habe in Avira:

  • unter Echtzeit-Scanner -> Konfiguration -> Echtzeit-Scanner -> Ausnahmen: das Aomei Backup Verzeichnis C:\Program Files (x86)\AOMEI Backupper\ als Ausnahme hinzugefügt
  • unter Quarantäne: bei der Backupper.exe rechte Maustaste und “Objekt wiederherstellen” gewählt.
  • unter Echtzeit-Scanner -> Konfiguration -> Echtzeit-Scanner -> Ausnahmen: das Aomei Backup Verzeichnis C:\Program Files (x86)\AOMEI Backupper\ als Ausnahme entfernt
  • … und die C:\Program Files (x86)\AOMEI Backupper\Backupper.exe als Ausnahme hinzugefügt (also statt des gesamten Verzeichnisses zuvor nur diese eine Datei)

weiterführende Links:

  1. virustotal.com: Ergebnis für die Backupper.exe