Hacker News Colors 0.3: Farbige Kommentarzähler und Unterstützung für e10s
Hacker News Colors ist ein als Addon verpacktes Userscript. Es verändert Hacker News, indem es einen farbigen Balken (bisher) unter dem Upvote-Button zeichnet. Der Balken signalisiert durch seine Farbe, wieviele Upvotes ein Artikel hat. So sieht man schneller die besonders beliebten Artikel, die bei HN durch das Rankingsystem ja nicht unbedingt auf dem höchsten Platz sind.
Mit der neuen Version kommen zwei Verbesserungen dazu. Die erste ist Unterstützung für Multithread-Firefox, e10s. Es war fast ein bisschen ärgerlich, wie einfach das zu aktivieren war. Alles was es brauchte war ein Eintrag in der package.json:
"permissions": { "multiprocess": true },
Da der Code sowieso nur die mod-page-Funktion des SDK benutzte war es bereits kompatibel. Hätte Mozilla das nicht automatisch erkennen können?
Farbige Kommentarzähler sind die neue Funktion, und das war etwas aufwändiger. So sieht es aus:
Die Balken zu zeichnen ist einfach, das ist wie bei den Upvotes. Aber die Option sollte ja optional sein. Dafür muss eine Einstellung hinzugefügt werden, damit die gelesen werden kann braucht es Kommunikation zwischen dem Addon und dem seitenverändernden Javascript - und zwar auch bei der Änderung der Einstellung, nicht nur bei der Initialisierung der Erweiterung, sonst wirkt die Änderung erst nach einem Neustart des Browser. Den entsprechenden Commit verlinke ich hier auch für mich zum späteren Nachschlagen.
Kong: Skull Island
Kong: Skull Island ist einer dieser Filme, die auf dem Papier ganz gut klingen und deren Besetzung nicht schlecht ist, aber bei denen am Ende doch nur ein B-Movie rauskommt.
Die Idee einer modernen King-Kong-Verfilmung gefiel mir, sowas kann doch unterhaltsam sein. Die Besetzung ist okay, immerhin Samuel L. Jackson als ambivalenten psychopathischen Fiesling, John Goodman in einer tragenden Nebenrolle, Tom Hiddleston konnte ich nicht einordnen, Brie Larson als die weiße Frau (im Sinne eines King-Kong-Films).
Zur Handlung: Eine abstruse Regierungsorganisation will am Ende des Vietnamkrieges eine von der Außenwelt abgeschnittene Insel erkunden. Militäreskorte inklusive wird just das getan, per Boot und Helikopter, wobei vorher noch der Spurenleser (Tom Hiddleston ) und die Fotografin (Brie Larson) aufgesammelt wurde. Auf der Insel leben Monster, und eben King Kong, der in Notwehr die Helikopter zerschmettert. Samuel L. Jackson dreht dadurch endgültig durch und sinnt auf Rache, der Rest versucht die Insel zu verlassen.
Danach sind es nur noch Klischeees. Der Spurenleser führt tapfer durch die Insel und mag die Fotografin, bei den Eingeborenen lebt ein Soldat aus dem zweiten Weltkrieg (John C. Reilly), Samuel L. Jackson guckt böse und zieht seine Psychopathen-Nummer ab, Brie Larson guckt mitleidsvoll wenn Reilly seine Geschichte erzählt und wenn Kong Schmerzen hat und setzt ansonsten einen enormen Büstenhalter in Szene. Für den chinesischen Markt (wo Kong auch hervorragend gestartet ist) spielt Jing Tian eine Nebenrolle, ihre Aufgabe beschränkt sich darauf, eine Büchse aufzumachen, am schwarzen Wissenschaftler gefallen zu finden und ihm zu gefallen. Soldaten sterben, Musik spielt, es gibt Explosionen und Monster kämpfen. Bei der Heimkehr des Weltkriegssoldaten fällt der Ehefrau eine Flasche vom Tablett.
Man kann sich den Film angucken, aber man kann sich auch Mega Shark Versus Crocosaurus angucken.
Monitorama PDX 2014 - James Mickens
Monitorama PDX 2014 - James Mickens from Monitorama on Vimeo.
James Mittens erklärt die Verbindung von Batmans Bane mit NoSQL, die Herausforderungen für Sicherheit angesichts des männlichen Faktors, und warum die US-Regierung uns nicht mit Musketen angreifen wird. Und einiges mehr.
Logan
Logan ist ein brutaler Film. Ich denke ja gerne an den ersten X-Men-Film zurück, an die Einführung Wolverines, an die Aufbruchsstimmung. Seitdem hat sich die Serie gewandelt und die Wolverine-Filme haben von Anfang an ihr eigenes Ding gemacht. So auch hier, nur dass die Kritiker sie jetzt nicht mehr verreißen und Logan nochmal eine Schippe drauflegt.
Dieser Wolverine-Film jetzt spielt lange nach den vorherigen. Logan ist alt geworden, etwas ist schiefgegangen. Die X-Men gibt es nicht mehr, Wolverine verdingt sich als Chauffeur. Aber natürlich bleibt es nicht dabei, etwas neues geht schief, und dann noch etwas, ein neuer Oberböser erscheint sowie ein neues Mutantenkind. Zwischenzeitlich wird es fast ein Roadtrip und ich mag das, sowas hat wenn gut gemacht seine ganz eigene Atmosphäre. Logan ist gut gemacht. Er ist auch anders als sonstige Superhelden-Filme: Es gibt keine Helden, nur kaputte Menschen mit übermächtigen Fähigkeiten. Den seelischen Zustand dieser Menschen zu zeigen, darauf verwendet die Story viel Zeit. Eine Roadstory eben, zwischendurch zumindest. Denn es gibt ein großes Finale mit der Aussicht auf Rettung, auch das passt dazu sehr gut.
Allerdings ist der Film sehr brutal, und das auf zweifache Weise. Zum einen enthält er schlicht sehr brutale Actionszenen. Ich weiß nicht, wie geschnitten er in Deutschland gezeigt wird, aber hier war das wirklich arg. Meine Mitkinogängerin ist normalerweise nicht zimperlich, hier vergrub sie zwischendurch den Kopf in meiner Seite um nicht weiter sehen zu müssen. Aber auch die Story und das Schicksal der Personen ist hart, Logan (der Film) tut, als sei es seine Aufgabe, Magnetos Warnungen zu bestätigen. Einerseits passt das irgendwie schon, X-Men hatte immer diese Anklänge und Wolverine alleine ist nunmal ein Kampfmaschine mit Metallklingen, der seine Gegner zerschreddert. Und die Schauspiele sind alt geworden, es wird wohl Zeit, sich endgültig von der Aufbruchstimmung des ersten X-Men-Films zu verabschieden und generell einen Schlusspunkt zu setzen.
Aber es macht den Film dann eben doch schwer zu gucken, und mein Fazit gespalten: Ja, das ist schon ein guter Film den ich gut bewerten würde. Aber ich würde ihn nicht jedem empfehlen und ich möchte ihn mir nicht nochmal anschauen.
Artikel über Serendipity in der Screenguide
Heute waren zwei schöne Sendungen im Briefkasten. Einmal ein gebraucht gekaufter Gameboy, den ich verschenken werde - dazu vll ein andermal mehr. Die zweite Sendung war eine Ausgabe der Screenguide. Die wurde mir geschickt, weil ich für diese Ausgabe des Magazins einen Artikel über Serendipity geschrieben habe. Online ist er nicht, aber der Anreißer ist außerhalb des gedruckten Magazins lesbar.
An euch zu urteilen darüber, ob es mir gelungen ist, aber die Absicht des Artikels war eine Vorstellung von Serendipity als Blogsoftware. Ich wollte und sollte gleichzeitig zeigen, was Serendipity ist, was es kann und warum es interessant ist. Und das Ganze mit ein paar schönen Screenshots untermauern.
Solch einen Artikel zu schreiben fand ich durchaus spaßig. Auf der einen Seite ist es doch nochmal was anderes als was ich bisher so schrieb. Anderseits passen all diese Dinge (Wissenschaftliche Artikel, Blogartikel, früher Wikiartikel bei UbuntuUsers) bei dieser Art von Text irgendwie zusammen. Alles wird wiederbenutzt.
Katzenintelligenz
Und jetzt mal was ganz anderes. Als relativ frischer Katzenhalter bin ich überrascht, wie intelligent und unterschiedlich Katzen sind.
Erstmal Intelligenz: Ich wusste nicht, dass Katzen apportieren können. Und das sogar gerne machen, es war absolut leicht es ihr beizubringen. Und sie mag Rituale: Aus irgendwelchen Gründen hat meine gelernt, nach der Dusche (also, meiner) auf das Waschbecken zuspringen und dort laut zu miauen, bis sie dann auf meine Schulter springen kann. Dann wird sie auf der Schulter durch die Wohnung getragen, bis das Fenster aufgemacht wird, woraufhin sie auf die Fensterbank wechselt. Natürlich ist das Verhalten, das ich ihr ermögliche, aber es war garantiert nicht meine Idee.
Nebenbei, dieses auf der Schulter zu verweilen kam für mich auch unerwartet. Ich dachte, das gibts nur in Zeichentrickfilmen. Aber tatsächlich ist es ihr bevorzugter Transportmodus, mit dem ich sie auch durch die Stadt tragen kann. Mag komisch aussehen, ist mir aber egal, ich lebe eh im Ausland.
Nochmal Intelligenz: Kürzlich kam Familie zu Besuch. Ich bemerkte die Ankunft vor dem Klopfen, weil die Katze es mir verriet. Als unten die nicht abgeschlossene Haustür ging stand sie, vorher auf meinem Schoß verweilend, auf und lief zur Wohnungstür. Das war absolut ungewöhnlich, denn normalerweise hebt sie höchstens den Kopf wenn unten die Tür geht. Sie hatte also entweder die Familienmitglieder erkannt, die sie zuletzt als Jungkatze vor drei Monaten gesehen hat, oder sie bekam durch mein Verhalten mit, dass ich Besuch erwarte, oder sie merkte zumindest, dass da nicht die üblichen Nachbarn auf der Treppe sind. Egal was es war, ich war beeindruckt.
Es bleibt der Charakter. Meine Mitkatzenhalterin ist in der Hinsicht von der neuen Katze etwas enttäuscht. Denn sie ist es aus ihrer Kindheit gewohnt, eine absolut passive Schmusekatze zu haben, die man streicheln und aufheben kann wann immer man will, der man gar Babykleidung anziehen und sie in einen Puppenwagen legen kann. Versuchte man das mit meiner, hätte man eine blutige Hand und zerfetzte Kleiderreste. Diese Heftigkeit überraschte auch mich, denn ich war genauso mehr an altersmilde Schmusekater gewöhnt. Die neue Katze ist sehr wechselhaft: Mit mir verbringt sie viele Stunden vor dem Computer, schnurrend und sich streicheln lassend. Sind aber andere da, wird sie vorsichtig. Berührungen zum falschen Zeitpunkt führen zum Kralleneinsatz, wobei ihr das schon massiv abtrainiert wurde. Das gilt größtenteils für Fremde, aber auch ich kann mir nicht alles erlauben.
Sie schwankt also zwischen dem Dasein einer Schmusekatze und dem Charakter eines wilden Tigers, hat aber trotzdem eine klare Menschenprägung. Auch das ist eine Form von Intelligenz, soziale, und komplizierter als ich erwartet hätte.
Außerdem gibt es Anzeichen für Besitzergreifung. So hat sie eine Stoffkuh, ein Katzenspielzeug, mit dem das eingangs erwähnte Apportieren funktioniert. Diese Kuh trägt sie regelmäßig mit sich herum, legt es z.B. in die Nähe ihrer Schlafstätte. Vorhin lag die Kuh auf meinem Kopfkissen, jetzt ist sie nicht mehr zu sehen. Das könnte sie auch mit anderen Dingen machen, aber das ist eben selten, manchmal bringt sie mir den Schwamm aus dem Waschbecken (worüber ich natürlich hocherfreut bin). Strümpfe, Schlafanzug, Hausschuhe - außer ihrer Kuh wird fast nichts angerührt. Ich denke, sie hat verstanden, dass es ihr eigenes Spielzeug ist. Das kenne ich höchstens von Hunden.
Es gibt noch so viel mehr. Das Jammern, wenn sie vom Küchentresen muss, ist ein ganz anders, als wenn sie vom Esstisch fliegt. Auf dem Küchentresen will ich sie wirklich absolut nicht sehen, viel zu gefährlich (Gasherd), der Esstisch wäre mir fast egal. Den Unterschied merkt sie. Die Begrüßung beim Nachhausekommen ist auch so etwas, wo sie bei etwas längerem Alleinsein klar ihre Freude zeigt, sich Hochheben lässt und nur noch mehr gestreichelt werden will. Sie mag die Ikeatüte, sie mag Kartons, aber warum sie den Karton in die Ikeatüte schob bevor sie sich in ihn setzte, das weiß auch nur sie:
Im Video passiert sonst übrigens nichts besonderes. So wie es für die Bilder in diesem Artikel keinen anderen Grund gibt, als dass wenn man schon Katzencontent bringt, man auch Katzenbilder zeigen kann.
In kurz: Ich mag Katzen, schon immer. Aber jetzt mit einer lebend wird mir klar, dass die Viecher nochmal intelligenter und sozialer sind als ich ahnte. Die Katze als antisozialer Alleingänger ist ein Ammenmärchen, wir könnten sie ohne weiteres wie Hunde betrachten und halten.
Mehrere SQLite-Datenbanken kombinieren
Das tolle an SQLite ist, dass es eine Datenbank in einer Datei ist. Das hat viele Vorteile: Einfache Installation, einfache Konfiguration, einfache Backups. Und die Performance ist trotzdem nicht schlecht. Es hat aber auch einen Nachteil: Wie soll man Daten synchronisieren?
Also, ein Beispiel: Eine Webapp auf dem Produktivsystem aktualisiert die Datenbank mit neuen Produktpreisen, und hat dafür eine eigene Tabelle offers
. Gleichzeitig wird auf dem Entwicklungssystem die Tabelle products
angepasst, also welche Produkte die Webapp überhaupt kennt. Jetzt sollen gleichzeitig die Preise aktuell gehalten und irgendwie die neue Produkt-Tabelle ins Produktivsystem geschoben werden.
In einem solchen Szenario kann man die Datenbank aufteilen. Die aktuellen Preise bleiben in einer Datei namens offers.db, die Produkte landen in products.db. SQLite kann die dann mit ATTACH
zusammenfügen.
$ sqlite3 products.db SQLite version 3.17.0 2017-02-13 16:02:40 Enter ".help" for usage hints. sqlite> ATTACH DATABASE 'offers.db' as odb;
Danach können die Tabellen in offers.db ganz normal in SQL-Abfragen benutzt werden. Bei Kollisionen hilft das Namenspräfix. Sogar neue Tabellen können damit zielgerichtet in dieser Datei erstellt werden:
CREATE TABLE odb.sales(link TEXT, price REAL);
Mit dieser Funktion kann man wunderbar die Daten in permanente und regelmäßig aktualisierte aufteilen, sodass das Überschreiben der ersten nicht die Aktualisierungen der anderen verlorengehen lässt.
Hidden Figures - Ein schwarzes Weltraumrennen
USA, Anfang der 60er. Drei schwarze Mathematikerinnen arbeiten als menschliche Computer für die NASA. Während die Sovjetunion den Anfang des Weltraumrennens gewinnt, versucht die NASA ihr Programm voranzutreiben. Die drei Frauen sind talentiert und wichtig für das Weltraumprogramm, doch in den rassistischen und immer noch segregierten USA ist es für sie fast unmöglich, ihren Fähigkeiten angemessene Rollen zu erhalten.
Tatsächlich beruht der Film wohl auf historischen Figuren, Katherine G. Johnson, Dorothy Vaughan und Mary Jackson. Deren und die gesamte Historie ist auch interessant zu sehen: Die Rassentrennung, die menschlichen Computer, der Einzug des IBM-Computers und wie daraufhin Frauen zu Programmierern wurden. Und Fortran ein Mittel zum sozialen Aufstieg. Ich glaube, dass man sogar die Wiederentdeckung der Numerik im Film sehen kann, die wir im Studium nachvollzogen - aber da kann ich mich täuschen.
Die Musik von Pharrell Williams, von einer Mitkinogängerin freudig erwartet, wirkte im Film nicht wie etwas besonderes. Die drei Hauptdarstellerinnen dagegen fand ich schon toll. Kevin Costners Rolle war vielleicht etwas zu dankbar, Jim Parsons (Sheldon aus Big Bang Theory) negative interessanter. Insgesamt ist ein toller Film, mit Mathematik in einer Hauptrolle, mit der Spannung des Weltraumrennens, gut geschrieben und mit tollen Schauspielern. Es ist unterhaltsam und ein Wohlfühlfilm und zeigt trotzdem Aspekte echter Geschichte, so auch den Wahnsinn der rassistischen USA dieser Zeit. Auch die Perspektive auf das Weltraumrennen ist eine interessante: Das Streben einzelner Ingenieure und Mathematiker, in einer Institution über Gesellschaftsgrenzen hinweg gemeinsam neues zu erschaffen. Das könnte der Realität sehr nahe kommen.
Lion
Saroo ist ein kleiner Junge, der in Indien in ärmsten Verhältnissen lebt. Eines nachts überredet er seinen Bruder, mit ihm zum Arbeiten in die große Stadt zu gehen. Und dort verirrt er sich. Es verschlägt ihn in eine völlig andere Stadt, so weit entfernt, dass die Bewohner größtenteils nichtmal seine Sprache sprechen. Das Zuhause ist verloren.
Heimat, das ist wohl das Kernthema. Die verlorene Heimat nagt an Saroo auch später, als er in wesentlich besseren Verhältnissen lebt. Ohne zu sehr zu spoilern: Der Film hat mehrere Phasen. In der ersten wird sein Leben mit seiner Familie gezeigt. Danach das Verlorensein in Kalkutta, und das ist schrecklich. Die Stadt ist ein furchtbarer Ort voller schrecklicher Menschen; ein Moloch, in dem die Menschen ihn größtenteils in die Sklaverei verkaufen wollen und niemand hilft. Erst recht nicht die Polizei, oder die Heime, die Gefängnisse samt Misshandlungen der Kinder durch die Wärter sind. Doch auch nach der Rettung - in der zweiten Hälfte - ist Saroo nicht gerettet, denn ihm wird bewusst und er leidet daran, dass er seine Familie finden könnte.
Es ist ein trauriger und bewegender Film, der zwar keinen Oskar gewonnen hat, aber es vielleicht verdient gehabt hätte und nicht umsonst nominiert war. Die zweite Hälfte ist arg anders als die vorherige, und die reingemischte Spiritualität empfand ich als aufgesetzt und unnötig, so wie dann nicht mehr jede Handlung und jedes Gespräch nachvollziehbar sind. Doch eigentlich ist das ganz egal, denn das Gefühl des Verlorenseins bleibt präsent.