Google Fonts selber hosten

Mein Theme (Ari von Elmastudio) nutzt von Haus aus die Fonts Droid Sans und Droid Serif von Google. Bis gestern waren die auch bei Google gehostet, was ich eh immer mal ändern wollte. Manchmal benötigt man halt etwas Druck 🙂 In diesem Fall durch dieses Gerichtsurteil (via).

Also: Besagte Fonts sind Open Source, ich habe sie hier und hier als ttf runtergeladen. Auf transfonter kann man sich ein entsprechendes Webfont-Package erzeugen lassen, in diesem Fall binde ich in der functions.php ein (statt bisher zwei) css ein:

Gradle: Delete stopped daemons

Maschine frisch gestartet, trotzdem “busy” Daemons?

Starting a Gradle Daemon, 17 busy and 2 incompatible and 2 stopped Daemons could not be reused, use –status for details

Dann alle mittels gradle --stop beenden. Jetzt zeigt gradle --status “STOPPED” Daemons, die auch nie verschwinden?

PID STATUS INFO
5295 STOPPED (stop command received)
19041 STOPPED (by user or operating system)
30937 STOPPED (by user or operating system)

Dann kann man folgende Dateien löschen (es sollte gerade kein Daemon laufen, klar):

  • ~/.gradle/daemon/<Versionsnummer>/registry.bin
  • ~/.gradle/daemon/<Versionsnummer>/registry.bin.lock
  • ~/.gradle/daemon/<Versionsnummer>/*.out.log

Java: FIPS mit Bouncy Castle

Disclaimer: Der Post ist 100 Jahre alt, aber wo ich ihn nun gerade in den Entwürfen finde…:

The Legion of the Bouncy Castle bietet mit bc-fips FIPS 140-2-zertifizierte Security Provider an, und zu der umfangreichen Dokumentation gibt es ein paar Good-to-knows:

  • der Provider muss per Security.addProvider(new BouncyCastleFipsProvider()); hinzugefügt werden; per Security.insertProviderAt(new BouncyCastleFipsProvider(), 1) (die Position ist 1-based) gibt es eine RuntimeException: “Could not merge Java truststore with system truststore”
  • im o.g. PDF liest man häufig EC.generateKeyPair(), die Methode gibt es so nicht. Stattdessen gibt es eine generateKeyPair() unter Beispiel 31 im selben PDF:

  • Speziell unter Linux kann das Hochfahren der App sehr lange dauern, der Grund scheint /dev/random zu sein; ein apt install haveged hilft
  • Die Beispiele basieren auf EC(DSA), es geht aber auch RSA. Dazu nehme man (ansonsten analog):

  • PS: Bei einem uninitialized KeyStore hilft vermutlich ein keyStore.load(null, null); (Danke, Nils!)

HTH

iOS: “Failed to load resource: cannot parse response”

Die Meldung

Failed to load resource: cannot parse response

bzw.

Parsen der Antwort nicht möglich

beim Aufruf von Webseiten kann darauf zurückzuführen sein, dass die verwendete iOS Version gzip nicht unterstützt. So gesehen in iOS 11, 12, 14 (ja: in 13 war es schon mal behoben).

Abhilfe für Spring:

Danke, Nils!

IntelliJ: Gradle task mit jedem Reimport ausführen

IntelliJ bietet per Rechtsklick die Möglichkeit, Trigger für Tasks anzuhaken (Screenshot aus der Doku geklaut):

Via build.gradle kann man das über das Plugin “gradle-idea-ext-plugin” automatisieren – im Rootprojekt:

Und im Unterprojekt dann:

Achtung, in DSL spec v. 0.2 heißt es

  • beforeSync – before each Gradle project sync. Will NOT be executed on initial import

ka, aber spätestens danach funktioniert es.