Eine interessante kleine Aufgabenstellung: ein Skript hat versehentlich tausende von Dateien mit einer verkehrten Extension generiert. Alle Dateien heissen .jpgjpg statt einfach nur .jpg. Gestandene Shell-Benutzer reparieren sowas natürlich mit einem formschönen Einzeiler. Das ist einfach, und eigentlich lohnt es sich nicht da lange drüber nachzudenken. Es sei denn man kommt auf die Idee, das zeitlich zu optimieren…

Im konkreten Fall — es geht um etwa 6000 Dateien — dauert die Optimierung länger als das was an Laufzeitgewinn rauskommt. Wenn wir also schon keine Zeit gewinnen, dann wenigstens Erkenntnis. :-)

Also, mein erster Ansatz ist es intuitiv, alle Dateien zu suchen, für jede Datei den neuen Namen festzulegen und dann umzubenennen. Machen wir eine Trockenübung bei laufender Stopuhr:

Das führt zu einer Laufzeit von erstaunlichen 21,443 Sekunden!

Halbwegs moderne Shells wie die Bash beherrschen Stringmanipulation, dazu muss man nicht zwingend auf sed zurückgreifen. Im TLDP steht wie es geht, so finde ich dort unter ‚Substring Removal‘ den richtigen Ansatz:

Das drückt die Zeit für die gleichen Testdaten schon auf 0,811 Sekunden. Soweit ich weiss haben wir uns damit zwar einen Bashismus eingehandelt, aber das ist heutzutage vielleicht schon egal.

Wenn wir aber schon Kompatibilität aufgeben können wir — schliesslich sind wir in einer hochmodernen Zsh — gleich in die Vollen gehen:

Ich habe noch nie rekursives Globbing (die zsh-lovers-Manpage hat mir verraten wie das geht) benutzt, aber nach nur 0,165 Sekunden war klar: es funktioniert. :-)

Oh, da man hier auch denken könnte dass das Betriebssystem den Dateibaum cached: nein, das ist nicht so. Wenn ich die Einzeiler mehrfach absetze, auch in anderen Reihenfolgen, kommen immer wieder vergleichbare Ergebnisse raus.

Da die effizienteste Methode auch gleichzeitig die am schnellsten zu tippende ist denke ich, dass die — wenn ich auswendig gewusst hätte wie das geht — in jeder Hinsicht die erste Wahl gewesen wäre. Aber ich kenne mich: wenn ich das ein paar Tage nicht benutze muss ich erst wieder recherchieren. Und dann falle ich doch wieder auf das bewährte sed zurück…

Ich habe beim Relaunch der Schatenseite einige Beiträge aus dem alten Typo3-CMS übernommen. Da die Inhalte vermutlich nicht mehr allzu aktuell sind, sie aber doch nicht ganz verloren gehen sollen, habe ich sie chronologisch halbwegs korrekt in den Blog kopiert.

Vielleicht interessiert es ja wen, hier ist eine Liste:

Ein paar andere Texte der alten Schatenseite konnte ich nicht einsortieren, da sie älter sind als der Blog. Die werden dann einfach demnächst neu veröffentlicht.

Ein letzter Blick zurück

Ein letzter Blick zurück

Bis vorhin lief die Schatenseite — also die eigentliche Homepage — mit dem Content Management System Typo3. Ich habe das vor etwa zwölf Jahren eingerichtet, und ich bin immer noch überzeugt davon dass man damit tolle Seiten bauen kann. Leider erfordert die Pflege einer Typo3-Seite mehr Engagement als ich zur Zeit zu investieren bereit bin. Abgesehen davon war Typo3 immer schon einige Nummern zu groß für diese Seite, aber das war mir eigentlich schon damals während der Installation klar. :-D

Meinen Blog betreibe ich seit 2004, und eigentlich passen die meisten Sachen die ich schreibe eh besser in dieses Format. So können auch alte Projekte in Ruhe ‚rausfaden‘, ohne dass ich sie offline nehmen muss. Also habe ich den Blog auf die Hauptseite verschoben. Einige Teile der alten Homepage wollte ich auch nicht verlieren, also habe ich die Inhalte in den Blog übernommen. Dabei habe ich versucht, alles chronologisch korrekt einzusortieren, Artikel die ich 2006 auf die Schatenseite geschrieben habe erscheinen also hier im Blog auch in 2006. Auf der Startseite habe ich jetzt einen Beitrag angeheftet in dem ich auf die interessantesten Projekte verweise.

Vor Ewigkeiten habe ich mal einen weisen Satz gehört, leider weiss ich nicht mehr von wem:

Wichtige URLs ändern sich nicht.

Ich habe versucht, das bei diesem Neustart zu berücksichtigen. So sollten einerseits die wichtigsten URLs der alten Typo3-Seite zu den entsprechenden Beiträgen im Blog weiterleiten. Und andererseits sind unter der alten Blog-Subdomain Weiterleitungen auf die Hauptseite. Im Wesentlichen sollten also alle Links und Feeds noch sinnvoll funktionieren. Wer mich verlinkt hat, und insbesondere wer den Feed abonniert hat mag vielleicht mal die URL überprüfen. Bis auf weiteres werde ich die Weiterleitungen installiert lassen, aber wer weiss was die Zukunft bringt…

Noch eine Neuerung habe ich direkt mit einfliessen lassen: Teile der alten Homepage hatte ich auch schon in — mein gebrochenes — Englisch übersetzt. Das will ich in Zukunft noch ausbauen, also betreibe ich auch den Blog jetzt zweisprachig. Nicht für alle Beiträge, allerdings. Mir gefällt wie WordPress das in Verbindung mit dem Polylang-Plugin handhabt. Ich kann mir selbst überlegen was ich übersetzen möchte, und wer nur des englischen mächtig kann sich eine vollständig angelsächsische Seite ansehen.

Ich würde mich freuen zu erfahren was Ihr über den Umbau denkt. Insbesondere natürlich, wenn irgendwas noch nicht ganz funktioniert. Sieht die Seite bei Euch OK aus? Funktionieren die Feeds noch?

Kaputtes THL5000 und Ersatzdisplay

Kaputtes THL5000 und Ersatzdisplay

Vor ein paar Tagen ist mir erstmalig ein Telefon so hart auf den Boden gefallen dass die Scheibe gebrochen ist. Oft lasse ich die Dinger eh nicht fallen, aber bislang hatte ich Glück. Diesmal nicht.

Getroffen hat es mein chinesisches THL5000. Gekauft habe ich das Ding vor etwa einem halben Jahr. Neu für 180 Euro, mit Lieferung aus Deutschland. Kurz zum Gerät: es ist — wie der Preis nahelegt — nicht das luxuriöseste Gerät am Markt. Es hat auch gravierende Schwächen. Für mich ist es zum Beispiel nervig dass das GPS nur für eine ganz grobe Abschätzung der Situation taugt. Autonavigation macht damit definitiv keinen Spaß, dazu benutze ich einen separaten GPS-Empfänger der per Bluetooth mit dem Handy spricht. Und dass es kein Android 5 gibt ist auch nicht schön.

Andererseits gibt es aber auch Lichtblicke: eine Reihe unterschiedlicher ROMs aus denen man aussuchen kann, eine anständige Ausstattung, zwei SIM- und ein SD-Slot, und vor allem: ein 5000MAh-Akku! Und auch nach einem halben Jahr zweifele ich nicht daran dass das Ding wirklich die volle Leistung bringt. Nach einem Tag normaler Benutzung habe ich den Akku oft noch bei 70%, das war ich von meinem Nexus 4 nicht mehr gewohnt… Oh, und die Abkürzung THL steht für Technology Happy Life, das darf man auch nicht außen vor lassen. :-)

Wie auch immer: es ist runtergefallen. Scheibe kaputt, Touch ging nicht mehr. Ein schneller Vergleich hat ergeben dass mich kein aktuelles Handy so sehr fasziniert dass ich vom THL wechseln wollen würde. Also musste ein Ersatzteil her. Dummerweise ist das nicht billig. Digitizer und LCD sind eine Einheit, dass das Ding Full HD anzeigt macht es nicht preiswerter. So ruft der Hersteller knapp 80 Euro auf, mit Schnellversand waren es dann etwa 95 Euro. Drei Tage musste ich warten, dann war die Post aus Hong Kong da. Ich hatte darum gebeten dass mir auch passende Kleber eingepackt werden, wie man auf dem Bild sieht waren die auch dabei. Sehr guter Service!

Erfolg -- und das Werkzeug

Erfolg — und das Werkzeug

Dank einer wirklich guten Anleitung auf chinamobiles.org war der Einbau kein Problem. Ich habe mir da vorher Sorgen gemacht, da ich sowas noch nie gemacht habe. Zu unrecht, wie sich rausgestellt hat. Nach knapp 90 Minuten Gefummel sah das Handy aus wie neu, und: es funktioniert sogar wieder. :-D

Außer dem Werkzeug das auf dem Foto zu sehen ist habe ich nur einen Föhn gebraucht, um den alten Kleber etwas zur Nachgiebigkeit zu überreden. Ich frage mich jetzt zwar ob der Wechsel bei diesem Modell einfacher ist als bei anderen, oder schwieriger. Aber auf jeden Fall werde ich in Zukunft weniger Angst davor haben so ein Ding selbst zu zerlegen. Gut so.