Firefox: Wechseln zwischen zwei Tabs

Ich bin es aus Opera gewohnt, zwischen zwei Tabs mit Tab+Strg hin- und herwechseln zu können, im Firefox habe ich lange nach dieser Möglichkeit gesucht, hier eine kurze Anleitung, wie das zu erreichen ist:
In der Firefox Adresszeile about:config eingeben, dann nach browser.ctrlTab.previews suchen und den Wert auf true setzen, fertig 🙂
Lösung gefunden auf http://superuser.com

Windows aktualisiert automatisch Verknüpfungen

Hallo Welt,

hier mal ein kleines Windows Mysterium: Ich habe einige Projekte in einer Dropbox, um Ordnung zu schaffen gibt es an mehreren Stellen Verknüpfungen auf bestimmte Ordner. Da Windows in Verknüpfungen keine relativen Pfade erlaubt, habe ich eine Umgebungsvariable %Projekte% eingeführt, die auf den entsprechenden Pfad in der Dropbox verweist, damit auf jedem Rechner mit Zugriff auf die Dropbox die Verknüpfungen funktionieren. Jetzt kam das Problem auf, dass viele der Verknüpfungen automatisch aktualisiert werden und zwar mit dem absoluten Pfad statt dem „getricksten relativen“ Pfad mit der Umgebungsvariable. Nicht auf jedem Rechner ist die Dropbox unter C:\Dropbox zu erreichen, dies ist also ein durchaus nerviges Problemchen. Nach einiger Recherche kann ich nun aber sagen: Das Mysterium der wandelnden Verknüpfungen ist gelöst!^^
Windows überwacht die Ziele von Verknüpfungen (afaik nur in einem NTFS Dateisystem, keine Garantie auf diese Aussage) und sobald sich das Ziel ändert, wird die Verknüpfung entsprechend angepasst. D. h. wenn das Ziel ein Ordner ist, dann wird die Verknüpfung aktualisiert, sobald der Zielordner umbenannt oder verschoben wird und danach das nächste Mal die Verknüpfung benutzt wird. Windows trackt dabei die Zielordner über deren GUID in der Dateitabelle. Das Setzen der Verknüpfungen auf Schreibgeschützt verhindert das Aktualisieren durch Windows.

DynDNS, FreeDNS und Domain24

Seit vielen Jahren habe ich meine Domains bei Domain24 gehostet und meine dynamische IP über DynDNS verwaltet. Letzterer hat seine kostenlosen Accounts vor einiger Zeit umgestellt, so dass der angegebene Host verfällt, wenn man sich nicht alle 30 Tage einmal einloggt. Genau das habe ich leider versäumt, daher war meine Umleitungsadresse (cyberdogs.homeftp.org) plötzlich weg, also musste eine neue her. Da mir DynDNS nicht mehr so gut gefällt, habe ich mich nach Alternativen umgesehen und bin zuletzt bei FreeDNS gelandet. Dieser Anbieter sieht auf den ersten Blick unscheinbar aus, ist aber um vieles besser als DynDNS. Man kann nicht nur kostenlos dynamische IPs verwalten, sondern kann diese auch direkt auf die angemeldete Domain leiten, man muss keinen Umweg gehen, wie bei DynDNS. Um es zu veranschaulichen: Meine Domain ist bei Domain24 gehostet, meine IP wurde bisher von DynDNS verwaltet und auf die Subdomain cyberdogs.homeftp.org geleitet. Meine Domain olaf-roeder.de wurde dann von Domain24 auf cyberdogs.homeftp.org weitergeleitet, so dass entweder alles in einem Frame geladen wurde, oder die andere Adresse sichtbar war, beides nicht so schön, aber es hat funktioniert. Durch FreeDNS kann ich jetzt meine Domain olaf-roeder.de direkt auf meine dynamische IP zeigen lassen, wodurch die bisher unschöne Variante von vorher entfällt.
Ein kleines Problem gab es mit Domain24, um die Weiterleitung auf die von FreeDNS verwaltete IP zu bewerkstelligen, müssen die Nameserver von FreeDNS bei Domain24 angegeben werden, dies hat wegen eines IPv6 Fehlers allerdings nicht funktioniert. Der fähige Support von Domain24 konnte dieses Problem allerdings lösen.
Alles in allem bin ich sehr zufrieden mit FreeDNS, mehr als ich es mit DynDNS je war. Wer also eine Alternative sucht, dem rate ich dazu.

WordPress Permalinks vs. domain24

Ich habe relativ viel Zeit darauf verschwendet zu versuchen, die Permalinkstruktur hübsch zu machen, allerdings ohne Erfolg. Zuerst dachte ich, es liegt daran, dass ich meinen Server „verkonfiguriert“ habe, mittlerweile glaube ich allerdings, dass es an meinem Domainhoster liegt, der die Weiterleitung auf meinen Server via Frame realisiert, statt mit einer echten Weiterleitung. WordPress ist zwar fähig, die Links auf eine Unterordnerstruktur anzupassen, allerdings habe ich durch die Kombination von DynDNS und domain24 zwei verschiedene Domains, das scheint WordPress nicht zu können.

Umstellung auf WordPress

Nachdem ich jetzt lange Zeit alles manuell gemacht habe, habe ich jetzt doch auf WordPress umgestellt, zuerst nur, um es einfach mal auszuprobieren, es gefällt mir allerdings recht gut, so dass ich erst einmal dabei bleiben werde. Alles, was WordPress kann, kann ich auch (und habe ich zu großen Teilen schon selbst gemacht), aber es ist doch recht komfortabel … wenn man es denn endlich mal eingerichtet hat, die Theme-Auswahl fällt recht schwer, aber auch technisch läuft es noch nicht so wie ich will, denn die Umstellung auf meine Domain will einfach nicht richtig funktionieren, da muss ich wohl noch die Ordnerstruktur anpassen, aber das mache ich später, wenn ich die Zeit dazu habe. Alle alten Artikel sind jetzt auch hier zu finden und da es jetzt einfacher, vor allem aber schneller geht, werde ich vielleicht auch etwas öfter schreiben.

WordPress Kopfzeile ändern

Eigentlich ganz einfach, ab in die Einstellungen, Kopfzeile wählen, Bild hochladen und fertig. Aber nicht immer klappt das auf Anhieb, in meinem Fall kam die Meldung:

Bild konnte nicht verarbeitet werden. Bitte gehe zurück und versuche es erneut.

Leider fehlt die Angabe eines Grundes, aber nach etwas längerer Recherche (also länger als die üblichen 5 Minuten) wurde ich dann doch im WordPress-Forum fündig. Um Bilder verarbeiten zu können, muß ein entsprechendes Modul für PHP installiert sein (Quelle).

Ich habe mich für PHP GD entschieden, was auf meinem Ubuntu-Server ganz einfach mit apt-get install php5-gd zu installieren war, danach noch Apache neu starten und es funktioniert.

Google Update Setup funktioniert nicht mehr

Mit dieser Fehlermeldung nerven mich derzeit alle Produkte von Google, wenn ich versuche sie zu installieren, heißt, ich kann kein Google Produkt installieren.

Google Update Setup funktioniert nicht mehr

Google Update Setup funktioniert nicht mehr

Für manche ein Segen, ich aber möchte gerne Earth und Drive haben, also auf an die Fehlersuche.

Nach einigem Googeln stellt sich heraus, dass derzeit (1. Mai 2012) nichts zu diesem Problem zu finden ist. Es gibt viele Anleitungen zum Deinstallieren des Google Update Service, allerdings hilft das nicht, wenn der Service nicht funktioniert. Denn zum Installieren von Google Produkten braucht man entweder diesen Service, oder die komplette Installationsdatei, diese aber wird über den Google Update Service heruntergeladen.

Demnach gibt es zwei Lösungsansätze:

  1. Service reparieren
  2. Installationsdatei nutzen

Um den Service zu reparieren, habe ich ihn komplett aus dem System entfernt und danach neu installiert. Um ihn zu entfernen, reicht es, eine der zuhauf zu findenden Anleitungen zu nutzen. Neu installiert wird der Service ganz einfach durch die Installation eines Google Produkts (in meinem Falle Earth und Drive).

Ist an dieser Stelle der Fehler behoben, viel Spaß mit dem Google Produkt, für mich hieß es allerdings immer noch: Google Update Setup funktioniert nicht mehr. Es muss wohl noch eine andere Fehlerquelle geben, die ich aber nicht gefunden habe.

 

Kommen wir zu Möglichkeit zwei, das Nutzen der Installationsdateien. Klingt ganz einfach, aber wie soll man da ran kommen? Für Google Earth gibt es in den Hilfethemen einen Link dazu, allerdings nicht immer einen aktuellen, für Google Drive ist leider nichts zu finden.

Nach einigem Herumprobieren habe ich herausgefunden, dass der Update Service zumindest im abgesicherten Modus funktioniert, dort allerdings endet es dann beim nicht gestarteten Windows Installationsservice, der sich auch nicht manuell starten lässt (liegt am abgesicherten Modus).

Aber: die Installationsdateien wurden heruntergeladen 🙂

Nach kurzer Suche habe ich sie im Ordner C:Program Files (x86)GoogleUpdateDownload{74AF07D8-FB8F-4D51-8AC7-927721D56EBB}�.0.0.0 (Google Earth) und C:Program Files (x86)GoogleUpdateDownload{3C122445-AECE-4309-90B7-85A6AEF42AC0}�.0.0.0 (Google Drive) gefunden.

Die Ordner mit den geschweiften Klammern mögen auf anderen Systemen anders heißen, einfach den Google/Update/Download Ordner durchforsten.

Nach einem Neustart im normalen Betrieb lassen sich die beiden Programme ganz normal installieren.

 

Möglicherweise können die Dateien auch in temporären Ordnern landen, wenn sie nicht im oben angegebenen Pfad sind, einfach mal Windows/Temp und andere temporäre Ordner durchsuchen. Wer nicht weiß, wo der standard Temp Ordner ist, kann dies herausfinden, indem er echo %TEMP% oder echo %TMP% in die Eingabeaufforderung eintippt.

Fortschritt von LaTex Projekten anschaulich machen

Wenn man längere Texte mit LaTex schreibt und zu unterschiedlichen Zeitpunkten einen Zwischenstand erzeugt, dann kann es oft wünschenswert sein, diesen Zwischenstand mit einem anderen zu vergleichen.
Um dies zu erreichen kann man das Tool latexdiff benutzen (http://tug.ctan.org/tex-archive/support/latexdiff). Dieses vergleicht zwei LaTex Dateien und erzeugt aus ihnen eine neue LaTex Datei, die die Änderungen kenntlich macht.

Jetzt gibt es aber oft das Szenario, dass das LaTex Projekt nicht in einer einzelnen Datei gepflegt wird, sondern in mehreren Dateien, die mittels include oder input in die Hauptdatei eingebunden werden.
Um solche Projekte dennoch mit latexdiff verarbeiten zu können, müssen sie zuerst in eine einzelne Datei kopiert werden, dafür gibt es ebenfalls ein Tool, nämlich latexpand (http://www.ctan.org/pkg/latexpand).

Das dritte Programm in dieser Reihe ist ein Versionierungssystem, in meinem Fall Subversion.
Um also den Fortschritt zwischen zwei Revisionen des LaTex Projektes in der resultierenden PDF Datei zu veranschaulichen, müssen alle .tex Dateien in ein Dokument kopiert werden (zwei Mal, ein Mal pro Revision), dazu müssen noch zwei unterschiedliche Revisionen ausgecheckt werden, und diese beiden Dokumente dann miteinander verglichen werden, damit das resultierende Dokument erstellt werden kann.
Per Hand ist das sehr viel Arbeit, daher habe ich ein Script geschrieben, dass diese Arbeit auf die Eingabe einer Revisionsnummer reduziert.

Das Script

Um das Script zu nutzen, müssen einige Voraussetzungen erfüllt sein:

  • Linux System
  • LaTex
  • Subversion
  • Zugriff auf alle Dateien der Revisionen
  • Zugriff auf SVN
  • Das Script latexpand.pl von http://www.ctan.org/pkg/latexpand muss im selben Verzeichnis sein wie dieses Script.

Das Script selbst muss nur ein wenig angepasst werden:

  • mainTex – der Name der Hauptdatei im LaTex Projekt
  • newRep – Pfad zum aktuellen Repository (working copy)
  • oldRep – Pfad zum älteren Repository (beliebige Revision, das Script aktualisiert auf die gewünschte Revision)

Achtung! Das Script nutzt Update und Commit von SVN. Damit es funktioniert und die working copy von SVN nicht ändert, sollte das Repository in einem anderen Verzeichnis erneut ausgecheckt werden, dies muss vor der Ausführung des Scripts geschehen, da es ein zweites Verzeichnis voraussetzt. Auch sollte das Script in einem eigenen Verzeichnis ausgeführt werden, um Dateinamenskonflikte zu vermeiden.
Das Script aktualisiert zum Schluß das SVN Repository, fügt die Datei aber nicht hinzu, dies muss einmalig manuell geschehen. Der Name der neuen Datei ist AlterDateiname.diff (also zum Beispiel main.tex.diff).

Eine letzte Hürde gibt es noch, sollte das Paket Hyperref genutzt werden, funktioniert es nicht auf Anhieb, es gibt zwei mögliche Lösungen:
Entweder das Paket Hyperref und alle, die es benutzen, auskommentieren (vor Nutzung des Scripts), oder in der resultierenden .tex.diff Datei die Zeilen

providecommand{DIFadd}[1]{{protectcolor{blue}uwave{#1}}} %DIF PREAMBLE
providecommand{DIFdel}[1]{{protectcolor{red}sout{#1}}} %DIF PREAMBLE

ersetzen durch

providecommand{DIFadd}[1]{{protectcolor{blue}#1}} %DIF PREAMBLE
providecommand{DIFdel}[1]{{protectcolor{red}protectscriptsize{#1}}}

(nach Nutzung des Scripts). Grund ist die Inkompatibilität des latexdiff Scripts mit dem Hyperref Package.

Nutzung des Scripts: ./createLatexSVNDiff.sh rev
Wobei rev die ältere Revisionsnummer ist, zum Beispiel: ./createLatexSVNDiff 42

Code Highlight von http://quickhighlighter.com

  1. #!/bin/bash
  2.  
  3. # This script takes two svn repository revisions and creates two big files,
  4. # both monolithic latex files with all includes and inputs merged into one large file.
  5. # The script then creates one latex file with the differences highlighted.
  6. # Other scripts used are latexdiff (see http://tug.ctan.org/tex-archive/support/latexdiff)
  7. # and latexpand (see http://www.ctan.org/pkg/latexpand).
  8.  
  9. # To accomplish this task, two concurrent repository revisions are needed, one with head revision, one with a custom revision.
  10. # The user executing this script has to have access to the subversion repositories and svn commands.
  11.  
  12. # Usage: createLatexSVNDiff rev
  13. # where ‚rev‘ is the revision number of the older repository, e.g. createLatexSVNDiff 42
  14. # The repositorys used are hardcoded into this file, you have to edit them up to your needs.
  15. # (Together with the name of the main latex file, that includes other.)
  16.  
  17. # Repository variables
  18. mainTex=file.tex
  19. oldRep=/full/path/to/2nd/repo/
  20. newRep=/full/path/to/working/copy/
  21. pathToScript=$(pwd)
  22.  
  23. echo $0 will update $newRep to head revision and $oldRep to revision $1
  24.  
  25. cd $oldRep
  26. svn up -r $1
  27. cd $newRep
  28. svn up
  29.  
  30. echo creating monolithic latex files
  31. cd $oldRep
  32. $pathToScript/latexpand.pl $oldRep$mainTex > old.tex
  33. mv old.tex $pathToScript/old.tex
  34. cd $newRep
  35. $pathToScript/latexpand.pl $newRep$mainTex > new.tex
  36. mv new.tex $pathToScript/new.tex
  37.  
  38. echo creating diff file
  39. cd $pathToScript
  40. latexdiff old.tex new.tex > $mainTex
  41. rm old.tex
  42. rm new.tex
  43.  
  44. echo moving diff file to repository and committing it
  45. mv $mainTex $newRep/$mainTex.diff
  46. cd $newRep
  47. svn ci $mainTex.diff -m "$mainTex.diff updated by $0"

Das Script kann heruntergeladen werden: createLatexSVNDiff.sh

Videos für den Western Digital TV HD Live Media Player kodieren

Diese kleine Wunderkiste spielt schon eine ganze Menge Videos ab, aber bei einigen Codecs bzw. Containern kommt sie dann doch nicht mehr mit, daher habe ich mit ffmpeg ein wenig getestet, wie man Videos am besten kodieren kann, damit sie abspielbar sind.
Falls einer der nachfolgenden Befehle nicht funktioniert, liegt es womöglich an der Version von ffmpeg oder an den (nicht) installierten Codecs. Ich habe ffmpeg nach dieser Anleitung installiert: HOWTO: Install and use the latest FFmpeg and x264


Mein Media Player ist ein WD TV Live HD Media Player (WDBAAP0000NBK aka [Live]) und spielt Formate ab, wie sie auf List of compatible media file types for all WD TV and WD Elements Play Products gelistet sind.
Beim Zielformat habe ich mich für den H.264 Codec in einem AVI Container entschieden, üblicher ist als Container MKV und der WDTV sollte das eigentlich auch abspielen, tut meiner aber nicht, mit AVI klappt es aber.


Zum konvertieren nutze ich folgenden Befehl (der Befehl besteht nur aus einer Zeile):
Befehl: ffmpeg -i file -pass 1 -vcodec libx264 -preset ultrafast -b:v 4096k -f h264 -an -y /dev/null && ffmpeg -i file -pass 2 -vcodec libx264 -preset ultrafast -b:v 4096k -acodec libmp3lame -ab 192k -ac 2 -y file.avi
Erklärungen:
-i file #die Eingabedatei
-pass 1#zur Verbesserung der Qualität wird die Datei im ersten Durchgang analysiert und erst im zweiten Durchgang neu codiert
-vcodec libx264 #der Videocodec für die neue Datei, hier H.265
-preset ultrafast #legt die Geschwindigkeit der Codierung fest, je schneller, desto größer die Datei, aber auch besser die Qualität, weitere mögliche Parameter sind fast und slow
-b:v 4096k #die Bitrate (Qualität), mit der das Video codiert wird, mit diesem Wert kann man ein wenig rumspielen, für mich sind die 4094k ein guter Wert
-f h264 #Festlegung des Codecs auf H.264
-an #die Audiospur ignorieren, da im ersten Schritt nur die Videospur analysiert wird
-y #bestehende Dateien werden ohne Nachfrage überschrieben (kann man weglassen, ohne was am Ergebnis zu ändern, nur muss man das überschreiben bestätigen)
/dev/null #das Video wird im ersten Schritt nur analysiert, deshalb wird die Ausgabe nicht gespeichert (zumindest nicht als Video, eine Logdatei wird erstellt)
&& #der zweite Befehl wird ausgeführt, sobald der erste fertig ist
-pass 2 #der zweite Durchgang, hier wird jetzt die Datei auch ausgegeben
-acodec libmp3lame #als Audiocodec wird mp3 verwendet
-ab 192k #Bitrate für Audio
-ac 2 #2 Audiokanäle (Stereo), mehr Kanäle kann der Media Player nicht ausgeben, dafür braucht man ein extra Gerät
file.avi #die fertig kodierte Datei


Um nicht immer alles abtippen zu müssen, habe ich mir ein Script geschrieben, das als Eingabe den Dateinamen erwartet.

Code Highlight von http://quickhighlighter.com

#!/bin/bash
read -p "file name: " file
ffmpeg -i $file -pass 1 -vcodec libx264 -preset ultrafast -b:v 4096k -f h264 -an -y /dev/null
    && ffmpeg -i $file -pass 2 -vcodec libx264 -preset ultrafast -b:v 4096k -acodec libmp3lame
    -ab 192k -ac 2 -y $file.avi

Das Script kann heruntergeladen werden: convert_video.sh


Noch ein Tipp, wenn auf dem System Tab-Vervollständigung aktiviert ist, kann man sich Schreibarbeit sparen mit:
echo Dateiname | ./convert_video.sh


Das obige Script funktioniert bei den meisten Videodateien, allerdings keine Regel ohne Ausnahme: Ist die Tonspur des Ausgangsvideos mit AAC codiert, so kann der WDTV die resultierende Datei nicht abspielen, trotz Umwandlung des Audiostreams in mp3. Zum Glück kann der WDTV AAC jedoch nativ abspielen, so dass das Script nur leicht geändert werden muss:
Ersetze -acodec libmp3lame -ab 192k -ac 2 durch -acodec copy, dadurch wird die bestehende Audiospur einfach in das neue Video kopiert.

ffmpeg für MP3s und WD TV Live HD Media Player

Der WD TV Live HD Media Player ist ein kleiner schwarzer Kasten (ich nenne ihn gerne Blackbox) von Western Digital, der Medien (Bilder, Musik, Videos) über das Netzwerk oder ein angeschlossenes USB-Medium abspielt.
Bisher hatte ich selten Probleme damit, doch seit ich Videos eher mit höherer Auflösung herunterlade (z. B. bei You Tube oder www.onlinetvrecorder.com) kommt es ab und an vor, dass die Blackbox ein Video nicht abspielen kann, das liegt dann meistens an den verwendeten Codecs für das Video, oder der Kombination aus Codec und Containerformat, z. B. kann meine Blackbox Videos, deren Videospur mit H.264 und Audiospur mit AAC codiert sind, nicht abspielen.
Es sollte theoretisch funktioneren (siehe List of compatible media file types for all WD TV and WD Elements Play Products), tut es aber nicht. Kann vorkommen, nervt aber.


Deshalb habe ich mich mit ffmpeg beschäftigt, eine Toolsammlung für die Konsole, um allerhand Konvertierungen mit allerhand Mediendateien durchzuführen. Geholfen haben mir dabei folgende Webseiten, aus denen die weiter unten stehenden Befehle hervorgegangen sind: