Ubuntu Unity Menu style für Qt Programme

Ubuntu und die globale Menubar in Unity – ich mag sie. Die alte Begründung – schneller Navigation durch Menübar on Top – gilt immer noch.

QtCreator 4.2.1
QtCreator integrated into Ubuntu’s menubar

Aber nicht immer spielen alle mit. Qt Programme die über Ubuntu’s Paketmanagement laufen, stellen kein Problem dar. Vor kurzem installierte ich allerdings ein eigenes Qt, bei dem dann prompt die Menu’s nicht mehr on Top, sondern altbacken am MainWindow plaziert waren.

Der Grund ist – dass die Qt SDK über den Online-Installer fertig kompilierte binaries (=libraries) für Linux 64bit lieferte.

Wenn man allerdings die Qt SDK selber kompiliert – was übrigens durch die filigrane configure Steuerung auch Sinn macht, sofern man eine eigene Qt Version möchte – gibt es keine Probleme. Irgendwo in den Untiefen des X-Systems (package appmenu-qt5) scheint es eine Ubuntu-modifizierte Komponente zu geben, gegen die man linkt um das globale Menu zu erhalten. Allerdings nimmt die lokale Qt-Installation (Sourcen, Kompilate und fertige Binaries) sehr viel Speicher in Beschlag – bspw. umfasst mein Ordner qt-everywhere-opensource-src-5.8.0 nach erfolgreichem Kompilieren immerhin 21GB!

Das gleiche Phänoment kann man auch mit 3rd party Qt Applikationen beobachten – linken sie gegen die Qt-Systemlibraries hat man das globale Menü – liefern sie eigene Qt-Bibliotheken mit, gibt es kein globales Menü.

Integrierte Versionskontrolle in LibreOffice Writer

Wie oft hörte ich schon die Aussage, dass Microsoft Word besser sei als LibreOffice / OpenOffice Writer, ganz einfach wegen dem erweiterten Funktionsumfang. Eine Rückfrage welches Feature denn in den Open Source Textprogrammen fehle, kam eigentlich nie etwas konkretes zurück – man hat es halt im „Bauchgefühl“.
Das soll nicht heißen, dass es nicht doch Features gibt die in Word implementiert sind und in LibreOffice bspw. fehlen. Den allermeisten Usern wird und würde das ganz sicher nicht auffallen.

Mir ist aber aufgefallen, dass wohl nur LibreOffice (ev. auch OpenOffice?) eine integrierte Versionskontrolle hat, während die neueren Word Versionen dieses Feature nicht (mehr) besitzen. Das ist bei Textdokumenten gar nicht so unnütz, denn die üblichen Versionskontrollsysteme aus dem Reich der SW-Entwicklung, können mit Binärdaten nicht effizient umgehen. Es fehlen v.a. Vergleichsprogramme, die für Klartextdateien (z.B. Quellcode in großer Anzahl zur Verfügung stehen). Und wer Sharepoint schon einmal benutzten durfte, der sieht vor allem wie man es nicht machen sollte.

Das Versionskontrollkonzept in LibreOffice Writer ist einfach zu durchschauen und zu bedienen. Standardmäßig wird nur dann eine Version revisioniert, wenn man es in dem folgenden Dialog tatsächlich mit Neue Version Speichern anfordert. Alle Revisionen lassen sich später direkt öffnen oder untereinander vergleichen. Ein Blick auf die Dateigrößen verrät, dass es sich intern um sog. „billige Kopien“ handelt, dass bedeutet, dass der Speicherplatz mit einer neuen Version nur geringfügig ansteigt.

Versionskontrolldialog
Versionskontrolldialog in LibreOffice Writer

POPM – Song Rating in ID3v2 eingebettet

Prinzipiell bin ich ein großer Fan von der Technik, möglichst alle Metadaten eines Songs direkt in diesen einzubetten. Dazu gehört nicht nur Artist, Title, Erscheingungsjahr, usw., sondern auch Cover und eventuell auch der Songtext.
Da dies über die letzten 10 Jahre gut funktionierte und die (Lese-) Unterstützung von Programmen sich stetig verbesserte wagte ich einen Anlauf das Song-Rating einzubetten, um bei verschiedensten Playern schneller zu meinen Lieblingssongs zu kommen (Stichwort: POPM frame in ID3v2)

Auch wenn der Ansatz valide ist – der grundlegende Gedankenfehler ist, dass diese Information im Gegensatz zu allen anderen nicht mehr objektiv, sondern subjektiv ist. Spätestens wenn man die Musiklieder in der Familie teilt, kommt es zu „Inkonsistenzen“.

Die Kurzfassung – mein zukünftiger Ansatz – ist es auf diese Möglichkeit zu verzichten und möglichst nur noch einen plattformübergreifenden Musicplayer zu verwenden, in meinem Fall KODI, dessen Datenbank pro User aufgebaut werden kann und auf die wiederum unterschiedlichste Instanzen (von verschiedenen Computern) zugreifen können. KODI – wie fast alle anderen Player oder Mediazentralen auch – die Bewertung in die Datenbank.

Natürlich gibt es auch eine Langfassung des Themas und die ganze Story liest sich folgendermaßen:
Der ID3v2 Standard sieht im POPM frame vor, neben einem Rating, dass von 1 (worst) bis 255 (best) reicht, eine Email Adresse voranzustellen um das Rating einem User zuzuordnen, was bedeutet, dass es dort mehrere Einträge geben könnte.

Leider ist mir bis heute kein einziges Programm bekannt, dass diese Zuordnung zu einem User lesen, geschweige denn schreiben könnte. Es würde auch bedeuten, dass eine Personalisierung durch die Email Adresse den Programmen bekannt sein müsste.

Diesen Ansatz kann man also zumindest heute, wahrscheinlich auch zukünftig, vergessen. Viele Player können hingegen den POPM frame auslesen, darunter KODI, iTunes und Windows Media Player, u.v.m.
Hier kommt allerdings schon das nächste Problem – fast alle Programme haben ein 0-5 Star Rating System implementiert, auf das der POPM Wert von 1-255 umgerechnet werden muss. Und genau verhält sich im Detail bspw. KODI (orientiert sich an MediaMonkey) anders als Windows Media Player (Einzelheiten siehe hier). Ganz aus der Reihe tanzt iTunes, welches ein Rating Wert von 0 (worst) bis 100(best) erwartet. Würde man daher für iTunes taggen, könnte man die dargestellte Bewertung bei fast allen anderen Playern vergessen.

Allerdings muss man erstmal ein Programm finden, welche die vergebene Bewertung (1-5 Stars) dann in die ID3v2 Metainformationen reinschreibt (anstatt in eine separate Datenbank wie bspw. Kodi). Aus gutem Grund macht das fast kein Programm. Der Windows Explorer neuerer Bauart scheint es wohl zu machen und hält sich wie üblich überhaupt nicht an die Spezifikation, denn das für die Email Adresse vorhergesehene Feld lautet („Windows Media Player 9 Series„).
Ein sehr gutes Programm zum Erstellen von ID3v2 Informationen ist definitiv Jaikoz. Dieses Schweizer Taschenmesser kann alles – auch POPM schreiben und bietet im Einstellungsdialog gleich ein Auswahlfeld an für welche „Ratingphilosophie“ man sich entscheiden möchte.

Einstellungsdialog_Jaikoz

Lässt man die Standardeinstellung iTunes, so wird der POPM frame folgendermaßen erzeugt.

POPM (Popularimeter): no@email, counter=0 rating=100

Bei der Einstellung MusicMonkey sieht es hingegegen folgendermaßen aus:

POPM (Popularimeter): no@email, counter=0 rating=255

Die Ausgabe wurde mittels dem Linux Kommandozeilentool id3v2 erstellt. Auch hier wird übrigens die Email Adresse zur User Identifizierung ad absurdum geführt – allerdings spezifikationsgemäß 🙂
Es kann nochmal in aller Pracht bewundert werden, welche Grube man sich gräbt, wenn man sich auf das Schreiben von POPM frames einlässt. Besser man lässt die Finger davon.

PDF Dateien von MS Word und die falsche Schriftarten

Text_if_Arial_is_installed_on_Linux

Seitdem MS Word die Option anbietet Dateien auch als .pdf Datei zu speichern, treten vermehrt Anzeigeprobleme zu Tage. Um genau zu sein: Auf Plattformen, welche die typischen MS FontsArial und Times New Roman nicht installiert haben.

Text_if_no_Arial_is_installed_on_Linux

So ergibt sich in diesen Fällen aus einem einfachen Text, der in der Schriftart Arial geschrieben wurde, ein ziemlich anderes Erscheinungsbild auf dem Adobe Reader unter Linux oder Solaris

ActualFont in Adobe Reader if no Arial is installed

Der Grund dafür ist, dass die Speichern unter.. Funktion von MS Word diese Schriftarten nicht einbettet, sondern nur darauf referenziert. Das Anzeigeprogramm muss dann eine Ersetzungstabelle anwenden, bei der die Originalschriftart durch eine – möglichst ähnliche – ersetzt wird. Das dies mit Adobe Sans MM nicht unbedingt gelingt, dürfte bei der obigen Darstellung klar sichtbar sein.

Wir reden übrigens von Einsparung von 50kB. Das ist marginal, vor allem angesichts der Tatsache, dass gerade Microsoft eher als Ressourcenfresser bekannt ist.

Der Grund liegt eher darin, dass die Tradition sich der Interoperabilität zu verschließen, auch heutzutage weitergeführt wird. Glücklicherweise lässt sich das Einbinden der Schriften erzwingen wenn man in den Optionen des Speichern unter.. Dialog den Modus ISO 19005 – PDF/A anwählt. Dieser Standard zur Langzeitarchivierung von pdf Dateien schreibt das Einbetten der Schriften vor.

ActualFont in Adobe Reader on OS X

Unter Mac OS X tritt das Problem nicht auf. Der Grund hierfür ist, dass zwar die Original Truetype Schriftart Arial auch nicht installiert ist, aber sehr wohl die Type 1 Schriftart ArialMT, die Zeichenkompatibel zu der originalen Arial Schriftart ist.

CalibriFont is embedded as a subset

Interessanterweise tritt das Phänomen wirklich nur mit den klassichen MS Fonts auf. Ist der Text mit einem von den neueren, von Microsoft progragierten, Fonts, wie Calibri formatiert wird die Schriftart eingebetten. Zumindest alle Gylphen (Zeichen) die im Text vorkommen, daher Embedded Subset.

Android Updates wann immer Google es will

Screenshot_20161020-211118

 

 

 

Nachdem ich minutenlang auf meinem „intuitiv“ bedienbaren Android Phone gesucht habe, wo man den Automatischen Updates austreibt unter einer nicht-WLAN Verbindung aktiv zu werden, bin ich endlich auf die richtige Einstellungsseite gekommen.

Die Antwort wird einem heutzutage oft nur noch als Video präsentiert, so dass man schon bei der banalsten Frage eine stabile Internet-Verbindung benötigt und gleich zig-Megabyte an Download konsumiert. Immerhin hat Google noch eine textuelle Hilfe für alle die noch Lesen können.

https://support.google.com/googleplay/answer/113412?hl=de

Auch Google schreibt keine guten Anleitungen. Denn um Punkt 3 einzustellen, muss man im Einstellungsmenü erst einmal den Punkt Einstellungen anwählen (man ahnt schon, dass Google gar nicht möchte, dass man hier etwas einstellt – schließlich weiß Google immer alles besser).

 

 

 

 

Screenshot_20161019-192216

 

 

 

 

 

Komischerweise sieht aber mein Datennutzungsverbrauch folgendermaßen aus.

WTF? Tja, es scheint so, dass morgens das Handy bemerkt, dass es (wie jeden Tag) Updates gibt und loslegt. Wenn man aber selber loslegt und das Haus – und damit seinen WLAN Empfangsbereich – verlässt, scheinen die angebrochenen Downloads über die Mobildatenverbindung zu Ende geführt werden. Und so steht man mit 300MB Flat fast jeden Monat dumm da. Google scheint’s egal zu sein.

Ärger mit dem Energiesparmodus auf Android

Jedesmal wenn mein Samsung S6 Edge Handy in den Energiesparmodus (ab 50% Akkukapazität) übergeht entstehen negative Effekte.

Allen voran können manchmal keine Email Nachrichten mehr gesendet werden. Dieser Zustand ist allerdings auch dem windigen Provider O2/Telefónica geschuldet, dessen nicht-LTE-fähige Verbindungen sehr schlecht sind.
Kommt bei über 50% Akkukapazität (kein Energiesparmodus) noch beim Senden einer Email unter schlechten Empfangsbedingungen (bei O2/Telefónica die Regel)

Negative SMTP reply: 421 4.4.2 mail.mnet-online.de

..ist die Meldung bei unter 50% Akkukapazität (Energiesparmodus) dann plötzlich

ErrnoException: isConnected failed: ECONNRE...

..oder..

SSLException: Read error: ssl=0x7f519c3180:..

in diesem Moment funktionierte allerdings auch keine Internetverbindung im Chrome Browser. Dieser meldete beim Zugriffsversuch auf google.de:

"Diese Webseite ist nicht erreichbar. google.de hat die Verbindungs abgelehnt. Versuche Sie Folgendes:
Verbindung prüfen
ERR_CONNECTION_REFUSED

Beim besseren Empfang gibt sich das dann wieder. Nur die nicht gesendeten Emails werden selbst dann nicht mehr gesendet. Ob dies ein spezifisches Problem des K-9 Mailprogramms ist sei dahingestellt.
Auf das Thema hat mich übrigens DavDroid aufmerksam gemacht, dessen letztes Update vorgeschlagen hat sich selber aus dem „Optimierungsmechanismus“ von Android zu entfernen, da dieser eine Synchronisation im Energysparmodus abschaltet.

KODI tipps: Musikleiste permanent einblenden

Nachdem ich nun KODI als Multimediacenter auf einem Mac OS X Betriebssystem dauerhaft etablieren möchte, befasse ich mich nun zwangsläufig öfters mit dieser SW.

Was mich schon recht schnell störte, war bspw. das beim Abspielen von Musik die untere Info-Leiste, die u.a. Cover-Art zeigt, recht schnell verschwindet – unabhängig von der Einstellung
Optionen -> Einstellungen -> Darstellungen -> Bildschirmschoner
Die recht einfache Lösung ist beim Abspielen von Musik die Taste „i“ zu drücken, siehe auch:
http://www.kodinerds.net/index.php/Thread/6870-Jetzt-gespielt-Ansicht-automatisch-einblenden/?pageNo=1

Bei Verwendung der Major-Version 16 empfiehlt es sich dringend auf die Minor-Version 16.1 upzudaten, da 16.0 ein Fehler bei der JSON/RPC Abfrage hat.

persistene Drehung von pdf Seiten

Im Falle von eingescannten Seiten die das Zielformat .pdf bekommen, stimmt manchmal die Ausrichtung nicht – Seiten sind bspw. 180° verdreht.

Relativ leicht passiert es dann, das man die Seiten dreht, das Dokument speichert und sich dann wundert, dass es beim erneuten Öffnen immer noch falsch ausgerichtet ist.

Der Grund dafür ist, dass viele PDF Programme – bspw. PDF Studio oder Master PDF Editor – das Rotieren in zwei Varianten zur Verfügung stellen.

1. Rotieren von Seiten im View Menü
2. Rotieren von Seiten im Documents Menü

Im ersten Fall rotiert man nicht-persistent (auch im Falle einer Speicherung) – nur im zweiten Fall bleibt die Rotation erhalten, sofern man das Dokument tatsächlich speichert.

Ubuntu Update von 12.04(.5) auf 14.04(.3)

Eigentlich war der Plan den 5 jährigen Long Term Support von Ubuntu 12.04 (Precise Pangolin) auf meiner Power-Workstation bis zum Ende auszukosten. Doch das Samsung Handy lies sich auf 12.04 trotz LTSEnablementStack nicht richtig mounten. Auf den neueren Android Handys wird schon seit einiger Zeit der Flash-Speicher nicht mehr als Massenspeicher gemountet, sondern mit dem Media Transfer Protocol (MTP).
Und genau dieses Protokoll verhält sich, zumindest was das Samsung Galaxy S6 angeht, sehr gut bei 14.04 (Trusty Thar) und sehr schlecht (kaum brauchbar) bei 12.04

Nach Abwägung der Alternativen – man hätte auch eine 3rd Party SW für den Zugriff auf das Handy via MTP einsetzen können – habe ich mich dann doch für den Distributionsupgrade auf 14.04 entschieden. Nach Ausführung des Kommandos

sudo do-release-upgrade

und dem Befolgen einiger Anweisungen und Beantworten einiger Fragen wurde das Upgrade in ca. 90min. absolut zuverlässig ausgeführt. Die Art und Weise, sowie die Stabilität erinnert einen sehr stark an Major-Versions Upgrades unter Sun Solaris.
Bei Abweichungen der Standard Konfigurationsfiles im Gegensatz zu den gerade aktuell gültigen kommt die Nachfrage, ob das File ersetzt oder behalten werden soll. Wenn man seine Konfiguration behält wird die neue Standardkonfiguration mit einer Endung a la „.dist“ angelegt, bspw.

/etc/logrotate.de/postgresql-common

wurde behalten, die neue Standardkonfiguration wurde unter

/etc/logrotate.de/postgresql-common.ucf-dist

abgelegt. Im anderen Fall – die aktuelle Konfiguration wurde durch die neue Standardkonfiguration ersetzt, verbleibt die aktuelle im System unter bspw.

/etc/NetworkManager/NetworkManager.conf.dpkg-old

Mit gphoto2 Kameradaten auslesen

Vielleicht für viele Fotofreunde ein alter Hut – ich entdeckte allerdings erst gestern, dass man mit der gphoto2 Applikation unter Linux (auch Mac OS X) einige Daten der digitalen Spiegelreflexkamera auslesen kann, an die man anderweitig nicht so einfach (sprich ohne spezialisierte Tools) herankommt.

Der Befehl

gphoto2 --list-config

lisstet für die angeschlossene (und aktivierte) Kamera alle auslesbaren Optionen an (in einer Art Filestruktur-Nomenklatur). Hier sind 2 Beispiele um die Anzahl der Auslösungen, bzw. die Geräteversion auszulesen

gphoto2 --get-config /main/status/shuttercounter

gphoto2 --get-config /main/status/deviceversion