Classic Editor is back

Ich hab es wirklich versucht, aber der neue Editor „Gutenberg“ von WordPress ist eine Qual. Das tut in der Seele weh. Wie kommt man nur auf sowas? Alleine schon die Optik hat mit Texte schreiben nichts zu tun. Diese Blocktechnik ist was für Facebook-Timelime-Kids u.V. .

Classic Editor reaktivieren

Da mit Gutenberg jeder seine eigenen schlimmen Erfahrungen gemacht hat oder noch machen wird, wenden wir uns produktiveren Dingen: Wie wird man ihn los?

Das ist zum Glück ganz einfach!

Im Dashboard unter Plugins „Installieren“ auswählen und in das Suchfeld „Editor“ eingeben. Kommt als erster Treffer mit über 1 Million Installationen „Classic Editor“ 😀 Alles mit OK bestätigen und Fertig.

Ich habe so das Gefühl, daß wird mit weitem Abstand das beliebteste Plugin werden.

Meine wenig positive Meinung  werde ich hier nicht zurückhalten: WP werdet die Typen los, die das verbrochen haben!

Die Aussichten bis 2020

Da die Menschheit ja bei wichtigen Entscheidungen immer die schlechtere Option wählt, haben besorgte Blogschreiber WP geforkt und lassen es ohne Gutenberg weiter laufen. GGF. muß man das in Zukunft als Option wählen, wenn man einfach nur Blogs schreiben will. Im Gutenberg habe ich nicht mal die Rechtschreibkontrolle gefunden, und das viele unnötige rumgeklickte um substanzielle Funktion zu erreichen. Wo es doch vorher super funktioniert hat. Das kommt bestimmt aus der Ecke der Handy und Tablelike-Benutzer mit Minibildschirmen. Als wenn das die Hauptgruppe der Blogschreiber wäre. Das wäre mir viel zu anstrengend mit den virtuellen Tastaturen. Wobei, „Diktieren“ ist ganz nett, führt aber meiner Erfahrung nach zu schlechtem Satzbau, so daß man viel editieren muß.

Es ist Final Space Time bei NetFlix

Der Überraschungserfolg vor Weihnachten auf NetFlix: Final Space!

Die Animationserie handelt von Gerry und seinen Freunden, die das Ende des Universums abwenden wollen. Es gibt nur ein Problem: Gerry ist ein Kindskopf, der zu 5 Jahren Raumschiffknast verurteilt wurde, weil er eine Takobude in Luft gejagt hat… ja , ok, … UND 42 Raumschiffe zerstört hat.

Die Serie zu sehen, wird wohl niemand bereuen, vorsichtig optimistisch ausgedrückt, verschlingt man Sie am Stück. Das fällt nicht schwer, da es nur 10 Folgen sind. (Ist irgendwie komisch mit Netflix und der Staffellänge, oder?) Leider gibt es nur Staffel 1 auf NetFlix, aber Staffel 2 ist für 2019 angesagt worden \o/

Wenn Ihr noch was sucht um Zeitlücken zu füllen: Final Space! und grüßt Kevin, der hat’s nötig 😉

Wie man in Java die lokale IP ermittelt

Da das Ermitteln der lokalen IPs über alle Interface angeblich Voodoo ist, hier mal eine Lösung ohne Voodoo 🙂

import java.net.InetAddress;
import java.net.NetworkInterface;

                try {
 			Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
 			while (networkInterfaces.hasMoreElements()) {
 		    	     NetworkInterface networkInterface = (NetworkInterface)networkInterfaces.nextElement();
 		    	     Enumeration ips = networkInterface.getInetAddresses();
 		    	     while ( ips.hasMoreElements() ) {
 		    		// InetAddress ipa = (InetAddress)ips.nextElement();
 		    		String ip = ((InetAddress)ips.nextElement()).toString();
 		    		ip = ip.replaceAll("/", "").replaceAll("%.*$","");
 		    		... HIER mit der IP was machen ... 
 		    	      }
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
		}

Eine kleine Anmerkung dazu. Das ist ja der Cast auf InetAddress, es werden an der Stelle aber IPv4 und IPv6 Objekte zurück gegeben, die sich eben ohne Cast-Fehlermeldung nur als InetAddress verarbeiten lassen. Wenn Ihr wissen wollt, was es ist, ohne eine RegEx über das Ergebnis zu legen, lest einfach die Klasse des Objekts aus:

InetAddress ipa = (InetAddress)ips.nextElement();
log( ipa.getClass().getName() );
String ip = ipa.toString().replaceAll("/", "").replaceAll("%.*$","");

Anstatt getName() kann man auch getSimpleName() oder getType() benutzen, ganz wie es Euch gefällt.

Alternative:

		Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
		while (networkInterfaces.hasMoreElements()) {
		   	NetworkInterface networkInterface = (NetworkInterface)networkInterfaces.nextElement();
		   	
		   	for (InterfaceAddress address : networkInterface.getInterfaceAddresses()) {
		   	    String ip = address.getAddress().toString();
	   		    int netmask = address.getNetworkPrefixLength();
	   		    log( netmask + ip );
		   	    ip = ip.replaceAll("/", "").replaceAll("%.*$","");
	   		}
		}

Da bekommt man auch gleich die Netzwerkmaske mit, ist wohl der bessere Weg 🙂