Benki → Lazy Chat

⇠ previous page next page ⇢
Matthias #

I have reconfigured the server running this web site. The Kubernetes cluster can now run pods in Kata containers.

My hope is that I can use the isolation that it provides to run docker-compose inside a pod, as I use certain software that ships with a docker-compose file, which up to now I have always had to laboriously translate into a set of native Kubernetes deployments each time a new version would come out.

We’ll see if it’s as easy as I am hoping.

Matthias #

If you use Quarkus with Scala and you get a java.lang.NoClassDefFoundError or java.lang.ClassNotFoundException when recompiling in development mode, try adding an explicit scala-compiler dependency to your POM:

  <dependencies>
    ...
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-compiler</artifactId>
      <version>${scala.version}</version>
    </dependency>
    ...
  </dependencies>

This may help because Quarkus has an implicit dependency on a specific version of the compiler, which may not match the one that you are using in your project.

It worked for me, at least.

(I have since removed Scala from the MulkCMS 2 code base again as it only made the build time much longer without bringing in enough to make it worth it. Scala 3 might change that — we shall see.)

Matthias #

The German Federal Ministry of Health is considering a bill giving people having tested positive for COVID-19 antibodies a free pass on Corona-related social restrictions.

I’m not going to criticize that. It’s probably inevitable given that the restrictions are quite severe in their impact on fundamental rights and therefore hard to justify keeping up where they are unnecessary.

It does, however, raise the question of how to deal with the potential problem that this might incentivize people to get themselves infected in order to earn their freedom back. In my opinion, it would make a lot of sense to couple the introduction of a law that gives privileges to COVID-positive people with the establishment of Hero Hotels where people can choose to undergo controlled variolation.

Since people in Hero Hotels would then be under quarantine, the dangers for society would be limited. It would also greatly decrease their own risk. And it would help society reach herd immunity in lieu of a vaccine.

Matthias #

Since there has clearly been some confusion about this:

  • There is no such thing as an LTS version of OpenJDK. OpenJDK versions 8 and 11 aren’t special in any way.
  • Oracle declare certain versions of their commercial Oracle JDK distribution (which is an OpenJDK build) as LTS versions, which they support for an extended period of time for their paying customers. This has no bearing on OpenJDK except that Oracle may or may not continue to upstream bug fixes from Oracle JDK to OpenJDK.
  • Other vendors may or may not provide their own sort of long-term support for certain versions of their own OpenJDK distributions. For instance, the AdoptOpenJDK group have been following Oracle in what they declare as LTS versions so far. Azul have been doing the same but also declared certain intermediate versions (13 and 15 so far) as “medium-term support” releases whose end of support is at least 1.5 years after the next LTS is released (which greatly decreases the incentive to use an LTS version that is more than a year old).

Again, there is no such thing as an LTS version of OpenJDK. Likewise, there is no such thing as an LTS version of the Java programming language and standard library. There is also no guarantee that an upgrade from 11 to 17 will be any easier than from, say, 14 to 17 (in fact, the opposite is more likely to be true). Don’t just stick with 8 or 11 because somebody else does so. Choose your vendor wisely and then balance what level of support the vendor provides with your own needs and make an informed decision.

Matthias #

In the olden days, we wrote Java code, and then we wired it together with a super-nested web of XML.

Then someone invented XDoclet, which begot annotations, and we moved it all right into the code, and everything started making more sense.

In the hip new world, we write Java code, and then we wire it together with a super-nested web of YAML.

I hope someone invents YDoclet and we can move it all back into the code once again. That would make me happy.

Matthias #

Neulich habe ich ja die Decline of Usability erwähnt, nach der heutzutage auf Hübschheit in UIs mehr Wert gelegt wird als auf Benutzbarkeit. Ich habe ein bißchen darüber nachgedacht und mir fiel dann auf, daß ich mit dem Design des neuen Benkis in dieselbe Falle getappt bin. Daraufhin habe ich das Design jetzt etwas funktionaler gemacht. Relativ wenig nützliche Details wie die Uhrzeit eines Postings habe ich entfernt und das ganze Design kompakter gemacht, so daß sehr viel mehr auf einmal auf den Bildschirm paßt, ohne die Lesbarkeit deutlich zu beeinträchtigen. Uneingeschränkt glücklich bin ich mit dem Redesign noch nicht, aber es wird. Ist auf jeden Fall schon besser als vorher.

Matthias #

Zu QALYs vs. Behandlungsaussicht vs. Intuition. Angenommen, wir haben drei Patienten, die die Behandlung mit einem Beatmungsgerät brauchen und unterschiedliche Aussichten auf den Erfolg der Behandlung haben:

  • Ein 10-jähriges Kind, Erfolgsaussicht: 80%
  • Die 30-jährige Mutter des Kindes, Erfolgsaussicht: 85%
  • Einen 90-Jährigen, Erfolgsaussicht: 90%

Nehmen wir weiters an, alle drei Patienten hätten einen guten Gesundheitszustand und würden nach einer erfolgreichen Behandlung noch mindestens 1 Jahr leben, während sie ohne Behandlung definitiv sterben würden.

Wir haben 2 Beatmungsgeräte. Wer kriegt sie und warum?

Matthias #

Ich habe Gradle aus dem neuen Benki rausgeworfen und die custom Tasks, die es funktional vom Maven-POM unterschieden, in Ant-Targets überführt. Das war leichter, als ich erwartet hatte.

Bei der Gelegenheit habe ich auch gleich das Kubernetes-Deployment automatisiert. Irgendwie fühlt sich das in einem Ant-Skript besser aufgehoben an als in einer Buildbeschreibungsdatei.

Matthias #

Ich habe den Rubikon aus meinem Feedreader gestrichen. Ich brauche wirklich nicht täglich mehrere Coronavirus-Verschwörungstheorien in meinem Newsfeed.

Matthias #

Ich frage mich ja, ob die Coronakrise eine Auswirkung auf die Wohnungspreise in Deutschlands Ballungszentren haben wird.

Matthias #

Das neue Benki (née Book Marx & Lafargue) ist jetzt voll funktionsfähig. Eine Handvoll Bugs habe ich noch notiert, aber im großen und ganzen funktioniert es besser als je zuvor.

Die folgenden Techniken kamen beim Rewrite zum Einsatz:

  • Quarkus. Davon insbesondere: RESTEasy, Hibernate, Qute.
  • Web Components. Und zwar ohne Frameworks wie Angular oder React. Nur browsernatives JavaScript. Sowohl selbstgeschriebene (z.B. MlkBookmarkSubmissionForm) wie auch welche aus der Web-Component-Bibliothek Elix.
  • Flow für die statische Prüfung des selbstgeschriebenen JavaScript-Codes. Das Gute an Flow (im Gegensatz zu TypeScript oder gar so etwas wie Reason oder ClojureScript) ist, daß man es ganz ohne Kompilierschritt in browsernativen JavaScript-Modulen benutzen kann, indem man Comment Types einsetzt.
  • Native CSS-Rasterlayouts.

Also alles Standards und Spezifikationen. Sehr Enterprise.

Matthias #

Wenn man NFS für Persistenz in Kubernetespods verwenden will und SELinux aktiviert hat, dann muß man die SELinux-Flags virt_use_nfs und virt_sandbox_use_nfs setzen:

setsebool -P virt_use_nfs 1
setsebool -P virt_sandbox_use_nfs 1

Wenn man das vergißt, kann man die Volumes zwar mounten, kriegt aber bei jedem Schreibversuch einen Zugriffsfehler.

Matthias #

Noch ein Hinweis für Benki-Benutzer: Da Mozilla den Persona-Dienst inzwischen eingestellt hat und Google OpenID nicht mehr unterstützt, ist ein Login beim Benki nur noch möglich, wenn man sich woanders eine OpenID anlegt und sie mir mitteilt, so daß ich sie in die Datenbank schreiben kann. Auch OpenID-Provider scheint es ja nicht mehr so viele zu geben. xlogon.net ist noch benutzbar und wäre eine mögliche Wahl.

Matthias #

Ich habe das Benki auf einen neuen Server umgezogen. Das hat reibungslos geklappt, und es ist, wie es scheint, voll einsatzbereit.

Eines habe ich bei der Gelegenheit allerdings abgeschafft, und zwar den WebID-Login. Der hat schon länger nicht mehr funktioniert, weil der komische node.js-basierte Frontendserver irgendwann spontan kaputtgegangen war, den ich zu dem Zweck schnell-schnell hingehackt hatte. Die WebID-IdP-Funktion ist aber nach wie vor aktiv, und das bleibt auch so. Man kann sich also beim Benki nicht mehr mit WebID einloggen, aber man kann das Benki nach wie vor als WebID-Provider verwenden und sich auf anderen Websites mit der WebID vom Benki einloggen. Also, abgesehen davon, daß ich auf die Schnelle jetzt keinen funktionierenden WebID-Login im ganzen Web mehr finden konnte. Die vom WebID-Wiki gehen jedenfalls anscheinend alle nicht mehr.

Matthias #

Lovers, of course, are notoriously frantic epistemologists, second only to paranoiacs (and analysts) as readers of signs and wonders. —Adam Phillips, On Flirtation (via Wikipedia)

Matthias #
(defn fix [f]
  (let [p (promise)]
    (deliver p (f p))
    @p))
Matthias #

MetaPost ist das Perl der Bildbeschreibungssprachen.

Matthias #

Jemand hat nginx gepatcht, um es WebID-fähig zu machen.

Matthias #

The fear of strange ideas, the impulse to conformity, has no doubt warned many potential victims away from flying-saucer cults. When you’re out, it keeps you out. But when you’re in, it keeps you in. Conformity just glues you to wherever you are, whether that’s a good place or a bad place.

Eliezer Yudkowski: Cultish Countercultishness

⇠ previous page next page ⇢