seeseekey.net - Invictus Deus Ex Machina

Thunderbird verfügt seit vielen Versionen über eine globale Suche. Unter Umständen kann es passieren das diese Suche nicht mehr richtig funktioniert. Dies äußert sich in einer langsamen Suche oder dadurch das, sobald man Suchergebnisse aufruft, diese nicht mehr existent sind. Um diese Fehler zu beheben muss der globale Index neu aufgebaut werden. Dazu muss Thunderbird beendet werden und der Profil-Ordner aufgesucht werden. Je nach Betriebssystem liegt dieser in unterschiedlichen Ordnern:

Linux: ~/.thunderbird/xxx.default
macOS: ~/Library/Thunderbird/Profiles/xxxxxxxx.default/
Windows 2000/XP: C:\Dokumente und Einstellungen\%Benutzername%\Anwendungsdaten\Thunderbird\Profiles\xxx.default
Windows Vista/7; C:\User\%Nutzername%\AppData\Roaming\Thunderbird\Profiles\xxx.default

Im Profilordner befindet sich eine Datei mit dem Namen global-messages-db.sqlite. Diese Datei musst gelöscht werden. Anschließend kann Thunderbird wieder gestartet werden. Der Indizierungsvorgang wird dann neu begonnen. Den aktuellen Fortschritt der Indizierung kann unter Extras -> Aktivitäten angesehen werden. Je nach Größe des Profils kann die Neuindizierung einige Zeit in Anspruch nehmen.

Manchmal ist man als Entwickler auf der Suche nach einem Stück Quellcode. Die Gründe dafür sind vielfältig und natürlich kann man für diesen Zweck die Suchfunktionen einzelner Portale wie GitHub und Co. nutzen um den gewünschten Quelltext zu finden.

searchcode in Aktion

Einfacher wird das ganze mittels searchcode.com, einer Quelltextsuchmaschine. Bei searchcode, werden nach eigenen Angaben, über sieben Millionen Projekte verschiedenster Plattformen durchsucht. Für den Gebrauch in Firmen, welche natürlich auch private Repositories betreiben, gibt es searchcode dabei auch als Lösung zum selberhosten. Der Quelltext von searchcode ist auf GitHub zu finden. Zu beachten ist hierbei, das es sich um keine freie Software handelt und man damit die Lizenzbedingungen bei der Eigennutzung des Servers genau lesen sollte.

Wer kennt das nicht, man hat zwei Begriffe und versucht nun heraus zu finden welcher der beiden Begriffe der korrekte Begriff ist. Oder man möchte wissen welche Technologie, Cartonfigur, Müslimarke, et cetera, beliebter ist. Der einfachste Weg solche Fragen zu beantworten ist es die jeweiligen Begriffe bei Google zu suchen und sich die Anzahl er Ergebnisse anzuschauen.

Google Fight - HTTP vs. HTTPS

Google Fight – HTTP vs. HTTPS

Noch einfacher geht das ganze mit der Webseite Google Fight – hier werden zwei Begriffe eingegeben und anschließend berechnet die Seite, welcher Begriff gewonnen hat. Die Berechnung basiert dabei auf der Sichtbarkeit der eingegebenen Begriffe.

Den freien Suchserver Elasticsearch kann man, wie das Wort Suchserver es dezent andeutet, als Server betreiben. Allerdings ist es manchmal nicht gewünscht einen dedizierter Server zu betreiben. In einem solchen Fall kann man den Elasticsearch-Server in eine Java-Applikation einbetten. Der sicherlich häufigste Fall für eine solche Einbettung ist dabei die Nutzung zu Testzwecken (z.B. Unit-Tests zum Test der Suchergebnisse). Im ersten Schritt sollte in das Java-Projekt die entsprechende Abhängigkeit zum Projekt hinzugefügt werden. In diesem Beispiel wird dabei auf einem auf Maven basierenden Projekt ausgegangen – in diesem muss die pom.xml entsprechend erweitert werden:

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>2.3.4</version>
</dependency>

Damit wurde Elasticsearch dem Projekt hinzugefügt. Nun muss der eigentliche Server im Java-Projekt gestartet werden. Dafür werden nur wenige Zeilen Quellcode benötigt:

Settings.Builder elasticsearchSettings = Settings.settingsBuilder()
    .put("http.enabled", "true")
    .put("path.data", "data")
    .put("path.home", "home");

Node node = nodeBuilder()
    .local(true)
    .settings(elasticsearchSettings.build())
    .node();

In diesem Beispiel werden im ersten Schritt die Einstellungen für Elasticsearch definiert. Dabei wird unter anderem der HTTP-Modus aktiviert. Wenn dieser deaktiviert ist, ist die Kommunikation per HTTP nicht mehr möglich. Stattdessen kann dann nur noch die Kommunikation über das Transport-Interface genutzt werden. Dieses Interface wird im Normalfall für die interne Kommunikationen zwischen einzelnen Elasticsearch-Clustern genutzt – allerdings ist eine Nutzung mit dem Elasticsearch-Java-Client ebenfalls möglich. Mit dem aktivierten Modus, ist die Entwicklung einfacher (z.B. für den Einsatz von Analyse-Tools) und die Konfiguration näher an der Praxis. Standardmäßig horcht der Elasticsearch-Server dabei auf dem Port 9200 – in diesem Beispiel wäre er über die URL:

http://localhost:9200

erreichbar. Nachdem die Einstellungen angelegt wurden, werden diese dem NodeBuilder übergeben, welcher schlussendlich den Elasticsearch-Server hochfährt. Nachdem dieser hochgefahren wurde, kann die Nutzung des selben beginnen.

Möchte man unter Mac OS X doppelte Dateien finden, hat man eine Reihe von Möglichkeiten. Bevorzugt man freie Software, so bietet sich die Software dupeGuru an. Neben der normalen Suche nach Dateiduplikaten, gibt es auch Versionen für Bilder und Musik. Zur Duplikatssuche gibt man der Applikation einfach einen Ordner an und schon werden die Duplikate gesucht und anschließend angezeigt, so das sie auf Wunsch gelöscht werden können.

Das Auswahlfenster von dupeGuru

Das Auswahlfenster von dupeGuru

Lizenziert ist dupeGuru unter der GPL3 – der Quelltext findet sich auf GitHub. Alternative Möglichkeiten wären unter anderem die (unfreie) App Gemini, welche im Appstore zu finden ist.

Die App konnte im App Store nicht gefunden werden. 🙁