Java: Anonymes Initialisieren von Listen

Listen:

Sie können “einzeilig” initialisiert werden:

Aber: Was, wenn ich sie mit anonymen Klassen initialisieren will?

Geht nicht, weil die anonyme Klasse Foo beerbt, und damit kommt Java nicht klar. Aber

geht. Hässlich, aber es geht. 🙂 Ein bisschen schöner (weil lesbarer) geht es mit Guava, aber im Grunde ist das genauso umständlich:

Weitere Vorschläge?

utf8mb4 auf uberspace

Es war vor gut zwei Jahren, dass mir das Thema utf8mb4 auffiel. Ein Thema, das auch meinen Hoster uberspace betrifft, denn dort kommt – CentOS 6 sei “Dank” – MySQL 5.1.73 zum Einsatz, und utf8mb4 gibt es erst ab 5.5.3. Was ich leidvoll feststellen musste, als WordPress einen Post nur bis zu einem eingefügten Emoji gespeichert hat, alles darüber hinaus war (stillschweigend!) flöten. Damals wurde ich auf CentOS 7 vertröstet, das das dann können sollte.

Am 16.2. dieses Jahres kam dann der erlösende Blogpost: uberspace unterstützt MariaDB, und zwar in der “zu MySQL 5.5 kompatiblen” Version 10.0 – trotz CentOS 6:

eine Übergangslösung, die nur für Leute gedacht ist, die zwingend hier und jetzt unbedingt MySQL 5.5 bzw. etwas dazu Kompatibles brauchen.

“Hier und jetzt”, eh, ja. In dem Zusammenhang:

Sobald unsere CentOS-7-Hosts am Start sind […]

Dazu gibt es immer noch keinen Zeitplan, Stand 8. April 2016. Aber zurück zum Thema: Das Wiki sagt

Mit dem Befehl uberspace-setup-mariadb kannst du dir eine Datenbank auf dem Host anlegen. Die Zugangsdaten werden in ~/.my.mariadb.cnf abgelegt.

, was bei mir zuerst nicht geklappt hat:

Nachdem der Support tätig wurde, war der Fehler zwar weg, aber erwähnte .my.mariadb.cnf leer. Inzwischen läuft das aber rund (Danke an den Support an dieser Stelle für die schnelle Reaktion), deshalb hier die vollständige Migration:

Et voilà: Von 💩 zu 👍 in fünf einfachen Schritten! 😊 Dasselbe jetzt noch für meinen Feedreader! 💪

UPDATE

Meh: Fever “kann” das nicht. Erstens ist utf8 dort hart im Code verdrahtet, zweitens ist bsplw. der Titel eines Eintrags ein varchar(255) – und ein Key:

255 mal 4 Byte (wie in utf8mb4) sind aber mehr als 1000 Byte, und das ist das Limit für einen Schlüssel m( Change Request bei Fever läuft.

Faltrad

Seit inzwischen auch schon wieder fünf Monaten habe ich eine neue Stelle, und zwar in Lübeck. Da unser Haus recht verkehrsgünstig gelegen ist, kann ich zwar grundsätzlich mit der Bahn pendeln, aber “verkehrs­günstig” bedeutet immer noch 15 Min zum Bahnhof, und 15 Min in’s Büro – jedenfalls zu Fuß. Da liegt es nahe, auf das Rad umzusteigen. Und da man keines am Lübecker Bahnhof stehen lassen möchte, muss es ein Faltrad sein, das ich in der Bahn mitnehmen kann.

Nur welches?

Ein Überblick:

Brompton?

Ein Brompton ist ein bisschen das Faltrad, man sieht es auch sehr oft. Mir persönlich ist es aber zu teuer und mit 16 Zoll auch zu klein.

Birdy?

Dem Birdy sagt man sehr gute Fahreigenschaften nach; es ist voll gefedert. Mir ist das aber zu “komplex”: Mein “richtiges” Rad ist ein Singlespeed, und ich schätze den damit einhergehenden geringen Wartungsbedarf. Das Birdy spielt auch in einer ähnlichen Preisklasse wie das Brompton (>> 1k).

Tern?

Das Tern ist ziemlich gängig; sogar der HVV hat eins im Angebot. Es ist bezahlbar, und in verschiedenen Größen erhältlich. Es gibt Kettenschaltungen (die nicht meins sind, siehe oben), aber auch Nabe, und wenn ich mich nicht irre, dann auch Singlespeed. Ich bin auch zwei, drei Probe gefahren, aber irgendwie sprang der Funke nicht über. Die machen alles richtig, aber das Ergebnis ist nicht cool 🙂 Ich empfehle trotzdem eine Probefahrt.

Strida?

Im Kommentarbereich eines Artikels auf Spiegel Online bin ich auf Strida gestoßen. Ich darf die Seite gar nicht aufmachen, sonst werde ich jetzt noch schwach: Der Faltmechanismus ist ganz anders als bei den anderen Systemen; er ist auf Geschwindigkeit, statt auf kleinstes Packmaß ausgelegt. Das Ergebnis erinnert an einen Trolly, was durchaus Absicht ist: So schiebt sich das Rad, wo man alle anderen tragen muss.

Es gibt drei Preisklassen, wobei die günstigste auch nur 16 Zoll hat. Die beiden anderen liegen mit ab ~900 € über den Tern, aber dafür bekommt man bsplw. auch einen Riemenantrieb. Und eben den Spielfaktor des technisch Ungewöhnlichen, was durchaus nicht zu verachten ist.

Letztlich waren es viele kleine Argumente, die mich vom Kauf abgehalten haben. Jeweils einzeln hätten sie das nicht geschafft: Der Preis; die doch auch kontroverse[1], [2] Technik des Riemenantriebs; das Faltmaß, das man eben nicht so einfach hinter dem Sitz in der Bahn verstaut; die maximal 18 Zoll; die Sitzposition; das Maximalgewicht von 100kg inkl Gepäck, das zufällig (?) genau dem vorgeschriebenen Mindestwert für Fahrräder entspricht – verdächtig.

Dahon?

Dahon klang für mich wie ein chinesischer Billiganbieter, tatsächlich kommen die aber aus den US and A (“Dahon” ist nichts in dem Sinne chinesisches, sondern der abgekürzte, zugegebendermaßen asiatischstämmige Name des Gründers Davin Hon – das Ganze war eine Garagengründung in good old California) und rühmen sich als Erfinder des modernen Faltrades. Wie dem auch sei: Von Auswahl und grundsätzlicher Aufmachung den Terns nicht unähnlich, also insbesondere ohne die Nachteile der Stridas, habe ich schließlich das Mµ Uno entdeckt:

Singlespeed und insgesamt so minimalistisch, dass es an die alten BMX-Räder erinnert – das Original hat nicht mal eine Handbremse. In D so nicht erlaubt, da hat es deshalb eine, keine Angst. Dafür fehlt in D die Luftpumpe in der Sattelstütze, von der man hin und wieder liest.

Der Rahmen hat einen ziemlich guten Ruf, und wer es denn unbedingt will: Es gibt auch eine Version mit Riemenantrieb, für < 1k. Die Version mit Kette gibt es online sogar für knapp unter 500 €, da war dann direkt noch ein Brooks Flyer Special und ein Kryptonite Messenger Mini+ drin. Der Brooks lässt sich übrigens direkt montieren, es ist kein zusätzlicher Kloben nötig.

20”, bzw. eigentlich wohl sogar knapp darüber; Schwalbe-Reifen. Das einzige, was mich gerade stört, ist die Rücktrittsbremse, das bin ich einfach nicht gewohnt. Trotzdem: Fährt sich super!

dahon-mu-uno

OS X: “Benutzte Dokumente” deaktivieren

Wer die “Benutzten Dokumente” (“Recent Files”) insbesondere auch im Dock deaktivieren möchte, benötigt zuerst den “Application’s bundle identifier”:

  1. Aktivitätsanzeige starten
  2. Prozess selektieren
  3. “Informationen” klicken
  4. “Analysieren” klicken
  5. “Identifier” finden 🙂 Hier: org.videolan.vlc

Damit geht’s dann in’s Terminal:

Bereits existierende Einträge werden mittels

gelöscht. Für VLC und Vorschau (com.apple.Preview) habe ich das eben getestet. Für Vorschau musste ich das Dock neustarten:

Via

Ubuntu: Chrome Proxy Settings (ohne Plugin)

Chrome lässt einen die Proxy-Einstellungen nicht über das UI machen:

When running Google Chrome under a supported desktop environment, the system proxy settings will be used. However, either your system is not supported or there was a problem launching your system configuration.

But you can still configure via the command line. Please see man google-chrome-stable for more information on flags and environment variables.

Aber über die Kommandozeile geht es:

Dann die drei “Exec”-Einträge erweitern:

UPDATE

Da Chrome fantastischerweise alle 12 Minuten eine neue Version raushaut, und Ubuntu dann die Settings überschreibt:

macht das oben beschriebene in einem Rutsch (unter Ubuntu 14.04, in anderen Shells mag die Syntax von sed anders sein)

Ubuntu: Create/edit Launcher icon (the complete way)

Launcher Icons anzulegen und/oder zu ändern, wird im Internet zur Genüge beschrieben – hier ein Beispiel (abzulegen in /usr/share/applications):

Aaaber: Wenn man die Anwendung vorher schon mal offen hatte, dann wurde ggf. ein Icon gecached. Das muss man erst löschen, sonst hat man zwar einen neuen Eintrag im Launcher, aber der öffnet parallel ein zweites Icon in der alten Optik:

Java: Datei im Systemeditor öffnen

Googelt man “open file” etc., geht es meistens darum, eine Datei einzulesen. In meinem konkreten Fall wollte ich sie aber öffnen, also bsplw. ein PDF im Reader. Lösung:

Achtung: Eventuelle Handles müssen geschlossen werden, oder es gibt ein

There was an error opening this document. This file is already open or in use by another application.

Für einen OutputStream sieht das so aus: