MAME history.dat lesen

Und heute mal wieder ein kleines skript, welches wohl der größte teil der menschheit überflüssig wie einen kropf finden wird. Wer MAME unter windohs benutzt, der hat meist ein gutes frontend und kann die texte in der history.dat komfortabel lesen. Und auch die meisten linuxer werden MAME wohl mit einem frontend benutzen und eine entsprechende möglichkeit haben. (Letzteres weiß ich allerdings nicht so genau, da ich eben kein MAME-frontend benutze.) Nur ich bin wie immer ein wackerer streiter an der kommandozeile und tippe lieber in einer komfortablen bash herum, bevor ich zur maus greife.

Deshalb hatte ich ein leichtes bedürfnis, mir ein kleines programm zu schreiben, das mir gewünschte informationen aus der history.dat an der kommandozeile verfügbar macht. Weil es (in dieser form) ein programm für einen eher engen anwenderkreis ist, ist es ein flüchtiger häck geblieben. Wie beinahe alle meine flüchtigen häcks habe ich das schnell in Python gemacht. Das program setzt übrigens kein installiertes MAME voraus, kann also auch allein mit der history.dat verwendet werden, um informatzjonen zu einer vielzahl von älteren arcarde-spielen schnell zur hand zu haben.


import sys
import os
import re
import locale
from codecs import EncodedFile
from formatter import AbstractFormatter, DumbWriter
from subprocess import Popen, PIPE

locale.setlocale(locale.LC_ALL, "")

PAGER = os.getenv("PAGER", "less")
DATFILE = os.getenv("HISTORYDAT", "/usr/share/games/xmame/history.dat")
LOCALENC = locale.getpreferredencoding()

if len(sys.argv)  2:
    exit("Too many arguments")
else:
    term = sys.argv[1]

inf_re = re.compile(r"\$info\=([0-9a-z]*)", re.I)
bio_re = re.compile(r"\$bio", re.I)
end_re = re.compile(r"\$end", re.I)

state = 0
hfh = open(DATFILE, "rU")
pro = None
of = None
af = None

for line in hfh:
    if state == 0:
        m = inf_re.match(line)
        if m:
            found = m.group(1)
            games = found.split(",")
            if term in games:
                state = 1
    elif state == 1:
        if bio_re.match(line):
            state = 2
            pro = Popen(PAGER, stdin=PIPE, shell=True)
            of = EncodedFile(pro.stdin, "iso-8859-1", LOCALENC)
            af = AbstractFormatter(DumbWriter(of))
    elif state == 2:
        if end_re.match(line):
            break
        line = line.strip()
        if len(line) == 0:
            af.end_paragraph(1)
        else:
            af.add_flowing_data(line)

if pro:
    of.close()
    pro.wait()
else:
    sys.exit("No %s in the history.dat\n" % (term,))

Wie man das mit den beiden variablen PAGER und DATFILE an die eigene arbeitsumgebung anpasst, beschreibe ich hier nicht weiter — und wohl jeder an dieses skript interessierte wird wohl wissen, wie man eine umgebungsvariable in seiner lieblingsshell definiert. Dieses skript einfach irgendwo in den $PATH legen, ausführbar machen und mit dem ROM-namen als parameter aufrufen.

Eine neue leiste und alte schmerzen

Und ganz plötzlich hat man hier bei WordPress.com eine neue leiste über den seiten, wenn man angemeldet ist.

Sah die rechte seite dieser leiste vormals so aus (das „Dashboard“ ist im plural, weil ich hier mehrere blogs habe):

Alte versjon der leiste

was ja schon recht nützlich war, so wird man jetzt — wenn man einen gravatar an seine mäjhladresse gebunden hat — jedesmal daran erinnert…

Die neue steuerleiste bei wordpress.com

…wie man selbst aussieht. Das ist unglaublich praktisch, wenn man mal gerade keinen spiegel zur hand hat, allerdings ist das bild als hilfe bei der rasur oder beim kämmen zu klein und bei weitem nicht aktuell genug. :mrgreen:

Diese kleinigkeit in der neuen steuerleiste ist also völlig sinnentleert, ist nur etwas zucker für die augen — als ob wördpress in den aktuellen versjonen damit gegeizt hätte! Etwas nutzbringender könnte da sein, was neuerdings auf der rechten seite der gleichen leiste prangt:

Blogsuche bei WordPress.com in der neuen steuerleiste...

Da bleibt nur zu hoffen, dass die globale suche über alle blogs bei WordPress.com etwas brauchbarer programmiert ist als die suche in einem einzelnen blog. Wenn man einen einzelnen blog nämlich nach „rabe“ durchsucht, findet man neben „kolkrabe“ (zufällig mal gut!) auch „rabenschrey“, „graben“ oder „brabeck“ (mies!) und damit so ziemlich jeden beitrag, in dem diese vier buchstaben vorkommen. Dabei müssen diese vier buchstaben noch nicht einmal sichtbar sein, es reicht auch, wenn sie im dateipfad eines einbetteten fotos oder in einem link vorkommen (ganz ganz mies!). Und was bei dieser mies gemachten suche gefunden wird, das wird nicht etwa irgendwie nach relevanz oder verlinkung oder kommentarzahl oder beliebtheit oder einem anderen für den suchenden menschen nützlichen kriterjum sortiert, sondern schlicht kronologisch absteigend (unbrauchbar!). Damit diese „suchfunkzjon“, die offenbar keine „findfunkzjon“ sein soll, wirklich völlig nutzlos bleibt, gibt es keine möglichkeit einer verfeinerten suche mit zusätzlichen kriterien wie einem zeitlichen bereich, einer blog-kategorie oder zusätzlichen angaben.

Ich habe mich schon mehr als einmal darin wiedergefunden, dass ich einen eigenen beitrag in einem wördpress-blog mit guhgell gesucht habe. Das kann doch nicht der sinn einer internen suchfunkzjon sein! Es ist einfach nur schlecht.

Meiner meinung nach wären die wördpress-entwickler gut beraten, wenn sie sich einmal gedanken um die grundfunkzjonen eines blogs und ihren nutzen für autoren und leser machten, statt immer nur funkzjonen hinzuzufügen, die nur von einer minderheit gebraucht oder gewünscht werden und genausogut in ein plackinn gepasst hätten. Was nützt mir eine komplette versjonsgeschichte eines alten artikels, wenn ich diesen kaum wieder auffinden kann.

Aber nein, man wird stattdessen von den entwicklern nach „media features“ für die näxte versjon von wördpress gefragt… 😦

Sandkasten-softwäjhr

Ich finde es eine richtige entscheidung, dass zukünftige versjonen der großen meikrosoft-programme in einer so genannten „sandbox“ laufen sollen. Ich wusste schon in der mitte der neunziger jahre aus der schlichten erfahrung besserer softwäjhr, dass dieses büro-paket von meikrosoft (vielleicht vom wirklich vielfach nützlichen excel einmal abgesehen) ein großes buntes spielzeug ist, und finde es total passend, dass es jetzt im sandkasten betrieben werden soll. Das passt auch zu den leuten, die animationen in eine textverarbeitung einfügen können wollen… :mrgreen:

Die verdammten gottprogramme

Es mag ja sein, dass alle anwendungen komplexer und besser geworden sind, obwohl ich das meist nicht merke, denn alles, was ich an einem mäjhlprogramm, einer textverarbeitung, einer tabellenkalkulation nutze, das nutze ich so schon seit anderthalb jahrzehnten. Aber ich wünsche mir oft die zeit zurück, in der ein programm sehr unmittelbar nach dem start „da“ war und nicht versucht hat, alle noch so fernliegenden probleme zu lösen, nicht versucht hat, ein gott zu sein — auch wenn sich dabei der programmstart über mehr als eine minute hinziehen kann.

Ich brauche keine textverarbeitung, in der ich die buchstaben mit einem material überziehen kann und mit einer lichtkwelle beleuchten kann, ich brauche keinen brauser, der als grundlage für die programmierung „moderner“ anwendungen in javascript dienen soll und damit immer fetter und lahmarschiger wird, ich brauche kein mäjhlprogramm, dass für die erstellung von mäjhls einen WYSIWYG-editor eingebettet hat, als ob ein normaler mensch HTML-mäjhls schreiben würde. Es reicht mir, wenn diese verdammten programme das tun, wofür ich sie benutzen will und dazu einigermaßen schnell starten und nicht das gesamte RAM des kompjuters an sich reißen, den ich gerade benutze.

Wie gesagt, ich wünsche mir oft die zeiten zurück, in der programmierer noch darauf geachtet haben, dass sich ihr häckwerk schnell „anfühlt“ und für den benutzer benutzbar bleibt. In gewisser weise waren das bessere zeiten. Nur eines wünsche ich mir wirklich nicht zurück, und das sind die lahmen und überteuerten rechner von damals…

Käsch gleich speichern

Microsoft Pocket Internet Explorer - Die Seite kann nicht gespeichert werden, da sie im Cache nicht verfügbar ist. Stellen Sie sicher, dass unter Optionen der Cache aktiviert ist, aktualisieren sie die Seite und versuchen Sie es erneut. Wenn Sie diese Meldung nochmal erhalten, kann die Seite in den Cache nicht abgelegt und deshalb nicht gespeichert werden.

Ja, ist ja schon gut, du verhasster internet-exploder (oder für einen pocket-pc wohl besser „explöderchen“ genannt). Du kannst also nicht in eine datei schreiben, was du schon im speicher hast, das kannst du nur auf dem bildschirm darstellen. Und damit niemand bemerkt, wie unfassbar schwachsinnig diese tatsache ist, formulierst du deine tolle fehlermeldung so, dass man sie in ihrem kern erst beim zweiten lesen versteht. Ganz große kunst mal wieder. Und sehr erheiternd.

Ein tag ohne internet-explorer ist ein schönerer tag.

Der verlorene index

Nichts gegen den „thunderbird“, das ist ein guter mäjhlkeiend. Aber wenn der mal abgekackt ist — das kommt zwar selten, aber doch immer wieder einmal vor — denn lässt er alle indexdateien für die ordner in einem zerschossenen zustand zurück, und das kann hirnen.

Ich habe natürlich hunderte von einzelnen filterregeln. Die meisten legen bestimmte absender in bestimmten ordnern ab, damit ich keine macke von meinem mäjhlaufkommen kriege. Und wenn die indexdatei in ordnung ist, denn sehe ich das daran, dass der ordnername fett ist und in klammern die anzahl der neuen mäjhls aufgeführt wird. Wenn die indexdatei zerschossen ist, denn sehe ich das gar nicht. Erst, wenn ich den ordner, in dem scheinbar nichts geschieht, anklicke, kriege ich in der statuszeile die meldung „zusammenfassungsdatei wird erstellt“ und darf dem donnervogel beim durchatmen zuschauen — danach habe ich für diesen ordner wieder meine vertraute darstellung und sehe auch, dass etwas neues gekommen ist.

So etwas ist mir neulich passiert, als es um die vorbereitung eines gemeinsamen aprilscherzes ging. (Kommt ja morgen, lasst euch überraschen.) Ich habe die mäjhl zwar bekommen, aber nicht bemerkt, und in der folge war das gegenseitige unverständnis groß. Die übliche scheiße, die immer wieder passiert, wenn man compjuter zum kommunizieren benutzt.

Wenn das problem auftritt, ist es übrigens ganz einfach, die indexdateien für alle ordner neu zu erzeugen. Hierzu reicht es, alle ordner mit der suchen-funkzjon zu durchsuchen, für jeden ordner wird dabei im hintergrund der index wiederhergestellt. Warum dieses verkackte programm so etwas nicht von allein hinkriegt, bleibt allerdings das geheimnis der programmierer.

Ich hoffe, es hilft auch anderen. (Aber heute scheint ja die mehrheit der compjuternutzer gar nicht mehr zu wissen, was ein mäjhlkleiend ist und dass es so tolle filterregeln gibt.)

Hackbild

Wenn mich früher jemand gefragt hätte, ob man sich durch anschauen eines bildes am kompjuter „etwas einfangen“ könnte oder „gehäckt werden“ könnte, hätte ich herzlich gelacht. Heute gibt es den internet-explorer.

Beim Öffnen einer Datei verlässt sich der Internet Explorer nicht blind auf möglicherweise falsche Anzeichen wie Dateinamen oder den MIME-Typ, den der Server übermittelt. […] schaut er in die Datei hinein und entscheidet an Hand des Inhalts, wie sie zu behandeln ist. […] kann dann sogar dazu führen, dass er in einer Bilddatei HTML-Code entdeckt, diesen rendert und eingebettetes JavaScript ausführt. Dieser Script-Code […] kann beispielsweise die Zugangsdaten des Anwenders ausspionieren.

Ganz großes kino mal wieder bei winzigweich!