Zur Huawei Watch 2, und zu Smartwaches allgemein
Friday, 20. April 2018
Das ist die Huawei Watch 2 Classic:
Da ich sie für die Arbeit da hatte und meine eigentliche Uhr in der Reparatur war habe ich diese Smartwatch nun etwas ausgiebiger getestet. Auf ihr läuft Android Wear 2.0, seit kurzem umgetauft in Wear OS. Das bedeutet vor allem eine relativ große Softwareauswahl und viele alternative Designs der Uhrzeitanzeige.
Die Huawei Watch 2 unterstützt eine Unmenge an Funktionen. GPS, NFC, Pulsmesser, Schrittzähler, sie hat ein Mikrofon eingebaut (zum Telefonieren). Das wichtigste aber für eine Uhr ist das abnehmbare und auswechselbare Armband. Anders als bei der Moto 360 Sport ist da kein festes und unangenehmes Kautschuk-Band drum, sondern ein ganz gewöhnlich aussehendes besseres Uhrenarmband. Das macht die Uhr fast angenehmer zu tragen als meine bevorzugte analoge Uhr, bei der das Armband wohl doch etwas teurer hätte sein dürfen.
Mit der Softwareauswahl kann ich gar nicht so viel anfangen. Ich finde zwei Funktionen gut, und beide dürften auch ohne Appunterstützung in jede Smartwatch eingebaut sein: Das Anzeigen von Benachrichtigungen und der Wecker. Ist die Uhr per Bluetooth mit dem Smartphone verbunden kann sie dessen Benachrichtigungen anzeigen, sie vibriert dann bei Empfang leicht, man kann sie lesen und auch von dort beantworten. Dabei ist allerdings die kleine Tastatur wenig hilfreich, und sollte es nicht eine Funktion geben, mit dem Finger die Buchstaben der Worte zu malen und so komfortabler zu schreiben? Bei mir taucht diese Option nicht auf. Der Wecker wurde mir von Bernd empfohlen, und es stimmt: Den Wecker am Armgelenk zu haben ist nett und weckt andere anwesende Personen morgens weniger auf, als es ein normaler Wecker tun würde. Allerdings schien mir die Weckfunktion mit der Schlaf-App zu kollidieren, die nachts Dinge wie Wlan und das Display ausschaltet und misst wie lange man schläft. Der klingelte dann nicht, oder ich hatte mich einfach zu schnell daran gewöhnt ihn abzuschalten und weiterzuschlafen.
Was ich nicht gefunden habe ist eine vernünftige App, die Schlafphasen misst und sie berücksichtigend zu einem günstigen Zeitpunkt weckt. Auf der Apple-Seite gibt es das wohl, und es gibt bei Android Krücken, die das mit dem Smartphone im Bett versuchen, was ja wohl kaum richtig funktionieren kann. Aber eine dedizierte App für Wear OS sah ich nicht. Schade, denn das wäre vielleicht noch ganz nett.
Die ganzen Fitnessfunktionen sind nett. Ich habe mich tatsächlich vom Schrittzähler dazu bringen lassen, einen kleinen Spaziergang in meinen Arbeitsweg einzubauen, wenn ich denn nicht sowieso das Fahrrad nehme. Wobei ich schade finde, dass der Schrittzähler die Fahrradfahrt nicht berücksichtigt und entsprechend die Schrittzahl reduziert. Bei der Fahrradfahrt oder beim Joggen kann ich damit den Puls messen, was nicht verkehrt ist. Von all diesem Messen geht ein gewisser Reiz aus. Andererseits weiß ich nicht wirklich, was ich damit dann anfangen soll. Außer der anfänglichen Erkenntnis, dass ich wegen des dabei zu stark steigenden Puls langsamer den Berg hochfahren sollte, ziehe ich aus dem Blick auf die gespeicherten Fitnessdaten nichts. Für mich war das eine nur anfangs interessante Spielerei.
Auf Wear OS habe ich zwei Perspektiven.
Als Nutzer ist es hochgradig verwirrend und schlecht gemacht. Zuerst einmal regiert alles etwas zu langsam, und dabei ist dieses Modell schon so ziemlich das beste auf dem Markt. Dann passiert es immer wieder, dass die Bluetooth-Suche mein Telefon nicht findet - gut, das kann auch am Telefon liegen, ist aber so oder so nervig. Wichtiger: Die Benutzerführung ist sehr irritierend. Per oberen Knopf geht es ins Hauptmenü, alternativ kann nach einem Wisch nach rechts das Aussehen der Uhr gewechselt werden (watchface), ein Wisch nach oben führt in ein Schnellmenü. Dort aber fehlt die wichtigste Funktion: Kontrolle über das Wlan. Seit Wear 2.0 braucht das System nämlich nicht mehr zwingend ein Smartphone zur täglichen Nutzung, die Uhr kann auch selbst ins Internet gehen und komplexere Anwendungen ohne Compagnion-Apps ausführen. Aber dafür wäre es schon verdammt gut, wenn du nicht dauernd im Einstellungsmenü die Wlan-Verbindung an und ausmachen oder auch nur überprüfen müsstest.
Das allerwichtigste aber ist das fehlende Fenstermanagment, und die Zickigkeit beim Laufenlassen der Apps. Was nämlich dauernd geschieht: Du startest eine Anwendung, guckst drauf, nach ein paar Sekunden meint die Uhr sie schließen und zur Zeitanzeige zurückgehen zu müssen. Das alleine ist schon unheimlich nervig. Dann aber kommt da noch dazu, dass es keinen zuverlässig funktionierenden Weg gibt, zu der Anwendung wieder zurückzukommen. Denn es gibt ja kein richtiges Fenstermanagement. Manchmal führt ein Druck auf den Menüknopf oben rechts zurück, aber beileibe nicht immer. Android hätte hier mal wieder so viel von webOS lernen können! Und selbst wenn es zurück geht, ob durch Knopfdruck oder erneutem Aufrufen der Anwendung im Hauptmenü: Nichts hindert die Uhr daran, nach einem sich willkürlich ändernden Zeitintervall die Anwendung wieder zu schließen.
Zusatzmacke: Warum verdammt nochmal hat die Tastatur keinen Doppelpunkt?
Als Entwickler finde ich Wear OS überraschend gut und einfach. Ich bin kein Android-Entwickler und war anfangs noch weniger einer, selbst ein letzter Kontakt mit Java war schon ein paar Jahre her. Aber mit etwas Starthilfe durch einen Kollegen und zusammen mit der relativ guten Dokumentation - die gut ist, wenn sie nicht gerade veraltet ist - kam ich da sehr schnell rein, und konnte die etwas kompliziertere Anwendung, für deren Entwicklung ich die Uhr überhaupt habe, gut und sauber umsetzen. Android ist ein unheimlich ausgefuchstes System geworden. Auch wenn ich sicher nicht alles an seiner API mag, so ist sie doch mächtig und hat für die gängigen Problem gut dokumentierte saubere Lösungen parat. Selbst Android Studio ist gut, auch wenn das integrierte Buildsystem (Gradle) lahm ist. Nur Kotlin war ein Fehlstart, es war vermessen zu glauben direkt damit einsteigen zu können. Dafür war mir Android zu fremd, und zu wenige der Nachschlageorte darauf ausgerichtet.
Das Lob für die Entwicklererfahrung macht dann auch klar, warum trotz der Usability-Problem andere Smartwatches ohne Wear OS schlicht keine Option sind.
Aber insgesamt: Während ich diese Zeilen schreibe habe ich meine analoge Automatikuhr am Handgelenk. Das hat verschiedene Gründe. Vor allem finde ich sie schlicht viel hübscher als die Huawei mit ihrer Plastikoptik (die aber auf den Fotos hier im Artikel nochmal schlechter rüberkommt als in echt). Da gäbe es auch bei den Smartwatches schönere Alternativen, wie die Fossil Q, aber wenn ich mich richtig erinnere fehlten der ein paar Sensoren. Mehr noch als die Fassung wirkt bei der Optik aber auch das Display. Im Vergleich zu einer echten Uhr sind die digital gezeichneten Zeiger einfach unscharf und hässlich, sodass ich bei der Smartwatch tatsächlich die Digitalanzeige bevorzuge, was ich eigentlich grundsätzlich nicht hübsch finde.
Die Batterielaufzeit ist der nächste Grund: Es ist nervig, daran denken zu müssen. Zuhause geht das noch, da integriert sich das in den Alltag, doch auf Reisen extra für die Uhr ein Ladegerät mitzuschleppen ist komplett inakzeptabel. Und zudem bin ich in Hotels schon froh, wenn ich eine freie Steckdose für mein Telefon finde.
Der Hauptgrund aber ist der zu geringe Nutzen. Eine Uhr ist Schmuck, ja, vor allem aber Zeitanzeige. Und beides macht eine echte Uhr einfach besser. Bei den Benachrichtigungen zu vibrieren ist nett, und sie ohne das Telefon aus der Hosentasche holen zu müssen lesen zu können, das könnte mich sogar an die Smartwatch binden... wenn ich denn viele Benachrichtigungen bekommen würde. Aber ich habe ganz bewusst meine Mails nicht auf dem Telefon, und ich chatte nur mit wenigen mir nahen Leuten, sodass bei mir diese Komfortfunktion kaum genutzt wird. Selbst mobiles Internet habe ich auf dem Telefon nicht wirklich zur Verfügung. Damit bin ich wahrscheinlich schlicht nicht die Zielgruppe.
In ein paar Jahren könnte sich das ändern. Wenn die Displays besser werden, der Akku länger hält, und Wear OS seinen Kinderkrankheiten entwächst, dann könnte eine Smartwatch in einem eleganteren Design doch noch was sein. Vielleicht finden sich bis dahin auch noch ein paar Nutzungszwecke. Doch bis es soweit ist bleibe ich lieber bei meiner analogen Uhr.
You Got A Killer Scene There, Man
Wednesday, 18. April 2018
Queens of the Stone Age (direkt).
Durch Zufallsauswahl wurde mit dem Song der reparierte Kopfhörer getestet.
Stellaris 2.0 nochmal angeschaut
Monday, 16. April 2018
Bevor ich diesen Artikel hier im Blog veröffentlichte, dienten ein paar Abschnitte als Grundlage für einen Artikel auf Gamersglobal. Der ist etwas anders aufgebaut, vor allem vergleicht er zusätzlich die Änderungen im neuen Stellaris mit den Kritikpunkten aus dem GG-Test, der zur Veröffentlichung erschien.
Nanu, wurde etwa ein Nachfolger zu Stellaris veröffentlicht? Nein, Stellaris 2.0 ist tatsächlich einfach Stellaris, nur dass auch das Grundspiel im Laufe der Zeit und vor kurzem zur Veröffentlichung der Apocalypse-Erweiterung nochmal deutlich verändert wurde. Ich habe nochmal eine lange Runde gespielt und fasse meine Eindrücke hier zusammen.
Fangen wir bei den Flottengrößen an. Die sind nicht mehr beliebig groß, beziehungsweise so groß wie das Imperium eben finanzieren kann und Schiffe hat. Sondern es gibt zwei Limitierungen: Ein weiches Limit, ab dem weitere Schiffe deutlich mehr Unterhalt kosten. Und eine harte Flottengröße, mehr können einfach nicht zusammengefasst werden. Das vergrößert die Wirkung von Forschungsunterschieden, fortschrittlichere Reiche haben dadurch größere Flotten und dadurch im Kampf einen absolut entscheidenden Vorteil. Diese Ausdifferenzierung ist ein gutes Beispiel dafür, was die Entwickler scheinbar auch mit den anderen Änderungen beabsichtigt haben.
Die Antriebe wurden ebenfalls verändert. Vorher gab es eine Auswahl, mit welcher Technologie welche Rasse starten konnte. Menschen hatten z.B. klassische Hyperlanes, während andere mit Mini-Wurmlöchern arbeiteten und so weiter springen konnten, dafür am Ziel aber erst eine Station errichten mussten. Das war verwirrend, mir z.B. hatte dieser Unterschied einen Spielstand einfach verleidet, weil der Nachteil meiner Wahl zu gravierend war. Jetzt starten alle mit Hyperlanes, aber später kann ein Sprungantrieb erforscht werden, der einfach einen Timeout hat und keine Stationen braucht.
Raumstationen sind ein wichtigerer Bestandteil des Spiels geworden. Um ein System einzugliedern muss nur noch ein Konstruktionsschiff bei der Sonne einen Außenposten errichten, was Mineralien und Einfluss kostet. Dieser Außenposten kann dann optional zu einer Raumstation aufgerüstet werden. Auch für sie gibt es ein weiches Limit, ab dem der Unterhalt verteuert wird. Raumstationen sind mächtig geworden und können in manchen Zeitabschnitten durchaus feindliche Flotten abwehren. Auch kann man wählen, worauf sich die Station spezialisiert: Soll sie Energie produzieren, Schiffe bauen können, das Schiffslimit anheben oder besonders viel Verteidigungsstärke besitzen? Und das ist nur eine Auswahl. Dafür können nicht mehr mehrere Stationen in ein System gesetzt werden. Und das vorherige System von wachsenden Grenzen, das dem von Civilization ähnelte, ist verschwunden.
So ziehen sich die Änderungen durch das Spiel. Viele Bereiche wurden mindestens leicht angepackt. Neue Restriktionen und neue Spielemente sollen das Spiel interessanter machen. Manch nerviges wurde gestrichen oder vereinfacht, so funktioniert beispielsweise die automatische Nutzung von neuen Technologien in Schiffen besser, man muss nicht mehr zwingend eigene Schiffsvarianten im Editor bauen. Und Anführer kosten nur noch Energie, sind also praktisch immer verfügbar, wobei das Spiel immer noch limitiert wie viele man haben kann.
Aber nicht alles funktioniert problemlos. Beispielsweise gibt es in Kriegen - für die man nun einen Kriegsgrund braucht, was gut funktioniert - nun eine sich immer erhöhende Kriegsmüdigkeit. Liegt die eigene bei 100% wird automatisch der Krieg beendet, und vorher besetzte sowie zuvor mit Einfluss beanspruchte Systeme landen bei der jeweiligen Partei. Das wurde mit dem Patch 2.0.2 etwas entschärft, die Kriegsmüdigkeit steigt nun weniger schnell und es gibt ein zusätzliches Limit von 200 Tagen nach Erreichen der 100%, nach dessen Ablauf erst der Gegner den Frieden erzwingen kann. Aber es ist immer noch daneben, dass es keine Instrumente gibt, die Kriegsbereitschaft der Bevölkerung zu beeinflussen - warum sollten despotische Sklaventreiber dafür genauso anfällig sein wie eine multikulturelle Demokratie? Auch funktioniert das System nicht sauber mit allen Ereignissen, so war bei mir der Krieg der erwachten Fallen Empires durch die Kriegsmüdigkeit vorbei, bevor diese überlegenen Reiche mit ihren Riesenflotten groß Gebiete erobern oder auch nur wesentlichen Schaden bei ihren (mit mir verbündeten, mit ihnen verfeindeten) Nachbarn anrichten konnten.
Wenig scheint sich bei der Grafik verändert zu haben. Die ist immer noch nicht schlecht. Aber zumindest unter Linux würde ich bessere FPS erwarten, weil sie eben nur nicht schlecht ist, nicht besonders toll. Am meisten stören mich die Schiffe: Selbst die großen Schlachtschiffe sieht man in brauchbaren Zoomstufen nur als kleine graue Punkte auf dem meist schwarzen Weltraumhintergrund. Das schmälert meinen Stolz, wenn ich die mächtigste Flotte im Universum besitze. Der Titan aus der neuen Erweiterung hilft hier vielleicht ein bisschen, aber ändert ja an den sonstigen Schiffen nichts.
Am wichtigsten aber ist Stellaris altes große Problem: Es hat Lücken. Damit meine ich, dass das Spiel zwar stellenweise toll funktioniert - es ist motivierend ein Imperium zu errichten, Einfluss zu gewinnen. In diesem Abschnitt hat der Spieler immer viel zu tun, ohne überfordert zu werden. Und noch eine ganze Weile gilt es, möglichst schnell unbesiedelte Sternensysteme zu beanspruchen. Fallen die weg, können Kriege und Krisen noch immer eine Weile unterhalten. Aber ab diesem Zeitpunkt wird das Spiel dünner und dünner, bis es im Endspiel schließlich zerfasert. Kommen dann noch die langen erzwungenen Friedenszeiten nach einem Krieg hinzu, heißt Stellaris spielen manchmal einfach warten.
Als Nebenbemerkung: Es kann sein, dass dieser Effekt auf meinem System durch schlechte Performance verschlimmert wird. Eventuell vergeht bei mir später die Spielzeit einfach langsamer, also dauert ein Spieltag länger? Ich möchte hier den Tipp unterbringen, mesa_glthread=true %command%
als Startoption zu setzen, also OpenGL-Multithreading zu aktivieren. Bei prozessorlastigen Spielen kann das helfen, und bei Stellaris schien mir dem so zu sein. Ich glaube allerdings nicht, dass dies ein rein technisches Problem ist, die Wartephasen entstünden durch die Spielmechanik so oder so.
Symptomatisch für das Problem der Inhaltslosigkeit am Ende war auch mein formeller Sieg: Ich hatte nicht etwas etwas tolles erreicht, beispielsweise einen großen Rivalen besiegt. Nein, einfach weil die Fallen Empires erwachten, schlossen sich nahezu alle anderen Reiche meiner Föderation an, woraufhin wir genug Sternensysteme kontrollierten und ein Popup meinen Sieg verkündete. Glanzloser geht fast nicht, daher spielte ich auch noch eine ganze Weile weiter, nämlich bis wenigstens beide Fallen Empires besiegt waren. Zu dem Zeitpunkt war mein Sternenreich dann auch klar das mächtigste. Aber auch das war dann kein erfüllender Sieg mehr.
Doch Technikproblem und Siegbedingungen hin oder her: Insgesamt gefällt mir das neue Stellaris besser als je zuvor. Mit den Änderungen aus 2.0 ist es anspruchsvoller geworden, die neuen Elemente tun dem Spiel gut. Es ist immer noch so, dass es in manchen Spielabschnitten Leerlauf gibt, und dass später Rohstoffe im Überfluss vorhanden sind. Aber beides war vorher schlimmer. Eventuell würde es auch helfen, ein paar DLCs mehr zu aktivieren - bei mir läuft bisher nur Horizon Signal und Leviathans Story Pack. Aber sicher bin ich da nicht, da der Großteil der Erweiterungen inzwischen ins Grundspiel geflossen ist. Trotzdem, beim nächsten Sale werde ich mir das nochmal überlegen.
Kabelbruch bei Kopfhörerkabel reparieren
Thursday, 12. April 2018
Das war der Startpunkt:
Schuld ist die Katze (nicht die auf dem Bild, die andere). Als kleines Kätzchen spielte sie nämlich gerne mit dem Kabel, und irgendwann biss sie an einer Stelle die Außenisolierung durch. Der Kopfhörer hat nun noch knapp ein Jahr funktioniert, aber jetzt setzte eine Seite aus. Also im Grunde ein Kabelbruch.
Ich versuchte die Reperatur erst, wie damals bei der Maus, nur mit Messer, Isolierband und Lötkolben. Aber das Problem war das Abisolieren, dreimal hintereinander sauber nur die Isolierung abzutrennen, das ging nicht. Immer kam bei einem der Kabel die Kupferstränge mit ab, worauf die anderen wieder gekürzt werden mussten.
Eine abendliche Amazoneinkaufsrunde später kam gestern etwas mehr Material an:
Um genau zu sein, das ist:
Den Lötkolben und das Isolierband hatte ich schon, gleich aussehende Lötkolben gibt es bei Amazon immer noch.
Alles zusammen kostete knapp 30€, was eigentlich absurd ist um einen einige Jahre alten 20€-Kopfhörer zu reparieren - mehr kostet der Superlux HD681B nicht. Aber es ist ein guter Kopfhörer, ich mag ihn. Und das teuerste war die automatische Abisolierzange, und die benutzt du ja nicht nur einmal. Noch dazu ist das Material für zwei Reperaturstufen:
- Einfach das Kabel zusammenlöten. Dafür ist die Abisolierzange neu.
- Wenn das scheitert, hätte ich das feste Kabel abgelötet, den Klinkenanschluss in den Kopfhörer gebaut, verbunden, und dann das neue Kabel benutzt.
Ich ging davon aus, dass Schritt 1 scheitert. Den zweiten Schritt - hier grob beschrieben - traute ich mir eigentlich nicht zu, aber ich wollte zumindest eine kleine zweite Chance haben.
Also habe ich abisoliert. Erst das Außenkabel, das ging problemlos. Dann die drei kleinen, das war frickelig.
Das musste schon sehr genau - und am besten alle drei auf einmal - in der Mündung liegen, damit die Kupferstränge nicht mit rausgerissen wurden. Ich bin nicht sicher, wie zufrieden ich mit der Zange bin, aber schließlich ging es mit ihr doch wesentlich leichter als das per Hand zu machen.
Dann legte ich die Kabelstränge zusammen...
...und lötete sie fest:
Ich stellte mich dabei ziemlich ungeschickt an. Schon die Lötstelle im Bild ist nicht toll, die vorherige war richtig schlecht, die davor nur wenig besser. Pro-forma isolierte ich die drei kleinen Kabel trotzdem und testete... und war umso erfreuter, als alles funktionierte!
Beim Klang hat sich auch nichts verändert. Nun trau ich mich nur nicht, die Außenisolierung fest anzuziehen, deswegen ist die reparierte Stelle besonders dick:
Wenn das Kabel nochmal bricht werde ich vielleicht doch versuchen, die Klinkenbuchse zu montieren. Bräuchte dafür aber wahrscheinlich noch einen Dremel... Das heißt auch: Ich habe nicht getestet, ob die Klinkenbuchse wirklich in den Kopfhörer passt!
Lady Bird
Wednesday, 11. April 2018
Lady Bird ist ein mit Preisen überhäufter, oscarnominierter Film über das Erwachsenwerden einer Schülerin. Ein Bildungsroman. Es ist ein Film, der mich nicht kalt gelassen hat, aber den ich doch nicht toll fand.
Die Protagonistin Lady Bird heißt eigentlich Christine und lebt in einer amerikanischen Kleinstadt. Statt der Schule, in die sie gehen will, geht sie in eine katholische High School. Aber sie ist im letzten Jahr und hat große Pläne für die Zukunft. Wenn da nur ihre gestörte Mutter nicht wäre, und ihre eigene Verrücktheit, und das kaputte System, ihre komischen Freunde noch noch komischeren Möchtegernfreunde, und Jungs, mit denen sie ausgehen könnte.
Der Film ist charmant, so wie Christine trotz ihrer Seltsamkeit charmant und witzig sein kann. Er ist meist lustig, auch engagierend und gut gemacht. Aber ich fand ihn auch sehr einfach. Hinter allem konservativ amerikanischen ist doch immer Nettigkeit und Toleranz Christine gegenüber, die Familie lebt in wirtschaftlichen Problemen und hält doch zusammen, die verrückte Mutter liebt ihre Tochter natürlich ganz doll. Und all ihre Träume sind natürlich nur als Sehnsuchtsvorstellung toll, einmal erreicht eignen sie nur, das in schönen Bildern präsentierte Kleinstadtleben mit seinen verrückten, aber eben doch netten Menschen im Kontrast als gut erscheinen zu lassen.
Juno ist tief dagegen, und hat einige Ähnlichkeiten, mit seiner charmanten Hauptdarstellerin und den leicht verrückten Figuren. Aber noch disqualifizierender wäre ein Vergleich mit anderen Lebenssinnsuchfilmen, wie Broken Flowers - das einen anderen Humor, aber auch eine andere Klasse hat.
Le Sens de la fête
Tuesday, 10. April 2018
In Deutschland ist der Titel dieser französische Komödie Das Leben ist ein Fest. Max organisiert Hochzeiten, aber bei dieser hier geht alles schief. Der Bräutigam ist ein Arsch, die Kellner proben den Aufstand, das Essen ist nicht gut - und noch dazu hat er Beziehungsprobleme.
Okay, es sollte bei dieser Beschreibung niemanden verwundern warum ich in diesen Film nicht gehen wollte. Er schreit "romantische Komödie!" - und mit Hochzeitsplanung als Rahmen nicht mal nach einer originellen. Aber ich bin ganz froh, dass ich mich überreden ließ. Zumindest auf französisch schafft diese Komödie es nämlich, nicht gar zu kitschig zu sein - und er funktioniert nicht wie die anderen Hollywoodfilme, denen er der Beschreibung nach ähnelt.
Zwei Dinge retten den Film: 1. Er folgt nicht dem Standardrezept, und 2. Er baut gute Figuren auf und folgt ihnen.
Es passiert hier eben nicht, dass der Film erst lustig ist, dann der Protagonist eine Frau trifft, dann sie sich gut verstehen, er sie erstmal vergrault und schließlich in einer selbstlosen romantischen Geste doch noch erobert. Nichts davon kommt so vor. Stattdessen sind das hier einfach Witze der Charaktere, absurde Handlungen, die langsam diese Hochzeit zum Entgleisen bringen (wobei die Taktung dann doch dem Rezept folgt). Da ist Max (Jean-Pierre Bacri) selbst, der schon in der ersten Szene die Fassung verliert und seinen geizigen Kunden den arroganten Chef raushängen lässt, wobei man bald merkt dass er so verkehrt nicht ist. Daneben Adèle (Eye Haidara), die als schwarze Frau noch viel unbeherrschter Beleidigungen raushaut und sich mit dem Sänger streitet, was ein französisches Klischee verkörpert. Und dieser Sänger, James (Gilles Lellouche), soll Klasse in die Feier bringen, beherrscht aber nichtmal die Sprache seiner Lieder.
Auch ein wichtiger dritter Punkt für den Film: Er ist lustig. Besonders das chaotische Finale, vor dem Schlußpunkt. Aber auch zwischendurch die kleineren Pointen sitzen. Und dabei halten sich die Witze übers Essen und Tischmanieren erfreulicherweise im Rahmen.
Wenn dann die Handlung doch noch ein-zwei emotionalere Szenen einbaut, funktioniert das hier ordentlich als Rahmen für diese Charaktere, anstatt peinlich zu werden. Und dass er vorhersehbar ist macht auch nichts.
Nicht falsch verstehen: Ein Meisterwerk ist es nicht. Aber doch eine nette Komödie. Und die gibt es so häufig ja nun auch nicht.
Zugreifen: Crusader Kings 2 für umsonst
Friday, 6. April 2018
Ich hatte bereits viel Spaß mit der Linuxversion von Crusader Kings 2, einem Mittelalter-Strategiespiel und Dynastie-Simulator, das im Januar im Paradox-Humble-Bundle dabei war. Das Angebot heute ist noch besser: Es gibt es bis Samstag komplett umsonst auf Steam, wird aber dauerhaft dem Account freigeschaltet.
Crusader Kings II ist die Spielzeit wirklich wert. Es braucht etwas, um sich reinzufinden. Aber es ist gar nicht so kompliziert, es geht mehr darum herauszufinden was überhaupt geht und was sich wie auswirkt. In meiner letzten Spielrunde habe ich eine königliche Beerdigung für meine Katze angeordnet, mit allen Ehren. Und am gleichen Tag habe ich Norwegen erobert sowie meinen Bruder ins Verlies geworfen. Das ist schon eine ganz besondere Mischung.
Und der Linuxport funktioniert hervorragend, bugfrei und ohne Performanceprobleme.
Facebook im Firefox-Container
Thursday, 5. April 2018
Vorgestern hatte ich folgendes eingerichtet: Mich bei Facebook ausgeloggt, dann einen Personal-Tab aufgemacht und mich dort bei Facebook eingeloggt. Idee war, über die Container-Funktion von Firefox Facebook von meinen Surfdaten weiter fernzuhalten. Die Container nutze ich sonst nicht, aber Tree-Style-Tab benötigt sie sowieso.
Mozilla hatte die Idee wohl schon eine Weile vorher und veröffentlichte letzte Woche ein Addon, das für Facebook einen eigenen Container bereitstellt und die Seite bei Aufruf automatisch in ihn schiebt.
Komfortabler als das selbst zu machen. Das Addon scheint problemlos zu funktionieren und ist definitiv eine gute Vorsichtsmaßnahme - auch wenn es die Daten auf Facebook natürlich kein bisschen schützt.
Ich stolperte darüber via eines Pocket-Artikels, den ich nun nicht mehr finde.
Vielleicht ging die Veröffentlichung des Addons auch an manchen Lesern vorbei.
Die Kobo-Bücherhalde
Wednesday, 4. April 2018
Mein Kobo wurde in letzter Zeit wieder mehr benutzt, der Pendelei und einigen Reisen sei Dank. Dabei durfte ich feststellen, dass in den Humble Bundles, mit denen ich ihn hauptsächlich befüllt hatte, doch neben einigen interessanten Büchern auch ziemlicher Mist dabei war. Daneben waren auf dem Kobo noch einige epubs aus anderen Quellen, teils bessere, aber auch da mochte ich einiges nicht. Da ich schon lange keine Besprechungen mehr gepostet habe verpacke ich nun alle fehlenden in Kurzreviews: Ich werde durch die Liste im Kobo gehen und jedes Buch kurz beschreiben. Sammlungen von Kurzgeschichten lasse ich aus (wobei da manche echt toll waren, die Robotergeschichten von Isaac Asimov beispielsweise).
Ein Schlußstrich, um danach bessere Bücher wieder richtig in den Blog zu packen.
Roger Zelazny: Damnation Alley
Hell Tanner soll Medikamente von der Ostküste nach Westen bringen. Das Problem: Die Welt ist weitestgehend zerstört, auf dem Weg lauern Monster und Menschen. Tanner geht auch nicht freiwillig, er wird gezwungen. Das Buch war kein Mist, sondern eine schön dystopische Roadstory, vielleicht etwas grob.
Alfred Bester: The Deceivers
Alfred Bester hat einen Hang zu Trash-Science-Fiction, Pulp vielleicht schon. Baute aber schon in "The Stars my Destination" ein tolles Universum auf. The Deceivers wirkt weniger roh, aber ist mehr noch komplett absurd - trotzdem nett zu lesen.
Donna Tart: Der Distelfink
Ein 800-Seitenroman, der viel zu lang ist. Theo verliert seine Mutter und stiehlt gleichzeitig ein Gemälde, das ihn dann wohl Dorian Gray mäßig negativ beeinflusst, nur ohne Magie. Unterteilt in mehrere Abschnitte, wovon mindestens einer (der in Kalifornien) ziemlich unterträglich verhunzt ist. Seltsame Auflösung, chaotisches Ende. Ich mochte es nicht besonders.
Bryon Preiss: Dragonworld
Weil böse Mächte intrigieren stehen zwei Länder am Rande eines Krieges. Eine verstoßene Hobbit-Figur aus dem zurückgebliebenen der beiden Länder muss den Krieg verhindern. Daher gibt es Intrigen, Magie, Erzfeinde und Helden. Sehr sehr simpel, sogar für das Genre - aber als Kind hätte es mir gefallen.
Christian Kracht: Imperium
Schwierig. Irgendwas mit deutscher Kolonialgeschichte, einem geistige verwirrten Leprakranken und Kokosnüssen. Stellenweise unerträglich eklig. Sicher literarisch wertvoll, irgendwo, wenn man will.
Kate Elliott: Jaran
Eine Zukunftsfrau verschlägt es auf einem fernen Planeten unter Wilden. Dort muss sie überleben, Emanzipation verbreiten, sich durch den Stamm vögeln um einen edlen wilden Dschingis Khan zu erobern, bzw. natürlich nicht, sondern um von ihm erobert zu werden. Nicht viel mehr als eine Sexfantasy für Teenagermädchen, allerdings mit einem an sich interessantem Scifi-Universum drumherum. Dafür gibt es eine Zielgruppe?
Ken Bruen: Kaliber
Ein Krimi in England. Aber nicht Sherlock Holmes, sondern kriminelle Polizisten und ein Manieren einfordernder Serienmörder. Gut! Auch wenn ich es übertrieben und etwas künstlich fand. Aber moderne Krimis scheinen nunmal so zu sein.
Liza Cody: Lady Bag
Eine Obdachlose rafft sich nochmal auf, um es ihrem Ex heimzuzahlen, der sie ausgenutzt hatte. Man muss es als Beobachtung der Obdachlosenwelt lesen wollen, aber gleichzeitig die völlig absurde Geschichte verkraften. War nicht völlig verkehrt, aber an dem Spagat muss jeder Leser scheitern.
Ken Bruen: London Boulevard
Eine etwas übertriebene Geschichte um einen Kriminellen in London. Ja, ähnlich wie Kaliber. Aber hier folgt man einem gerade aus der Haft entlassenen Grobian, der daraufhin durch die kriminelle Unterwelt wandelt und seltsamen Personen begegnet. Auch wieder nicht wirklich schlecht.
Gerbrand Bakker: Oben ist es still
Ein alter schwuler Bauer muss sich von seinem sterbenden Vater verabschieden, den er hasst. In Retrospektiven erzählt er von seinem Leben. Das eigentliche Thema ist wohl Einsamkeit. Oder Bauern.
Octavia E. Butler: Parable of the Sower & Parable of the Talents
Dystopie, mal wieder. Die USA versinkt in Chaos und Anarchie. Lauren Oya lebt in einem Zusammenschluss ("gated community"), der im Chaos drumherum natürlich nicht bestehen kann. Daher erschafft sie ihre eigene Religion. Gerichtet an Preppers, also an die teils leicht verwirrten, die das Ende der Zivilisation kommen sehen. Beachtenswert für die Menschenbeschreibung im Chaos, die sind nämlich mehr Zombies als Menschen, wohl nötig fürs Szenario, aber auch ziemlich daneben. Zuviel Leiden, zu vorhersehbar, nicht durchlesbar. Bleibt aber im Kopf.
Diana Pharao Francis: Path of Fate
Götter, Magie, eine Heldin und ein überschaubarer Plot: Wieder eine Intrige, die zwei Länder in den Krieg führen soll. Ein bisschen viel Aufleveln der Heldin im kurzen Verlauf der Geschichte. Weniger simpel als Dragonworld, aber auch nicht mehr als Pfützentief.
Roger Zelazny: Chaos and Amber & The Dawn of Amber & To Rule in Amber & Shadows of Amber
Das ist ja so etwas, womit ich keine Erfahrung habe: Science-Fiction als mittelklassige Serie. Gibt es sowas bei den Amis öfter? Hier ist der Inhalt mit sehr viel absurdem in einem sehr abgehobenen, aber auch originellen Universum in nie ganz komplette Geschichten verpackt, was wohl zum Weiterlesen animieren sollen. Funktioniert auch, man fühlt sich aber beim Lesen nie richtig gut.
Robin McKinley: Sunshine
Was besonderes. Die Autorin deckt hier Schritt für Schritt SciFi- und Fantasy-Element ihrer Welt auf, die anfangs so wirkt als sei es die unsere und es ginge um des Leben einer Bäckerin. Zeigt das Talent der Autorin. Aber dabei verwandelt sich die Geschichte in eine Vampirgeschichte, in der es um die auf dessen Penis fixierten Erotikträume der Protagonistin geht. Schade, hätte was sein können, wäre es nicht Schrott geworden.
Julian Barnes: Vom Ende einer Geschichte
Das Buch habe ich zweimal gelesen, das beim zweiten mal aber erst gegen Ende bemerkt. Das ist kein Kompliment. Der Protagonist erinnert sich an eine Liebesaffäre und an Personen aus seiner Jugend. Diese Erinnerung kollidiert dann mit der Realität. Guter Roman um zu zeigen, dass man Erzählern nicht blind trauen darf. Schlechter Roman um ihn zu lesen, denn die Geschichte ist im Grunde ein Idiot Plot - sowohl die Frau als auch der Protagonist sind zu doof um miteinander zu reden. Der Protagonist ist debil, die Frau eine Furie. Die intendierte Botschaft zieht nicht, aus dem Irren des Protagonisten entsteht keine wertvolle Neubetrachtung der eigenen Erinnerungswelt. Stattdessen ist es nervig, beide male.
Gerard Donovan: Winter in Maine
Richtig toll! Ein als Erzähler sympathischer Mann lebt etwas vereinsamt im Wald. Man erfährt von seinem Leben, seinem Vater, der Liebe zu Büchern und Shakespeare. Dann tötet jemand seinen Hund. Ich will nicht zu viel spoilern, aber der Kniff ist, dass man als Leser vor sich selbst erschrickt. Ganz groß.
Elizabeth Hand: Wylding Hall
Beachtenswert vor allem für die Form. Die Geschichte wird nämlich in Interviews erzählt, welche die Charakter nacheinander, sich wiederholend und sich auf vorherige Aussagen beziehend abliefern. So baut sich dann eine Gruselgeschichte um eine Folk-Band auf, das für eine lange Albumaufnahme in einem großen Anwesen eines abgelegenen Dorfes gewohnt hat. Die eigentliche Geschichte ist dann langweilig und wird schnell vorhersehbar.
Ein Problem wird sein, dass ich schon ziemlich viel gelesen habe. Aber das was in diesen Humbles Bundles verpackt wurde kommt aus einer anderen Welt, und kollidiert ziemlich mit meinen Ansprüchen. Andererseits waren diese klassischen Science-Fiction-Geschichten von Bester, Zelazny und Asimov im ersten Bundle schon toll, und reguläre Literatur wie "Oben ist es Still" habe ich etwas über. Aber gut, mit Büchern aus beiden Lagern bin ich jetzt erstmal durch.
In Zukunft will ich bewusster auswählen - ich will Louis Begley auf der einen und Dune auf der anderen, gute Literatur und gute Science-Fiction oder Fantasy, keinen mittelmäßigen Quatsch. Selbst wenn der unterwegs besser ist als nichts.
Das vierte Serendipity-Treffen und ein neues Release
Sunday, 25. March 2018
Vom 23. bis 25.03 haben wir uns zum jetzt vierten mal als Serendipity-Projekt im Essener Linuxhotel getroffen. In leicht kleinerer Runde (denn diesmal leider ohne Dirk) folgen wir dem fast schon traditionellen Programm: Gemeinsames Abendessen am Freitag, samstags Arbeit an den im Jahr übrig gebliebenen Baustellen sowieso an Zukunftsplanung, dann Sonntag vor dem Aufbruch noch etwas Weiterarbeiten.
Am Sonntag veröffentlichte Thomas mit etwas Rückendeckung von Garvin das neue Serendipity 2.1.2, ein Bugfix-Release. Dass das nun Thomas machen konnte war ein Ergebnis der Vorarbeit am Samstag. Das war wichtig, denn dort mussten ein paar Blocker im Release-Skript umschifft werden. Jetzt müssten eigentlich auch in Zukunft neue Releases schneller kommen können, und daher Bugfixes schneller die Nutzer erreichen. Die neue Version ist hier im Blog schon installiert.
Woran haben wir ansonsten gearbeitet? Wir haben
- Versucht die Spam-Problematik im Forum zu entschärfen: Neue Einstellungen ausprobiert, Update der Software angedacht.
- Im Bayes-Plugin die fehlenden Tokens in die Benachrichtigungsmails eingebaut, sodass ohne Login Kommentare als Ham oder Spam markiert werden - und dabei hat Mario direkt einen Bug im core gefixt.
- Eine Funktion vorbereitet, mehrere Bilder auf einmal als Galerie in Einträge einzubauen.
- Einige andere neue Funktionen besprochen.
- Bernd hat todesmutig den aktuellen Github-Master mit Produktivdaten getestet, um dabei zu helfen die responsiven Bilder fertigzustellen.
- Matthias hat an einem neuen Design gearbeitet.
Und natürlich haben wir gut gegessen und viel geredet.
Ich empfand es wieder als sehr angenehmes Treffen, auf das ich mich zurecht im Vorfeld gefreut habe, und das ich gerne auch im nächsten Jahr wieder stattfinden sehen wollen würde.
UX-Tagung bei Bonn: Von Usability zu Humability
Tuesday, 20. March 2018
Die Nachbarhälfte der Abteilung hat eine für meine Ohren ziemlich nett klingende kleine Konferenz organisiert:
Uns erwarten Autos, die Entscheidungen treffen, und Roboter, die uns versorgen. Autonome Systeme sind keine bloßen Werkzeuge mehr. Usability zu fordern, greift zu kurz: Wir müssen vielmehr dafür sorgen, dass autonome Systeme uns als fühlenden und sozialen Wesen gerecht werden. Nicht nur gebrauchstauglich, sondern menschentauglich müssen sie sein. Durch diese Brille möchten wir mit Ihnen in unsere technologische und menschliche Zukunft blicken.
Ich denke, dass bei diesen Themen freie Software eine wichtige Rolle spielen wird. Denn wie sonst können wir menschentaugliche Software schaffen? Gleichzeitig sind wahrscheinlich einige Interessierte an freie Software auch generell an Technikzukunft interessiert, daher erlaube ich mir hier diesen Hinweis.
12. April, bei Bonn, 245€ Teilnahmegebühr. Mehr im Flyer.
Ruby und mehrere Kerne
Sunday, 18. March 2018
Im Laufe der Zeit habe ich einige Performance-Optimierungen an meinen Ruby/Sinatra-Anwendungen vorgenommen. Insbesondere bei pc-kombo, denn dort würde ohne tiefere Optimierungen die Antwortzeiten eher bei Minuten als bei Sekunden liegen. Der wichtigste Baustein dort ist die Optimierung der Datenbankabfragen und Caching via memoist.
Im Hinterkopf hatte ich auch immer die Idee, dass die moderne Hardware mit ihren vielen Kernen gut genutzt werden sollte. Das macht Ruby ja leider nicht automatisch. Ich hatte mit dem parallel-gem gespielt, und ich benutze für Hintergrundaufgaben einen Threadpool. Aber wie effektiv kann das sein, wenn die reguläre MRI-Ruby-Implementierung mit einem globalen Lock (GIL) arbeitet und daher paralleles Ausführen von Code praktisch nicht geht? Selbst wenn der Linux-Scheduler Threads über mehrere Kerne verteilen kann, mehrere Prozesse dafür nicht nötig sind? Reicht das Warten auf IO und alles andere, während dessen kein Ruby-Code ausgeführt wird, um mit MRI trotz GIL die Prozessorkerne auszunutzen?
Um das durch Vergleich zu beantworten habe ich mir andere Ruby-Implementierungen angeschaut. Die beiden bekannten: jRuby und Rubinius. Beide sollten das MRI-Problem beseitigen und damit neue Performaneoptimierungen ermöglichen. Spoiler: Beide funktionierten für mich nicht, bis zum Benchmarken kam ich gar nicht.
jRuby
jRuby ist Ruby auf der JVM, der virtuellen Maschine die ursprünglich für Java genutzt wurde und inzwischen einige andere Sprachen trägt. Der Vorteil davon soll sein, dass jRuby-Programme von den Optimierungen der JVM profitieren, und das schließt Parallelismus mit ein. jRuby war der Anleitung folgend erstaunlich einfach installiert: Java installieren, jRuby herunterladen, entpacken und ausführen. Auch rvm unterstützt jRuby, als ich beim Ausführen dann nicht durchaute wie ich den PATH
und gems verwalten soll löschte ich die manuelle Installation wieder und installierte es damit.
Es scheiterte dann für mich an sqlite3. Das sqlite3-gem nutzt C-Code, und jRuby kann keine C-Module ausführen. Stattdessen würde man wohl jdbc laden, also das machen wie im Java-Land. Dafür müsste ich meinen Datenbankcode umschreiben, und für ein Experiment ungewissen Ausgangs war das keine Option. Das ist wohl weniger problematisch, wenn man activerecord benutzt, dann stellt man das einfach auf den jdbc-Adapter um.
Rubinius
Rubinius hatte ich mir vor einiger Zeit schonmal angeschaut, damals war es nicht mal installierbar. Inzwischen hat das Projekt wohl etwas Zeit darein investiert, tatsächlich Nutzer zu erreichen, die Installation war ein simples rvm install rbx-3
. Aber Rubinius ist trotzdem noch nicht praxistauglich genug.
Erst hing es sich an meiner Benchmark-Klasse auf. Ich hatte mir den Issue-Tracker angeschaut und fand die Interaktionen dort nett genug, um diesen für mich unerklärlichen Bug zu melden. Dort bekam ich dann auch wirklich gute Hilfe, Benchmark wird derzeit durch die Standard-Lib belegt, ich müsste es in ein Modul packen. Gesagt, getan, nächster Fehler. Nun war es das http-accept-gem, mit dem pc-kombo die Lokalisierung umsetzt, das an einer unvollständigen StringScanner-Implementierung starb. Auch diesen Fehler meldete ich.
Ich bin erfreut über die gute Antwortzeit des Projektes, aber es ist für mich unmöglich einzuschätzen, ob Rubinius auch nur annähernd kompatibel genug ist, eine echte Sinatra-Webanwendung mit ihren weiteren gems auszuführen. Auch absolut unklar ist, ob Rubinius überhaupt einen Performancevorteil bringen würde - neben der GIL-losigkeit kamen viel der berichteten positiven Performanceerfahrungen wohl vom JIT-Interpreter, der aber inzwischen herausgenommen wurde. Könnte immer noch Parallelismus ermöglichen und damit meinen Anwendungen nützen, aber klar ist das nicht.
Alternative: Der MRI-Weg
Außer auf Verbesserungen bei Rubinius zu hoffen sehe ich für mich drei Alternativen:
- Ich könnte einfach nichts machen. Seit der letzten Performance-Tuning-Runde ist die Seite wieder schnell. Durch Debugging hatte ich bemerkt, dass das Problem bei den Datenbankabfragen lag, nicht am Prozessor. Da waren blöde Sachen dabei, wie für jede Hardwarekomponente beim Seitenaufbau nochmal in der Datenbank nach Bildern zu suchen. Solange die Seite keinen Besucheransturm erlebt kann das also erstmal so bleiben. Auch wenn es generell doof ist, die Fähigkeiten moderner Prozessoren mit meiner bevorzugten Sprache nicht gut nutzen zu können.
- Ich könnte auf Ruby 3 hoffen. Großes Ziel der Entwicklung sind Performanceverbesserungen, 3x3 war das Stichwort. Bessere Unterstützung von Parallelimus/Concurrency durch neue Operatoren und Konzepte ist auch dabei, selbst die Beseitigung des GILs wurde ins Auge gefasst. Das könnte ich verfolgen und frühzeitig versuchen einzubauen.
- Wenn jetzt etwas geschehen soll könnte ich auch die Architektur der Anwendung ändern. Derzeit ist das ein Monolith, wobei an ein paar Kernstellen ein Threadpool benutzt wird. Ich könnte es aufsplitten: Eine Anwendung zum Aktualisieren der Preise, eine andere zum Zeichnen der Weboberfläche, eine dritte zum Erstellen der Hardwarezusammenstellungen. Herausforderung wäre das Austauschen der Informationen, aber auch dafür gibt es schon Lösungen.
Theoretisch könnte man natürlich auch die Sprache wechseln, aber dafür ist pc-kombo viel zu groß. Trotzdem etwas für den Hinterkopf für Leser, die diesen Artikel lesen um für eine noch zu bauende Anwendung den Einfluss von Ruby auf die Performance einzuschätzen. Wichtig ist dann die Erkenntnis: Sollen mehrere Prozessorkerne genutzt werden, muss das genau geplant werden - Ruby macht das nicht für dich.
Anschauen: Lucky
Tuesday, 6. March 2018
Ich mochte Lucky sehr. Ein Film über einen alten Mann (der kürzlich verstorbene Harry Dean Stanton) in einer amerikanischen Wüstenstadt, seiner Routine folgend, die natürlich gestört wird - unter anderem durch eine entlaufene Landschildkröte. Einige wenige Szenen driften ins Absurde. In seinen ruhigen ist er eine anekdotengespickte, nüchterne Auseinandersetzung mit dem Sterben.
Und auch wenn der Film eine Komödie ist, dessen Witze durchaus sitzen, ist er mit solch einem Thema natürlich todtraurig.
Ohne zuviel verraten zu wollen: Es gibt neben dem Ende zwei besondere Szenen. In der einen ist es Nacht und Lucky liegt wach, raucht und denkt. Dazu spielt Johnny Cash I see a Darkness. Das passt verdammt gut, zusammen wird dieser Abschnitt emotional sehr stark. In der anderen singt Lucky Volver Volver, und ich glaube nicht, dass mexikanische Musik jemals so in einem US-Film genutzt wurde.
Absolut anschauenswert.
Königreiche und Intrigen im Mittelalter mit Crusader Kings 2
Friday, 23. February 2018
In der Humblebundle-Beschreibung erwähnte ich, dass ich vor Jahren schonmal Globalstrategie von Paradox gespielt habe. Diese Erfahrung mit Hearts of Iron war bei Crusader Kings 2 sicher hilfreich, um in das Spiel hineinzukommen. So vorbereitet ist das Tutorial durchaus nützlich und die Grundlagen werden klar, wobei dieser erste Durchlauf nach dem Tutorial (man kann nach der Einführung mit der gleichen Dynastie weiterspielen) trotzdem ziemlicher Murks war, mein spanisches Königreich zersplitterte unrettbar.
Crusader Kings 2 ist nicht ganz einfach, und es spielt sich anders als Hearts of Iron. Der Fokus liegt weniger auf dem Kampf und daher nicht einfach auf dem Verschieben von Einheiten auf der erweiterten Europakarte. Vor allem muss die Dynastie gemanagt werden: Nachfolger platzieren, Kinder und Enkel verheiraten, dadurch Bündnisse mit anderen Herrschaftshäusern schmieden. Vasallen haben zu all dem ihre eigene Meinung und beäugen die gleichzeitig notwendige Titelanhäufung kritisch. Am schlimmsten ist jedoch die eigene Familie, der rebellierende Bruder des Königs, dieses klassische Szenario trat bei mir bis jetzt wann immer es möglich war auch ein. Und Bürgerkriege sind hart zu gewinnen, wenn die Vasallen sowieso nur 20% ihrer Truppen stellen und noch weniger wenn sie verärgert sind (das kann durch Gesetzgebung langsam beeinflusst werden).
Großer Stolperstein ist die Erbfolge, und das ist wohl historisch ziemlich korrekt. In frühen Königreichen werden die Titel und Liegenschaften unter den Söhnen aufgeteilt, dadurch sind auch große Reiche immer am Zersplittern. Erst die Einigung auf einen einzigen Erben, ob es jetzt der Erstgeborene, der älteste der Dynastie oder ein Wahlsieger ist, bewahrt Reiche zuverlässig vor diesem Schicksal. Zumindest bis dann der nächste Vasall einen Aufstand anzettelt.
Dieses nötige Managen der Persönlichkeiten plus den nur geringen Ausbaumöglichkeiten der einheitenproduzierenden Gebäuden in den Provinzen führt dazu, dass man nur sehr schwer eine schlagkräftige Armee aufstellen kann. Und vor allem nicht spontan. Wenn das Nachbarreich 2000 Soldaten mehr stellt, dann hat der König dem nur wenig entgegen zu setzen. Im Grunde gibt es nur zwei Möglichkeiten: Wenn Gold in der Schatzkammer ist Söldner anheuern, oder Verbündete herbeirufen. Immerhin: Sind die Kräfteverhältnisse ungefähr gleich stark wird man normalerweise gegen die KI gewinnen.
Wobei man auch lernen muss, dass nicht jeder Krieg gewonnen werden muss. Gegen einen übermächtigen Gegner gibt es manchmal eben keine Chance. Aber solange die Dynastie weiterbesteht, muss durch eine Niederlage das Spiel nicht zuende sein, und in vielen Kriegen geht es nur um einzelne Provinzen und Prestige, der Verlust von beidem kann oft genug verschmerzt werden.
In meinem zweiten und aktuellen Anlauf fing ich als heidnischer Vikinger in England an. Mit massiv überlegenen Truppen musste aus einer einzelnen Provinz ein Klein-Königreich erschaffen werden. Das naheliegende Ziel dieses Reiches war dann die Eroberung von weiteren Provinzen, genug um die Selbstkrönung zum König von England zu ermöglichen. Mein erster König war ein kriegserfahrener Berserker, der leider relativ jung im Gefecht umkam. Sein Nachfolger musste sich zum Katholizismus bekehren, um einen chancenlosen heiligen Krieg zu beenden. Ein Heidenreich hat viel mehr Möglichkeiten, so konnte er zuvor mehrere Frauen haben, beliebige an Meer und Flüssen gelegene Provinzen plündern (wie Vikinger eben) und ohne Rechtfertigung allen angrenzenden Reichen Krieg erklären, so also einfach wachsen. Der Verlust all dessen war daher ein heftiger Einschnitt. Und doch ging es weiter, er konnte später seine Ambition erreichen und England gründen. Mit seinem natürlichen Ableben nach mehr als 40 Jahren Herrschaft kam sein Sohn an die Macht, ein Genie (Attributs- und Beliebtheitsbonus). Dessen Bruder rebellierte törichterweise (tatsächlich wurde dieser Krieg nur durch Bündnispartner gewonnen) und rottet jetzt im Verlies.
Das Ziel jetzt: Den Rest Englands einnehmen, und die Territorien des gerade zersplitterten irisch-schottischen Königreiches sehen auch sehr verlockend aus. Das ist nicht so einfach, denn ein Krieg braucht nun ja immer einen Grund und ein Ziel, ein Sieg bringt also oft nur eine einzelne Provinz. Weiteres Ziel: Die Gesetzesstruktur so verändern, dass das Erbe nur dem Erstgeborenem zufällt. Das wird aber noch einige Generationen dauern.
Die Beschreibung soll es zeigen: Crusader Kings 2 ist ein ziemlich interessantes Spiel. Am Ende ist es dann nicht ganz so tief, wie es durch seine anfangs schwer durchschaubaren Mechanismen wirkt. Aber es ermöglicht sehr individuelle Geschichten und Herausforderungen. Dadurch ist es sehr motivierend und trägt problemlos durch sehr viele Stunden Spielzeit. Nett auch: Die Linuxversion funktioniert hervorragend.
Rubys Twitter-Gem
Thursday, 22. February 2018
Twitter in Pipes einzubauen erschien mir unheimlich schwer, aber ich hatte es völlig überkompliziert. Mein Problem war der Startpunkt: https://developer.twitter.com/en/docs. Die offizielle Twitter-Dokumentation ist verwirrend. Es gibt für verschiedene Aufgaben verschiedene APIs, und als ich dort anfangs reinschaute gab es nochmal andere APIs, bei denen dann die Warnung der baldigen Abschaltung dranstand, die Alternative gab es noch nicht. Es erschien mir unmöglich, da etwas zukunftssicheres zu entwickeln.
Ich hätte mir direkt sferik/twitter anschauen sollen. Denn wie so viele gute gems abstrahiert er diese Entscheidungen völlig. Er verlangt nur nach den API-Keys und Tokens (warum auch immer Twitter beide Systeme hat) und funktioniert danach einfach als Code:
client.search("ruby")
sucht nach Tweets mit ruby,
client.user_timeline("onliandone")
zeigt Tweets aus der Timeline des angegebenen Nutzers. Rate-Limiting fehlt, aber dafür habe ich mit throttle-queue schon eine Weile eine saubere Lösung im Arsenal.
Sollte nun Twitter wirklich wieder die APIs ändern kann ich davon ausgehen, dass das gem alle Probleme lösen wird. Es wird viel benutzt und immer noch entwickelt, auch wenn die Github-Issues sich nicht toll lesen. Und sollte ich mich da irren, kann das gem immer noch durch eine manuelle Lösung ersetzt werden. Das Ruby-Universum ist für sowas schon toll, die spezielle Lösung in der Sprache ist wie so oft der bessere Startpunkt für die Problemlösung gewesen.