Es sind die kleinen Dinge im Leben, die Freude bereiten:

less +F /var/log/syslog

Das funktioniert erstmal ähnlich wie ein tail -f, nur dass nicht die letzten 10 Zeilen der Datei angezeigt werden sondern ‚der letzte Bildschirm voll‘. In der letzten Zeile verrät ein freundliches Waiting for data… (interrupt to abort) was passiert: neuer Inhalt in der Datei wird sofort dargestellt. Der große Vorteil gegenüber tail: nach dem geforderten Interrupt (also CTRL-C) hat man die Datei direkt ganz normal im less offen, kann also beliebig nach Inhalten suchen oder hoch und runter scrollen.

Kurz gesagt: es geht nicht. :-(

Zumindest nicht wenn man den Anspruch erhebt auch etwas finden zu wollen. ;-)

Die Langversion: Bei der Arbeit bin ich einfacher Benutzer. Kein Administrator. Zumindest nicht auf meinem Arbeitsplatzrechner, einem PC mit Windows XP. Das Ding hat mich schon eine Menge Nerven gekostet, aber das Heute schlägt dem Fass die Krone ins Gesicht.

Vor ein paar Jahren habe ich mich damit abfinden müssen dass ich mit dem Explorer nicht im Inhalt von Dateien suchen kann. Zumindest nicht in irgendwelchen dahergelaufenen Dateien. Ich hatte einen Verzeichnisbaum voll mit PHP-Sourcen, und ich wollte die Datei finden in der eine bestimmte Meldung ausgegeben wird. Ein Fall für grep -r "Meldung" * — auf jedem nicht-Windows zumindest.

Windows sucht — wenn ich mich recht erinnere — erstmal nur in indizierten Dateien. Nach längerer Suche hat mir ein automatisch übersetzter Artikel in der Knowledge Base etwas in der Art „schalt die Indizierung ab, dann funktioniert das auch mit Dateien deren Endung Windows nicht kennt“ gesagt. Einschliesslich einer Anleitung wo der erforderliche Haken versteckt ist. Bei mir war der Haken aber ausgegraut, ich schätze dass das ein fürsorglicher Administrator für mich erledigt hat. Ergo: suchen per Explorer habe ich mir abgewöhnt.

Stattdessen an der Kommandozeile findstr aufgerufen. Das geht zur Not sogar rekursiv, hat mir damals also den Weg zur gesuchten Datei gezeigt.

Heute hat mich aber auch findstr enttäuscht:

findstr findet nichts

findstr findet nichts

Wir sehen eine Textdatei mit einer Zeile Text. Mit findstr kann ich offenbar nicht nach einem Wort suchen. Ein Kollege empfiehlt find. OK, solange ich nicht nach Mustern suchen will klappt das offenbar. Aber was ist das? Wenn ich nach einzelnen Buchstaben suche findet auch findstr etwas! Allerdings mit komischen Zeichen dazwischen…

Sowohl type und find an der Kommandozeile, als auch Notepad und Wordpad können mir den Inhalt der Datei sauber anzeigen. Nur halt findstr nicht.

Aber die komischen Zeichen sind ein Hinweis: mit Vim (ohne den würde ich eingehen) finde ich heraus dass das Fileencoding dieser Datei utf-16le ist. Keine Ahnung wie es dazu gekommen ist, ich bin mir sicher dass ich die Datei mit Bordmitteln erstellt habe. Ursprünglich war das eine RDP-Datei, mit der ich direkt die Verbindung zu einem bestimmten Rechner starten kann.

Fazit: findstr ist auch keine Lösung. Solange ich nichts spezielles will (z. B. nach Mustern suchen. Oder rekursiv in Verzeichnissen. Oder in Datenströmen.) scheint find den Dienst zu tun.

In diesem Fall hat mir Vim das Encoding verraten. Unter Linux hätte es wahrscheinlich auch ein file getan (ungetestet). Wie finde ich eigentlich unter Windows das Encoding einer Textdatei heraus?

Ich wurde gefragt welche Anwendungen ich denn so auf meinem Android-Telefon habe. Das Handy ist ein HTC Desire, gerooted und mit einem GingerVillain als Distribution. Vielleicht kann ja noch wer Anregungen aus meiner Antwort ziehen, daher hier mal öffentlich eine Liste. Unvollständig, aber diese Programme nutze ich mehr oder weniger regelmäßig. Bislang bin ich absolut zufrieden mit den kostenlosen Programmen, ich hatte noch keinen Grund im Market Geld auszugeben.

Must Have

Nice To Have

Ich bin immer dankbar für Verbesserungsvorschläge. Oder für ähnliche Listen von anderen Benutzern, aus denen ich vielleicht auch noch Anregungen ziehen kann. Her damit!

Arch Linux

Arch Linux

Nein, ich nutze Arch Linux noch keine zehn Jahre. Aber sieben sind es jetzt doch schon. Das Projekt ist Vorgestern zehn Jahre alt geworden, und ich nutze die Gelegenheit mal um mich öffentlich zu bedanken.

Arch ist für mich die ideale Arbeitsplatzdistribution: schlank, aktuell und flexibel. Die eigentliche Distribution ist verhältnismäßig dünn mit Paketen ausgestattet. Dafür gibt es aber das Arch User Repository (AUR), und da findet man praktisch alles. In den sieben Jahren ist es mir nur einmal passiert dass ich etwas haben wollte was es da nicht gab, und an der Stelle freut man sich dann darüber wie einfach es ist, sich in Arch ein eigenes Paket zu bauen. Dafür sind keine komplizierten Spec-Dateien erforderlich, man schreibt lediglich einen kurzen Fetzen Shell.

Vor Arch hatte ich Gentoo auf meinem Arbeitsplatz, da ist mir aber irgendwann die ständige Compiliererei auf den Keks gegangen. Davor war es Debian Unstable. Das ist stabiler als der Name vermuten lässt, aber irgendwann bin ich in der bekannten Abhängigkeitshölle gelandet. Und das Debian Stable davor ist zwar immer noch meine erste Wahl auf Servern aller Art, macht aber auf dem Desktop keinen Spass wenn man auch mal aktuellere Software haben möchte.

Sicher ist Arch nicht jedermanns Sache. Ich würde das niemandem empfehlen der nicht die Absicht oder die Möglichkeit hat sich intensiv mit seinem System zu beschäftigen. In anderen Distributionen funktionieren viele Dinge ‚out of the box‘ für die man in Arch erstmal Doku und den Vi bemühen muss. Das mag nicht jeder, und das kann ich gut verstehen. Ich weiß aber dass ich gerade durch diese Eigenart eine Menge über mein System gelernt habe. Und ich werde durch ein System belohnt das ohne großen Paket-Overhead auskommt. Ich muss weder Gnome, noch KDE oder deren aufgeblähte Anwendungen installieren. Auch kein anderes Desktop Environment, das ich eh nicht brauchen würde. Dafür kann ich trotzdem auch exotischere Anwendungen benutzen ohne dafür meine Distribution verbiegen zu müssen. Und dank der Rolling Releases bin ich auch immer halbwegs auf dem Stand der Technik.

Ach ja, Releases: obwohl ich zwischendurch auch mal längere Zeit keine Updates eingespielt hatte, konnte ich meine Installation über mehrere Hardwaregenerationen weiterbetreiben, ohne alles neu aufsetzen zu müssen. Erst vor drei Monaten habe ich auf für mein neues Notebook Tabula Rasa gemacht: für 4GB RAM musste ich dann doch auf 64 Bit umsteigen, und das geht nur sinnvoll mit Neuinstallation.

Genug der Lobhudelei, ich bin weiterhin überzeugt dass Arch genau das richtige für mich ist, und ich dadurch in den Genuss einer Menge Vorzüge komme.

Und dafür danke ich dem Projekt: Danke! :-)

Octopart

Octopart

Vor ein paar Wochen habe ich mal Ordnung in meine Elektronik-Bauteile gebracht und alles in einem Partkeepr erfasst (ich schrieb ja schon mal dass ich den interessant finde). Da hätte ich Octopart gut brauchen können.

Das ist eine Suchmaschine für elektronische Bauteile. Man gibt einfach den Hersteller oder die Bezeichnung ein, und das Ding liefert einem alle Infos die man braucht: wo man die Dinger einkaufen kann ist für Privatnutzer vielleicht zweitrangig, aber die Kurzbeschreibungen und vor allem die Datenblätter sind unter Umständen Gold wert. Auch die Tatsache dass man ähnliche Bauteile vorgeschlagen kriegt, oder dass Synonyme aufgezählt werden unter denen man eventuell findet was man braucht.

Hier zum Beispiel mal eine Suche nach der Echtzeituhr die ich in meinem Aquariencomputer verbaut hatte: DS1307.

Sehr cooles Werkzeug!

Jetzt muss ich mal überlegen ob man das vielleicht sogar direkt mit dem Partkeepr verheiraten kann…

Interessant, was da bei Heise steht: der Softwarehersteller Symantec warnt vor der Benutzung eines seiner Produkte, weil vor sieben Jahren jemand die Sourcen gesehen kopiert hat. Es geht ausgerechnet um pcAnywhere, ein Fernwartungs- oder Fernsteuer-Tool für Windows-Rechner.

Folgendes lese ich aus dem Artikel:

  • Bekannte Quelltexte bedeuten in den Augen von Symantec ein Sicherheitsrisiko. Offenbar besteht Sicherheit in dem Fall nur theoretisch: nur weil ein Angreifer den Algorithmus kennt darf der IMHO nicht als kompromittiert gelten. Security by Obscurity funktioniert nicht.
  • Es gibt Sicherheitsprobleme (‚bekannte Schwachstellen‘), offenbar schon seit mindestens sechs Jahren.
  • Die bekannten Löcher sollen jetzt Schritt für Schritt ausgemerzt werden. Jetzt. Schritt für Schritt.

Muss ich mir jetzt Sorgen um die Sicherheit meiner Rechner machen? Immerhin ist da fast ausschliesslich Software im Einsatz bei der Hinz und Kunz die Sourcen lesen können… 8-O

Ich glaube nicht. Zumindest nicht mehr als sonst: natürlich gibt es auch bei Open Source Software immer mal wieder Sicherheitsschwankungen, teilweise sogar drastisch. Aber freie Entwickler müssen sich wirklich Gedanken um Sicherheit machen, da sie sich im klaren sein müssen dass jeder die Quellen sehen kann. Wenn man da auf solche Obscurity-Tricks setzt versaut man sich sehr schnell den Ruf.

Oh, und ich kann es mir nicht verkneifen: nicht-Windows-Betriebssysteme geben einem ausreichend Handwerkszeug um sie zu administrieren und zu benutzen. Auch remote, und wenn es sein muss sogar grafisch. Da muss man kein Geld für ein Tool wie pcAnywhere rauswerfen… :-P

Mal wieder ein versuchter Zugriff auf Euer Know-How: ich wurde gefragt ob es ein Tool gibt mit dem ich den CPU-Verbrauch eines Programmes messen kann. Also nicht beobachtend wie top oder als Momentaufnahme (das geht glaube ich irgendwie mit ps), sondern mehr so wie mit time: ich starte mein Programm mit $toolname $programmname, und nach Abschluss erhalte ich eine Angabe darüber wie viel CPU-Last das Programm tatsächlich erzeugt hat.

Die Laufzeit mit time zu messen ist zwar ein Ansatz, allerdings ist die Ausgabe wohl stark davon abhängig was sonst auf meiner Maschine los ist.

Nach einer kleineren Google-Orgie bin ich um folgendes schlauer, vielleicht ist das sachdienlich: der Kernel misst CPU-Zeit in sogenannten Jiffies. Ein Jiffy ist auf einem System immer gleich lang (typischerweise 1/100 oder 1/250 Sekunde) und stellt praktisch eine Zeitscheibe dar die der Kernel auf einen Prozess verwendet. Man kann im /proc-Dateisystem nachsehen wie viele Jiffies ein Prozess bis dato verbraucht hat. Allerdings nur so lange der Prozess auch noch läuft.

Was ich suche ist also praktisch ein Tool das mir nach Beendigung meines Programms sagt wie viele Jiffies es gebraucht hat. Oder so. Gibt es das irgendwo fertig? Oder suche ich eigentlich was völlig anderes?

Gerade habe ich ein Plugin installiert das für einen schmalen Fußabdruck sorgt wenn man sich den Blog mit einem mobilen Gerät ansieht. Bitte die Hand heben falls es damit Probleme geben sollte.

Ausprobiert hatte ich erst das WordPress Mobile Pack, und das hatte mich fatalerweise fast zufrieden gestellt. Nachdem ich keine fertige Übersetzung der Themes finden konnte, und gerade mal keine Lust hatte da selbst Hand anzulegen, habe ich mich dann doch noch etwas umgesehen. Glücklicherweise: WP Mobile Detector hat nicht nur eine fertige Internationalisierung, sondern auch bedeutend schickere Themes. Und weniger sonstigen Firlefanz, den man eigentlich eh nicht braucht.