Monitorentscheidungsfindung, Teil 1: Die Anforderungen
Wednesday, 22. April 2020
Ich sitze vor meinem Aushilfsmonitor, ein alter Fernseher, der als PC-Monitor leider wirklich ungeeignet ist – die Farben sind schlecht, er ist wackelig, das Bild ist unruhig und die Schrift daher schwer lesbar. Also muss es wohl wirklich ein neuer werden. Dass ausgerechnet heute ein Gutschein von dem Onlineladen ankam, in dem der kaputte Vorgänger gekauft wurde, ist ein unfassbarer Zufall und ausnahmsweise tatsächlich kaufmotivierend.
Immerhin half das Schrottmodell, wie ich ihn freundlich nenne (denn als Fernseher ist er nicht so schlecht), bei einer Entscheidungsfrage: 24" ist nicht zu klein, ich habe mich nicht durch den vorherigen 27"-Monitor zu sehr an größere Bildschirme gewöhnt. Da bin ich ehrlich überrascht von.
Das war wichtig zu wissen, denn 27"-Monitore sollten mit 1440p laufen, was für meine Grafikkarte in Spielen nicht so toll ist. Und bei 1080p kann ich auch eher in Richtung höherer Hertzzahl oder echten Budgetmodellen gucken.
Wichtig auch noch: Ich programmiere viel, schaue Videos, bin im Netz unterwegs und ich spiele. Weniger Multiplayer und weniger Shooter als früher, aber immer noch eine breite Auswahl. Ich hatte mich damals für meinen Dell entschieden weil er als guter Allrounder bezeichnet wurde. Sowas suche ich wieder – und sowas sollten die meisten suchen, die am PC mehr machen als nur zu spielen, aber eben auch spielen.
Doch ist das gar nicht so einfach. Was ist 2020 ein akzeptabler Allrounder? Die Suche danach und meinen Entscheidungsprozess halte ich hier im Blog in einer Artikelserie fest.
Um überhaupt auswählen zu können habe ich erstmal versucht, einen Rahmen zu setzen. Eigenschaften, die neben "Es ist laut Test ein guter Monitor" als Auswahlkriterien dienen können oder unbedingt vorhanden sein müssen.
Freesync
Zuerst Freesync: Das ist gesetzt, zu interessant finde ich die Idee, damit Ruckler in Spielen zu vermeiden. Es synchronisiert die Grafikkarte und den Monitor, sodass der Monitor nur immer dann ein neues Bild anzeigt, wenn die Grafikkarte ein neues Bild fertiggezeichnet hat. Es gibt das reguläre Freesync und seit Anfang des Jahres Freesync Premium. Letzteres gibt die Unterstützung höherer Bildschirmwiederholraten vor und – wichtiger noch – hat einen Mechanismus um auch zu funktionieren wenn die FPS-Zahl unter die reguläre Freesyncgrenze rutscht (low framerate compensation), üblicherweise ist das bei ~42 FPS. Ob der neue Premium-Standard unter Linux funktioniert habe ich nicht herausgefunden, weiß aber, dass es nachträglich auch bei älteren Monitoren aktiviert wurde.
Derzeit funktioniert Freesync unter Linux nur mit Displayport, was ein Problem sein wird wenn es ein günstiger Monitor sein soll, denn die kommen oft nur mit HDMI. Andererseits könnte Freesync-HDMI-Unterstützung folgen. Darauf zu spekulieren würde ich im Zweifel riskieren.
Angesichts meiner Probleme mit dem HP 27q ist es auch ein Wunschfaktor, dass Freesync manuell aktivierbar ist. Keine Verknüpfung mit einem Spielemodus, der dann auch Farben und Helligkeit umstellt. Den darf es geben, aber nur zusätzlich. Ich hoffe, bei den Monitoren die in in die engere Auswahl kommen ist das herausfindbar.
Größe, Auflösung und Hertz bestimmen Kosten
24" und 1080p darf angesichts der breiten Auswahl günstiger und mindestens akzeptabler Modelle nicht mehr als 200€ kosten. Die günstigsten Modelle haben normalerweise 60Hz und können erst mit Freesync auf 72Hz oder 75Hz hochschalten. Um zu rechtfertigen nahe an der Budgetgrenze zu sein sollten es dann schon über 100 Hertz sein.
Bei 27" ist unter 200€ leider unrealistisch, über 300€ will ich aber auch nicht ausgeben. Wenn 27", dann mit 1440p. Das ist wichtig, denn Monitore haben sowieso schon einen schlechte DPI-Faktor, wodurch viele Dinge auf ihnen vergleichsweise schlecht aussehen (im Gegensatz zu Smartphones). https://www.sven.de/dpi/ ist da hilfreich. Der Ausgangspunkt ist 91 dpi für 1080p bei 24", nur 80 dpi hätte man mit 1080p bei 27", aber immerhin 108 bei 1440p. Smartphones haben mindestens 200, 300, 400 und mehr, je nach Klasse und Generation. Das macht einen Riesenunterschied und deshalb ist unter den schlechten Computerstandard zu rutschen gar keine Option.
Ich merke allerdings gerade, dass mit der Logik auch größere Monitore noch okay sein könnten, solange sie 1440p haben. Und zwar ginge das bis 32", das wären ebenfalls 90 dpi. Interessant, denn in der Größe gibt es tatsächlich ein paar passende Modelle. Die werde ich berücksichtigen.
27", 1440p und 144Hz ist der momentane Standard guter Spielermonitore, z.B. beim LG UltraGear 27GL850-B. Verstehe zwar voll, wenn jemand solch einen richtig guten Monitor haben will, mir aber ist das zu teuer – wenn der Kater den kaputtmacht wäre ich echt bedrückt. In Frage kommen daher bei 1440p eher nur 75Hz-Modelle.
Herzstück Panel
Die wichtigste Entscheidung ist das Panel. Es gibt derzeit vier Technologien: OLED, IPS, VA, TN. OLED kann man direkt wieder vergessen, das ist für Computermonitore Zukunftsmusik. TN dagegen ist ein Anachronismus: Das ist der alte Standard und wurde gewählt weil anfangs meist nur TN-Panel schnell genug für hohe Bildschirmwiederholraten und Reaktionszeiten waren. Schlechte Farben, schlechte Sichtbarkeit sobald man nicht 100% gerade davor sitzt, disqualifizieren es. Mittlerweile selbst für Spieler, weil IPS- und VA-Panel auch dafür schnell genug geworden sind. Für IPS auf 60Hz galt das schon länger – mein alter Dell U2312HM war ein Beispiel dafür – aber jetzt gilt das auch für VA-Panel und sogar für höhere Bildwiederholraten wie 144 und mehr.
IPS und VA haben beide bessere Farben und Blickwinkel als TN. Der Unterschied ist, dass VA dunkler werden kann – während bei IPS schwarz eher dunkelgrau ist (je nach Panelqualität). Dafür ist IPS normalerweise schneller, was Schlierenbildung vermeidet und bei Filmen und Spielen helfen kann. Allerdings dürften die neuen VA-Panel da nachgezogen haben. Die Textdarstellung soll sich auch unterscheiden, aber was besser ist scheint subjektiv.
Das Problem bei modernen IPS- und VA-Paneln ist die ungleichmäßige Hintergrundbeleuchtung. Oft haben sie an den Rändern Stellen die viel heller sind, IPS-Glow, Lichthöfe und Backlight-Bleed. Seltenst sieht man das außerhalb dunkler Bilder, dann aber ist das potentiell nervig. Mein nun kaputter HP 27q hatte das, ich konnte es ignorieren, aber fand es nicht toll. Ich dachte erst, VA-Panel wäre davon nicht betroffen und hätte mich dann darauf festgelegt, aber laut Reviews stimmt das leider nicht.
Wichtige Nebenfaktoren
Die Oberfläche muss matt sein, damit man auch bei Sonnenlicht im Raum etwas sieht. Vor ein paar Jahren war das superselten, glücklicherweise haben die Hersteller die Massenidiotie beendet und jetzt sind stattdessen die reflektierenden Oberflächen fast ausgestorben. Da ich zu viel vor dem Bildschirm sitze wäre es vernünftig, wenn er mindestens höhenverstellbar wäre, besser auch neig- und schwenkbar. Der Puzzlekarton muss nicht auf dem Schreibtisch bleiben. Aussehen ist im Grunde egal, wobei ein altbacken aussehender Bildschirm dann problematisch ist, wenn er tatsächlich als ist. Denn die Technologie wurde ja doch immer weiter verbessert (z.B. Overdrive, Motion-Blur-Reduzierung, Backlight-Strobing, HDR).
Soviel zu den Rahmenbedingungen. Der nächste Artikel wird die passenden 1080p-Kandidaten durchgehen. Vorschläge dafür und Ergänzungen zu den Anforderungen sind gerne gesehen.
Review: HP Pavilion 27q
Monday, 20. April 2020
Der Kater ist von der Fensterbank gerutscht, hat dabei den Monitor umgeworfen und der ist jetzt kaputt, da auf der Kante der Tastatur gelandet. Der Monitor, das war ein kein Jahr alter HP Pavilion 27q. Es war eine Kompromisslösung, was ja bei Monitoren mit ihren vielen Vor- und Nachteilen derzeit häufig ist. Letzte Gelegenheit zu dokumentieren was ich von ihm hielt.
Aussehen und Bild
Als der 27q ankam war ich ziemlich beeindruckt. Mein Monitor zuvor war ein Dell U2312HM, der HP-Bildschirm mit seinem minimalen Rand sah sehr viel besser aus. Nach dem Anschalten war ich auch erstmal beruhigt: Die Farben des IPS-Panels waren gut. Sie mussten nur etwas konfiguriert werden.
Schnell entdeckte ich dann doch einen Nachteil: Bei richtig dunklen Hintergründen waren vor allem im unteren Bereich des Monitors deutlich wahrnehmbare hellere Abschnitte, es gab also diese typischen IPS-Lichthöfe. Das ist wohl eine Krankheit moderner IPS-Panel, während in den Dells von früher bessere Panels verbaut wurden, die solche Probleme seltener haben. Vielleicht spielt da auch der dünne Rahmen mit rein. Ich entschied mich, das zu ignorieren. Es störte nur bei richtig dunklen Spielen und Filmen.
Der Standfuß
Leider nur kippbar, nicht höhenverstellbar. Und nicht katzensicher. Ob man letzteres erwarten kann bezweifle ich zwar, aber die Höhenverstellbarkeit ist eigentlich wichtig. Und auch schwenkbar sollte ein Monitor sein. Aber damit konnte ich mich arrangieren. Für den normalen Gebrauch wirkte das hübsche Konstrukt gerade stabil genug.
Freesync
Was mich ärgerte war die Umsetzung von Freesync. Die war nämlich regulär nur über einen Modus im OSD-Menü aktivierbar, der auch andere Einstellungen wie Farben und Helligkeit änderte. Man musste tricksen: Erst den Game-Modus aktivieren, dann die Farben ändern, dort im Menü aber nicht bestätigen (sonst geht Freesync wieder aus da Moduswechsel), sondern das Menü von alleine ausgehen lassen. Oder so ähnlich. Auf jeden Fall war das kompletter Murks.
Die Auflösung ist 1440p und sollte mit 75Hz und Freesync laufen. Das klappte bei mir nicht, das Bild flackerte. Erst wählte ich per Modeline 72Hz, als dann auch das flackerte blieb ich einfach bei 60. Ich war mir nie sicher, ob das an Linux lag oder am Bildschirm. Beides ist möglich, denn auf Linuxseite ist die Freesyncunterstützung recht neu und da gab es einige Berichte von ähnlichen Problemen, die dann nach Treiber und Kernelupdate verschwanden. Andererseits sollte Freesync wirklich eine separate Einstellung sein und das ist einzig dem Monitor anzulasten.
Es war ein Kompromiss
Meine Wahl fiel auf den 27q, weil es ein Upgrade zum Dell-Monitor sein sollte, aber ein teurerer auch nicht wie eine tolle Idee wirkte. 1440p ist eine gute Auflösung, die bei 27" gerade so die DPI leicht verbessert, zu 24" und 1080p. Dank ihr mehr Platz auf dem Bildschirm zu haben war definitiv nett, gerade beim Programmieren oder der Dateneingabe. Beim Spielen aber wäre meine RX 580 mit 1440p und 144Hz überfordert, was die eigentlich gute Wahl für Spieler derzeit ist, jetzt mehr noch als vor einem Jahr. Wobei bei Spielen generell die höhere Bildschirmwiederholrate einer höheren Auflösung vorzuziehen sei. Aber das ist bei mir ja nur ein Teil der Nutzung. Von daher passte der HP Pavilion 27q ganz gut, immerhin bot er 27", 1440p und Freesync, wenn auch bei mir leider nicht mit den gewünschten 75Hz. Sein Bild war gut, dafür hatte er Lichthöfe. Sein Design war hübsch, dafür der Stand nur begrenzt funktional. Ein Kompromiss voller Kompromisse.
Welche Abwägungen akzeptabel sind, vor diesen Überlegungen steh ich jetzt wieder mit dem zu kaufenden Nachfolger. Immerhin sind inzwischen die guten Monitore deutlich weniger schlechte Kompromisse als vorher, da mittlerweile die TN-Panel endgültig tot sind und zu den IPS-Paneln gute VA-Panel hinkamen, voll spieletauglich bei exzellenter Farbwiedergabe (zeigt z.B. der Test zum MSI Optix MAG272CQR). Der Markt ist einen Schritt weiter, der HP 27q hat mich durch eine Übergangzeit getragen. Andererseits sind gute Monitore immer noch teuer und in Deutschland besonders, und teilweise auch gar nicht verfügbar. Das macht die Wahl wieder nicht einfach und auch nicht spaßig. Aber dazu später mehr.
Pipes ist nun frei
Friday, 17. April 2020
Ich habe mich entschieden, Pipes unter eine freie Lizenz zu stellen. Die Pipes CE ist nun auf Github, steht unter der AGPL und ist einfach installierbar.
Pipes ist ein Projekt von mir, eine Webanwendung, die Yahoo! Pipes nachempfunden ist. Es ist ein grafischer Editor, in den man Daten – gerne RSS-Feeds – hereinzieht und dann bearbeitet, indem Blöcke verbunden werden. Einfachstes Beispiel wäre das Filtern eines Blogs oder eine Nachrichtenseite nach einem bestimmten Thema. Die geteilten Pipes zeigen was andere damit anfangen, und ich hatte im Pipes-Blog eine kleine Artikelsammlung darüber geschrieben, was die Seite so kann.
Auf jeden Fall war diese Webanwendung bisher nicht offen. Auf der einen Seite muss sowas natürlich auch mal okay sein, andererseits ging mir das auch etwas gegen den Strich, und es ist gerade bei Pipes ein bisschen kritisch gewesen. Denn der Vorgänger (mit dem ich nichts zu tun hatte) wurde erst nicht weiterentwickelt, dann abgeschaltet. Klar, dass dann nicht jeder Zeit (oder gar Geld) in eine SaaS-Seite investieren will, bei der das wieder passieren könnte. Die neue freie Version soll gegen solche Bedenken helfen.
Pipes CE ist eine Ruby/Sinatra-Anwendung. Sie kann einfach installiert werden und läuft dann eben auf dem eigenen Rechner oder Server. Der Funktionsumfang ist momentan nicht geringer als bei Pipes, nur Zeug wie die Stripeeinbindung habe ich herausgenommen. Das Design ist auch angepasst, es soll ja nicht identisch aussehen. Im Laufe der Zeit könnte sich noch ändern wie ähnlich die beiden Versionen sich sind. Wie es jetzt weitergeht ist nicht genau durchgeplant und hängt ja auch davon ab, ob noch andere gerne mit der Software spielen wollen.
Klopapier, Handelsabkommen und Parkbänke
Wednesday, 15. April 2020
1.
Dass heute noch, Wochen nach dem Anfang der Vorsorgungskrise, kein Toilettenpapier in den Supermärkten vorhanden ist zeigt ein Systemversagen. Es ist höchst bedenklich: Bedürfnisse besser zu befriedigen als alle anderen Systeme war immer das große Plus des Kapitalismus. Aber in der jetzigen Form reicht es nichtmal fürs saubere Kacken. Ob verstaatlichte Produktion oder Verteilung der Güter: Auf einmal sehen extremste antikapitalistische Maßnahmen vernünftig aus. Das ist ein historischer Moment, manifestiert im gewöhnlichsten der Konsumgüter.
2.
Stefan Sasse scheibt in Wie Weltordnungen sterben über das Ende der liberalen Nachkriegs-Weltordnung:
Und nun zu Corona. Die Geschwindigkeit und Leichtigkeit, mit der die Nationalstaaten sich ihre Souveränität, die noch in der Brexit-Debatte (auch von mir) als Anachronismus gehandelt wurde, wieder zurücknahmen, die Flüsse von Menschen, Kapital und Waren zwischen den Grenzen zum Erliegen brachten und Vertragswerke von den WTO-Regeln bis zu Maastricht einfach ignorierten, dürfte nicht nur unter der Knute des IWF leidende Entwicklungsländer oder die Bevölkerung Athens überrascht haben. Es ist gerade die Selbstverständlichkeit, mit der das Abtreten all dieser Regeln hingenommen wurde, die ein Alarmzeichen sein sollte.
Und auch wenn ich befürchte, dass er Recht hat und wir keinesfalls den Schwanengesang des Kapitalismus erleben: Der Versuch, überaggressive globalkapitalistische Handelsabkommen durchzusetzen ist auch ein großer Teil dieser Entwicklungen. ACTA und TTIP zeigten überdeutlich, dass im jetzt sterbenden System wichtigste Nationalstaatsbefugnisse bedroht waren. Mit ihren Inhalten wie mit dem Versuch, sie außerparlamentarisch durchzudrücken. Die Retrospektive macht die Richtigkeit der Kritik nochmal überdeutlich: Dass mit TTIP US-Schrottprodukte auf europäische Märkte gespült worden wären bekommt doch nochmal besondere Brisanz wenn Krisen wie die momentane zeigen, wie wichtig Produktions- und Hygienestandards sind. Und auch die Bedeutung autarker Produktionslinien wird deutlich, wenn globale Versorgungsketten zusammenbrechen. Autarke Systeme jedoch stehen im direkten Konflikt mit der Intention solcher Handelsabkommen, die allerdings die Essenz der bisherigen Weltordnung waren.
Noch dazu gäbe es mit TTIP jetzt übernationale Schiedsgerichte, die gegen Firmen und Staaten vorgehen würden, die auf den Coronavirus reagieren. Auch deshalb, weil die Neoliberalen maßlos überzogen haben, gehen jetzt kritiklos die Grenzschranken runter.
Auch wenn Faschisten wie Trump aufgrund höchstmöglicher Unfähigkeit von der Krise nicht profitieren - senil, diktatorisch und komplett der Realität entrückt kann auch ein Möchtegernalleinherrscher nicht angemessen auf eine Krise reagieren -: Dieser Grundkonflikt zwischen Allmachtsanspruch des Globalkapitalsmus und seiner jetzt besonders deutlich werdenden Missachtung nationaler Interessen (wie Autarkie, Lohnsteigerungen, Wohlstandsgewinn, funktionierenden Sozialsystemen) wird ein großes Problem für Politiker bleiben, die Globalismus als Heilmittel predigen - ob das nun eine Clinton, ein Biden, Macron oder ein Merz ist. Wenn wegen ihrer Kernidelogie Menschen in unterfinanzierten Krankenhäusern verrecken und in vielen Ländern so viele trotz Virus arbeiten gehen müssen und sich und andere deswegen anstecken; weil sie sonst verhungern würden, dann ist das definitiv kein gutes Propagandamaterial für die Globalisierer. Wenn das nicht den Linken nützt wird es mittelfristig doch den Nazis zugute kommen.
3.
Der Konflikt ums Sitzen auf Parkbänken ist nicht belanglos und nicht zu verharmlosen. Zu verbieten, alleine in Parks zu gehen und dort die Sonne zu genießen, ist absurd. Daran festzuhalten ist absurder.
Die uns allen auferlegten Beschränkungen sind massiv, das Demonstrationsverbot grundgesetzwidrig. Das scheint derzeit egal – denn es ist egal, solange alle Seiten überzeugt sind, dass derzeit von allen ehrlich das bestmögliche versucht wird und temporäre Überschreitungen der Rechtsordnung nötig sind, um den Virus unter Kontrolle zu bekommen. So abgedroschen das klingen mag: Es ist ein ganz frischer Gesellschaftsvertrag. Und damit ein hochheikler Balanceakt. Der direkt zu kippen droht, wenn von Seiten der Staatsmacht offensichtlich unsinnige Maßnahmen durchgesetzt werden, wenn die einzige Rechtfertigung weil sie es kann und du hast zu gehorchen ist.
Wenn sich daran die Gesellschaft erzürnt ist das keine überzogene schildbürgerhafte Debatte, nicht Ausdruck deutscher Verantwortungslosigkeit, sondern Erfüllen einer wichtigsten Alarmfunktion. Da drohte der fragile Zusammenhalt zu kippen. Und auch hier ist ein ganz gewöhnliches Objekt plötzlich von womöglich historischer Wichtigkeit, setzt sich die Parkbank zum Klopapier.
Mit SAX effizienter XML parsen
Monday, 13. April 2020
Normalerweise nutze ich das DOM-basierte Einlesen von XML-Dateien. Mit oga unter Ruby zum Beispiel so:
require 'oga' doc = Oga.parse_xml('<people> <author> <name>onli</name> <real>yes</real> </author> <author> <name>Unsichtbares Einhorn</name> <real>no</real> </author> </people>')
doc
ist dann eine Baumstruktur, die z.B. mit xpath durchgegangen werden kann:
p doc.xpath("//name").map{|x| x.text } # => ["onli", "Unsichtbares Einhorn"]
So vorzugehen hat aber einen Nachteil: Den Speicherbedarf. Ich arbeitete vorhin mit einer XML-Datei, die als .gz heruntergeladen schlanke 13 MB wog. Entpackt waren es dann schon 164 MB. Der Speicherverbrauch beim direkten Einlesen nach obiger Methode? 4 GB. Viel zu viel für den kleinen Mini-PC, der später regelmäßig diese XML-Datei bearbeiten und bestimmte Einträge finden soll. Denn der hat nur 500 MB Ram.
Ich bin dann schließlich bei SAX gelandet. Grundsätzlich ist das nicht schneller, deswegen hatte ich diesen Ansatz nach einem Erstkontakt vor vielen Jahren nicht mehr in Betracht gezogen. Aber hier passt es: Anstatt die Datei auf einmal zu lesen und eine komplexe Struktur in den Speicher zu packen wird die XML-Datei Zeile für Zeile durchgegangen. Und bei jedem Schritt wird ein Handler benachrichtigt, welches Element das gerade ist. Der Handler kann dann alles ignorieren was für ihn nicht wichtig ist und seine Aufgabe erledigen. Das könnte z.B. sein, spezielle Elemente zu zählen, ein Standardbeispiel für SAX. Oder man kann es auch nutzen, um nur die Daten aus der XML-Datei herauszuholen die interessant sind. Entsprechend gering kann der Speicherverbrauch bleiben.
Wollte ich in der Beispieldatei von oben nur Autorennamen speichern, die real sind, dann könnte der SAX-Parser das so machen:
require 'oga' class RealAuthorNames attr_reader :names attr_reader :currentElement attr_reader :currentText attr_reader :name def initialize @names = end def on_element(namespace, name, attrs = {}) @currentElement = name end def on_text(text) unless text.strip.empty? @currentText = text @name = @currentText if currentElement == 'name' @names.push(@name) if @currentElement == 'real' && @currentText == 'yes' end end end handler = RealAuthorNames.new Oga.sax_parse_xml(handler, '<people> <author> <name>onli</name> <real>yes</real> </author> <author> <name>Unsichtbares Einhorn</name> <real>no</real> </author> </people>') p handler.names # => ['onli']
Die Liste der möglichen SAX-Ereignisse habe ich aus dem obersten Kommentar von ogas sax_parser.rb entnommen. Nokogiri hätte sie im Tutorial gelistet.
Der Code zeigt, warum ich SAX normalerweise vermeide: Schön ist das nicht. Selbst dieses simple Beispiel hat mehrere Zustandsvariablen und verlässt sich darauf, dass die XML-Datei regelmäßig aufgebaut ist. Aber es funktioniert eben: Die größere XML-Datei zu verarbeiten verbraucht jetzt nicht mehr 4 GB Speicher, wenn die für mich relevanten Daten rausgeholt werden, sondern der Arbeitsspeicherverbrauch bleibt unter 80 MB.
OpenVPN-Performance durch MTU-Anpassung retten
Friday, 10. April 2020
Während bisher mein VPN-Anbieter gut funktionierte, hatte ich in letzter Zeit massive Probleme. Ich weiß nicht ganz, wann das angefangen hat, aber einige Seiten wollten einfach nicht laden oder brauchten dafür viele Sekunden, manchmal luden auch nur Teile der Seite. Verzögert waren auch Seiten wie https://old.reddit.com/, die ohne aktivierten VPN in kürzester Zeit da sind. Gleichzeitig war nicht etwa der Server oder meine Leitung überlastet, denn andere Seiten wie Hacker News funktionierten einwandfrei und erschienen sofort.
Ich versuchte dem durch Serverwechsel zu begegnen, in der Annahme, dass der Anbieter schuld ist und einzelne Serverstandort überlastet. Als das nicht half wurde ich jetzt misstrauisch. Wird da die Verbindung geblockt? Stimmt da irgendwas auf der Route nicht?
Ich fand dann Hinweise wie den, die Komprimierung zu deaktivieren oder zu aktivieren. Der hilfreicheste zusammenfassende Artikel über was helfen könnte war ein Blogartikel, Optimizing OpenVPN Throughput von Hamy, ein kompletter Zufallsfund. Und dort findet sich auch die Lösung in meinem Fall: Das Modifizieren der MTU!
Diese zwei Zeilen fügte ich in die .ovpn des Clients (meinem vorgeschaltetem Router) hinzu:
tun-mtu 1492 mssfix 1400
Seitdem ist die Verbindung wieder zuverlässig und völlig akzeptabel schnell.
Bei hashchange den Viewport festhalten
Wednesday, 8. April 2020
Im Zuge der Javascript-Vermeidung beim Redesign von pc-kombo habe ich Tabs mit CSS umgesetzt. Das Tab ist ein a
-Element und zeigt auf den #Tabinhalt, also dessen id. Wenn auf das Tab geklickt wurde kann dann per CSS der Tabinhalt als :target
eingeblendet werden. Im Grunde wie hier von Tim Perry erklärt.
Ich wollte aber nun auch verhindern, dass der Browser nach dem Klick nach unten scrollt. Das wäre das normale Verhalten, wenn auf einen Link mit # geklickt wird. Hier aber stört das. Ich kam zuerst auf einen anderen Ansatz als im später gefundenen und verlinkten Artikel:
var tabs = document.querySelectorAll(".tab-item a"); var scrollX = 0; var scrollY = 0; var blockScroll = false; for (var i=0;i < tabs.length; i++) { tabs[i].addEventListener("click", function(e) { scrollX = window.pageXOffset; scrollY = window.pageYOffset; blockScroll = true; }); }; window.addEventListener('hashchange', function() { window.scrollTo(scrollX, scrollY); }, false); window.addEventListener('scroll', function() { if (blockScroll) { blockScroll = false; window.scrollTo(scrollX, scrollY); } });
Das Scrollen wird hier in drei Schritten und zwei Wegen blockiert bzw rückgängig gemacht:
- Zuerst wird beim Klick auf den Tab geschaut, wohin der Browser gerade gescrollt hat und das in zwei Variablen gespeichert.
- Wenn danach das
hashchange
-Event getriggert wird, scrollt das zur gespeicherten Position zurück. Das funktionierte oft, manchmal stimmt da aber die Abfolge nicht und es wird wohl verzögert trotzdem zum Tabinhalt gescrollt. - Deswegen fängt der zweite Ansatz den
scroll
-Event und scrollt auf die Ausgangsposition zurück.
Ja, das sieht ein bisschen gefährlich aus, als könnte man mit dem Code unabsichtlich ein Scrollereignis nach dem Tabwechsel blocken. In meinen Tests (in Firefox und Chromium) passiert das aber nicht, weil das Scroll-Ereignis immer einmal nach dem Klick ausgeführt und geblockt und daraufhin die Variable zurückgesetzt wird.
Der im Artikel vorgeschlagene Ansatz ist ein anderer: Bei Klick mache ein event.preventDefault()
, dann zweimal ein history.pushState()
zum Tabinhalt und gehe einmal zurück. Zweimal und zurück, weil wenn man einfach nur das Event unterdrückt und das target mit pushState() setzt der Browser das ignoriert. Er scrollt dann zwar nicht, aber deckt auch den Tabinhalt nicht auf. Mit dem doppelten Eintrag und einmaligen zurückgehen funktioniert das dagegen einwandfrei, und da flickerfrei besser als mit meinem ursprünglichen Ansatz. Der leicht angepasste Code:
var tabs = document.querySelectorAll(".tab-item a"); for (var i=0;i < tabs.length; i++) { tabs[i].addEventListener("click", function(e) { e.preventDefault(); history.pushState({}, "", e.target.getAttribute('href')); // Update the URL again with the same hash, then go back history.pushState({}, "", e.target.getAttribute('href')); history.back(); }); };
Das werde ich zusammen mit einer noch ausstehenden Änderung bald bei Hardwarelisten wie der für Prozessoren anwenden, sodass die Filterauswahl angenehmer zu benutzen ist.
Mit BOINC gegen Corona rechnen
Monday, 6. April 2020
Es gibt mindestens zwei Programme, um den eigenen PC bei der Suche nach Mittel gegen den Coronavirus helfen zu lassen. Da wäre zum einen Folding@home, wo Proteinfaltungen simuliert werden. Bei der Software BOINC gibt es dagegen das Projekt Rosetta@home, das dreht sich ebenfalls um Proteine und Faltungen, es gibt aber wohl durchaus Unterschiede was berechnet wird. Es scheint als Laie egal, beide könnten helfen.
Bei mir unter void war nur BOINC in den Quellen, bei Ubuntu wäre für Folding@home auch ein .deb auf der Webseite verfügbar. Ich installierte daher BOINC:
sudo xbps-install boinc
Dann startet man am besten den boincmgr
. Er führt durch die Einrichtung und ermöglicht danach die weitere Konfiguration, zum Beispiel wann BOINC arbeiten soll.
Zuerst ist Name und Passwort zu wählen:
Danach erschien bei mir keine für mich klar erkennbare Projektauswahlliste. Rosetta zeigt aber auf der Webseite die URL, http://boinc.bakerlab.org/rosetta/, mit der das Projekt manuell hinzugefügt werden kann:
Man kann auch noch ein Team auswählen, dem man beitreten will. Jetzt sollten auch die Arbeitsaufträge ankommen. Ich habe, um davon und insbesondere die anfänglichen Downloads mehr zu sehen, View -> Advanced View ausgewählt.
Options -> Computing Preferences erlaubt dann noch zu wählen, wann die Anwendung Berechnungen starten soll, beispielsweise nur wenn der Prozessor gerade nichts anderes macht. Das ist auch in der Menüleiste umschaltbar.
Rosetta scheint nämlich ausschließlich den Prozessor zu nutzen. Die Grafikkarte wurde bei mir unabhängig von den Einstellungen nicht belastet. BOINCs Wiki listet Rosetta auch nicht als GPU-Projekt. Das wäre bei Folding@home anders.
Wie man diese Alternative einrichtet zeigte übrigens Linus Tech Tips:
Das Video hat Windows im Fokus, aber abgesehen von der Installation sollte sich da nichts unterscheiden.
maiLab: Corona geht gerade erst los
Friday, 3. April 2020
Das war mir tatsächlich nicht klar. Ich hatte geahnt, dass die Quarantäne länger dauern wird als anfangs kundgetan, aber dass sie so lange nötig sein wird? Und es damit noch gar nicht erledigt ist? Autsch. Schaut das Video an, sie erklärts.
Covid-19 Humble Bundle
Wednesday, 1. April 2020
Humble Bundle hat ein ein größeres Bundle rausgebracht. Die Einnahmen sollen zu 100% an gegen die Pandemie kämpfende Organisationen gehen. 45 Spiele und dazu 40 E-Books oder Hörbücher sind drin. Fast alle der Spiele laufen unter Linux:
- Into the Breach (mit Proton)
- Undertale (nativ)
- Hollow Knight (nativ)
- Wizard of Legend (nativ)
- Totally Accurate Battle Simulator (mit Proton)
- The Witness (mit Proton)
- SUPERHOT (nativ)
- Tilt Brush (mit Proton)
- Lego Batman 3 (mit Proton)
- Killing Floor 2 (mit Proton)
- Fahrenheit: Indigo Prophecy Remastered (nativ)
- Darksiders II Deathinitive Edition (mit Proton)
- Darksiders Warmastered Edition (mit Proton, evtl nicht perfekt)
- Sniper Elite 3 (mit Proton)
- This is the Police (nativ)
- The Jackbox Party Pack 2 (nativ)
- Stick Fight: The Game (mit Proton)
- Brothers: A Tale of two Sons (mit Proton)
- Party Hard (nativ)
- Worms Revolution (mit Proton)
- Europa Universalis IV (nativ)
- Tropico 4 (mit Proton)
- GNOG (mit Proton, dünne Datenlage)
- Broken Age (nativ)
- Brütal Legend (nativ)
- Psychonauts (nativ)
- Pac-Man Championship Edition (mit Proton)
- Pikuniku (nativ)
- World of Goo (nativ)
- Super Hexagon (nativ)
- VVVVVV (nativ)
- Hacknet (nativ)
- A Good Snowman Is Hard To Build (nativ)
- Rebuild 3: Gangs of Deadsville (mit Proton)
- DUCATI - 90th Anniversary (mit Proton, dünne Datenlage)
- HIVESWAP: Act 1 (nativ)
- Alien Spidy (mit Proton)
- LostWinds (mit Proton)
- Zombotron (mit Proton)
Zu A Mortician's Tale gibt es in der Protondatenbank keine Einträge, zu Speed Brawl auch nicht, beide könnten sogar auch laufen. Stealth Inc 2: A Game of Clones braucht manuell angewendete Tricks um zu starten. Magicka funktioniert wohl manchmal mit einigem Aufwand. Agents of Mayhem funktioniert als einziges Spiel im Bundle definitiv nicht.
Was sind die Highlights? Es ist so groß und divers, dass das kaum zu sagen ist. The Witness vielleicht, wenn man Puzzlespiele mag. Hollow Knight und Into the Breach sollen toll sein, aber die muss ich noch spielen. Party Hard klang nett absurd. Wer Topico noch nicht kennt hat mit Tropico 4 ein tolles Aufbauspiel vor sich, Europe Universalis IV ist wohl ähnlich fesselnd wie Crusader Kings 2.
Über Brütal Legend habe ich im Blog geschrieben und damals gewarnt, das war aber abgesehen von den technischen Problemen ein gutes Spiel und ist heute nochmal einen Versuch wert. Fahrenheit fand ich gleichzeitig vermurkst und klasse. Psychonauts ist ein beliebter Klassiker, den ich angespielt habe, aber bei dem ich dann steckengeblieben bin und es nicht beendet habe. Über World of Goo schrieb ich vor über zehn Jahren, es ist eine sehr positive Erinnerung. All diese Spiele dürften die meisten aber schon haben.
Insgesamt ist das schon ein gutes Bundle. Man sollte nur gucken, dass wenigstens ein paar Spiele dabei sind, die einen persönlich wirklich interessieren. Und wer bisher fleißig Humble Bundles gekauft hat sollte prüfen, dass nicht zuviele der Spiele schon in der eigenen Sammlung drin sind.
Das Bundle ist noch 6 Tage verfügbar, bis zum 07.04.2020.
Coronawasserstandsmeldung
Monday, 30. March 2020
Seit der Rückkehr aus Griechenland ist der Alltag vom Coronavirus geprägt. Das sind jetzt etwas mehr als zwei Wochen, die ich soweit möglich in Quarantäne verbringe. Das ausgefallene Serendipitytreffen war im Blog sichtbar, vieles andere nicht. Zeit, kurz zu beschreiben wie das hier aussieht.
Größte Änderung ist wahrscheinlich die Heimarbeit der Miturlauberin. Statt unter der Woche im Büro zu verschwinden sitzt sie jetzt mit mir im (übergroßen) Arbeitszimmer. Mir gibt das etwas andere Arbeitszeiten vor, denn solange sie arbeitet mache auch ich nur wenig anderes. Vorher war das weniger strukturiert, da fing meine Arbeitszeit öfter mal auch etwas später an und ging dann in die Nacht rein.
Wir hatten schon vorher einen Wocheneinkauf drauf, dazu ging dann meist ich nochmal in die Stadt und holte was fehlte. Und es wurde oft mindestens einmal am Wochenende irgendwo auswärts gegessen. Jetzt haben wir stattdessen für zwei Wochen Vorräte eingekauft, langsam nähern sich die dem Ende und wir müssen wieder raus. Lieferdienste für Supermärkte gibt es hier übrigens nicht.
Das natürlich ist der andere große Unterschied: Möglichst zu vermeiden rauszugehen ist eine ganz andere Einstellung als zuvor, als mal wieder die Wohnung zu verlassen etwas positives war. Wobei es dafür doch eine ganze Reihe von Gründen gab, zum Beispiel Spieleabende, erst letzten Monat war ich gar auf einem Spielewochenende, oder einfach so mit Freunden essen. All das fällt jetzt aus.
Wie fast alle sind wir eingebunkert, aber nicht abgeschnitten. Zwar verfolge ich die Nachrichten, aber nur sporadisch. Nachrichten zu lesen ist verstörend, das galt vor der Epidemie und jetzt noch mehr. Andererseits kann man sich nicht ganz abkapseln, was passiert ist wichtig zu wissen. Das will ausbalanciert werden.
Die Besorgnis darf nicht überhand nehmen, aber sie ist natürlich da. Die kommende Rezession passt so wirklich gar nicht in meinen Plan. Gleichzeitig ist da auch ein Funken Wut. Nur Kranke zu testen, die in Kontakt waren mit Leuten, bei denen der Coronavirus diagnostiziert wurde – das war grundfalsch. Es war doch völlig absehbar, dass sich der Virus dann selbständig macht; Wenn nur einmal einer nicht erwischt wurde, werden dann alle von ihm infizierten nicht getestet. Und genau das ist passiert. Nichts war bereit, auch die Ärzte nicht, wie ich selbst mitbekommen habe wurden noch lange nach Ausbruch der Epidemie Leute mit allen Symptomen beim Arztbesuch in volle Wartezimmer verfrachtet – trotz Risikozone NRW. Komplettversagen.
Ich bin gespannt, wie lange die Quarantäne anhält und hoffe sehr, dass die Neuinfektionszahlen bald sinken. So wie es bis jetzt aussieht kommen wir gut zurecht. Ich kann problemlos noch deutlich mehr Zeit mit minimalem Außenkontakt verbringen. Aber mit dem Hintergrund der weiter wachsenden Pandemie ist das nicht angenehm.
Oh Gott, die Abiprüfungen könnten ausfallen
Thursday, 26. March 2020
Die Diskussion über die Abiturprüfungen finde ich völlig absurd. Jetzt sollen sie doch stattfinden, vorher sollten sie ausfallen. Finden sie statt, ist es die falsche Entscheidung und zeigt, dass noch genug im System verhaftete die Bedeutung dieser Krise nicht verstanden haben.
Völlig auf die Spitze treibt es dieses Interview in der Zeit mit Bildungsforscher Olaf Köller, der sich darüber beklagt dass ohne Prüfungen die Noten anders verteilt wären.
Nehmt diesen Wortwechsel:
Köller: Im Gymnasium macht das ein oder zwei Zehntelpunkte der Gesamtnote aus.
ZEIT: Das sind minimale Unterschiede.
Köller: In Fächern wie Psychologie oder Medizin entscheiden solche Unterschiede darüber, ob man einen Studienplatz bekommt. Das bedeutet, dass die jetzigen Abiturienten gegenüber dem Jahrgang von 2019 oder auch dem von 2021 einen Vorteil haben werden. Denn die Jahrgänge bewerben sich ja nicht immer alle geschlossen für einen Studienplatz. Geradezu jubeln dürfen dieses Jahr alle Schüler, die ihr Abitur nicht auf einem Gymnasium ablegen, sondern auf Gesamtschulen, Sekundarschulen oder beruflichen Gymnasien.
Da ist das Problem doch nicht die nicht oder doch stattfindende Prüfung! Wenn Zehntelnoten über Studienzulassungen entscheiden, wird doch völlig offensichtlich, dass das momentane NC-System das Problem ist.
Etwas Kontext. Ich hatte eine ziemlich gute Abiturnote, für meine Schule zumindest. Danach war ich lange an der Uni im MINT-Bereich – weil ich das volle Programm durchgegangen bin, Bachelor, Master, Doktorat (in Frankreich), Post-Doc (an einem deutschen Forschungsinstitut). Erstsemester als Mentor zu beraten war im Bachelor mein Nebenjob. Und ich kann eines mit absoluter Gewissheit sagen: Die Abiturnote bedeutet gar nichts.
Teilweise ist eine hohe Note eher ein Warnsignal, wofür ich selbst ein gutes Beispiel bin. Da mein Studium Fächer beinhaltete, in denen ich (trotz guter Note) nicht stark war, war ich im ersten Semester ein eher schlechter Student. Und fiel prompt durch eine wichtige Prüfung durch. Richtig zu lernen hatte ich in der Schule nicht gelernt, bzw: Zum Glück hatte ich es (mit einer Lernpartnerin für Mathe) doch etwas kennengelernt, nur beileibe nicht gerafft, dass ich es jetzt immer so machen muss. Denn an der Uni ist jede Prüfung auf dem Level einer Abiturprüfung. Der Unterschied ist, dass sie zu einem für das Studium relevanten Thema ist. Es kommt Unmengen an Stoff ran, man muss Lösungen auswendig wissen, einfach zu kombinieren – was in der Schule je nach Fach reicht – können hier nur noch die allerwenigsten. Wären meine Noten in der Schule etwas schlechter gewesen, hätte ich das mit dem konsequenten Lernen besser drauf gehabt, dann wäre mir das Studium gerade anfangs leichter gefallen.
Deswegen geht mir nicht in den Kopf, wie jemand mit Ahnung vom System ausfallende Abiturprüfungen beklagen kann. Jedem mit auch nur minimalen Einblick in den Universitätsalltag solle klar sein, dass die Noten außerhalb der künstlichen Strukturen beim Zulassungsverfahren komplett bedeutungslos sind. Da selbstverschuldet und künstlich aufrechterhalten, ist das ein einfach zu lösendes Problem. Richtig wäre: Prüfungen ausfallen lassen – selbstverständlich! Selbst eine minimale Ansteckungsgefahr ist noch viel zu groß für so ein bedeutungsloses Ritual – und den NC abschaffen. Der ist doch sowieso nur eine Krücke, um fehlende Ressourcen zu verschleiern. Er sortiert nicht die geeigneten Kandidaten auf den richtigen Studienplatz, sondern ist eine Zufallsfunktion als Filter, mit dem zu wenige Studienplätze an zu viele Interessenten verteilt werden. Was grundgesetzwidrig ist, egal was die Richter sagen.
Es ist das Studium selbst, das filtern sollte. Und idealerweise nicht strikt mit Noten. Vielmehr müsste es darum gehen, den Studenten die spätere Arbeit zu zeigen und dafür das nötige Wissen anzubieten. Jeder merkt dann selbst sehr schnell, ob er dafür geeignet ist oder nicht. Ist er es nicht? Dann mach was anderes. Ist er es? Dann ist die Note schnuppe.
Mir ist klar, dass in einem begrenzten Umfang Prüfungen da helfen können: Wer keine Ahnung von Biologie hat, ist vielleicht später kein toller Forscher für Medizin. Wer die Grundlagen der Informatik nicht versteht, bekommt später wahrscheinlich auch bei einem Job Probleme, der sie benötigt. Da ist eine Prüfungsnote dann auch ein gutes Signal an den Student selbst. Aber sollte das die Regel sein, braucht man für diese Erkenntnisfunktion für jeden Kurs eine universitäre Abiprüfung? Nein. Spielt hier die Abiturnote noch irgendeine Rolle? Nein!
Damit Studenten frei wählen können fehlen die Ressourcen? Dann schafft sie herbei! Wir sehen doch gerade, dass wenn gewünscht Geld im Überfluss vorhanden ist. Dann muss nach der Coronakrise eben ein echtes Paket für die Universitätsfinanzierung aufgesetzt werden, sodass jeder sein Wunschstudium zumindest ausprobieren kann.
PS: Es gibt eine systemerhaltende Lösung für Konservative. Statt den NC abzuschaffen kann man ihn runtersetzen. Sodass eben nicht mehr entscheidet, ob der Schüler eine 1.0 oder eine 1.1 hatte, sondern ob er eine gute Note oder eine schlechte hatte. Gut könnte alles über 3.0 sein. Schärfere Abstufungen wären verboten. Wer wirklich glaubt, dass Abiturnoten grob etwas aussagen, der sollte damit zufrieden sein. Und entschärft trotzdem den Wahnsinn der Bedeutung der Zehntelnoten. Das verhindert zudem, dass manche Studiengänge einen Notenschnitt fordern, der an einigen Schulen grundsätzlich unerreichbar ist Damit wäre zwar nicht alles toll – wenn jemand mit einer 3.1 ausgefiltert wird bliebe das ungerecht, es wäre immer noch Filtern nach bedeutungslosen Kriterien. Aber diese Ungerechtigkeit scheint einer gewissen Klientel deutscher Bürger am Herzen zu liegen. Und es wäre immerhin ein bisschen besser.
Rückblick auf das virtuelle Serendipity-Camp (und neues zu utf8mb4)
Wednesday, 25. March 2020
Traditionell treffen sich die Mitstreiter des Serendipity-Projekts einmal jährlich im Linuxhotel in Essen. Geplant war es dieses Jahr am gerade vergangenen Wochenende. Corona hat uns das natürlich unmöglich gemacht. Stattdessen haben wir uns online getroffen, am Samstag per Jitsi Meet, am Sonntag gab es noch etwas Aktivität im Slack-Chat.
Es ist natürlich nicht das gleiche. Und Gedanken, da strukturiert mehr zu bieten als nur da zu sein und eventuell gemeinsam zu diskutieren und entwickeln waren nach dem Schwenk auf online (bei mir zumindest) ganz schnell weg. Trotzdem ist so etwas super wertvoll: Niemals sonst kann man sich so gut abstimmen, selten nehmen sich so viele Zeit für das Projekt. Und es ist schön, die anderen zu hören, auch neue Stimmen waren dabei :)
Im Ergebnis haben wir meiner Meinung nach superwichtige Sachen umgesetzt. Spartacus war stehengeblieben und unser uberspace musste umgezogen werden (von uberspace 6 auf uberspace 7), beides wurde angegangen. Wir haben die neue Version 2.3.3 veröffentlicht, sie vorher getestet und die Änderungen angeschaut. Da steckt besonders viel Arbeit von Thomas drin. Und wir haben – endlich! – Fortschritte mit MySQLs kaputtem utf8 gemacht.
Vor Jahren ist Serendipity bei Nutzung von MySQL in die utf8-Falle gelaufen. Es betrifft wirklich nur diese Datenbank. MySQL hat einen Zeichensatz namens utf8, der aber kein volles utf8 unterstützt, sondern nur Zeichen mit drei Byte. 4-Byte-Zeichen, z.B. Emoji wie 💩, kann man damit nicht speichern (hier geht es, weil ich SQLite benutze), Serendipity schneidet Texte dann ab. Daraus herauszukommen ist schwer, denn: Wenn man auf utf8mb4 umstellt braucht ein Zeichen 4 Bytes, Indexe können aber nur 1000 Bytes lang sein. Ein Index über eine varchar(255)
-Spalte würde dieses Limit schon sprengen! Wir hatten darüber schonmal auf einem Treffen geredet und Garvin hatte eine mögliche Lösung gebaut, Code, der die Indexe anpasst und dann die Datenbank umstellt. Aber diese Lösung lebt nun schon eine Weile in ihrem eigenen Branch und wurde nicht getestet (es zu testen ist schwierig! Vor allem, wenn man wie ich bisher das Problem nicht richtig verstanden hatte).
Jetzt haben wir nochmal darüber geredet und sind über einen Umweg über eine alternative Lösung gestolpert, deren Ansatz hier zu finden ist. Wenn die MySQL/MariaSQL-Datenbank neu genug ist, kann man die Storage Engine auf InnoDB setzen, wodurch Indexe 3000 Byte lang sein dürfen. Genug auch mit utf8mb4 für unser Datenbankschema!
Mittlerweile stellte sich raus, es ist nicht ganz so einfach, es müssen auch ein paar Einstellungen stimmen. Die können wir nicht im Code setzen, aber wir können sie prüfen. Dann wird das wohl sicher funktionieren, wenn es denn geht. Hoffentlich also eine praktische Lösung, die ohne die Versuche beim Treffen (wie mein Scheitern an der Idee, Dirks Blog umzustellen, weil da noch nicht durchgängig utf8 benutzt wird -> sowas muss also beachtet werden) nicht zustandegekommen wäre.
Das Ziel des verlinkten Codes ist es, Neuinstallationen mit utf8mb4 zu erstellen wenn möglich. Ich habe zweitens einen Upgrade-Task gebaut, um bestehende utf8-Installationen auf utf8mb4 umzustellen. Dann brauchen wir nur noch einen dritten Schritt, um von alten Zeichensätzen zu utf8mb4 zu kommen, und alle Blogs hätten vollen Unicode-Support.
Mir hat das Treffen Spaß gemacht. Klasse, alle wiederzusehen, toll auch, sich am Samstag nach dem Corona-Wochenendeinkauf voll auf etwas ganz anderes konzentrieren zu können, und am Sonntag nebenher am utf8-Problem zu basteln.
Auf ein nächstes mal, bald oder nächstes Jahr, online oder in Essen.
Edit: Das schrieben die anderen:
- Thomas auf Netz - Rettung - Recht: Das virtuelle #s9ycamp2020
Warnung vor Vodafones Routerabzockmasche!
Tuesday, 24. March 2020
Vodafone behandelt die Routerrücknahme sehr kundenfeindlich, was so wirkt als wollten sie noch einmal Profit aus vorigen DSL-Kunden schlagen.
Die Masche funktioniert so: Ihr bekommt am Anfang von Vodafone praktischerweise einen Router gestellt. Auf den späteren Rechnungen stehen für ihn auch keine Kosten. Aber bei Vertragsende will Vodafone, dass der Router innerhalb von 14 Tagen bei ihnen ankommt. Darüber wird der Kunde aber nicht richtig informiert! Versteckt wird die Forderung in einem PDF-Anhang der Kündigungsbestätigungsemail, in den der Kunde keinen Anlass hat zu gucken.
Das klappt natürlich bestimmt oft, die Forderung wird nicht gesehen. Und früher sind die Router beim Kunden geblieben, umsonst, zumindest bei meinem früheren Provider war das so. Also behauptet Vodafone: Jetzt dürfen sie Geld einziehen.
Und wieder wird das verheimlicht. Da kommt nicht etwa ein Brief oder eine Email. Stattdessen wird in der Online-Rechnungsübersicht eine Rechnung hinzugefügt, was keinerlei Benachrichtigung auslöst! Wenn dann Vodafone noch Zugriff auf das Konto hat, werden nur die wenigsten auf ihren Kontoübersichten den eingezogenen Betrag sehen.
Es geht noch weiter. Vodafone berechnet 69€. Das könnte halbwegs angemessen sein, wenn der Router denn funktionieren würde. Aber das tut er nicht. Er ist nicht konfigurierbar, das heißt, bei einem anderen Provider ist er purer Hardwareschrott. Die Logindaten anderer Provider können nicht eingegeben werden.
Und Höhepunkt obendrauf: 1. Schickt man den Router nach Ablauf der willkürlichen und von Vodafone verheimlichten Frist zurück, wird die Annahme verweigert. Ich denke die wollen den Router gar nicht. Oder warum sonst sollte man diesen Prozess so gestalten, dass die Routerrücknahme möglichst schwierig ist? 2. Widerspricht man der Rechnung, bekommt man einen Anruf. Versprochen wird: Du darfst den Router doch noch zurückschicken, wir erlassen hiermit die Rechnung, man sehe sich im Recht aber sei ja kulant. Ein neues Rücksendeetikett kommt tatsächlich an, der Router wird diesmal angenommen.
Aber die Rechnung wird nicht erlassen. Die bleibt stehen und in meinem Fall wurde sie – trotz Widerspruch per Einschreiben! Trotz erhaltenem Router! Trotz angeblichen Erlassens der Rechnung! – an ein Inkassounternehmen übergeben.
Vodafone: Das ist ein saudummer Prozess! Ihr schadet euch nur selbst. Euch entstehen Kosten und ihr seht von Kunden wie mir keinen Pfennig.
Ich hatte vor dieser Geschichte keinen Grund zur Klage. Die Leitung funktionierte, der Kontakt mit dem Unternehmen war so minimal wie er sein soll, selbst der Router tat seinen Dienst okay. Aus einem Kunden, der ohne Zögern zurückgekommen wäre, habt ihr einen wütenden gemacht, der sicher nicht wiederkommt.
Vodafone könnte das problemlos richtig machen: Nach der Kündigungsbestätigung sollte eine zweite Email losgeschickt werden, die im Betreff und Emailtext auf die Rückforderung des Routers hinweist. Bei Nichterhalt sollte nach einer angemessenen Frist auf den nicht erhaltenen Router hingewiesen werden, per Email und Brief. Erst danach könnte vielleicht der Router in Rechnung gestellt werden, wenn einwandfrei klar ist, dass der Kunde informiert worden war. Das wäre nicht nur fair und im Sinne einer guten Geschäftsbeziehung, ein Unternehmen sollte doch ein Interesse haben Brücken nicht zu verbrennen – nur so wäre das Vorgehen Vodafones überhaupt legal. Versteckte Rückforderungen, versteckte Rechnungen, willkürliche Fristen, willkürliches Umwandeln von Leihverträgen in Kaufverträge, obendrauf ungerechtfertigte Inkassoforderungen: Ich halte Vodafone rechtlich sowas von im Unrecht, besonders beim Festhalten an der längst erledigten Rechnung, aber auch das Verheimlichen der Fristen ist nicht sauber.
Hast auch du schlechte Erfahrungen mit Vodafone gemacht? Teile deine Erfahrungen doch per Kommentar. Und bitte teile diesen Artikel auf Twitter/Facebook/wo du aktiv bist, damit er die Aufmerksamkeitsschwelle überschreitet!
Age of Empires 2 als E-Sport
Monday, 23. March 2020
Vor einer Weile bin ich auf Youtube über T90Official gestolpert. Das ist ein Caster, der Age of Empires 2 zeigt. Er selbst ist ein Top-Spieler und hat entsprechend viel Ahnung, er kommentiert die Spiele klasse und seltsamerweise ist das super ansehbar. Dabei hatte ich mit Age of Empires 2 nie viel am Hut, habe das höchstens ein paar Stunden gespielt, es ist nichtmal in meiner Steam-Bibliothek. Den ersten Teil kenne ich da sogar besser, und generell das Echtzeitstrategiegenre als Gelegenheitsspieler, nur in StarCraft und Command & Conquer 3: Tiberium Wars hatte ich zwischendurch ein minimal höheres Level.
Ist AoE2 nicht steinalt? Ja. Aber das ändert ja nichts daran, wie interessant es sein kann. Es ist ziemlich komplex und dabei gut sichtbar, da dort Menschen herumlaufen und bekannte Gebäude gesetzt werden ist es auch ohne Ahnung viel verständlicher als z.B. Starcraft. Außerdem wurde vor kurzem die Definitive Edition veröffentlicht, samt Grafikupgrades, KI- und Komfortverbesserungen. Schöner anzusehen, scheinbar wächst seitdem die Szene.
Wer schauen will, ob er sich dafür erwärmen kann, hat zwei Einstiegsmöglichkeiten. Am Wochenende lief ein Wettbewerb namens Hidden Cup, organisiert von T90, in dem die besten Spieler der Welt pseudonym gegeneinander antraten. Höherklassige Spiele kann man nicht finden. Age of Empires 2 so gespielt zu sehen ist etwas ganz anderes, als was man selbst beim Spielen erleben würde. Auf Youtube ist da ein Halbfinalspiel bereits hochgeladen:
Von der Längen nicht abschrecken lassen, das sind mehrere Spiele hintereinander und man muss ja nicht alle gucken.
Alternativ gibt es die unterhaltsame Reihe Low Elo Legends, vom gleichen Caster. Statt Profis sind es dort ganz gewöhnliche Spieler bis Anfänger, die online AoE2 gespielt haben und bei denen er als Zuschauer eingestiegen ist. Zwar amüsiert er sich über deren Fehler und Abweichungen vom Vorgehen eines Profis, aber das bleibt immer gutartig, die Videos sind gespickt mit vielen Erklärungen und voller Verständnis für die Spieler. Also sehr anders als das obere Wettbewerbs-Video, aber auch unterhaltsam:
Wahrscheinlich ein toller Weg um besser in dem Spiel zu werden.