Ripgrep – grep auf Steroide

Grep ist wohl das Standardtool um den Inhalt von Dateien zu durchsuchen. Allerdings braucht man oft sehr viele Geduld. Für Ungeduldige gibt es ripgrep.

Ripgrep ist eine Alternative zu grep, welche in Rust geschrieben ist und die in vielen Fällen deutlich schneller zu einem Ergebnis kommt als grep. Bei ersten Tests konnte ich deutliche Unterschiede feststellen. Ich habe spaßeshalber einmal das ganze Homeverzeichnis meines Notebooks durchsucht.

grep -Ir Rybka /home/XYZ
/home/XYZ/Downloads/bundle.ini:[Rybka 2.2 32 bit]
/home/XYZ/Downloads/bundle.ini:ExeName=Rybka v2.2n2.mp.w32.exe
/home/XYZ/Downloads/bundle.ini:RelPath=\Engines\Rybka
/home/XYZ/Downloads/bundle.ini:[Rybka 2.2 64 bit]
/home/XYZ/Downloads/bundle.ini:ExeName=Rybka v2.2n2.mp.x64.exe
/home/XYZ/Downloads/bundle.ini:RelPath=\Engines\Rybka
/home/XYZ/Downloads/engines.ini:Rybka=Vasik Rajlich;USA
grep -Ir Rybka /home/XYZ 0,61s user 4,36s system 18% cpu 27,098 total

time rg -uu Rybka /home/XYZ
/home/XYZ/bundle.ini
23:[Rybka 2.2 32 bit]
24:ExeName=Rybka v2.2n2.mp.w32.exe
26:RelPath=\Engines\Rybka
32:[Rybka 2.2 64 bit]
33:ExeName=Rybka v2.2n2.mp.x64.exe
35:RelPath=\Engines\Rybka

/home/XYZ/Downloads/engines.ini
2666:Rybka=Vasik Rajlich;USA
rg -uu Rybka /home/XYZ 0,44s user 0,52s system 375% cpu 0,256 total

Wie man sieht, ist ripgrep hier leicht schneller.

Andrew Gallant, der Entwickler von ripgrep, hat auf seinem Blog einen ausführlichen Artikel veröffentlicht, in dem neben diversen anderen Benchmarks genauer auf ripgrep eingegangen wird. Unter anderem auch für wen ripgrep eher nicht geeignet ist.

Discord steht nun auch für Linux bereit

Bei Discord handelt es sich um einen kostenlosen Client für Text- und Sprach-Chats. Zum Einsatz kommt das Programm hauptsächlich bei Gamern als Alternative zu Teamspeak. Heute wurde offiziell die erste Version für Linux veröffentlicht.

Auf der offiziellen Seite steht die Linuxversion als Deb-Paket sowie als Tar.gz-Archiv zum Download bereit. Da die Software allerdings nicht quelloffen ist, wird sie für den einen oder anderen nicht in Frage kommen. Persönlich wäre mir zum Beispiel Mumble auch lieber, aber bei vielen Spielen ist Discord inzwischen zum Standard geworden und bietet auch mehr Funktionen als so manche quelloffene Lösung.

Nutzer von Arch finden Discord im AUR.

Tastaturbeleuchtung eines Thinkpads automatisch aktivieren

Mir wäre es ganz lieb, wenn sich mein X230 Notebook den Zustand das Tastaturbeleuchtung merken würde und dieser Zustand nach einem Reboot auch wiederherstellt wird. Klappt aber nicht. Daher habe ich nachgeholfen.

Kurzerhand habe ich einfach eine Service-Datei für systemd erstellt. Ich habe sie mal backlight.service genannt.

[Unit]
Description=Tastaturbeleuchtung automatisch aktivieren

[Service]
Type=simple
ExecStart=/bin/bash -c 'echo 1 > /sys/devices/platform/thinkpad_acpi/leds/tpacpi::kbd_backlight/brightness'

[Install]
WantedBy=multi-user.target

Interessant ist hier im Grunde genommen nur die ExecStart-Zeile. Hier wir der Befehl ausgeführt, der die Tastaturbeleuchtung auf Stufe 1 aktiviert (Stufe 2 wäre die stärkste Beleuchtung und Stufe 3 würde noch die Beleuchtung im Rahmen des Displays hinzuschalten). Klappt soweit auch. Da das Notebook verschlüsselt ist, wäre es mir auch recht, wenn die Tastatur schon bei der Eingabe des Passworts klappen würde. Scheinbar gibt es aber kein passendes Target hierfür.

Fryboyter – Hinweis wegen Freischalten von Kommentaren

Ab und zu fragen bei mir Leute nach, wo denn ihre kürzlich geschriebenen Kommentare abgeblieben sind, da diese nicht sofort angezeigt werden. Dies liegt bei mir daran, dass alle Kommentare erst einmal von mir freigeschaltet werden (oder auch nicht). Einen Hinweis hierzu gab es bisher allerdings nicht.

Gestern habe ich mal wieder eine Nachfrage wegen eines nicht angezeigten Kommentars erhalten. Da ich gerade Urlaub habe, habe ich mich mal ein paar Minuten damit beschäftigt und die functions.php meines WordPress-Themes erweitert. Wenn nun ein Kommentar abgeschickt wird, wird dieser für den Ersteller mit einem Hinweis angezeigt.

Unterm Strich ist diese Änderung kein Hexenwerk (hier nur der betreffende Codeteil der erstellen Funktion):

<?php if ( $comment->comment_approved == '0' ) : ?>
    <em class="comment-approved"><?php _e( 'Your comment is awaiting moderation.', 'fryboyter' ); ?></em>
    <br />
<?php endif; ?>

Im Grunde wird nur geprüft ob in der Datenbank beim betreffenden Kommentar comment_approved den Wert 0 hat. Wenn ja, wird der Hinweis angezeigt. Dieser ist hier in Englisch angegeben. Das _e bewirkt in dem Fall eine automatische Übersetzung. In diesem Fall in die deutsche Sprache.

FSearch – Schnell Dateien suchen

Dem einen oder anderen Windowsnutzer wird Everything ein Begriff sein. Mit diesem Tool lassen sich sehr schnell Dateien finden. Everything nutzt hierzu die Metadaten des Master File Table von NTFS. Und was ist mit Linux?

Lösungen wie Baloo habe ich immer links liegen lassen, da mir die Indexierung zu lange dauert und zu viele Resourcen verbraten werden. Daher habe ich bisher immer auf die langsameren Lösungen wie find zurückgegriffen. Heute wurde ich auf FSearch aufmerksam. Hierbei handelt es sich um ein GTK+3-Programm, welches aktuell noch Alpha-Status hat. Der Entwickler will mit FSearch eine Linux-Alternative zu Everything schaffen.

Und was soll ich sagen? Bisher bin ich schwer begeistert. Nach dem ersten Start gibt man die Verzeichnisse an, welche bei der Suche berücksichtigt werden sollen. Bei meinem ersten Test habe ich das Homeverzeichnis meines Notebooks angeben. Eigentlich habe ich erwartet, dass das Programm eine gewisse Zeit arbeiten wird. Hat es aber nicht. Innerhalb einer Sekunde (geschätzt) wurde mir angezeigt, dass 56153 Einträge bei der Suche berücksichtigt werden. Eine richtige Indexierung war das wohl nicht. Trotzdem hat es mich interessiert wie schnell eine Datei gefunden wird. Auf dem Rechner liegen einige Dateien deren Namen ich auswendig kenne in einem ziemlich verschachtelten Verzeichnisbaum. Das ideale Ziel. Ich habe hier bewusst nur einen Teil des Namen bei der Suche angegeben (also beispielsweise wenn der Dateiname HundKatzeMaus.sql lautet habe ich nach Katze gesucht). Da das Tool bereits beim Tippen anfängt zu suchen wurden mir die Treffer quasi sofort angezeigt. Ich will mich jetzt nicht zu weit aus dem Fenster lehnen aber FSearch fühlt sich sogar schneller als Everything an. Holy Cow.

Die Suche funktioniert zudem auch mittels Wildcards und RegEx und sollte daher eigentlich alle Fälle abdecken. Leider gibt es, zumindest derzeit, keine Version für die Komandozeile. Aber auf Rechnern mit grafischer Oberfläche werde ich FSearch sicherlich öfters nutzen.