Erstellung eines passwortgeschützten ZIP-Archivs

Insbesondere bei Behörden muss man ja manchmal Dateien als Anhang versenden oder Listen von Anhängen – damit nicht alle Daten plaintext durchgesehen werden, bietet sich der naive ZIP-Passwortschutz an, den man wie folgt nutzt:

$ mkdir foo
$ cp *.pdf foo
$ zip -re foo.zip foo
Enter password: 
Verify password: 

Dann kann man die Datei einfach anhängen und das Passwort direkt als Text mit in die Nachricht schreiben – so verhindert man, dass Firewalls und andere maschinelle Inhaltsdurchsucher die angehängten PDF-Dateien indizieren.

Ja, security by obscurity 🙂

Ubuntu 22.04 LTS Update von 20.04 – holprig wie schon lange nicht mehr

So, es war wieder soweit und das Update von Ubuntu 20.04 LTS auf 22.04 stand an.

Mutig startete ich das Update weil die ReleaseNotes nicht wirklich Probleme vorhergesagt haben. Die Hauptänderung, dass Firefox nun als SNAP läuft, machte – wie man während des Updates schon sah – keine Probleme.

Bis auf einen komischen firefox.tmp-Ordnung unter ~/Downloads, läuft alles.

Aber während des Updates gab es unerwartete Probleme:

Die Installation brach ab, weil usrmerge nicht durchlaufen konnte- nach dem ersten Schreck erstellte ich #1969861 und konnte die Installation gemäß Hinweisen fortsetzen.

Ein kleiner Hickup beim Start von LibreOffice ließ sich durch Nachinstallieren von ure-java gemäß Tipp lösen. Ansonsten dann die ganzen Fremdrepos wieder aktivieren, falls dort auch für das neue jammy eine Ordnerstruktur angelegt ist.

Aber nervig ist, dass NordVPN nicht mehr startet. Leider funktioniert der Support nicht und es findet sich nie ein Mitarbeiter als Chatpartner zur Unterstützung. Neuinstallation hat leider nichts gebracht. Daher nun leider ungeschützt unterwegs – sonst fällt auf, dass die UI wieder noch Mac-ähnlicher geworden ist und diverse Menüstrukturen verändert wurden.

Aber sonst tut die Kiste erstmal 🙂

K-9 Mail – UI-Update und Einstellmöglichkeiten zur Spam-Markierung

Nach dem aktuellen Update auf v5.8 der K-9 Mail-App auf Android fiel auf, dass sich die Bedienung in Bezug auf die Markierung von Spam-Nachrichten verändert hat.

Als ich versucht habe, einen neuen Bug dafür einzustellen, bin ich auf einen Hinweis gestossen, dass man Einstellmöglichkeiten hat, welche Menüoptionen im Untermenü der Nachrichten erscheinen.

Leider geht es im Moment nicht, dass man ein globales Menü editieren kann, dafür habe ich an #5069 kommentiert.

Generell ist ja mein Arbeitsfluss, dass ich mehrere Nachrichten markiere und dann als Spam markiere und wegsortiere.

Mit dem neuen Update muss man nun obige Einstellung in der App vornehmen und dann öffnet man die Nachricht und hat dort unter dem 3-Punkte-Menü die Auswahl ‚Spam‘, um die jeweilige Nachricht wegzusortieren.

Update 2021-07-31: Die Anregung des anderen Workflows wurde aufgenommen und wird nun unter #5300 behandelt und diskutiert – OpenSource rocks!

Ubuntu Apache Webserver im lokalen Netzwerk verfügbar machen

Seit die Ubuntu Firewall (ufw) standardmäßig an ist, fiel auf, dass der Webserver im lokalen Netzwerk nicht mehr aufrufbar ist, sondern nur via localhost seine Schätze preisgibt.

Der Versuch in der Konfiguration des DocumentRoot Änderungen zu machen fruchtete auch nicht.

Es liegt einzig und allein an der Firewall, die man wie folgt öffnen kann, um die Einstellungen anzupassen:

$ sudo ufw app list

Verfügbare Anwendungen:
  Apache
  Apache Full
  Apache Secure
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission


$ sudo ufw allow 'Apache'

Regel hinzugefügt
Regel hinzugefügt (v6)


$ sudo ufw status
Status: Aktiv

Zu                         Aktion      Von
--                         ------      ---
22/tcp                     ALLOW       Anywhere
Apache                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Apache (v6)                ALLOW       Anywhere (v6)

Git: lokalen Stand zurücksetzen auf frisch ausgecheckten Zustand

Manchmal hat man ein lokal so fortgeschrittenes Projekt, dass man einfach mal auf den Stand zurückgehen will, den man hätte, wenn frisch ausgecheckt würde.
Das ist inbesondere sinnvoll, wenn man lokal viele Dateien – z.B. generierte Sachen oder Projekteinstellungen von IDEs – hat, die unter Umständen stören.

Ein:

$ git clean -fxd

putzt alles weg im Fall von Git.

SpringBoot – Controller erstellen mit JSON-Rückgabe und Standard-HTTP-code

Es ist einfach befreiend zu sehen wie einfach in einem SpringBoot-Umfeld die Webentwicklung ist:


@Controller
@RequestMapping("/foobar")
final class FooBarController {

@Inject
private FooBar fooBar;

/**
* @return the currently set {@link FooBar}.
*/
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity parseInvocationContext() {
return new ResponseEntity(fooBar.toString(), HttpStatus.OK);
}

}

Die Methode gibt mit einem 200er einfach ein Statusobjekt zurück und kann dieses ganz einfach als JSON anzeigen.

Schnelles Teilen von Dateien / lokaler Http-Server mit Python

Wenn man das Problem hat, dass Datenmengen geteilt werden sollen, die zu groß für FAT-formatierte USB-Sticks sind, braucht man einen kleinen HttpServer, damit man die Daten ganz einfach via
http://localhost:8000
herunterladen kann:

$ python -m SimpleHTTPServer 8000 (Python 2.x)
$ python -m http.server 8000 (Python 3.x)

Niemand will derlei Attachementbomben per Mail oder Onlinechat versenden 🙂

PHP7 – WOW-Effekt

Da mein Hoster nun final auf PHP7 umschwenkt, dachte ich mal für einige Domains testweise umzuschalten.

Erste kleinere Warnungen im selbstgeschriebenen PHP-Code fallen auf … im Netz findet man die gleichen „Problemchen“

  • Fatal error: 'break' not in the 'loop' or 'switch' context in /your/own/file.php on line 4711

aber krass ist der Performancevorteil.

Eine lokal auf PHP5.x laufende Seite – mit nur Datums/Zeitberechnung und sonst statischer Anzeige von Links – benötigt im Schnitt
Rendering took: 0.023338 s
auf PHP7 und im Webspace des Hosters läuft das Teil mit
Rendering took: 0.001340 s

Chapeau!

Maven Versionen in pom.xml verändern

Wer bisher manuell durch alle poms eines größeren Projekts gegangen ist, den könnte folgender Aufruf interessieren:

mvn versions:set -DnewVersion=1.2.3-SNAPSHOT -DgenerateBackupPoms=false

Somit werden einfach die Versionen in allen poms umgesetzt und man muss dann nur noch einchecken.