[{"body":"","link":"https://blog.tausys.de/posts/","section":"posts","tags":null,"title":""},{"body":"","link":"https://blog.tausys.de/categories/","section":"categories","tags":null,"title":"Categories"},{"body":"","link":"https://blog.tausys.de/tags/css/","section":"tags","tags":null,"title":"CSS"},{"body":"Schon vor zwei Jahren habe ich mein altes, mit WordPress angetriebenes Blog zu Hugo migriert. Ich war grundsätzlich zufrieden mit der Umstellung, das Blog dümpelte dann allerdings nur so ein bisschen vor sich hin. Über ein paar unschöne Stellen konnte man drüberweg sehen. Allein es fehlte die Muße, sich da mal wieder ran zu setzen.\nDas Theme Erst jetzt beim Aufschreiben fällt mir auf, warum es eigentlich so lange gedauert hat, mal wieder etwas am Blog zu arbeiten: das Theme. Ich selbst wollte aus Zeitgründen kein Theme von Grund auf entwerfen. Die bei Hugo direkt angebotenen Themes hatten immer irgendwo etwas, was mir nicht gefallen hat. Über zwei Jahre habe ich immer mal wieder in den Hugo-Themes gestöbert, aber leider kein passendes gefunden. Und einen Blog-Kollegen, der die Umstellung schneller hinbekommen hat, wollte ich nicht kopieren. Grüße an Chris!\nBeim letzten Stöbern ist mir dann Clarity über den Weg gelaufen und je mehr ich in der Demo herumgeklickt und die Doku gelesen hatte wurde immer klarer: das wird das neue Theme.\nIch weiß nicht, warum ich das Theme vorher nicht wirklich wahrgenommen habe. Das Theme gibt es schon seit ca. sechs Jahren. Vielleicht war ich zu oberflächlich beim Durchschauen der Screenshots.\nErste Anpassungen Hugo-Themes habe ich bisher als git-Submodule eingebunden, das sollte auch mit dem neuen Theme funktionieren. Anschließend mussten ein paar Partials und ein neuer Archetype für Posts aus dem Theme übernommen werden. Die Konfiguration wanderte von /hugo.toml nach /config/_default/.\nDamit lief das Blog lokal auch schon wieder. Die verwendete Schriftart anzupassen, die für meinen Geschmack etwas sehr zusammengedrückt zum flüssigen Lesen ist, gestaltete sich anfänglich etwas schwierig, da ich mit SASS noch nichts zu tun hatte. Schlussendlich habe ich dann doch die richtige Stelle gefunden und die Standardschriftart in config/_default/_override.sass überschrieben.\nIn config/_default/custom.css habe ich weitere benötigte Formatierungen aufgenommen.\nGrößere Baustellen Wirkliche Baustellen waren die selbst erstellten Sachen. Vor allem das stark nach einer Vorlage angepasste Cookie-Consent-System und die darauf aufbauende Einbindung verschiedener Skripte, insbesondere des Skripts zur Anzeige der Kommentare.\nCookie-Consent Da das alte System mehr Frickelei als sauberer Code war und ich keine Lust auf etwas hatte was ich unfreiwilligerweise tun müsse, habe ich die Aufgabe delegiert, und zwar an Claude. Der hatte nach kurzer Zeit ein System genau nach meinen Vorgaben fertig, inklusive eines durch die Verwendung der gleichen CSS-Variablen an das Theme angepassten Aussehens. Hatte ich schon erwähnt, das Clarity hell/dunkel kann? Der Cookie-Consent kann das nun automatisch auch.\nEinbindung des Kommentarsystems Die Einbindung der Kommentare war im alten System tief im Cookie-Consent eingewoben, das neue System erlaubt nun eine strukturierte Einbindung der Skripte je nach gewähltem Cookie-Consent. Es brauchte nur das Partial comments.html von Clarity übernommen werden und durch das für Comentario erforderliche Markup ersetzt werden. Praktisch, dass in Clarity mit coments: ... im Front-Mater bereits gesteuert werden kann, ob das Partials für Kommentare überhaupt in die jeweilige Seite eingebunden wird. Datenschutzerklärung und das Impressum z.B. brauchen keine Kommentarfunktion.\nBildergalerien Das war mit Abstand die größte Baustelle. Ich erinnerte mich, dass das schon im vorherigen Theme die komplizierteste Stelle war. Glücklicherweise habe ich hier auch schnell Ersatz gefunden, welcher auf Anhieb gut funktioniert hat. Warum hatte ich das nicht schon viel früher gefunden? Es brauchten jetzt nur noch alle Artikel angepasst werden, welche den Gallery-Shortcode verwendeten und die Bilder der jeweiligen Galerie in ein eigenes Verzeichnis des PageBundles umgezogen werden. Auch das war schnell erledigt.\nStolpersteine Das Blog war lokal fertig, der Commit-Hook um Remote-Repository angepasst. Alles sollte funktionieren, bis zum ersten Push. Und dann kam Debian. Hugo war für das Theme und die Bildergalerie auf dem Server einfach zu alt. Glücklicherweise stellt Hugo mit jedem Release auch ein passendes Deb-Paket bereit.\nUnd als das erledigt war und die kleine VM beim Hetzner reichlich 15 Sekunden an etwa 1000 Seiten herumgerechnet hatte, war das neue Blog fertig!\nWas noch nicht funktioniert Clarify bringt eine eigene Suche mit, das bisherige PageFind kann damit entfallen und damit auch der zusätzliche Schritt im Commit-Hook. Leider ist die Suche im THeme noch als experimentell gekennzeichnet. Bei mir funktioniert sie bisher noch nicht.\nDie Anzeige der Titelbilder im Theme gefällt mir bisher noch nicht. Das ist aber nur ein optisches Problem. Die Bilder sind alle noch da und zugeordnet, allein ihre Anzeige ist bisher noch ausgeschaltet. Man brauch ja auch noch ein bisschen Arbeit für morgen.\n","link":"https://blog.tausys.de/2026/09/08/ein-neues-gesicht/","section":"posts","tags":["Hugo","HTML","CSS"],"title":"Ein Neues Gesicht"},{"body":"","link":"https://blog.tausys.de/tags/html/","section":"tags","tags":null,"title":"HTML"},{"body":"","link":"https://blog.tausys.de/tags/hugo/","section":"tags","tags":null,"title":"Hugo"},{"body":"","link":"https://blog.tausys.de/categories/news/","section":"categories","tags":null,"title":"News"},{"body":"","link":"https://blog.tausys.de/tags/","section":"tags","tags":null,"title":"Tags"},{"body":"","link":"https://blog.tausys.de/","section":"","tags":null,"title":"TauSys"},{"body":"","link":"https://blog.tausys.de/categories/webseite/","section":"categories","tags":null,"title":"Webseite"},{"body":"","link":"https://blog.tausys.de/categories/knowhow/","section":"categories","tags":null,"title":"Knowhow"},{"body":"","link":"https://blog.tausys.de/categories/linux/","section":"categories","tags":null,"title":"Linux"},{"body":"Seit längerem betreibe ich einen eigenen Mailcow-Server, der die elektronische Post für alle meiner Domains abhandelt. Und ich muß sagen: herzlichen Dank für dieses wunderbare Projekt, welches einfach nur so vor sich hin schnurrt und seine Arbeit tut. Zudem hilft ein eingebautes Webinterface, wenn man irgendwo in der Welt unterwegs ist und nur ein Internet-Café oder einen geliehenen Computer zur Verfügung hat.\nAlle meine Mail-Clients benutzen IMAP. Mails sind so zentral gespeichert, landen automatisch in einem Backup und ich kann von überall her auf sie zugreifen. Als Mail-Clients benutze ich privat und geschäftlich nur noch Mozilla Thunderbird. Dieser ist über die letzten Jahren stabiler geworden, hat alle Features die ich brauche und kommt auch mit größeren Postfächern zurecht, bei denen die Konkurrenz gene mal aufgibt. Auf dem Smartphone kommt das aus K9 zusammen mit Mozilla hervorgegangen Thunderbird für Android zum Einsatz.\nDas Problem Seit Monaten plagt mich das Problem immer mal wieder magisch erscheinender Ordner - einer mit dem Namen Entwürfe und einer mit dem Namen Unbekannt. Bei Entwürfe könnte man schnell auf die Idee kommen, dass es sich evtl. um ein Problem mit der Lokalisierung in Thunderbird handel. Allein die Zeitspanne, in der ich das Problem immer wieder vor mir hergeschoben habe und niemand anderes einen entsprechenden Bug meldete, sprachen dagegen.\nEinstellungen in Mozilla Thunderbird Thunderbird war mir die verdächtigste Komponente in meinem Mail-Setup. Also begann ich hier.\nKopien \u0026amp; Ordner In den Konten-Einstellungen unter Kopien \u0026amp; Ordner kann festgelegt werden, in welchen Ordnern Thunderbird automatisch Kopien gesendeter E-Mails, Entwürfe und Vorlagen speichert und in welchem Ordner E-Mails archiviert werden. Hier waren bei mir bereits einige Ordner manuell umgestellt. Zum Test habe ich alle Ordner manuell ausgewählt - und das auf allen Clients. Das Problem blieb.\nWeitere Identitäten Auf der Startseite der Konten-Einstellungen könnnen Weitere Identitäten... anlegen werden. Diese haben von der Haupt-Identität getrennte Einstellungen für Kopien \u0026amp; Ordner. Auch hier habe ich alle Ordner manuell ausgewählt. Das war bei allen Clients schon ein bisschen Arbeit. Trotzdem tauchten die Ordner wieder auf.\nEinstellungen in Thunderbird für Android Wie beim großen Bruder auf dem PC habe ich auch hier alle Ordnereinstellungen manuell gesetzt. Geholfen hat es leider nicht. Verflixt!\nDebug in Mailcow Wenn man sich mit docker compose logs -f dovecot-mailcow Logs von Dovecot anschaut und testweise Ordner im IMAP anlegt, verschiebt bzw. umbenennt und löscht fällt auf, dass das Anlegen eines Ordners nicht protokolliert wird. Das war den Entwicklern wohl nicht so wichtig, aber für meinen Fall unerlässlich. Um auch das Erstellen von Ordnern zu protokollieren erstellt man die Datei data/conf/dovecot/extra.conf mit folgendem Inhalt:\n1plugin { 2 # Track folder creation alongside standard mailbox modifications 3 mail_log_events = mailbox_create mailbox_delete mailbox_rename delete expunge 4 5 # Log the folder name (box) and the session details 6 mail_log_fields = uid box msgid 7} Diese Methode benötigt die Plugins mail_log und notify, welche aber bereits bei Auslieferung in data/conf/dovecot/mail_plugins aktiviert sind.\nNach dem Neustart des Containers mit docker compose restart dovecot-mailcow sieht man beim Anlegen von Ordnern dann auch entsprechende Meldungen.\nUnd hier kam dann die Überraschung: in regelmäßigen Abständen loggte sich mein Benutzer ein und legte die Ordner neu an, nachdem ich sie (wieder einmal) gelöscht hatte. Das tat Mailcow auch, obwohl ich alle Mail-Clients beendet und das Smartphone sogar in den Flugzeugmodus versetzt hatte. Hier war guter Rat teuer. Das Umfeld im Log, auch mit den Meldungen der anderen Container, zeigte auch nichts Auffälliges.\nEinziges Indiz war die Quelladresse des Logins: sie kamen immer von ::1. Es musste sich also um etwas Mailcow-Internes handeln. Eine Suche in der Oberfläche begann.\nGefunden habe ich eigentlich nur eine einzige Stelle: in Mailcow können Pre- und Post-Sieve-Filter hinterlegt werden, die vor und nach den jeweiligen User-Filtern ausgeführt werden. Im globalen Post-Filter steht Code, der Ordner nach bestimmten Filterbedingungen anlegt. Das aber nur, wenn er auch eine Mail in diesem Ordner speichern will. Meine magischen Ordner waren jedoch immer leer. Mein eigenes Filter-Skript legt keine Ordner an. Eine Sackgasse.\nAn dieser Stelle war ich schon drauf und dran, meinen \u0026quot;Fall\u0026quot; im Mailcow-User-Forum vorzutragen. Ich hatte schon alle Logs, Konfigurationen usw. zusammenkopiert.\nDoch dann kam die Erleuchtung: wenn Mailcow etwas mit meinem Account macht, dann muss es fast sicher etwas sein, dass ich auch eingestellt habe. Irgendeine periodische Aufgabe, irgendein Job.\nDie Lösung Ich hatte für ein uraltes Postfach bei web.de einen Synchronisations-Job eingestellt. Früher hatte ich meine E-Mail von dort mit fetchmail per POP3 abgeholt. Der Synchronisations-Job synchronisiert jetzt aber alle Ordner. Also schnell einmal eingeloggt auf die web.de-Oberfläche, was ich schon viele Jahre nicht mehr getan hatte, und siehe da, dort gibt es einen Ordner Entwürfe neben dem eigentlichen für Entwürfe vorgesehenen Ordner Entwürfe, welcher wohl aus grauer Vorzeit stammt oder bei einer Umstellung nicht korrekt übernommen wurde. Gelöscht. Übrig blieb der Ordner Unbekannt, den web.de wohl anlegt, um unbekannte Absender dort einzusortieren. Der Ordner kann bei web.de nicht gelöscht werden. Glücklicherweise kann der Ordner beim Synchronisations-Job in Mailcow ausgeschlossen werden.\nFall gelöst.\n","link":"https://blog.tausys.de/2026/09/01/magisch-erscheinende-ordner-in-mailcow/","section":"posts","tags":["OSS","Mailcow"],"title":"Magisch erscheinende Ordner in Mailcow - Eine Spurensuche"},{"body":"","link":"https://blog.tausys.de/tags/mailcow/","section":"tags","tags":null,"title":"Mailcow"},{"body":"","link":"https://blog.tausys.de/tags/oss/","section":"tags","tags":null,"title":"OSS"},{"body":"Nach der erfolgreichen Umstellung auf Hugo habe ich mich gefragt, wie ich denn mit Hilfe von git beim Hinzufügen neuer Inhalte die statische Webseite automatisch neu genieren und auch sofort hochladen kann. In der Hugo-Dokumentation wird dabei auf CI/CD-Pipelines, z.B. von Github, gesetzt. Gerade heute wurde wieder einmal öffentlich, wie schnell doch Projekte durch kommerzielle Anbieter gefährdet werden können. Zur Vermeidung von irgendwelchen Kopfschmerzen wollte ich genau diese Abhängigkeit meiner Webseite von anderen Diensten vermeiden.\nDie Lösung war so einfach: git Hooks.\nBeim Ausführen von git-Aktionen wie z.B. push können per Hook weitere Aktionen ausgeführt werden. Im Hook post-receive habe ich folgendes Skript hinterlegt:\n1#!/bin/bash 2 3GIT_REPO=$HOME/Websites/blog-tausys-de.git 4WORKING_DIRECTORY=$HOME/Websites/blog-tausys-de.working 5PUBLIC_HTML=$HOME/Websites/blog-tausys-de.public_html 6MY_DOMAIN=blog.tausys.de 7 8set -e 9 10rm -rf $WORKING_DIRECTORY 11rm -rf $PUBLIC_HTML.{old,new} 12 13git clone --recurse-submodules -j8 $GIT_REPO $WORKING_DIRECTORY 14 15hugo -s $WORKING_DIRECTORY -d $PUBLIC_HTML.new -b \u0026#34;https://${MY_DOMAIN}\u0026#34; 16~/venv/pagefind/bin/python3 -m pagefind --site $PUBLIC_HTML.new 17 18rm -rf $WORKING_DIRECTORY 19mv $PUBLIC_HTML $PUBLIC_HTML.old 20mv $PUBLIC_HTML.new $PUBLIC_HTML 21rm -rf $PUBLIC_HTML.old Das (bare) git-Repository liegt bei mir direkt auf dem Server im Verzeichnis $HOME/Websites/blog-tausys-de.git. Zum Generieren der Webseite werden mehrere andere Verzeichnisse mit jeweils eigenen Suffix benutzt.\nNach der Generierung der Seite mit Hugo wird noch ein Suchindex mit pagefind erstellt. Das Verzeichnis $PUBLIC_WWW ist gleichzeitig das Verzeichnis aus dem der Webserver die Webseite ausliefert. Alternativ kann natürlich die neu generierte Webseite auch per rsync auf den eigenen Server hochladen werden.\nNach jedem Push auf das git-Repository wird jetzt die Webseite neu gebaut und steht sofort im Webserver zur Verfügung.\n","link":"https://blog.tausys.de/2025/12/23/automatisch-publizieren-mit-hugo/","section":"posts","tags":["OSS","Hugo","git"],"title":"Automatisch Publizieren mit Hugo"},{"body":"","link":"https://blog.tausys.de/tags/git/","section":"tags","tags":null,"title":"Git"},{"body":"","link":"https://blog.tausys.de/tags/journal/","section":"tags","tags":null,"title":"Journal"},{"body":"","link":"https://blog.tausys.de/tags/systemd/","section":"tags","tags":null,"title":"Systemd"},{"body":"Mit systemd-journal-remote lässt sich ein zentraler Logserver realisieren, auf den viele andere Systeme ihre Logmeldungen senden können. Im Paket systemd-journal-remote sind unter Debian sowohl der Transmitter als auch der Receiver enthalten.\nReceiver Die Konfigurationsdateien des Receivers befinden sich unter /etc/systemd/journal-remote.conf.d/. Dort wird eine neue Datei (z.B. receiver.conf) mit folgendem exemplarischen Inhalt angelegt:\n1[Remote] 2MaxUse=12G 3KeepFree=8G 4MaxFiles=99999 Dadurch wird festgelegt, dass die Gesamtgröße aller Logs 12 GB nicht überschreiten darf. Im Filesystem des Log-Verzeichnisses (standardmäßig /var/log/journal/remote) muss mindestens 8 GB Platz sein. Bei Unterschreiten dieses Wertes werden die ältesten Logdateien gelöscht.\nDie dritte Einstellung ist (bisher) leider nicht dokumentiert bzw. nicht deren Standardwert. Ich habe mich gewundert, dass systemd-journal-remote regelmäßig alte Logs löscht, obwohl obige zwei Einstellungen noch gar nicht zugetroffen haben. MaxFiles hat (wie im journald von systemd auch) einen Standardwert von 100. Durch obige Einstellung werden entsprechend mehr Logdateien aufbewahrt.\nAnschließend kann der Receiver aktiviert und gestartet werden:\n1systemctl enable --now systemd-journal-remote.service systemd vor Version 253 (bis zu Debian Bookworm) hatte einen Bug und die Einstellungen für systemd-journal-remote zur Größenbeschränkung wurden ignoriert. Ich habe mir mit einem eigenen Aufräumjob geholfen:\n/etc/systemd/system/journald-clean-remote.timer 1[Unit] 2Description=Remote-Journal des journald bereinigen 3 4[Timer] 5OnBootSec=10min 6OnUnitActiveSec=60min 7 8[Install] 9WantedBy=timers.target\n/etc/systemd/system/journald-clean-remote.service 1[Unit] 2Description=Remote-Journal des journald bereinigen 3Documentation=man:systemd.service 4 5[Service] 6Type=oneshot 7ExecStart=/usr/bin/journalctl --vacuum-size 12G -m\nTransmitter Die Konfigurationsdateien für den Transmitter befinden sich unter /etc/systemd/journal-upload.conf.d/. Dort wird eine neue Datei (z.B. remote.conf) mit folgendem Inhalt angelegt:\n1[Upload] 2URL=http://192.168.54.1:19532 Damit wird festgelegt, an welchen Server die Logmeldungen gesendet werden sollen. Ich habe der Einfachheit halber nur http verwendet, da bei mir die Transmitter und der Receiver per Wireguard verbunden sind. Alternativ unterstützt systemd-journal-remote auch die Authentifizierung mit Zertifikaten und die Übertragung der Logdaten per https.\nNachdem auch der Receiver konfiguriert und gestartet wurde, können anschließend auch die Transmitter aktiviert und gestartet werden.\n1systemctl enable --now systemd-journal-upload.service Abschluss Wenn alles ohne Fehler läuft, können anschließend die auf dem Logserver eintrudelnden Meldungen angezeigt werden:\n1journalctl -f -m \u0026quot;-f\u0026quot; bewirkt, dass fortdauernd angezeigt wird (ähnlich wie tail -f), \u0026quot;-m\u0026quot; zeigt die Logs aller Remote-Systeme zusammengeführt an.\n","link":"https://blog.tausys.de/2025/12/11/systemd-journal-remote-groessenbeschraenkung/","section":"posts","tags":["systemd","journal","OSS"],"title":"Systemd Journal Remote Größenbeschränkung"},{"body":"Stand: 21. April 2025\nInhaltsübersicht Verantwortlicher Übersicht der Verarbeitungen Maßgebliche Rechtsgrundlagen Sicherheitsmaßnahmen Internationale Datentransfers Allgemeine Informationen zur Datenspeicherung und Löschung Rechte der betroffenen Personen Bereitstellung des Onlineangebots und Webhosting Einsatz von Cookies Registrierung, Anmeldung und Nutzerkonto Single-Sign-On-Anmeldung Blogs und Publikationsmedien Kontakt- und Anfrageverwaltung Webanalyse, Monitoring und Optimierung Plug-ins und eingebettete Funktionen sowie Inhalte Verantwortlicher Jens Tautenhahn\nPostfach 21 01 45\n90119 Nürnberg\nE-Mail: bloginput@tausys.de\nImpressum\nÜbersicht der Verarbeitungen Die nachfolgende Übersicht fasst die Arten der verarbeiteten Daten und die Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen Personen.\nArten der verarbeiteten Daten Bestandsdaten. Kontaktdaten. Inhaltsdaten. Nutzungsdaten. Meta-, Kommunikations- und Verfahrensdaten. Event-Daten (Facebook). Protokolldaten. Kategorien betroffener Personen Kommunikationspartner. Nutzer. Zwecke der Verarbeitung Kommunikation. Sicherheitsmaßnahmen. Reichweitenmessung. Tracking. Organisations- und Verwaltungsverfahren. Feedback. Profile mit nutzerbezogenen Informationen. Anmeldeverfahren. Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit. Informationstechnische Infrastruktur. Maßgebliche Rechtsgrundlagen Maßgebliche Rechtsgrundlagen nach der DSGVO: Im Folgenden erhalten Sie eine Übersicht der Rechtsgrundlagen der DSGVO, auf deren Basis wir personenbezogene Daten verarbeiten. Bitte nehmen Sie zur Kenntnis, dass neben den Regelungen der DSGVO nationale Datenschutzvorgaben in Ihrem bzw. unserem Wohn- oder Sitzland gelten können. Sollten ferner im Einzelfall speziellere Rechtsgrundlagen maßgeblich sein, teilen wir Ihnen diese in der Datenschutzerklärung mit.\nEinwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO) - Die betroffene Person hat ihre Einwilligung in die Verarbeitung der sie betreffenden personenbezogenen Daten für einen spezifischen Zweck oder mehrere bestimmte Zwecke gegeben.\nVertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO) - Die Verarbeitung ist für die Erfüllung eines Vertrags, dessen Vertragspartei die betroffene Person ist, oder zur Durchführung vorvertraglicher Maßnahmen erforderlich, die auf Anfrage der betroffenen Person erfolgen.\nBerechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO) - die Verarbeitung ist zur Wahrung der berechtigten Interessen des Verantwortlichen oder eines Dritten notwendig, vorausgesetzt, dass die Interessen, Grundrechte und Grundfreiheiten der betroffenen Person, die den Schutz personenbezogener Daten verlangen, nicht überwiegen.\nNationale Datenschutzregelungen in Deutschland: Zusätzlich zu den Datenschutzregelungen der DSGVO gelten nationale Regelungen zum Datenschutz in Deutschland. Hierzu gehört insbesondere das Gesetz zum Schutz vor Missbrauch personenbezogener Daten bei der Datenverarbeitung (Bundesdatenschutzgesetz – BDSG). Das BDSG enthält insbesondere Spezialregelungen zum Recht auf Auskunft, zum Recht auf Löschung, zum Widerspruchsrecht, zur Verarbeitung besonderer Kategorien personenbezogener Daten, zur Verarbeitung für andere Zwecke und zur Übermittlung sowie automatisierten Entscheidungsfindung im Einzelfall einschließlich Profiling. Ferner können Landesdatenschutzgesetze der einzelnen Bundesländer zur Anwendung gelangen.\nSicherheitsmaßnahmen Wir treffen nach Maßgabe der gesetzlichen Vorgaben unter Berücksichtigung des Stands der Technik, der Implementierungskosten und der Art, des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie der unterschiedlichen Eintrittswahrscheinlichkeiten und des Ausmaßes der Bedrohung der Rechte und Freiheiten natürlicher Personen geeignete technische und organisatorische Maßnahmen, um ein dem Risiko angemessenes Schutzniveau zu gewährleisten.\nZu den Maßnahmen gehören insbesondere die Sicherung der Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch Kontrolle des physischen und elektronischen Zugangs zu den Daten als auch des sie betreffenden Zugriffs, der Eingabe, der Weitergabe, der Sicherung der Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren eingerichtet, die eine Wahrnehmung von Betroffenenrechten, die Löschung von Daten und Reaktionen auf die Gefährdung der Daten gewährleisten. Ferner berücksichtigen wir den Schutz personenbezogener Daten bereits bei der Entwicklung bzw. Auswahl von Hardware, Software sowie Verfahren entsprechend dem Prinzip des Datenschutzes, durch Technikgestaltung und durch datenschutzfreundliche Voreinstellungen.\nSicherung von Online-Verbindungen durch TLS-/SSL-Verschlüsselungstechnologie (HTTPS): Um die Daten der Nutzer, die über unsere Online-Dienste übertragen werden, vor unerlaubten Zugriffen zu schützen, setzen wir auf die TLS-/SSL-Verschlüsselungstechnologie. Secure Sockets Layer (SSL) und Transport Layer Security (TLS) sind die Eckpfeiler der sicheren Datenübertragung im Internet. Diese Technologien verschlüsseln die Informationen, die zwischen der Website oder App und dem Browser des Nutzers (oder zwischen zwei Servern) übertragen werden, wodurch die Daten vor unbefugtem Zugriff geschützt sind. TLS, als die weiterentwickelte und sicherere Version von SSL, gewährleistet, dass alle Datenübertragungen den höchsten Sicherheitsstandards entsprechen. Wenn eine Website durch ein SSL-/TLS-Zertifikat gesichert ist, wird dies durch die Anzeige von HTTPS in der URL signalisiert. Dies dient als ein Indikator für die Nutzer, dass ihre Daten sicher und verschlüsselt übertragen werden.\nInternationale Datentransfers Datenverarbeitung in Drittländern: Sofern wir Daten in einem Drittland (d. h., außerhalb der Europäischen Union (EU), des Europäischen Wirtschaftsraums (EWR)) verarbeiten oder die Verarbeitung im Rahmen der Inanspruchnahme von Diensten Dritter oder der Offenlegung bzw. Übermittlung von Daten an andere Personen, Stellen oder Unternehmen stattfindet, erfolgt dies nur im Einklang mit den gesetzlichen Vorgaben. Sofern das Datenschutzniveau in dem Drittland mittels eines Angemessenheitsbeschlusses anerkannt wurde (Art. 45 DSGVO), dient dieser als Grundlage des Datentransfers. Im Übrigen erfolgen Datentransfers nur dann, wenn das Datenschutzniveau anderweitig gesichert ist, insbesondere durch Standardvertragsklauseln (Art. 46 Abs. 2 lit. c) DSGVO), ausdrückliche Einwilligung oder im Fall vertraglicher oder gesetzlich erforderlicher Übermittlung (Art. 49 Abs. 1 DSGVO). Im Übrigen teilen wir Ihnen die Grundlagen der Drittlandübermittlung bei den einzelnen Anbietern aus dem Drittland mit, wobei die Angemessenheitsbeschlüsse als Grundlagen vorrangig gelten. Informationen zu Drittlandtransfers und vorliegenden Angemessenheitsbeschlüssen können dem Informationsangebot der EU-Kommission entnommen werden: https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection_en?prefLang=de. Im Rahmen des sogenannten „Data Privacy Framework\u0026quot; (DPF) hat die EU-Kommission das Datenschutzniveau ebenfalls für bestimmte Unternehmen aus den USA im Rahmen der Angemessenheitsbeschlusses vom 10.07.2023 als sicher anerkannt. Die Liste der zertifizierten Unternehmen als auch weitere Informationen zu dem DPF können Sie der Website des Handelsministeriums der USA unter https://www.dataprivacyframework.gov/ (in Englisch) entnehmen. Wir informieren Sie im Rahmen der Datenschutzhinweise, welche von uns eingesetzten Diensteanbieter unter dem Data Privacy Framework zertifiziert sind.\nAllgemeine Informationen zur Datenspeicherung und Löschung Wir löschen personenbezogene Daten, die wir verarbeiten, gemäß den gesetzlichen Bestimmungen, sobald die zugrundeliegenden Einwilligungen widerrufen werden oder keine weiteren rechtlichen Grundlagen für die Verarbeitung bestehen. Dies betrifft Fälle, in denen der ursprüngliche Verarbeitungszweck entfällt oder die Daten nicht mehr benötigt werden. Ausnahmen von dieser Regelung bestehen, wenn gesetzliche Pflichten oder besondere Interessen eine längere Aufbewahrung oder Archivierung der Daten erfordern.\nInsbesondere müssen Daten, die aus handels- oder steuerrechtlichen Gründen aufbewahrt werden müssen oder deren Speicherung notwendig ist zur Rechtsverfolgung oder zum Schutz der Rechte anderer natürlicher oder juristischer Personen, entsprechend archiviert werden.\nUnsere Datenschutzhinweise enthalten zusätzliche Informationen zur Aufbewahrung und Löschung von Daten, die speziell für bestimmte Verarbeitungsprozesse gelten.\nBei mehreren Angaben zur Aufbewahrungsdauer oder Löschungsfristen eines Datums, ist stets die längste Frist maßgeblich.\nBeginnt eine Frist nicht ausdrücklich zu einem bestimmten Datum und beträgt sie mindestens ein Jahr, so startet sie automatisch am Ende des Kalenderjahres, in dem das fristauslösende Ereignis eingetreten ist. Im Fall laufender Vertragsverhältnisse, in deren Rahmen Daten gespeichert werden, ist das fristauslösende Ereignis der Zeitpunkt des Wirksamwerdens der Kündigung oder sonstige Beendigung des Rechtsverhältnisses.\nDaten, die nicht mehr für den ursprünglich vorgesehenen Zweck, sondern aufgrund gesetzlicher Vorgaben oder anderer Gründe aufbewahrt werden, verarbeiten wir ausschließlich zu den Gründen, die ihre Aufbewahrung rechtfertigen.\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nAufbewahrung und Löschung von Daten: Die folgenden allgemeinen Fristen gelten für die Aufbewahrung und Archivierung nach deutschem Recht:\n10 Jahre - Aufbewahrungsfrist für Bücher und Aufzeichnungen, Jahresabschlüsse, Inventare, Lageberichte, Eröffnungsbilanz sowie die zu ihrem Verständnis erforderlichen Arbeitsanweisungen und sonstigen Organisationsunterlagen (§ 147 Abs. 1 Nr. 1 i.V.m. Abs. 3 AO, § 14b Abs. 1 UStG, § 257 Abs. 1 Nr. 1 i.V.m. Abs. 4 HGB).\n8 Jahre - Buchungsbelege, wie z. B. Rechnungen und Kostenbelege (§ 147 Abs. 1 Nr. 4 und 4a i.V.m. Abs. 3 Satz 1 AO sowie § 257 Abs. 1 Nr. 4 i.V.m. Abs. 4 HGB).\n6 Jahre - Übrige Geschäftsunterlagen: empfangene Handels- oder Geschäftsbriefe, Wiedergaben der abgesandten Handels- oder Geschäftsbriefe, sonstige Unterlagen, soweit sie für die Besteuerung von Bedeutung sind, z. B. Stundenlohnzettel, Betriebsabrechnungsbögen, Kalkulationsunterlagen, Preisauszeichnungen, aber auch Lohnabrechnungsunterlagen, soweit sie nicht bereits Buchungsbelege sind und Kassenstreifen (§ 147 Abs. 1 Nr. 2, 3, 5 i.V.m. Abs. 3 AO, § 257 Abs. 1 Nr. 2 u. 3 i.V.m. Abs. 4 HGB).\n3 Jahre - Daten, die erforderlich sind, um potenzielle Gewährleistungs- und Schadensersatzansprüche oder ähnliche vertragliche Ansprüche und Rechte zu berücksichtigen sowie damit verbundene Anfragen zu bearbeiten, basierend auf früheren Geschäftserfahrungen und üblichen Branchenpraktiken, werden für die Dauer der regulären gesetzlichen Verjährungsfrist von drei Jahren gespeichert (§§ 195, 199 BGB).\nRechte der betroffenen Personen Rechte der betroffenen Personen aus der DSGVO: Ihnen stehen als Betroffene nach der DSGVO verschiedene Rechte zu, die sich insbesondere aus Art. 15 bis 21 DSGVO ergeben:\nWiderspruchsrecht: Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um Direktwerbung zu betreiben, haben Sie das Recht, jederzeit Widerspruch gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen; dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht.\nWiderrufsrecht bei Einwilligungen: Sie haben das Recht, erteilte Einwilligungen jederzeit zu widerrufen.\nAuskunftsrecht: Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf Auskunft über diese Daten sowie auf weitere Informationen und Kopie der Daten entsprechend den gesetzlichen Vorgaben.\nRecht auf Berichtigung: Sie haben entsprechend den gesetzlichen Vorgaben das Recht, die Vervollständigung der Sie betreffenden Daten oder die Berichtigung der Sie betreffenden unrichtigen Daten zu verlangen.\nRecht auf Löschung und Einschränkung der Verarbeitung: Sie haben nach Maßgabe der gesetzlichen Vorgaben das Recht, zu verlangen, dass Sie betreffende Daten unverzüglich gelöscht werden, bzw. alternativ nach Maßgabe der gesetzlichen Vorgaben eine Einschränkung der Verarbeitung der Daten zu verlangen.\nRecht auf Datenübertragbarkeit: Sie haben das Recht, Sie betreffende Daten, die Sie uns bereitgestellt haben, nach Maßgabe der gesetzlichen Vorgaben in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten oder deren Übermittlung an einen anderen Verantwortlichen zu fordern.\nBeschwerde bei Aufsichtsbehörde: Sie haben unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs das Recht auf Beschwerde bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthaltsorts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen die Vorgaben der DSGVO verstößt.\nBereitstellung des Onlineangebots und Webhosting Wir verarbeiten die Daten der Nutzer, um ihnen unsere Online-Dienste zur Verfügung stellen zu können. Zu diesem Zweck verarbeiten wir die IP-Adresse des Nutzers, die notwendig ist, um die Inhalte und Funktionen unserer Online-Dienste an den Browser oder das Endgerät der Nutzer zu übermitteln.\nVerarbeitete Datenarten: Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen); Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen). Protokolldaten (z. B. Logfiles betreffend Logins oder den Abruf von Daten oder Zugriffszeiten.).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nZwecke der Verarbeitung: Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit; Informationstechnische Infrastruktur (Betrieb und Bereitstellung von Informationssystemen und technischen Geräten (Computer, Server etc.)). Sicherheitsmaßnahmen.\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;.\nRechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nBereitstellung Onlineangebot auf eigener/ dedizierter Serverhardware: Für die Bereitstellung unseres Onlineangebotes nutzen wir von uns betriebene Serverhardware sowie den damit verbundenen Speicherplatz, die Rechenkapazität und die Software; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nErhebung von Zugriffsdaten und Logfiles: Der Zugriff auf unser Onlineangebot wird in Form von sogenannten \u0026quot;Server-Logfiles\u0026quot; protokolliert. Zu den Serverlogfiles können die Adresse und der Name der abgerufenen Webseiten und Dateien, Datum und Uhrzeit des Abrufs, übertragene Datenmengen, Meldung über erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, Referrer URL (die zuvor besuchte Seite) und im Regelfall IP-Adressen und der anfragende Provider gehören. Die Serverlogfiles können zum einen zu Sicherheitszwecken eingesetzt werden, z. B. um eine Überlastung der Server zu vermeiden (insbesondere im Fall von missbräuchlichen Angriffen, sogenannten DDoS-Attacken), und zum anderen, um die Auslastung der Server und ihre Stabilität sicherzustellen; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO). Löschung von Daten: Logfile-Informationen werden für die Dauer von maximal 30 Tagen gespeichert und danach gelöscht oder anonymisiert. Daten, deren weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung ausgenommen.\nHetzner: Leistungen auf dem Gebiet der Bereitstellung von informationstechnischer Infrastruktur und verbundenen Dienstleistungen (z. B. Speicherplatz und/oder Rechenkapazitäten); Dienstanbieter: Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Deutschland; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://www.hetzner.com; Datenschutzerklärung: https://www.hetzner.com/de/rechtliches/datenschutz. Auftragsverarbeitungsvertrag: https://docs.hetzner.com/de/general/general-terms-and-conditions/data-privacy-faq/.\nEinsatz von Cookies Unter dem Begriff „Cookies\u0026quot; werden Funktionen, die Informationen auf Endgeräten der Nutzer speichern und aus ihnen auslesen, verstanden. Cookies können ferner in Bezug auf unterschiedliche Anliegen Einsatz finden, etwa zu Zwecken der Funktionsfähigkeit, der Sicherheit und des Komforts von Onlineangeboten sowie der Erstellung von Analysen der Besucherströme. Wir verwenden Cookies gemäß den gesetzlichen Vorschriften. Dazu holen wir, wenn erforderlich, vorab die Zustimmung der Nutzer ein. Ist eine Zustimmung nicht notwendig, setzen wir auf unsere berechtigten Interessen. Dies gilt, wenn das Speichern und Auslesen von Informationen unerlässlich ist, um ausdrücklich angeforderte Inhalte und Funktionen bereitstellen zu können. Dazu zählen etwa die Speicherung von Einstellungen sowie die Sicherstellung der Funktionalität und Sicherheit unseres Onlineangebots. Die Einwilligung kann jederzeit widerrufen werden. Wir informieren klar über deren Umfang und welche Cookies genutzt werden.\nHinweise zu datenschutzrechtlichen Rechtsgrundlagen: Ob wir personenbezogene Daten mithilfe von Cookies verarbeiten, hängt von einer Einwilligung ab. Liegt eine Einwilligung vor, dient sie als Rechtsgrundlage. Ohne Einwilligung stützen wir uns auf unsere berechtigten Interessen, die vorstehend in diesem Abschnitt und im Kontext der jeweiligen Dienste und Verfahren erläutert sind.\nSpeicherdauer: Im Hinblick auf die Speicherdauer werden die folgenden Arten von Cookies unterschieden:\nTemporäre Cookies (auch: Session- oder Sitzungscookies): Temporäre Cookies werden spätestens gelöscht, nachdem ein Nutzer ein Onlineangebot verlassen und sein Endgerät (z. B. Browser oder mobile Applikation) geschlossen hat.\nPermanente Cookies: Permanente Cookies bleiben auch nach dem Schließen des Endgeräts gespeichert. So können beispielsweise der Log-in-Status gespeichert und bevorzugte Inhalte direkt angezeigt werden, wenn der Nutzer eine Website erneut besucht. Ebenso können die mithilfe von Cookies erhobenen Nutzerdaten zur Reichweitenmessung Verwendung finden. Sofern wir Nutzern keine expliziten Angaben zur Art und Speicherdauer von Cookies mitteilen (z. B. im Rahmen der Einholung der Einwilligung), sollten sie davon ausgehen, dass diese permanent sind und die Speicherdauer bis zu zwei Jahre betragen kann.\nAllgemeine Hinweise zum Widerruf und Widerspruch (Opt-out): Nutzer können die von ihnen abgegebenen Einwilligungen jederzeit widerrufen und zudem einen Widerspruch gegen die Verarbeitung entsprechend den gesetzlichen Vorgaben, auch mittels der Privatsphäre-Einstellungen ihres Browsers, erklären.\nCookie-Einstellungen/-Widerspruchsmöglichkeit:\nCookie-Einstellungen anpassen\nVerarbeitete Datenarten: Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nRechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO). Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nVerarbeitung von Cookie-Daten auf Grundlage einer Einwilligung: Wir setzen eine Einwilligungs-Management-Lösung ein, bei der die Einwilligung der Nutzer zur Verwendung von Cookies oder zu den im Rahmen der Einwilligungs-Management-Lösung genannten Verfahren und Anbietern eingeholt wird. Dieses Verfahren dient der Einholung, Protokollierung, Verwaltung und dem Widerruf von Einwilligungen, insbesondere bezogen auf den Einsatz von Cookies und vergleichbaren Technologien, die zur Speicherung, zum Auslesen und zur Verarbeitung von Informationen auf den Endgeräten der Nutzer eingesetzt werden. Im Rahmen dieses Verfahrens werden die Einwilligungen der Nutzer für die Nutzung von Cookies und die damit verbundenen Verarbeitungen von Informationen, einschließlich der im Einwilligungs-Management-Verfahren genannten spezifischen Verarbeitungen und Anbieter, eingeholt. Die Nutzer haben zudem die Möglichkeit, ihre Einwilligungen zu verwalten und zu widerrufen. Die Einwilligungserklärungen werden gespeichert, um eine erneute Abfrage zu vermeiden und den Nachweis der Einwilligung gemäß der gesetzlichen Anforderungen führen zu können. Die Speicherung erfolgt serverseitig und/oder in einem Cookie (sogenanntes Opt-In-Cookie) oder mittels vergleichbarer Technologien, um die Einwilligung einem spezifischen Nutzer oder dessen Gerät zuordnen zu können. Sofern keine spezifischen Angaben zu den Anbietern von Einwilligungs-Management-Diensten vorliegen, gelten folgende allgemeine Hinweise: Die Dauer der Speicherung der Einwilligung beträgt bis zu zwei Jahre. Dabei wird ein pseudonymer Nutzer-Identifikator erstellt, der zusammen mit dem Zeitpunkt der Einwilligung, den Angaben zum Umfang der Einwilligung (z. B. betreffende Kategorien von Cookies und/oder Diensteanbieter) sowie Informationen über den Browser, das System und das verwendete Endgerät gespeichert wird; Rechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO). Registrierung, Anmeldung und Nutzerkonto Nutzer können ein Nutzerkonto anlegen. Im Rahmen der Registrierung werden den Nutzern die erforderlichen Pflichtangaben mitgeteilt und zu Zwecken der Bereitstellung des Nutzerkontos auf Grundlage vertraglicher Pflichterfüllung verarbeitet. Zu den verarbeiteten Daten gehören insbesondere die Login-Informationen (Nutzername, Passwort sowie eine E-Mail-Adresse).\nIm Rahmen der Inanspruchnahme unserer Registrierungs- und Anmeldefunktionen sowie der Nutzung des Nutzerkontos speichern wir die IP-Adresse und den Zeitpunkt der jeweiligen Nutzerhandlung. Die Speicherung erfolgt auf Grundlage unserer berechtigten Interessen als auch jener der Nutzer an einem Schutz vor Missbrauch und sonstiger unbefugter Nutzung. Eine Weitergabe dieser Daten an Dritte erfolgt grundsätzlich nicht, es sei denn, sie ist zur Verfolgung unserer Ansprüche erforderlich oder es besteht eine gesetzliche Verpflichtung hierzu.\nDie Nutzer können über Vorgänge, die für deren Nutzerkonto relevant sind, wie z. B. technische Änderungen, per E-Mail informiert werden.\nVerarbeitete Datenarten: Bestandsdaten (z. B. der vollständige Name, Wohnadresse, Kontaktinformationen, Kundennummer, etc.); Kontaktdaten (z. B. Post- und E-Mail-Adressen oder Telefonnummern); Inhaltsdaten (z. B. textliche oder bildliche Nachrichten und Beiträge sowie die sie betreffenden Informationen, wie z. B. Angaben zur Autorenschaft oder Zeitpunkt der Erstellung); Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen). Protokolldaten (z. B. Logfiles betreffend Logins oder den Abruf von Daten oder Zugriffszeiten.).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nZwecke der Verarbeitung: Erbringung vertraglicher Leistungen und Erfüllung vertraglicher Pflichten; Sicherheitsmaßnahmen; Organisations- und Verwaltungsverfahren. Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit.\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;. Löschung nach Kündigung.\nRechtsgrundlagen: Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO). Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nRegistrierung mit Pseudonymen: Nutzer dürfen statt Klarnamen Pseudonyme als Nutzernamen verwenden; Rechtsgrundlagen: Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO).\nProfile der Nutzer sind öffentlich: Die Profile der Nutzer sind öffentlich sichtbar und zugänglich.\nKeine Aufbewahrungspflicht für Daten: Es obliegt den Nutzern, ihre Daten bei erfolgter Kündigung vor dem Vertragsende zu sichern. Wir sind berechtigt, sämtliche während der Vertragsdauer gespeicherte Daten des Nutzers unwiederbringlich zu löschen; Rechtsgrundlagen: Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO).\nSingle-Sign-On-Anmeldung Als \u0026quot;Single-Sign-On\u0026quot; oder \u0026quot;Single-Sign-On-Anmeldung bzw. \u0026quot;-Authentifizierung\u0026quot; werden Verfahren bezeichnet, die es Nutzern erlauben, sich mit Hilfe eines Nutzerkontos bei einem Anbieter von Single-Sign-On-Verfahren (z. B. einem sozialen Netzwerk), auch bei unserem Onlineangebot, anzumelden. Voraussetzung der Single-Sign-On-Authentifizierung ist, dass die Nutzer bei dem jeweiligen Single-Sign-On-Anbieter registriert sind und die erforderlichen Zugangsdaten in dem dafür vorgesehenen Onlineformular eingeben, bzw. schon bei dem Single-Sign-On-Anbieter angemeldet sind und die Single-Sign-On-Anmeldung via Schaltfläche bestätigen.\nDie Authentifizierung erfolgt direkt bei dem jeweiligen Single-Sign-On-Anbieter. Im Rahmen einer solchen Authentifizierung erhalten wir eine Nutzer-ID mit der Information, dass der Nutzer unter dieser Nutzer-ID beim jeweiligen Single-Sign-On-Anbieter eingeloggt ist und eine für uns für andere Zwecke nicht weiter nutzbare ID (sog \u0026quot;User Handle\u0026quot;). Ob uns zusätzliche Daten übermittelt werden, hängt allein von dem genutzten Single-Sign-On-Verfahren ab, von den gewählten Datenfreigaben im Rahmen der Authentifizierung und zudem davon, welche Daten Nutzer in den Privatsphäre- oder sonstigen Einstellungen des Nutzerkontos beim Single-Sign-On-Anbieter freigegeben haben. Es können je nach Single-Sign-On-Anbieter und der Wahl der Nutzer verschiedene Daten sein, in der Regel sind es die E-Mail-Adresse und der Benutzername. Das im Rahmen des Single-Sign-On-Verfahrens eingegebene Passwort bei dem Single-Sign-On-Anbieter ist für uns weder einsehbar, noch wird es von uns gespeichert.\nDie Nutzer werden gebeten, zu beachten, dass deren bei uns gespeicherte Angaben automatisch mit ihrem Nutzerkonto beim Single-Sign-On-Anbieter abgeglichen werden können, dies jedoch nicht immer möglich ist oder tatsächlich erfolgt. Ändern sich z. B. die E-Mail-Adressen der Nutzer, müssen sie diese manuell in ihrem Nutzerkonto bei uns ändern.\nDie Single-Sign-On-Anmeldung können wir, sofern mit den Nutzern vereinbart, im Rahmen der oder vor der Vertragserfüllung einsetzen, soweit die Nutzer darum gebeten wurden, im Rahmen einer Einwilligung verarbeiten und setzen sie ansonsten auf Grundlage der berechtigten Interessen unsererseits und der Interessen der Nutzer an einem effektiven und sicheren Anmeldesystem ein.\nSollten Nutzer sich einmal entscheiden, die Verknüpfung ihres Nutzerkontos beim Single-Sign-On-Anbieter nicht mehr für das Single-Sign-On-Verfahren nutzen zu wollen, müssen sie diese Verbindung innerhalb ihres Nutzerkontos beim Single-Sign-On-Anbieter aufheben. Möchten Nutzer deren Daten bei uns löschen, müssen sie ihre Registrierung bei uns kündigen.\nVerarbeitete Datenarten: Bestandsdaten (z. B. der vollständige Name, Wohnadresse, Kontaktinformationen, Kundennummer, etc.); Kontaktdaten (z. B. Post- und E-Mail-Adressen oder Telefonnummern); Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen); Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen). Event-Daten (Facebook) (\u0026quot;Event-Daten\u0026quot; sind Informationen, die beispielsweise über Meta-Pixel (sei es über Apps oder andere Kanäle) an den Anbieter Meta gesendet werden und sich auf Personen oder deren Aktionen beziehen. Zu diesen Daten zählen etwa Details zu Website-Besuchen, Interaktionen mit Inhalten und Funktionen, App-Installationen sowie Produktkäufe. Die Verarbeitung der Event-Daten erfolgt mit dem Ziel, Zielgruppen für Inhalte und Werbebotschaften (Custom Audiences) zu erstellen. Es ist wichtig zu beachten, dass Event-Daten keine tatsächlichen Inhalte wie verfasste Kommentare, keine Login-Informationen und keine Kontaktinformationen wie Namen, E-Mail-Adressen oder Telefonnummern umfassen. \u0026quot;Event-Daten\u0026quot; werden von Meta nach maximal zwei Jahren gelöscht, und die daraus gebildeten Zielgruppen verschwinden mit der Löschung unserer Meta-Nutzer-Konten.).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nZwecke der Verarbeitung: Erbringung vertraglicher Leistungen und Erfüllung vertraglicher Pflichten; Sicherheitsmaßnahmen; Anmeldeverfahren. Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit.\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;. Löschung nach Kündigung.\nRechtsgrundlagen: Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO). Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\n** Weitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:**\nFacebook Single-Sign-On: Authentifizierungsdienst der Plattform Facebook; Dienstanbieter: Meta Platforms Ireland Limited, Merrion Road, Dublin 4, D04 X2K5, Irland; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://www.facebook.com; Datenschutzerklärung: https://www.facebook.com/privacy/policy/; Auftragsverarbeitungsvertrag: https://www.facebook.com/legal/terms/dataprocessing. Grundlage Drittlandtransfers: Data Privacy Framework (DPF).\nGoogle Single-Sign-On: Authentifizierungsdienste für Nutzeranmeldungen, Bereitstellung von Single Sign-On-Funktionen, Verwaltung von Identitätsinformationen und Anwendungsintegrationen; Dienstanbieter: Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://www.google.de; Datenschutzerklärung: https://policies.google.com/privacy; Grundlage Drittlandtransfers: Data Privacy Framework (DPF). Widerspruchsmöglichkeit (Opt-Out): Einstellungen für die Darstellung von Werbeeinblendungen: https://myadcenter.google.com/.\nOpenID Single-Sign-On: Authentifizierungsdienste für Nutzeranmeldungen, Bereitstellung von Single Sign-On-Funktionen, Verwaltung von Identitätsinformationen und Anwendungsintegrationen; Dienstanbieter: OpenID Foundation, 2400 Camino Ramon, Suite 375, San Ramon, CA 94583, USA; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://openid.net; Datenschutzerklärung: https://openid.net/policies/. Grundlage Drittlandtransfers: Data Privacy Framework (DPF).\nX Single-Sign-On: Authentifizierungsdienste für Nutzeranmeldungen, Bereitstellung von Single Sign-On-Funktionen, Verwaltung von Identitätsinformationen und Anwendungsintegrationen; Dienstanbieter: Twitter International Company, One Cumberland Place, Fenian Street, Dublin 2 D02 AX07, Irland; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://x.com; Datenschutzerklärung: https://x.com/privacy, (Settings: https://x.com/personalization); Auftragsverarbeitungsvertrag: https://privacy.x.com/en/for-our-partners/global-dpa. Grundlage Drittlandtransfers: Standardvertragsklauseln (https://privacy.x.com/en/for-our-partners/global-dpa).\nBlogs und Publikationsmedien Wir nutzen Blogs oder vergleichbare Mittel der Onlinekommunikation und Publikation (nachfolgend \u0026quot;Publikationsmedium\u0026quot;). Die Daten der Leser werden für die Zwecke des Publikationsmediums nur insoweit verarbeitet, als es für dessen Darstellung und die Kommunikation zwischen Autoren und Lesern oder aus Gründen der Sicherheit erforderlich ist. Im Übrigen verweisen wir auf die Informationen zur Verarbeitung der Besucher unseres Publikationsmediums im Rahmen dieser Datenschutzhinweise.\nVerarbeitete Datenarten: Bestandsdaten (z. B. der vollständige Name, Wohnadresse, Kontaktinformationen, Kundennummer, etc.); Kontaktdaten (z. B. Post- und E-Mail-Adressen oder Telefonnummern); Inhaltsdaten (z. B. textliche oder bildliche Nachrichten und Beiträge sowie die sie betreffenden Informationen, wie z. B. Angaben zur Autorenschaft oder Zeitpunkt der Erstellung); Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen). Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nZwecke der Verarbeitung: Feedback (z. B. Sammeln von Feedback via Online-Formular); Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit; Sicherheitsmaßnahmen. Organisations- und Verwaltungsverfahren.\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;.\nRechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nKommentare und Beiträge: Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können ihre IP-Adressen auf Grundlage unserer berechtigten Interessen gespeichert werden. Das erfolgt zu unserer Sicherheit, falls jemand in Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt (Beleidigungen, verbotene politische Propaganda etc.). In diesem Fall können wir selbst für den Kommentar oder Beitrag belangt werden und sind daher an der Identität des Verfassers interessiert.\nDes Weiteren behalten wir uns vor, auf Grundlage unserer berechtigten Interessen die Angaben der Nutzer zwecks Spamerkennung zu verarbeiten.\nAuf derselben Rechtsgrundlage behalten wir uns vor, im Fall von Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden.\nDie im Rahmen der Kommentare und Beiträge mitgeteilten Informationen zur Person, etwaige Kontakt- sowie Webseiteninformationen als auch die inhaltlichen Angaben werden von uns bis zum Widerspruch der Nutzer dauerhaft gespeichert; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nAkismet Anti-Spam-Prüfung: Akismet Anti-Spam-Prüfung - Wir nutzen auf Grundlage unserer berechtigten Interessen den Dienst \u0026quot;Akismet\u0026quot;. Mit Hilfe von Akismet werden Kommentare echter Menschen von Spam-Kommentaren unterschieden. Dazu werden alle Kommentarangaben an einen Server in den USA verschickt, wo sie analysiert und für Vergleichszwecke vier Tage lang gespeichert werden. Ist ein Kommentar als Spam eingestuft worden, werden die Daten über diese Zeit hinaus gespeichert. Zu diesen Angaben gehören der eingegebene Name, die E-Mailadresse, die IP-Adresse, der Kommentarinhalt, der Referrer, Angaben zum verwendeten Browser sowie zum Computersystem und die Zeit des Eintrags.\nDie Nutzer können gerne Pseudonyme nutzen oder auf die Eingabe des Namens oder der Emailadresse verzichten. Sie können die Übertragung der Daten komplett verhindern, indem sie unser Kommentarsystem nicht nutzen. Das wäre schade, aber leider sehen wir keine Alternativen, die ebenso effektiv funktionieren; Dienstanbieter: Aut O’Mattic A8C Irland Ltd., Grand Canal Dock, 25 Herbert Pl, Dublin, D02 AY86, Irland; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://automattic.com; Datenschutzerklärung: https://automattic.com/privacy/. Grundlage Drittlandtransfers: Data Privacy Framework (DPF).\nProfilbilder von Gravatar: Profilbilder - Wir setzen innerhalb unseres Onlineangebotes und insbesondere im Blog den Dienst Gravatar ein.\nGravatar ist ein Dienst, bei dem sich Nutzer anmelden und Profilbilder und ihre E-Mail-Adressen hinterlegen können. Wenn Nutzer mit der jeweiligen E-Mail-Adresse auf anderen Onlinepräsenzen (vor allem in Blogs) Beiträge oder Kommentare hinterlassen, können deren Profilbilder neben den Beiträgen oder Kommentaren dargestellt werden. Hierzu wird die von den Nutzern mitgeteilte E-Mail-Adresse an Gravatar zwecks Prüfung, ob zu ihr ein Profil gespeichert ist, verschlüsselt übermittelt. Dies ist der einzige Zweck der Übermittlung der E-Mail-Adresse. Sie wird nicht für andere Zwecke verwendet, sondern danach gelöscht.\nDie Nutzung von Gravatar erfolgt auf Grundlage unserer berechtigten Interessen, da wir mit Hilfe von Gravatar den Beitrags- und Kommentarverfassern die Möglichkeit bieten, ihre Beiträge mit einem Profilbild zu personalisieren.\nDurch die Anzeige der Bilder bringt Gravatar die IP-Adresse der Nutzer in Erfahrung, da dies für eine Kommunikation zwischen einem Browser und einem Onlineservice notwendig ist.\nWenn Nutzer nicht möchten, dass ein mit ihrer E-Mail-Adresse bei Gravatar verknüpftes Benutzerbild in den Kommentaren erscheint, sollten sie zum Kommentieren eine E-Mail-Adresse nutzen, welche nicht bei Gravatar hinterlegt ist. Wir weisen ferner darauf hin, dass es auch möglich ist eine anonyme oder gar keine E-Mail-Adresse zu verwenden, falls die Nutzer nicht wünschen, dass die eigene E-Mail-Adresse an Gravatar übersendet wird. Nutzer können die Übertragung der Daten komplett verhindern, indem sie unser Kommentarsystem nicht nutzen; Dienstanbieter: Aut O’Mattic A8C Irland Ltd., Grand Canal Dock, 25 Herbert Pl, Dublin, D02 AY86, Irland; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO); Website: https://automattic.com; Datenschutzerklärung: https://automattic.com/privacy. Grundlage Drittlandtransfers: Data Privacy Framework (DPF).\nKontakt- und Anfrageverwaltung Bei der Kontaktaufnahme mit uns (z. B. per Post, Kontaktformular, E-Mail, Telefon oder via soziale Medien) sowie im Rahmen bestehender Nutzer- und Geschäftsbeziehungen werden die Angaben der anfragenden Personen verarbeitet, soweit dies zur Beantwortung der Kontaktanfragen und etwaiger angefragter Maßnahmen erforderlich ist.\nVerarbeitete Datenarten: Bestandsdaten (z. B. der vollständige Name, Wohnadresse, Kontaktinformationen, Kundennummer, etc.); Kontaktdaten (z. B. Post- und E-Mail-Adressen oder Telefonnummern); Inhaltsdaten (z. B. textliche oder bildliche Nachrichten und Beiträge sowie die sie betreffenden Informationen, wie z. B. Angaben zur Autorenschaft oder Zeitpunkt der Erstellung); Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen). Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen).\nBetroffene Personen: Kommunikationspartner.\nZwecke der Verarbeitung: Kommunikation; Organisations- und Verwaltungsverfahren; Feedback (z. B. Sammeln von Feedback via Online-Formular). Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit.\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;.\nRechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO). Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nKontaktformular: Bei Kontaktaufnahme über unser Kontaktformular, per E-Mail oder anderen Kommunikationswegen, verarbeiten wir die uns übermittelten personenbezogenen Daten zur Beantwortung und Bearbeitung des jeweiligen Anliegens. Dies umfasst in der Regel Angaben wie Name, Kontaktinformationen und gegebenenfalls weitere Informationen, die uns mitgeteilt werden und zur angemessenen Bearbeitung erforderlich sind. Wir nutzen diese Daten ausschließlich für den angegebenen Zweck der Kontaktaufnahme und Kommunikation; Rechtsgrundlagen: Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b) DSGVO), Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO). Webanalyse, Monitoring und Optimierung Die Webanalyse (auch als „Reichweitenmessung\u0026quot; bezeichnet) dient der Auswertung der Besucherströme unseres Onlineangebots und kann Verhalten, Interessen oder demografische Informationen zu den Besuchern, wie beispielsweise Alter oder Geschlecht, als pseudonyme Werte umfassen. Mithilfe der Reichweitenanalyse können wir zum Beispiel erkennen, zu welcher Zeit unser Onlineangebot oder dessen Funktionen beziehungsweise Inhalte am häufigsten genutzt werden, oder zur Wiederverwendung einladen. Ebenso ist es uns möglich, nachzuvollziehen, welche Bereiche der Optimierung bedürfen.\nNeben der Webanalyse können wir auch Testverfahren einsetzen, um etwa unterschiedliche Versionen unseres Onlineangebots oder seiner Bestandteile zu testen und zu optimieren.\nSofern nachfolgend nicht anders angegeben, können zu diesen Zwecken Profile, also zu einem Nutzungsvorgang zusammengefasste Daten, angelegt und Informationen in einem Browser bzw. in einem Endgerät gespeichert und dann ausgelesen werden. Zu den erhobenen Angaben gehören insbesondere besuchte Websites und dort genutzte Elemente sowie technische Auskünfte, wie etwa der verwendete Browser, das benutzte Computersystem sowie Angaben zu Nutzungszeiten. Sofern sich Nutzer in die Erhebung ihrer Standortdaten uns gegenüber oder gegenüber den Anbietern der von uns eingesetzten Dienste einverstanden erklärt haben, ist auch die Verarbeitung von Standortdaten möglich.\nDarüber hinaus werden die IP-Adressen der Nutzer gespeichert. Jedoch nutzen wir ein IP-Masking-Verfahren (d. h. Pseudonymisierung durch Kürzung der IP-Adresse) zum Schutz der Nutzer. Generell werden die im Rahmen von Webanalyse, A/B-Testings und Optimierung keine Klardaten der Nutzer (wie z. B. E-Mail-Adressen oder Namen) gespeichert, sondern Pseudonyme. Das heißt, wir als auch die Anbieter der eingesetzten Software kennen nicht die tatsächliche Identität der Nutzer, sondern nur die zum Zweck der jeweiligen Verfahren in deren Profilen gespeicherten Angaben.\nHinweise zu Rechtsgrundlagen: Sofern wir die Nutzer um deren Einwilligung in den Einsatz der Drittanbieter bitten, stellt die Rechtsgrundlage der Datenverarbeitung die Einwilligung dar. Ansonsten werden die Nutzerdaten auf Grundlage unserer berechtigten Interessen (d. h. Interesse an effizienten, wirtschaftlichen und empfängerfreundlichen Leistungen) verarbeitet. In diesem Zusammenhang möchten wir Sie auch auf die Informationen zur Verwendung von Cookies in dieser Datenschutzerklärung hinweisen.\nVerarbeitete Datenarten: Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen). Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nZwecke der Verarbeitung: Reichweitenmessung (z. B. Zugriffsstatistiken, Erkennung wiederkehrender Besucher). Profile mit nutzerbezogenen Informationen (Erstellen von Nutzerprofilen).\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;. Speicherung von Cookies von bis zu 2 Jahren (Sofern nicht anders angegeben, können Cookies und ähnliche Speichermethoden für einen Zeitraum von zwei Jahren auf den Geräten der Nutzer gespeichert werden.).\nSicherheitsmaßnahmen: IP-Masking (Pseudonymisierung der IP-Adresse).\nRechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO). Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nMatomo (ohne Cookies): Bei Matomo handelt es sich um eine datenschutzfreundliche Webanalysesoftware, die ohne Cookies eingesetzt wird und bei der die Erkennnung wiederkehrender Nutzer mit Hilfe eines so genannten \u0026quot;digitalen Fingerabdrucks\u0026quot; erfolgt, der anonymisiert gespeichert und alle 24 Stunden geändert wird; Beim \u0026quot;digitalen Fingerabdruck\u0026quot; werden Nutzerbewegungen innerhalb unseres Onlineangebotes mit Hilfe von pseudonymisierten IP-Adressen in Kombination mit nutzerseitige Browsereinstellungen so erfasst, dass Rückschlüsse auf die Identität einzelner Nutzer nicht möglich sind. Die im Rahmen der Nutzung von Matomo erhobenen Daten der Nutzer werden nur von uns verarbeitet und nicht mit Dritten geteilt; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO). Website: https://matomo.org/. Plug-ins und eingebettete Funktionen sowie Inhalte Wir binden Funktions- und Inhaltselemente in unser Onlineangebot ein, die von den Servern ihrer jeweiligen Anbieter (nachfolgend als „Drittanbieter\u0026quot; bezeichnet) bezogen werden. Dabei kann es sich zum Beispiel um Grafiken, Videos oder Stadtpläne handeln (nachfolgend einheitlich als „Inhalte\u0026quot; bezeichnet).\nDie Einbindung setzt immer voraus, dass die Drittanbieter dieser Inhalte die IP-Adresse der Nutzer verarbeiten, da sie ohne IP-Adresse die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse ist damit für die Darstellung dieser Inhalte oder Funktionen erforderlich. Wir bemühen uns, nur solche Inhalte zu verwenden, deren jeweilige Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte anzuwenden. Drittanbieter können ferner sogenannte Pixel-Tags (unsichtbare Grafiken, auch als „Web Beacons\u0026quot; bezeichnet) für statistische oder Marketingzwecke einsetzen. Durch die „Pixel-Tags\u0026quot; können Informationen, wie etwa der Besucherverkehr auf den Seiten dieser Website, ausgewertet werden. Die pseudonymen Informationen können darüber hinaus in Cookies auf dem Gerät der Nutzer gespeichert werden und unter anderem technische Auskünfte zum Browser und zum Betriebssystem, zu verweisenden Websites, zur Besuchszeit sowie weitere Angaben zur Nutzung unseres Onlineangebots enthalten, aber auch mit solchen Informationen aus anderen Quellen verbunden werden.\nHinweise zu Rechtsgrundlagen: Sofern wir die Nutzer um ihre Einwilligung in den Einsatz der Drittanbieter bitten, stellt die Rechtsgrundlage der Datenverarbeitung die Erlaubnis dar. Ansonsten werden die Nutzerdaten auf Grundlage unserer berechtigten Interessen (d. h. Interesse an effizienten, wirtschaftlichen und empfängerfreundlichen Leistungen) verarbeitet. In diesem Zusammenhang möchten wir Sie auch auf die Informationen zur Verwendung von Cookies in dieser Datenschutzerklärung hinweisen.\nVerarbeitete Datenarten: Nutzungsdaten (z. B. Seitenaufrufe und Verweildauer, Klickpfade, Nutzungsintensität und -frequenz, verwendete Gerätetypen und Betriebssysteme, Interaktionen mit Inhalten und Funktionen). Meta-, Kommunikations- und Verfahrensdaten (z. B. IP-Adressen, Zeitangaben, Identifikationsnummern, beteiligte Personen).\nBetroffene Personen: Nutzer (z. B. Webseitenbesucher, Nutzer von Onlinediensten).\nZwecke der Verarbeitung: Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit; Reichweitenmessung (z. B. Zugriffsstatistiken, Erkennung wiederkehrender Besucher); Tracking (z. B. interessens-/verhaltensbezogenes Profiling, Nutzung von Cookies); Zielgruppenbildung. Marketing.\nAufbewahrung und Löschung: Löschung entsprechend Angaben im Abschnitt \u0026quot;Allgemeine Informationen zur Datenspeicherung und Löschung\u0026quot;. Speicherung von Cookies von bis zu 2 Jahren (Sofern nicht anders angegeben, können Cookies und ähnliche Speichermethoden für einen Zeitraum von zwei Jahren auf den Geräten der Nutzer gespeichert werden.).\nRechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO). Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nWeitere Hinweise zu Verarbeitungsprozessen, Verfahren und Diensten:\nFont Awesome (Bereitstellung auf eigenem Server): Darstellung von Schriftarten und Symbolen; Dienstanbieter: Die Font Awesome Icons werden auf unserem Server gehostet, es werden keine Daten an den Anbieter von Font Awesome übermittelt; Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO).\nYouTube-Videos: Videoinhalte; Dienstanbieter: Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland; Rechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO); Website: https://www.youtube.com; Datenschutzerklärung: https://policies.google.com/privacy; Grundlage Drittlandtransfers: Data Privacy Framework (DPF). Widerspruchsmöglichkeit (Opt-Out): Opt-Out-Plugin: https://tools.google.com/dlpage/gaoptout?hl=de, Einstellungen für die Darstellung von Werbeeinblendungen: https://myadcenter.google.com/personalizationoff.\nErstellt mit kostenlosem Datenschutz-Generator.de von Dr. Thomas Schwenke\n","link":"https://blog.tausys.de/datenschutz/","section":"","tags":null,"title":"Datenschutzerklärung"},{"body":"","link":"https://blog.tausys.de/tags/drupal/","section":"tags","tags":null,"title":"Drupal"},{"body":"Jansens Pott hat in seinem Blog eine Idee aus dem englischsprachigen Raum übernommen, in der Blogger ein paar Fragen zu ihren Blogs und ihrer Bloggerkarriere beantworten. Ich finde es interessant, auch mal etwas Persönliches über meine Blogger-Kolleginnen und -Kollegen zu lesen und möchte gern selbst etwas zu dieser Idee beitragen. Auf geht's.\nWarum hast Du ursprünglich mit dem Bloggen angefangen? Mein erster Berufswunsch war Lehrer zu werden. Ich wollte Wissen mit anderen teilen und weitergeben. Aus dem Berufswunsch wurde nichts, vielmehr habe ich mein Hobby zum Beruf gemacht, der mir auch nach knapp vier Jahrzehnten immernoch Freude bereitet. Dabei habe ich die Anfänge der elektronischen Kommunikation über FidoNet bis Usenet miterlebt und schon damals quasi Wissen mit anderen ausgetauscht. So richtig mit dem Schreiben in der Form eines Blogs ging es aber erst los, als ein CMS zur Verfügung stand, in welchem man einfach Beiträge verfassen und veröffentlichen konnte.\nWelche Plattform nutzt Du für Deinen Blog und warum hast Du Dich dafür entschieden? Meine allererste private Webseite purzelte Mitte der 1990er aus dem Microsoft Publisher. Diese wurde kurz danach durch eine handgeschriebene Webseite mit ersten Tipps ersetzt. Damals gab es noch kleine Buttons mit Aufschriften wie created with vim oder best viewed with any browser, welche eine gewisse Qualität ausdrücken sollten und auf vielen Webseiten zu sehen waren. Weiter führte mein Weg über Zope, phpWebSite, Drupal, Mambo / Joomla, SnipSnap, TYPO3 und WordPress, welches ich am längsten im Einsatz hatte. Jetzt wird die Webseite durch Hugo erstellt. Wie man sieht war und bin ich sehr experimentierfreudig und habe viele Systeme ausprobiert.\nFür Hugo habe ich mich entschieden, da statische Webseiten wesentlich sicherer sind als Systeme, die Seiten dynamisch generieren. Außerdem ist die Auslieferung statischer Webseiten ressourcenschonender. Die andauernden Updates von Theme und Plugins gehören nun der Vergangenheit an. Nach der Einrichtung kann man sich auf das Wesentliche konzentrieren: auf das Schreiben neuer Artikel. Und das geht mit einfachem Markdown wirklich gut von der Hand.\nHast Du schon auf anderen Plattformen gebloggt? Bis auf meine erste Webseite, die auf Servern eines Vereins gehostet wurde, habe ich immer Server angemietet, auf denen mein eigener Kram läuft. Anders wäre das Ausprobieren so vieler unterschiedlicher Systeme gar nicht möglich gewesen.\nEiner meiner Spielcharaktere hat ein Blog bei Blogger, das mit meinem Blog hier aber thematisch nichts gemein hat.\nWie schreibst Du Deine Blogposts? Nutzt Du ein lokales Bearbeitungstool oder eine Panel/Dashboard-Funktion Deines Blogs? In einigen früheren Systemen war der CKEditor integriert. In WordPress habe ich lange Zeit den Classic Editor genutzt. Mit dem Nachfolger Gutenberg konnte ich mich nie richtig anfreunden. Jetzt bin ich froh, zum Schreiben einfach einen normalen Texteditor benutzen zu können. Gerade benutze ich Notepad++, der, wie viele anderen Editoren auch, Syntax-Highlighting für Markdown beherrscht.\nWann fühlst Du Dich am meisten inspiriert zu schreiben? In meinem Blog geht es meistens um Dinge, über die ich bei meiner täglichen Arbeit in der IT stolpere. Ganz besonders ans Aufschreiben denke ich bei Problemen oder Fehlern, deren Lösung ich erst nach wirklich langer Suche gefunden habe. Die Hoffnung ist, dass andere die das gleiche Problem haben, vielleicht meine Lösung einfach und verständlich finden.\nVeröffentlichst Du Deine Texte sofort oder lässt Du sie erst eine Weile als Entwurf liegen? Am Anfang meiner WordPress-Zeit habe ich noch Ideen aufgeschrieben. Im WordPress-Dashbord gab es dazu das Widget Schneller Entwurf. Von diesen Entwürfen sind fast keine veröffentlicht worden. Die Artikelteile zur Lösung eines Problempuzzles gerieten zu schnell in Vergessenheit und die Liste der unveröffentlichten Ideen war mehr ein \u0026quot;pile of shame\u0026quot; statt etwas, was Spaß machen sollte.\nWenn ich an der Lösung eines Problems dran bin habe ich zum Schluss alle Einzelteiler vor mir liegen. Spätestens nach zwei Tagen fange ich dann das Schreiben an und veröffentliche kurz darauf auch.\nÜber welche Themen schreibst Du generell? In meinem Blog geht es hauptsächlich um Problemelösungen in der IT und dabei häufig um Konfiguration oder Betrieb von Software-Komponenten oder das Zusammenspiel derer. Ab und zu schreibe ich auch über Hardware, die ich selbst angefasst habe und die deshalb ja auch so heißt. Und zu guter Letzt darf der Spaß nicht zu kurz kommen, weshalb es auch eine Kategorie Fundstücke im Blog gibt.\nFür wen schreibst Du? Ich habe mich einem kleinen Netzwerk von IT-Bloggern angeschlossen. Wir lesen uns gegenseitig über RSS, welches ich selbst extensiv für meinen News-Konsum nutze. Aus den Zugriffen auf das Blog weiß ich, dass auch viele Besucher von Suchmaschinen vorbeikommen, die genau einen Artikel lesen und dann wieder verschwinden. Das sind die Leute, für die ich schreibe. Leute, die eine Lösung zu einem Problem suchen und hoffentlich bei mir gefunden haben.\nWas ist Dein Lieblingsbeitrag auf Deinem Blog? Es fällt schwer, einen Artikel auszuwählen. Tendentiell sind es wohl die Artikel, die am längsten in der Erstellung gebraucht haben. Ich musste kurz find -name index.md | xargs wc -l | sort -n ausführen, was bei viel Code oder Konfigurationsdateien im Artikel aber auch nicht weiterhilft.\nIch wähle einen Arikel zu GIMP, der die Erstellung eines Linseneffekts beschreibt und der mit sechsundzwanzig Bildern der bisher meistbebilderte Beitrag in meinem Blog ist.\nHast Du schon Blogpausen eingelegt oder Blogs ganz aufgegeben? Erst vor kurzem habe ich eine zweijährige Blogpause beendet. Privat hat sich in dieser Zeit viel bei mir verändert. Ich bin etwas erschrocken, denn mir kam die Zeit gar nicht so lange vor.\nWas empfiehlst Du Menschen, die mit dem Bloggen anfangen wollen? Ein technischer Rat: wenn möglich sucht euch eine Plattform aus, in der die Artikel in einem von vielen Systemen unterstützten Format geschrieben oder wenigstens exportiert werden können, wie z.B. Markdown. Aus meiner Erfahrung mit viel Import/Export über viele Generationen unterschiedlicher Blog-Systeme weiß ich, dass jegliche eigene Formatierung oder Formatierungen durch irgendwelche CMS-Plugins nur im Chaos enden.\nEin Rat zum Stil: lest eure Artikel. Lest sie nochmal. Und dann korrigiert eventuelle Rechtschreibfehler oder holprigen Satzbau. Lesen macht Freude, wenn einem möglichst wenig Fehler ins Auge springen.\nUnd ein Rat zum Schluss: es soll Spaß machen! Schreibt, wenn ihr Bock habt und nicht, wenn andere es euch sagen. Mir wurde noch keine Durststrecke übel genommen.\nHast Du Zukunftspläne für Deinen Blog? Vielleicht ein Redesign, ein Wechsel der Plattform oder neue Features? Das Redesign hat ja gerade stattgefunden. Es fehlen noch das eine oder andere Feature. Ich denke, dass ich mich zuerst um die Kommentare kümmere, denn erst dann können die Leser ja mitteilen, was sonst noch so fehlt. Eine zweite Baustelle ist SEO, denn was nutzt ein gut geschriebener Artikel, wenn niemand ihn findet. Thematisch wird das Blog gleich bleiben.\nVielen Dank fürs Lesen und eure Aufmerksamkeit.\n","link":"https://blog.tausys.de/2025/02/18/fragen-und-antworten-zu-meinem-blog/","section":"posts","tags":["Hugo","WordPress","Drupal","Joomla","OSS"],"title":"Fragen und Antworten zu meinem Blog"},{"body":"","link":"https://blog.tausys.de/tags/joomla/","section":"tags","tags":null,"title":"Joomla"},{"body":"","link":"https://blog.tausys.de/tags/wordpress/","section":"tags","tags":null,"title":"WordPress"},{"body":"Um externe Links automatisch mit CSS zu kennzeichnen müssen zuerst mit einem passenden CSS-Selektor alle externen Links ausgewählt werden. Anschließend können Darstellungseigenschaften für die ausgewählten Links festgelegt werden. Mit folgendem Code werden z.B. hier im Blog alle ausgehenden Links mit einer kleinen Grafik versehen.\n1article a[href^=\u0026#34;http://\u0026#34;]:not([href*=\u0026#34;blog.tausys.de\u0026#34;]):not([href*=\u0026#34;localhost\u0026#34;]):after, 2article a[href^=\u0026#34;https://\u0026#34;]:not([href*=\u0026#34;blog.tausys.de\u0026#34;]):after { 3 content: \u0026#34; \u0026#34; url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=); 4 position: relative; 5 top: -.3em; 6} Alle Artikel hier im Blog stehen innerhalb von \u0026lt;article\u0026gt; ... \u0026lt;/article\u0026gt;. In diesen Artikeln werden alle Links (a) selektiert, welche mit http:// beginnen und nicht auf die Blog-Webseite (blog.tausys.de) zeigen. Der Link darf auch nicht auf localhost zeigen, da ich Artikel-Entwürfe mit hugo darüber anzeigen lasse.\nDann erfolgt die Selektion nocheinmal mit https://. Localhost braucht hier nicht ausgeschlossen zu werden, denn der lokale Hugo-Server läuft nur über http. Durch :after kann mit content: ein Inhalt nach den selektierten Links eingefügt werden, hier eine kleine Grafik, welche anschließend noch ein wenig nach oben versetzt wird. Einfach, oder?\nDas Ergebnis kann man gleich hier sehen, denn eine ähnliche Idee hatte schon jemand auf stack overflow. Die kleine Grafik stammt ebenfalls von dort.\n","link":"https://blog.tausys.de/2025/02/14/externe-links-mittels-css-kennzeichnen/","section":"posts","tags":["CSS","OSS"],"title":"Externe Links mittels CSS kennzeichnen"},{"body":"Nachdem die Migration zu Hugo sehr erfolgreich verlaufen ist, wurden auch Einstellungen in der Nginx-Konfiguration notwendig.\nNicht mehr vorhandene Seiten Nicht mehr vorhandene Seiten müssen Suchmaschinen mitgeteilt werden. Dadurch wissen die Suchmaschinen, dass die Seite nicht nur temporär nicht gefunden werden kann, sondern permanent entfernt wurde. Mit Nginx setze ich dazu mit einer Map eine Variable, welche in der nachfolgenden Nginx-Konfiguration abgefragt wird um den Code HTTP-Statuscode 410 (gone) zurückzusenden. In der Map sind alle nicht mehr verfügbaren Pfade eingetragen.\n1map $uri $gone { 2\tdefault 0; 3\t^/pfad-einer-nicht-mehr-vorhandenen-seite/ 1; 4\t^/pfad-noch-einer-nicht-mehr-vorhandenen-seite/ 1; 5\t... 6} Zu beachten ist, dass die Map außerhalb des Server-Contextes und innerhalb des HTTP-Contextes in Nginx stehen muss. Im jeweiligen Server-Block kann dann der Wert der Variablen $gone abgefragt werden.\n1if ($gone) { 2\treturn 410; 3} Umschreiben von WordPress- auf Hugo-Pfade WordPress verwendet für die RSS-Feeds den Pfad /feed/, Hugo verwendet dafür /index.xml. Mit Hilfe von Nginx und einer Rewrite-Regel wird Besuchern mitgeteilt, dass sich der Pfad permanent geändert hat.\n1rewrite ^/feed/$ /index.xml permanent; Stichworte wurden bei mir in WordPress unter der URL /tag/ angelegt. Der von mir verwendete wordpress-to-hugo-exporter machte aus den Stichworten dann allerdings daraus eine Taxononomie /tags/, welche ebefalls umgeschrieben werden musste.\n1rewrite ^/tag/(.*) /tags/$1 permanent; Einstellen der \u0026quot;Nicht gefunden\u0026quot;-Seite Das von mir verwendete Hugo-Theme bringt eine eigene \u0026quot;Nicht gefunden\u0026quot;-Seite mit. Diese muss natürlich auch Nginx bekannt gegeben werden.\n1error_page 404 /404.html; Sitemaps Die Sitemaps habe ich nicht per Rewrite-Regel in Nginx umgeschrieben sondern direkt den neuen Pfad in den jeweiligen Verwaltungswebseiten der Suchmachinen eingetragen.\nGoogle Search Console Microsoft Bing Webmaster Tools Entferntes Zusätzlich konnte ich viel Konfiguration betreffend PHP oder dem von mir verwendeten WordPress-Cache-Plugin entfernen. Nun sieht nicht nur die Webseite sondern auch die Konfiguration aufgeräumter aus.\n","link":"https://blog.tausys.de/2025/02/12/anpassungen-in-nginx-fuer-hugo/","section":"posts","tags":["Hugo","WordPress","Nginx"],"title":"Anpassungen in Nginx für Hugo"},{"body":"","link":"https://blog.tausys.de/tags/nginx/","section":"tags","tags":null,"title":"Nginx"},{"body":"Nach der erfolgreichen Migration zu Hugo fehlen noch diese und jene Bausteinchen auf der Webseite. Heute soll es um die Suche gehen. Hugo bietet dazu mehrere Tools an, Open Source wie auch kommerziell.\nDa ich hier alles selbst hoste, habe ich mich für pagefind entschieden. Pagefind erstellt nach dem Generieren der Seiten durch Hugo in einem eigenen Lauf einen Suchindex. Dieser wird im public-Verzeichnis unter searchindex/ abgelegt.\nDie Integration in Hugo ist dabei sehr einfach. Zuerst wird eine neue Seite erstellt, welche das für die Suche notwendige Eingabeformular enthält. Ich habe dazu die Seite Search angelegt, in der der Shortcode {{\u0026lt; search \u0026gt;}} eingebettet ist. Der Shortcode ist unter layouts/shortcodes/search.html abgelegt und ethält den HTML-Code aus dem Pagefind-Quickstart. Den Code habe ich bei mir noch um das automatische Setzen des Fokus auf das Eingabefeld ergänzt.\n1\u0026lt;link href=\u0026#34;/pagefind/pagefind-ui.css\u0026#34; rel=\u0026#34;stylesheet\u0026#34;\u0026gt; 2\u0026lt;script src=\u0026#34;/pagefind/pagefind-ui.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 3\u0026lt;div id=\u0026#34;search\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; 4\u0026lt;script\u0026gt; 5 window.addEventListener(\u0026#39;DOMContentLoaded\u0026#39;, (event) =\u0026gt; { 6 new PagefindUI({ element: \u0026#34;#search\u0026#34;, showSubResults: true }); 7 document.getElementsByClassName(\u0026#34;pagefind-ui__search-input\u0026#34;)[0].focus(); 8 }); 9\u0026lt;/script\u0026gt; Danach baut man einmalig noch den Aufruf der Suchseite in das eigene Thema ein, wie z.B. hier rechts oben im Menü.\nPagefind kann als Python-Modul installiert werden. Da ich hier Debian mit einer durch die Distribution verwalteten Paketauswahl einsetze, erstelle ich zuerst ein virtuelles Environment unter meinem User und installiere dann Pagefind im gerade erzeugten venv.\n1python3 -m venv ~/venv/pagefind 2~/venv/pagefind/bin/python3 -m pip install \u0026#39;pagefind[extended]\u0026#39; Danach wird nach dem Lauf von hugo mit der Ausgabe der statischen Webseiten in public/ der Suchindex mit Pagefind erstellt.\n1cd \u0026lt;Verzeichnis der Webseite\u0026gt; 2~/venv/pagefind/bin/python3 -m pagefind --site public Anschließend kann der Inhalt von public/ auf den Webserver hochgeladen werden. Ich habe diesen Schritt gleich in mein publish-Skript aufgenommen, damit er jedes Mal automatisch ausgeführt wird.\n","link":"https://blog.tausys.de/2025/01/30/suche-fuer-hugo/","section":"posts","tags":["Hugo"],"title":"Suche für Hugo"},{"body":"","link":"https://blog.tausys.de/tags/cms/","section":"tags","tags":null,"title":"CMS"},{"body":"Seit langer Zeit habe ich hier keinen neuen Beitrag mehr veröffentlicht. Was im Gegensatz zur Veröffentlichungsfrequenz neuer Artikel jedoch enorm gestiegen ist, sind die Anmeldeversuche an der hiesigen WordPress-Instanz. WordPress und die wenigen installierten Addons aktualisieren sich zwar automatisch, aber es bleibt immer das ungute Gefühl, irgendwann doch von einer Lücke im PHP-Code oder gar im PHP-Interpreter betroffen zu sein und sich dann zumindest Arbeit und evtl. auch Ärger einzuhandeln.\nSo geht das hier in einer Tour:\n1Jan 28 15:55:41 web WordPress[223248]: Authentication attempt for unknown user admin from 162.0.217.104 2Jan 28 15:57:03 web WordPress[223248]: Authentication attempt for unknown user admin from 170.64.145.120 3Jan 28 15:57:15 web WordPress[223249]: Authentication failure for (redacted) from 160.251.151.81 4Jan 28 15:57:26 web WordPress[223249]: Authentication failure for (redacted) from 192.248.95.74 5Jan 28 15:57:37 web WordPress[223248]: Authentication failure for (redacted) from 212.227.171.173 6Jan 28 15:57:50 web WordPress[223014]: Authentication failure for (redacted) from 85.10.158.214 7Jan 28 15:58:11 web WordPress[223248]: Authentication attempt for unknown user admin from 134.119.0.24 8Jan 28 15:58:20 web WordPress[223249]: Authentication attempt for unknown user Admin from 91.134.248.249 9Jan 28 15:58:27 web WordPress[223014]: Authentication failure for (redacted) from 217.182.176.140 10Jan 29 00:19:52 web wordpress[223014]: Authentication attempt for unknown user crypto7CaM from 80.92.206.252 11Jan 29 05:03:13 web wordpress[223014]: XML-RPC authentication failure for gast from 143.198.91.39 12Jan 29 05:03:13 web wordpress[223248]: XML-RPC authentication failure for gast from 143.198.91.39 13Jan 29 06:51:20 web wordpress[223248]: XML-RPC authentication attempt for unknown user admin from 2a01:4f8:121:1ee::2 14Jan 29 07:22:07 web wordpress[223249]: XML-RPC authentication attempt for unknown user Admin from 159.69.220.32 15Jan 29 07:29:40 web wordpress[223014]: XML-RPC authentication attempt for unknown user admin from 212.80.19.3 16Jan 29 08:49:05 web wordpress[223248]: XML-RPC authentication failure for gast from 217.182.200.53 17Jan 29 09:08:16 web wordpress[258284]: XML-RPC authentication failure for gast from 198.54.126.2 Daher hatte ich schon lange vor, das Blog auf statische Webseiten umzustellen. Zur Auslieferung der Webseiten ist dann kein PHP mehr erforderlich, es müssen keine Verrenkungen mehr gemacht werden, die die dynamisch erstellten Seiten irgendwie zwischenspeichern, um sie schnell an den Besucher oder die Suchmaschinen auszuliefern. Auch gibt es dann keine Anmeldung über irgendwelche PHP-Formulare oder die andauernd von der ganzen Welt ausprobierte Anmeldung über das WordPress-XML-RPC-Interface mehr. Allein im Januar 2025 wurden an meinem kleinen WordPress-Blog über 7000 unterschiedliche IPs festgestellt, welche Anmeldeversucheversuche unternahmen. Schon lange blockiere ich diese IPs automatisch mit fail2ban für zwei Monate.\nDer Umstieg war also beschlossene Sache, nun galt es erst mal zu lesen, was es alles für Generatoren gibt. Meine Wahl für einen Generator zum Erzeugen statischer Webseiten fiel auf Hugo. Ich hatte gelesen, dass Hugo im Vergleich zu anderen Generatoren um einiges schneller sein sollte. Außerdem konnte ich bei jemandem abschauen, der diese Umstellung vor einiger Zeit mit seinem Blog durchgeführt hat, sein gesamtes Blog auf github hostet und den Sourcecode seines Blogs in einem öffentlichen Repository zur Verfügung stellt. An dieser Stelle: herzlichen Dank an isotopp!\nErste Schritte mit Hugo Wie häufig bei größeren Projekten im Selbststudium ist der Anfang holprig. Meine bevorzugte Linux-Distribution enthält Hugo nur in einer alten Version, mit der nicht einmal das Quickstart-Tutorial von der Hugo-Webseite durchgeführt werden kann. Zähneknirschend installiert man dann also erstmal ein Paket, um dessen Update man sich ab da selber kümmern muss. Die anschließenden Schritte im Quickstart-Tutorial waren einfach und verständlich. Danach hat man eine Webseite mit zwei oder drei Seiten. Und was nun?\nInhalt muss her Inhalt war vorhanden, im alten WordPress-Blog. Glücklicherweise gibt es bei Hugo eine kleine Migrationsanleitung nebst der Empfehlungen für ein paar Programme, welche die alten Artikel aus WordPress exportieren und in ein für Hugo geeignetes Format umwandeln. Am besten hat bei mir der wordpress-to-hugo-exporter funktioniert. Mit diesem Exporter können die bestehenden Artikel-URLs beibehalten werden, die bereits bei Suchmaschinen bekannt oder evtl. auch auf anderen Seiten verlinkt sind. Nach dem Aktivieren des Plugins war der Export per CLI schnell erledigt.\nDie Artikel werden als Markdown exportiert und in ein ZIP-Archiv zusammengepackt. Damit war auch gleich festgelegt, in welcher Auszeichnungssprache ich weiterhin hier unterwegs sein werde: Markdown. Hugo verwendet standardmäßig den Prozessor Goldmark zur Verarbeitung der Markdown-Dateien welcher ein paar Features zur Textauszeichnung hinzufügt, so z.B. durchgestrichenen Text: durchgestrichen, was es in purem Markdown nicht gibt. Das hätte ich mal früher wissen sollen, dann hätten die ganzen \u0026lt;del\u0026gt; ... \u0026lt;/del\u0026gt;-Passagen aus den alten Texten überlebt. Nun ja, nun sind sie weg und ich verspüre wenig Motivation, eh nicht mehr gültige Aussagen in alte Texte wieder einzubauen.\nDen ausgepackten Inhalt verfüttert man dann direkt an Hugo und sieht erst mal jede Menge Warnungen durch die Konsole huschen.\nHTML und andere Überbleibsel Ein Blick in die Markdown-Texte offenbarte Schlimmes! Das Blog ist nun schon viele Jahre gewachsen, lief auf mehreren vollkommen unterschiedlichen CMS und hat selbst mit WordPress die Fahrt vom Legacy-Editor zu Gutenberg mitgemacht. Das dadurch entstandene Wirrwarr konnte kein noch so guter Exporter automatisch beheben, viele Artikel waren Kraut und Rüben mit haufenweise übrig gebliebenem HTML und gespickt mit NBSPs.\nübrig gebliebene NBSPs\ngrep, sed und awk sind gute Freunde, die diesen Wildwuchs zähmen konnten. Leider kamen auch ein paar Stunden im Editor hinzu, da einige Änderungen nicht gut zu automatisieren waren.\nBei den Medien, meinstens also Bildern, war es nicht anders. Über die Jahre immer mal wieder wechselnde WordPress-Plugins und -Themen hatten ihre Spuren hinterlassen und Thumbnails in allen möglichen Größen angelegt.\n1$ ls 2software_1511338364-1024x682.jpg software_1511338364-e1511338597460-960x225.jpg 3software_1511338364-150x150.jpg software_1511338364-e1511338597460.jpg 4software_1511338364-300x200.jpg software_1511338364.jpg 5software_1511338364-768x512.jpg Windows-Error-Reporting-ausgeschaltet-150x150.png 6software_1511338364-e1511338424962.jpg Windows-Error-Reporting-ausgeschaltet-300x225.png 7software_1511338364-e1511338597460-150x150.jpg Windows-Error-Reporting-ausgeschaltet-768x576.png 8software_1511338364-e1511338597460-300x70.jpg Windows-Error-Reporting-ausgeschaltet.png 9software_1511338364-e1511338597460-768x180.jpg Außerdem habe ich den Verdacht, dass ein Plugin zur Optimierung von Grafiken die Dateien mit einer eindeutigen Nummer versehen hat, was sofort die Alarmglocken aus der Tracking-Ecke schrillen ließ und ebenfalls bereinigt werden wollte.\nNachdem die Texte dann bereinigt waren, ging es um die Frage, wie der Inhalt denn nun präsentiert werden soll. Hier war erst einmal wieder das Studium der Hugo-Dokumentation erforderlich, um herauszubekommen, welche Features Hugo bereits mitbringt. Klar war auch, dass das Thema nicht von mir per Hand geschrieben werden konnte. Dazu kenne ich mich in der von Hugo verwendeten Skriptsprache bisher zu wenig aus.\nThema ist Thema Glücklicherweise ist auf der Hugo-Webseite eine Auswahl an Themes verlinkt. Viele davon stellen eine Demo-Seite für den ersten Eindruck bereit. Anfangs habe ich mit dem Thema ananke experimentiert, welches auch im Hugo-Quickstart-Tutorial verwendet wird. Kurze Zeit später aber stellte ich fest, dass doch viele Features bzw. Darstellungsmöglichkeiten fehlen, die ich gerne gehabt hätte. Kris verwendet ein Bootstrap-Theme, welches allerdings auch einen ganzen Rattenschwanz von Node-Modulen hinter sich herzieht. Diesen Schuh wollte ich mir nicht anziehen und bin bei dem Thema Beautiful Hugo gelandet. Nach ein paar kleinen Anpassungen und dem Einspielen der Grafiken für Header, Seitenkopf und den Artikeln selbst war schon einmal ein Grundstein gelegt.\nViele kleine Baustellen Bildergalerien Was mir überhaupt nicht klar war, wie man in Hugo eine Bildergalerie darstellt oder einfach ein Bild beim Mausklick in einer Lightbox öffnet. Diese Funktion schien auch jedes Thema anders auf eigene Weise zu machen. Die Google-Suche nach einer Bildergalerie förderte ein paar Treffer zutage, die nach der Installation aber alle nicht so recht funktionieren wollten. Erst viel später bemerkte ich, dass Hugo selbst gallery und figure beherrscht und mein ausgewähltes Theme diese beiden überschreibt, um sie an das eigene Layout anzupassen.\nBeautiful Hugo - Photoswipe Gallery\nJetzt mussten alle Bild-Links in den Markdown-Dateien auf figure umgeschrieben werden. Nächster Auftritt von grep, sed und awk. Die wenigen alten Galerien, gerade einmal sechs Stück, habe ich manuell angepasst.\nKontakt Da ist es, ein Problem statischer Seiten: es gibt keine \u0026quot;Aktionsseiten\u0026quot;. Nirgendwo läuft irgendetwas, was Formulardaten entgegen nehmen und Kontaktnachrichten per E-Mail verschicken könnte. Mir ist bisher kein europäischer Dienst bekannt, der so einen Dienst innerhalb der EU GDPDR-konform anbietet. Eure Kontaktanfragen möchte ich keinem Dienst von über dem Teich zum vielleicht ewigen Speichern frei Haus liefern. Wer schon aus dem ausschließlichen Konsum von Social-Media ausgebrochen ist und Blogs ließt, kennt vielleicht noch eine ganz alte und immernoch funktionierende Methode zur Kontaktaufnahme: E-Mail. Kennste nicht? Guckste hier oder hier oder z.B. auch hier. Meine E-Mail-Adresse steht im Impressum.\nSonstige Anpassungen Zusätzlich sind noch viele kleine Schräubchen zu drehen wie für das Datumsformat, die Sprache, die Verzeichnisstruktur, was wo liegen soll und und und. Erfreulicherweise lassen sich viele Einstellungen in einer einzigen Datei im Hauptverzeichnis der Website-Sourcen festlegen.\nEine Sache habe ich im Content geändert. Die vor vielen Jahren moderne Flut an Smileys wurde ausgemerzt. Die Dinger kann man im Chat oder in sozialen Netzwerken verwenden, bei Beschreibungen haben sie meiner Meinung nach weniger zu suchen.\nEbenfalls wurden einige Fundstücke gelöscht und werden jetzt mit einem HTTP-Code 410 beantwortet, die schon damals eher grenzwertig waren.\nPräsentation Eine erste, präsentierfähige Version ist nun fertig. Bisher noch keine Gedanken habe ich mir über eine Versionierung gemacht. Hier kommt noch einiges an Arbeit auf mich zu und evtl. wird es dann auch wieder eine Kommentarfunktion hier geben. Ich denke aber mal, das erste Ergebnis kann sich schon sehen lassen.\n","link":"https://blog.tausys.de/2025/01/29/migration-zu-hugo/","section":"posts","tags":["Hugo","CMS","WordPress","OSS"],"title":"Migration zu Hugo"},{"body":"","link":"https://blog.tausys.de/categories/fundst%C3%BCcke/","section":"categories","tags":null,"title":"Fundstücke"},{"body":"","link":"https://blog.tausys.de/fundstuecke/","section":"fundstuecke","tags":null,"title":"Fundstueckes"},{"body":"Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben.\nEines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg.\nAls es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy. Die Copy warnte das Blindtextchen, da, wo sie herkäme wäre sie zigmal umgeschrieben worden und alles, was von ihrem Ursprung noch übrig wäre, sei das Wort \u0026quot;und\u0026quot; und das Blindtextchen solle umkehren und wieder in sein eigenes, sicheres Land zurückkehren. Doch alles Gutzureden konnte es nicht überzeugen und so dauerte es nicht lange, bis ihm ein paar heimtückische Werbetexter auflauerten, es mit Longe und Parole betrunken machten und es dann in ihre Agentur schleppten, wo sie es für ihre Projekte wieder und wieder mißbrauchten. Und wenn es nicht umgeschrieben wurde, dann benutzen Sie es immernoch.\n(Netzfundstück, Quelle leider nicht mehr ermittelbar.)\n","link":"https://blog.tausys.de/2022/06/13/hinter-den-wortbergen/","section":"fundstuecke","tags":null,"title":"Hinter den Wortbergen"},{"body":"","link":"https://blog.tausys.de/tags/bash/","section":"tags","tags":null,"title":"Bash"},{"body":"Eine sehr nützliche Funktion der Bash ist es, Kommandos in einer Historie zu speichern, um sie wiederholt ausführen zu können. So z.B. können die zuletzt ausgeführte Kommando durch Drücken der Cursor-Hoch-Taste wieder in die Eingebezeile geholt, evtl. editiert und erneut ausgeführt werden.\nWenn nun durch wiederholtes Ausführen immer des gleichen Kommandos ausgeführt wird, z.B. um sich ändernden Plattenplatz bei einer Sicherung zu beobachten oder den Verzeichnisinhalt zu überwachen, der durch ein laufendes Programm geändert wird, schreibt die Bash auch immer wieder das gleiche Kommando in die Historie. Das ist sehr unpraktisch, wenn man evtl. ein weiter zurückliegendes Kommando wieder aus der Historie hervorholen will.\nGenau für diese Funktion hat die Bash eine Einstellung, welche aus der Umgebungsvariable HISTCONTROL gelesen wird. Wird dort ignoredups eingestellt, werden keine direkt aufanderfolgenden gleichen Kommandos in die Historie geschrieben. Eine zweite Einstellung ignorespaces legt fest, dass keine Kommandos in die Historie geschrieben werden, die mit einem Leerzeichen beginnen, was z.B. für Kommandos nützlich ist, bei denen man ein Kennwort direkt in der Kommandozeile angegeben hat. Da beide Einstellungen sehr nützlich sind, können sie mit ignoreboth gleichzeitig eingeschaltet werden.\nIn der ~/.bashrc fügt man dazu folgende Zeile ein:\nHISTCONTROL=ignoreboth\nNach einem erneuten Login oder nach dem \u0026quot;sourcen\u0026quot; der Datei mit . ~/.bashrc ist die Option sofort aktiv.\n","link":"https://blog.tausys.de/2022/04/04/bash-kommandohistorie-doppelte-eintraege-verhindern/","section":"posts","tags":["bash","Linux","OSS"],"title":"Bash-Kommandohistorie: Doppelte Einträge verhindern"},{"body":"","link":"https://blog.tausys.de/tags/linux/","section":"tags","tags":null,"title":"Linux"},{"body":"","link":"https://blog.tausys.de/categories/software/","section":"categories","tags":null,"title":"Software"},{"body":"","link":"https://blog.tausys.de/tags/openssh/","section":"tags","tags":null,"title":"OpenSSH"},{"body":"","link":"https://blog.tausys.de/tags/ssh/","section":"tags","tags":null,"title":"SSH"},{"body":"","link":"https://blog.tausys.de/tags/zabbix/","section":"tags","tags":null,"title":"Zabbix"},{"body":"In der Monitoring-Software Zabbix gibt es die Möglichkeit, aufzuzeichnende Werte über Shell-Komandos zu ermitteln, die über SSH von einem enfernten Host gesammelt werden. Dazu muss sich der auf dem jeweiligen Host für die Datensammelei installierte Zabbix-Agent per SSH mit dem entfernten Rechner verbinden können. Passwortlos funktioniert das am besten mit dem in SSH integrierten Public-Key-Verfahren: dazu erstellt man zuerst für den Benutzer, unter dem der Zabbix-Agent läuft einen SSH-Key mit ssh-keygen, schickt dann den generierten öffentlichen Schlüssel an den entfernten Rechner und trägt diesen beim Benutzer in der Datei ~/.ssh/authorized_keys ein. Die letzten zwei Schritte kann man auch halbautomatisch mit dem Befehl ssh-copy-id erledigen.\nDanach sollte sich der Zabbix-Agent-Benutzer mit \u0026quot;ssh \u0026quot; ohne Passworteingabe auf dem Remote-Host anmelden können. Anschließend können die zu überwachenden Werte in Zabbix konfiguriert werden.\nGroß ist die Verwunderung, wenn Zabbix im Status des jeweiligen Wertes \u0026quot;Public key authentification failed\u0026quot; anzeigt, obwohl der manuelle Verbindungsaufbau problemlos funktioniert hat.\nUrsache ist, dass ssh-key-gen jetzt standardmäßig Keys im OpenSSH-Format und nicht mehr im alten RSA-Format erstellt. Zu erkennen ist das neue Format in der Datei ~/.ssh/id_rsa. Für OpenSSH steht dort \u0026quot;-----BEGIN OPENSSH PRIVATE KEY-----\u0026quot; und für RSA \u0026quot;-----BEGIN RSA PRIVATE KEY-----\u0026quot; in der ersten Zeile. Zumindest meine Zabbix-Version (4.0) kann noch nicht mit dem OpenSSH-Format umgehen und verwendet den entsprechenden Schlüssel dann einfach nicht. Resultat: Public key authentification failed.\nAbhilfe schafft das Kommando \u0026quot;ssh-keygen -m PEM\u0026quot;, welches einen neuen Schlüssel im alten Format erzeugt, das auch ältere Zabbix-Version verstehen.\n","link":"https://blog.tausys.de/2021/06/28/zabbix-public-key-authentification-failed/","section":"posts","tags":["OpenSSH","OSS","SSH","Zabbix"],"title":"Zabbix: Public key authentification failed"},{"body":"","link":"https://blog.tausys.de/tags/browser/","section":"tags","tags":null,"title":"Browser"},{"body":"","link":"https://blog.tausys.de/tags/cookies/","section":"tags","tags":null,"title":"Cookies"},{"body":"Immer wieder sind falsche Informationen zu Cookies zu lesen, selbst in Fachzeitschriften. Auch heute las ich wieder solch eine irreführende Aussage, dass Cookies beim Surfen angeblich Daten auf meiner Festplatte speichern. Das ist Humbug. Genausowenig speichert eine Webseite beim Surfen irgendwas auf meinem Computer. Vielmehr weist mein zum Surfen verwendeter Browser das Betriebssystem des Computers an, etwas zu speichern. Das können Inhalte aus einer Webseite oder eben auch ein mit der Webseite empfangenes Cookie sein. Aber von vorn.\nEin Cookie ist nichts anderes als eine Textinformation, die beim Abrufen einer Webseite mittels Browser vom Server in der Antwort mitgeschickt wird, quasi in den Metadaten des eigentlich erwarteten Inhalts, der Webseite.\nDas verhält sich in etwa so, wie wenn ich beim Bäcker fünf Brötchen haben möchte, die freundliche Verkäuferin mir als Antwort noch ein paar nebensächliche Fakten zu den gewünschten Brötchen mitteilt (die Meta-Daten) und mir nebenbei noch eine Kundenkarte (Cookie) in die Hand drückt. Da ich ihr keine alte Kundenkarte direkt bei der Bestellung vorgezeigt habe, überreicht sie mir eine neue Kundenkarte. Diese kann ich ablehnen oder einstecken (speichern). Auf der Kundenkarte kann die Verkäuferin verschiedene Dinge festhalten, wie z.B. die Anzahl der gekauften Waren.\nAndere Sachen als das Speichern von Informationen können mit der Kundenkarte nicht ausgeführt werden. Sie öffnet nicht automatisch meine Geldbörse oder stellt irgendetwas anderes in ihrer Umgebung an. Genausowenig kann ein auf dem Computer gespeichertes Cookie irgendwelche Funktionen auf dem Computer aufrufen. Die einzige Besonderheit ist, dass ich die Kundenkarte evtl. einstecke und bei jedem Besuch dieses Bäckereigeschäfts wieder vorzeige.\nGenau so verhält es sich mit den Cookies im Browser. Sie werden beim Sufen mitgeliefert und werden je nach Browsereinstellung akzeptiert oder verworfen. Sie bestehen aus Textschnipseln, die jedoch meistens für Menschen nicht auswertbar sind, sondern Informationen für Computer enthalten, die wiederrum mit diesen Informationen Besucher der jweiligen Webseite eindeutig identifizieren können. Und da liegt die Crux und um es mit dem Beispiel des Bäckers zu beschreiben: sollte die Kundenkarte irgendwann akzeptiert, also gespeichert worden sein, wird sie vom Browser jedesmal beim Besuch der Bäckerei bzw. der Webseite automatisch vorgezeigt. Die Verkäuferin weiß also immer, wie viel wir schon gekauft haben.\nKleines Problem Beim Bäcker meines Vertrauens ist das alles kein Problem. Er liefert ja hervorragende Brötchen. Durch die Kundenkarte erhalte ich evtl. irgendwann einen Vorteil. Problematisch ist nur, dass versucht wird, jedem Besucher eine Kundenkarte zuzustecken, auch wenn gar nichts gekauft wurde. Bei wiederkehrenden Besuchern kann so festgestellt werden, dass z.B. schon mehrfach vorbeigeschaut, aber immernoch nichts gekauft wurde.\nGroßes Problem Ein viel größeres Problem ist, wenn sich mein Bäcker entschließt, eine Kooperation mit einem Rabattprovider oder Punktesammelverein einzugehen. Beim Besuch der Bäckerei erhält dann jeder zwei Kundenkarten. Technisch gesehen müsste beim Bäcker noch ein Vertreter des Punktesammelvereins sitzen, dem die Kundenkarte bei einem wiederholten Besuch automatisch überreicht wird. Der Browser liefert Cookies beim Surfen nur an diejenige Webseite zurück, von der er sie erhalten hat. Und hier liegt das Problem: der Vertreter beim Bäcker weiß ja, wo er sich befindet. Er weiß also bei Besuchern genau, wie oft diese schon da waren. Durch die Kooperation mit dem Bäcker erfährt er über andere Wege zusätzlich, wie viel gekauft wurde. Dabei ist es auch vollkommen egal, ob wir Kunde des jeweiligen Punktesammelvereins sind. Durch die automatisch zugesteckte Kundenkarte kann er uns immer wieder erkennen.\nNun stelle man sich vor, in jedem Geschäft sitzt solche ein Vertreter eines Punktesammelunternehmens. Und nein, nicht nur in Geschäften, auch in jedem einzelnen Zeitungsartikel den wir lesen, jedem Lied welches wir hören, jedem Film den wir schauen, in jeder Sache, die wir wahrnehmen. Und wir überreichen allen schön brav automatisch unsere Kundenkarte.\nUnser Bäcker wollte uns nichts Böses. Er versprach sich von der Kooperation eine finanzielle Unterstützung. Die Kunden hofften auf Prämien durch die gesammelten Punkte. Der Punktesammelverein weiß jedoch umfassend, was wir wann wo getan haben, wenn wir seine automatisch zugesteckte Kundenkarte akzeptiert haben.\nFiasko Und nun wird es noch einmal ganz übel: auf Webseiten sind viele dieser Punktesammelvereine, dort heißen sie Werbenetzwerke, eingebunden, die fleißig aufzeichnen, was wir im Netz denn so tun.\nGenauso fleißig sammeln die eingebundenen sozialen Netzwerke Daten über uns. Und es wird noch schlimmer, denn durch die automatisch zugesteckten Kundenkarten bzw. Cookies können uns diese Datensammler überall wiedererkennen. Um einmal Zahlen zu nenen: Facebook weiß bei drei Viertel aller deutschen Nachrichtenseiten, wer wann was gelesen hat (Quelle).\nSo ganz ungefährlich sind diese kleinen Textschnipsel also nicht.\nSchutz Es stellt sich die Frage, wie man sich vor derlei automatischer Ausspioniererei schützen kann, denn nichts anderes ist diese umfassende Sammelwut. Da der Browser die Cookies verwaltet, gilt es zum Surfen zuerst einmal einen Browser auszuwählen, bei dem sich die Behandlung von Cookies überhaupt steuern lässt. Evtl. kann diese Behandlung dem Browser auch durch die Installation von Addons hinzugefügt werden.\nBeispiele sind der Browser Chrome der sich mit dem Addon uBlock-Origin erweitern lässt. Der Browser Firefox wurde von den Entwicklern mit einem Modus zum Schutz vor Aktivitätsverfolgung ausgestattet und kann zusätzlich mit dem Addon uBlock-Origin erweitert werden. Im Bäckerei-Beispiel würde das Addon uBlock-Origin so arbeiten, dass erst gar nicht mit dem Vertreter des Punktesammelvereins gesprochen wird, er wird einfach ignoriert.\nEine weitere Methode ist das regelmäßige Löschen von Cookies oder den Browser anzuweisen, Cookies nur so lange zu speichern, bis der Browser wieder komplett geschlossen wurde. Allerdings ist das nicht immer praktisch, da in Cookies auch Zugangscodes zu bestimmten Webseiten gespeichert sein können. Löscht man diese Cookies, muss man sich neu bei der jeweiligen Seite anmelden.\n","link":"https://blog.tausys.de/2021/01/02/cookies-was-sind-sie-was-nicht/","section":"posts","tags":["Browser","Cookies","OSS"],"title":"Cookies: was sind sie, was nicht"},{"body":"","link":"https://blog.tausys.de/tags/rsyslogd/","section":"tags","tags":null,"title":"Rsyslogd"},{"body":"Kürzlich ergab sich das Problem, Syslog-Nachrichten an einen Remote-Host verschicken zu müssen, der sonst dazu verwendete Befehl logger auf dem System aber noch kein Verschicken an Remote-Systeme unterstützte. Leider gab es für das betreffende Gerät auch keine neuere Software, es handelte sich um eine externe Netzwerk-Festplatte von WD, ein My Book Live.\nWenn sonst keine entsprechenden Werkzeuge zur Verfügung stehen, ist es oft ein unterschätztes Feature, dass bash direkt an Netzwerkadressen senden oder von diesen empfangen kann. Glücklicherweise unterstützt die auf den Geräten installierte bash-Version das Lesen und Schreiben an Netzwerkadressen per TCP oder UDP. Das ursprüngliche Syslog-Nachrichtenformat, beschrieben in RFC3164, ist reiner Text. Gesagt getan, ein Skript muss her:\n1#!/bin/bash 2 3SEVERITY=${1:-7} 4MESSAGE=$2 5LOGHOST=Hostname oder IP-Adresse des Remote-Syslog-Hosts 6 7declare -A SEVERTIES=([emergency]=0 [alert]=1 [critical]=2 [error]=3 [warning]=4 [notice]=5 [informational]=6 [debug]=7) 8re=\u0026#39;^[0-9]+$\u0026#39; 9if ! [[ $SEVERITY =~ $re ]]; then 10 SEVERITY=${SEVERTIES[$SEVERITY]} 11 if [ -z \u0026#34;$SEVERITY\u0026#34; ]; then 12 echo Severity not found \u0026gt;\u0026amp;2 13 exit 1 14 fi 15fi 16read -d $\u0026#39;\\0\u0026#39; PROCNAME ARGS \u0026lt;/proc/$PPID/cmdline 17echo \u0026#34;\u0026lt;13$SEVERITY\u0026gt;$PROCNAME[$PPID]: $MESSAGE\u0026#34; \u0026gt;/dev/udp/$LOGHOST/514 Das Skript hat zwei Parameter, der erste gibt den Schweregrad an, welcher als numerischer Wert oder in seiner Textdarstellung übergeben werden kann. Der zweite Parameter ist die Nachricht selbst. Vor dem ersten Aufruf muss noch der Inhalt der Variablen LOGHOST angepasst werden.\nWenn das Skript nun z.B. unter dem Namen rlog.sh abgespeichert wird, kann es aus anderen Skripten wie folgt aufgerufen werden (vorher nicht vergessen, das Skript auch ausführbar zu machen):\nrlog.sh debug \"Ich bin eine Testnachricht\" Natürlich muss auf der Empfängerseite auch ein syslog-Daemon auf dem Port 514 lauschen. In der Debian-Standardinstallation tut der dortige rsyslogd das nicht. Dazu muss die Datei /etc/rsyslogd.conf angepasst bzw. die Kommentarzeichen vor folgenden Zeilen entfernt werden:\n1module(load=\u0026#34;imudp\u0026#34;) 2input(type=\u0026#34;imudp\u0026#34; port=\u0026#34;514\u0026#34;) Möchte man nun die von Remote eintreffenden Nachrichten auf dem Syslog-Host in eigene Logdateien schreiben, können unter /etc/rsyslog.d/ entsprechende Konfigurationdateien erstellt werden.\n1if $fromhost-ip == [ \u0026#39;192.168.0.191\u0026#39;, \u0026#39;192.168.0.192\u0026#39;, \u0026#39;192.168.0.193\u0026#39; ] then /var/log/nas.log 2\u0026amp; stop In diesem Beispiel werden Syslog-Meldungen, welche von den angegebenen IP-Adressen empfangen werden, in das Logfile /var/log/nas.log geschrieben.\nVon jetzt an können auch die hier vorhandenen WD My Book Live Syslog-Nachrichten schreiben:\nrlog.sh debug \u0026quot;Ich bin eine Nachricht von $HOSTNAME\u0026quot;\n","link":"https://blog.tausys.de/2020/08/25/syslog-meldungen-mit-bash-verschicken/","section":"posts","tags":["bash","Linux","OSS","rsyslogd"],"title":"Syslog-Meldungen mit Bash verschicken"},{"body":"","link":"https://blog.tausys.de/tags/friendica/","section":"tags","tags":null,"title":"Friendica"},{"body":"Für den Betrieb des dezentrale Netzwerk Friendica, müssen periodisch Nachrichten verschickt und notwendige andere Aufgaben abgearbeitet werden. Früher konnte dazu ein Cron-Job eingerichtet oder alternativ ein Addon installiert werden, welche diese Aufgaben periodisch ausführte. Mittlerweile hat Friendica dafür einen eigenen Daemon bekommen, dessen Einbindung in ein Debian-System mit systemd hier kurz vorgestellt wird.\nDer Update-Daemon erzeugt ein PID-File, dessen Name und Pfad in der Konfigurationsdatei \u0026quot;config/local.config.php\u0026quot; eingestellt wird:\n1\u0026#39;system\u0026#39; =\u0026gt; [ 2 \u0026#39;pidfile\u0026#39; =\u0026gt; \u0026#39;/run/friendica/daemon.pid\u0026#39;, 3 ], Beim Systemstart existiert obiges Verzeichnis noch nicht. Debian verwaltet flüchtige Dateien und Verzeichnisse mit systemd-tmpfiles. Damit dieses Verzeichnis beim Systemstart automatisch angelegt wird, kann in die Datei \u0026quot;/etc/tmpfiles.d/friendica.conf\u0026quot; Folgendes eingetragen werden:\nd /run/friendica 0755 www-data www-data -\nDas Verzeichnis wird mit den angegebenen Berechtigungen und Eigentümer angelegt. Damit das Verzeichnis sofort zur Verfügung steht, wird folgender Befehl verwendet:\nsystemd-tmpfiles --create --prefix /run/friendica\nAnschließend wird das Unit-File für systemd unter \u0026quot;/etc/systemd/system/friendica-daemon.service\u0026quot; mit folgendem Inhalt angelegt:\n1[Unit] 2Description=Friendica daemon 3After=network.target mysqld.service 4Requires=network.target remote-fs.target nss-lookup.target 5 6[Service] 7User=www-data 8Group=www-data 9WorkingDirectory=/srv/friends 10Type=simple 11StandardOutput=null 12StandardError=syslog 13ExecStart=/usr/bin/php ./bin/daemon.php start 14ExecStop=/usr/bin/php ./bin/daemon.php stop 15PIDFile=friendica/daemon.pid 16PrivateTmp=true 17InaccessibleDirectories=/home /root /boot /opt /mnt /media 18ReadOnlyDirectories=/etc /usr 19Restart=always 20 21[Install] 22WantedBy=multi-user.target Der Pfad bei WorkingDirectory muss auf den Pfad der lokalen Friendica-Installation angepasst werden. Anschießend werden die Unit-Files von systemd neu geladen:\nsystemctl daemon-reload\nJetzt kann der Update-Daemon mit systemd gestartet werden:\nsystemctl start friendica-daemon.service\nNach dem erfolgreichen Start schreibt der Update-Daemon seine PID in die oben angegebene Datei \u0026quot;/run/friendica/daemon.pid\u0026quot;. Die gleiche PID sollte in der Ausgabe des folgenden Befehls angezeigt werden:\nsystemctl status friendica-daemon.service\nSollte bis hier hin alles korrekt verlaufen sein, kann der Update-Daemon für den automatischen Start beim Systemstart aktiviert werden:\nsystemctl enable friendica-daemon.service\n","link":"https://blog.tausys.de/2020/08/19/friendica-update-daemon-und-systemd/","section":"posts","tags":["Friendica","Linux","OSS","systemd"],"title":"Friendica: Update-Daemon und systemd"},{"body":"","link":"https://blog.tausys.de/tags/firefox/","section":"tags","tags":null,"title":"Firefox"},{"body":"Wie bereits seit langem angekündigt, wurden in der Firefox-Version 74 die Protokolle TLS 1.0 und 1.1 deaktiviert. Beim Zugriff auf Webseiten oder Geräte, welche nur diese schon 20 Jahre alten Protokolle unterstützen, erhält man folgende Fehlermeldung:\nSSL_ERROR_UNSUPPORTED_VERSION\nBetroffen sein dürften viele alten Geräte, unter anderem auch die in HP-Servern fest eingebaute \u0026quot;Integrated Lights-Out (iLO)\u0026quot;-Schnittstellen, deren Versionen iLO 2 und iLO 3 nur max. TLS1.1 unterstützen. Ein Update ist auch nicht möglich, das der fest verbaute Speicher für neuere RSA-Bibliotheken anscheinend nicht ausreicht.\n(Wir haben so alte und durchaus noch stabil laufende HP-Server im Einsatz, die ich nun nicht mehr mit Firefox verwalten kann.)\n","link":"https://blog.tausys.de/2020/03/11/firefox-74-tls-1-0-und-1-1-sind-geschichte/","section":"posts","tags":["Firefox","HP","TLS"],"title":"Firefox 74: TLS 1.0 und 1.1 sind Geschichte"},{"body":"","link":"https://blog.tausys.de/categories/hardware/","section":"categories","tags":null,"title":"Hardware"},{"body":"","link":"https://blog.tausys.de/tags/hp/","section":"tags","tags":null,"title":"HP"},{"body":"","link":"https://blog.tausys.de/tags/tls/","section":"tags","tags":null,"title":"TLS"},{"body":"Nach mehr als 20 Jahren geht das Projekt SETI@home, welches sich der Suche nach außerirdischem Leben widmete, am 31. März 2020 zu Ende. Interessierte konnten ihren Rechner bzw. dessen ungenutzte Rechenzeit zur Verfügung stellen. Automatisch verteilt und analysiert wurden Aufnahmen großer Radioteleskope. Nun sind alle Aufnahmen fertig analysiert und die Ressourcen werden anderen Projekten zugeführt.\nIch war bereits ab Tag Zwei nach dem offiziellen Beginn der alten Plattform mit dabei und habe über die Jahre (mit Pausen) ca. 3 Trillionen FLOPs, also ca. 3 ExaFLOPs, abgeliefert - eine Drei mit achtzehn Nullen.\nSeti@home Zertifikat\nHat Spaß gemacht und Danke für den Fisch.\n","link":"https://blog.tausys.de/2020/03/03/setihome-geht-zu-ende/","section":"posts","tags":null,"title":"SETI@home geht zu Ende"},{"body":"","link":"https://blog.tausys.de/tags/crayon/","section":"tags","tags":null,"title":"Crayon"},{"body":"Achtung für alle, die WordPress mit dem Plugin Crayon zum Darstellen von Quelltexten einsetzen und auf Debian 10 (Buster) updaten wollen. Mit Buster kommt PHP 7.3 mit, welches ein paar Anpassungen im leider seit langem nicht mehr gepflegte Crayon erfordert.\nDie Anpassungen können manuell durchgeführt werden. Alternativ kann auch ein komplett angepasstes Plugin von Github heruntergeladen werden.\n","link":"https://blog.tausys.de/2019/08/23/quicktipp-wordpress-crayon-und-php-7-3/","section":"posts","tags":["Crayon","OSS","WordPress"],"title":"Quicktipp: WordPress, Crayon und PHP 7.3"},{"body":"Nach dem Update von Stretch auf Buster braucht OpenSSH, speziell auf VMs, schon mal gerne mehrere Minuten zum Starten. Grund dafür ist, dass systemd alle Dienste ziemlich parallel startet und für OpenSSH-Verschlüsselungsroutinen einfach noch nicht genug Entropie vorhanden ist. OpenSSH wartet deshalb erst einmal ab und lässt noch keine Verbindungen von außen zu. Erst wenn im Kernel-Log die Meldung \u0026quot;random: crng init done\u0026quot; auftaucht, ist die Initialisierung abgeschlossen und OpenSSH startet komplett.\nProbleme beim Systemstart betreffend der noch nicht vohandener Entropie können auch bei Webservern auftreten, die wiederrum SSL-Bibliotheken verwenden und diese ebenfalls noch nicht initialisieren können.\nEine einfache Lösung für diese Probleme ist die Installation von haveged, einem User-Space-Daemon, welcher beim Systemstart Entropie liefert, sobald der \u0026quot;Füllstand\u0026quot; von /dev/random unter eine gewisse Grenze fällt.\nSiehe hierzu auch:\nhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=912087 https://daniel-lange.com/archives/152-Openssh-taking-minutes-to-become-available,-booting-takes-half-an-hour-...-because-your-server-waits-for-a-few-bytes-of-randomness.html ","link":"https://blog.tausys.de/2019/08/23/debian-buster-openssh-braucht-ewig-zum-starten/","section":"posts","tags":["OpenSSH","OSS","SSH","sshd"],"title":"Debian Buster: OpenSSH braucht ewig zum Starten"},{"body":"","link":"https://blog.tausys.de/tags/sshd/","section":"tags","tags":null,"title":"Sshd"},{"body":"","link":"https://blog.tausys.de/tags/mariadb/","section":"tags","tags":null,"title":"MariaDB"},{"body":"Beim Hochfahren eines MariaDB-Galera-Cluster-Nodes muss dieser erst einmal synchronisiert werden. Standardmäßig sucht sich der Node einen anderen bereits synchronisierten Node des Clusters aus, von dem er anschließend synchronisiert. Bei der Synchronisation ist der Datenlieferant für die Zeit der Synchronisation komplett gesperrt und kann von Clients nicht verwendet werden. Um das zu verhindern kann ein eigener Node aufgesetzt werden, auf den keine Clientprogramme zugreifen. Dieser Node wird dann als bevorzugte Quelle für die Synchronisation bei allen anderen Nodes eingestellt.\nIn der MariaDB-Konfiguration muss dazu folgendes angegeben werden:\nwsrep_sst_donor = \u0026quot;donornode,\u0026quot;\nZu beachten ist, dass als Name der Nodename und nicht der Hostname des bevorzugten Datenlieferanten angegeben werden muss. Dass Kommata am Schluß ist kein Schreibfehler, sondern sorgt dafür, dass bei nicht verfügbarem Datenlieferant dass Standardverfahren angewendet und ein zufälliger Node für die Synchronisation ausgewählt wird.\nBei der anschließenden Synchronisation des Nodes ist die Auswahl des bevorzugten Nodes auch im Logfile zu erkennen:\n1WSREP: Member 3.0 (node5) requested state transfer from \u0026#39;node0,\u0026#39;. Selected 2.0 (node0)(SYNCED) as donor. 2WSREP: 2.0 (node0): State transfer to 3.0 (node5) complete 3WSREP: Member 2.0 (node0) synced with group. 4WSREP: 3.0 (node5): State transfer from 2.0 (node0) complete. 5WSREP: Member 3.0 (node5) synced with group. 6WSREP: Synchronized with group, ready for connections Im vorliegenden Beispiel war node0 as bevorzugter Node für die Synchronisierung eingestellt.\n","link":"https://blog.tausys.de/2019/08/14/mariadb-bevorzugten-node-fuer-synchronisation-auswaehlen/","section":"posts","tags":["MariaDB","OSS"],"title":"MariaDB Galera Cluster: Node für Synchronisation auswählen"},{"body":"","link":"https://blog.tausys.de/tags/arduino/","section":"tags","tags":null,"title":"Arduino"},{"body":"Da hier jemand nach einem einfachen Modem-Skript fragte, mit dem über die serielle Konsole AT-Befehle geschickt werden können und die Antworten vom TC35 angezeigt werden, poste ich das einfach mal hier.\nWichtig: seriellen Monitor auf 9600 Baud umstellen und jedes AT-Kommando mit Punkt abschließen! Sind Kommandos oder Antworten des TC35 länger als 64 Bytes, so muss vorher in der Serial-Library der Puffer entsprechend hoch gesetzt werden (_SS_MAX_RX_BUFF). Nach dem Hochsetzen muss das Skript natürlich nochmal kompiliert und auf den Arduino hochgeladen werden.\nVerkabelung:\nGND Arduino mit GND von TC35 Pin 8 des Arduino mit IGT des TC35 Pin 2 des Arduino mit RXD0 des TC35 Pin 3 des Arduino mit TXD0 des TC35 1#include \u0026lt;SoftwareSerial.h\u0026gt; 2#define rxPin 2 3#define txPin 3 4 5SoftwareSerial gsmSerial(rxPin, txPin); 6char recu[150]; // Array for message 7String message = \u0026#34;\u0026#34;; 8int i; 9 10void setup() { 11 // initialize digital pin 13 as an output. 12 pinMode(13, OUTPUT); 13 14 Serial.begin(9600); 15 while(!Serial) {} 16 17 //--- turn on TC35 --- 18 // wire pin 8 Arduino to IGT pin on TC35 19 // ground pin for 100 ms - this is the same as pressing the button on the TC35 to start it up 20 pinMode(8, INPUT); 21 digitalWrite(8, LOW); 22 pinMode(8, OUTPUT); 23 delay(100); 24 pinMode(8, INPUT); 25 26 gsmSerial.begin(9600); 27 delay(5000); 28 Serial.println(\u0026#34;Bereit für Kommandos. Kommando beenden mit Punkt.\u0026#34;); 29} 30 31void loop() { 32 i = 0; 33 while (Serial.available() \u0026gt; 0) { 34 recu[i] = Serial.read(); 35 if ((recu[i] != 46) \u0026amp;\u0026amp; (recu[i] != 13) \u0026amp;\u0026amp; (recu[i] != 10)) 36 { 37 message += char(recu[i]); 38 } 39 i++; 40 // 46 is ASCII code for \u0026#34;.\u0026#34; 41 if (recu[i - 1] == 46) { 42 SendCmdMessage(); 43 ShowSerialData(); 44 delay(1000); 45 message = \u0026#34;\u0026#34;; 46 i = 0; 47 } 48 } 49 ShowSerialData(); 50} 51 52void SendCmdMessage() { 53 gsmSerial.println(message); 54 delay(500); 55} 56 57void ShowSerialData() { 58 while(gsmSerial.available() \u0026gt; 0) { 59 Serial.write(gsmSerial.read()); 60 } 61} Wenn vorher alles (auch der TC35) ausgeschaltet war, dann blinkt ca. 5 Sekunden nach dem Start die LED neben R1 und R2 auf dem TC35. Das bedeutet, dass sich der TC35 ins GSM-Netz eingebucht hat. Im seriellen Monitor meldet sich das Skript dann wie im Bild dargestellt.\nDanach können ganz normal AT-Kommandos an den TC35 geschickt werden. Zu beachten ist nur, dass jedes Kommando im seriellen Monitor mit einem Punkt abgeschlossen werden muss (welcher durch das Skript aber nicht an den TC35 weitergereicht wird). Es dient nur zur Kennung für \u0026quot;hier ist ein Kommando zu Ende\u0026quot;. Anschließend werden die Ausgaben des TC35 gelesen und auch im seriellen Monitor angezeigt.\nViel Spaß damit!\n","link":"https://blog.tausys.de/2018/08/29/einfaches-modem-skript-fuer-tc35/","section":"posts","tags":["Arduino","OSS","TC35"],"title":"Einfaches Modem-Skript für TC35"},{"body":"","link":"https://blog.tausys.de/tags/tc35/","section":"tags","tags":null,"title":"TC35"},{"body":"Seit Mitte 2016 wurde hier ein eigenes Forum betrieben, welches als Erweiterung der Kommentare zu den Beiträgen dieses Blogs gedacht war. Besonders ein Beitrag mit über 100 Kommentaren verlangte nach einer Lösung, denn allein der Seitentext umfasste schon mehr als die durch den hier eingesetzten Seitencache maximal verarbeitbare Größe.\nSo mauserte sich das Forum 2016 zu einem sinnvollen Zusatz zum Blog.\nForum - Verlauf\nSeit 2018 jedoch wurden die Kommentare weniger, die Bots waren auf das Forum aufmerksam geworden und registrierten oft mehrmals täglich neue Bot-User. Glücklicherweise hat es in der ganzen Zeit nur ein Bot ein einziges Mal geschafft, Spam zu posten. Die mit der Forensoftware SMF mitgelieferte Captcha-Lösung war für die Bots leider kein Problem. Besserung versprach das Einbinden von Googles reCaptcha zur Registrierung.\nLeider wurden notwendige Aktualisierungen auf neue Versionen der Foren-Software oft auf die lange Bank geschoben. Die Wartung eines Forums verschlingt einfach zu viel Zeit und erfordert zeitnahes Handeln. Da ich beides nicht immer leisten kann habe ich mich dazu entschlossen, das Forum zu schließen.\nEin vielleicht erhaltenswerter Beitrag aus dem Forum wurde ins Blog übernommen. Bei den restlichen Beiträgen im Forum handelte es sich meist um Problemlösungen zu Individualkonfigurationen.\nZum Schluß noch eine kleine Statistik zum Forum:\nForum - Allgemeine Statistik\nIch möchte mich hier noch einmal herzlich bei allen Teilnehmern am Forum bedanken. Im Team Lösungen zu den dort angesprochenen Problemen zu finden hat mir sehr viel Spaß gemacht. Ich hoffe, den einen oder anderen auch hier in den Kommentaren wieder lesen zu dürfen.\n","link":"https://blog.tausys.de/2018/08/28/das-forum-geht-offline/","section":"posts","tags":null,"title":"Das Forum geht offline"},{"body":"","link":"https://blog.tausys.de/tags/android/","section":"tags","tags":null,"title":"Android"},{"body":"","link":"https://blog.tausys.de/tags/lineageos/","section":"tags","tags":null,"title":"LineageOS"},{"body":"Nach ein paar Lobgesängen auf LineageOS hier im Blog habe ich heute meine letzte Version mit einem Stock-ROM überschrieben. Leider hat sich LineageOS für meine Handy-Modelle nicht so entwickelt, wie ich es mir gewünscht hätte oder wie ich es von anderen OpenSource-Projekten gewohnt bin.\nNach dem fulminanten Start von LineageOS Anfang 2017 und der durch das Forken von CyanogenMod unmittelbar verfügbaren breiten Unterstützung von Handymodellen schien der weitere Betrieb meiner ohnehin schon auf CyanogenMod laufenden Handys weiter gesichert. Auch der im LineageOS-Wiki dokumentierte Support meines aktuellsten Handy-Modells durch gleich drei Entwickler ließ Gutes erwarten.\nAnders als bei CyanogenMod gab und gibt es bei LineageOS noch keine offiziellen Versionen. Historisch gewachsen werden Nightlys, entgegen dem Namen, wöchentlich gebaut. Ich war bei den Nightlys immer an vorderster Front dabei und habe seit der Verfügbarkeit eines Bug- bzw. Regression-Trackers auch fleißig Tickets eingereicht.\nLeider werden seit Mitte letzten Jahres von allen drei Entwicklern für mein Handymodell keine Bugs mehr behoben. Elementare Sachen wie z.B. die Anzeige des Energieverbrauchs durch einzelne Apps oder etwa ganz einfache Sachen wie die Anzeige des durch Videos verbrauchten Speichers (es wird immer 0 angezeigt) funktionieren nicht. Videos länger als 2 Minuten aufzunehmen ist sinnlos, da diese anschließend nur ruckeln. Dazu kommen tägliche Random-Reboots, welche sicherlich die ärgerlichsten der bisher nicht behobenen Fehler sein dürften. Verweise auf die volle Konzentration der Entwickler auf eine neue Version (Oreo) kann ich nicht nachvollziehen, da solch eine Version nach einem ganzen Jahr bisher nicht erschienen ist und auch in den entsprechenden Repositories keinerlei Commits dieser Art zu finden sind. Die bisher letzte Version von LineageOS für mein Handymodell strotzt leider nur so von Fehlern.\nDas wieder auf das Stock-ROM zurückgesetzte Handy, welches nach wie vor tadellos funktioniert, wird morgen verschenkt. Mein aktuelles Handy hat von vornherein sein Stock-ROM behalten (der geneigte Leser findet sicherlich schnell heraus, welche Marke ich bevorzuge).\nSchade für LineageOS, welche so ambitioniert und großartig gestartet ist, leider aber kein generelles Konzept für die Entwicklung durchsetzten konnte.\n","link":"https://blog.tausys.de/2018/08/28/mein-letztes-lineageos/","section":"posts","tags":["Android","LineageOS","OSS"],"title":"Mein letztes LineageOS"},{"body":"","link":"https://blog.tausys.de/tags/microsoft/","section":"tags","tags":null,"title":"Microsoft"},{"body":"Du kannst HTTPS-Traffic von WinHttp tracen haben sie gesagt:\nnetsh winhttp set tracing trace-file-prefix=\u0026quot;C:\\Temp\\dpws\u0026quot; level=verbose format=ansi state=enabled max-trace-file-size=1073741824\nDas Kommando erzählt unter Windows 10, dass das jetzt ganz anders geht:\n1C:\\WINDOWS\\system32\u0026gt;netsh winhttp set tracing trace-file-prefix=\u0026#34;C:\\TEMP\\WinHTTP\u0026#34; level=verbose format=ansi state=enabled max-trace-file-size=1073741824 2 3Verwendet \u0026#34;netsh trace start scenario=InternetClient\u0026#34;. Das \u0026quot;neue\u0026quot; Kommando speichert den Trace natürlich wo ganz anders:\n1C:\\WINDOWS\\system32\u0026gt;netsh trace start scenario=InternetClient 2 3Ablaufverfolgungskonfiguration: 4------------------------------------------------------------------- 5Status: Wird ausgeführt 6Ablaufverfolgungsdatei: C:\\Users\\Ich\\AppData\\Local\\Temp\\NetTraces\\NetTrace.etl 7Anfügen: Aus 8Kreisförmig: Ein 9Maximale Größe: 250 MB 10Bericht: Aus Das neue Tracing erzeugt ETL-Files haben sie gesagt. Die Daten des Traces kann man sich mit dem seit 2010 nicht mehr weiterentwickelten Microsoft Network Monitor ansehen:\nTrace events are collected in the ETL file, which can be viewed using tools such as Network Monitor.\nDas Ganze sieht dann so aus:\nMicrosoft Network Monitor\nWie man sieht, sieht man genau nichts. Danke für gar nichts, Microsoft.\n","link":"https://blog.tausys.de/2018/06/20/rant-microsoft-netzwerktrace/","section":"posts","tags":["Microsoft","Windows","WinHTTP"],"title":"Rant: Microsoft-Netzwerktrace"},{"body":"","link":"https://blog.tausys.de/tags/windows/","section":"tags","tags":null,"title":"Windows"},{"body":"","link":"https://blog.tausys.de/tags/winhttp/","section":"tags","tags":null,"title":"WinHTTP"},{"body":"LineageOS ist ein Custom-ROM mit dem sich auch noch ältere Android-Geräte sicher betreiben lassen. Mit folgenden, vielleicht etwas unbekannteren Tipps kann die Oberfläche von LineageOS weiter angepasst werden.\nAnimationen für schneller Darstellung abschalten In den Entwickleroptionen können drei Typen von Animationen ausgeschaltet werden. Speziell ältere Geräte fühlen sich dadurch sofort schneller an.\nErweitertes Restart-Menü einschalten Ebenfalls in den Entwickleroptionen lässt sich das erweiterte Neustart-Menü einschalten. Wenn anschließend der Power-Knopf länger gedrückt wird und \u0026quot;Neu starten\u0026quot; gewählt wird, kann angegeben werden, ob man z.B. direkt in das Recovery-Menü booten will.\nZufällige Darstellung der PIN-Eingabe einschalten Falls mein sein Gerät mit einer PIN-geschützt hat, kann durch eine zufällige Darstellung des PIN-Blocks erreicht werden, dass mit einem \u0026quot;schnellen Blick über die Schulter\u0026quot; die PIN nicht so ganz leicht mitgelesen werden kann. Dazu muss unter Sicherheit \u0026quot;Zufällige Anordnung\u0026quot; aktiviert werden.\nApps mit der Zurück-Taste komplett beenden Nach dem Aktivieren dieser Option können nicht mehr reagierende Apps mit einem langen Druck auf die Zurück-Taste gestoppt werden.\nDie Liste entstand mit Tipps einiger Reddit-Nutzer.\n","link":"https://blog.tausys.de/2018/04/08/4-tipps-fuer-lineageos/","section":"posts","tags":["Android","Handy","LineageOS","OSS"],"title":"4 Tipps für LineageOS"},{"body":"","link":"https://blog.tausys.de/tags/handy/","section":"tags","tags":null,"title":"Handy"},{"body":"","link":"https://blog.tausys.de/tags/kvm/","section":"tags","tags":null,"title":"KVM"},{"body":"","link":"https://blog.tausys.de/tags/libvirt/","section":"tags","tags":null,"title":"Libvirt"},{"body":"Bei der Arbeit mit virtuellen Maschinen benutzt man häuftig SSH zur Fernwartung. Was aber nun, wenn grundlegende Einstellungen geändert wurden und nach einem Neustart die VM gar nicht erst komplett startet, der SSH-Daemon also auch noch nicht läuft und kein Remote-Zugang möglich ist? Dann wäre ein Zugang zur Konsole der VM hilfreich.\nDiesen kann man unter Debian-basierten Linux-Installationen wie folgt einrichten. In /etc/defaults/grub werden dazu folgende Zeilen wie hier angegeben angepasst:\n1GRUB_CMDLINE_LINUX_DEFAULT=\u0026#34;\u0026#34; 2GRUB_CMDLINE_LINUX=\u0026#34;console=tty1 console=ttyS0,115200\u0026#34; 3 4GRUB_TERMINAL=\u0026#34;console serial\u0026#34; 5GRUB_SERIAL_COMMAND=\u0026#34;serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1\u0026#34; Nach einen grub-update und einem Neustart der VM kann anschließend auf dem VM-Host virsh console vmname benutzt werden, um die Konsole der VM anzuzeigen.\n","link":"https://blog.tausys.de/2018/04/08/vm-konsolenzugang-mit-libvirt/","section":"posts","tags":["KVM","libvirt","OSS"],"title":"VM-Konsolenzugang mit libvirt"},{"body":"","link":"https://blog.tausys.de/tags/ipsec/","section":"tags","tags":null,"title":"IPSEC"},{"body":"","link":"https://blog.tausys.de/tags/nfs/","section":"tags","tags":null,"title":"NFS"},{"body":"","link":"https://blog.tausys.de/tags/strongswan/","section":"tags","tags":null,"title":"Strongswan"},{"body":"Einige Distributionen haben auf das als eierlegende Wollmilchsau beschriebene und von anderen mehr als gehasste systemd umgestellt. Ein Service, der den Startprozess einfacher, paralleler und konfigurierbarer machen soll. In der mitgelieferten Konfiguration von systemd funktioniert auch alles erst mal nach einer frischen Installation, allerdings ist entsprechend der am meisten eingesetzten Konfigurationen vorgegeben, in welcher Reihenfolge was gestartet wird.\nBeispiel NFS und Strongswan Die Entwickler haben sich gedacht, dass wohl in den meisten Konfigurationen erst mal NFS gemounted werden muss und erst dann IPSEC bzw. Strongswan gestartet werden kann, denn es könnte ja sein, dass z.B. /usr ein NFS-Mountpoint ist, aus dem Strongswan erst nach dem Mounten seine Dateien laden könnte. Soweit so gut.\nWas aber nun, wenn die NFS-Mountpoints, wie bei mir, erst über bestehende IPSEC-Tunnel erreichbar sind? Dann muss manuell Hand angelegt werden. In die einzelnen mnt-*.mount-Files kann nichts manuell eingetragen werden, da diese beim Systemstart automatisch von systemd-fstab-generator erzeugt werden. Abhängigkeiten können dort also keine eingetragen werden. Abhilfe schafft nur, dass in strongswan.service eingetragen wird, dass die Unit vor remote-fs.target gestartet werden muss. Dazu wird \u0026quot;Before=remote-fs.target\u0026quot; in strongswan.service eingetragen:\n1# cat /etc/systemd/system/multi-user.target.wants/strongswan.service 2[Unit] 3Description=strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf 4After=network.target 5Before=remote-fs.target 6 7[Service] 8ExecStart=/usr/sbin/ipsec start --nofork 9ExecReload=/usr/sbin/ipsec reload 10StandardOutput=syslog 11 12[Install] 13WantedBy=multi-user.target Zum Aktualisieren der Konfiguration anschließend noch ein \u0026quot;systemctl daemon-reload\u0026quot; und ab jetzt wird beim Booten Strongswan vor den NFS-Mounts gestartet.\n","link":"https://blog.tausys.de/2017/12/15/systemd-nfs-ipsec-und-reihenfolgen/","section":"posts","tags":["IPSEC","NFS","OSS","Strongswan","systemd"],"title":"systemd: NFS, IPSEC und Reihenfolgen"},{"body":"Natürlich (noch) nicht. Aber in Zeiten, in denen alle Medien über Bitcoin schreiben darf auch hier ein Beitrag über das Thema nicht fehlen - allerdings der etwas anderen Art: ein Quiz ähnlich dem Bullshit-Bingo:\n1[ ] Bitcoin skaliert nicht 2[ ] Bitcoin ist ein Schneeballsystem 3[ ] Bitcoin wird vom (bösen) Chinesen zerstört 4[ ] Bitcoin ist ein Komplott des (bösen) Chinesen, mit dem Ziel den Kapitalismus zu zerstören 5[ ] Bitcoin wird von Mining-Kartellen zerstört 6[ ] Bitcoin ist ein Komplott der Mining-Kartelle, mit dem Ziel ... (tagesaktuelle Verschwörungstheorie hier einfügen) 7[ ] Bitcoin wird nur von Drogendealern und Terroristen benutzt 8[ ] Bitcoin ist wie Tulpenzwiebeln 9[ ] die Bitcoinblase platzt nächste Woche 10[ ] die Bitcoinblase ist schon geplatzt 11[ ] der Bitcoinkurs ist in den letzten 2 Tagen um Drölf% gefallen. Das ist zu viel. 12[ ] der Bitcoinkurs ist in den letzten 2 Tagen um Vielzig% gestiegen. Das ist zu viel. 13[ ] Bitcoin ist deflationär 14[ ] die Blockchain ist zu groß 15[ ] die Blöcke sind zu groß 16[ ] die Blöcke sind zu klein 17[ ] Bitcoin ist unreguliert 18[ ] Bitcoin ist illegal 19[ ] Bitcoin ist nur© ein Experiment® und wird von mir nun offiziell™ für beendet erklärt 20[ ] Fiat ist überlegen, weil Bitcoins kein materielles Äquivalent haben 21[ ] mein Fork ist viel besser!!!1elf 22[ ] hinterm Komma gibt es zu viele Stellen 23[ ] hinterm Komma gibt es zu wenig Stellen 24[ ] Bitcoin ist nicht anonym 25[ ] Bitcoin wird zur Geldwäsche genutzt 26[ ] die Transaktionskosten sind zu gering 27[ ] die Transaktionskosten sind zu hoch 28[ ] der Stromverbrauch ist so hoch, dass wir alle sterben werden 29[ ] irgendwas mit elliptischen Kurven 30[ ] Marx hat aber gesagt: ... (wichtiges Zitat mit Kwellenverweis hier einfügen) 31[ ] Smith hat aber gesagt: ... (wichtiges Zitat mit Kwellenverweis hier einfügen) 32[ ] Mike hat aber gesagt: ... (wichtiges Zitat mit Kwellenverweis hier einfügen) 33[ ] Satoshi hat aber gesagt: ... (wichtiges Zitat mit Kwellenverweis hier einfügen) 34[ ] ich hab\u0026#39;s doch immer gesagt! 35[x] 42! Quellen: hier und dort.\n","link":"https://blog.tausys.de/2017/12/13/bingo-bitcoin-ist-tot/","section":"fundstuecke","tags":["Bitcoin"],"title":"Bingo: Bitcoin ist tot"},{"body":"","link":"https://blog.tausys.de/tags/bitcoin/","section":"tags","tags":null,"title":"Bitcoin"},{"body":"","link":"https://blog.tausys.de/tags/visualstudio/","section":"tags","tags":null,"title":"VisualStudio"},{"body":"","link":"https://blog.tausys.de/tags/wer/","section":"tags","tags":null,"title":"WER"},{"body":"Schwerwiegende Fehler in Anwendungen oder Windows-Komponenten, dann wenn ein Programm abstürzt, werden vom Windows Error Reporting (in deutschsprachigen Versionen: Windows Fehlerberichterstattung) abgefangen. Diese Windows-Komponente erstellt daraufhin ein Speicherabbild der fehlerhaften Anwendung und läd diese Informationen anschließend auf Microsoft-Server hoch.\nBeim Entwickeln von Anwendungen bedient man sich des Umstandes, dass durch speziell ausgelöste Programmfehler ein Windows-Dialog angezeigt wird, in dem man einen auf dem System installierten Debugger auswählen kann, um sein eigenes Programm weiter zu testen. Leider wird durch das Windows Error Reporting dieser Dialog schon abgefangen und man hat keine Möglichkeit mehr, das eigene Programm zu testen, ohne es direkt aus dem Entwicklungs-Debugger (z.B. Visual Studio) gestartet zu haben.\nAbhilfe schafft das Abschalten des Windows Error Reportings. Dazu erstellt man in der Registry unter\nHKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting einen neuen DWORD-Eintrag mit dem Namen Disabled und dem Wert 1. Danach sieht man in der Systemsteuerung unter \u0026quot;System und Sicherheit\u0026quot;, \u0026quot;Sicherheit und Wartung\u0026quot;, dass \u0026quot;Probleme melden\u0026quot; ausgeschaltet ist.\nWindows Error Reporting ausgeschaltet\nAnschließend erscheint bei Programmfehlern wieder das gewohnte Fenster zur Auswahl eines Debuggers.\n","link":"https://blog.tausys.de/2017/11/22/windows-error-reporting-abschalten/","section":"posts","tags":["VisualStudio","WER","Windows"],"title":"Windows Error Reporting abschalten"},{"body":"","link":"https://blog.tausys.de/tags/asterisk/","section":"tags","tags":null,"title":"Asterisk"},{"body":"","link":"https://blog.tausys.de/tags/freepbx/","section":"tags","tags":null,"title":"FreePBX"},{"body":"Von FreeSwitch über FusionPBX zu Asterisk und FreePBX. Eine spannende und subjektiv erzählte Reise.\nDie letzten paar Tage war es hier ziemlich still auf dem Kanal. Das lag daran, dass ich mich ausgiebig mit dem Thema PBX beschäftigt habe, was zwar Public Branch Exchange heißt, aber nichts anderes als eine gute alte Telefonanlage bedeutet. In modernen Zeiten natürlich über VoIP.\nAsterisk \u0026amp; FreeSwitch Vor langer Zeit hatte ich die ersten Erfahrungen mit Asterisk gemacht und mich ob der schier gigantisch umfangreichen Konfigurationsmöglichkeiten, die allerdings damals alle nur händisch in entsprechende XML-Files gegossen werden wollten, wieder abgewand. Irgendwann dann gab es wohl innerhalb der Asterisk-Devs-Gruppe einen kleinen Aufstand und ein paar Entwickler spalteten sich ab und entwickelten das natürlich viel bessere FreeSwitch. Meiner Meinung nach gehört diesem auch die Zukunft, jedoch krankt es auch hier wieder an dem XML-Dateien-Konfigurationswust. Ein anderer findiger Entwickler nutzte diese Change und entwickelte einen Webaufsatz, mit dem sich die ganzen Optionen von FreeSwitch per Klicks-und-Klacks über eine Weboberfläche einstellen lassen. FusionPBX war geboren.\nFusionPBX Hier war mein Startpunkt. Ich wollte wissen, wie weit sich die Projekte bisher weiterentwickelt haben. FusionPBX glänzt durch eine saubere Installation, bei der im Hintergrund FreeSwitch automatisch installiert wird. Das System funktioniert schnell und auf der Weboberfläche von FusionPBX findet man sich schnell zurecht. Das Wiki zum Projekt beschreibt die Funktionen der einzelnen Menüpunkte genau und ist auch aktuell.\nUnd hier kommt der erste Haken: obwohl die einzelnen Funktionen gut dokumentiert sind gibt es kein einziges Beispiel, wie alle Einzelteile zusammenwirken. Selbst bei einfachsten Fragen wird man im Regen stehen gelassen. Eine echte Community gibt es nicht. Der einzige Entwickler verdient mit dem Support (bzw. der Erklärung des Zusammenspiels) seine Brötchen und die sind natürlich nicht kostenlos zu haben.\nCommunity Aus diesem Grund fand sich wohl eine kleine Schar von Begeisterten zusammen und gründeten ein Forum, in dem sich Interessierte zu FusionPBX austauschen können. Das Forum ist noch sehr jung und dementsprechend sind Beiträge auch dünn gesäht. Allerdings scheinen die Betreiber aus Contributor-Kreisen zu kommen, da sie über Internas Bescheid wissen und auch ihren Unmut in einigen Postings im Forum kund tun. Leider habe ich auch mit kleinsten Problemen keine Antwort in diesem Forum gefunden. Gekauften Support beim Entwickler für ein Hobbyprojekt habe ich dann doch lieber sein lassen. Und so ward das eigentlich schöne Projekt FusionPBX und damit leider auch das manuell leider nur sehr umständlich zu konfigurierende FreeSwitch wieder von der Platte gefegt.\nFreePBX Oft muss man zu den Wutzeln zurück. So auch hier, denn das Ziel war noch immer, eine Opensource PBX lokal zu betreiben. Hier half der OSBN-Chat weiter, von dem ich durch Martin bzw. mdosch erfahren habe. Dort kam auch recht schnell der Hinweis vom User geeklabor auf FreePBX. Dieses setzt auf Asterisk auf und ist eine Weboberfläche zum Verwalten der Einstellungen von Asterisk nebst ein paar vorgefertigten Modulen, die automatisch eingebunden werden und sich nach Bedarf verknüpfen lassen. Also: back to the roots, installiert.\nWas muss ich sagen: ich bin begeistert. Der Funktionsumfang von Asterisk ist nach wie vor gigantisch, wurde jedoch sehr gut in die Weboberfläche FreePBX übernommen. Für viele Anwendungsgebiete sind bereits vorgefertigte Module in FreePBX enthalten. Für einige professionelle Module verlangt der Hersteller (Sangoma) zwar eine Lizenzgebühr, jedoch konnte ich bisher alle meine Anforderungen auch ohne Einkauf eines kommerziellen Moduls abdecken.\nDa ich bereits für eine kommerzielle proprietäre PBX-Software (SwyxWare) programmierte habe, waren mir die Begriffe aus der PBX-Welt nicht fremd. Schnell fand ich mich in FreePBX zurecht und entdeckte auch den ersten Bug in Asterisk, der wohl bisher noch nicht aufgefallen war, da er nur beim Codec G722 auftritt, den die Telekom hierzulande als HD-Voice vermarktet. Nach vielen weiteren Tests offenbarte sich auch ein Bug in FreePBX, bei dem ich mir leider nicht erklären kann, warum den nicht schon vor mir jemand gefunden hat. Die Funktion ist so einfach: prüfe einen Kalender auf einen Eintrag (in meinem Fall Feiertage) und verzweige im Dialplan auf entsprechende Ansagen. Eigentlich ein Anwendungsfall, den jede PBX in einer Firma beherrschen muss.\nMittlerweile wurde mein in Asterisk gemeldeter Bug gefixt. Der Bug in FreePBX wartet noch, ist aber auch nur minor.\nHardware Da ich so ganz überzeugt von der nun hier voll funktionsfähigen Lösung bin, habe ich mir seit kurzem auch wieder ein echtes Telefon zugelegt. Die Firma Sangoma, welche maßgeblich hinter der Entwicklung von FreePBX steht, stellt auch Telefone her, die genau auf FreePBX zugeschnitten sind. Die Entscheidung fiel leicht. Hier steht jetzt ein Sangoma S500.\n","link":"https://blog.tausys.de/2017/09/29/freeswitch-fusionpbx-asterisk-und-freepbx-aufregende-zeiten/","section":"posts","tags":["Asterisk","FreePBX","FreeSwitch","FusionPBX","OSS","PBX"],"title":"FreePBX: Aufregende Zeiten"},{"body":"","link":"https://blog.tausys.de/tags/freeswitch/","section":"tags","tags":null,"title":"FreeSwitch"},{"body":"","link":"https://blog.tausys.de/tags/fusionpbx/","section":"tags","tags":null,"title":"FusionPBX"},{"body":"","link":"https://blog.tausys.de/tags/pbx/","section":"tags","tags":null,"title":"PBX"},{"body":"10 Jahre ist dieses Blog nun alt. Und das wollte so einfach mir nichts dir nichts an mir vorbeiziehen. Nichts da! Es ist Zeit für ein Résumé.\nWie alles begann Zwar gab es bereits 2001 Versuche, eigene Inhalte im Netz zu veröffentlichen, der Begriff Blog war damals jedoch noch nicht geboren. Webseiten mit periodischen Einträgen nannte man z.B. Online-Tagebücher.\nRückblick auf 2001\nRichtig begann alles mit einem uralten Sony Ericsson K610i. Dieses Handy unterstützte schon 2007 Internetverbindungen (wie man an der Weltkugel-Taste rechts auf dem Bild erkennen kann) und es konnten z.B. Bilder (in einer schrecklichen Auflösung) auf das noch recht neue Blogspot hochgeladen werden. So entstanden die ersten Beiträge in diesem Blog.\nSchnell wurde jedoch klar, das dieses Blog nicht eine Ablichtung meiner Umgebung darstellen sollte und so wurde ein erster Tipp zu GPG, Evolution und Thunderbird veröffentlicht, der wohl mehr ein Merkzettel als ein Beitrag war.\nEs folgte eine Zeit, in der das Blog auf verschiedenen Plattformen getestet und immer wieder hin und her geschoben wurde. Auch wechselte das Blog mehrfach die Domain. Es war alles mehr ein Experimentieren mit unterschiedlicher Software, als eine Möglichkeit, Informationen zu veröffentlichen und damit evtl. Anderen zu helfen. Es gab eine Version mit Drupal, eine mit Zope, eine mit Snipsnap und noch vielen anderen Softwarepaketen, an die ich mich nicht mehr alle erinnern kann.\nErst 2011 wurde die jetzige Domain reserviert und das Blog bekam eine eigene Subdomain. Mittlerweile lief das Blog auf WordPress, auf dem es bis heute läuft.\nSchreibarbeit Bis jetzt haben sich 343 Beiträge mit 662 Bildern angesammelt und es wurden 578 Kommentare abgegeben. Ein Beitrag regte die Leser sogar zu sovielen Kommentare an, dass der einzelne Seitenquellcode größer als ein Megabyte wurde, was ein paar Probleme bei der Auslieferung verursachte. 106 Kommentare zu einem Artikel im Blog sind dann doch etwas unpraktisch. Das war die Geburtsstunde des Forums, in dem sich viel besser diskutieren ließ als über die Kommentarfunktion des Blogs.\nWie man der Sitemap entnehmen kann, gab es ab und zu auch ein paar Schreibpausen. Grund war jedoch nicht fehlendes Interesse am Blog, sondern vielmehr der Zweck des Blogs: Tipps zu Soft- und Hardware, welche ich sonst nirgendwo oder nur schwer finden konnte.\nGetreu dem Motto der Seite sind knapp 62% der Beiträge der Kategorie Knowhow zugeordnet.\nMaschinenraum In der Experimentierphase wurde das Blog mehrfach von zu Hause mit den damals üblichen Geschwindigkeiten ausgeliefert. Irgendwann war es kurz bei Blogspot und danach auf Servern des Vereins Kommunikationsnetz Franken e.V., bei dem ich damals Mitglied war.\nHeute liegt das Blog in einer eigenen VM. Die erforderliche Datenbank liegt auf einer weiteren VM. Ausgeliefert wird das Blog mit Nginx und Memcached, generiert werden die Seiten durch WordPress bzw. PHP. Mit der Zeit wuchs die Erfahrung, wie ein WordPress-Blog zuverlässig betrieben und schnell ausgeliefert werden kann. Auch diese Erfahrungen wurden natürlich aufgeschrieben.\nVor noch nicht allzulanger Zeit kam noch ein Monitoring hinzu, welches zeigt, wie gut das Blog aus der ganzen Welt erreichbar ist.\nBesucher Zuerst einmal ein großes Dankeschön an alle Leser, die mich immer wieder anspornen, weitere Beiträge zu verfassen. Ihr seid Spitze! Ich hoffe, euch mit dem einen oder anderen Tipp weitergeholfen oder mit einem Fundstück für einen lustigen Moment gesorgt zu haben. Auch freue ich mich immer über Feedback, sei es ein einfaches Dankeschön, konstruktive Kritik oder ein Hinweis darauf, wie man etwas noch besser machen kann. Dann schauen wir mal, was ihr hier so gemacht habt.\nStatistische Aufzeichnungen zum Abruf des Blogs führe ich seit 2011. Die Besuche und Seitenabrufe werden dazu mit Piwik festgehalten. Durch einen Vergleich zwischen den Werten aus den Logfiles des Webservers und den Werte aus Piwik weiß ich, dass Piwik wegen der immer mehr standardmäßig eingeschaltenen Do-not-track-Header und auch durch die Verwendung von Adblockern, die leider auch die statistische Auswertung verhindern, aktuell nur noch ca. die Hälfte der Besucher zählen darf. Die Anzahl der Besuche müsste zum Ende der Kurve im Bild also verdoppelt werden.\nTypisch für ein Blog, welches Beiträge aus vielen verschiedenen Bereichen beinhaltet ist, dass sich Besucher nicht wie z.B. auf einer Themenseite länger auf der Webseite aufhalten. 2017 besuchte jeder Leser durchschnittlich nur 2,1 Seiten. Einzig die Beiträge der Kategorie Fundstücke lassen die Besucher etwas länger verweilen.\nDie über die Jahre mit großem Abstand am häufigsten aufgerufene Seite ist eine Liste der über IPTV der Telekom erreichbaren Multicast-Sender. Auf Platz zwei folgt eine Seite mit einer Liste der Streamadressen der öffentlich rechtlichen Sendern und auf Platz drei eine Beschreibung, wie man Let's Encrypt Zertifikate in Dovecot und Postfix einbindet.\nAllein 2017 wurde der Beitrag auf Platz 1 bereits 39.949 Mal aufgerufen.\nDie meisten Besucher verwenden Firefox, gefolgt von Chrome und Mobile Safari. Die Liste der von den Besuchern verwendeten Betriebssysteme führt Windows 10 an, gefolgt von Windows 7 und MacOS 10.12. Zum Sufen verwenden 70% der Besucher den Desktop, 15% das Smartphone und knapp 14% das Tablet.\nWie geht es weiter? Nach all dem bin ich zuversichtlich, dass dieses Blog noch sehr lange seinen Dienst verrichten wird. Die Technik läuft außerst stabil. Die Finanzierung ist zwar nur mit weniger als 10% durch Werbeeinnahmen gedeckt, wird jedoch privat gestemmt. Sollte sich nicht grundsätzlich an der Struktur des Internets etwas verändern, ist Hypertext immernoch das Mittel der Wahl im Internet, um Informationen in Textform zu veröffentlichen. Das Format Blog wird uns also noch lange erhalten bleiben. Themen gehen sicher nicht aus, da es immer wieder neue Hard- und Software zu endecken gibt.\nIn diesem Sinne freue ich mich auf euren nächsten Besuch!\n","link":"https://blog.tausys.de/2017/09/28/10-jahre-tausys-blog/","section":"posts","tags":["OSS"],"title":"10 Jahre TauSys Blog"},{"body":"","link":"https://blog.tausys.de/tags/edgerouter/","section":"tags","tags":null,"title":"EdgeRouter"},{"body":"Da auch mein Anschluß nun von der Telekom-Zielnetzarchitektur auf BNG umgestellt wurde, trat auch hier das Problem zutage, dass igmproxy im EdgeRouter angeblich nicht mit VLAN-getaggten Schnittstellen umgehen kann. Doch es gibt eine Lösung, welche ich in einem Forenbeitrag unten beschrieben habe, da ich denke, dass auch hier wieder erhöhter Diskussionsbedarf wie in meinem älteren Beitrag zu IPTV mit dem EdgeRouter entsteht.\nUpdate (hier der Inhalt aus dem ehemaligen Forum):\nIch habe gute Nachrichten für alle, die von obigem Fehler bei Telekom-IPTV mit dem EdgeRouter geplagt sind. Die Fehlermeldung wird von igmproxy (welcher zum Routen der Multicast-Pakete und Verarbeiten von IGMP erforderlich ist) verursacht und findet sich in /var/log/messages des EdgeRouters.\nLt. dem Ubiquity-Forum unterstützt igmproxy in der aktuellen Version keine VLAN-Interfaces, wie sie für die Internetanschlüsse der Telekom erforderlich sind. Das ist falsch. Vielmehr unterstützt igmproxy keine Interfaces, welchen keine IP-Adresse zugewiesen wurde. Es lässt sich sehr wohl so konfigurieren, dass auch der EdgeRouter korrekt mit Telekom-IPTV zusammenarbeitet.\nFür die (alte) Zielnetzarchitektur:\neth1.8, VLAN 8 holt eine IP-Adresse per DHCP von der Telekom (meist 10.*.*.*) als Upstream-Interface kann dann eth1.8 beim igmproxy eingestellt werden Für Kunden, die schon auf BNG umgestellt sind:\nAlles läuft nur noch über VLAN 7. Jedoch erhält das Interface eth1.7 keine IP-Adresse, sondern erst das \u0026quot;hintendran\u0026quot; hängende pppoe0.\npppoe0 als Upstream-Interface in igmproxy einstellen Folgende Firewall-Regeln müssen noch für das jeweilige Interface festgelegt werden:\n1 rule 10 { 2 action accept 3 description \u0026#34;Allow IPTV Multicast UDP\u0026#34; 4 destination { 5 address 224.0.0.0/4 6 } 7 log disable 8 protocol udp 9 } 10 rule 20 { 11 action accept 12 description \u0026#34;Allow IGMP\u0026#34; 13 log disable 14 protocol igmp 15 } Anschließend funktioniert IPTV sofort.\n","link":"https://blog.tausys.de/2017/09/26/telekom-iptv-mit-edgerouter-und-igmproxy/","section":"posts","tags":["EdgeRouter","IPTV","OSS","Telekom"],"title":"igmproxy: Telekom IPTV mit EdgeRouter"},{"body":"","link":"https://blog.tausys.de/tags/iptv/","section":"tags","tags":null,"title":"IPTV"},{"body":"","link":"https://blog.tausys.de/tags/telekom/","section":"tags","tags":null,"title":"Telekom"},{"body":"Merkzettel für das Einrichten einer Bridge für libvirt (damit VMs auch ohne NAT mit der Außenwelt reden können bzw. die VM auch von außen ohne Kunstgriffe erreichbar ist):\nNetwork-Manager stoppen und deaktivieren 1systemctl stop NetworkManager.service 2systemctl disable NetworkManager.service Interface Settings manuell in /etc/network/interfaces eintragen, Bridge-Parameter angeben und Nameserver manuell festlegen 1auto br0 2 address 192.168.0.10 3 netmask 255.255.255.0 4 gateway 192.168.0.1 5 bridge_ports enp3s0 6 bridge_stp on 7 bridge_maxwait 0 8 dns-search local 9 dns-nameserver 192.168.0.1 Rechner neustarten Die Bridge sollte nun korrekt konfiguriert sein und folgendermaßen aussehen:\n1# ifconfig br0 2br0 Link encap:Ethernet Hardware Adresse 50:xx:xx:xx:xx:xx 3 inet Adresse:192.168.0.10 Bcast:192.168.0.255 Maske:255.255.255.0 4 inet6-Adresse: fe80::xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Verbindung 5 inet6-Adresse: 2003:86:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Global 6 inet6-Adresse: 2003:86:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Global 7 UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 8 RX-Pakete:39478 Fehler:0 Verloren:0 Überläufe:0 Fenster:0 9 TX-Pakete:41158 Fehler:0 Verloren:0 Überläufe:0 Träger:0 10 Kollisionen:0 Sendewarteschlangenlänge:1000 11 RX-Bytes:42091131 (42.0 MB) TX-Bytes:6646905 (6.6 MB) 12 13# brctl show br0 14bridge name\tbridge id\tSTP enabled\tinterfaces 15br0 8000.50xxxxxxxxxx yes enp3s0 Anschließend kann die Bridge dann auch virtuellen Maschinen mit z.B. virt-manager zugewiesen werden:\nBridge Interface in virt-manager\n","link":"https://blog.tausys.de/2017/08/23/merkzettel-bridge-interface-fuer-libvirt-einrichten/","section":"posts","tags":["KVM","libvirt","Netzwerk","OSS","QEMU"],"title":"Merkzettel: Bridge-Interface für libvirt einrichten"},{"body":"","link":"https://blog.tausys.de/tags/netzwerk/","section":"tags","tags":null,"title":"Netzwerk"},{"body":"","link":"https://blog.tausys.de/tags/qemu/","section":"tags","tags":null,"title":"QEMU"},{"body":"","link":"https://blog.tausys.de/tags/grafana/","section":"tags","tags":null,"title":"Grafana"},{"body":"","link":"https://blog.tausys.de/tags/monitoring/","section":"tags","tags":null,"title":"Monitoring"},{"body":"","link":"https://blog.tausys.de/tags/woldping/","section":"tags","tags":null,"title":"WoldPing"},{"body":"Das beste Monitoring ist eher nervig, wenn die Auswertungen oder Graphen nicht ansprechend aussehen oder zu kompliziert zu bedienen sind. Hier setzt die Opensource Software Grafana Maßstäbe: ein schlichtes Design verbunden mit vielen verschiedenen Widgets, die sich aus den unterschiedlichsten Datenquellen füttern lassen. Dazu komplett im Browser zu erstellende Dashboards, die das Admin-Herz höher schlagen lassen. Obendrauf noch die einfach zu installierende App worldPing, welche verschiedene Checks von Rechnern aus der ganzen Welt aus ausführt. Fertig ist das Monitoring der eigenen Webseite. Und das auch noch kostenlos.\nGrafana Grafana Zabbix Dashboard\nDie Firma hinter Grafana bietet mehr als eine \u0026quot;nur\u0026quot; herunterladbare und selbst zu hostende Software. Sie stellt auf ihrer Webseiten die Möglichkeit zur Verfügung, eine gehostete Grafana-Instanz anzulegen, bei der in der Free-Version fünf Dashboards und fünf Alerts enthalten sind. Sofern man bereits eine eigene Monitoring-Software einsetzt, lassen sich als Datenbasis CloudWatch, Elasticsearch, Graphite, InfluxDB, MySQL, OpenTSDB oder Prometheus nutzen. Über ein Plugin kann auch Zabbix als Datenbasis eingebunden werden.\nworldPing Interessant ist das als App in Grafana mit ein paar Klicks einzubindende woldPing. Diese App wird ebenfalls mit einem Free-Kontingent geliefert, welches maximal eine Million Checks im Monat erlaubt. Das reicht, um die eigene Webseite auf DNS-Fehler, die Ping-Latenz und die Erreichbarkeit per HTTP oder HTTPS zu überwachen. Das worldPing-Team stellt dazu Server über die ganze Welt verteilt bereit, um einen möglichst umfassenden Blick darauf zu bekommen, wie die Webseite von verschiedenen Orten aus erreichbar ist.\nDie Einrichtung kann ganz einfach über den Browser vorgenommen werden. Ob man nun Grafana selber hostet oder eine gehostete Instanz bei Grafana verwendet ist egal. Es muss nur die woldPing-App aktiviert werden und anschließend ein Endpoint, also die URL welche überwacht werden soll, eingetragen werden. Den Rest übernimmt woldPing ganz alleine und erstellt verschiedene Dashboards, die einen umfassenden Überblick über die Leistung der eigenen Webseite bieten.\nworldPing Dashboards\nNatürlich lassen sich die durch worldPing bereitgestellten Daten auch in eigenen Dashboards verwenden.\nFazit Wie ich finde, ein gelungenes Konzept und eine gelungene Software. Dazu noch die von Grafana bereitgestellt Möglichkeit, eine Monitoring-Instanz kostenlos zu hosten und zusätzlich noch die Möglichkeit zu haben, die eigene Webseite von vielen Standorten auf der Welt aus zu überwachen: Super.\nPS: Ich bin kein Mitarbeiter von Grafana oder Raintank, noch bekomme ich irgendwelche Zuwendungen, weil ich über obige Software schreibe.\n","link":"https://blog.tausys.de/2017/07/18/worldping-monitoring-der-eigenen-webseite-leicht-gemacht/","section":"posts","tags":["Grafana","Monitoring","OSS","woldPing"],"title":"worldPing: Monitoring der eigenen Webseite leicht gemacht"},{"body":"","link":"https://blog.tausys.de/tags/debian/","section":"tags","tags":null,"title":"Debian"},{"body":"Immer mal wieder geht die verteilte Suchmaschine Yacy durch die Medien, Blogs und Chats. Offenbar haben viele Internetnutzer das Bedürfnis, sich ob der vielen Datenschutzbedenken von den großen etablierten Suchmaschinen zu lösen, was erfreulich ist. Für Experimentierfreudige ist Yacy ein Projekt, um einmal in den Aufbau einer verteilten Suchmaschine und deren Funktionsweise reinzuschnuppern. Ich habe dieses Experiment gewagt und möchte nach ca. dreimonatiger Anwendung über meine Erfahrungen berichten.\nInstallation Die Installation unter Debian ist auf einer Wiki-Seite des Yacy-Projekts beschrieben. Getestet habe ich auf einer eigens für diesen Test eingerichteten VM mit ausreichend Speicher und Plattenkapazität. Da das Yacy-Projekt bereits fertige Pakete für Debian und andere Betriebssysteme bereitstellt, gestaltete sich die Installation kinderleicht. Für die Installation auf einer VM irgendwo in den Weiten des Netzes musste die Admin-Schnittstelle abgesichert werden. Yacy bietet hier bei der Installation leider nur HTTP an.\nIm Wiki findet sich zwar eine Anleitung, wie HTTPS für die Admin-Schnittstelle aktiviert werden kann, jedoch war die Beschreibung derart ungenau, dass es mir auf Anhieb nicht gelang, Yacy zu HTTPS zu bewegen.\nNach mehreren Fehlversuchen habe ich dann das Admin-Interface einfach hinter einem Reverse-Proxy versteckt, der extern nur HTTPS spricht.\nCommunity-Support Bei meinen Aktivierungsversuchen von HTTPS direkt in Yacy habe ich mich über das entsprechende Forum an die Community gewandt. Leider habe ich dort auch nach zweieinhalb Monaten keine Antwort erhalten, auch nicht durch einen anderen Anwender. Offenbar ist das Thema Sicherheit bei Yacy eben kein Thema.\nEine andere Anfrage zu einem Installationsproblem blieb ebenfalls unbeantwortet. Nachdem ich selbst die Antwort gefunden hatte, habe ich die Lösung der Community als Antwort auf meinen eigenen Beitrag zur Verfügung gestellt.\nUnklar ist, warum ich nirgendwo einen Bugreport über ein Problem mit den Debian-Paketen im Zusammenhang mit eigenen Zertifikaten finden konnte. Es werden Verzeichnisrechte anders gesetzt, als sie zum Einspielen von eigenen Zertifikaten notwendig wären. Verwendet wirklich niemand HTTPS bei einer eigenen Suchmaschine?\nDokumentation Grundlegende Informationen findet man im projekteigenen Wiki, welches sogar Artikel in mehreren Sprachen anbietet. Leider ist die Aktualität mehr als schlecht. Die Änderungshistorie des Wikis verzeichnet innerhalb der letzten 300 Tagen keine einzige Änderung an Wiki-Seiten, obwohl ca. alle sechs Monate eine neue Version herausgegeben wird. Deswegen sind viele weiterführenden Informationen im Wiki mittlerweile veraltet, wenn nicht gar falsch. So z.B. wird zur Einrichtung empfohlen, Yacy als Proxy im lokalen Browser einzustellen, damit automatisch Adressen und Wörter aus den durchgeleiteten Webseiten gelernt werden können. Diese Information ist mittlerweile veraltet. Yacy bezieht seinen Wortindex aktuell ausschließlich über den internen Crawler.\nYacy im Betrieb Nach der Installation wird eine Liste anderer Knoten von sogenannten Principal-Peers heruntergeladen. Nachdem sich Yacy nach kurzer Zeit im Peer-to-Peer-Netzwerk bekannt gemacht hat, kann es sofort verwendet werden. Suchen werden mit Hilfe anderer Peers durchgeführt, welche nach und nach bekannt werden.\nUm dem Netzwerk weitere Quellen zur Verfügung zu stellen kann man Webseiten durch einen integrierten Crawler indizieren lassen. Diese Crawls können in regelmäßigen Abständen wiederholt werden, was z.B. für News-Seiten praktisch ist. Yacy entscheidet anschließend anhand von Hashes der gefundenen Wörter automatisch, an welche anderen Peers die neuen Quellen versendet werden. Der Index aller bekannten Seiten und Wörter verteilt sich so automatisch im Peer-to-Peer-Netzwerk.\nYacy Nodestatus Ausgaben\nIm Admin-Interface lassen sich viele Informationen über den lokalen Index anzeigen, Crawls verwalten und Informationen zum Netzwerk anzeigen. Ebenfalls hat man die Möglichkeit, bestimmt URLs oder Wörter aus dem Index zu löschen bzw. in eine Blockierliste einzutragen.\nEinige weiterführende Verwaltungsseiten sind nur für Experten mit Hintergrundwissen um die in Yacy verwendeten Algorithmen zu verwenden.\nPeer-to-Peer Netzwerk und Traffic Letzte Woche waren durchschnittlich ca. 800 Peers online, welche auch eigene Inhalte beisteuern. Dazu kommen ca. 900 Peers, welche das Netzwerk \u0026quot;nur\u0026quot; benutzen, aber selbst keine Crawls durchführen. Diese Zahlen sind jedoch sehr variabel. In der letzten Stunde z.B. waren im Netzwerk nur ca. 260 Peers aktiv.\nYacy - Statistik der aktiven Peers\nDer Netzwerk-Traffic, den das Peer-to-Peer-Netzwerk ohne Crawls verursacht, ist sehr gering. So z.B. beträgt der Traffic bei mir nur durchschnittlich 28 kBit/s eingehend und 18 kBit/s ausgehend, was aber damit zusammenhängen kann, dass ich selbst nur sehr wenige Webseiten crawle und somit das Netzwerk nicht sehr oft nach Ergebnissen auf meinem Peer sucht.\nSuchergebnisse Ich konnte leider keinerlei Informationen darüber finden, wie Suchergebnisse gewichtet werden. Trotz der mittlerweile vom gesamten Netzwerk indizierten 2,8 Milliarden Dokumente sind die Suchergebnisse doch mehr als unbefriedigend.\nBestes Beispiel ist wohl, wenn man mit Yacy einmal nach Yacy selbst sucht. Wie man sieht, findet sich in den Ergebnissen auf den obersten Plätzen kein einziger Verweis auf die Projektseite.\nYacy - Suchergebnisse\nMeine bisherigen Erfahrungen haben gezeigt, dass Suchen mit mehreren Wörtern nie zu passenden Ergebnissen führen. Selbst bei Suchen mit nur einem einzigen Stichwort sind die Ergebnisse ebenfalls meist unbrauchbar.\nGut finde ich hingegen, dass sich die Suchergebnisse z.B. nach Autor einschränken lassen. Diese Funktion hat keine der anderen großen Suchmaschinen.\nDie nach dem Absenden einer Suchanfrage auftretende Wartezeit ist systembedingt und nicht vermeidbar, da im Hintergrund ja erst einmal mit anderen Peers kommuniziert werden muss.\nSicherheit Die Maintainer des Projekts sind sich dessen bewusst, dass Yacy in der Standardinstallation Benutzernamen und Passwort für die Admin-Seiten unverschlüsselt überträgt. Die englische Seite im Wiki zu Sicherheit enthält Informationen, wie man die Authentifizierung auf Digest-basierend umschaltet, die deutsche Seite im Wiki zum Thema Sicherheit ist größtenteils leer. Eine andere Seite im Wiki erklärt, wie man eigene Zertifikate einbindet. Durch einen Bug in der aktuellen Version funktioniert das aber nur ein einziges Mal. Nach dem Neustart des Serverprozesses ist HTTPS wieder deaktiviert. Einzige Möglichkeit bleibt im Moment die oben schon beschriebene Absicherung der Admin-Seite mit einem Reverse-Proxy.\nLeider sind nirgendwo Informationen darüber zu finden, wie genau die einzelnen Peers miteinander kommunizieren. Zum Glück gibt es ja aber tcpdump. Und das offenbart Schreckliches: alle meine Suchanfragen werden per POST-Request unverschlüsselt an andere Peers übertragen. Das konterkariert natürlich die Absicherung der Weboberfläche. Auf der einen Seite schicke ich vom Browser meine Suchanfrage per HTTPS an Yacy, welches dann meine Suchworte unverschlüsselt durchs Netz versendet.\nAn dieser Stelle habe ich aufgehört, Yacy zu benutzen. Die Suchmaschine selbst werde ich weiterlaufen lassen und mit meinen Crawls zum Suchindex beitragen. Allein in der jetzigen Version (1.92) ist die Suchmaschine schon aus Privacy-Gründen nicht verwendbar.\n","link":"https://blog.tausys.de/2017/07/10/kommentar-yacy-eher-nicht/","section":"posts","tags":["Debian","Linux","OSS","Yacy"],"title":"Kommentar: Yacy? Eher nicht."},{"body":"","link":"https://blog.tausys.de/tags/yacy/","section":"tags","tags":null,"title":"Yacy"},{"body":"","link":"https://blog.tausys.de/tags/bintec/","section":"tags","tags":null,"title":"Bintec"},{"body":"","link":"https://blog.tausys.de/tags/funkwerk/","section":"tags","tags":null,"title":"Funkwerk"},{"body":"Router der Bintec-Reihe haben neben der per Browser zugänglichen Verwaltungsoberfläche und der per SSH oder Telnet erreichbaren SNMP-Shell noch eine Tracemöglichkeit eingebaut, mit der sich der Traffic auf einer Schnittstelle auslesen lässt.\nNach langer Wartezeit, die vorherige Version 2.43 ist schon mehr als zehn Jahre alt, wurde die Version 2.53 des Tracetools auch für Linux veröffentlicht. Diese kann nun endlich auch mit den seit langer Zeit nicht mehr nur vierstelligen Interface-Nummern der Bintec-Firmware umgehen.\n1$ bricktrace 2 3Bintec/Funkwerk remote interface tracer ($Revision: 2.53 $) 4 5Usage: 6 bricktrace [opts] \u0026lt;routerip\u0026gt; [\u0026lt;channel\u0026gt; \u0026lt;unit\u0026gt; \u0026lt;slot\u0026gt; or \u0026lt;ifindex\u0026gt;] 7 -h hexadecimal output (-! for full length) 8 -2 layer 2 output 9 -3 layer 3 output 10 -a asynchronous HDLC (B-Channel only) 11 -e ETS300075 (EuroFileTransfer) output (B-channel only) 12 -F FAX (B-Channel only) 13 -A FAX + AT Commands (B-Channel only) 14 -D delta time 15 -p PPP (B-Channel only) 16 -f Frame Relay (B-Channel only) 17 -i IP output 18 -N Novell(c) IPX output 19 -t ascii text output (B-Channel only) 20 -x raw dump mode 21 -X asynchronous PPP over X.75 22 -T \u0026lt;tei\u0026gt; set tei filter (D-Channel only) 23 -c \u0026lt;cref\u0026gt; set callref filter (D-Channel only) 24 -r \u0026lt;cnt\u0026gt; capture only cnt bytes per paket 25 -v increase debug verbose level 26 -V 1..3 trace protocol version (default: 3) 27 -P\u0026lt;port\u0026gt; specify trace tcp port (default: 7000) 28 -I ipsrc:ipdst:proto:srcport:dstport IPsession filter 29 -B ip1:ip2:proto:port1:port2 bidirect IPsession filter 30 -o OR for LAN filter 31 --src=\u0026lt;addr\u0026gt; LAN filter for source MAC address 32 --dst=\u0026lt;addr\u0026gt; LAN filter for destination MAC address 33 --llc LAN filter for LLC packets 34 --help extended help (environ vars \u0026amp; filter) 35 --vpi=\u0026lt;vci\u0026gt; VPI for ADSL connections 36 --vci=\u0026lt;vpi\u0026gt; VCI for ADSL connections 37 --ethereal start ethereal (implies --pcap-pipe) 38 --pcap-pipe write data in pcap-format into named pipe 39 --pcap-file write data in pcap-format into file 40 --ofile=\u0026lt;fname\u0026gt; out filename (pipe/file) 41 --pwd=\u0026lt;passwd\u0026gt; remote admin-password 42 43 \u0026lt;routerip\u0026gt; trace host (router\u0026#39;s name or IP-address) 44 \u0026lt;channel\u0026gt; 0 = D-Channel or no ISDN, 1..31 = Bx-Channel 45 \u0026lt;unit\u0026gt; 0..15 46 \u0026lt;slot\u0026gt; 0..9 47 \u0026lt;ifindex\u0026gt; interface index (instead of chan/unit/slot) 48 if no chan/unit/slot or ifindex given: list all interfaces 49 50Examples: 51 bricktrace router : list all interfaces 52 bricktrace router 0 1 2 : D-Channel(0) of ISDN Slot 2, Unit 1 53 bricktrace router 1000 : LAN Interface 1000 (Slot 1) 54 bricktrace router 100001 : virtual IPsec interface 100001 55 bricktrace --ethereal router 1000 : write PCAP \u0026amp; start ethereal 56 bricktrace --pcap-file router 1000 : write PCAP file 57 bricktrace --ethereal --pcap-linktype=9 router 3000 : tracing PPPoA with VC-mux encaps in ethereal Damit ist nun endlich auch wieder eine Analyse bei Netzwerkproblemen mit Bintec-Routern möglich.\n","link":"https://blog.tausys.de/2017/07/05/neues-bintec-tracetool-verfuegbar/","section":"posts","tags":["Bintec","Funkwerk","Linux"],"title":"Neues Bintec-Tracetool verfügbar"},{"body":"Die wohl schnellste Methode, unter Linux mit adb einen Screenshot vom Smartphone auf den Rechner zu bekommen dürfte folgende sein:\nadb shell \u0026quot;screencap -p | base64\u0026quot; | base64 -d | display\nFür ältere Versionen von adb muss man evtl noch ein tr -d '\\r' zwischen die Base64-Kodierung in die Pipe einbauen.\nSchneller geht es nicht.\n","link":"https://blog.tausys.de/2017/05/09/android-screenshot-mit-adb/","section":"posts","tags":["Android","OSS","Screenshot"],"title":"Android: Screenshot mit adb"},{"body":"","link":"https://blog.tausys.de/tags/screenshot/","section":"tags","tags":null,"title":"Screenshot"},{"body":"Der \u0026quot;abgesicherte Modus\u0026quot; dürfte vielen von Windows bekannt sein. Er dient zum Auffinden von Fehlern oder auch der reibungslosen Deinstallation nicht funktionierender Software. In diesem Modus werden nur offizielle Teile des Betriebsystems gestartet.\nGanz ähnlich verhält es sich mit dem abgesicherten Modus in Android, welcher ab Version 4.1 standardmäßig in Android enthalten ist. Auch hier werden nur die System-Apps gestartet, welche bereits ab Werk vorinstalliert waren. Alle anderen Apps sind zwar noch vorhanden, auch ihre jeweiligen Icons werden im Launcher angezeigt, jedoch sind sie ausgegraut und lassen sich nicht starten. Benutzerdaten werden durch den Start im abgesicherten Modus nicht verändert.\nAbgesicherten Modus unter Android starten\nDen abesicherten Modus erreicht man bei eingeschaltetem Gerät wie folgt:\nlanges Drücken der Power-Taste, bis das entsprechende Menü erscheint länger auf den Menüpunkt \u0026quot;Neu starten\u0026quot; drücken im anschließenden Dialog kann der abgesicherte Modus gestartet werden (Eine zweite Methode zum Starten des abgesicherten Modus bei ausgeschaltetem Gerät ist leider geräteabhängig und kann deswegen hier nicht allgemein beschrieben werden.)\nDas Smartphone startet anschließend neu. Den abgesicherten Modus erkennt man im laufenden Betrieb durch die Einblendung von \u0026quot;abgesicherter Modus\u0026quot; (o.ä.) im Launcher.\nWenn die Reparaturen am Smartphone abgeschlossen sind wird nach einem Neustart das Gerät wieder normal gestartet.\nDer abgesicherte Modus ist auch in Custom-ROMs, wie z.B. CyanogenMod oder LineageOS enthalten.\n","link":"https://blog.tausys.de/2017/05/08/android-abgesicherter-modus/","section":"posts","tags":["Android","OSS"],"title":"Android: Abgesicherter Modus"},{"body":"","link":"https://blog.tausys.de/tags/java/","section":"tags","tags":null,"title":"Java"},{"body":"Hat schon mal jemand eine Java-Serveranwendung betrieben? Tomcat oder dergleichen? Wenn ja, wird derjenige mir hier bestimmt zustimmen: Java ist meiner Meinung nach kein geeignetes Paket für eine Serveranwendung. Sich allein mit der Sprache zu befassen reicht nicht aus, man muss tief in die verwinkeltsten Züge der VM absteigen, um zu begreifen, wie dieses Biest arbeitet (oder auch nicht). Und erst wenn der Anwender das verstanden hat, kann er eine Java-Serveranwendung (wahrscheinlich) einigermaßen stabil laufen lassen. Alles andere funktioniert nicht.\nSnipSnap Über die Jahre hinweg habe ich mehrere Java-Serveranwendungen eingesetzt. Angefangen mit der uralten und wirklich positiv in Erinnerung gebliebenen Wiki-Software SnipSnap. Offensichtlich wussten die Entwickler hier, was sie taten. Die Software war mehrere Jahre firmenintern im Einsatz. Aber auch deren Start war holprig. Das Speichermanagement musste genau angepasst werden.\nVielleicht mag es Anwender geben, die mit folgenden Optionen umgehen können:\n1-Xms\u0026lt;size\u0026gt; Legt anfängliche Java Heap-Größe fest 2-Xmx\u0026lt;size\u0026gt; Legt maximale Java Heap-Größe fest 3-Xss\u0026lt;size\u0026gt; Legt Java-Threadstackgröße fest Ich kann es ohne genaue Kenntnis der Anwendungsinternas nicht. Ich muss mich auf die Angaben des Herstellers zu den Systemanforderungen verlassen und stelle das dann entsprechend ein.\nFreenet Abgesehen vom wirklich positiven Eindruck von SnipSnap (Ausnahmen bestätigen die Regel), war meine nächste Java-Serveranwendung Freenet. Ein freies, unreguliertes und unzensiertes Netzwerk. Die Referenzimplementation für dieses Netzwerk ist in Java geschrieben. Ob man nun Oracles Java oder die freie Implementierung OpenJRE/JDK verwendet: es ist nicht stabil zum Laufen zu bekommen, egal, wie groß die Kiste ist.\nUnter dem Motto der Portabilität waren auch noch viele Desktop-Anwendungen für dieses Netzwerk in Java geschrieben, die eher schlecht als recht funktioniert haben.\nHöhepunkt war dann eine Watchdog, die aufpasste, wann Freenet wieder einmal abgestürzt war und es in diesem Falle neu startete.\nJaCy Vor Kurzem habe ich es dann wieder einmal versucht: JaCy, eine nicht zensierbare per P2P verteilte Suchmaschine, die ebenfalls in Java entwickelt wurde. Anfänglich war ich überrascht über die wenigen Abhängigkeiten (eigentlich nur Java) und der einfachen Installation mit vielleicht drei oder vier Optionen, aberundet mit einer wirklich ansprechenden Weboberfläche. Aber auch hier zeigte sich, dass Java nicht so einfach in den Griff zu bekommen ist, besser gesagt: das Speichermanagement von Java. JaCy wird mit einer Defaulteinstellung von max. 600 MB für die Java-VM ausgeliefert. Das sollte eigentlich für jeden durchschnittlichen Server mehr als ausreichend sein. Wie man aber dann nach kurzer Zeit Laufzeit sieht, pumpt sich der virtuelle Speicher des Prozesses schon mal auf gute 1,6 GB auf. Warum?\nTestweise habe ich JaCy in eine VM mit 2 GB RAM eingesperrt. Sobald man die Anwendung jedoch ein paar Sachen tun lässt, sprengt nach kurzer Zeit der Speicherhunger von Java jeden Rahmen und hält sich keinesfalls an die vorkonfigurierten Maximalwerte. Zumal das Java-interne Speichermanagement diesen Schwellzustand offensichtlich mitbekommt, anschließend aber nur noch damit beschäftigt ist, Garbage Collections durchzuführen, welche anscheinend nichts bringen, und so den Prozess dauerhaft auf Maximal-CPU-Last fahren. Quasi ein Deadlock zwischen Anforderung und GC.\nDesktopanwendungen Ganz ehrlich: man kann in Java wirklich tolle Sachen programmieren. So z.B. Eclipse. Eine Anwendung, die ich wirklich sehr oft nutze und von deren Funktionsumfang ich immer wieder überwältigt bin. Daneben gibt es noch eine ganze Menge kleinerer Java-Desktopanwendungen, welche klaglos funktionieren.\nUnd last but not least sind ja ein Großteil der auf Smartphones eingesetzten Apps in Java geschrieben. So schlecht kann die Sprache also nicht sein.\nAllein als Serveranwendung finde ich sie bisher ungeeignet.\n","link":"https://blog.tausys.de/2017/04/27/java-in-serveranwendung-enttaeuschend/","section":"posts","tags":["Java","OSS"],"title":"Java in Serveranwendungen: Enttäuschung ohne Ende"},{"body":"","link":"https://blog.tausys.de/tags/elster/","section":"tags","tags":null,"title":"ELSTER"},{"body":"Was die Finanzbehörden den Zwangs-Anwendern ihrer Soft- und Hardware Namens ELSTER zumuten ist bahnbrechend und soll im Folgenden an einem Beispiel aus der Praxis zusammengefasst werden.\nSeit dem 01.01.2013 ist die Umsatzsteuer-Voranmeldung, der Antrag auf Dauerfristverlängerung, die Anmeldung auf Sondervorauszahlungen und die Lohnsteueranmeldung nur noch mit elektronischem Zertifikat an die Finanzbehörden übermittelbar. Vorzugsweise erfolgt die Übermittlung mittels ERiC, einer Softwareschnittstelle von ELSTER und wird in naher Zukunft die einzige Schnittstelle zur Abgabe vorgenannter Erklärungen sein.\nDas dazu notwendigen elektronische Zertifikat kann ein dateibasiertes Zertifikat, eine Zertifikat auf einem Sicherheitsstick oder ein Zertifikat auf einer Signaturkarte sein.\nWer liefert was? In diesem Beispiel kommt ein Sicherheitsstick \u0026quot;G\u0026amp;D StarSign USB Token für ELSTER\u0026quot;, entwickelt von der secunet Security Networks AG und der Giesecke \u0026amp; Devrient GmbH, zum Einsatz. Merkwürdigerweise muss man beim Herunterladen der Treibersoftware dann allerdings noch einen Lizenzvertrag mit der Firma A.E.T. Europe B.V. absegnen. Kaufen kann man den Stick nur über einen von Reiner SCT bereitgestellten Shop. Ist doch klar, wer bei Fehlern im Zusammenhang mit dem Stick zuständig ist. Oder?\nZugang Die Kommunikation mit der Finanzbehörde erfolgt über das Portal elsteronline.de. Ebenfalls über diese Seite werden die Zertifikate auf den unterschiedlichen Medien verwaltet. Der Login mittels Signatur-Stick oder Signatur-Karte wurde früher (2012) per Java implementiert. Zur Installation der für die Hardware-Tokens erforderlichen DLLs wurde man aufgefordert, den Internet-Explorer mit Administrator-Rechten zu starten, damit dieser mittels Java erforderliche DLLs ins Windows-Systemverzeichnis kopieren konnte. Nochmal ganz langsam: Internet-Explorer mit Administrator-Rechten mit Java zum Schreiben ins Windows-Systemverzeichnis. Da kann man nur schreiend aus dem Büro rennen.\nHeute ist das zum Glück anders. Auch die Finanzbehörde hat erkannt, das Java mittlerweile im Browser größtenteils deaktiviert ist, ja sogar die NPAPI-Schnittstelle für die Anbindung von Plugins aus den Browsern verschwindet. Es musste eine andere Lösung gefunden werden. Die fand die Finanzbehörde mit der ElsterAuthenticator getauften Eigenentwicklung, die, wer hätte das gedacht, wiederum auf Java basiert.\nwww.elster.de\nElsterAuthenticator 180 MB für einen Minianwendung? Sportlich. Wohlgemerkt für einen Treiber, der Signatur-Sticks oder -Karten bedient, kein Grafikkartentreiber. Ein genauerer Blick offenbart Schlimmeres: integriert ist eine Java-Runtime, Version 1.8.0_112 (aktuell ist 1.8.0_131), bei der man wohl nur wenig hoffen kann, dass sie jemals aktualisiert wird.\nDie GUI der Anwendung erinnert an eine Smartphone-App:\nNett ist, dass die Anwendung jedes Mal nach dem Neustart beim Klick auf \u0026quot;Schließen\u0026quot; in den Systemtray minimiert und eine entsprechende Benachrichtigung abgesetzt wird. Unter Windows 10 wird man dann inkl. Hinweiston mit solch nutzlosen Meldungen genervt:\nELSTER Authenticator minimiert\nSchließen kann man die Anwendung aus der Oberfläche nicht, sondern nur über das Symbol im Systemtray.\nEin Blick in die Eigenschaften des Prozesses offenbart dann Schreckliches: der Prozess lauscht am externen Interface auf Port 24848, sowohl per IPv4 als auch per IPv6! Anscheinend wird dort HTTP gesprochen, denn ein Abruf zeigt einen dort laufenden Jetty:\nGeht's noch? Beim ersten Aufruf der Anwendung wird man freilich von Windows gefragt, ob man dem Programm das Lauschen ermöglichen möchte. Doch wer wählt das ab ohne zu riskieren, dass die Anwendung dann gar nicht funktioniert? So ist die Anwendung zumindest für das lokale Netzwerk bzw. das Firmennetzerk offen und jeder kann da mal dran rumspielen, da offensichtlich anschließende Anfragen auch ohne jedwede Authentifizierung beantwortet werden.\nVersuch Nachdem dann diese ganzen Schrecklichkeiten gestartet waren und ein Login auf der ELSTER-Online-Webseite angestoßen wurde, meldet der ElsterAuthenticator lapidar:\nELSTER Authenticator Fehlermeldung\nDer Token ist angesteckt und wurde im Gerätemanager korrekt erkannt. In der Konfiguration des ElsterAuthenticators können nur zwei verschiedene Sicherheitssticks ausgewählt werden. Zur Vereinfachung werden die zwei Sticks sogar abgebildet. Hilft aber alles nichts, erst ein Blick auf die Herstellerseite offenbart einen winzigen Unterschied: eingesetzt wird ein \u0026quot;G\u0026amp;D StarSign USB Token für ELSTER\u0026quot;, der installierte Treiber ist für einen \u0026quot;G\u0026amp;D StarSign Crypto USB Token für ELSTER\u0026quot;. Na, Unterschied erkannt?\nEine sichere Investition Wenn man den Unterschied gefunden hat, kann man dann auf der Herstellerseite nachlesen, dass der \u0026quot;G\u0026amp;D StarSign USB Token für ELSTER\u0026quot; unter Windows 10 gar nicht mehr unterstützt wird. Wie bitte? ELSTER beendet regelmäßig den Support für Windows-Versionen, welche von Microsoft nicht mehr gewartet werden. Das ist auch richtig so. Aber Verschlüsselungshardware von 2012 ist heute schon veraltet? Waren damals noch keine Schlüssellängen größer 512 Bit bekannt? Zumal der Stick auch noch 44,74 € gekostet hat. Das Versprechen für eine aktuelle Version des Sticks ist daher wohl mit Vorsicht zu genießen: \u0026quot;Eine sichere Investition - bestellen Sie gleich hier!\u0026quot;\nwww.sicherheitsstick.de\nWas zur libgeier noch mal!\nFazit Hier jedenfalls kann der Stick nicht mehr zum Laufen gebracht werden und wird demnächst durch ein dateibasiertes Zertifikat ersetzt. Auf die dann folgenden Fallstricke bin ich gespannt.\nELSTER® ist ein eingetragenes Markenzeichen des Freistaates Bayern. Titelbild mit Pressematerial von elster.de.\n","link":"https://blog.tausys.de/2017/04/24/elster-mit-sicherheitsstick/","section":"posts","tags":["ELSTER","Windows"],"title":"ELSTER mit Sicherheitsstick"},{"body":"","link":"https://blog.tausys.de/categories/allgemein/","section":"categories","tags":null,"title":"Allgemein"},{"body":"Mit dem letzten Nightly vom 03.04.2017 von LineageOS wurde zumindest für das Motorola Moto G4 (athene) gehörig am Stromverbrauch und damit der Akkulaufzeit geschraubt. Beeindruckend!\nAkkulaufzeit\nOk, darin ist noch keine wirkliche Nutzung enthalten. Aber für die Funktion \u0026quot;einfach nur in der Tasche stecken, um erreichbar zu sein\u0026quot; ist die oben angegebene Zeit ein mehr als beachtlicher Wert.\nWeiter so!\n","link":"https://blog.tausys.de/2017/04/05/lineageos-moto-g4-akkulaufzeit/","section":"posts","tags":["Android","LineageOS","MotoG4","Motorola"],"title":"LineageOS: Moto G4 Akkulaufzeit"},{"body":"","link":"https://blog.tausys.de/tags/motog4/","section":"tags","tags":null,"title":"MotoG4"},{"body":"","link":"https://blog.tausys.de/tags/motorola/","section":"tags","tags":null,"title":"Motorola"},{"body":"Seit mehreren Jahren setze ich auf meinen Android-Smartphones (soweit unterstützt) alternative ROMs ein, das heißt, Betriebssystemversionen, die von einer Community erstellt, gewartet und weiterentwickelt werden. Bei meinem ersten Kontakt mit Custom-ROMs war CyanogenMod prominenter Vertreter. Nach dem angekündigten, doch dann eher schlagartigem Ende von CyanogenMod landete ich automatisch bei dessen Nachfolger: LineageOS. Hier folgt quasi mein Android-Lebenslauf.\nGeschichtskunde Lange Zeit habe ich mich nicht an das Thema Smartphone herangewagt. Mein uraltes Sony Ericsson K610i leistete gute Dienste und brauchte nur ca. alle fünf Tage aufgeladen zu werden. Man konnte telefonieren, SMS schreiben und ab und zu ein Bild knipsen (rechts ein Bild in der damals gerade noch akzeptablen Qualität). Auch E-Mail konnten mit diesem Gerät schon empfangen werden. Für Geduldige war sogar ein Web-Abruf über GPRS von Straßenkarten, mit manueller Standortangabe, möglich.\nUnd dann kam Weihnachten. Ein schickes HTC One X lag auf dem mir selbst angerichteten Gabentisch. Brandneu, damals Flagschiff der Marke und mit so vielen netten Spielerreien vollgepackt, dass das alte Handy (leider) sehr schnell in Vergessenheit geraten war. Zugegeben, mein Profil ist eher das eines Kundschafters, als das eines Benutzers. Jedes noch so versteckte Menü musste entdeckt werden und davon gab es eine Menge.\nZu dieser Zeit warf ich dann auch einen Blick auf die Entwicklung von Android. In diesem rasant wachsenden Markt ist die Situation heute leider nicht besser als damals: Geräte werden höchstens noch ein oder zwei Mal mit neuen Android-Versionen vom Hersteller beliefert und dann ist meistens Schluss. Marketing-technisch verständlich, jedoch unmöglich im Hinblick auf Nachhaltigkeit. Der Käufer wird allein gelassen mit einer tadellos funktionierenden Hardware, aber einer täglich alternden und unsicherer werdenden Betriebsystemversion auf seinem Smartphone. Nach zwei Betriebssystem-Updates wurde von HTC keine weitere Version von Android mehr für mein Smartphone geliefert. Hier musste Abhilfe her.\nDas erste Custom-ROM Das damals weitverbreitetste Custom-ROM war CyanogenMod. Unterstützt von einer breiten Community und mit Hilfe von zahlreichen Hilfeseiten machte ich mich daran, das Smartphone zu rooten, es also überhaupt erst einmal zum Aufspielen neuer Software zu bringen, und anschließend das neue Betriebssystem aufzuspielen. Nicht ganz ohne Kammerflimmern wenn man bedenkt, dass man einmal reichlich 700 € für das kleine Stück Hardware ausgegeben hatte. Und wer hätte das gedacht: alle verlief problemlos. Die Software war mittlerweile so gut entwickelt, dass es keinerlei Probleme auf meinem Smartphone gab. Auch nach dem Ende des Supports durch den Hersteller konnte ich mich auf eine aktuelle Software verlassen.\nDas Smartphone war anschließend im Dauereinsatz. Und mit Dauereinsatz meine ich: fast permanent an einem Zusatzakku angeschlossen und aktiviertem GPS mit einem Ingress-Spieler unterwegs. Die Hardware wurde gefordert bis zum Äußersten. Spritzwasser im Regen und Überhitzung im Auto waren keine Seltenheit. Nach zwei Jahren intensivster Nutzung und durchgehender Softwareaktualisierung (zuletzt CyanogenMod 11, Android 4.4.4, KitKat) hat die Hardware schlussendlich doch ihren Geist aufgegeben: ein GPS-Fix war nur noch sporadisch zu erhalten und das WLAN war mehr wackelig als stabil. Was über die ganze Zeit heil geblieben war: die Ladebuchse.\nHardwareersatz Nach den vorgenannten Hardwareausfällen musste ein neues Smartphone her. Klar war, dass ich für die bisher gewohnten zwei Jahre Gebrauch nicht die Summe ausgeben wollte, welche das erste Smartphone verschlungen hatte. Genau zu dieser Zeit brachte Motorola das preiswerte Mittelklasse-Gerät Moto G auf den Markt. Technisch konnte es mit dem ehemaligen Flagschiff mithalten, es gar übertreffen. Die für einen Ingess-Spieler wichtigen Parameter wie schnelle Darstellung in der App, Unterstützung von mehreren Positionierungssystemen (das Moto G kann zusätzlich zu GPS auch die GLONASS-Satelliten empfangen) und die größere Akkulaufzeit hatten überzeugt und übertrafen das ehemalige Flagschiff. Das fehlende Gyroskop bedeute zwar eine kleine Einschränkung in Ingress, da der Kompass innerhalb des Spieles nicht mehr funktionierte, stellte aber für einen mittlerweile erfahrenen Spieler kein Hindernis dar. Über vier Jahre leistete mir das Moto G gute Dienste. Es war kompakt, unverwüstlich und passte in jede kleine Tasche. Upgedatet habe ich dieses Smartphone bis CyanogenMod 14.1, Android 7.1.1. Aktuelle LineageOS-ROMs für das Smartphone sind noch immer verfügbar. Und das für ein Gerät aus 2013!\nMehr Leistung Etwas unzufrieden war ich mittlerweile mit der Leistung des Moto G und der verständlicherweise über die Jahre schwächer gewordenen Leistung des Akkus. Die etwas mageren 1 GB RAM führten dazu, dass die im Laufe der Entwicklung immer größer werdenden Anwendungen sich bei jedem Start gegenseitig aus dem Speicher verdrängten und so immer wieder neu gestartet werden mussten. Durch das Marketing einer großen Elektronikkette wurde ich dann auf das Motorola Moto G4 aufmerksam, welches es genau an einem Tag für ganze 100 € günstiger gegenüber dem regulären Marktpreis zu erstehen gab. Gesagt getan, die Marke war bekannt, die Leistungsdaten passten, gekauft.\nBei diesem Gerät wollte ich gar nicht auf das Ende der Unterstützung durch den Hersteller warten. Fast direkt nach dem Kauf, obwohl damit der Garantieanspruch verloren ging, wurde eine aktuelle Version von CyanogenMod aufgespielt und lief wie erwartet hervorragend. Das war Ende 2016. Fast direkt anschließend folgte das Ende von CyanogenMod. Sollte ich jetzt wieder auf dem Stand sein, eine langsam veraltende Software zu haben, die nie wieder aktualisiert werden kann? Nein!\nGeburtsstunden Ehemalige Entwickler und Contributoren von CyanogenMod hatten sich zusammen getan und LineageOS aus der Taufe gehoben. Die ersten inoffiziellen Builds des Custom-ROMs waren nur auf XDA, einer Plattform für Android-Entwickler, verfügbar. Das Vertrauen war mittlerweile so groß, dass auch diese Versionen installiert wurden. Support war rar gesäht. Auf Google+ fand sich eine inoffizielle Community, direkter Support war auf XDA für mich jedoch noch nicht zu bekommen, da ich ein zu junges Mitglied war und dadurch keine Themen in diesem Forum beginnen konnte. Ebenfalls sehr unübsichtlich waren die Informationen zu Problemen, welche auf XDA nur sehr schwer in unterschiedlichen, manchmal über fünfzig oder mehr Seiten langen Threads zu finden waren.\nSo haperte es auf meinem funkelnagelneuen Moto G4 Anfang 2017 noch ziemlich an einem exorbitant hohen Akkuverbrauch, dem über die Maßen instabilen WLAN und der mehr weniger als funktionierenden Kamera.\nZu allem Überdruss vermischten sich auch noch die Problembeschreibungen auf XDA, da das Moto G4 und das Moto G4 Play nur wenige Unterschiede in der Hardwareausstattung haben, ansonsten aber mit dem gleichen Custom-ROM betrieben werden.\nEs waren nervenaufreibende und unruhige Zeiten mit mehrfachen Installationsparties inkl. kompletter Neuinstallationen. Doch:\nDas Kind wird erwachsen Mittlerweile hat sich die Lage normalisiert. Jede Woche wird ein neuer Build für unterstützte Modelle veröffentlicht. Auf der Webseite kann pro Gerät die Änderungshistorie zur jeweiligen Vorgängerversion nachlesen werden. Kundige können sogar den Code-Review und die Änderungen im Sourcecode einsehen. Eingeschränkter Support ist auf Reddit zu haben. Aktuell wird der Bugtracker für Regressions oder neue Bugs zwar nur jeweils von Sonntags bis Montags geöffnet, was aber angesichts der begrenzten Kapazitäten auch verständlich ist.\nJedenfalls wurden die einzigen bei mir aufgetretenen und wirklich nervigen Bugs kurzfristig gefixt. Das WLAN ist mittlerweile stabil, der Akku hält etwas mehr als einen Tag und auch die Kamera macht hervorragende Bilder.\nIch bin rundherum zufrieden mit LineageOS und freue mich auf die wachsende Community! Wenn man ein bisschen hinter die vom Hersteller vernagelten Kulissen seines eigenen Smartphones schaut, so kann man mit LineageOS oft noch jahrelang mit stabiler und aktueller Software unterwegs sein.\n","link":"https://blog.tausys.de/2017/04/04/lineageos-entwicklung-schritt-fuer-schritt/","section":"posts","tags":["Android","LineageOS","OSS"],"title":"Mein Weg zu LineageOS"},{"body":"Heute möchte ich mich einmal direkt an meine Leser wenden, die diesen Artikel über OSBN oder ubuntunews.de lesen und um ein minimales Feedback mit zwei Klicks bitten.\nDa ich seit langem Anwender von CyanogenMod und nach dessen Einstellung nun von LineageOS bin, habe ich vor, die Erfahrungen mit diesen Android-Betriebssystemen als User in unregelmäßigen Abständen hier im Blog aufzuschreiben und dabei vielleicht auch den einen oder anderen Trick zum Umschiffen von Problemen festzuhalten.\nUmfrageergebnisse\nEs geht darum, ob Ihr Artikel dieser Art über die oben genannten Feeds lesen möchtet oder nicht. Sollte die Umfrage negativ ausfallen, so können Interessierte gern meinen Blog-RSS-Feed, alternativ nur zum Thema LineageOS, abonnieren.\nDie Umfrage hat keine allzugroßen Sicherungen gegen Manipulation. Ich vertraue da ganz auf Euch. Die Umfrage läuft ab jetzt eine Woche.\nNatürlich steht Euch auch die Kommentarfunktion offen, falls Ihr andere Vorschläge habt.\nIm Voraus: vielen Dank für Euer Feedback!\n","link":"https://blog.tausys.de/2017/02/22/lineageos-anwenderberichte/","section":"posts","tags":["LineageOS","OSS"],"title":"LineageOS Anwenderberichte"},{"body":"","link":"https://blog.tausys.de/categories/umfragen/","section":"categories","tags":null,"title":"Umfragen"},{"body":"Der Moment, in dem man festellt, dass man schon Jahre hätte randlos drucken können, wenn man denn nur die richtige Einstellungen gefunden hätte, ist unbezahlbar. Hier war es heute soweit.\nWer kommt denn auch auf die Idee, neben dem Papierformat A4 noch ein Papierformat \u0026quot;A4 Borderless\u0026quot; zu definieren? Nach dem Einstellen des randlosen Formats funktioniert nun auch der Druck über die ganze Seite.\nEinstellungsdialog mit Papierformat für randlos Drucken\nIch muss zugeben, dass ich in der Vergangenheit auch nicht wirklich nach der Einstellung gesucht habe. Die Dringlichkeit sieht man schon daran, dass mein fünf Jahre alter Tinendrucker gerade mal den dritten Satz Patronen drin hat.\nHeute jedoch brauchte ich unbedingt den bedruckten Rand. Amtliche Formulare können so schrecklich entworfen sein.\n","link":"https://blog.tausys.de/2017/02/16/linux-randlos-drucken/","section":"posts","tags":["Linux","OSS","Printer"],"title":"Linux: Randlos Drucken"},{"body":"","link":"https://blog.tausys.de/tags/printer/","section":"tags","tags":null,"title":"Printer"},{"body":"Linktipp Schon oft bin ich auf der Suche nach geeigneter Software auch in Suchmaschinen nicht fündig geworden. Offensichtlich ging das nicht nur mir so. Genau aus diesem Grund entstanden wohl folgende zwei auf Github gehostete Projekte:\nProgramme zur Systemadministration Programme für selbst gehostete Services Die Listen werden dauernd manuell gepflegt und sind in Kategorieen unterteilt. Auch zum Ausprobieren von Neuem eignen sich diese Listen hervorragend. Und mancher findet hier auch die eine oder andere Softwareperle.\n","link":"https://blog.tausys.de/2017/02/08/softwareuebersicht-fuer-sysadmins-und-selbsthoster/","section":"posts","tags":["Linux","OSS"],"title":"Softwareübersicht für Sysadmins und Selbsthoster"},{"body":"Mittlerweile ist eine scheinbar unüberblickbare Menge an Brennprogramme erhältlich, welche jedwede Anwendungsanforderung abdecken möchten. Manche Anwender bevorzugen die Kommandozeile, manche ganz simple Programme wie Simpleburn und wieder andere möchten gelegentlich eine CD oder DVD brennen und sich nicht erst mit vielen Schaltern, Einstellungen oder Formaten herumschlagen. Für diesen Zweck ist Xfburn hervorragend geignet, welches im Folgenden vorgestellt werden soll.\nXfburn hat das bisher unter Gnome gebräuchliche Brasero in mehreren Linux-Distributionen abgelöst. Ein kurzer Test von Brasero, der mehr durch Abstürze und nicht durch Funktionalität geprägt war, verdeutlichte diese Entscheidung.\nObwohl es bereits viele auf Windows portierte OpenSource-Software gibt, so ist die zum Brennen erforderliche Software doch so systemnah, dass eine Portierung von Xfburn anscheinend unmöglich und daher nur für Linux verfübar ist. Alternativen für Windows sind in einer Übersicht für Brennprogramme inklusive Testberichten und weiterführenden Links aufgelistet.\nInstallation von Xfburn Unter Debian-artigen Betriebssystemen wird Xfburn wie üblich mit Hilfe der Paketverwaltung installiert. Sofern Audio-CDs erstellt werden sollen, muss auch das Paket gstreamer0.10-plugins-ugly installiert werden, um evtl. zu brennende MP3s dekodieren zu können.\nBeim Starten präsentiert sich das Programm mit einer etwas eigenwilligen Oberfläche, die jedoch bereits alle Möglichkeiten des Brennens aufzeigt.\nXfburn Oberfläche\nDie Programm-Einstellungen stellen sich ebenfalls sehr aufgeräumt dar. Änderungen brauchen hier nur in wenigen Fällen durchgeführt zu werden. Installierte Brenner werden automatisch erkannt. Die weiteren Einstellungen sind auf vernünftige Voreinstellungen konfiguriert.\nDaten-Zusammenstellung brennen Ein Klick auf den entsprechenden Button im Hauptfenster öffnet einen Tab für die Daten-Zusammenstellung. Hier können nun vorhandene Dateien und Ordner durch Klicken auf \u0026quot;Hinzufügen\u0026quot; der Zusammenstellung hinzugefügt werden. Die erforderliche Mediengröße wird dabei automatisch berechnet und der Button rechts unten im Programm entsprechend umgestellt.\nXfburn Datenzusammenstellung\nWenn die Zusammenstellung fertig ist, geht es mit einem Klick auf \u0026quot;Weiter zum Brennen\u0026quot; zum eigentlichen Brennvorgang. In einem neu erscheindenden Fenster wird der zu verwendende Brenner, die Geschwindigkeit und der Schreibmodus ausgewähltt.\nDer Schalter \u0026quot;BurnFree\u0026quot; bezeichnet einen Schutz gegen den beim Schreiben von CDs gefürchteten Buffer-Underrun und sollte immer eingeschaltet bleiben.\nMit dem Schalter \u0026quot;Nur ISO erzeugen\u0026quot; kann der Speicherort und der Name einer ISO-Datei angegeben werden, die beim Klick auf \u0026quot;Zusammenstellung brennen\u0026quot; erstellt wird. Ein Brennen auf CD oder DVD findet bei Aktivierung dieser Einstellung nicht statt.\nXfburn Datenzusammenstellung brennen\nAudio-CD brennen Beim Klicken auf \u0026quot;Audio-CD\u0026quot; öffnet sich analog zur Daten-Zusammenstellung ein neuer Tab für die Musik-Zusammenstellung. Schon beim Hinzufügen von Dateien wird automatisch überprüft, ob sich diese erfolgreich mit den installierten GStreamer-Codecs dekodieren lassen. Das ist notwendig, da auf Audio-CDs Musik unkomprimiert gespeichert werden muss. Die Reihenfolge der einzelnen Musikstücke auf der zu erstellenden CD lässt sich per Drag-and-Drop festlegen.\nAbbild brennen Mit dieser Funktion lassen sich bereits auf der Festplatte vorhandene ISO-Dateien brennen. Nach einem Klick auf \u0026quot;Abbild brennen\u0026quot; erscheint ein Dialog, in dem das zu brennende Abbild ausgewählt und der Brennvorgang gestartet werden kann.\nXfburn Abbild brennen\nFazit Xfburn ist ein Programm, mit dem auch Anwender, welche nur gelegentlich CDs brennen, ausgezeichnetes zurechtkommen dürften. Der Funktionsumfang ist vollkommen ausreichend. Abstürze konnten bisher keine festgestellt werden. Die gebrannten CDs bzw. DVDs waren überall lesbar.\nWeitere interessante Programme finden sich in der Kategorie Software in diesem Blog.\n","link":"https://blog.tausys.de/2017/02/05/xfburn-brennen-unter-mint-und-ubuntu/","section":"posts","tags":["Linux"],"title":"Xfburn: Brennen von CDs und DVDs unter Mint und Ubuntu"},{"body":"Wer Zabbix für das Monitoring von Hosts und Services einsetzt und Windows-Rechner zu überwachen hat, kann den direkt vom Hersteller bereitgestellten Agent für Windows verwenden und entsprechend der offiziellen Anleitung installieren. Der Agent wird dabei als Windows-Dienst installiert und kann über die Kommandozeile oder die Windows-Dienste-GUI gestartet werden.\nBei meiner Installation trat jedoch folgender Fehler beim Starten des Dienstes auf:\n1C:\\Program Files\\Zabbix\u0026gt;zabbix_agentd.exe --start 2zabbix_agentd.exe [7840]: ERROR: cannot start service [Zabbix Agent]: [0x0000041D] Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung. Obwohl in der Konfigurationsdatei ein Logfile angegeben war, wurde dieses nicht angelegt (um vielleicht dort die Fehlerursache zu protokollieren). Ein Blick in die Windows Ereignisanzeige brachte auch keinen Erfolg:\nWindows Ereignisanzeige mit Zabbix-Agent Dienstfehler\nGlücklicherweise lässt sich der Agent im Vordergrund starten und siehe da, die Fehlerursache ward gefunden:\n1C:\\Program Files\\Zabbix\u0026gt;zabbix_agentd.exe --config c:\\ProgramData\\Zabbix\\zabbix_agentd.win.conf --foreground 2zabbix_agentd.exe [6704]: \u0026#34;TLSConnect\u0026#34; configuration parameter cannot be used: Zabbix agent was compiled without TLS support 3zabbix_agentd.exe [6704]: \u0026#34;TLSAccept\u0026#34; configuration parameter cannot be used: Zabbix agent was compiled without TLS support 4zabbix_agentd.exe [6704]: \u0026#34;TLSPSKIdentity\u0026#34; configuration parameter cannot be used: Zabbix agent was compiled without TLS support 5zabbix_agentd.exe [6704]: \u0026#34;TLSPSKFile\u0026#34; configuration parameter cannot be used: Zabbix agent was compiled without TLS support Leider ist also der aktuelle Build des Agents nicht mit TLS-Unterstützung kompiliert, so dass man die verschlüsselte Übertragung von Steuerkommandos und Ergebniswerten nicht nutzen kann. Getestet wurde mit folgender Version des Agents:\n1C:\\Program Files\\Zabbix\u0026gt;zabbix_agentd.exe --version 2zabbix_agentd Win64 (service) (Zabbix) 3.2.0 3Revision 62444 13 September 2016, compilation time: Sep 12 2016 15:28:10 ","link":"https://blog.tausys.de/2017/01/31/zabbix-windows-agent/","section":"posts","tags":["OSS","Windows","Zabbix"],"title":"Zabbix 3.2 Windows Agent Dienstfehler"},{"body":"","link":"https://blog.tausys.de/tags/mp3/","section":"tags","tags":null,"title":"MP3"},{"body":"","link":"https://blog.tausys.de/tags/ogg/","section":"tags","tags":null,"title":"OGG"},{"body":"","link":"https://blog.tausys.de/tags/pulseaudio/","section":"tags","tags":null,"title":"PulseAudio"},{"body":"Mit PulseAudio ist es relativ einfach, den durch Programme generierten Soundstream aufzunehmen. Sei es nun das Youtube-Video, von dem man gerne den Sound speichern möchte oder sei es der Sound-Output von Spielen, welche man vielleicht nachher als Let's-Play veröffentlichen möchte. Früher musste dazu zuerst umständlich der Monitor-Kanal der Soundkarte aktivieren werden und dann konnte von dort aufgenommen werden. Ebenfalls durften keine anderen Audiosignale, wie z.B. irgendwelche Benachrichtigungen eingemischt werden, solange der Sound aufgenommen wurde. Ein aktuelles PulseAudio ist da wesentlich komfortabler beim Aufnehmen des Sounds.\nPulseAudio verwendet Kanäle, die Programme zum Abspielen ihrer Sounds verwenden können. Um nun solche einen Kanal aufzunehmen muss erst einmal die Nummer des jeweiligen Kanals ermittelt werden.\nDie folgenden Kommandos wurden unter Mint 18 getestet (Ubuntu 16.04). Die unter Ubuntu 14.04 abweichenden Kommandos hat Arne freundlichweise im ersten Kommentar gepostet.\nMit folgendem Kommando können alle Kanäle der derzeit mit PulseAudio verbunden Programme angezeigt werden:\npacmd list-sink-inputs\nAnhand der Beschreibung bzw. des verbundenen Programms ist anschließend der PulseAudio-Index des sogenannten Sinks zu ermitteln. Mithilfe folgenden Kommandos kann dann der Audio-Output dieses einen Kanals aufgenommen und als Datei gespeichert werden:\nparec --verbose --monitor-stream=\u0026lt;Index\u0026gt; --file-format=wav recording.wav\nDie Aufnahme ist dabei unabhängig von der Einstellung der Lautstärke der Ausgabe. Es wird direkt der Input aufgezeichnet, was insbesondere für ein nachfolgendes Schneiden nützlich ist und auch keine Qualitätsverluste mit sich bringt, da das WAV-Format ein nicht verlustbehaftetes Komprimierungsverfahren ist. Möchte man sofort die Streamausgabe komprimieren, z.B. im OGG-Format, dann kann folgendes Kommando verwendet werden:\nparec --verbose --monitor-stream=\u0026lt;Index\u0026gt; | oggencode -b 192 -o record.ogg --raw -\nFür MP3 als Ausgabeformat kann statt oggencode lame verwendet werden.\nZum Schluss bleibt nur noch eins zu sagen: beim Kopien aller Werke gilt: beachte das Copyright!\n","link":"https://blog.tausys.de/2016/12/21/pulseaudio-audio-stream-von-programmen-aufnehmen/","section":"posts","tags":["Linux","MP3","OGG","OSS","PulseAudio"],"title":"PulseAudio: Audio-Stream von Programmen aufnehmen"},{"body":"Oft steht man vor der Frage, wo welche Partition, ein USB-Stick oder eine externe Festplatte im Dateisystem eingebunden bzw. gemountet ist. Die aktuellen Mounts können mit dem Befehl mount angezeigt werden. Allerdings ist die Ausgabe von mount durch die mittlerweile oft verwendeten anderen \u0026quot;Filesysteme\u0026quot; wie tmpfs, proc, cgroups usw. für Menschen fast nicht mehr komfortabel lesbar oder gar übersichtlich.\nChristoph Langner hat vor kurzem ein Tool vorgestellt, welches im mount-Paket enthalten ist und die Mountpunkte wesentlich übersichtlicher darstellt.\nWenn nur die vorhandenen und evtl. gemounteten Blockgeräte (das sind Geräte, auf denen blockweise gelesen und geschrieben wird, wie z.B. Festplatten, CD/DVD/BlueRay und USB-Sticks) angezeigt werden sollen, findet in lsblk einen nützlichen Helfer. lsblk ist im Paket util-linux enthalten.\n1$ lsblk 2NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 3fd0 2:0 1 4K 0 disk 4sda 8:0 0 32G 0 disk 5├─sda1 8:1 0 243M 0 part /boot 6├─sda2 8:2 0 1K 0 part 7└─sda5 8:5 0 31,8G 0 part 8 ├─lnx-root 254:0 0 512M 0 lvm / 9 ├─lnx-swap_1 254:1 0 1,2G 0 lvm [SWAP] 10 ├─lnx-usr 254:2 0 4G 0 lvm /usr 11 ├─lnx-var 254:3 0 15,9G 0 lvm /var 12 ├─lnx-tmp 254:4 0 380M 0 lvm /tmp 13 └─lnx-home 254:5 0 2G 0 lvm /home 14sr0 11:0 1 222M 0 rom Wie ich finde, genau das Richtige für eine schnelle Übersicht der Platten, Partitionen und Mountpoints.\n","link":"https://blog.tausys.de/2016/12/16/lsblk-anzeige-der-blockdevices-und-mountpoints/","section":"posts","tags":["Linux","OSS"],"title":"lsblk: Anzeige der Blockdevices und Mountpoints"},{"body":"","link":"https://blog.tausys.de/tags/notion/","section":"tags","tags":null,"title":"Notion"},{"body":"In der Standardinstallation des \u0026quot;tilling window managers\u0026quot; Notion sind die auf vielen Tastaturen vorhandenen Tasten für Volume-Up und -Down sowie Mute nicht konfiguriert. Da sich Notion umfangreich mit Hilfe von LUA anpassen lässt, kann diese Konfiguration schnell nachgeholt werden.\nDie Konfigurationsdateien von Notion befinden sich unter /etc/X11/notion/. Die dort liegende Datei cfg_notion.lua wird zuerst nach ~/.notion/ kopiert. In dieser Datei werden anschließend die entsprechenden Keybindings für die Volume-Tasten eingetragen.\nWird PulseAudio auf dem System eingesetzt, kann die Lautstärke mit pactl kontrolliert werden. Es muss dann folgender Abschnitt am Ende der Datei ~/.notion/cfg_notion.lua eingefügt werden:\n1defbindings(\u0026#34;WScreen\u0026#34;, { 2 kpress(\u0026#34;XF86AudioRaiseVolume\u0026#34;, \u0026#34;ioncore.exec_on(_, \u0026#39;pactl set-sink-volume @DEFAULT_SINK@ +3%\u0026#39;)\u0026#34;), 3 kpress(\u0026#34;XF86AudioLowerVolume\u0026#34;, \u0026#34;ioncore.exec_on(_, \u0026#39;pactl set-sink-volume @DEFAULT_SINK@ -3%\u0026#39;)\u0026#34;), 4 kpress(\u0026#34;XF86AudioMute\u0026#34;, \u0026#34;ioncore.exec_on(_, \u0026#39;pactl set-sink-mute @DEFAULT_SINK@ toggle\u0026#39;)\u0026#34;), 5}) Wird ALSA auf dem System einsetzt, kann die Lautstärke mit amixer gesetzt werden. Dann muss folgender Schnipsel in die oben genannte Datei eingetragen werden:\n1defbindings(\u0026#34;WScreen\u0026#34;, { 2 kpress(\u0026#34;XF86AudioRaiseVolume\u0026#34;, \u0026#34;ioncore.exec_on(_, \u0026#39;amixer -q sset Master 3%+\u0026#39;)\u0026#34;), 3 kpress(\u0026#34;XF86AudioLowerVolume\u0026#34;, \u0026#34;ioncore.exec_on(_, \u0026#39;amixer -q sset Master 3%-\u0026#39;)\u0026#34;), 4 kpress(\u0026#34;XF86AudioMute\u0026#34;, \u0026#34;ioncore.exec_on(_, \u0026#39;amixer -q sset Master toggle\u0026#39;)\u0026#34;), 5}) (Zwar könnte man amixer auch auf Systemen einsetzen welche mit PulseAudio laufen, jedoch hat amixer einen Bug, der bei Mute zwar alle Kanäle abschaltet, beim anschließenden (Un)Mute aber nur Master wieder einschaltet. Die Lautsprecher bleiben dann also stumm, da die anderen Soundkanäle nicht wieder eingeschaltet worden sind.)\nNach einem Neustart von Notion (F12 + sitzung/neustart) funktionieren die Volume-Tasten dann wie vorgesehen.\n","link":"https://blog.tausys.de/2016/12/03/notion-lautstaerke-ueber-die-tastatur-steuern/","section":"posts","tags":["Linux","Notion","OSS"],"title":"Notion: Lautstärke über die Tastatur steuern"},{"body":"Seit mehreren Wochen läuft hier ein eigener XMPP-Server auf Basis von Prosody. Die Benutzung des reinen XMPP-Chats (ohne Transports) mit Gajim unter Gnome und Windows, Xabber und Conversations auf Android und Pidgin unter Windows klappt hervorragend. Was jedoch bis auf zwei Ausnahmen nicht stabil funktionieren wollte, sind die Transports in andere Messenger-Netzwerke.\nAls Schnittstelle zwischen Prosody und den Modulen für die anderen Netze habe ich Spectrum2 gewählt. Stabil ließen sich nur Transports zu Twitter und zum IRC betreiben. Das liegt aber nicht an der verwendeten Software, sondern an den Anbietern selbst.\nGoogle-Transport Prinzipbedingt fügt der Google- bzw. XMPP-Transport zu Google bei jedem Anmelden die Kontakte dem eigenen Roster hinzu. Problematisch ist, dass Google dabei immer wieder neue IDs für bereits bestehende Kontakte generiert. Hier kommt es sofort zu Synchronisationsschwierigkeiten und man handelt sich sehr schnell \u0026quot;Leichen\u0026quot; in der Kontaktliste ein. Ebenfalls problematisch ist, sehr viele Kontakte bei Google zu haben, was bei intensiver Nutzung von z.B. Google+ schnell passieren kann. Bei jeder Statusänderung auf Clientseite werden alle Kontakte über den Transport hinweg über die Statusänderung informiert. Bei \u0026gt; 500 Leuten meinen die Google-Server dann schnell einmal, dass man sein Kontingent an XMPP-Nachrichten in der Minute ausgeschöpft hat und lassen vorübergehend keine weitere Kommunikation zu. Ebenfalls unschön ist, dass Google-Kontakte, welche nicht explizit Hangout deinstalliert oder anderweitig abgeschaltet haben als online, aber beschäftigt angezeigt werden. Die Anzeige der Kontaktliste in den Clientprogrammen unterscheidet grob aber nur zwischen online und offline. Man muss also mit einer sehr langen Kontaktliste bei vielen Kontakten auf Google rechnen. Aufgrund der vorübergehenden Weigerung der Google-Server weitere Nachrichten zu akzeptieren, kommen in diesem Zeitraum natürlich auch keine neuen Nachrichten an noch können andere verschickt werden. So ist dieser Transport leider unbenutzbar.\nFacebook-Transport Genauso wie der Google-Transport fügt der Facebook-Transport die FB-Kontakte auch immer wieder dem Roster hinzu. Allerdings sind die IDs dort fest und führen zu keinen Synchronisationsproblemen. Ebenfalls sind FB-Kontakte auch wirklich offline, wenn sie den Browser schließen. Ich konnte hier leider nur mit wenigen Kontakten testen, die Kommunikation klappte jedoch gut. Ernüchterung kam nun heute, als Facebook meinte, das Konto wäre nicht mehr authorisiert. Ein Blick auf die Facebook-Webseite offenbarte: das FB-Konto wurde vorübergehend gesperrt. Anlass hierzu gab wohl, dass die Verbindung vom XMPP-Server offen gehalten wurde und zwischenzeitlich die Facebook-Webseite mit einem normalen Browser und natürlich mit einer ganz anderen IP-Adresse besucht wurde. Facebook vermutet dann offenbar entwendete Zugangsdaten. Damit war auch dieser Transport unbrauchbar.\nTwitter-Transport Beim Twitter-Transport werden die Kontakte nicht in den Roster eingetragen. Vielmehr wird ein Konferenzraum erstellt, in dem alle Twitter-Follower Teilnehmer sind. Dieser Transport läuft bis jetzt stabil. Die Darstellung der Twitter-Nachrichten ist eher spartanisch und mit ettlichen technischen Informationen durchsetzt. Für den \u0026quot;schnellen Plausch\u0026quot; auf Twitter (sofern es soetwas überhaupt gibt) reicht die angebotene Funktionalität aber allemal.\nIRC-Transport Ebenfalls stabil läuft der IRC-Transport. Die einzelnen IRC-Channels werden als XMPP-Konferenzräume dargestellt. Die Teilnehmer der jeweiligen Konferenz bzw. des jeweiligen Channels brauchen dadurch auch nicht in den Roster übernommen werden. Durch die Möglichkeit, den jeweiligen Transport-Benutzer angemeldet zu lassen kann so ein dauerhafter Kontakt zu einem IRC-Channel hergestellt werden, obwohl man vielleicht gerade gar keinen XMPP-Client gestartet hat.\nTransport in andere Netzwerke Für WhatsApp steht ein weiterer Transport zur Verfügung, welchen ich aber nicht ausprobiert habe. Ein wichtiger Grund ist der, dass man nicht das gleiche Konto wie auf dem Smartphone verwenden kann, sondern sich ein zweites hätte erstellen müssen. Eigentlich ein NoGo für bestehende Kontakte, denn sie wissen dann nicht mehr, über welchen Account sie mich aktuell erreichen können.\nAndere Netzwerke wie Signal, Telegram oder auch Threema sind noch ganz außen vor, da für diese bisher keine (mir bekannten) Transports verfügbar sind.\nFazit Das ursprüngliche Ziel war, unterschiedliche Kommunikationswege unter einem Dach bzw. in einer einzigen XMPP-Schnittstelle zusammen zu führen. Gleichzeitig sollte erreicht werden, dass pro Betriebssystem nur noch ein Messenger verwendet werden muss. Dieser Versuch ist fehlgeschlagen. An diesem Zustand wird sich meiner Meinung nach in Zukunft auch nicht viel ändern, da jeder Dienst alles andere als interconnection-freudig ist.\n","link":"https://blog.tausys.de/2016/11/05/eigener-xmpp-server-ernuechterung-bei-transports/","section":"posts","tags":["Facebook","Google","Jabber","Messenger","OSS","Prosody","WhatsApp","XMPP"],"title":"Eigener XMPP-Server: Ernüchterung bei Transports"},{"body":"","link":"https://blog.tausys.de/tags/facebook/","section":"tags","tags":null,"title":"Facebook"},{"body":"","link":"https://blog.tausys.de/tags/google/","section":"tags","tags":null,"title":"Google"},{"body":"","link":"https://blog.tausys.de/tags/jabber/","section":"tags","tags":null,"title":"Jabber"},{"body":"","link":"https://blog.tausys.de/tags/messenger/","section":"tags","tags":null,"title":"Messenger"},{"body":"","link":"https://blog.tausys.de/tags/prosody/","section":"tags","tags":null,"title":"Prosody"},{"body":"","link":"https://blog.tausys.de/tags/whatsapp/","section":"tags","tags":null,"title":"WhatsApp"},{"body":"","link":"https://blog.tausys.de/tags/xmpp/","section":"tags","tags":null,"title":"XMPP"},{"body":"Mittlerweile gibt es eine unüberschaubare Anzahl an Chat-Programmen und Chat-Anbietern. Um den Konversationen der Freunde folgen zu können müssen auf dem heimischen PC mehrere Programme installiert und auf dem Smartphone soll für jeden Anbieter eine eigene App installiert werden. Warum nicht einfacher? Einen eigenen Server aufsetzen, welcher das genormte Protokoll XMPP spricht und mit Gateways zu den entsprechenden Diensten erweitert werden kann: Prosody.\nServer Mir bekannt sind nur zwei Opensource-Alternativen der XMPP-Server: ejabberd und prosody. Mit ejabberd hatte ich schon vor Jahren Kontakt, konnte mich aber nicht wirklich mit ihm anfreunden. Konfigurationsschwierigkeiten und die damals mangelnde Anzahl an Modulen für Erweiterungen führten dazu, meinen ejabberd damals wieder abzuschalten. Frischen Wind in die Reiher der XMPP-Server bringt der lange Zeit unbekannte Prosody (erste Version von 2008). Er hat sich auf die Fahne geschrieben, besonder leichtgewichtig, ressourcenschonend und dabei noch mit einer Fülle von Erweiterungen ausgestattet zu sein, die ihn zu einem vollwertigen Mitglied der XMPP-Server-Familie werden lassen sollen. Die Installation ist einfach, die aktuelle Version ist in Debian bereits in den Paketquellen enthalten:\napt install prosody\nDie Installation unter anderen OS-Versionen wird im Prosody-Wiki erklärt. Die folgende Installationsanleitung wird sich an den mit der Debian-Version vorgegebenen Pfaden orientieren.\nFür Prosody gibt es mittlerweile eine lange Liste von Modulen, welche durch die Community beigesteuert werden. Wer mag, kann diese ebenfalls einfach aus den Paketquellen installieren:\napt install prosody-modules\nIch wollte etwas mehr \u0026quot;am Puls der Zeit\u0026quot; bleiben, und habe statt der Module aus der Paketverwaltung die aktuellen Entwicklungsstände der Module ausgecheckt:\n1cd /usr/local/lib 2hg clone https://hg.prosody.im/prosody-modules/ prosody-modules Anschließend muss Prosody mitgeteilt werden, wo es die Module finden kann. In der globalen Konfigurationsdatei /etc/prosody/prosody.cfg.lua wird dazu Folgendes eingetragen:\nplugin_paths = { \u0026quot;/usr/local/lib/prosody-modules\u0026quot; }\nGrundkonfiguration In der gleichen Datei ist nun die Jabber-ID (JID) des späteren Admin-Users festzulegen. Wenn gewünscht, kann hier auch gleich die Speicherengine von Prosody festgelegt werden. Mit den Standardeinstellungen wird Sqlite3 verwendet. Wer MySQL bzw. MariaDB benutzen mag, stellt hier gleich\nstorage = \u0026quot;sql\u0026quot;\nein und entfernt die Kommentarzeichen bei der entsprechenden Konfigurationseinstellung für MySQL. Die dort eingetragene Datenbank muss nun mit ensprechenden Tools manuell erstellt und dem angegebenen Benutzer Rechte zum Zugriff auf die Datenbank gegeben werden. Anschließend erstellt man den Admin-User:\nprosodyctl adduser admin@example.org\nVirtuelle Hosts Prosody unterstützt mehrere virtuelle Hosts in einer einzigen laufenden Instanz, ähnlich einem Webserver, der mehrere verschiedene Domains in einer Instanz hosten kann. Die Konfiguration der virtuellen XMPP-Hosts erfolgt in einer Datei pro Host unter /etc/prosody/conf.avail. Zum Einschalten eines virtuellen Hosts wird ein symbolischer Link in /etc/prosody/conf.d auf die entsprechende Konfigurationsdatei in ../conf.avail angelegt (ähnlich wie bei den Webservern Apache oder Nginx).\nVirtuelle Hosts könnnen dazu benutzt werden, Jabber-IDs auf der \u0026quot;Hauptdomain\u0026quot; zu erstellen. Es ist dadurch möglich, Jabber-IDs mit dem Aufbau mustermann@example.org zu unterstützen, obwohl der echte Server z.B. auf jabber.example.org läuft.\nDie simpelste Konfiguration eines virtuellen Hosts besteht dabei aus nur einer einzigen Zeile:\nVirtualHost \u0026quot;example.org\u0026quot;\nUm nun den Jabber-Clients und -Servern mitzuteilen, unter welcher IP der \u0026quot;echte\u0026quot; Jabber-Server erreichbar ist, sind zwei DNS-Einträge erforderlich:\n1_xmpp-client._tcp.example.org. 300 IN\tSRV\t0 5 5222 jabber.example.org. 2_xmpp-server._tcp.example.org. 300 IN\tSRV\t0 5 5269 jabber.example.org. Einzelheiten, was die Werte in dieser Zeile bedeuten können der Dokumentation zu DNS-SRV-Records und der Server-Dokumentation entnommen werden.\nVerschlüsselung Um eine verschlüsselte Übertragung der Chat-Nachrichten zwischen Client und Server als auch zwischen Server und Server zu erzwingen, ist zuerst ein von den beteiligten Seiten akzeptiertes Zertifikat erforderlich. Wenn auf dem Server, auf dem Prosody installiert wird kein anderer HTTP(S)-Server läuft, kann das Zertifikat, falls man nicht schon ein entsprechendes besitzt, einfach von Let's Encrypt angefordert werden:\ncertbot certonly --standalone -d example.org\nDas Zertifikat und der zugehörige private Schlüssel liegen anschließend unter /etc/letsencrypt/live/example.org. Benötigt werden die Dateien fullchain.pem und privkey.pem. Diese habe ich der Einfachheit halber nach /etc/prosody/certs/ kopiert. Eine Anpassung der Rechte, damit Prosody die Dateien direkt aus dem Let's Encrypt Verzeichnis lesen kann, steht noch auf meiner TODO-Liste.\nAnschließend wird das Zertifikat in der Konfigurationsdatei des virtuellen Hosts eingetragen (/etc/prosody/conf.avail/jabber.example.org) und gleichzeitig festgelegt, dass nur verschlüsselte Kommunikation erlaubt ist:\n1c2s_require_encryption = true 2s2s_require_encryption = true 3s2s_secure_auth = true 4 5ssl = { 6 key = \u0026#34;/etc/prosody/certs/privkey.pem\u0026#34;; 7 certificate = \u0026#34;/etc/prosody/certs/fullchain.pem\u0026#34;; 8 } Weitere Module In der Konfigurationsdatei des jeweiligen virtuellen Hosts können einfach durch Hinzufügen des Modulnamens in den Abschnitt\n1modules_enabled = { 2 ... 3} weitere Module aktiviert werden.\nannounce ermöglicht dem Administrator, eine Nachricht an alle Online-Benutzer zu senden blocking Modul, mit dem Benutzer Blockierlisten verwalten können carbons Synchronisieren des Chatverlaufs zwischen unterschiedlichend Clients privacy erlaubt dem Benutzer, einen Status für bestimmte Benutzer vorzugeben watchregistrations Sendet Nachrichten bei der Registrierung neuer Benutzer an konfigurierte Adressen welcome erlaubt dem Administrator, eine Willkommensnachricht einzustellen http der HTTP(S)-Server von Prosody, von dem z.B. http_upload abhängt http_upload ermöglicht den Upload von Dateien log_auth protokolliert die Anmeldeversuche Die Dokumentation vieler weiterer Module kann auf einer entsprechenden Webseite eingesehen werden.\nWenn man die öffentliche Registrierung freigeschaltet hat, so möchte man vielleicht über neu registrierte Benutzer informiert werden. Verantwortlich dafür ist nach der Aktivierung der öffentlichen Registrierungsmöglichkeit das Modul watchregistrations:\n1registration_watchers = { \u0026#34;admin@example.org\u0026#34; } 2registration_notification = \u0026#34;User $username just registered on $host from $ip\u0026#34; 3 4welcome_message = \u0026#34;Hello $username, welcome to the $host IM server!\u0026#34; 5 6allow_registration = true; Für das Hochladen von Dateien muss noch eine entsprechende Komponentenkonfiguration und evtl. eine maximal hochladbare Dateigröße festlegt werden:\n1Component \u0026#34;upload.example.org\u0026#34; \u0026#34;http_upload\u0026#34; 2http_upload_file_size_limit = 2097152 Problematisch ist hier, dass der Dateiupload offensichlich nicht die oben angelegten DNS-SRV-Record beachtet, sondern einen Server unter upload.example.org erwartet. Dieser kann nach meinen bisherigen Tests auch nicht als weiterer virtueller Host angelegt werden sondern benutzt das Zertifikat, welches in der Hauptkonfigurationsdatei von Prosody in /etc/prosody/prosody.cfg.lua festgelegt worden ist. Man braucht also für http_upload unbedingt noch ein Zertifikat für upload.example.org, welches in der Hauptkonfigurationsdatei eingetragen werden muss.\nHochgeladene Dateien werden unter /var/lib/prosody/http_upload gespeichert.\nTransports In Jabber bzw. XMPP definierte Gateways zu anderen Netzen werden Transports genannt. Mit diesen Transports ist es z.B. möglich, über einen XMPP-Client Twitter-Nachrichten zu lesen und zu posten, mit Freunden auf Facebook in Kontakt zu bleiben, Nachrichten mit Nutzern von Google (ehemals GoogleTalk, jetzt Google Hangouts) ausztauschen oder am ältesten Chat im Internet, dem IRC, teilzunehmen.\nDamit Transports sich in prodody registrieren können, muss zuerst deren Name und ein Password festgelegt werden. In der Konfigurationdatei des jweiligen virtuellen Hosts sind dazu folgende Einträge notwendig:\n1Component \u0026#34;dienstname.example.org\u0026#34; 2 component_secret = \u0026#34;sehrgeheim\u0026#34; Um nun die verschiedenen Transport-Module anschließen zu können ist erst einmal eine Software nötig, welche sich um den Start und die Kommunikation der einzelnen Transportmodule kümmert. Für prosody kann dazu Spectrum2 verwendet werden. Die recht einfache Installation unter Debian Jessie ist in einer Anleitung beschrieben.\nSofern ein Transport zu Facebook benötigt wird, kann seit Mitte 2015 leider nicht mehr das eingebaute XMPP verwendet werden. Facebook hat das entsprechende Gateway abgeschaltet und sich damit quasi isoliert. Um trotzdem Zugriff auf den Facebook-Chat zu bekommen, ist die Installation eines weiteren Modul erforderlich: purple-facebook. Eine entsprechende Installationsanleitung findet sich auf der Webseite des Maintainers.\nFür die verschiedenen Netzwerke stehen anschließend folgende Module zur Verfügung:\nspectrum2_libpurple_backend Transport zu Facebook (protocol=prpl-facebook) spectrum2_twitter_backend Transport zu Twitter spectrum2_swiften_backend Transport zu Google (protocol=prpl-jabber) spectrum2_libcommuni_backend Transport zu IRC Die Konfigurationsdateien der einzelnen Transports in Spectrum2 sind unter /etc/spectrum2/transports zu finden. Dort wird für jeden einzelnen Transport eine eigene Datei erstellt, z.B. google.cfg oder facebook.cfg. Eine entsprechende Vorlage ist in spectrum.cfg.example enthalten. Die Schritte zur Konfiguration sind folgende:\nKopieren von spectrum.cfg.example auf dienstname.cfg Anpassung von jid, password (gleiches Passwort, wie in der prosody-Konfiguration unter component festgelegt), backend und evtl. protocol (entsprechend der obigen Auflistung) Festlegung des Namens des Transports evtl. Anpassung der Datenbank im Abschnitt [database] Starten des Transports mit spectrum2_manager dienstname.example.org start Eine Konfigurationdatei für Facebook (facebook.cfg) könnte z.B. wie folgt aussehen:\n1[service] 2frontend=xmpp 3 4# The name of user/group Spectrum runs as. 5user=spectrum 6group=spectrum 7 8# JID of Spectrum instance. 9jid = facebook.example.org 10admin_jid = admin@example.org 11 12# Password used to connect the XMPP server. 13password = ComponentenPasswort 14 15# XMPP server to which Spectrum connects in gateway mode. 16server = 127.0.0.1 17 18# XMPP server port. 19port = 5347 20 21# Interface on which Spectrum listens for backends. 22backend_host = 127.0.0.1 23 24# Port on which Spectrum listens for backends. 25# By default Spectrum chooses random backend port and there\u0026#39;s 26# no need to change it normally 27#backend_port=10001 28 29# Number of users per one legacy network backend. 30users_per_backend=10 31# For Skype - must be =1 32#users_per_backend=1 33 34# Full path to backend binary. 35backend=/usr/bin/spectrum2_libpurple_backend 36 37protocol=prpl-facebook 38 39[identity] 40# Name of Spectrum instance in service discovery 41name=Spectrum Facebook Transport 42 43# Type of transport (\u0026#34;msn\u0026#34;, \u0026#34;icq\u0026#34;, \u0026#34;xmpp\u0026#34;). 44# Check http://xmpp.org/registrar/disco-categories.html#gateway 45type=xmpp 46 47# Category of transport, default is \u0026#34;gateway 48category=gateway 49 50[logging] 51# log4cxx/log4j logging configuration file in ini format used for main spectrum2 instance. 52config = /etc/spectrum2/logging.cfg 53 54# log4cxx/log4j logging configuration file in ini format used for backends. 55backend_config = /etc/spectrum2/backend-logging.cfg 56 57[database] 58# Database backend type 59# \u0026#34;sqlite3\u0026#34;, \u0026#34;mysql\u0026#34;, \u0026#34;pqxx\u0026#34;, or \u0026#34;none\u0026#34; without database backend 60type = mysql 61database = spectrum2 62server = localhost 63user = spectrum2 64password = DbPasswort 65prefix = fb_ 66 67[registration] 68# Enable public registrations 69enable_public_registration=1 In prosody muss dazu vorher folgende Definition beim virtuellen Host eingetragen worden sein:\n1Component \u0026#34;facebook.example.org\u0026#34; 2 component_secret = \u0026#34;ComponentenPasswort\u0026#34; Transports und Server starten und stoppen Die einzelnen Dienste oder auch der XMPP-Server selbst können mit folgenden Kommandos gestartet oder gestoppt werden:\nprosodyctl start prosodyctl stop prosodyctl restart spectrum2_manager dienstname.example.org start spectrum2_manager dienstname.example.org stop spectrum2_manager dienstname.example.org restart Logdateien zur Fehlersuche für prodody werden in /var/log/prosody geschrieben, Logdateien für Spectrum2 unter /var/log/spectrum2/TransportName/spectrum2.log und Logdateien für die einzelnen Transports unter /var/log/spectrum2/TransportName/backend/*.log.\n","link":"https://blog.tausys.de/2016/10/25/prosody-chatserver-mit-vielen-anbindungen/","section":"posts","tags":["Jabber","Linux","OSS","XMPP"],"title":"Prosody: Chatserver mit Anbindung zu G+, FB, Twitter und IRC"},{"body":"","link":"https://blog.tausys.de/tags/pfsense/","section":"tags","tags":null,"title":"PfSense"},{"body":"Lange Zeit schien das WLAN hier hervorragend zu funktionieren. Im Netz waren nur ein paar Smartphones und Tablets eingebucht. Kurze Verbindungsabbrüche fallen bei diesen Geräten wenig auf, da sie es schon vom Mobilfunknetz aus verstehen, mit kurzen Unterbrechungen klar zu kommen. Ganz anders sieht das mit Geräten aus, die eine konstante Kommunikation benötigen, wie z.B. Drucker oder Scanner.\nHier steht ein HP DeskJet 3520, welcher drucken und scannen kann. Verbindungssabbrüche führen dann zum Ausdruck halber Seiten. Glücklicherweise ist CUPS (der Linux-Druckerspooler) großzügig, wenn ein Auftrag mal nicht komplett ausgeführt wird. Anders verhält es sich mit Scanprogrammen, die sich bei ausbleibender Kommunikation einfach aufhängen.\nIn der hier eingesetzten ALIX-2D13-Box mit NanoBSD-Image ist eine TP-LINK TL-WN861N WLAN N Mini-PCI-Adapter mit Atheros-Chipsatz verbaut. Und genau dieser konnte als Problem ausgemacht werden.\nHeutzutage wird zur WLAN-Verschlüsselung WPA2 vorzugsweise das Verschlüsselungsprotokoll AES verwendet, welches auch die von pfSense empfohlene Einstellung für das WLAN ist. Es stellte sich heraus, dass entweder die Implementierung von AES in pfSense oder dem Atheros-Treiber sich nicht mit dem verträgt, was der HP-Drucker so erwartet oder auch dessen Implementierung fehlerhaft ist. Immer nach einem Rekeying ging die Verbindung kurz verloren. Im WLAN-Protokoll von pfSense sieht das dann so aus:\n1ath0_wlan0: WPA rekeying GTK 2ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: sending 1/2 msg of Group Key Handshake 3ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: EAPOL-Key timeout 4ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: sending 1/2 msg of Group Key Handshake 5ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: EAPOL-Key timeout 6ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: sending 1/2 msg of Group Key Handshake 7ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: EAPOL-Key timeout 8ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: sending 1/2 msg of Group Key Handshake 9ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: EAPOL-Key timeout 10ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: WPA_PTK: sm-\u0026gt;Disconnect 11ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: event 3 notification 12ath0_wlan0: STA xx:xx:xx:xx:xx:xx IEEE 802.1X: unauthorizing port 13ath0_wlan0: STA xx:xx:xx:xx:xx:xx MLME: MLME-DEAUTHENTICATE.indication(xx:xx:xx:xx:xx:xx, 2) 14ath0_wlan0: STA xx:xx:xx:xx:xx:xx MLME: MLME-DELETEKEYS.request(xx:xx:xx:xx:xx:xx) 15ath0_wlan0: STA xx:xx:xx:xx:xx:xx IEEE 802.11: disassociated 16ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: event 2 notification 17ath0_wlan0: STA xx:xx:xx:xx:xx:xx IEEE 802.1X: unauthorizing port Ergebnis waren dann die oben schon erwähnten halb ausgedruckte Seiten oder hängengebliebene Scanprogramme.\nAbhilfe brachte die Umstellung auf TKIP. Die ebenfalls mit pfSense mögliche Einstellung \u0026quot;Both\u0026quot; führte nicht zum Erfolg, da beide Geräte zuerst AES aushandeln, sich anschließend aber wieder nicht verstehen. Ein korrektes WLAN-Rekeying sieht nach der Umstellung auf TKIP dann wie folgt aus:\n1ath0_wlan0: WPA rekeying GTK 2ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: sending 1/2 msg of Group Key Handshake 3ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: received EAPOL-Key frame (2/2 Group) 4ath0_wlan0: STA xx:xx:xx:xx:xx:xx WPA: group key handshake completed (RSN) Verbindungsabbrüche gehörten ab nun der Vergangenheit an. Eventuell muss ich nun meine Amazon-Bewertung des HP-Druckers überarbeiten.\n","link":"https://blog.tausys.de/2016/09/28/pfsense-verbindungsabbrueche-mit-atheros-wlan-karten/","section":"posts","tags":["OSS","pfSense","WLAN"],"title":"pfSense: Verbindungsabbrüche mit Atheros-WLAN-Karten"},{"body":"","link":"https://blog.tausys.de/tags/wlan/","section":"tags","tags":null,"title":"WLAN"},{"body":"","link":"https://blog.tausys.de/tags/security/","section":"tags","tags":null,"title":"Security"},{"body":"","link":"https://blog.tausys.de/tags/teamspeak/","section":"tags","tags":null,"title":"TeamSpeak"},{"body":"Am 10. August 2016 wurde auf Pastebin ein Dokument veröffentlicht, welches mehrere schwere Sicherheitslücken im TeamSpeak-Server beschreibt. So z.B. soll es möglich sein, den TS-Server aus der Ferne ohne irgendwelche Authentifizierung übernehmen zu können. Es wurde auf die Lücken hingewiesen, jedoch wurden keine Exploits veröffentlicht. Laut den dortigen Informationen wurde wohl versucht, die TeamSpeak Gmbh über deren Nutzerforum zu erreichen, Hinweise auf die Fehler wurden aber dann wohl zensiert oder als harmlos dargestellt.\nQ: Why not do coordinated disclosure?\nA: The Teamspeak developers censor their forums and sweep vulnerabilities under the rug as \u0026quot;crashes\u0026quot;. I am not comfortable with that. Furthermore I fear legal action from them.\nDaraufhin hat sich der Entdecker der Sicherheitslücken offensichtlich entschlossen, das obige Dokument zu veröffentlichen. Aufgeschreckt meldeten sich nun Nutzer im entsprechenden Support-Forum. Wie man in den Beiträgen sieht, wurden auch dort Links auf die Beschreibung der Sicherheitslücken rigide zensiert.\nAm 15. August 2016 wurde die TeamSpeak-Server Version 3.0.13.2 veröffentlicht. Das CHANGELOG enthält enhält nur einen minimalen Hinweis auf geschlossene Sicherheitslücken. Weitere Informationen dazu, ob bereits alle Lücken geschlossen oder überhaupt die obigen Lücken gefixt wurden, sind nicht verfügbar.\n=== Server Release 3.0.13.1 15 august 2016\nfixed several vulnerabilities. Schwach. Es bleibt zu hoffen, das sich diese Situation in Zukunft verbessert. Eine Benachrichtigungsfunktion über vorhandene Aktualisierungen wäre ein Anfang. Der Client beherrscht das bereits. Ebenfalls ist ein ausführliches Changelog Pflicht, damit ersichtlich ist, ob die bekannten Lücken bereits geschlossen wurden.\n","link":"https://blog.tausys.de/2016/08/19/teamspeak-wirbel-um-0day-luecken/","section":"posts","tags":["Security","TeamSpeak"],"title":"TeamSpeak: Wirbel um 0day-Lücken"},{"body":"","link":"https://blog.tausys.de/tags/electrum/","section":"tags","tags":null,"title":"Electrum"},{"body":"Electrum ist ein Desktop-Client zur Verwaltung eines Bitcoin-Wallets, der sich zunehmender Beliebtheit erfreut. Bis zu Linux Mint 17 war er in den offiziellen Paketquellen von Mint enthalten, wurde aber leider entfernt, da sich wohl kein Maintainer gefunden hat, der die enthaltene Uraltversion ersetzt. Trotzdem ist eine Installation unter Linux Mint 18 relativ einfach möglich.\nAuf der Webseite von Electrum ist angegeben, wie die Installation unter Linux allgemein erfolgen sollte. Leider reichen die dort angegebenen Instruktionen für eine erfolgreiche Installation nicht aus. Es sind weitere Pakete notwendig. Benötigt werden zusätzlich die Pakete python-setuptools und python-wheel.\n1sudo apt-get install python-qt4 python-pip python-setuptools python-wheel 2sudo pip install https://download.electrum.org/2.6.4/Electrum-2.6.4.tar.gz Danach ist Electrum installiert, jedoch noch nicht im Linux Mint Menü verknüpft. Eine entsprechende .desktop-Datei wird jedoch mitgeliefert und kann mit folgendem Kommando installiert werden:\n1sudo desktop-file-install /usr/local/lib/python2.7/dist-packages/usr/share/applications/electrum.desktop Anschließend kann Electrum ganz normal aus dem Menü gestartet werden.\n(Titelbild: clem)\n","link":"https://blog.tausys.de/2016/08/03/linux-mint-18-electrum-installieren/","section":"posts","tags":["Bitcoin","Electrum","Linux","OSS"],"title":"Linux Mint 18: Electrum installieren"},{"body":"Gegenüber Apache ist Nginx ein reiner Datenauslieferer. Anwendungen werden hier nicht wie beim Apache als Module geladen, sondern müssen als eigenständige Prozesse, über FastCGI erreichbar, bereitgestellt werden. Um PHP bereitzustellen kann PHP-FPM verwendet werden. Über FastCGI kann es entweder über einen Unix-Socket oder per TCP/IP angesprochen werden und mit Nginx kommunizieren.\nUm die Serverlast im Auge zu behalten kennt man unter Apache die vom Modul mod_status bereitgestellt Statusseite. Unter Nginx kann mit stub_status on; ebenfalls an entsprechender Stelle eine Statusseite eingeschaltet werden. Für PHP-FPM müssen mehre Einstellungen vorgenommen werden.\nZuerst einmal muss in PHP-FPM festgelegt werden, unter welcher URL bzw. dessen Pfad die Statusseite ausgegeben werden soll. Diese wird in der Konfigurationsdatei des jeweiligen PHP-FPM-Pools eingetragen. Unter Debian heißt der Standard-Pool www und die entsprechende Konfiguration befindet sich in /etc/php5/fpm/pool.d/www.conf.\npm.status_path = /fpmstatus Ich verwende hier /fpmstatus, da eindeutiger und das vorgegebene /status bei mir schon belegt war.\nAnschließend muss in Nginx festgelegt werden, dass dieser Pfad an PHP-FPM weitergeleitet wird.\n1location ~ ^/fpm(status|ping)$ { 2 access_log off; 3 allow 127.0.0.1; 4 allow ::1; 5 deny all; 6 include fastcgi_params; 7 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 8 fastcgi_pass unix:/var/run/php5-fpm.sock; 9} Hier wird festgelegt, dass die Pfade /fpmstatus und /fpmping an PHP-FPM weitergeleitet werden und nur ein Zugriff von localhost auf diese Pfade zulässig ist.\nNach einem Neustart von Nginx und PHP-FPM kann nun auf die entsprechende URL zugegriffen werden:\n1$ GET \u0026#39;http://localhost/fpmstatus\u0026#39; 2pool: www 3process manager: dynamic 4start time: 20/Jul/2016:17:26:54 +0200 5start since: 17936 6accepted conn: 5044 7listen queue: 0 8max listen queue: 0 9listen queue len: 0 10idle processes: 2 11active processes: 1 12total processes: 3 13max active processes: 5 14max children reached: 4 15slow requests: 0 Die ausgegebenen Werte bedeuten im einzelnen:\nWert Beschreibung start time Zeitpunkt, wann PHP-FPM gestartet wurde start since Anzahl der Sekunden seit dem Start von PHP-FPM accepted conn Anzahl der akzeptierten Verbindungen listen queue Anzahl der wartenden Anfragen in der Warteschlange. Sollte hier ein Wert größer 0 auftauchen, so sollte die Anzahl der FPM-Prozesse erhöht werden. max listen queue die Maximalanzahl der jemals in der Warteschlange wartenden Anfragen listen queue len die Größe der Warteschlange idle processes Anzahl der unbeschäftigten Prozesse active processes Anzahl der Prozesse, die aktuell Anfragen bearbeiten total processes Gesamtanzahl der Prozesse, Summe aus beiden vorgenannten Werten max active processes Maximalanzahl der jemals gleichzeitig aktiven Prozesse max children reached Anzahl, wie oft die maximale Anzahl der gleichzeitig aktiven Prozesse erreicht wurde. Steht hier eine Zahl größer 0 sollte die Maximalanzahl der Prozesse erhöht werden. slow request sofern die Auswertung von \u0026quot;slow requests\u0026quot; in FPM eingeschaltet ist, wird hier angezeigt, wie oft solche slow requests aufgetreten sind Erweiterte Statistiken für alle FPM-Prozesse lassen sich ebenfalls ausgeben:\n1# GET \u0026#39;http://localhost/fpmstatus?full\u0026#39; 2pool: www 3process manager: dynamic 4start time: 20/Jul/2016:17:26:54 +0200 5start since: 18855 6accepted conn: 5224 7listen queue: 0 8max listen queue: 0 9listen queue len: 0 10idle processes: 2 11active processes: 1 12total processes: 3 13max active processes: 5 14max children reached: 4 15slow requests: 0 16 17************************ 18pid: 29335 19state: Running 20start time: 20/Jul/2016:20:56:52 +0200 21start since: 6257 22requests: 6447 23request duration: 96 24request method: GET 25request URI: /fpmstatus?full 26content length: 0 27user: - 28script: - 29last request cpu: 0.00 30last request memory: 0 31 32... Hier wird für jeden FPM-Prozess unter anderem angezeigt, welche URL er gerade bearbeitet und wie viele Anfragen er insgesammt seit dem Start schon verarbeitet hat.\nDie Statusseite kann auch in anderen Formaten ausgegen werden:\nhttp://localhost/fpmstatus http://localhost/fpmstatus?json http://localhost/fpmstatus?html http://localhost/fpmstatus?xml Die erweiterte Statusseite versteht die unterschiedlichen Ausgabeformate ebenfalls:\nhttp://localhost/fpmstatus?full http://localhost/fpmstatus?json\u0026amp;full http://localhost/fpmstatus?html\u0026amp;full http://localhost/fpmstatus?xml\u0026amp;full Besonders die XML- und JSON-Ausgabe lassen sich einfach weiterverarbeiten. Die HTML-Ausgabe kann auf entsprechende Webseiten eingebunden werden.\n","link":"https://blog.tausys.de/2016/07/20/nginx-php-fpm-statusseite-einschalten/","section":"posts","tags":["Nginx","OSS","PHP-FPM"],"title":"Nginx: PHP-FPM Statusseite einschalten"},{"body":"","link":"https://blog.tausys.de/tags/php-fpm/","section":"tags","tags":null,"title":"PHP-FPM"},{"body":"Vorweg: es gefällt mir gar nicht! Anscheinend ist die Weiterentwicklung von Friendica etwas eingeschlafen. Hintergründe dazu kenne ich leider keine, noch kann ich irgendetwas zu den Gründen aus den diversen Supportgruppen herauslesen.\nFriendica machte sich einst auf, ein soziales Netzwerk für jedermann zu werden und sollte irgendwann eine freie und echte Alternative zu den datenhungrigen kommerziellen Anbietern werden. Besonderer Augenmerk wurde auf die Privatsphäre gelegt und der Grundsatz umgesetzt, dass die Daten dem Erzeuger gehören und er selbst über dessen Verbreitung entscheidet. Dabei ist Friendica ein Meister der Interconnection und kann sich mit vielen anderen sozialen Netzwerken verbinden und Beiträge von dort übernehmen, ja zu einigen Netzwerken sogar exportieren.\nLeider scheint es aber auch hier wie in so vielen großen, bisher nur von ambitionierten Enthusiasten erstellten Projekten zu sein: irgendwann ist der eigene Antrieb weg und neu Beitragende sind rar. Selbst Fachleute für Teilaufgaben lassen sich anscheinend nicht mehr finden, denn sonst wäre es unerklärlich, dass Friendica seit Jahren mit einem lahmenden Datenbankmodell daherkommt, es immer noch nicht über eine genormte Schnittstelle für das Installieren und vor allem dem restlosen Deinstallieren von Plugins verfügt und sogar nach vielen Jahren der Entwicklung heute immer noch nicht korrekt mit UTF-8 umgehen kann.\nDer Sourcecode des Projekts wird auf GitHub gehostet. Die Commitfrequenz spricht hier eine klare Sprache. Fast schlagartig setzte die Entwicklung gegen Ende 2015 aus.\nFriendica Commits\nIch selbst betreibe seit mehreren Jahren einen eigenen Friendica-Server (Update: nicht mehr). Auf diesem bin zwar nur ich selbst zu Hause, konnte aber einige Kontakte, die ich aus anderen Netzwerken kannte auch bei Friendica wiederfinden. Ich würde es vermissen, diesen Vorreiter für selbstgehostet soziale Netzwerke wegen Veralterung, Inkompatibilität oder gar wegen Sicherheitslücken nicht mehr verwenden zu können.\n","link":"https://blog.tausys.de/2016/07/20/friendica-mit-durststrecke/","section":"posts","tags":["Friendica","OSS"],"title":"Friendica mit Durststrecke"},{"body":"","link":"https://blog.tausys.de/tags/munin/","section":"tags","tags":null,"title":"Munin"},{"body":"","link":"https://blog.tausys.de/tags/smart/","section":"tags","tags":null,"title":"SMART"},{"body":"","link":"https://blog.tausys.de/tags/ssd/","section":"tags","tags":null,"title":"SSD"},{"body":"SSDs haben das Problem, dass die Speicherzellen nur eine begrenzte Anzahl Schreibvorgänge vertragen. Danach sind sie kaputt. Zwar hat jede SSD eine Reserve, die in so einem Fall automatisch benutzt wird, aber die hält eben auch nicht ewig. Durch unachtsame Konfiguration kann man so ganz schnell seine Hardware schrotten.\nIm folgenden Beispiel wurden die SMART-Werte zweier im RAID1-Verbund laufender SSDs über ein Jahr lang ausgewertet:\nSchön zu sehen ist, wie der Reservespeicherplatz permanent abnimmt. Bei der zweiten SSD sieht man, dass obwohl noch Reservespeicherplatz vorhanden sein sollte, nicht korrigierbare Fehler plötzlich sprunghaft ansteigen.\nDie SSDs wurden über das ganze Jahr gesehen durchschnittlich mit 170 kB/s Lesen und 713 kB/s Schreiben \u0026quot;gequält\u0026quot;. Auf dem Server lief eine eher kleine Webseite und ein zusätzlicher Dienst, welcher oft viele Daten schreiben musste. Beide verwendeten MySQL, welches mit InnoDB Speicherpages schreibt und zwecks Transaktionssicherung auch immer einen Flush auf den Plattencache machen muss.\nDa viele Hoster dedizierte Server mit HDD und SSD nur \u0026quot;entweder oder\u0026quot; anbieten, sollte man vorher genau überlegen, ob eine SSD für die eigene Serveranwendung und auf lange Sicht überhaupt geeignet ist.\n","link":"https://blog.tausys.de/2016/07/14/ssd-tod-durch-dauerschreiben/","section":"posts","tags":["Munin","OSS","SMART","SSD"],"title":"SSD-Tod durch Dauerschreiben"},{"body":"","link":"https://blog.tausys.de/tags/dovecot/","section":"tags","tags":null,"title":"Dovecot"},{"body":"Primär ist der Einsatz der kostenlosen Let's Encrypt Zertifikate für Webseiten vorgesehen. Wie erzeugt man nun aber ein Zertifikat für einen Mail- bzw. IMAP-Server, auf dem vielleicht gar kein Webserver läuft? Auch das ist in wenigen Schritten möglich. Ich verwende hier certbot zur Kommunikation mit Let's Encrypt, da er für Debian in den Jessie-Backports enthalten ist.\nIn der Beschreibung hier verwende ich für alle Stellen, an der die Domain des eigenen Mailservers eingetragen werden muss.\ncertbot installieren Zuerst einmal muss das Jessie-Backport-Repository für die Paketverwaltung bekannt gemacht werden. Dazu legt man am einfachsten unter /etc/apt/sources.list.d eine neue Datei mit dem Namen jessi-backports.list und folgendem Inhalt an:\ndeb http://ftp.debian.org/debian jessie-backports main\nDanach muss die lokale Kopie des Repository-Verzeichnisses aktualisiert werden und anschließend kann certbot wie gewohnt installiert werden:\n1apt-get update 2apt-get install certbot -t jessie-backports Zertifikat anfordern Danach ist es ganz einfach, ein Zertifikat für den Mailserver anzufordern:\ncertbot certonly --standalone -d \u0026lt;Domain-Name\u0026gt;\nMit diesem Kommando wird ein temporärer Webserver gestartet über welchen Let's Encrypt mit dem lokalen System kommuniziert. Dadurch wird sichergestellt, dass die zu registrierende Domain auch unter der entsprechenden Adresse erreichbar und damit für den Domainnamen im Zertifikat berechtigt ist.\nNach der erfolgreichen Generierung der Zertifikate werden diese unter /etc/letsencrypt/live// abgelegt.\nZertifikat in Dovecot einbinden Unter /etc/dovecot/conf.d/10-ssl.conf trägt man die Pfade zum neuen Zertifikat ein:\n1ssl = required 2ssl_cert = \u0026lt;/etc/letsencrypt/live/\u0026lt;Domain-Name\u0026gt;/fullchain.pem 3ssl_key = \u0026lt;/etc/letsencrypt/live/\u0026lt;Domain-Name\u0026gt;/privkey.pem Nach einem Neustart von Dovecot ist nun der IMAPS-Zugang mit dem neuen Let's Encrypt Zertifikat gesichert. Leider bietet z.B. Thunderbird keine Möglichkeit, ein gültiges Zertifikat zum Mailserver anzuzeigen (nur bei einem ungültigen Zertifikat kann es angezeigt werden). Mit Hilfe von openssl läßt sich jedoch einfach überprüfen, ob Dovecot das korrekte Zertifikat liefert (hier für meinen eigenen Mailserver mail.tausys.de):\n1$ echo QUIT | openssl s_client -connect mail.tausys.de:993 -CApath /etc/ssl/certs 2depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 3verify return:1 4depth=1 C = US, O = Let\u0026#39;s Encrypt, CN = Let\u0026#39;s Encrypt Authority X3 5verify return:1 6depth=0 CN = mail.tausys.de 7verify return:1 8CONNECTED(00000003) 9--- 10Certificate chain 11 0 s:/CN=mail.tausys.de 12 i:/C=US/O=Let\u0026#39;s Encrypt/CN=Let\u0026#39;s Encrypt Authority X3 13 1 s:/C=US/O=Let\u0026#39;s Encrypt/CN=Let\u0026#39;s Encrypt Authority X3 14 i:/O=Digital Signature Trust Co./CN=DST Root CA X3 15--- 16Server certificate 17-----BEGIN CERTIFICATE----- 18MIIFADCCA+igAwIBAgISA/75c4QDGDZgs1OK4vBX3gD3MA0GCSqGSIb3DQEBCwUA 19 20... 21 22-----END CERTIFICATE----- 23subject=/CN=mail.tausys.de 24issuer=/C=US/O=Let\u0026#39;s Encrypt/CN=Let\u0026#39;s Encrypt Authority X3 25--- 26No client certificate CA names sent 27--- 28SSL handshake has read 3152 bytes and written 453 bytes 29--- 30New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 31Server public key is 2048 bit 32Secure Renegotiation IS supported 33Compression: NONE 34Expansion: NONE 35SSL-Session: 36 Protocol : TLSv1.2 37 Cipher : ECDHE-RSA-AES256-GCM-SHA384 38 Session-ID: D48D4AA295B4F5E4186BDBCC2157577400368E634FBB923710C4EFCE9D3561B2 39 Session-ID-ctx: 40 Master-Key: 42FF58355ECEBD6CAEE26DAC22853F901AFD86C5F1C12F5815F16B98A3864D34EE8D15720E7F107F8C58D62F7CEC4C00 41 Key-Arg : None 42 PSK identity: None 43 PSK identity hint: None 44 SRP username: None 45 TLS session ticket lifetime hint: 300 (seconds) 46 TLS session ticket: 47 0000 - fa 36 66 54 b8 d1 8a da-cd 5d f2 f6 7d 60 7e 68 .6fT.....]..}`~h 48 0010 - c1 9d 8e fb fc e0 13 3e-e8 9f 46 7a 99 c5 b1 e0 .......\u0026gt;..Fz.... 49 0020 - 5a 49 01 1b 17 a7 43 c5-f3 6f f8 e4 ff a1 d1 6c ZI....C..o.....l 50 0030 - df d1 07 e5 db 74 e3 02-c7 d9 54 40 32 78 97 a9 .....t....T@2x.. 51 0040 - 8c b4 1f b5 e2 cd e9 cc-af 3d d3 1c 31 05 41 7b .........=..1.A{ 52 0050 - 06 f2 b6 fe e5 ca 8e d0-a3 6a 36 9e 11 6e a8 6a .........j6..n.j 53 0060 - 80 0d c2 ac fc 7b 16 86-e0 12 e6 47 9f 73 ae 37 .....{.....G.s.7 54 0070 - 5b e6 ea 52 bf c2 42 59-99 6d 47 07 0f 69 c8 01 [..R..BY.mG..i.. 55 0080 - 65 1a 3f b5 52 23 fa 74-44 00 1f c9 96 4d fc bb e.?.R#.tD....M.. 56 0090 - d2 7e e0 ab fc 4c cf c5-dc 23 85 8f 04 d3 1f ed .~...L...#...... 57 58 Start Time: 1468434962 59 Timeout : 300 (sec) 60 Verify return code: 0 (ok) 61--- 62DONE Oben sieht man die Zertifikatskette und unten die erfolgreiche Verifizierung des Zertifikats.\nZertifikat in Postfix einbinden Zwar ist es für SMTP nicht erforderlich, dass die Zertifikate gültig sind (viele SMTP-Server laufen mit selbst signierten Zertifikaten), da eine Überprüfung nicht vorgeschrieben ist. Warum jedoch sollte man das Let's Encrypt Zertifikat nicht verwenden, wenn man schon ein gültiges vorliegen hat? Große Anbieter benutzen selbst bei Mailservern ein von einer CA signiertes Zertifikat.\nDas Zertifikat wird für Postfix in /etc/postfix/main.cf eingetragen:\n1# TLS parameters 2smtpd_tls_cert_file=/etc/letsencrypt/live/\u0026lt;Domain-Name\u0026gt;/fullchain.pem 3smtpd_tls_key_file=/etc/letsencrypt/live/\u0026lt;Domain-Name\u0026gt;/privkey.pem 4smtpd_tls_loglevel=1 5smtpd_use_tls=yes 6smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache 7smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache Nach einem Neustart von Postfix kann man die korrekte Verwendung des Zertifikats in Postfix wiederrum mit openssl überprüfen. Da hier zuerst von einer ungesicherten Verbindung (SMTP über Port 25) mit STARTTLS auf eine gesicherte Verbindung umgeschaltet werden muss, müssen die Parameter für openssl entsprechend angepasst werden:\n$ echo QUIT | openssl s_client -connect mail.tausys.de:25 -CApath /etc/ssl/certs -starttls smtp\nZertifikate automatisch erneuern Edit: Bei der Installation von certbot aus den Debian-Repositories wird automatisch ein Cron-Job unter /etc/cron.d/certbot angelegt. Dieser kann mit nachfolgenden Informationen entsprechend angepasst werden.\nMit Cron kann certbot periodisch aufgerufen werden und erneuert die demnächst ablaufenden Zertifikate automatisch. Ebenfalls bietet certbot die Möglichkeit bei erneuerten Zertifikaten ein Kommando auszuführen, damit z.B. die Mailservices (hier Dovecot und Postfix) zum Einlesen der neuen Zertifikate neu gestartet werden. Dazu legt man sich als erstes ein Skript z.B. unter /usr/local/sbin/restart_mailservices mit folgendem Inhalt an:\n1#!/bin/sh 2 3systemctl restart postfix.service 4systemctl restart dovecot.service Das Skript muss nun noch ausführbar gemacht werden:\nchmod +x /usr/local/sbin/restart_mailservices\nAnschließend kann ein Cron-Job erstellt werden, welcher das folgende Kommando periodisch aufruft:\ncertbot renew --post-hook /usr/local/sbin/restart_mailservices\nUpdate: neuere Versionen von certbot sollten deploy-hook statt post-hook verwenden (Danke an Andi).\n","link":"https://blog.tausys.de/2016/07/13/letsencrypt-zertifikate-fuer-dovecot-und-postfix/","section":"posts","tags":["Dovecot","Letsencrypt","Linux","OSS","Postfix"],"title":"Let’s Encrypt Zertifikate für Dovecot und Postfix"},{"body":"","link":"https://blog.tausys.de/tags/letsencrypt/","section":"tags","tags":null,"title":"Letsencrypt"},{"body":"","link":"https://blog.tausys.de/tags/postfix/","section":"tags","tags":null,"title":"Postfix"},{"body":"","link":"https://blog.tausys.de/tags/cachify/","section":"tags","tags":null,"title":"Cachify"},{"body":"Mit dem WordPress-Plugin Cachify steht eine Lösung zur Verfügung, die ein einfaches Zwischenspeichern von dynamisch erzeugten Webseiten bietet. Die Inhalte können mit unterschiedlichen Methoden zwischengespeichert werden. Unterstützt werden APC, Disk, DB und Memcached (nur mit Nginx). Da ich hier Nginx einsetze, bietet sich Memcached als schnellste Variante an. Wie Cachify und Nginx dann zu konfigurieren sind kann im Cachify-Wiki nachgelesen werden.\nDie erfolgreiche Konfiguration läßt sich einfach überprüfen: es wird an das Ende der jeweiligen Webseite ein HTML-Kommentar von Cachify eingefügt. Ist dieser im Quelltext der Seite vohanden, dann wurde die Seite aus dem Cache, bei mir also von Nginx/Memcached ausgeliefert.\n1\u0026lt;!-- Cachify | http://cachify.de 2Memcached @ 08.07.2016 13:25:07 --\u0026gt; Nach ein paar Tests stellte sich heraus, dass genau eine Seite hier aus dem Blog nicht zwischengespeichert wird. Nach langem Suchen fand ich dann den Grund: der Seitenquelltext ist größer als 1 MB (bedingt durch sehr viele Kommentare auf der Seite) und Memcached speichert in der Standardkonfiguration nur Items bis zu einer Größe von 1 MB.\nAb der Version 1.4.2 von Memcached kann diese Größe konfiguriert werden. Unter Debian 8 fügt man dazu in die Datei /etc/memcached.conf eine neue Zeile mit z.B.\n-I 2m\nein. Damit wird die Maximalgröße eines Items auf 2 MB angehoben. Anschließend muss Memcached neu gestartet werden. Mit folgendem Kommando lassen sich die aktuellen Einstellungen eines laufenden Memcached anzeigen:\n1# echo \u0026#34;stats settings\u0026#34; | netcat localhost 11211 2STAT maxbytes 134217728 3STAT maxconns 1024 4STAT tcpport 11211 5STAT udpport 11211 6STAT inter 127.0.0.1 7STAT verbosity 0 8STAT oldest 0 9STAT evictions on 10STAT domain_socket NULL 11STAT umask 700 12STAT growth_factor 1.25 13STAT chunk_size 48 14STAT num_threads 4 15STAT num_threads_per_udp 4 16STAT stat_key_prefix : 17STAT detail_enabled no 18STAT reqs_per_event 20 19STAT cas_enabled yes 20STAT tcp_backlog 1024 21STAT binding_protocol auto-negotiate 22STAT auth_enabled_sasl no 23STAT item_size_max 2097152 24STAT maxconns_fast no 25STAT hashpower_init 0 26STAT slab_reassign no 27STAT slab_automove 0 28STAT lru_crawler no 29STAT lru_crawler_sleep 100 30STAT lru_crawler_tocrawl 0 31STAT tail_repair_time 0 32STAT flush_enabled yes 33STAT hash_algorithm jenkins 34END 35^C Unter item_size_max ist die neue Einstellung zu erkennen. Alternativ kann auch phpMemcachedAdmin verwendet werden, um den Inhalt der Caches anzuzeigen.\n","link":"https://blog.tausys.de/2016/07/08/kein-cache-mit-cachify-und-memcached/","section":"posts","tags":["Cachify","Linux","Memcached","Nginx","OSS","WordPress"],"title":"Kein Cache mit Cachify und Memcached"},{"body":"","link":"https://blog.tausys.de/tags/memcached/","section":"tags","tags":null,"title":"Memcached"},{"body":"","link":"https://blog.tausys.de/tags/hhvm/","section":"tags","tags":null,"title":"HHVM"},{"body":"Knapp zwei Jahren wurde dieses Blog durch HHVM angetrieben. Obwohl die Unterstützung vieler PHP-Funktionen in der Vergangenheit nicht immer zufriedenstellend war, so war die Geschwindigkeit doch immer ein Hauptvorteil von HHVM. Mit zunehmender Serviceanzahl, drängte sich jedoch ein Problem immer mehr in den Vordergrund: viele Dienste benötigen einen Cronjob, welche ebenfalls in PHP realisiert sind. HHVM per CLI ist einfach zu speicherhungrig. Den Speicherhunger kann man schön in folgender Grafik erkennen:\nHHVM PHP memory-day\nIn der linken Hälfte sieht man die HHVM-Cronjobs immer schön als Zacken. Nach der Umstellung auf PHP-FPM rechts ist wieder jede Menge Luft.\nWirklich schwierig war die Umstellung nach der Installation von PHP mit \u0026quot;apt install php5-fpm\u0026quot; (und einiger weiterer php5-Pakete) nicht. In jeder Host-Definitionsdatei für NGINX unter /etc/nginx/sites-enabled hatte ich bereits einen Eintrag \u0026quot;include hhvm.conf\u0026quot;. Dieser wurde einfach durch \u0026quot;include php5-fpm.conf\u0026quot; ersetzt, wobei diese Datei folgenden Inhalt hat:\n1location ~ \\.php$ { 2\tinclude snippets/fastcgi-php.conf; 3\tfastcgi_pass unix:/var/run/php5-fpm.sock; 4} Nach einem \u0026quot;nginx -s reload\u0026quot; wird dann sofort PHP benutzt. Einige dauernd laufenden Dienste auf PHP-Basis mussten noch mit einem \u0026quot;systemctl restart ...\u0026quot; neu gestartet werden und fertig war die Umstellung.\nVon Seiten der Zugriffszeit erwarte ich eigentlich keine großen Änderungen, da die generierten Seiten jetzt schon dauerhaft per Memcached ausgeliefert werden. Eine Statistik der durch Google in den Webmaster-Tools gemessenen Zeiten hänge ich für einen späteren Vergleich mal an:\nGWT blog.tausys.de Crawling 2016-07-05 22-50-34\n","link":"https://blog.tausys.de/2016/07/05/migration-von-hhvm-zu-php/","section":"posts","tags":["HHVM","Linux","OSS","PHP"],"title":"Migration von HHVM zu PHP"},{"body":"","link":"https://blog.tausys.de/tags/php/","section":"tags","tags":null,"title":"PHP"},{"body":"Speziell auf NanoBSD, der auf ALIX-Boards eingesetzten pfSense-Variante schlägt das Update auf die Version 2.3.1_5 über die Verwaltungswebseite und auch über die Shell fehlt. Nach dem Duplizieren des Slice scheint der Updateprozess zu hängen, es dauert sehr lange, bis einfach nur ein \u0026quot;Failed\u0026quot; ausgegeben wird.\nDer Updateprozess startet das Update im Slice als chroot-Umgebung. Durch einen Bug ist dort manchmal unter NanoBSD keine resolv.conf vorhanden, welche zum Auflösen von Hostnamen erforderlich ist. Downloads können dann nicht ausgeführt werden. Der Fehler ist mittlerweile bekannt.\nAbhilfe schafft ein Update im laufenden System. Dabei wird nicht in die chroot-Umgebung gewechselt, sondern das laufende System upgedatet:\n1pkg update -f 2pkg upgrade -f Danach sollte die Box neu gestartet werden. Nachteil dabei ist, dass man kein Slice mit der vorhergehenden Version mehr hat. Eventuell sollte man also vorher über \u0026quot;Diagnostics -\u0026gt; NanoBSD -\u0026gt; Duplicate boot slice\u0026quot; das aktuelle (ältere) Slice sichern, um eine Fallbackvariante zur Verfügung zu haben.\n","link":"https://blog.tausys.de/2016/06/29/pfsense-update-auf-version-2-3-1_5-schlaegt-fehl/","section":"posts","tags":["OSS","pfSense"],"title":"pfSense: Update auf Version 2.3.1_5 schlägt fehl"},{"body":"Vielleicht kennen einige die sogenannte Löffelsprache, bei der es sich um eine spielerische Modifikation der Sprache handelt. Die Regeln sind einfach: hinter jeden Vokal wird \u0026quot;lef\u0026quot; gesetzt und der Vokal wiederholt (andere Variationen benutzen \u0026quot;lew\u0026quot; oder auch \u0026quot;low\u0026quot;). Diphthonge werden insgesamt behandelt. Hinter sie wird ebenfalls ein \u0026quot;lef\u0026quot; gesetzt und der Diphthong wiederholt. Ein Beispiel: Aus \u0026quot;Jens Tautenhahn\u0026quot; wird \u0026quot;Jelefens Taulefautelefenhalefahn\u0026quot;. Die Vokale und Diphthonge hinter denen \u0026quot;lef\u0026quot; eingefügt wird sind fett markiert.\nIm Netz kursieren ein paar Beispielimplementierungen in verschiedenen Sprachen, diese sind jedoch leider nicht vollständig. Ich habe keine Implementierung gefunden, die die Diphthonge beachtet. Ein Anreiz, mal wieder sed in die Hand zu nehmen und es richtig zu machen:\nalias loeffel=\u0026quot;sed 's/\\([äae]u\\|[ae]i\\|ie\\|[aeiouäöü]\\)/\\1lef\\1/g;'\u0026quot;\n\u0026quot;[äae]u\u0026quot; bildet die Diphthonge äu, au und eu ab, \u0026quot;[ae]i\u0026quot; ai und ei, dazwischen ie und zum Schluss alle Vokale inklusive der entprechenden Umlaute. Durch die Klammerung kann man anschließend den Match als Parameter in der Ersetzung verwenden (\\1).\nJetzt kann man \u0026quot;loeffel\u0026quot; prima als Pipe verwenden und allen möglichen Text \u0026quot;löffeln\u0026quot;.\n","link":"https://blog.tausys.de/2016/06/25/loeffelsprache-mit-sed/","section":"posts","tags":["Linux","OSS","sed"],"title":"Löffelsprache mit sed"},{"body":"","link":"https://blog.tausys.de/tags/sed/","section":"tags","tags":null,"title":"Sed"},{"body":"Lange Zeit war es still um \u0026quot;.DE Deutsche Domain\u0026quot; bzw. den Absender deutschedomain.com. Die letzten dokumentierten Fälle stammen aus Oktober und November 2015. Heute jedoch flatterte wieder einer dieser Abzockversuche ins digitale Postfach:\nSehr geehrte Frau / Herr,\nNachfolgend die Einzelheiten zu der Domainregistrierung für 2016 / 2017.\nWir hoffen, Sie ausreichend informiert zu haben.\nMit freundlichen Grüssen\nAnna Müller\nKundendienst\nDE Deutsche Domain\ninfo@deutschedomain.com\nSchon dass hier keine korrekte Anrede verwendet wurde sollte aufhorchen lassen. Im Anhang befindet sich dann ein bemerkenswertes PDF mit Namen \u0026quot;Rechnung 232366.pdf\u0026quot;:\nWas als erstes an dieser \u0026quot;Rechnung\u0026quot; auffällt: sie ist schlicht an niemanden gerichtet. Ebenfalls unklar ist der Rechnungsgegenstand. Um welche Domain handelt es sich hier? Die bei Rechnungen erforderliche USt-ID oder Steuernummer fehlt ebenfalls.\nDer Betrugsversuch wird erst im Kleingedruckten offenbar. Dort ist unter anderem zu lesen:\nDies ist ein angebot und keine rechnung, die zahlung auf dieses angebot hin wird als annahme des angebotes oder auftragsbestätigung verstanden.\nDas Ganze ist also mitnichten eine Rechnung, sondern ein (selten dämliches) Angebot, bei dem noch nicht einmal die angebotene Leistung, auch nicht aus dem Kleingedruckten, ersichtlich ist.\nWelche Fakten kann man dem PDF noch entnehmen? Die Echtheit der angegebenen Telefonnummer wage ich zu bezweifeln. Nur fünfstellige Telefonnummern in Berlin? Als Kontaktadresse ist nur ein Postfach (also keine ladungsfähige Adresse) in Berlin angegeben. Überwiesen werden soll an eine spanische Bank (zu erkennen an dem Kürzel \u0026quot;ES\u0026quot; am Anfang der IBAN). Die Prüfung der IBAN ergibt, dass das Konto bei der Zweigstelle 0104 der UNICAJA BANCO, S.A., Malaga geführt wird. Dass der PDF-Seitentitel \u0026quot;Página 1\u0026quot; (spanisch für \u0026quot;Seite 1\u0026quot;) und der Benutzername \u0026quot;Usuario\u0026quot; (spanisch für \u0026quot;Benutzer\u0026quot;) lautet, deutet darauf hin, dass Spanien auch der Ursprungsort des PDFs ist. Zum Erstellen des PDFs wurde anscheinend CorelDRAW X5 verwendet. Dieser Hinweis und die eingebetteten Schriftarten ArialMT und Arial-BoldMT deuten auf einen Windows-Rechner hin. Was gibt der E-Mail-Header her? Hier die relevanten Header-Zeilen:\n1Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0087.outbound.protection.outlook.com [157.55.234.87]) 2\tby mx1.xxxxxxxxxxxxxxxx (Postfix) with ESMTPS id 1CC7A1607DB 3\tfor \u0026lt;xxxxxxxxxxxxxxx\u0026gt;; Wed, 22 Jun 2016 17:08:33 +0200 (CEST) 4DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; 5 d=netorgft810459.onmicrosoft.com; s=selector1-deutschedomain-com; 6 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; 7 bh=UnZdiQs+DjMOkpBEYzTHPetqguKBJJhWGiDHDKuXLdk=; 8 b=QMUkUfPEOzaQ4YlCFJWSvogzaGNjWMEvIWpkyuUO2KZkGyfXFsE59KJQjKsOpY4TxONWY2ZVLAWOOW23e6Sk8oPLk3mf+LYtsNnJh9iuJEoRoYiJ3P5lkc2BJApAxFV6nA1FbVsyqlFNY6LJG8ASPbu8WRLaZrXwrPpy0cybPr4= 9Received: from DB4PR07MB0752.eurprd07.prod.outlook.com (10.242.223.17) by 10 DB4PR07MB0750.eurprd07.prod.outlook.com (10.242.223.156) with Microsoft SMTP 11 Server (TLS) id 15.1.523.12; Wed, 22 Jun 2016 15:08:28 +0000 12Received: from DB4PR07MB0752.eurprd07.prod.outlook.com ([10.242.223.17]) by 13 DB4PR07MB0752.eurprd07.prod.outlook.com ([10.242.223.17]) with mapi id 14 15.01.0517.014; Wed, 22 Jun 2016 15:08:28 +0000 15From: \u0026#34;.DE Deutsche Domain\u0026#34; \u0026lt;info11@deutschedomain.com\u0026gt; 16To: \u0026#34;.DE Deutsche Domain\u0026#34; \u0026lt;info11@deutschedomain.com\u0026gt; 17Subject: Domainregistrierung 2016 / 2017 18Thread-Topic: Domainregistrierung 2016 / 2017 19Thread-Index: AQHRzJd7BFty2iqWAE2esWDAagHjbQ== 20Importance: high 21X-Priority: 1 22Date: Wed, 22 Jun 2016 15:08:27 +0000 23Message-ID: \u0026lt;DB4PR07MB0752EA922CC0101E71AEFD8DA62C0@DB4PR07MB0752.eurprd07.prod.outlook.com\u0026gt; 24Accept-Language: en-GB, en-US 25Content-Language: en-GB 26X-MS-Has-Attach: yes 27X-MS-TNEF-Correlator: 28authentication-results: spf=none (sender IP is ) 29 smtp.mailfrom=info11@deutschedomain.com; 30x-originating-ip: [132.245.225.101] 31x-ms-office365-filtering-correlation-id: 901118ad-2e91-4199-1271-08d39aaf10e2 32x-microsoft-exchange-diagnostics: 1;DB4PR07MB0750;6:lzSdY+JQkpRaZDdcOMB05Lmlpqpyk1D1JkrsiiRjN4DqwK8Yn2X+6PM9lroNCF8vXTnurcnI6DL1E0MoeL1PNf3hE6bzpWmXx9H/iWuNu5dJgawWJPvlyGgNhRg9qTdw4TKf+3mJ6jWurzb3Ka3wVQMccyrA07OUwwodkHlkoYhAo2EWXV121l+IBI14BQTk3m+75fmT+hGL6DWMghv9dy1XD45iDe4+BKS854v1r3siPJkB/znvTGpVdAsRSRDaoi7FFcCje/r5iv6HA+DUBeEEdR5z4NNx2eNWWBaiiTGTPgkKwRs0T7JcVa8tjTHj;5:qCNYOOyHwdFfT6+BC3LsFF3FiM/FP/EzAV/lCOT+hC+4BhXiXCso9Fpu9koGouYoF28ObNIQlIr39BbncTkUPs+u3XK/DrEKi0aA9eymGjRo/K79vFAB6k6byb+Yzh4uwxpHNP6pcnyLRgpl69y78w==;24:sftGZ8jmC8gZ2FlheIYLPKq669lGhisU/6dfwI2zmdq3WU3PkOM0IZM8H7IQU2+4Tc+v/kfpjYlvofYt6daSoJbCPvlgOGpdWpBcFLiRffc=;7:CV4V4bVkM00okIx2HupB1wf+wiB5nWpQt9R1vq6aOFghsbO1H2Ys015m/xFyPQa4+686+40BhiGfzff6Upr1WHJG2/+CH7Cs4WRy2rnrTjN0bRGx/ODbj6dg1EF+xIZy7D18N9pV/2FOv0ags4YdCrOM7R26C9zFuZEG5DJyCCG16oE2eMjZO4WVr0lCqLeu8Cv5xvJRxdl4NxGDhGLaBGCxi6Gn7xGWfqvynfH/XGAE5Cy+BQdPcepIZnItQXCW 33x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB4PR07MB0750; 34x-microsoft-antispam-prvs: \u0026lt;DB4PR07MB07503B8F11E38473B6726D44A62C0@DB4PR07MB0750.eurprd07.prod.outlook.com\u0026gt; 35x-exchange-antispam-report-test: UriScan:; 36x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(102415321)(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);SRVR:DB4PR07MB0750;BCL:0;PCL:0;RULEID:;SRVR:DB4PR07MB0750; 37x-forefront-prvs: 0981815F2F 38x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(7916002)(199003)(189002)(106356001)(106116001)(105586002)(87936001)(189998001)(76576001)(33656002)(101416001)(3280700002)(19627405001)(229853001)(66066001)(3660700001)(8666005)(97736004)(4001450100002)(110136002)(107886002)(74316001)(99936001)(10400500002)(50986999)(122556002)(54356999)(81686999)(9686002)(6200100001)(86362001)(11100500001)(8676002)(19625215002)(81166006)(81156014)(586003)(558084003)(19580405001)(2906002)(19580395003)(16236675004)(68736007)(5002640100001)(7696003)(92566002)(7736002)(5003600100003)(7846002)(77096005)(8936002)(3846002)(2900100001)(102836003)(6116002)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR07MB0750;H:DB4PR07MB0752.eurprd07.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:de; 39received-spf: None (protection.outlook.com: deutschedomain.com does not 40 designate permitted sender hosts) 41spamdiagnosticoutput: 1:99 42spamdiagnosticmetadata: NSPM 43Content-Type: multipart/mixed; 44\tboundary=\u0026#34;_004_DB4PR07MB0752EA922CC0101E71AEFD8DA62C0DB4PR07MB0752eurp_\u0026#34; 45MIME-Version: 1.0 46X-OriginatorOrg: deutschedomain.com 47X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2016 15:08:27.7593 48 (UTC) 49X-MS-Exchange-CrossTenant-fromentityheader: Hosted 50X-MS-Exchange-CrossTenant-id: a87ceb82-ac57-4031-b8db-3e4f2cb4dd53 51X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB0750 Anscheinend wurde die E-Mail direkt über das Webinterface von Microsoft bzw. Live gesendet. Die angegebene x-originating-ip ist einem Netblock von Microsoft zugeordnet. Der Umstand, dass Microsoft eine DKIM-Signatur einfügt und das Setzen der Absenderdomain erlaubt deutet darauf hin, dass ein Benutzerkonto verwendet wurde, welches durch Microsoft auch der Absenderdomain deutschedomain.com zugeordnet werden kann.\nMehr kann den ganzen Microsoft spezifischen Headern wohl nur Microsoft selbst entnehmen.\nDie Domain deutschedomain.com Die Domain wurde über GODADDY registriert. Als Inhaber wurde eine Firma \u0026quot;NL Domein Hosting\u0026quot; in Amsterdam angegeben. Lt. Google Maps gibt es die angegebene Adresse des Domaininhabers nicht. Die angegebene Telefonnumer aus den Niederlanden hat schon eine Ortsvorwahl welche nicht existiert.\nDer für diese Domain zuständige Mailserver wird ebenfalls von GODADDY betrieben. Das hilft also auch nicht weiter.\nFazit Es bleibt nur eins: auf gar keinen Fall zahlen! Evtl. sogar Anzeige gegen Unbekannt bei der Polizei erstatten.\n","link":"https://blog.tausys.de/2016/06/22/abzockversuch-durch-deutschedomain-com/","section":"posts","tags":["E-Mail","Spam"],"title":"Abzockversuch durch deutschedomain.com"},{"body":"","link":"https://blog.tausys.de/tags/e-mail/","section":"tags","tags":null,"title":"E-Mail"},{"body":"","link":"https://blog.tausys.de/categories/sonstiges/","section":"categories","tags":null,"title":"Sonstiges"},{"body":"","link":"https://blog.tausys.de/tags/spam/","section":"tags","tags":null,"title":"Spam"},{"body":"Munin kann so eingestellt werden, dass die Grafiken und HTML-Dateien nicht alle fünf Minuten sondern nur auf Anforderung bzw. beim Abrufen der jeweiligen Webseite erzeugt werden. Zuständig dafür sind die Einstellungen cgi_strategy und html_strategy in /etc/munin/munin.conf. Munin benötigt dazu zwei FastCGI-Schnittstellen, welche idealerweise über einen Socket angesprochen werden. Früher konnte man das Problem lösen, indem man an passender Stelle mit spawn-fcgi die entprechenden FastCGI-Schnittstellen über Sockets bereitstellte. Eine Lösungsmöglichkeit war z.B. folgende:\n1/usr/bin/spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph 2/usr/bin/spawn-fcgi -s /var/run/munin/fcgi-html.sock -U www-data -u www-data -g munin /usr/lib/munin/cgi/munin-cgi-html In Zeiten von systemd läßt sich das nun eleganter bewerkstelligen.\nSockets in systemd definieren Für Munin müssen zwei Sockets definiert werden. Über einen Socket erfolgt die Kommunikation zum Erstellen der Grafiken, über den anderen die Kommunikation zur Erstellung der HTML-Dateien. Unter /etc/systemd/system werden dazu zwei Dateien erstellt:\n1[Unit] 2Description=Munin CGI Graph Socket 3 4[Socket] 5SocketUser=www-data 6SocketGroup=www-data 7SocketMode=0600 8ListenStream=/var/run/munin/fcgi-graph.sock 9 10[Install] 11WantedBy=sockets.target 1[Unit] 2Description=Munin CGI HTML Socket 3 4[Socket] 5SocketUser=www-data 6SocketGroup=www-data 7SocketMode=0600 8ListenStream=/var/run/munin/fcgi-html.sock 9 10[Install] 11WantedBy=sockets.target Startprogramm für Munin-FastCGI Damit die Munin-FastCGI-Programm zusammen mit dem obigen Sockets gestartet werden können ist ein kleines Skript erforderlich. Folgendes Skript legt man am besten unter /usr/local/sbin ab:\n1#!/bin/bash 2 3set -e 4 5if [ \u0026#34;${LISTEN_PID}\u0026#34; != $$ ]; then 6 echo \u0026gt;\u0026amp;2 \u0026#34;file descriptors not for us, pid not matching: \u0026#39;${LISTEN_PID}\u0026#39; != \u0026#39;$$\u0026#39;\u0026#34; 7 exit 255 8fi 9 10if [ \u0026#34;${LISTEN_FDS}\u0026#34; != \u0026#34;1\u0026#34; ]; then 11 echo \u0026gt;\u0026amp;2 \u0026#34;Requires exactly one socket passed to fastcgi, got: \u0026#39;${LISTEN_FDS:-0}\u0026#39;\u0026#34; 12 exit 255 13fi 14 15unset LISTEN_FDS 16 17# move socket from 3 to 0 18exec 0\u0026lt;\u0026amp;3 19exec 3\u0026lt;\u0026amp;- 20 21# spawn fastcgi backend 22exec \u0026#34;$@\u0026#34;\u0026lt;/pre\u0026gt; Nun muss dieses Skript noch ausführbar gemacht werden:\nchmod +x /usr/local/sbin/systemd-spawn-fcgi.sh\nUnit-Files für Munin-FastCGI Anschließend müssen zwei Unit-Files (ebenfalls unter /etc/systemd/system) erstellt werden, welche die zu startenden FastCGI-Prozesse und die Abhängigkeiten zu den zuvor definierten Sockets festlegen:\n1[Unit] 2Description=Munin CGI Graph Service 3After=network.target 4Requires=munin-cgi-graph.socket 5 6[Service] 7User=www-data 8Group=www-data 9StandardOutput=null 10StandardError=syslog 11ExecStart=/usr/local/sbin/systemd-spawn-fcgi.sh /usr/lib/munin/cgi/munin-cgi-graph 12 13[Install] 14WantedBy=multi-user.target 1[Unit] 2Description=Munin CGI HTML Service 3After=network.target 4Requires=munin-cgi-html.socket 5 6[Service] 7User=www-data 8Group=www-data 9StandardOutput=null 10StandardError=syslog 11ExecStart=/usr/local/sbin/systemd-spawn-fcgi.sh /usr/lib/munin/cgi/munin-cgi-html 12 13[Install] 14WantedBy=multi-user.target Aktivierung Zum Schluss müssen die Sockets und Units aktiviert und gestartet werden:\n1systemctl enable munin-cgi-graph.socket 2systemctl enable munin-cgi-graph.service 3systemctl enable munin-cgi-html.socket 4systemctl enable munin-cgi-html.service 5 6systemctl start munin-cgi-graph.service 7systemctl start munin-cgi-html.service Beide FastCGI-Prozesse sollten jetzt ausgeführt werden, was man mit folgenden Kommandos überprüfen kann:\n1# systemctl status munin-cgi-*.service 2● munin-cgi-graph.service - Munin CGI Graph Service 3 Loaded: loaded (/etc/systemd/system/munin-cgi-graph.service; enabled) 4 Active: active (running) since Mi 2016-06-15 13:56:26 CEST; 4h 22min ago 5 Main PID: 8745 (munin-cgi-graph) 6 CGroup: /system.slice/munin-cgi-graph.service 7 └─8745 /usr/bin/perl -T /usr/lib/munin/cgi/munin-cgi-graph 8 9● munin-cgi-html.service - Munin CGI HTML Service 10 Loaded: loaded (/etc/systemd/system/munin-cgi-html.service; enabled) 11 Active: active (running) since Mi 2016-06-15 13:58:08 CEST; 4h 20min ago 12 Main PID: 8816 (munin-cgi-html) 13 CGroup: /system.slice/munin-cgi-html.service 14 └─8816 /usr/bin/perl -T /usr/lib/munin/cgi/munin-cgi-html Zum Abschluss bleibt noch ein Entfernen der alten Starts von spawn-fcgi und (falls nicht mehr benötigt) ein apt purge spawn-fcgi.\n(Angepasst aus dem spawn-fcgi-Wiki für Munin.)\n","link":"https://blog.tausys.de/2016/06/15/fastcgi-fuer-munin-mit-systemd/","section":"posts","tags":["Linux","Munin","systemd"],"title":"FastCGI für Munin mit systemd"},{"body":"Liebe Genossinnen und Genossen,\nnach jahrelangen Bemühungen können wir nun zufrieden feststellen: Wir haben die Konterrevolution von 1989 zurückgeworfen!\nNr. 1 Verkehrswesen jedes 5. Auto ist ein Skoda Trabi, Wartburg,Schwalbe und AWO!! fahren immer noch auf den Straßen die Straßen sind so kaputt wie 1985 die Benzinpreise sind auch wie 1985 die S-Bahn in der Hauptstadt fährt nach Notfahrplan die Bahn ist nie pünktlich und fast alle Züge sind defekt Winterdienst auf den Straßen gibt es nur manchmal Nr. 2 Politik Staatsoberhaupt ist eine Frau aus Mecklenburg-Vorpommern Der Bundespräsident ist aus Rostock die Wessis sind nicht mehr in der Lage sich selbst zu regieren! die Meinungsfreiheit ist eingeschränkt egal, welche Partei man wählt, es bleibt alles beim Alten es gibt wieder Montagsdemos (Stuttgart/Dresden/usw.), alles wird gefilmt und überwacht FDJ Kundgebungen heißen jetzt „Willkommensfeten“ in Südamerika entstehen endlich neue sozialistische Bruder-Staaten Firmen bespitzeln ihre Mitarbeiter (Telekom, Lidl, Schlecker, usw.) Nr. 3 Wirtschaft Saisonartikel wie Streusalz und Schneeschieber sind aus wir sind abhängig vom russischem Erdgas und polnischer Steinkohle unsere Firmen gehören wieder Russen es gibt wieder Pfandflaschen Flaschen, Gläser, Altpapier und Buntmetalle werden wieder gesammelt und gegen Geld abgegeben Bierdosen gibt’s nur im Ausland es wird wieder mit Holz und Kohle gefeuert unser Staat hat Schulden ohne Ende die ersten Banken werden wieder verstaatlicht ein großer Teil des Volkes arbeitet nichts Richtiges, hat aber volles Einkommen Warteschlangen vor Schaltern und Kassen sind wieder üblich Eltern bekommen Kindergeld und nehmen Babyjahr (Elternzeit) Nr. 4 Bildung/Gesundheitswesen Kinder gehen wieder in die Krippe und den Kindergarten Grundschule und Oberschule werden zusammengelegt es wird demnächst einheitliche Abiturprüfungen geben unter dem Kürzel MVZ gibt’s wieder die Poliklinik der Bätschlor wird wieder ein Diplom-Ingenieur Nr. 5 Sprache das sächsiche „nu“ erobert die Welt: erst mit NU-Dossi, jetzt auch mit NU-Tella Liebe Genossen, wo wir sind, ist vorne! Weiter so!\nMit soz. Gruß\n(älteste Quelle vom 08.02.2011)\n","link":"https://blog.tausys.de/2016/04/29/fundstueck-brief-an-die-genossen/","section":"fundstuecke","tags":null,"title":"Fundstück: Brief an die Genossen"},{"body":"Bei der Live-Vorschau von neuen Themen in WordPress kann es vorkommen, dass zwar die linke Sidebar für die Themeneinstellungen angezeigt wird, die eigentliche Anzeige aber leer bleibt.\nDieses Verhalten kann folgende Ursache haben:\ndas Plugin Widget Logic wird verwendet im neuen Vorschau-Theme werden vorhandene Widgets angezeigt in den Widget-Logic-Einstellungen dieser Widgets wird eine eigene Funktion aus der functions.php verwendet, welche aber im Vorschau-Theme nicht vorhanden ist Dadurch tritt ein Fehler auf und die Vorschau wird nicht angezeigt, der Vorschaubereich bleibt leer.\nAbhilfe schafft, vor dem Verwenden einer Funktion in Widget Logic zu testen, ob die Funktion überhaupt vorhanden ist. Für eine Funktion mit dem Namen \u0026quot;MeineFunktion\u0026quot; könnte man also folgendes in Widget Logic einfügen:\nfunction_exists(\u0026quot;MeineFunktion\u0026quot;) \u0026amp;\u0026amp; MeineFunktion()\nMeineFunction wird dann nur aufgerufen, wenn sie auch wirklich existiert bzw. in der Themen-eigenen functions.php definiert worden ist.\nDie Vorschau nicht aktiver bzw. noch nicht installierter Themen funktioniert anschließend wieder reibungslos.\n","link":"https://blog.tausys.de/2016/04/21/wordpress-themes-leere-live-vorschau-neuer-themen/","section":"posts","tags":["OSS","WordPress"],"title":"WordPress Themes: leere Live-Vorschau neuer Themen"},{"body":"","link":"https://blog.tausys.de/tags/bilder/","section":"tags","tags":null,"title":"Bilder"},{"body":"","link":"https://blog.tausys.de/tags/blog/","section":"tags","tags":null,"title":"Blog"},{"body":"Bilder sind ein Hingucker. Eine gut gemachte Grafik zum Thema lockert den Textfluß auf und sorgt bei geschicktem Einfügen in den Text für kleine Pausen beim Lesen längerer Artikel. Das Problem: woher bekommt der Hobby-Blogger Bilder, die er auf seinem Blog ohne schlechtes Gewissen und rechtlich unbedenklich verwenden darf? Gegen Geld ist natürlich jede Qualität und Quantität zu haben. Bei den meisten privat betriebenen Blogs dürfte allerdings der Geldbeutel mit den meist hohen Lizenzgebühren für ein einziges Bild überfordert sein.\nAber auch hierfür gibt es eine Lösung: einige Hobbyfotografen stellen ihre Bilder kostenfrei zur Verfügung und einige sogar unter einer sogenannten CC0-Lizenz, welche auch die komerzielle Verwendung ohne Namensnennung erlaubt. Eine Webseite, auf der bereits sehr viele und qualitativ hochwertige Fotos unter CC0-Lizenz von den jeweiligen Fotografen hochgeladen wurden ist Pixabay.\nIn den Nutzungsbedingungen wird klargestellt, dass die Fotografen mit dem Hochladen ein unbeschränktes Nutzungsrecht ohne jegliche Bedingungen für jedermann einräumen.\nIndem Sie Bilder hochladen, gehen diese unter der Verzichtserklärung Creative Commons CC0 als gemeinfrei in die Public Domain über. Urheberrechtsinhaber von hochgeladenen Bildern räumen ein unbeschränktes Nutzungsrecht ohne jegliche Bedingungen für jedermann ein.\nNatürlich freut sich der Fotograf über einen neuen Follower auf Pixabay oder über einen Backlink. Außerdem kann dem Fotographen ein \u0026quot;Kaffee\u0026quot; in Form einer kleinen Überweisung (über Paypal) direkt auf Pixabay gespendet werden.\nBilder-Gimmick für WordPress-Nutzer Blogger, die WordPress einsetzten, können außerdem das von Pixabay erstellt Plugin Pixabay Images nutzen, mit dem die Suche, das Herunterladen und das Einfügen passender Bilder ins eigene Blog zum Kinderspiel wird.\nWordPress Plugin Pixabay Images\nDie mit dem Plugin heruntergeladenen Bilder werden automatisch mit der Herkunfts-URL und dem Autor in der WordPress-Medienübersicht gekennzeichnet.\nEinfacher geht es nun wirklich nicht.\n","link":"https://blog.tausys.de/2016/04/12/bilder-fuer-das-blog/","section":"posts","tags":["Bilder","Blog","Pixabay","WordPress"],"title":"Gemeinfreie Bilder für das Blog"},{"body":"","link":"https://blog.tausys.de/tags/pixabay/","section":"tags","tags":null,"title":"Pixabay"},{"body":"Mit WebRTC und Browsern, die dieses Protokoll implementieren (aktuell Firefox und Chrome) ist es sehr einfach möglich, die IP-Adressen der Besucher zu ermitteln. Kleine Demo gefällig? Bitteschön:\nDeine lokalen IP-Adressen: (Skript funktioniert nicht mehr)\nDeine öffentliche IP-Adresse: (Skript funktioniert nicht mehr)\nDeine IPv6-Adressen: (Skript funktioniert nicht mehr)\nDiese Abfrage kann nicht durch Ghostery oder Adblocker verhindert werden. Sie wird ebenfalls ausserhalb der normalen XMLHttpRequest-Prozedur ausgeführt und ist in der Developer-Console von Firefox oder Chrome nicht sichtbar. Das Abschalten von JavaScript hilft, macht jedoch viele Webseiten mittlerweile unbenutzbar.\nDas Problem ist bekannt und auf GitHub weiter dokumentiert.\n","link":"https://blog.tausys.de/2016/04/12/besucher-ip-ueber-webrtc-ermittelbar/","section":"posts","tags":["OSS","Security","WebRTC"],"title":"Besucher-IP über WebRTC ermittelbar"},{"body":"","link":"https://blog.tausys.de/categories/kreativ/","section":"categories","tags":null,"title":"Kreativ"},{"body":"","link":"https://blog.tausys.de/tags/webrtc/","section":"tags","tags":null,"title":"WebRTC"},{"body":"","link":"https://blog.tausys.de/tags/update/","section":"tags","tags":null,"title":"Update"},{"body":"Bei einem frisch installierten Windows 7 mit ServicePack 1 kann es vorkommen, dass die Suche nach Updates einfach hängt. Die Rechnerauslastung ist anschließend 100% bzw. ergibt bei Verteilung auf mehrere Kerne zusammen 100%. Auch Stunden später ändert sich nichts an dem Laufbalken, sofern Windows nicht schon von selbst den Rechner in den Energiesparmodus versetzt hat.\nWindows 7 Suche nach Updates\nAbhilfe schafft die Installation des Microsoft-Updates KB3102810.\nDownload 32bit-Version Download 64bit-Version Zur Installation startet man den Rechner am besten erst einmal neu (damit das im Hintergrund laufende Windows-Update beendet wird) und klickt die heruntergeladene Datei doppelt. Anschließend kann wieder über die Systemsteuerung nach Windows-Updates gesucht werden.\n","link":"https://blog.tausys.de/2016/04/06/windows-7-sp1-haengt-bei-der-suche-nach-updates/","section":"posts","tags":["Update","Windows"],"title":"Windows 7 SP1 hängt bei der Suche nach Updates"},{"body":"HHVM ist eine virtuelle Maschine für HipTop, welches PHP-Skripte in Maschinencode übersetzt und anschließend ausführt. Die übersetzten Skripte werden gespeichert und bei wiederholtem Aufrufwerden die bereits übersetzte Programm ausgeführt. Dadurch ergibt sich eine extreme Leistungssteigerung gegenüber der bisher üblichen Methode, PHP-Skripte durch mod_php oder PHP per FastCGI immer wieder neu zu analysieren und auszuführen.\nBei Webservern wird HHVM üblicherweise als Daemon ausgeführt und über FastCGI angesprochen. Entsprechende Konfigurationsdateien für Apache oder auch Nginx werden automatisch installiert.\nLeider ist HHVM in den bisher bekannten Standardinstallationen sehr speicherhungrig. Die aus PHP bekannte Einstellung für den maximal von einem Skript zu benutzenden Speicher (memory_limit) wird auf die maximal am Server verfügbare Speichergröße eingestellt und auch vom Prozess reserviert, was schnell zum Auslagern von anderen Prozessen führen kann. Auf dem Webserver gibt es kaum Skripte, die mehrere Gigabyte an Speicher benötigen.\nAbhilfe schafft das manuelle Setzen der maximal von einem Skript verwendbaren Speichergröße. Dazu trägt man in /etc/hhvm/php.ini z.B. folgendes ein:\nmemory_limit = 512M\nDamit bläht sich der HHVM-Prozess nicht mehr auf den maximal zur Verfügung stehenden Speicher auf und andere Prozesse auf dem Webserver brauchen nicht mehr ausgelagert zu werden.\nMit entsprechenden Statistik-Tools (hier Munin) ist der Erfolg sofort sichtbar:\nHHVM Memory\n","link":"https://blog.tausys.de/2016/03/17/gezaehmter-hhvm/","section":"posts","tags":["HHVM","Linux","OSS","PHP"],"title":"Gezähmter HHVM"},{"body":"","link":"https://blog.tausys.de/tags/hsts/","section":"tags","tags":null,"title":"HSTS"},{"body":"Nach der Umstellung auf Zertifikate von Let's Encrypt hat sich das Ranking des Blogs in Bezug auf sichere Transportverschlüsselung gegenüber der vorherigen Konfiguration weiter erhöht. Gründe dafür sind der verwendete Signaturalgorithmus SHA256 für den Zertifikatskey und der Einsatz von HSTS.\nQualys SSL Test blog.tausys.de\nHSTS kann in Nginx ganz einfach mit einer einzigen Zeile an entsprechender Stelle aktivieren werden:\nadd_header Strict-Transport-Security max-age=31536000;\nDadurch wird festgelegt, dass der Browser für den angegebenen Zeitraum (hier 31536000 Sekunden = 365 Tage) ausschließlich verschlüsselte Verbindungen mit dieser Domain nutzt. Da diese Einstellung im Browser des Besuchers gespeichert wird, sollte vor der Aktivierung unbedingt getestet werden, ob auf der Webseite auch wirklich nur Ressourcen eingebunden sind, die per HTTPS abgerufen werden können.\nEs sollte gleichzeitig auch noch folgender Header eingefügt werden, der verhindert, dass die Webseite in einem Frame eingebunden werden kann.\nadd_header X-Frame-Options DENY;\nAuf der Webseite von Qualys kann jeder selbst überprüfen, ob die Transportverschlüsselung des eigenen Webserver korrekt konfiguriert ist.\n","link":"https://blog.tausys.de/2016/03/02/verbessertes-ranking-bei-qualys/","section":"posts","tags":["HSTS","Nginx","OSS","TLS"],"title":"Verbessertes Ranking durch HSTS"},{"body":"Die Telekom stellt bei bei neuen Internetanschlüssen IPv4 und IPv6 im Dualstack-Betrieb bereit. Der Internet-Verkehr läuft komplett über VLAN 7. Entertain, der IPTV-Dienst der Telekom, wird hauptsächlich über VLAN 8 betrieben. Im folgenden Beispiel möchte ich die Konfiguration eines EdgeRouter lite mit IPv4 über PPPOE, IPv6 und IPTV beschreiben.\nMeine Konfiguration für die nachfolgenden Beispiele am EdgeRouter:\nEdgeRouter lite Firmware Version 1.7.0 eth0 ... interne Netzwerkschnittstelle (LAN) eth1 ... externe Netzwerkschnittstelle zum DSL-Modem (WAN) Internetzugang über VLAN 7 Zuerst wird das PPPOE-Interface über eth1 mit der VLAN-ID 7 für den Internetzugang konfiguriert:\n1set interfaces ethernet eth1 vif 7 description \u0026#39;Telekom Internet\u0026#39; 2set interfaces ethernet eth1 vif 7 mtu 1500 3set interfaces ethernet eth1 vif 7 pppoe 0 default-route auto 4set interfaces ethernet eth1 vif 7 pppoe 0 mtu 1492 5set interfaces ethernet eth1 vif 7 pppoe 0 name-server auto 6set interfaces ethernet eth1 vif 7 pppoe 0 password 99999999 7set interfaces ethernet eth1 vif 7 pppoe 0 user-id \u0026#39;999999999999999999999999#0001@t-online.de\u0026#39; Hinter password und user-id sind natürlich die eigenen Zugangsdaten einzutragen.\nAnschließend wird NAT für IPv4 konfiguriert:\n1set service nat rule 5001 description \u0026#39;Masquerade outgoing pppoe0\u0026#39; 2set service nat rule 5001 log disable 3set service nat rule 5001 outbound-interface pppoe0 4set service nat rule 5001 protocol all 5set service nat rule 5001 type masquerade Mit dieser Konfiguration sollte der Router nach einer Neueinwahl (connect interface pppoe0) bereits eine Internetverbindung aufbauen, eine IPv4-Adresse nebst Nameserver über PPPOE erhalten und der Internetzugang aus dem lokalen Netzwerk heraus sollte funktionieren. Das Dashboard des EdgeRouters zeigt die zugewiesene IPv4-Adresse beim Interface pppoe0 an.\nIPTV über VLAN 8 Sofern Entertain gebucht worden ist, folgt im Anschluß die Konfiguration des VLANs mit der ID 8:\n1set interfaces ethernet eth1 vif 8 address dhcp 2set interfaces ethernet eth1 vif 8 description \u0026#39;Telekom Entertain\u0026#39; 3set interfaces ethernet eth1 vif 8 mtu 1500 Die Schnittstelle eth1.8 sollte jetzt bereits eine IPv4-Adresse per DHCP aus dem Bereich 10.0.0.0/8 von der Telekom zugewiesen bekommen haben.\nDamit die Multicast-Pakete vom VLAN 8 ins lokale Netzwerk weitergeleitet werden, kommt das Programm igmp-proxy zum Einsatz. igmp-proxy muss noch mitgeteilt werden, welche Schnittstellen es benutzen soll:\n1set protocols igmp-proxy interface eth0 alt-subnet 0.0.0.0/0 2set protocols igmp-proxy interface eth0 role downstream 3set protocols igmp-proxy interface eth0 threshold 1 4set protocols igmp-proxy interface eth0 whitelist 239.35.0.0/16 5set protocols igmp-proxy interface eth1.8 alt-subnet 0.0.0.0/0 6set protocols igmp-proxy interface eth1.8 role upstream 7set protocols igmp-proxy interface eth1.8 threshold 1 Nach diesen wenigen Konfigurationsschritten sollte bereits der Internetzugang über IPv4 und der IPTV-Empfang im lokalen Netzwerk möglich sein.\nIPv6 Die Telekom stellt den Kunden ein /56er-IPv6 Subnetz mit wählbarem Präfix (was dann wieder ein /64er Subnetz ergibt) bereit. Mit folgender Konfiguration wird ein /56er-Präfix angefordert und eth0 eine spezielle IPv6-Adresse aus diesem /56er-Subnetz zugewiesen:\n1set interfaces ethernet eth0 ipv6 dup-addr-detect-transmits 1 2 3set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd pd 0 interface eth0 host-address \u0026#39;::dead:beef\u0026#39; 4set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd pd 0 interface eth0 no-dns 5set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd pd 0 interface eth0 prefix-id 42 6set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd pd 0 interface eth0 service slaac 7set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd pd 0 prefix-length 56 8set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd prefix-only 9set interfaces ethernet eth1 vif 7 pppoe 0 dhcpv6-pd rapid-commit enable 10set interfaces ethernet eth1 vif 7 pppoe 0 ipv6 address autoconf 11set interfaces ethernet eth1 vif 7 pppoe 0 ipv6 dup-addr-detect-transmits 1 12set interfaces ethernet eth1 vif 7 pppoe 0 ipv6 enable In der obigen Konfiguration wurde der Präfix 42 angefordert und der internen Netzwerkschnittstelle aus diesem Subnetz eine IPv6-Adresse mit dem Suffix ::dead:beaf zugeordnet. Hier kann jeder selbst kreativ sein.\nNach einer Neueinwahl mit\n1disconnect interface pppoe0 2connect interface pppoe0 sollte der internen Netzwerkschnittstelle eine entsprechende IPv6-Adresse zugeordnet worden sein. Überprüfen kann man das entweder im Dashboard der Weboberfläche oder in der Shell des Routers mit\n1$ show interfaces 2Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down 3Interface IP Address S/L Description 4--------- ---------- --- ----------- 5eth0 192.168.xxx.xxx/24 u/u Local 6 2003:xxxx:xxxx:xx42::dead:beef/64 7... Zu erkennen ist hier der Netzwerkpräfix 42 und der eingestellte Suffix ::dead:beef.\nSofern die Geräte im LAN auf IPv6-Autoconfig eingestellt sind, sollten sie nach kurzer Zeit ebenfalls eine IPv6-Adresse aus obigem Subnetz erhalten bzw. sich selbst zugewiesen haben.\nHinweis: die Weboberfläche des EdgeRouters stellt (zumindest in der Version 1.7.0) fast keine Informationen über IPv6 bereit, noch lassen sich weitere IPv6-Konfigurationsschritte darüber vornehmen. Man ist also auf die Shell angewiesen.\nJetzt hat das Netzwerk Internet über IPv4 und IPv6. Zudem läuft auch Fernsehen über IPTV. Was nun noch fehlt sind passende Paketfiltereinstellungen.\nFirewall Folgende Grundkonfiguration erhebt keinen Anspruch auf Vollständigkeit oder Korrektheit. Ich übernehme keinerlei Garantien in Bezug auf Einsatzzweck oder Sicherheit!\nFolgende Einstellungen legen Regeln für IPv6 fest, nach denen nur ICMPv6 und DHCPv6 von aussen zugelassen wird. Aus dem internen Netzwerk aufgebaute Verbindungen werden ebenfalls zugelassen. Jeder andere IPv6-Netzwerkverkehr wird blockiert.\n1set firewall ipv6-name IPv6_WAN_IN default-action drop 2set firewall ipv6-name IPv6_WAN_IN description \u0026#39;IPv6 packets from the Internet to LAN\u0026#39; 3set firewall ipv6-name IPv6_WAN_IN enable-default-log 4set firewall ipv6-name IPv6_WAN_IN rule 1 action accept 5set firewall ipv6-name IPv6_WAN_IN rule 1 description \u0026#39;Allow established sessions\u0026#39; 6set firewall ipv6-name IPv6_WAN_IN rule 1 state established enable 7set firewall ipv6-name IPv6_WAN_IN rule 1 state related enable 8set firewall ipv6-name IPv6_WAN_IN rule 2 action drop 9set firewall ipv6-name IPv6_WAN_IN rule 2 state invalid enable 10set firewall ipv6-name IPv6_WAN_IN rule 5 action accept 11set firewall ipv6-name IPv6_WAN_IN rule 5 description \u0026#39;Allow ICMPv6\u0026#39; 12set firewall ipv6-name IPv6_WAN_IN rule 5 log disable 13set firewall ipv6-name IPv6_WAN_IN rule 5 protocol icmpv6 14set firewall ipv6-name IPv6_WAN_LOCAL default-action drop 15set firewall ipv6-name IPv6_WAN_LOCAL description \u0026#39;IPv6 packets from the Internet to the router\u0026#39; 16set firewall ipv6-name IPv6_WAN_LOCAL enable-default-log 17set firewall ipv6-name IPv6_WAN_LOCAL rule 1 action accept 18set firewall ipv6-name IPv6_WAN_LOCAL rule 1 description \u0026#39;Allow established sessions\u0026#39; 19set firewall ipv6-name IPv6_WAN_LOCAL rule 1 log disable 20set firewall ipv6-name IPv6_WAN_LOCAL rule 1 state established enable 21set firewall ipv6-name IPv6_WAN_LOCAL rule 1 state related enable 22set firewall ipv6-name IPv6_WAN_LOCAL rule 2 action drop 23set firewall ipv6-name IPv6_WAN_LOCAL rule 2 log disable 24set firewall ipv6-name IPv6_WAN_LOCAL rule 2 state invalid enable 25set firewall ipv6-name IPv6_WAN_LOCAL rule 5 action accept 26set firewall ipv6-name IPv6_WAN_LOCAL rule 5 description \u0026#39;Allow ICMPv6\u0026#39; 27set firewall ipv6-name IPv6_WAN_LOCAL rule 5 log disable 28set firewall ipv6-name IPv6_WAN_LOCAL rule 5 protocol icmpv6 29set firewall ipv6-name IPv6_WAN_LOCAL rule 110 action accept 30set firewall ipv6-name IPv6_WAN_LOCAL rule 110 description \u0026#39;Allow DHCPv6 packets\u0026#39; 31set firewall ipv6-name IPv6_WAN_LOCAL rule 110 destination port 546 32set firewall ipv6-name IPv6_WAN_LOCAL rule 110 protocol udp 33set firewall ipv6-name IPv6_WAN_LOCAL rule 110 source port 547 34set firewall ipv6-receive-redirects disable 35set firewall ipv6-src-route disable Anschließend werden Regeln für IPv4 festgelegt, welche hier nur ICMP, IGMP und IPTV von aussen zulassen:\n1set firewall name WAN_IN default-action drop 2set firewall name WAN_IN description \u0026#39;WAN to internal\u0026#39; 3set firewall name WAN_IN enable-default-log 4set firewall name WAN_IN rule 1 action accept 5set firewall name WAN_IN rule 1 description \u0026#39;Allow established/related\u0026#39; 6set firewall name WAN_IN rule 1 state established enable 7set firewall name WAN_IN rule 1 state related enable 8set firewall name WAN_IN rule 3 action drop 9set firewall name WAN_IN rule 3 description \u0026#39;Drop invalid state\u0026#39; 10set firewall name WAN_IN rule 3 state invalid enable 11set firewall name WAN_IPTV default-action drop 12set firewall name WAN_IPTV description \u0026#39;Telekom Entertain\u0026#39; 13set firewall name WAN_IPTV enable-default-log 14set firewall name WAN_IPTV rule 1 action accept 15set firewall name WAN_IPTV rule 1 description \u0026#39;Allow IPTV Multicast UDP\u0026#39; 16set firewall name WAN_IPTV rule 1 destination address 224.0.0.0/4 17set firewall name WAN_IPTV rule 1 log disable 18set firewall name WAN_IPTV rule 1 protocol udp 19set firewall name WAN_IPTV rule 1 source 20set firewall name WAN_IPTV rule 2 action accept 21set firewall name WAN_IPTV rule 2 description \u0026#39;Allow IGMP\u0026#39; 22set firewall name WAN_IPTV rule 2 log disable 23set firewall name WAN_IPTV rule 2 protocol igmp 24set firewall name WAN_LOCAL default-action drop 25set firewall name WAN_LOCAL description \u0026#39;WAN to router\u0026#39; 26set firewall name WAN_LOCAL enable-default-log 27set firewall name WAN_LOCAL rule 1 action accept 28set firewall name WAN_LOCAL rule 1 description \u0026#39;Ping erlauben\u0026#39; 29set firewall name WAN_LOCAL rule 1 log disable 30set firewall name WAN_LOCAL rule 1 protocol icmp 31set firewall name WAN_LOCAL rule 2 action accept 32set firewall name WAN_LOCAL rule 2 description \u0026#39;Allow Multicast\u0026#39; 33set firewall name WAN_LOCAL rule 2 destination address 224.0.0.0/4 34set firewall name WAN_LOCAL rule 2 log disable 35set firewall name WAN_LOCAL rule 2 protocol all 36set firewall name WAN_LOCAL rule 7 action accept 37set firewall name WAN_LOCAL rule 7 description \u0026#39;Allow established/related\u0026#39; 38set firewall name WAN_LOCAL rule 7 state established enable 39set firewall name WAN_LOCAL rule 7 state related enable 40set firewall name WAN_LOCAL rule 8 action drop 41set firewall name WAN_LOCAL rule 8 description \u0026#39;Drop invalid state\u0026#39; 42set firewall name WAN_LOCAL rule 8 log enable 43set firewall name WAN_LOCAL rule 8 state invalid enable 44set firewall options 45set firewall receive-redirects disable 46set firewall send-redirects enable 47set firewall source-validation disable 48set firewall syn-cookies enable Danach werden die gerade definierten Firewall-Regeln den einzelnen Interfaces zugeordnet:\n1set interfaces ethernet eth1 vif 7 pppoe 0 firewall in ipv6-name IPv6_WAN_IN 2set interfaces ethernet eth1 vif 7 pppoe 0 firewall in name WAN_IN 3set interfaces ethernet eth1 vif 7 pppoe 0 firewall local ipv6-name IPv6_WAN_LOCAL 4set interfaces ethernet eth1 vif 7 pppoe 0 firewall local name WAN_LOCAL 5 6set interfaces ethernet eth1 vif 8 firewall local name WAN_IPTV Fazit Für mich war es ein langer und mühsamer Weg, try-and-error sozusagen. Das Endergebnis ist jedoch kurz und übersichtlich und mit der exzellenten Shell-Oberfläche des EdgeRouters schnell zu konfigurieren. Ein Test der IPv6-Konnektivität bescheinigt den Erfolg (evtl. muss noch IPv6 im Firefox aktiviert werden).\nEdgeRouter ist ein eingetragenes Markenzeichen der Firma Ubiquiti Networks, Inc.\n","link":"https://blog.tausys.de/2016/02/22/edgerouter-am-telekom-internetanschluss-mit-entertain-und-ipv6/","section":"posts","tags":["EdgeRouter","IPTV","IPv6","OSS","Telekom"],"title":"EdgeRouter am Telekom-Internetanschluss mit Entertain und IPv6"},{"body":"","link":"https://blog.tausys.de/tags/ipv6/","section":"tags","tags":null,"title":"IPv6"},{"body":"","link":"https://blog.tausys.de/tags/games/","section":"tags","tags":null,"title":"Games"},{"body":"Ab und an mache ich auch etwas ganz anderes, als mein Blog zu befüllen. Ja wirklich. Manchmal bin ich auch hier unterwegs:\nPlayStation Sesom42\nInsbesondere mag ich Open-World Spiele sehr. So z.B. haben mir es die zwei aktuellen Titel The Witcher 3: Wild Hunt und Fallout 4 sehr angetan. Aber auch Tomb Raider: Definitive Editon mag ich gern.\n","link":"https://blog.tausys.de/2016/02/17/gaming-zwischendurch/","section":"posts","tags":["Games","PS4"],"title":"Gaming zwischendurch"},{"body":"","link":"https://blog.tausys.de/tags/ps4/","section":"tags","tags":null,"title":"PS4"},{"body":"","link":"https://blog.tausys.de/tags/backup/","section":"tags","tags":null,"title":"Backup"},{"body":"Mit libvirt bzw. deren Kommandozeilen-Interface virsh kann ein Backup der VMs im laufenden Betrieb durchgeführt werden. Das nachfolgende Script stellt ein Grundgerüst, angeregt durch einen Artikel von Christian Rößner, für ein Backup nach der folgenden Methode zur Verfügung:\nEs wird zuerst ein Snapshot aller Volumes einer VM angelegt. Dadurch besteht jedes Volume aus (mindestens) zwei Dateien: eine Datei mit den originalen Daten und eine zweite Datei, welche alle Änderungen gegenüber dem Originalvolume ab dem Erstellen des Snapshots enthält. Das Originalvolume wird bei aktivem Snapshot nicht mehr beschrieben, es kann nun problemlos gesichert werden. Zum Kopieren kann \u0026quot;cp -f --sparse=always ...\u0026quot; oder, sofern verfügbar, \u0026quot;rsync --sparse ...\u0026quot; zum Einsatz kommen. Beide Kommandos behandeln freien Platz in den Volumes optimal, rsync ist jedoch um einiges schneller, wenn im Backup-Verzeichnis bereits vom vorherigen Backup schon die gleiche Datei vorhanden ist, da dann nur die Änderungen kopiert werden. Anschließend werden mit einem sogenannten Blockcommit die im Snapshot als Änderungen geschriebene Blöcke in das Originalvolume wieder eingearbeitet. Das alles kann im laufenden Betrieb vom Host der VMs aus durchgeführt werden.\nUpdate vom 23.02.2026: Volker hat eine Verbesserung eingesandt die berücksichtigt, dass heutzutage manche VMs mit \u0026quot;read only backing store\u0026quot; arbeiten. Um zwischenzeitlich erfolgte Änderungen nicht auf das Basis-Image sondern auf das ursprüngliche Image einzuspielen, muss das Kommando virsh blockcommit angepasst werden:\n1# Merge snapshot file with original disk image 2for disc in ${!imgs[@]}; do 3\tvirsh blockcommit ${vm} ${disc} 0 ${imgs[$disc]} --active --wait --pivot 2\u0026gt;\u0026amp;1 | $LOGPARM 4\texit_on_error virsh blockcommit 5done Vielen Dank dafür! Ich freue mich sehr, dass dieser Beitrag auch zehn Jahre nach Veröffentlichung noch Grundlage für eigene Lösungen ist.\nUpdate vom 06.09.2021: Der Server mit dem Git-Repository existiert nicht mehr. Interessierte können sich ein Archiv des letzten Stand des Projekts herunterladen.\nUpdate: mittlerweile handelt es sich hier um die 3. Version des Scriptes, welches nun auch korrekt mit mehreren Volumes einer VM umgehen kann. Fälschlicherweise hatte ich angenommen, dass \u0026quot;snapshot-create-as\u0026quot; mit entsprechender \u0026quot;--diskspec\u0026quot; nur einen Snapshot des angegebenen Volumes erzeugt, was aber nicht der Fall ist. \u0026quot;snapshot-create-as\u0026quot; erzeugt in einem Schritt ein Snapshot aller Volumes der VM. Obiges Script berücksichtigt das nun.\nUpdate 2: Skript Version 4. Das Skript wurde erweitert, um auch VM-Festplatten im qcow2-Format verarbeiten zu können. Ebenfalls werden die Images jeder VM in einem eigenen Verzeichnis gesichert. VM-Images mit gleichem Namen aus unterschiedlichen Speicherpools überschreiben sich somit nicht mehr. Vielen Dank an Sylvia für die Hinweise und Jan für die Lösung!\nAm Anfang des Skripts wird festgelegt, wo die Volumes und die XML-Definition der VMs zu finden sind. Das in Zeile 5 angegebene Verzeichnis ist das Ziel der Backups.\nEbenfalls am Anfang des Skripts ist eine Sicherung eingebaut, die das mehrfache gleichzeitige Ausführen des Skripts verhindert.\nFür alle laufenden VMs wird ausgeführt:\nvirsh snapshot-create-as ...: erstellen eines Snapshots aller Volumes der VM rsync --sparse ...: kopieren der originalen Volumes ins Backupverzeichnis virsh blockcommit ...: einarbeiten der Änderungen ins originale Volume löschen der Overlay-Images Nach dem Abarbeiten aller Volumes wird das XML-Definitionsfile der jeweiligen VM ebenfalls ins Backup-Verzeichnis kopiert.\nFallstricke virsh blockcommit ... --delete \u0026quot;virsh blockcommit --help\u0026quot; zeigt eine Option \u0026quot;--delete\u0026quot; an, welche das eingearbeitete Änderungsfile praktischerweise gleich löschen würde. Leider ist diese Option bisher nicht im Sourcecode eingearbeitet und erzeugt nur die Fehlermeldung: \u0026quot;error: unsupported flags (0x2) in function qemuDomainBlockCommit\u0026quot;. Ein manuelles Löschen ist notwendig.\nvirsh snapshot-create-as ... --quiesce Für die Option \u0026quot;--quiesce\u0026quot; ist es notwenig, dass auf dem Gast der sogenannte \u0026quot;qemu-guest-agent\u0026quot; installiert ist. Dieser kann Befehle vom Host-System entgegen nehmen und wie in diesem Fall, das Dateisystem in einen konsistenten Zustand versetzen.\nqemu-guest-agent erforderlich Der für die Option \u0026quot;--quiesce\u0026quot; erforderliche Dienst \u0026quot;qemu-guest-agent\u0026quot; benötigt einen Channel in der VM-Definition, welcher mit dem von mir eingesetzten virt-manager in der Version 0.9.5 leider nicht angelegt werden kann. Man muss vielmehr auf dem VM-Host mit dem Kommando \u0026quot;virsh edit \u0026quot; die XML-Definition der VM direkt bearbeiten und innerhalb von \u0026quot; ... \u0026quot; folgenden Schnipsel einfügen:\n1\u0026lt;channel type=\u0026#39;unix\u0026#39;\u0026gt; 2 \u0026lt;source mode=\u0026#39;bind\u0026#39; path=\u0026#39;/var/lib/libvirt/qemu/channel/target/\u0026lt;vmname\u0026gt;.qemu.guest_agent.0\u0026#39;/\u0026gt; 3 \u0026lt;target type=\u0026#39;virtio\u0026#39; name=\u0026#39;org.qemu.guest_agent.0\u0026#39;/\u0026gt; 4 \u0026lt;address type=\u0026#39;virtio-serial\u0026#39; controller=\u0026#39;0\u0026#39; bus=\u0026#39;0\u0026#39; port=\u0026#39;1\u0026#39;/\u0026gt; 5\u0026lt;/channel\u0026gt; ist entsprechend zu ersetzen. Anschließend muss die VM heruntergefahren und wieder gestartet werden. Ein einfacher Reboot reicht nicht aus! Danach sollte der Dienst \u0026quot;qemu-guest-agent\u0026quot; erfolgreich innerhalb der VM gestartet werden können.\nCron Sollte obiges Script per Cron eingesetzt werden, so muss es nach bisherigen Tests unter dem Benutzer root laufen. Der Benutzer libvirt-quemu, wie er unter Debian-Betriebssystemben beim Installieren von libvirt eingerichtet wird, hat keine Berechtigung, mit den KVM/QEMU-Systemdiensten zu kommunizieren.\nFazit Ich selbst setzte seit kurzem mehrere kleine VMs für eigene Dienste ein und benutze ein Script nach obigem Muster für das Backup der VMs. Es kann einfach an die eigenen Bedürfnisse angepasst werden. Wesentlich sind die Befehle zum Auflisten der VMs und die Befehle zum Auflisten der Volumes der jeweiligen VM. Für jede VM werden die Volumes aufgelistet, ein Snapshot aller Volumes angelegt und anschließend jedes Volume gesichert. Danach werden die Snapshots wieder in die Original-Volumes eingearbeitet und der Admin kann dann sicher eins: ruhiger schlafen.\n","link":"https://blog.tausys.de/2016/02/15/backup-der-vms-im-laufenden-betrieb-mit-libvirt/","section":"posts","tags":["Backup","KVM","libvirt","Linux","OSS"],"title":"Backup der VMs im laufenden Betrieb mit libvirt"},{"body":"Ganz an mir vorüber gegangen ist, dass Facebook die XMPP-Unterstützung schon gegen Ende April 2015 eingestellt hat. Ich habe es selten benutzt, jedoch wenn, dann meistens mit Pidgin. Der Chat funktioniert nun nur noch proprietär über deren Webseite oder den eigenen Messenger.\n","link":"https://blog.tausys.de/2016/02/15/facebook-xmpp-wurde-ende-april-2015-eingestellt/","section":"posts","tags":["Facebook","Pidgin","XMPP"],"title":"Facebook XMPP wurde Ende April 2015 eingestellt"},{"body":"","link":"https://blog.tausys.de/tags/pidgin/","section":"tags","tags":null,"title":"Pidgin"},{"body":"Beim Schreiben von längeren Artikeln ist es hilfreich, den Inhalt mit einem Seitenumbruch auf mehrere Seiten aufzuteilen. Das verhindert auf der einen Seite ein endloses Scrollen durch einen langen Text und auf der anderen Seite wird damit auch die Absprungrate gesenkt, da zum Lesen des ganzen Artikels mindestens eine weitere Seite des Artikels angezeigt werden muss.\nWordPress beinhaltet dieses Feature bereits. Die Toolbar des WordPress-Editors enhält dazu leider keinen entsprechenden Button, jedoch kann man durch Eingabe von im Textmodus des Editors einen Seitenumbruch einfügen. Im visuellen Modus drückt man dazu die Tastenkombination ++.\nViele Themes stellen dann automatisch enstprechende Buttons zum Blättern zwischen den Seiten dar. Sollte das verwendete Thema das nicht unterstützten, kann durch Einfügen von\n\u0026lt;?php wp_link_pages(); ?\u0026gt;\nan entsprechender Stelle in der single.php des Themes diese Funktion nachträglich eingebaut werden.\n","link":"https://blog.tausys.de/2016/02/12/seitenumbruch-in-wordpress/","section":"posts","tags":["OSS","WordPress"],"title":"Seitenumbruch in WordPress"},{"body":"","link":"https://blog.tausys.de/tags/seafile/","section":"tags","tags":null,"title":"Seafile"},{"body":"Seit Seafile 4.3 können nun auch die bisher nach außen offenen Ports geschlossen werden. Über einen Proxy (z.B. Apache oder Nginx) waren sie schon früher nicht erforderlich, aber leider nicht abstellbar. Folgende Änderungen müssen in den angegebenen Datein durchgeführt werden:\nccnet/ccnet.conf:\n1[Network] 2#PORT = 10001 seafile-data/seafile.conf:\n1[network] 2#port = 12001 ","link":"https://blog.tausys.de/2016/02/09/seafile-und-offene-ports-nach-aussen/","section":"posts","tags":["Linux","OSS","Seafile"],"title":"Seafile: Offene Ports schließen"},{"body":"Unit-Files für systemd für seafile und seahub sind im Seafile-Manual. Für FastCGI muss das Skript für seahub entsprechend angepasst werden. Siehe den dortigen Kommentar\nDas Major-Versionsupgrade von 4.2 auf 5.0 welches hier anstand hat mit der Methode \u0026quot;Schritt für Schritt jeden einzelnen Upgradeschritt aus ./update durchführen\u0026quot; problemlos funktioniert.\nMit der Version 5.0 hat sich die Wiki-Syntax für Links geändert. Leider werden bestehende Links nicht immer automatisch konvertiert.\n","link":"https://blog.tausys.de/2016/02/09/seafile-systemd-unit-files/","section":"posts","tags":["Linux","Seafile","systemd"],"title":"Seafile systemd Unit-Files"},{"body":"Oft darf von einem Bash Script nur eine Instanz laufen. Beispiele sind ein Backup oder ein Datei-Transfers, welche bei gleichzeitigem Lauf der selben Scripte evtl. nicht korrekt durchgeführt würden. Mit einfachen bash-Mitteln lässt sich dies jedoch verhindern.\nGanz einfach könnte man auf das Vorhandensein einer Datei testen und sie anlegen, falls sie nicht existiert. Allerdings hätte man sich damit auch eine sogenannte RaceCondition geschaffen, der Vorgang zwischen Test und Anlegen ist nicht atomar. Ein nicht funktionierendes Beispiel:\n1LOCKFILE=/var/lock/test.lock 2[[ -f $LOCKFILE ]] \u0026amp;\u0026amp; exit 1 3\u0026gt; $LOCKFILE Nehmen wir an, zwei Instanzen eines Skripts mit diesem Schnipsel kommen gleichzeitig an die Stelle des Tests auf das Vorhandensein des Lockfiles. Beide finden das Lockfile nicht und werden weiter ausgeführt!\nAtomar hingegen ist das Anlegen von Verzeichnissen. mkdir legt ein Verzeichnis an und testet gleichzeitig, ob es bereits vorhanden ist. Mit folgendem Schnipsel am Scriptanfang kann ein gleichzeitiges Ausführen des selben Scripts verhindert werden:\n1LOCK=/var/lock/mylock 2if ! mkdir $LOCK 2\u0026gt;/dev/null; then 3\techo Already running or stale lock exists. \u0026gt;\u0026amp;2 4\texit 1 5fi 6trap -- \u0026#34;rmdir $LOCK\u0026#34; EXIT 7 8# do work trap sorgt dafür, dass bei Beendigung des Scripts das Lock-Verzeichnis wieder entfernt wird.\nEins sei noch erwähnt: wenn der Prozess in dem das Script läuft, also die bash, mit \u0026quot;kill -9\u0026quot; abgewürgt wird, wird der Befehl hinter trap nicht mehr ausgeführt. Das Lock-Verzeichnis muss dann manuell entfernt werden.\nUpdate vom 16.02.2016: Hinweis auf RaceCondition und Lösung mit mkdir hinzugefügt.\n","link":"https://blog.tausys.de/2016/02/06/bash-scripte-gegen-gleichzeitiges-ausfuehren-absichern/","section":"posts","tags":["bash","Linux","OSS"],"title":"Bash-Scripte gegen gleichzeitiges Ausführen absichern"},{"body":"Munin wird dazu verwendet, Laufzeitwerte über verschiedene Dienste oder Rechner zu sammeln und diese statistisch in Grafiken auf einer eigenen Webseite aufzubereiten. Bei Über- oder Unterschreiten eines Grenzwertes können entsprechende E-Mails versenden. Die gesammelten Daten werden rollierend in RRDs (Robin-Round-Database) festgehalten.\nIn der Standardkonfiguration wird in den meisten RRDs nur jeweils ein Wert gespeichert. Das ergibt z.B. bei 10 Hosts á 20 zu speichernden Werten 200 RRDs, die von Munin alle 5 Minuten (dem Standard-Abfrageintervall) fast gleichzeitig geschrieben werden. Diese Häufung von IOs, zumal sie nicht gestreckt über den gesamten Zeitraum sondern punktuell auftritt, kann für große Installationen schnell zum Problem werden. Im Folgenden wird eine Methode vorgestellt, wie diese Festplatten-Last um den Faktor 10 gesenkt werden kann.\nMunin-Grafiken nur auf Anforderung erstellen Munin ist unter Debian so voreingestellt, dass per Cron anschließend an das Sammeln der Werte alle HTML- und Grafikdateien neu erstellt werden. Das ist natürlich unnötig, wenn sich niemand die Grafiken anschaut. Eine erste Optimierung ist, diese Dateien erst erstellen zu lassen, wenn die Webseite von Munin angezeigt werden soll. In \u0026quot;/etc/munin/munin.conf\u0026quot; wird dazu eingestellt:\n1graph_strategy cgi 2html_strategy cgi Anschließend muss der jeweilig verwendete Webserver dahingehend angepasst werden, per CGI Anfragen an die entsprechenden Munin-Scripte weiterzuleiten. Eine Anleitung für verschiedene Webserver findet sich im Munin-Wiki.\nEine Konfiguration für Nginx könnte folgendermaßen aussehen:\n1location /static/ { 2 alias /etc/munin/static/; 3 expires modified +1w; 4 } 5 6 location /munin-cgi/munin-cgi-graph { 7 fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*); 8 fastcgi_param PATH_INFO $fastcgi_path_info; 9 fastcgi_param RRDCACHED_ADDRESS /run/munin/rrdcached.sock; 10 fastcgi_pass unix:/var/run/munin/fcgi-graph.sock; 11 include fastcgi_params; 12 } 13 14 location / { 15 auth_basic \u0026#34;Restricted\u0026#34;; 16 auth_basic_user_file /etc/munin/munin-htpasswd; 17 expires modified +310s; 18 19 fastcgi_split_path_info ^(/)(.*); 20 fastcgi_param PATH_INFO $fastcgi_path_info; 21 fastcgi_pass unix:/var/run/munin/fcgi-html.sock; 22 include fastcgi_params; 23 } Zu beachten ist hier, das Munin in diesem Beispiel auf einer eigenen Domain läuft und nicht in einem Unterverzeichnis einer anderen Webseite. Für andere Konfigurationen sind die Pfade bei \u0026quot;location\u0026quot; und \u0026quot;fastcgi_split_path_info\u0026quot; entsprechend dem oben genannten Wiki-Eintrag anzupassen.\nAnschließend müssen noch ensprechende CGI-Handler installiert werden. Hier kommt spawn-fcgi zum Einsatz, dessen Konfiguration ebenfalls im obigen Wiki-Eintrag beschrieben ist.\nAllein durch diese Anpassung erreicht man schon eine Senkung der Festplatten-IOs um ca. 30%.\nAnzumerken zu obigen Beispiel ist noch das Setzen von RRDCACHED_ADDRESS. Diese Einstellung behebt einen Bug in Munin, der beim Einsatz der folgenden Optimierung auftritt.\nCachen des RRD-Schreibens Ein Tipp brachte mich zum Programm rrdcached, dessen Zweck es ist, Schreibzugriffe auf RRDs zwischenzuspeichern und erst nach einem konfigurierbaren Intervall aggregiert in die RRDs zu schreiben. Es ist die optimale Ergänzung zu Munin, um das andauernde Schreiben aller RRDs im 5-Minuten-Takt zu verhindern. rrdcache kann so eingestellt werden, dass die Daten in viel größeren Intervallen in die RRDs geschrieben werden. Eine konfigurierbare zufällige Verzögerung sorgt dafür, dass nicht alle RRDs gleichzeitig geschrieben werden. Munin 2.0 ist bereits für den Einsatz von rrdcache vorbereitet. In \u0026quot;/etc/munin/munin.conf\u0026quot; muss dazu nur\nrrdcached_socket /var/run/munin/rrdcached.sock\naktiviert werden.\nLeider ist rrdcached in der mit Debian ausgelieferten Version nicht auf Munin angepasst. Da ich hier Debian 8 mit systemd einsetze habe ich mich entschieden, dass mitgelieferte Init-Skript nicht zu verwenden, sondern das von Munin bereitgestellte Unit-File für systemd einzusetzen. Dort sind schon alle Anpassungen für Munin unter Debian enthalten.\nAls erstes stoppt man den nach der Installation bereits laufenden rrdcached, erstellt anschließend in \u0026quot;/etc/systemd/system/rrdcached.service\u0026quot; das entsprechende Unit-File und startet rrdcache mit systemd.\n1/etc/init.d/rrdcached stop 2vi /etc/systemd/system/rrdcached.service 3systemctl enable rrdcached.service 4systemctl start rrdcached.service Ab jetzt sollte Munin die Daten bei rrdcache abliefern und rrdcached diese erst in den voreingestellten Intervallen in die RRDs schreiben.\nErgebnis Munin vda-day nach Optimierung\nIm linken Teil der Grafik sieht man die Dauerlast, die Munin in der Standardkonfiguration selbst bei kleinen Installationen erzeugt. Im mittleren Teil war die Erstellung der HTML- und Grafikdateien nur auf Anforderung aktiv und im rechten Teil ist zu sehen, wie sich der Einsatz von rrdcached weiter positiv auf die Festplatten-Last auswirkt. Die Anzahl der IO-Operationen konnte mit den obigen zwei Methoden um den Faktor 10 gesenkt werden.\nEinen weiteren Vorteil dieser Optimierung zeigte sich erst auf den zweiten Blick. Munin läuft hier in einer eigenen Mini-VM, die sonst nichts anderes als Munin macht. Der darunterliegende VM-Host konnte die alle 5 Minuten auftretenden Massen-IOs nicht mehr optimieren und reagierte mit gesteigerter Festplatten-Latenz. Dieses Problem ist nun auch beseitigt, wie man in folgender Grafik schön sieht:\nMunin diskstats_latency-day\n","link":"https://blog.tausys.de/2016/02/03/munin-optimierung-der-ios/","section":"posts","tags":["Linux","Munin","Nginx","OSS"],"title":"Munin: Optimierung der Festplatten-IOs"},{"body":"Ich muss hier mal ein großes Danke an alle neuen und alten Leser richten! Folgende Grafik macht mich stolz und bestärkt mich darin, für euch immer wieder neue Sachen aufzuschreiben.\nEntwicklung der Zugriffe\n","link":"https://blog.tausys.de/2016/02/02/entwicklung-der-zugriffszahlen-auf-das-blog/","section":"posts","tags":["Piwik"],"title":"Danke an meine Leser"},{"body":"","link":"https://blog.tausys.de/tags/piwik/","section":"tags","tags":null,"title":"Piwik"},{"body":"","link":"https://blog.tausys.de/tags/cron/","section":"tags","tags":null,"title":"Cron"},{"body":"Die von Let's Encrypt kostenlos erhältlichen Zertifikate sind aktuell 90 Tage gültig. Bei vielen Zertifikaten, so z.B. bei vielen Subdomains mit eigenen Zertifikaten, fällt der Überblick schwer, wann welches Zertifikat in Kürze abläuft und erneuert werden muss. Eine automatische Erinnerung muss her.\nEine Methode, um automatisiert alle Zertifikate auf ihren bevorstehenden Ablauf zu testen, kann mit dem folgenden Bash-Script realisiert werden.\nDie Zerifikate werden von Let's Encrypt im Verzeichnis \u0026quot;/etc/letsencrypt/live//cert.pem\u0026quot; abgelegt. Das Script wertet mit Hilfe von OpenSSL das Gültigkeitsdatum jedes unter diesem Pfad gefundenen Zertifikats aus und gibt bei Überschreitung einer eingestellten Vorwarnzeit eine Meldung aus. Wenn das Script per Cron automatisch ein Mal am Tag ausgeführt wird, erhält man vor dem Zertifikatablauf eine entsprechende Mail.\n1#!/bin/bash 2 3DATADIR=/etc/letsencrypt 4OPENSSL=/usr/bin/openssl 5DATE=/bin/date 6WARNSEC=$((7*24*60*60)) 7 8if [ ! -x $OPENSSL ]; then 9\techo OpenSSL nicht gefunden! 10\texit 1 11fi 12if [ ! -x $DATE ]; then 13\techo Date nicht gefunden!? 14\texit 1 15fi 16 17for cert in $DATADIR/live/*/cert.pem; do 18\tinfo=$($OPENSSL x509 -in $cert -noout -subject -enddate -checkend $WARNSEC) || 19\techo Folgendes Zerifikat läuft bald ab: $info 20done 21exit 0 Update vom 05.02.2016: Überarbeitetes Script nach einem Hinweis aus den Kommentaren. Danke an Lutz und Michael!\nBei WARNSEC kann eingestellt werden, wie viele Tage vorher eine E-Mail als Erinnerung ausgegeben werden soll. openssl erwartet eine Angabe in Sekunden. Deshalb wird hier sofort umgerechnet.\nDas obige Script speichert man z.B unter \u0026quot;/usr/local/bin/letsencrypt_checkcerts\u0026quot; und erstellt anschließend einen Eintrag für Cron, der das Script ein Mal am Tag aufruft.\nSchon ist man sicher, keinen Zertifikatsablauf mehr zu verpassen.\n","link":"https://blog.tausys.de/2016/02/02/lets-encrypt-erinnerung-vor-zertifikatablauf/","section":"posts","tags":["bash","Cron","Linux","OSS","Zertifikat"],"title":"Let’s Encrypt: Erinnerung vor Zertifikatablauf"},{"body":"","link":"https://blog.tausys.de/tags/zertifikat/","section":"tags","tags":null,"title":"Zertifikat"},{"body":"","link":"https://blog.tausys.de/tags/https/","section":"tags","tags":null,"title":"Https"},{"body":"Mit dem Service von Let's Encrypt steht die Möglichkeit zur Verfügung, kostenlos Zertifikate für Webserver zu erhalten um die Webseite per HTTPS, also verschlüsselt, zugänglich zu machen. Für den Webserver Apache kann das Zertifikat automatisch erzeugt, signiert und installiert werden. Für Nginx ist in der Let's Encrypt-Installation zwar ein Modul enthalten, dieses ist nach eigenen Angaben jedoch noch nicht für den produktiven Einsatz ausgelegt.\nIch habe mich deshalb dafür entschieden, vom Let's Encrypt-Assistenten nur das Zertifikat selbst erstellen zu lassen und die Installation manuell vorzunehmen. Das Let's Encrypt-Script stellt dafür mit dem Parameter \u0026quot;certonly\u0026quot; eine Methode zur Verfügung, welche im Laufe des Zertifizierungsprozesses über ein spezielles Verzeichnis im Webroot der zu zertifizierenden Domain mit den Let's Encrypt-Servern kommuniziert und das Zertifikat anschließend in einem lokalen Verzeichnis zur Verfügung stellt.\nLet's Encrypt-Client Der Client kann mit folgendem Kommando heruntergeladen werden:\ngit clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt/\nNginx Da ich mehrere Domains in der gleichen Nginx-Instanz laufen lasse und selbst solche vorhanden sind, die nur Proxy sind, also kein eigenes Webroot-Verzeichnis haben, musste eine allgemeingültige Möglichkeit für alle Server gefunden werden, das Verzeichnis \u0026quot;/.well-known/acme-challenge/\u0026quot; erreichbar zu machen.\nIdeal für solch eine Konfiguration ist die Möglichkeit von Nginx, Dateien in die jeweiligen Serverkonfigurationen zu includen. Unter \u0026quot;/etc/nginx/letsencrypt.conf\u0026quot; habe ich dazu eine Datei mit folgendem Inhalt angelegt:\n1location /.well-known/acme-challenge/ { 2 alias /var/local/letsencrypt_webroot/$server_name/.well-known/acme-challenge/; 3} (Update: $hostname durch $server_name ersetzt)\nund diese Datei anschließend mit \u0026quot;include letsencrypt.conf\u0026quot; in alle Hosts in \u0026quot;/etc/nginx/sites-enabled\u0026quot; in die entsprechenden \u0026quot;server { }\u0026quot;-Abschnitte inkludiert. Die Variable \u0026quot;$server_name\u0026quot; wird anschließend bei jedem Request von Nginx automatisch mit dem in der Konfiguration angegeben Hostnamen ersetzt. Danach wird die Konfiguration von Nginx neu geladen:\nnginx -s reload\nAnschließend werden die Verzeichnisse für alle Hosts, auf die Nginx bei einem Request auf die oben angegebene URL zugreift, angelegt:\nmkdir -p /var/local/letsencrypt_webroot/{blog,www,test}.example.org\nJetzt können die Zertifikate mit dem Let's Encrypt-Script angefordert werden:\n./letsencrypt-auto certonly --webroot -w /var/local/letsencrypt_webroot/www.example.ort/ -d www.example.org\nNachdem die Zertifikate erfolgreich erzeugt und signiert wurden, sind diese in \u0026quot;/etc/letsencrypt/live//\u0026quot; über einen symbolischen Link verfügbar. Sie müssen nun in die Nginx-Konfiguration des jeweiligen Hosts unter \u0026quot;/etc/nginx/sites-enabled/\u0026quot; eingetragen werden:\n1ssl_certificate /etc/letsencrypt/live/test.example.com/cert.pem; 2ssl_certificate_key /etc/letsencrypt/live/text.example.com/privkey.pem; Nach einem erneuten Neuladen der Nginx-Konfiguration mit \u0026quot;nginx -s reload\u0026quot; läuft die entsprechende Domain ab jetzt mit den durch Let's Encrypt signierten Zertifikaten.\nProbleme Die Let's Encrypt-Server können das entsprechende Kommunikationsverzeichnis auf dem Webserver nicht erreichen. Eine Fehlermeldung könnte lauten:\nFailed authorization procedure. test.example.org (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Could not connect to http://test.example.org/.well-known/acme-challenge/naviewohShuo0thaeb5ooch8fooPh0veeng6ve1Bah9p\nEvtl. könnte durch andere Direktiven in der entsprechenden Nginx-Serverkonfiguration der Zugriff auf Verzeichnisse, die mit einem Punkt anfangen, verboten worden sein. Für WordPress-Installationen wird z.B. empfohlen, alle Zugriffe die mit einem Punkt beginnen zu blockieren. Diese Regel muss temporär deaktiviert oder so umgeschrieben werden, so dass sie nicht auf \u0026quot;/.well-known\u0026quot; zutrifft, umgeschrieben werden.\nNach der Konfiguration einiger Server wird man auf folgende Fehlermeldung stoßen:\n1An unexpected error occurred: 2There were too many requests of a given type :: Error creating new cert :: Too many certificates already issued for: example.org Im Moment lässt Let's Encrypt die Generierung von maximal fünf Zertifikaten pro Domain innerhalb von sieben Tagen zu. Hier hilft also nur abwarten.\nFazit Mit Let's Encrypt steht eine einfache Möglichkeit zur Verfügung, für die eigene Webseite Zerifikate zu erhalten. Mit obiger Methode können die Zertifikate relativ einfach angefordert und in Nginx eingebunden werden.\n","link":"https://blog.tausys.de/2016/02/02/lets-encrypt-nginx-und-viele-hosts/","section":"posts","tags":["https","Linux","Nginx","OSS","Zertifikat"],"title":"Let’s Encrypt, Nginx und viele Hosts"},{"body":"","link":"https://blog.tausys.de/tags/gtk/","section":"tags","tags":null,"title":"GTK"},{"body":"","link":"https://blog.tausys.de/tags/nemo/","section":"tags","tags":null,"title":"Nemo"},{"body":"Da ich es immer wieder vergesse: die Nemo-Lesezeichen werden in ~/.config/gtk-3.0/bookmarks gespeichert. Das ist eine normale Textdatei, die auch manuell bearbeitet werden kann. Hilfreich, wenn man viele Lesezeichen gleichzeitig aufnehmen will.\n","link":"https://blog.tausys.de/2016/01/21/speicherort-der-nemo-lesezeichen/","section":"posts","tags":["GTK","Linux","Nemo","OSS"],"title":"Speicherort der Nemo-Lesezeichen"},{"body":"Auf der Linux-Kommandozeile bzw. in der Shell benutzt man du, um sich die Größe von Verzeichnissen anzeigen zu lassen. Etwas komfortabler geht das mit ncdu. Das Programm verwendet ncurses, es läßt sich dadurch einfach mit den Cursortasten durch die Verzeichnisstruktur navigieren.\nScreenshot ncdu\nSofern man auf nicht mehr benötigte Dateien und Verzeichnisse gestoßen ist, kann man diese schnell mit der Taste \u0026quot;d\u0026quot; löschen. Eine Liste weiterer möglicher Tastenbefehle kann mit \u0026quot;?\u0026quot; aufgerufen werden.\nncdu bietet außerdem die Möglichkeit, die Plattenbelegung in einer Datei zu speichern. Diese Datei kann dann z.B. an einen anderen Rechner übertragen und von ncdu wieder eingelesen werden. So könnte man sich z.B. die Plattenbelegung eines entfernten Rechners schicken lassen und lokal analysieren. Befehle zum Löschen von Dateien und dem Auffrischen der Anzeige funktionieren dann logischerweise natürlich nicht.\nncdu ist in den Paketquellen von Debian und damit auch in Ubuntu und Linux Mint enthalten.\n","link":"https://blog.tausys.de/2015/12/15/groesse-von-verzeichnissen-ncdu/","section":"posts","tags":["Linux","OSS"],"title":"Größe von Verzeichnissen: ncdu"},{"body":"","link":"https://blog.tausys.de/tags/addons/","section":"tags","tags":null,"title":"Addons"},{"body":"Von Zeit zu Zeit stelle ich an dieser Stelle ein paar der von mir verwendeten Firefox-Addons vor. Manche Addons aus den vorangegangenen Vorstellungen werden leider nicht mehr weiterentwickelt, einige mit praktischen neuen Funktionen sind hinzugekommen.\nHauptaugenmerk bei meiner Auswahl der Addons liegt auf gesteigerter Privatsphäre. Dabei soll die tägliche Benutzung nicht behindern oder das Surfen auf den vielen verschiedenen Webseiten auf keinen Fall extrem komplizierter werden.\nPrivacy Badger Firefox Addon Privacy Badger\nVon fast allen komerziellen Webseiten werden die Schritte der Besucher aufgezeichnet. Durch auf verschiedenen Seiten vom gleichen Lieferanten eingeblendete Werbung ist es für den Werbetreibenden möglich, sogar über mehrere Seiten das Nutzerverhalten aufzuzeichnen. Das Addon Privacy Badger versucht dem einen Riegel vorzuschieben, da es beim Sufen mitlernt und ein seitenübergreifendes Tracking nach einiger Zeit erkennt und blockiert. Mit einem einfachen Klick kann man, falls gewünscht, für einzelne Seiten das Blockieren abschalten.\nuBlock Origin Firefox Addon uBlock Origin\nDas Addon blockiert recht zuverlässig Werbung auf den besuchten Seiten und ist dabei nicht allzu ressourcenhungrig. uBlock Origin benutzt Listen um Werbung zu erkennen, welche auch von anderen Adblockern genutzt werden. Auch bei diesem Addon ist es möglich, mit einem Klick Werbung auf der gerade besuchten Webseite zu erlauben. Meiner Meinung nach sollte von dieser Möglichkeit auch oft Gebrauch gemacht werden, um z.B. kleinere Webseiten zu unterstützen.\nNoScript Firefox Addon NoScript\nDie meisten Webseiten verwenden heutzutage JavaScript. Mit JavaScript (kleine Programme, die im Browser des Besuchers ablaufen) können sich Webseiten dynamisch verhalten, Seiten animiert oder Daten im Hintergrund empfangen und versendet werden. Allerdings kann mit JavaScript auch der eine oder andere Schabernack getrieben werden, bis zur Ausnutzung von bisher nicht bekannten Browser-Sicherheitslücken. Ist man häufig auf nicht vertrauenswürdigen Seiten unterwegs, so kann mit diesem Addon die Ausführung von JavaScript verhindert werden.\nHTTPS-Everywhere Firefox Addon HTTPS-Everywhere\nDaten im Web (Webseiten, Bilder, Formulare und vieles mehr) werden zum Browser über viele verschiedene beteiligte Rechner übertragen. Bei der Übermittlung von persönlichen Daten auf Webseiten sollte man darauf achten, dass diese Übermittlung verschlüsselt erfolgt, da wohl kaum jemand die Vertrauenswürdigkeit aller an der Übertragung beteiligten Rechner-Betreiber garantieren kann. Zu erkennen ist eine verschlüsselte Übertragung meistens an einem kleinen Schloss in der Adressleiste des Browsers. Auch für den bloßen Besuch von Nachrichtenseiten ist es hilfreich, Verschlüsselung einzusetzen, da so kein zwischengeschalteter Rechner oder Überwacher erkennen kann, welcher Artikel der Nachrichtenseite gerade gelesen wird. Hier setzt HTTPS-Everywhere an. Beim Besuch einer unverschlüsselt übertragenen Seite schaut das Addon in einer ständig aktualisierten Liste nach, ob die entsprechende Seite auch verschlüsselt per HTTPS erreichbar ist. Wurde die Seite in der Liste gefunden wird automatisch auf die verschlüsselte Übertragung umgeschaltet.\nMailvelope Firefox Addon Mailvelope\nZwar rückt die E-Mail-Kommunikation immer mehr in den Hintergrund, da viele nur noch per Messenger kommunizieren, jedoch ist für längere Konversationen über das Internet E-Mail immer noch das Mittel der Wahl. Viele benutzen mittlerweile die von verschienenen Providern bereitgestellten Webinterfaces, um E-Mails zu versenden und zu empfangen. Gerade bei privater Kommunikation sollte man sich hier im klaren sein, dass E-Mail von Haus aus unverschlüsselt ist, wenn auch die Übertragung in letzter Zeit zunehmend verschlüsselt erfolgt. Der Inhalt ist vom E-Mail-Provider des Absenders und des Empfängers jederzeit lesbar. Zwar gibt es mittlerweile Programme für alle gängige Plattformen, die auch eine sichere Verschlüsselung des E-Mail-Inhalts ermöglichen würden, jedoch scheuen sich viele Anwender ob des (oft nur minimalen) Aufwands, entsprechende Programme zu installieren. Abhilfe schafft hier das Addon Mailvelope, welches die zur Verschlüsselung der E-Mail-Inhalte notwendigen Schlüssel im Browser verwaltet und sich zusätzlich in die Webseiten der E-Mail-Provider einklinkt. Beim Schreiben einer E-Mail wird auf der Webseite automatisch ein Mailvelope-Fenster geöffnet und anschließend der Inhalt für den Empfänger verschlüsselt und abgeschickt.\nCryptocat Firefox Addon Cryptocat\nGechattet wird heutztage, was das Zeug hält. Per WhatsApp (Facebook), Hangout (Google), direkt auf der Facebook-Seite und sogar noch per SMS. Dabei haben viele Chatanwendungen ein Problem: die Kommunikation wird oft nicht verschlüsselt, manchmal sogar nicht einmal der Transportweg gesichert. Ein paar Anwendungen haben sich dieses Mankos angenommen, sind jedoch fast nie plattformübergreifend verfügbar. Für den schnellen und durchgehend verschlüsselten Chat kann das Addon Cryptocat verwendet werden. Es ist für die meisten gängigen Browser auf dem PC oder Mac verfügbar. Man braucht den Chatteilnehmern nur einen frei wählbaren Chatraum-Namen mitzuteilen und kann sofort loslegen mit der verschlüsselten Kommunikation.\nDiese Auswahl stellt natürlich nur eine persönliche und auf keinen Fall umfassende Auswahl an Addons zum sicheren und verschlüsselten Surfen dar. Jedoch gehören obige Addons meiner Ansicht nach zur Mindestausstattung, mit der man heutzutage im Web unterwegs sein sollte. In den Kommentaren kann jeder gern seine persönlichen Präferenzen mitteilen. Über sachliche Kritik und neue Vorschläge würde ich mich freuen.\n","link":"https://blog.tausys.de/2015/12/07/nuetzliche-firefox-add-ons/","section":"posts","tags":["Addons","Firefox","OSS"],"title":"Nützliche Firefox Add-ons"},{"body":"Seit längerem nutze ich nun Cyanogenmod und habe mein Smartphone auch verschlüsselt. Damit sind die Daten nun geschützt, jedoch kann bei einer verschlüsselten /data-Partition (nur diese Partition wird verschlüsselt) nicht mehr einfach mit Adb ein Cyanogenmod-Update eingespielt werden.\nDie Methode ist, das Update per adb sideload einzuspielen, da die /system-Partition nicht verschlüsselt ist. Dazu muss in das Recovery-Image gebootet werden. Die wohl am häufigstens verwendeten Recovery-Images sind TWRP und seit neuestem auch die Cyanogenmod eigenen Recovery-Images. Beide bieten die Möglichkeit, das System-Image per sideload einzuspielen.\nKurz nach dem Starten von adb sideload \u0026lt;image.zip\u0026gt; kann folgender Fehler auftreten:\nerror: protocol fault (no status)\nUrsache ist, dass adb auf dem Computer zu alt ist. Es wird aktuell mindestens 1.0.32 benötigt.\nLeider ist selbst auf einem aktuellen Linux Mint, meiner bevorzugte Distribution, nur Version 1.0.31 enthalten. Man kommt also nicht drumherum, sich die Android-Developertools von Google herunterzuladen.\nDanach ist der Sideload problemlos zum Updaten des Systems möglich.\n","link":"https://blog.tausys.de/2015/12/06/adb-error-protocol-fault-no-status/","section":"posts","tags":["Android","CyanogenMod","OSS"],"title":"Adb: error: protocol fault (no status)"},{"body":"","link":"https://blog.tausys.de/tags/cyanogenmod/","section":"tags","tags":null,"title":"CyanogenMod"},{"body":"Mit der Software \u0026quot;Motion\u0026quot; und dem Raspberry Pi 2 lässt sich ein Webcam realisieren, die Bewegung im Bild erkennt und bei Bewegung dann ein Video aufnimmt. Die Installation der Software und weiterer Anpassungen wurde bereits in einem vorhergehenden Artikel beschrieben.\nNach mehreren Tests stellte sich heraus, das für eine Bildauflösung von 640x480 Pixeln durch den Raspberry Pi 2 gerade noch so eine Rate von 5 fps berechnet werden konnte. Das mag für die meisten, reinen Überwachungskameras ausreichen, wenn nicht gar schon zu viel sein.\nNach entsprechender Einstellung wurde zum Test des Projekts der Raspberry Pi 2 inkl. Kamera auf das Balkongeländer gerichtet und gewartet. Heraus kamen viele kleine Videoschnipsel, die hier in einem zusammenhängenden Video zu sehen sind:\nFür anspruchsvollere Lösungen kann z.B. der Raspberry Pi nur das Video aufnehmen und einen Videostream mit Hilfe von cvlc anbieten. Die Hardware des Rasperry Pi 2 kann mit dem Kameramodul problemlos Videos in 1280x720 und bis zu 30 fps steamen. Auf einer ensprechende leistungsstärkeren Maschine könnte dann die Software \u0026quot;motion\u0026quot; laufen (sie kann von Haus aus Netzwerkstreams verarbeiten) und die Motion-Detection auch in höherer Auflösung und Framerate durchführen.\n","link":"https://blog.tausys.de/2015/10/26/motion-webcam-beispiel/","section":"posts","tags":["OSS","RaspberryPi","Webcam"],"title":"Motion Webcam Beispiel"},{"body":"","link":"https://blog.tausys.de/tags/raspberrypi/","section":"tags","tags":null,"title":"RaspberryPi"},{"body":"","link":"https://blog.tausys.de/tags/webcam/","section":"tags","tags":null,"title":"Webcam"},{"body":"Im vorhergehenden Teil dieser Reihe wurde erklärt, wie man mit einem Arduino Uno und einem GSM-Board (in diesem Fall mit dem Siemens TC35) SMS versenden kann. Heute nun soll das Programm dahingehend erweitert werden, dass SMS empfangen und ausgewertet werden können und anhand des SMS-Inhalts ein Schalter bzw. ein Pin des Arduino geschaltet werden kann.\nDer Schaltungsaufbau ist der gleich, wie er im letzten Versuch verwendet wurde. Hinzugekommen ist ein größeres Stück Software für den Arduino, welches nun die erforderlichen Befehle zum Empfang von SMS an das GSM-Modem sendet.\nDie zur Kommunikation verwendete Lib SoftwareSerial definiert nur einen 64 Byte großen Empfangspuffer. Für den Empfang von SMS ist das viel zu wenig. In der Datei hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h wird die Puffergröße durch _SS_MAX_RX_BUFF festgelegt. Diese Puffergröße sollte dort auf mindestens 1024 festgelegt werden.\n#define _SS_MAX_RX_BUFF 1024\nFolgende Vorgehensweise im Arduino-Programm für die Initialisierung wurde gewählt:\nAktivieren der seriellen Schnittstellen zum GSM-Modem wie auch zum Computer (für die Protokollierung und zu Testzwecken) Einschalten des GSM-Teils des TC35 über den IGT-Pin Löschen aller alten bereits auf der SIM-Karte gespeicherten SMS-Nachrichten Im anschließenden loop des Arduino wird ermittelt, ob neue SMS-Nachrichten vorliegen. Diese sollen dem Schema \u0026quot;PIN{ ON | OFF | STATUS }\u0026quot; ensprechen. Bei korrekt übermittelter PIN wird bei falschem Kommando eine SMS mit entsprechendem Hilfetext zurückgesendet. ON bewirkt das Einschalten des Schalter, OFF das Ausschalten und STATUS sendet eine SMS mit dem aktuellen Zustand des Schalters an den Sender der SMS zurück.\nArduino-Programm 1#include \u0026lt;SoftwareSerial.h\u0026gt; 2#define rxPin 2 3#define txPin 3 4#define statusPin 13 5#define igtPin 8 6 7String accessPin(\u0026#34;1234\u0026#34;); 8String cmdOff(\u0026#34;OFF\u0026#34;); 9String cmdOn(\u0026#34;ON\u0026#34;); 10String cmdStatus(\u0026#34;STATUS\u0026#34;); 11 12SoftwareSerial gsmSerial(rxPin, txPin); 13 14String smsNumber; 15String smsText; 16String cmdMessage; 17String cmdResponse; 18 19int nMessages; 20char c; 21int state; 22int switchStatus; 23 24// ------------------------------------------------------------- 25void setup() 26{ 27 Serial.begin(9600); 28 while(!Serial) {}; 29 gsmSerial.begin(9600); 30 31 pinMode(statusPin, OUTPUT); 32 digitalWrite(13, LOW); 33 switchStatus = false; 34 35 // TC35 einschalten, igtPin 100ms auf GND ziehen 36 pinMode(igtPin, INPUT); 37 digitalWrite(igtPin, LOW); 38 pinMode(igtPin, OUTPUT); 39 delay(100); 40 pinMode(igtPin, INPUT); 41 delay(5000); 42 43 // Format Text fuer SMS einstellen 44 SendCmd(\u0026#34;AT+CMGF=1\u0026#34;); 45 46 CountMessages(); 47 DeleteAllMessages(); 48 49 Serial.println(\u0026#34;Ready\u0026#34;); 50} 51 52// ------------------------------------------------------------- 53void loop() 54{ 55 if (nMessages \u0026gt; 0) 56 { 57 ReadSms(nMessages); 58 Serial.println(\u0026#34;Incoming: [\u0026#34; + smsNumber + \u0026#34;] [\u0026#34; + smsText + \u0026#34;]\u0026#34;); 59 DeleteMessage(nMessages); 60 nMessages--; 61 if (smsText.length() \u0026gt;= accessPin.length() \u0026amp;\u0026amp; smsText.startsWith(accessPin)) 62 { 63 smsText.remove(0, accessPin.length()); 64 if (smsText == cmdOn) 65 { 66 digitalWrite(13, HIGH); 67 switchStatus = true; 68 } 69 else if (smsText == cmdOff) 70 { 71 digitalWrite(13, LOW); 72 switchStatus = false; 73 } 74 else if (smsText == cmdStatus) 75 { 76 smsText = \u0026#34;Switch is \u0026#34;; 77 if (switchStatus == true) 78 { 79 smsText += cmdOn; 80 } 81 else 82 { 83 smsText += cmdOff; 84 } 85 SendMessage(); 86 } 87 else 88 { 89 smsText = \u0026#34;Available commands: \u0026#34; + cmdOn + \u0026#34;, \u0026#34; + cmdOff + \u0026#34; und \u0026#34; + cmdStatus; 90 SendMessage(); 91 } 92 } 93 } 94 else 95 { 96 delay(5000); 97 } 98 CountMessages(); 99} 100 101// ------------------------------------------------------------- 102void SendCmd(String cmd) 103{ 104 gsmSerial.println(cmd); 105 delay(1000); 106 while(gsmSerial.available() \u0026gt; 0) 107 { 108 c = gsmSerial.read(); 109 } 110 delay(100); 111} 112 113// ------------------------------------------------------------- 114void CountMessages() 115{ 116 nMessages = 0; 117 cmdMessage = \u0026#34;AT+CPMS=\\\u0026#34;SM\\\u0026#34;\u0026#34;; 118 gsmSerial.println(cmdMessage); 119 delay(1000); 120 121 cmdResponse = \u0026#34;\u0026#34;; 122 state = 0; 123 124 String num = \u0026#34;\u0026#34;; 125 while(gsmSerial.available() \u0026gt; 0) 126 { 127 c = gsmSerial.read(); 128 if (c != 13 \u0026amp;\u0026amp; c != 10) 129 { 130 cmdResponse += c; 131 } 132 133 if (c == \u0026#39;:\u0026#39; \u0026amp;\u0026amp; state == 0) 134 { 135 // Leerzeichen vor der ersten Zahl 136 c = gsmSerial.read(); 137 state = 1; 138 } 139 if (c != \u0026#39; \u0026#39; \u0026amp;\u0026amp; state == 1) 140 { 141 // Anfang der ersten Zahl 142 state = 2; 143 } 144 if (c == \u0026#39;,\u0026#39; \u0026amp;\u0026amp; state == 2) 145 { 146 // Ende der ersten Zahl 147 state = 3; 148 } 149 if (state == 2) 150 { 151 num += c; 152 } 153 } 154 nMessages = num.toInt(); 155} 156 157// ------------------------------------------------------------- 158void DeleteAllMessages() 159{ 160 while(nMessages \u0026gt; 0) 161 { 162 DeleteMessage(nMessages); 163 nMessages--; 164 } 165} 166 167// ------------------------------------------------------------- 168void DeleteMessage(int smsIndex) 169{ 170 cmdMessage = \u0026#34;\u0026#34;; 171 cmdMessage = smsIndex + cmdMessage; 172 cmdMessage = \u0026#34;AT+CMGD=\u0026#34; + cmdMessage; 173 SendCmd(cmdMessage); 174} 175 176// ------------------------------------------------------------- 177void ReadSms(int smsIndex) 178{ 179 cmdMessage = \u0026#34;\u0026#34;; 180 cmdMessage = smsIndex + cmdMessage; 181 cmdMessage = \u0026#34;AT+CMGR=\u0026#34; + cmdMessage; 182 gsmSerial.println(cmdMessage); 183 delay(1000); 184 185 smsNumber = \u0026#34;\u0026#34;; 186 smsText = \u0026#34;\u0026#34;; 187 cmdResponse = \u0026#34;\u0026#34;; 188 189 state = 0; 190 // Format: +CMGR: \u0026#34;REC READ\u0026#34;,\u0026#34;+336xxxxxxxx\u0026#34;,,\u0026#34;13/06/10,22:18:35+08\u0026#34;\u0026lt;CR\u0026gt;\u0026lt;LF\u0026gt;Message\u0026lt;CR\u0026gt; 191 while(gsmSerial.available() \u0026gt; 0) 192 { 193 c = char(gsmSerial.read()); 194 if (c != 13 \u0026amp;\u0026amp; c != 10) 195 { 196 cmdResponse += c; 197 } 198 199 if (c == \u0026#39;,\u0026#39; \u0026amp;\u0026amp; state == 0) 200 { 201 // Anfang der Telefonnummer 202 c = char(gsmSerial.read()); // \u0026#34; ueberlesen 203 c = char(gsmSerial.read()); 204 state = 1; 205 } 206 if (c == \u0026#39;\u0026#34;\u0026#39; \u0026amp;\u0026amp; state == 1) 207 { 208 // Ende der Telefonnummer 209 state = 2; 210 } 211 if (c == 13 \u0026amp;\u0026amp; state == 2) 212 { 213 // Anfang Text der SMS 214 c = char(gsmSerial.read()); // \u0026lt;LF\u0026gt; ueberlesen 215 state = 3; 216 } 217 if (c == 13 \u0026amp;\u0026amp; state == 3) 218 { 219 // Ende Text der SMS 220 state = 4; 221 } 222 223 switch(state) 224 { 225 case 1: 226 smsNumber += c; 227 break; 228 case 3: 229 smsText += c; 230 break; 231 } 232 } 233 234 smsText.toUpperCase(); 235 smsText.trim(); 236} 237 238// ------------------------------------------------------------- 239void SendMessage() 240{ 241 if (smsText.length() \u0026gt; 0) 242 { 243 Serial.println(\u0026#34;Outgoing: [\u0026#34; + smsText + \u0026#34;] an \u0026#34; + smsNumber); 244 245 cmdMessage = \u0026#34;AT+CMGS=\\\u0026#34;\u0026#34; + smsNumber + \u0026#34;\\\u0026#34;\\r\u0026#34;; 246 gsmSerial.print(cmdMessage); 247 delay(1000); 248 gsmSerial.print(smsText); 249 delay(1000); 250 gsmSerial.println((char)26); 251 delay(2000); 252 while(gsmSerial.available() \u0026gt; 0) 253 { 254 c = gsmSerial.read(); 255 } 256 } 257} Implementierte Subrouinen:\nSendCmd sendet eine Zeichenkette (einen Befehl) an das GSM-Modem und \u0026quot;verschluckt\u0026quot; die Antwort des Modems CountMessages ermittelt mit Hilfe des Befehls AT+CPMS=\u0026quot;SM\u0026quot; die aktuelle Anzahl der auf der SIM-Karte gespeicherten SMS (genauer: im Speicherbereich SM) DeleteAllMessages löscht, wie der Name schon sagt, alle gespeicherten SMS DeleteMessage löscht eine einzelne SMS ReadSms ließt eine einzelne SMS aus dem SIM-Speicher aus und speichert die Absender-Telefonnummer in der Variablen smsNumber und den Text in smsText SendMessage verschickt eine Nachricht (smsText) an die in smsNumber eingetragene Telefonnummer Im Kopfteil des Programms kann die PIN festgelegt werden, die zum Übermitteln von Kommandos in der SMS-Nachricht angegeben werden muss.\nIm ersten Teil der Reihe wurde beschrieben, wie die Schaltung aufgebaut ist und wie mit dem TC35 SMS versendet werden können. Im dritten Teil der Reihe soll die vorhandene Schaltung um eine Relaiskarte erweitert werden, mit der auch größere Lasten geschaltet werden können.\n","link":"https://blog.tausys.de/2015/10/21/arduino-uno-und-siemens-tc35-sms-empfangen-und-schalter-steuern/","section":"posts","tags":["Arduino","GSM","OSS","Siemens","SMS","TC35"],"title":"Arduino Uno und Siemens TC35: SMS empfangen und Schalter steuern"},{"body":"","link":"https://blog.tausys.de/tags/gsm/","section":"tags","tags":null,"title":"GSM"},{"body":"","link":"https://blog.tausys.de/tags/siemens/","section":"tags","tags":null,"title":"Siemens"},{"body":"","link":"https://blog.tausys.de/tags/sms/","section":"tags","tags":null,"title":"SMS"},{"body":"Im Folgenden wird demonstriert, wie mit einem Arduino Uno als Steuerungseinheit und einem durch die Firma SaintSmart um eine Platine mit entsprechenden Anschlussmöglichkeiten erweitertes Siemens GSM-Modem TC35 zum einfachen Versenden von SMS verwendet werden kann.\nBeide Module lassen sich kostengünstig über eBay, Amazon oder den präferierten Hardwarehändler beziehen. Das TC35 schlägt dabei in der hier getesteten Version mit ca. 22 € zu Buche.\nVerkabelung und Stromversorgung Die zwei Module wurden wie folgt verbunden:\nGND von Arduino und TC35 Pin 8 des Arduino mit IGT des TC35 Pin 2 des Arduino mit RXD0 des TC35 Pin 3 des Arduino mit TXD0 des TC35 Als Stromversorgung für das TC35-Modul dient ein Universalnetzteil mit 5V/2A. Der Pluspol muss dabei in der Mitte des Anschlusses liegen. Das Modul benötigt im Leerlauf nur wenige Milliwatt, beim Senden und Einbuchen kann aber kurzzeitig wesentlich mehr Strom gebraucht werden.\nDer Arduino wird bei diesem Test mit dem Strom aus der der USB-Buchse des Computers versorgt.\nSoftware Nach dem Verkabeln wird das folgende Programm auf den Arduino geladen:\n1#include \u0026lt;SoftwareSerial.h\u0026gt; 2#define rxPin 2 3#define txPin 3 4 5SoftwareSerial gsmSerial(rxPin, txPin); 6char recu[150]; // Array for message 7String message = \u0026#34;\u0026#34;; 8int i; 9 10void setup() { 11 // initialize digital pin 13 as an output. 12 pinMode(13, OUTPUT); 13 14 Serial.begin(9600); 15 while(!Serial) {} 16 17 //--- turn on TC35 --- 18 // wire pin 8 Arduino to IGT pin on TC35 19 // ground pin for 100 ms - this is the same as pressing the button on the TC35 to start it up 20 pinMode(8, INPUT); 21 digitalWrite(8, LOW); 22 pinMode(8, OUTPUT); 23 delay(100); 24 pinMode(8, INPUT); 25 26 gsmSerial.begin(9600); 27 delay(5000); 28 Serial.println(\u0026#34;Ready\u0026#34;); 29} 30 31void loop() { 32 i = 0; 33 while (Serial.available() \u0026gt; 0) { 34 recu[i] = Serial.read(); 35 if ((recu[i] != 46) \u0026amp;\u0026amp; (recu[i] != 13) \u0026amp;\u0026amp; (recu[i] != 10)) 36 { 37 message += char(recu[i]); 38 } 39 i++; 40 // 46 is ASCII code for \u0026#34;.\u0026#34; 41 if (recu[i - 1] == 46) { 42 SendTextMessage(); 43 ShowSerialData(); 44 delay(1000); 45 message = \u0026#34;\u0026#34;; 46 i = 0; 47 } 48 } 49} 50 51void SendTextMessage() { 52 digitalWrite(13, HIGH); 53 Serial.println(\u0026#34;Sende SMS...\u0026#34;); 54 55 gsmSerial.println(\u0026#34;AT+CMGF=1\u0026#34;); 56 delay(500); 57 gsmSerial.print(\u0026#34;AT+CMGS=\\\u0026#34;+49178...\\\u0026#34;\\r\u0026#34;); 58 delay(500); 59 gsmSerial.print(message); 60 delay(500); 61 gsmSerial.println((char)26); // ASCII Ctrl-Z 62 delay(500); 63 64 Serial.println(\u0026#34;SMS gesendet.\u0026#34;); 65 digitalWrite(13, LOW); 66} 67 68void ShowSerialData() { 69 while(gsmSerial.available() \u0026gt; 0) { 70 Serial.write(gsmSerial.read()); 71 } 72} Anschließend wird in den Arduino-Tools über das Menü \u0026quot;Werkzeuge -\u0026gt; Serieller Monitor\u0026quot; ein Fenster geöffnet. Nach dem Erscheinen der Mitteilung \u0026quot;Ready\u0026quot; kann nun eine SMS (mit abschließendem Punkt!) eingegeben werden, die sofort an die im Programm in Zeile 57 eingestellte Nummer verschickt wird.\nAction Hier ist das Ganze noch einmal in Aktion zu sehen:\nEin unkomplizierter und schnell in Betrieb zu nehmender Aufbau.\nIn einer Fortsetzung werde ich beschreiben, wie mit dem TC35 SMS empfangen und ausgewertet werden können, um z.B. mit dem Arduino dann Schaltvorgänge auszulösen.\nUpdate Teil 2: Arduino Uno und Siemens TC35: SMS empfangen und Schalter steuern\n","link":"https://blog.tausys.de/2015/10/20/arduino-uno-und-siemens-tc35-sms-versenden/","section":"posts","tags":["Arduino","GSM","OSS","Siemens","SMS","TC35"],"title":"Arduino Uno und Siemens TC35: SMS versenden"},{"body":"","link":"https://blog.tausys.de/tags/apt/","section":"tags","tags":null,"title":"Apt"},{"body":"Unter Debian werden im Paket munin-plugins-core zwei Plugins geliefert, mit denen sich überwachen lässt, ob Paketaktualisierungen vorhanden sind.\nPlugin apt Dieses Plugin dient nur dazu, bei Vorhandensein mindestens eines Updates eine Warnung zu generieren, die, bei entsprechender Konfiguration, per E-Mail verschickt wird. Einen Munin-Graphen erzeugt dieses Plugin nicht.\nPlugin apt_all Dieses Plugin sucht in allen verfügbaren Repositories nach Update und erstellt daraus einen Munin-Graphen.\nBeim Einsatz von apt_all kann folgende Fehlermeldung auftreten:\n1E: The value \u0026#39;testing\u0026#39; is invalid for APT::Default-Release as such a release is not available in the sources 2E: The value \u0026#39;unstable\u0026#39; is invalid for APT::Default-Release as such a release is not available in the sources Sie rührt daher, da das Plugin die Repositories für stable, testing und unstable durchsuchen will, auf dem System aber evtl. testing und unstable gar nicht in den Apt-Quellen konfiguriert ist. Leider lassen sich die durch das Plugin zu untersuchenden Repositories nicht konfigurieren, zum Abstellen der Fehlermeldung muss das Plugin selbst editiert werden. Ziemlich am Anfang des Plugins /usr/share/munin/plugins/apt_all findet sich eine Zeile mit\n`my @releases = (\u0026quot;stable\u0026quot;, \u0026quot;testing\u0026quot;,\u0026quot;unstable\u0026quot;);?\nDiese muss geändert werden in\nmy @releases = (\u0026quot;stable\u0026quot;);\n","link":"https://blog.tausys.de/2015/10/09/apt-mit-munin-ueberwachen/","section":"posts","tags":["apt","Linux","Munin","OSS"],"title":"Apt mit Munin überwachen"},{"body":"Ich bin ja immer wieder erstaunt, wie man ältere Smartphones durch das Aufspielen von z.B. CyanogenMod (CM) zu ungeahntem neuen Leben erwecken kann. So traf es gestern mein mittlerweile etwas angestaubtes Moto G 1. Generation. Mit dem zuletzt von Motorola zur Verfügung gestelltem Android 5.0 bin ich nie so richtig warm geworden. Das Smartphone fühlte sich in jeder Lage zäh an. Die wenigen von mir verwendeten Apps wurden immer größer und vorinstallierte Apps ließen sich so nicht deinstallieren, es wurden nur neue Versionen von Google bereitgestellt. Der Speicher der alten Version war damit natürlich verloren.\nNun war die Garantie von meinem Moto G abgelaufen und ich habe mich an das Rooten und Flashen einer neuen Firmware gemacht. Da ich darin nicht sonderlich geübt bin, hat das natürlich alles eine Weile gedauert. Ein großes Lob muss ich den Betreuern der CyanogenMod-Webseite aussprechen: die Informationen dort sind klar strukturiert und einfach zu befolgen. Ohne Probleme lies sich mit Hilfe der Anleitung CM auf das Smartphone flashen. Danach folgte noch ein bisschen Einrichtung und das wars. Durch die nicht mehr standardmäßig installierten Anwendungen war natürlich nun mehr freier Speicher vorhanden. Alles gut, alles fein.\nDer Schreck kam dann am nächsten Morgen: GPS-basierte Apps wollten nicht mehr. Das Moto G bekam einfach keinen Fix mehr. Ich dachte schon: das wars dann... Nach einigem Herumsuchen fand ich dann aber auch hierfür die Lösung im Forum der XDA-Developers. Problem gelöst.\nUnd nun erfreue ich mich wieder an einem flotten Moto G und werde es wohl behalten solange der Akku eben mitspielt.\n","link":"https://blog.tausys.de/2015/09/30/wiederbelebung-alter-smartphones/","section":"posts","tags":["CyanogenMod","Motorola","OSS"],"title":"Wiederbelebung alter Smartphones"},{"body":"","link":"https://blog.tausys.de/tags/entertain/","section":"tags","tags":null,"title":"Entertain"},{"body":"","link":"https://blog.tausys.de/tags/mediaportal/","section":"tags","tags":null,"title":"MediaPortal"},{"body":"Folgende Liste enthält die aus dem Netz der Telekom mit gebuchtem Entertain frei empfangbaren IPTV-Sender (Stand: September 2015).\nAlle Sender, die nicht in dieser Liste auftauchen (z.B. die HD-Sender der RTL Gruppe oder von ProSiebenSat.1) werden verschlüsselt übertragen und können nicht von z.B. VLC oder MediaPlayer dekodiert werden.\nIch muss hier noch einmal erwähnen: nachfolgende IPTV-Sender sind nur über einen Internetzugang der Telekom und nur bei gebuchtem Entertain-Paket der Telekom abrufbar! Eine Liste der auch aus anderen Netzen abrufbaren Sender findet sich z.B. hier.\nSender Adresse Das Erste rtp://@239.35.10.4:10000 ZDF rtp://@239.35.10.5:10000 RTL rtp://@239.35.20.10:10000 Sat.1 rtp://@239.35.20.20:10000 ProSieben rtp://@239.35.20.21:10000 VOX rtp://@239.35.20.11:10000 Kabel 1 rtp://@239.35.20.38:10000 RTL II rtp://@239.35.20.22:10000 Super RTL rtp://@239.35.20.39:10000 KiKA rtp://@239.35.10.19:10000 3sat rtp://@239.35.10.6:10000 n-tv rtp://@239.35.20.47:10000 PHOENIX rtp://@239.35.10.22:10000 zdf_neo rtp://@239.35.10.27:10000 BR Süd rtp://@239.35.10.7:10000 hr rtp://@239.35.10.8:10000 MDR Sachsen rtp://@239.35.10.9:10000 NDR rtp://@239.35.10.10:10000 Radio Bremen TV rtp://@239.35.10.12:10000 rbb Berlin rtp://@239.35.10.14:10000 SR rtp://@239.35.10.15:10000 SWR BW rtp://@239.35.10.16:10000 SWR RP rtp://@239.35.10.17:10000 WDR rtp://@239.35.10.18:10000 ARTE rtp://@239.35.10.20:10000 Einsfestival rtp://@239.35.10.21:10000 zdf.kultur rtp://@239.35.10.23:10000 sixx rtp://@239.35.20.9:10000 RTLNITRO rtp://@239.35.20.59:10000 RTLplus rtp://@239.35.20.57:10000 Sat.1 Gold rtp://@239.35.20.24:10000 ProSieben MAXX rtp://@239.35.20.33:10000 ARD-alpha rtp://@239.35.10.24:10000 Deutsche Welle rtp://@239.35.20.44:10000 Tagesschau24 rtp://@239.35.10.25:10000 EinsPlus rtp://@239.35.10.26:10000 ZDFinfo rtp://@239.35.10.28:10000 BR Nord rtp://@239.35.10.13:10000 MDR S-Anhalt rtp://@239.35.10.29:10000 MDR Thüringen rtp://@239.35.10.30:10000 NDR Hamburg rtp://@239.35.10.31:10000 NDR Meckl.-Vorpommer rtp://@239.35.10.32:10000 NDR Schleswig-Holste rtp://@239.35.10.33:10000 rbb Brandenburg rtp://@239.35.10.34:10000 RTL NRW rtp://@239.35.20.5:10000 RTL HB NDS rtp://@239.35.20.6:10000 Sat.1 Bayern rtp://@239.35.20.8:10000 Sat.1 HH SH rtp://@239.35.20.12:10000 Sat.1 NDS Bremen rtp://@239.35.20.13:10000 Sat.1 NRW rtp://@239.35.20.14:10000 Sat.1 RhlPf Hessen rtp://@239.35.20.15:10000 WDR Aachen rtp://@239.35.10.35:10000 WDR Bielefeld rtp://@239.35.10.36:10000 WDR Bonn rtp://@239.35.10.37:10000 WDR Dortmund rtp://@239.35.10.38:10000 WDR Duisburg rtp://@239.35.10.39:10000 WDR Düsseldorf rtp://@239.35.10.40:10000 WDR Essen rtp://@239.35.10.41:10000 WDR Münster rtp://@239.35.10.42:10000 WDR Siegen rtp://@239.35.10.43:10000 WDR Wuppertal rtp://@239.35.10.44:10000 RTL HH SH rtp://@239.35.20.63:10000 RTL Hessen rtp://@239.35.20.64:10000 Das Erste HD rtp://@239.35.10.1:10000 ZDF HD rtp://@239.35.10.2:10000 KiKA HD rtp://@239.35.10.11:10000 3sat HD rtp://@239.35.10.47:10000 PHOENIX HD rtp://@239.35.10.48:10000 zdf_neo HD rtp://@239.35.10.55:10000 BR Süd HD rtp://@239.35.10.49:10000 hr HD rtp://@239.35.10.60:10000 MDR HD rtp://@239.35.10.61:10000 NDR HD rtp://@239.35.10.50:10000 rbb Berlin HD rtp://@239.35.10.62:10000 SWR BW HD rtp://@239.35.10.51:10000 SWR RP HD rtp://@239.35.10.52:10000 WDR HD rtp://@239.35.10.53:10000 ARTE HD rtp://@239.35.10.3:10000 Einsfestival HD rtp://@239.35.10.58:10000 zdf.kultur HD rtp://@239.35.10.54:10000 tagesschau24 HD rtp://@239.35.10.63:10000 EinsPlus HD rtp://@239.35.10.59:10000 ZDFinfo HD rtp://@239.35.10.56:10000 allgäu.tv rtp://@239.35.50.53:10000 Donau TV rtp://@239.35.50.23:10000 intv rtp://@239.35.50.1:10000 ISAR TV rtp://@239.35.50.42:10000 main.tv rtp://@239.35.50.49:10000 Oberpfalz TV rtp://@239.35.50.50:10000 RFO rtp://@239.35.50.51:10000 TRP1 rtp://@239.35.50.52:10000 TV Oberfranken rtp://@239.35.50.54:10000 TV touring Schweinft rtp://@239.35.50.55:10000 TV touring Würzburg rtp://@239.35.50.56:10000 TVA Ostbayern rtp://@239.35.50.57:10000 Die Vorschaubilder der Sender (PIP) werden unter weiteren IP-Adressen ausgeliefert. Dazu addiert man auf das letzte Oktet der IP-Adresse 100 hinzu. So z.B. ist Das Erste unter 239.35.10.4 zu empfangen. Das zugehörige PIP unter 239.35.10.104.\nDie Playliste der Sender in den Formaten für VLC, Mediaportal oder auch dvbviewer finden sich auf dem Entertain Chainge(b)log.\nTechnisches Die Streams werden als MPEG4/AVC bzw. H.264 geliefert welche wiederum in MPEG2TS verpackt sind. Verteilt werden die Streams per RTP Multicast. Ein IGMP-fähiger Router ist zum Empfang der Streams also erforderlich.\nWer sich selbst auf die Suche nach den Streamadressen machen möchte, der kann z.B. am Router den Netzwerkverkehr des Medienreceivers mitschneiden. Den Mitschnitt filtert man anschließend z.B. mit Wireshark mit folgendem Filter:\nigmp \u0026amp;\u0026amp; igmp.num_grp_recs == 1 \u0026amp;\u0026amp; igmp.record_type == 4\nIm Ergebnis erhält man die IGMP-Nachrichten mit den IP-Adressen beim Umschalten der Sender.\n","link":"https://blog.tausys.de/2015/09/06/streamadressen-telekom-entertain-fuer-vlc/","section":"posts","tags":["Entertain","IPTV","MediaPortal","Telekom","VLC"],"title":"Streamadressen Telekom Entertain für VLC"},{"body":"","link":"https://blog.tausys.de/tags/vlc/","section":"tags","tags":null,"title":"VLC"},{"body":"Wer wie ich den Testflug der Orion-Mission mitgemacht hat, kann sich jetzt ein Ticket für die nächste Marsmission mit dem Namen InSight bei der NASA reservieren (neue Interessenten können sich natürlich auch registrieren). Inkl. Bonus-Meilen/Kilometer.\nNASA Boarding Pass INSIGHT\n","link":"https://blog.tausys.de/2015/09/04/der-naechste-urlaub-steht-vor-der-tuer/","section":"posts","tags":null,"title":"Der nächste Urlaub steht vor der Tür"},{"body":"Schon lange hatte ich den Wunsch, meinen Lesern eine Möglichkeit zu bieten, Beiträge zu bewerten. Viele Leser scheuen sich, bei einem schlecht verständlichen Artikel einen Kommentar abzugeben, was mir jedoch als Feedback fehlt, um den jeweiligen Artikel zu verbessern. Ebenso nimmt sich bei brauchbaren Artikeln kaum jemand die Zeit, seine E-Mail-Adresse einzugeben und dann ein \u0026quot;Guter Artikel\u0026quot; oder dergleichen zu hinterlassen. Ein einzelner Klick dagegen ist hoffentlich leichter ausgeführt.\nGleichzeitig wollte ich endlich eine Möglichkeit schaffen, unter den Artikeln eine Statistik einzublenden die anzeigt, wie oft ein Artikel gelesen wurde. Die einfachen Möglichkeiten, einen \u0026quot;dummen\u0026quot; Besucherzähler zu manipulieren, waren ein zusätzliches Auswahlkriterium.\nEine Grundvoraussetzung mussten beide Plugins erfüllen: sie müssen mit installierten Caching-Plugins kompatibel sein, im Idealfall also Daten und Updates per AJAX-Requests einbinden. Dadurch wird sichergestellt, dass die voraufbereitete Seite zwischengespeichert, jedoch trotzdem dynamisch Bewertung und Zugriffszähler eingebunden werden können.\nNach einigen Recherchen habe ich mich dann für folgende zwei Plugins für WordPress entschieden:\nkk Star Ratings zur Anzeige und Verwaltung einer Artikelbewertung und Page Views Count zum Anzeigen des \u0026quot;Lesezählers\u0026quot; WordPress Bewertungsfunktion und Statistik\nBeide Plugins lassen sich gewohnt unkompliziert über die WordPress-Verwaltungsoberfläche installieren. Die Optionen sind übersichtlich und leicht verständlich. Ein schönes Feature von kk Star Ratings ist, dass das Plugin automatisch Bewertungsinformationen für Google aufbereitet, die dann auch in der Google-Suche erscheinen.\nGoogle Bewertungen einbinden\nMit diesen Erweiterungen im Blog hoffe ich, es meinen Lesern noch einfacher gemacht zu haben, mir Feedback in Form einer Bewertung zu geben und außerdem einen kleinen Nährwert für euch geschaffen zu haben. Jetzt seid ihr am Zug oder Klick!\nUpdate vom 11.09.2015: Nach langem Hin und Her habe ich mich entschlossen, den View-Counter wieder zu entfernen. Leider war das verwendete Plugin doch etwas zu simpel und zählte jeden Seitenaufruf. Außerdem gab es keine Möglickeit, den Counter bei bestimmten Beitragsformaten nicht anzuzeigen.\nUpdate vom 12.02.2016: Auch kk Star Ratings musste ich leider wieder entfernen. Das Plugin hat einen Fehler im Bereich Google Rich Snippets, durch den die Beitragsbewertung bei Google nicht mehr angezeigt wird. Leider scheint der Entwickler auch kein Interesse an einer Weiterentwicklung zu haben.\n","link":"https://blog.tausys.de/2015/08/31/wordpress-beitragsbewertung-und-statistik/","section":"posts","tags":["OSS","WordPress"],"title":"WordPress: Beitragsbewertung und Statistik"},{"body":"","link":"https://blog.tausys.de/tags/dkim/","section":"tags","tags":null,"title":"DKIM"},{"body":"","link":"https://blog.tausys.de/tags/dmarc/","section":"tags","tags":null,"title":"DMARC"},{"body":"Finn hat mehrere gute Anleitungen geschrieben, wie man dem lokalen Postfix\nDKIM womit der Empfänger feststellen kann, ob die Mail wirklich vom zuständigen Mailserver des Absenders stammt SPF um zu verhindern, dass andere Mailserver die eigenen Domain als Absender verenden DMARC um festzulegen, was der Mailserver des Empfängers bei fehlgeschlagener Prüfung nach DKIM und SPF mit der Mail tun soll beibringt. Ich bin noch mittendrin in der Konfiguration. DKIM funktioniert nun schon hervorragend.\n","link":"https://blog.tausys.de/2015/08/28/postfix-dkim-spf-und-dmarc-konfigurieren/","section":"posts","tags":["DKIM","DMARC","E-Mail","Linux","Postfix","SPF"],"title":"Postfix: DKIM, SPF und DMARC konfigurieren"},{"body":"","link":"https://blog.tausys.de/tags/spf/","section":"tags","tags":null,"title":"SPF"},{"body":"","link":"https://blog.tausys.de/tags/mysql/","section":"tags","tags":null,"title":"MySQL"},{"body":"Heute bin ich gleich zwei Mal über das Python-Modul Paramiko gestolpert. In der MySQL-Workbench wird es verwendet, um eine Verbindung über einen SSH-Tunnel herzustellen. Das in der aktuellen MySQL-Workbench ausgelieferte, aber uralte Paramiko versteht sich nicht mehr mit aktuellen OpenSSH-Versionen. Nach einem manuellen Update von Paramiko funktionierte der Verbindungsaufbau dann wieder.\nDie zweite Portion Paramiko gab es beim Durchsehen der Backups. Das von mir verwendete Duplicity benutzt ebenfalls Paramiko, wenn Backups auf einem per SSH bzw. SFTP oder SCP erreichbaren Server abgelegt werden sollen. Leider funktioniert SFTP und SCP in Duplicity, und damit implizit Paramiko, aktuell nicht mit einem Backup-Server bei Hetzner. Eine Lösung habe ich bisher leider nicht gefunden.\n","link":"https://blog.tausys.de/2015/08/19/paramiko-stolpersteine/","section":"posts","tags":["MariaDB","MySQL","SSH"],"title":"Paramiko Stolpersteine"},{"body":"Nach einem Update eines Servers auf Debian 8 Jessie war ein Verbindungsaufbau von einer MySQL-Workbench über einen SSH-Tunnel zu diesem Server nicht mehr möglich. Das Logfile der MySQL-Workbench (unter Windows in %APPDATA%\\MySQL\\Workbench\\log\\wb.log zu finden) enhält folgende Fehlermeldung:\nSSHException: Incompatible ssh peer (no acceptable kex algorithm)\nGrund für die Fehlermeldung ist, dass das in der aktuellen MySQL-Workbench 6.3 CE verwendete Python-Modul (paramiko), welches für den Verbindungsaufbau über einen SSH-Tunnel zuständig ist, sich in der Version 1.7.7.1 nicht mehr mit der nun auf dem Server installierten OpenSSH-Version 6.7 versteht.\nSeitenhieb an Oracle: paramiko 1.7.7.1 ist vom 23.05.2011!\nZur Fehlerbehebung unter Windows muss das Python-Modul paramiko manuell aktualisiert werden. Ab der Version 1.12 von paramiko wird zusätzlich das Python-Modul ecdsa benötigt. Beide Module können von Github heruntergeladen werden: paramiko, ecdsa.\nIn den heruntergeladenen Archiven findet sich jeweils ein Ordner paramiko und ecdsa. Beide müssen nach C:\\Program Files\\MySQL\\MySQL Workbench 6.3 CE\\python\\site-packages kopiert werden. Der bereits dort vorhandenen Ordner paramiko sollte vorher gelöscht werden.\nDie Verzeichnisstruktur sollte anschließend wie folgt aussehen:\nWindows MySQL Workbench site-packages\nNach einem Neustart der MySQL-Workbench ist dann auch wieder ein Verbindungsaubau über einen SSH-Tunnel möglich sein, wenn die Gegenseite Debian 8 bzw. OpenSSH 6.7 einsetzt.\nWeiterführende Links:\nparamiko seems to be incompatible with OpenSSH 6.7 Paramiko Update Tutorial ","link":"https://blog.tausys.de/2015/08/19/mysql-workbench-ssh-tunnelaufbau-scheitert/","section":"posts","tags":["Linux","MySQL","OSS","SSH","Windows"],"title":"MySQL-Workbench: SSH-Tunnelaufbau scheitert"},{"body":"Wer das Bedürfnis hat, Windows 10 in einer VM unter KVM/QEMU und Linux Mint 17.2 zu testen, muss als CPU-Modell cpu64-rhel6 einstellen, ansonsten startet die Installation nicht oder hängt mit einem Fehler in einer Bootschleife.\nlibvirt Einstellungen CPU-Modell Windows 10\nAlternativ kann auch core2duo angegeben werden.\n","link":"https://blog.tausys.de/2015/08/18/kvm-qemu-windows-10-testen/","section":"posts","tags":["KVM","Linux","QEMU","Windows"],"title":"KVM QEMU: Windows 10 testen"},{"body":"Vor kurzem habe ich ein Distributions-Update durchgeführt und bin nun auch in den zweifelhaften Genuss von systemd gekommen. Im folgenden möchte ich beschreiben, wie der Update-Daemon von Tiny Tiny RSS unter systemd auf einem Debian 8 System betrieben werden kann.\nZuerst muss eine Konfigurationsdatei erstellt werden, die den Dienst beschreibt. Ich habe dazu die Datei /lib/systemd/system/ttrss-update.service mit folgendem Inhalt angelegt:\n1[Unit] 2Description=Tiny Tiny RSS update daemon 3After=network.target mysqld.service 4Requires=network.target remote-fs.target nss-lookup.target 5 6[Service] 7User=www-data 8Group=www-data 9WorkingDirectory=/var/local/news 10Type=simple 11StandardOutput=null 12StandardError=syslog 13ExecStart=/usr/bin/php ./update_daemon2.php 14PrivateTmp=true 15InaccessibleDirectories=/home /root /boot /opt /mnt /media 16ReadOnlyDirectories=/etc /usr 17 18[Install] 19WantedBy=multi-user.target Unter WorkingDirectory muss dass Verzeichnis der TTRSS-Installation angepasst werden.\nAnschließend muss der Service aktiviert werden:\nsystemctl enable ttrss-update.service\nDanach muss die Konfiguration der Dienste durch systemd neu eingelesen werden:\nsystemctl --system daemon-reload\nund abschließend der Dienst selbst gestartet werden:\nsystemctl start ttrss-update.service\nAlle obigen Befehle müssen natürlich als root oder mit vorangestelltem \u0026quot;sudo \u0026quot; ausgeführt werden.\nWeitere Beispiele der Servicekonfiguration sind im TTRSS-Forum zu finden.\n","link":"https://blog.tausys.de/2015/08/10/tiny-tiny-rss-update-daemon-unter-sytemd-betreiben/","section":"posts","tags":["Debian","Linux","OSS","systemd","TTRSS"],"title":"Tiny Tiny RSS: Update-Daemon unter systemd betreiben"},{"body":"","link":"https://blog.tausys.de/tags/ttrss/","section":"tags","tags":null,"title":"TTRSS"},{"body":"","link":"https://blog.tausys.de/tags/putty/","section":"tags","tags":null,"title":"PuTTY"},{"body":"Sprunglisten sind in PuTTY ein beliebtes Feature, um gespeicherte Sessions schnell aufzurufen. Leider hat die aktuelle PuTTY-Version 0.65 einen Fehler, welcher dazu führt, dass eine an das Taskleisten-Icon angeheftete PuTTY-Session beim Anklicken nur den PuTTY-Konfigurationsdialog öffnet. Die Entwickler sind über den Fehler informiert. Eine Behebung erweist sich aber offensichtlich als schwierig, da die Entwickler nach eigenen Aussagen aktuell keinen Zugriff auf Windows 10 haben.\nUpdate vom 22.04.2016: Bereits in der Version 0.66 (veröffentlicht am 07.11.2015) wurde der Fehler behoben.\n","link":"https://blog.tausys.de/2015/08/04/windows-10-und-putty-sprunglisten-defekt/","section":"posts","tags":["PuTTY","Windows"],"title":"Windows 10 und PuTTY: Sprunglisten defekt"},{"body":"","link":"https://blog.tausys.de/tags/apache/","section":"tags","tags":null,"title":"Apache"},{"body":"In einer Standard-WordPress-Installation ist es sehr einfach möglich, die Namen der unterschiedlichen Autoren herauszubekommen. An die URL der Seite hängt man dazu ein /?author=1, /?author=2 usw. an. Diese Informationen könnten von mißliebigen Zeitgenossen unter Umständen dann dazu verwendet werden, Logins mit nun bekannten korrekten Benutzernamen auszuprobieren.\nVerhindern kann man den Zugriff auf die Namen der unterschiedlichen Autoren (und damit auch die Information, ob es evtl. nur einen einzigen Autor im Blog gibt) mit dem Umschreiben der URL.\nApache In der Datei .htaccess trägt man dazu folgendes ein:\n1RewriteCond %{QUERY_STRING} author=\\d 2RewriteRule ^ /? [L,R=301] Das Modul mod_rewrite muss aktiv sein, damit diese Konfigurationsanweisungen ausgewertet werden.\nNginx In der entsprechenen Konfigurationsdatei für den Server trägt man folgendes ein:\n1location / { 2 if ($query_string ~ \u0026#34;author=\\d\u0026#34;) { 3 rewrite ^(.*)$ /? redirect; 4 } 5} Danach werden alle Anfragen zur Auflistung der Autoren auf die Hauptseite der WordPress-Installation umgeleitet.\n","link":"https://blog.tausys.de/2015/07/27/wordpress-aufzaehlung-der-autoren-verhindern/","section":"posts","tags":["Apache","Nginx","OSS","WordPress"],"title":"WordPress: Aufzählung der Autoren verhindern"},{"body":"Filmaufnahmen mit Kamerabewegung in Secondlife sind nur mit einer sogenannten 3D-Maus möglich. Eine dieser \u0026quot;3D-Mäuse\u0026quot; ist der Space Navigator von 3Dconnexion. Dieser wird von Linux Mint 17 zwar erkannt\n1# lsusb 2... 3Bus 002 Device 003: ID 046d:c626 Logitech, Inc. 3Dconnexion Space Navigator 3D Mouse 4... kann jedoch nicht sofort von den Secondlife-Viewern wie Firestorm und Singularity angesprochen werden. Abhilfe schafft ein zusätzlicher Eintrag für udev:\n1cat \u0026gt; /etc/udev/rules.d/99-spacenavigator.rules \u0026lt;\u0026lt;EOD 2KERNEL==\u0026#34;event[0-9]*\u0026#34;, ATTRS{idVendor}==\u0026#34;046d\u0026#34;, ATTRS{idProduct}==\u0026#34;c626\u0026#34;, SYMLINK+=\u0026#34;input/spacenavigator\u0026#34;, GROUP=\u0026#34;plugdev\u0026#34;, MODE=\u0026#34;664\u0026#34; 3EOD Danach muss udev angewiesen werden, die Rules neu abzuarbeiten:\nudevadm trigger\nWenn alles richtig gemacht wurde, findet sich unter /dev/input jetzt ein Link mit dem Namen spacenavigator.\nAnschließend kann der Space Navigator z.B. im Firestorm aktiviert werden:\nFirestorm Space Navigator Einstellungen\nMit dem linken Button des Space Navigators kann nun in die Flycam des Secondlife-Viewers gewechselt werden.\n","link":"https://blog.tausys.de/2015/07/23/linux-mint-17-secondlife-und-3dconnexion-space-navigator/","section":"posts","tags":["Linux","OSS","Secondlife","SpaceNavigator"],"title":"Linux Mint 17, Secondlife und 3Dconnexion Space Navigator"},{"body":"","link":"https://blog.tausys.de/tags/secondlife/","section":"tags","tags":null,"title":"Secondlife"},{"body":"","link":"https://blog.tausys.de/tags/spacenavigator/","section":"tags","tags":null,"title":"SpaceNavigator"},{"body":"","link":"https://blog.tausys.de/tags/mcrypt/","section":"tags","tags":null,"title":"Mcrypt"},{"body":"","link":"https://blog.tausys.de/tags/netcat/","section":"tags","tags":null,"title":"Netcat"},{"body":"Ein Werkzeug um schnell Daten im Netzwerk zu übertragen ist netcat.\nUnverschlüsselt Mit folgendem Kommando lauscht netcat auf dem TCP-Port 12345 und speichert alle über diesen Port empfangenen Daten in der Datei daten.txt:\nnc -l 12345 \u0026gt; daten.txt\nDie Daten können anschließend vom Sender mit folgendem Kommando verschickt werden:\nnc -q0 zielhostname 12345 \u0026lt; daten.txt\nNeuere Implementierungen von netcat benötigen den Parameter -q, welcher beim Lesen von EOF die Verbindung beendet und so dem Empfänger mitteilt, dass die Übertragung beendet ist.\nObige Kommandos lassen sich verwenden, um schnell Daten im lokalen Netzwerk zu kopieren.\nVerschlüsselt Wenn die Daten über das Internet übertragen werden sollen, so sollte eine Verschlüsselung eingesetzt werden. Dazu werden die Daten zuerst mit mcrypt verschlüsselt und anschließend mit netcat wie oben beschrieben verschickt:\nmcrypt --flush \u0026lt; daten.txt | nc -q0 zielhostname 12345\nDas Kommando auf dem Zielhost um die Daten zu empfangen und zu entschlüsseln lautet:\nnc -l 12345 | mcrypt -d \u0026gt; daten.txt\nZu beachten ist, dass mcrypt Informationen über das verwendete Verschlüsselungsverfahren in die Daten einfügt. Möchte man das verhindern, z.B. um irgendwelchen Mitlesern die Arbeit zu erschweren, kann mcrypt in den obigen Befehlen um den Parameter\n--bare\nerweitert werden. Für ganz Vorsichtige kann auch der zu verwendende Algorithmus und der zu verwendende Blockchiffre (z.B. zur Fehlerkorrektur) vorgegeben werden. Informationen dazu enthält die Manpage von mcrypt.\n","link":"https://blog.tausys.de/2015/07/16/netcat-dateien-verschluesselt-uebertragen/","section":"posts","tags":["Linux","mcrypt","netcat","OSS","Verschlüsselung"],"title":"Netcat: Dateien verschlüsselt übertragen"},{"body":"","link":"https://blog.tausys.de/tags/verschl%C3%BCsselung/","section":"tags","tags":null,"title":"Verschlüsselung"},{"body":"Mit der heute veröffentlichten Version 2.14.0 der freien Analysesoftware Piwik ist nun auch ein reibungsloser Einsatz unter HHVM möglich. Das Problem der exorbitant steigenden Anzahl von gleichzeitigen Verbindungen zur Datenbank bei Verwendung der Piwik-Seiten wurde gelöst.\n","link":"https://blog.tausys.de/2015/07/09/hhvm-und-piwik/","section":"posts","tags":["HHVM","Linux","MariaDB","MySQL","OSS","Piwik"],"title":"HHVM und Piwik"},{"body":"Die Cloud-Software Seafile organisiert Dateien in verschiedenen Bibliotheken. Jede Bibliothek hat einen frei wählbaren Namen und eine Beschreibung. Diese Bibliotheken lassen sich mit dem Seafile-Client automatisch mit lokalen Verzeichnissen synchronisieren.\nBeim Aktivieren der Synchronisierung einer Bibliothek muss ein Verzeichnis angegeben werden, unterhalb dessen der Seafile-Client anschließend ein neues Verzeichnis mit dem Namen der Bibliothek anlegt und die Synchronisierung startet.\nBis zur Version 4.1 des Seafile-Clients konnte die Bibliothek auch mit bereits bestehenden Ordnern sychronisiert werden. So brauchte der Bibliotheksname nicht gleich dem Ordnernamen zu sein. Es konnte z.B. der Inhalt der Bibliothek \u0026quot;Meine Bilder\u0026quot; mit dem Ordner \u0026quot;/home/user/Bilder\u0026quot; synchronisiert werden.\nLeider wurde diese Option mit Erscheinen der Clientversion 4.2 entfernt, was zu einem umgehenden Featurerequest zum Wiedereinbau dieser nützlichen Funktion geführt hat.\nSeit der Clientversion 4.2.4 ist diese Option wieder vorhanden, muss aber zuerst im Client aktiviert werden. In den Einstellungen des Seafile-Clients aktiviert man dazu die folgende Option:\nSeafile Client Einstellungen Erweitert\nDanach kann wieder wie gewohnt beim Aktivieren der Synchronisierung einer Bibliothek auf die Synchronisierung mit einem bestehenden lokalen Ordner umgeschaltet werden:\nSeafile Client Bibliothek synchronisieren\n","link":"https://blog.tausys.de/2015/07/02/seafile-synchronisierung-mit-bestehenden-ordnern/","section":"posts","tags":["Linux","OSS","Seafile"],"title":"Seafile: Synchronisierung mit bestehenden Ordnern"},{"body":"Obwohl ich wirklich nicht schnell aufgebe, so ist der mehrere Tage lange Versuch, hier pfSense mit IPv6 der Telekom zu konfigurieren, gescheitert.\nDas mag zum einen daran liegen, dass die Telekom aber auch so gar keine Hilfe zur Verfügung stellt, wie die korrekten Parameter für eine IPv6-Konfiguration lauten. Auf verschiedenen IT-News-Seiten, darunter auch Heise, werden in alten Artikeln Prefixe kommuniziert, mal /56, mal /64, welche am IP-Anschluss der Telekom zugewiesen werden. Noch nicht einmal klar ist, ob die Telekom SLAAC oder DHCPv6 spricht.\nZumindest eins konnte ich hier bisher feststellen: ja, ich habe einen IP-only Zugang mit Entertain und ja, ich habe keine IPv6-Sperre, wie in anderen Beiträgen berichtet, da ich einen neuen Vertrag abgeschlossen habe und ein angesteckter Plastik-Speedport auch IPv6 zugewiesen bekommt.\nZum anderen mag es daran liegen, dass wohl niemand pfSense mit IPv6 am Anschluss der Telekom verwendet. Zumal sich hier noch die Schwierigkeit mit VLAN7 und VLAN8 bei Entertain ergibt. So sind auch Beispiele für eine funktionierende Konfiguration im Netz leider nicht zu finden.\nDrittens liegt der Fehlversuch wohl auch daran, dass pfSense noch den einen oder anderen Bug in Bezug auf IPv6 hat (siehe z.B. hier oder hier) und leider die Doku zu IPv6 bei pfSense auch noch dünn gesäht ist.\nUnd zu guter Letzt muss ich zugeben: ich bin IPv6-Newbie.\nSo kann das leider nichts werden. Schade.\n","link":"https://blog.tausys.de/2015/07/01/pfsense-und-telekom-ipv6-ein-fehlschlag/","section":"posts","tags":["IPv6","OSS","pfSense","Telekom"],"title":"pfSense und Telekom IPv6: ein Fehlschlag"},{"body":"Ich suche und suche und suche, wie ich dem auf das Managesieve-Protokoll (Port 4190) und der ganzen Welt lauschenden Dovecot das Lauschen abgewöhne und dabei ist die Lösung in der Debian-Welt so einfach:\napt-get purge dovecot-managesieved\nFür das reine Verwenden von Sieve im LDA wird Managesieve gar nicht benötigt und das Thunderbird-Plugin zum Remote-Verwalten der Sieve-Filter funktioniert nicht mehr. Also weg damit.\n","link":"https://blog.tausys.de/2015/06/17/dovecot-offenen-externen-port-managesieve-entfernen/","section":"posts","tags":["Dovecot","Linux","Sieve"],"title":"Dovecot: Offenen externen Port Managesieve entfernen"},{"body":"","link":"https://blog.tausys.de/tags/sieve/","section":"tags","tags":null,"title":"Sieve"},{"body":"So merkwürdig der Titel klingt, denn im allgemeinen möchte man die Seiten seiner Webseite ja eher gerne in den Google-Suchmaschinen-Index aufgenommen sehen, so ergibt sich doch ab und an die Anforderung, eine Seite oder z.B. Bilder nicht in den Google-Index aufnehmen zu lassen.\nVerzeichnisse mit robots.txt ausschließen Früher konnte man das relativ einfach durch einen Eintrag in der Datei robots.txt, welche im Hauptverzeichnis der Webseite liegen muss regeln. Zu beachten ist jedoch, dass die Crawler der verschiedenen Suchmaschinen sich nicht daran halten müssen. Google jedenfalls beachtete den Inhalt dieser Datei. So z.B. konnte man mit folgendem Eintrag ein bestimmtes Verzeichnis ausschließen:\n1User-agent: * 2Disallow: /verzeichnis/ In der ersten Zeile wird festgelegt, für welche Crawler folgende Angaben gelten sollen. Hier im Beispiel durch die Angabe eines Sterns für alle Crawler. In der zweiten Zeile erfolgt dann die Angabe eines Verzeichnisses, welches vom Crawler nicht besucht werden soll.\nEinsatzgebiete für diese Methode könnte etwa sein, das Verzeichnis mit JavaScript-Dateien vom Crawlen auszuschließen.\nLeider kann diese Methode seit kurzem nicht mehr verwendet werden, wenn Pfade in der robots.txt eingetragen werden sollen, deren Inhalte für das Rendern der Webseite in einem Browser erforderlich sind, so z.B. oben erwähnte JavaScript-Dateien. Google versucht seit längerem, die Seiteninhalte anhand ihrer grafischen Darstellung zu analysieren. Dazu muss die entsprechende Seite natürlich von Google gerendert werden. Ressourcen, auf die nicht zugegriffen werden kann, erzeugen dann eine Fehlermeldung.\nSeiten mit META-Angaben ausschließen Die bewährte Methode, um Seiten von der Indexierung auszuschließen, ist eine spezielle META-Angabe im Kopf der HTML-Datei zu machen. Innerhalb des Elements trägt man dazu z.B. Folgendes ein:\n\u0026lt;meta name=\u0026quot;robots\u0026quot; content=\u0026quot;noindex\u0026quot; /\u0026gt;\nDamit wird der Googlebot angewiesen, die Datei nicht zu indexieren. Ohne weitere Angaben folgt der Crawler jedoch den Links in der Datei, um andere Seiten zu finden. Weitere Möglichkeiten, um dem Googlebot z.B. auch das Folgen der Links zu verbieten finden sich in der unten angegebenen Google-Hilfeseite.\nProblematisch bei dieser Methode ist, dass sie nur auf HTML-Dateien angewendet werden kann. Bilder und JavaScript-Dateien haben keinen solchen Eintrag. Hier bleibt nur folgendes Verfahren:\nRessourcen mit HTTP-Headerangaben ausschließen Für diese Methode wird der Zugang zur Webserverkonfiguration benötigt. Der Webserver muss angewiesen werden, für die auszuschließenden Seiten oder Dateien einen speziellen Antwort-Header einzufügen. Um die Seite oder Datei komplett vom Index auszuschließen muss z.B. folgender HTTP-Header gesendet werden:\nX-Robots-Tag: noindex\nDie Angaben hinter X-Robots-Tag sind dabei die gleichen, wie sie auch in der robots.txt verwendet werden können.\nApache - X-Robots-Tag einfügen An ensprechender Stelle der Webserverkonfiguration muss z.B. Folgendes eingetragen werden:\n1\u0026lt;Files ~ \u0026#34;\\.(png|jpe?g|gif)$\u0026#34;\u0026gt; 2 Header set X-Robots-Tag \u0026#34;noindex\u0026#34; 3\u0026lt;/Files\u0026gt; Zu beachten ist, dass für die Direktive \u0026quot;Header\u0026quot; das Modul mod_headers im Apache geladen sein muss.\nNginx - X-Robots-Tag einfügen Analog wird in die Serverkonfiguration von Nginx Folgendes eingetragen:\n1location ~* \\.(png|jpe?g|gif)$ { 2\tadd_header X-Robots-Tag \u0026#34;noindex\u0026#34;; 3} Überprüfen kann man die korrekte Ausgabe der HTTP-Header anschließend mit dem Browser. In Firefox und auch Chrome kann durch Drücken von F12 ein Fenster für Webentwickler geöffnet werden. Im Tab Netzwerk und nach dem Neuladen der jeweiligen Webseite kann man sich alle gesendeten wie auch vom Webserver empfangenen HTTP-Header anschauen.\nWeitere Informationen zu diesem Thema findet man auf einer entsprechenden Hilfeseite von Google.\n","link":"https://blog.tausys.de/2015/06/03/google-indexierung-von-ressourcen-verbieten/","section":"posts","tags":["Apache","Google","Nginx","OSS"],"title":"Google – Indexierung von Ressourcen verbieten"},{"body":"Noch bis zum 14.06.2015 läuft bei Conrad eine Aktion, bei der Vorschläge für ein 3D-druckfähiges Raspberry Pi 2 Case eingereicht werden können. Es werden die drei kreativsten Vorschläge ausgewählt und die Gewinner erhalten ihr Gehäuse ausgedruckt aus dem 3D-Drucker. Anschließend wird noch ein Hauptgewinner ermittelt, der zusätzlich ein von Conrad zusammengestelltes Raspberry Pi 2 Model B Advanced-Set 1 GB erhält.\nMehr Informationen und den Modalitäten sind auf einer eigens für diese Aktion eingerichtete Webseite zu erfahren.\n","link":"https://blog.tausys.de/2015/05/15/raspberry-pi-2-case-designen-und-gewinnen/","section":"posts","tags":["RaspberryPi"],"title":"Raspberry Pi 2: Case designen und gewinnen"},{"body":"Die Kombination aus FusionPBX und FreeSwitch stellt eine einfach zu installierende \u0026quot;Voice over IP\u0026quot;-Telefonanlage bereit, die für Privatanwender als auch für anspruchsvolle Lösungen interessant und einsatzfähig ist.\nNach der Installation und dem Durchführen der ersten Schritte sind Telefonate im internen Netz möglich. Bei ausgehenden Anrufen legt einem allerdings die Telekom einige Steine in den Weg. Die Telekom-VoIP-Server akzeptieren nicht irgendwelche Absenderadressen wie z.B. die intern gesetzte Extension. Ohne Anpassung werden Anrufe dann nur mit einem Statuscode \u0026quot;407 Forbidden\u0026quot; quittiert.\nAusgehende Anrufe Für ein Gateway zur Telekom muss immer die korrekte Telekom-Telefonnummer als Absender in den SIP-Nachrichten mitgeteilt werden. In FusionPBX kann die korrekte Nummer unter Dialplan -\u0026gt; Outbound Routes eingestellt werden. Vor der Aktion bridge müssen folgende Aktionen eingefügt werden:\nFür effective_caller_id_number und effective_caller_id_name muss die vollständige Telefonnummer inklusive Vorwahl angegeben werden. Damit erhalten alle ausgehenden Anrufe über dieses Gateway die von der Telekom geforderte Rufnummer.\nEingehende Anrufe Da man mit einem Telekom-VoIP-Anschluss grundsätzlich drei Telefonnumern erhält (analog ISDN), ist es naheliegend, in FusionPBX drei Gateways mit je einer Rufnummer einzurichten. FusionPBX verwendet allerdings zur weiteren Verarbeitung des eingehende Anrufs den Usernamen, welcher bei allen Telekom-Rufnummern gleich ist. Eine Behandlung des Anrufs pro Rufnummer ist dadurch nicht möglich.\nAbhilfe schafft der Eintrag der eigenen Telefonnummer pro Gateway. In FusionPBX erreicht man das mit folgenden Einstellungen beim entsprechenden Gateway unter Accounts -\u0026gt; Gateways:\nGateway: frei wählbarer Name des Gateways Username: Telekom E-Mail-Adresse, z.B. mustermann@t-online.de Password: das für Webzugriff im Telekom-Kundencenter eingestellte Kennwort From User: eigene Telefonnummer inklusive Vorwahl Proxy und Realm: tel.t-online.de Extension: eigene Telefonnummer inklusive Vorwahl Mit den obigen Einstellungen sind Anrufe nach Extern möglich, da sie entsprechend den Telekom-Anforderungen gesendet werden. Ebenso ist eine Unterscheidung der eingehenden Anrufe nach den eingestellten Rufnummern möglich.\n","link":"https://blog.tausys.de/2015/05/06/fusionpbx-und-freeswitch-mit-telekom-voip/","section":"posts","tags":["FreeSwitch","FusionPBX","OSS","Telekom","VoIP"],"title":"FusionPBX und FreeSwitch mit Telekom-VoIP"},{"body":"","link":"https://blog.tausys.de/tags/voip/","section":"tags","tags":null,"title":"VoIP"},{"body":"","link":"https://blog.tausys.de/tags/dns/","section":"tags","tags":null,"title":"DNS"},{"body":"Mit der Version 2.2.1 von pfSense wurde der alte DNS Forwarder durch den DNS Resolver Unbound ersetzt. Nach dem Update konnte nahtlos umgeschaltet werden, bei Neuinstallationen wird der DNS Resolver als Default eingestellt.\nProbleme gibt es allerdings, wenn im alten DNS Forwarder Source-IPs für feste Domain-Weiterleitungen eingetragen sind. Diese werden benötigt, wenn z.B. eine Firmendomain von einem über IPSEC erreichbaren Firmen-DNS aufgelöst werden soll. Der neue DNS Resolver bietet solch eine Einstellung nicht. Ohne besondere Einstellungen werden die DNS-Requests zwar an den richtigen entfernten DNS addressiert, aber über das Default-Gateway und nicht über den IPSEC-Tunnel abgesendet.\nAbhilfe schafft hier, beim DNS Resolver unter Outgoing Network Interfaces nur das LAN-Interface auszuwählen.\nNach bisherigen Tests werden damit Anfragen an Domains aus den Domain Overrides mit der korrekten Source-IP versehen. Alle anderen Anfragen an externe (z.B. per PPPoE oder DHCP erhaltene) DNS werden korrekt maskiert.\nWeitere Informationen im pfSense-Forum.\n","link":"https://blog.tausys.de/2015/05/05/pfsense-2-2-dns-resolver-und-source-ip/","section":"posts","tags":["DNS","OSS","pfSense"],"title":"pfSense 2.2: DNS Resolver und Source-IP"},{"body":"Seit der Version 2.2.1 von pfSense lief mein ALIX-Router nicht mehr stabil. Das Problem trat auf, wenn von Remote durch einen IPSEC-Tunnel die pfSense-Box angesprochen wurde, z.B. die Verwaltungsoberfläche aufgerufen wurde. Resultat war ein sofortiger Kernel-Crash.\nAnscheinend tritt das Problem nur unter NanoBSD und dann auch nur auf 32bit-Systemen auf. Genau so ein System ist mein ALIX 2D13 Board.\nDie pfSense-Entwickler haben einen Woraround gefunden. Unter System -\u0026gt; Advanced -\u0026gt; System Tunables trägt man folgendes ein:\nnet.inet.ipsec.directdispatch=0\nAnschließend startet man den IPSEC-Dienst neu und ab da schnurrt die pfSense-Box wieder wie eh und je.\nWeitere Informationen im pfSense-Forum.\nUpdate vom 28.06.2015: Ab der Version 2.2.3 von pfSense wird obige Einstellung auf 32bit-Systemen automatisch durchgeführt.\n","link":"https://blog.tausys.de/2015/05/05/pfsense-2-2-kernel-crash-mit-ipsec-und-alix-2d13/","section":"posts","tags":["IPSEC","OSS","pfSense"],"title":"pfSense 2.2: Kernel Crash mit IPSEC und ALIX 2D13"},{"body":"Nach der Installation von FusionPBX auf einem Raspberry Pi 2 entsprechend der Anleitung und dem Einrichten einer Extension über die Weboberfläche von FusionPBX kann sich das erste Gerät mit FreeSwitch verbinden. Beim ersten Anruf erhält man allerdings folgende Hinweis- und Fehlermeldungen:\n1Audio Codec Compare [SILK:99:24000:20:0:1]/[G722:9:8000:20:64000:1] 2Audio Codec Compare [SILK:99:24000:20:0:1]/[PCMU:0:8000:20:64000:1] 3Audio Codec Compare [SILK:99:24000:20:0:1]/[PCMA:8:8000:20:64000:1] 4Audio Codec Compare [SILK:99:24000:20:0:1]/[GSM:3:8000:20:13200:1] 5Audio Codec Compare [PCMU:0:8000:30:32000:1]/[G722:9:8000:20:64000:1] 6Audio Codec Compare [PCMU:0:8000:30:32000:1]/[PCMU:0:8000:20:64000:1] 7Audio Codec Compare [PCMU:0:8000:30:32000:1]/[PCMA:8:8000:20:64000:1] 8Audio Codec Compare [PCMU:0:8000:30:32000:1]/[GSM:3:8000:20:13200:1] 9Audio Codec Compare [PCMA:8:8000:30:32000:1]/[G722:9:8000:20:64000:1] 10Audio Codec Compare [PCMA:8:8000:30:32000:1]/[PCMU:0:8000:20:64000:1] 11Audio Codec Compare [PCMA:8:8000:30:32000:1]/[PCMA:8:8000:20:64000:1] 12Audio Codec Compare [PCMA:8:8000:30:32000:1]/[GSM:3:8000:20:13200:1] 13... 14Hangup sofia/internal/1000@xxx.xxx.xxx [CS_NEW] [INCOMPATIBLE_DESTINATION] Es konnte kein kompatibler Codec für beide Geräte (SIP-Telefon und FreeSwitch) gefunden werden.\nGrund dafür ist, dass der unter Debian Wheezy (auf dem Raspbian aktuell basiert) GCC 4.6 als Standard-Compiler verwendet und GCC 4.6 auf der ARM-Plattform FreeSwitch falsch übersetzt. quentusrex hat den Fehler umfangreich analysiert und dokumentiert und bereits Bugreports erstellt.\nAbhilfe schafft erst GCC 4.7. Mit folgenden Kommandos wird GCC 4.7 auf dem Raspberry Pi 2 installiert und als Default-Compiler eingerichtet. Beim letzten Kommando erscheint eine Auswahl, in der 4.7 als Default gewählt werden kann (Quelle).\n1$ sudo apt-get install gcc-4.7 g++-4.7 2$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 3$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 4$ sudo update-alternatives --config gcc Anschließend muss natürlich FreeSwitch noch einmal kompiliert werden. Danach jedoch funktioniert die Codec-Auswahl korrekt.\n","link":"https://blog.tausys.de/2015/04/22/freeswitch-auf-raspberry-pi-2-incompatible-destination/","section":"posts","tags":["FreeSwitch","FusionPBX","GCC","OSS","RaspberryPi"],"title":"FreeSwitch auf Raspberry Pi 2: Incompatible Destination"},{"body":"","link":"https://blog.tausys.de/tags/gcc/","section":"tags","tags":null,"title":"GCC"},{"body":"Ich wollte auf einem komplett neu aufgesetzten Raspbian FusionPBX entsprechend der Anleitung installieren. Verwenden wollte ich die vorgeschlagene Konfiguration mit Nginx und Sqlite. Leider schlägt nach ein paar Stunden Kompilieren der letzte Konfigurationsschritt im Webbrowser fehl, da das Timeout in Nginx für FastCGI-Skripte (in dem Fall PHP) in der Standardeinstellung zu kurz eingestellt ist. Der kleine Raspi müht sich nach Kräften, schafft es aber nicht in der vorgegebenen Zeit. Die Einrichtung im Webbrowser schlägt mit \u0026quot;Gateway-Timeout\u0026quot; fehl. Abhilfe schafft der Eintrag\nfastcgi_read_timeout 300;\nin der Datei /etc/nginx/fastcgi_params. Nginx-Restart nicht vergessen. Damit die abschließende Konfiguration von FusionPBX neu gestartet wird, muss noch die Datei /var/www/fusionpbx/resources/config.php gelöscht und die Webseite auf dem Raspi neu aufgerufen werden.\n","link":"https://blog.tausys.de/2015/04/22/fusionpbx-auf-raspberry-pi-2-gateway-timeout-bei-der-installation/","section":"posts","tags":["FreeSwitch","FusionPBX","Nginx","OSS","RaspberryPi"],"title":"FusionPBX auf Raspberry Pi 2: Gateway-Timeout bei der Installation"},{"body":"","link":"https://blog.tausys.de/tags/k9/","section":"tags","tags":null,"title":"K9"},{"body":"Wer K-9 Mail benutzt (nebenbei das beliebtestet OpenSoure-Programm für E-Mails unter Android) und zur Verschlüsselung der E-Mails mit PGP OpenKeychain verwendet, wird über kurz oder lang vor folgendem Problem stehen: dem Verschlüsseln von Anhängen.\nLeider unterstützt K-9 Mail bisher den Standard PGP-MIME nicht, sondern kann verschlüsselte Nachrichten nur im Format PGP-Inline verschicken. Daraus ergeben sich gleich zwei Probleme:\nBeim Versenden von verschlüsselten Nachrichten wird nur der Nachrichtentext verschlüsselt. Etwaige Anhänge werden unverschlüsselt verschickt.Dieses Problem kann umgangen werden, indem die Anhänge zuerst mit OpenKeychain verschlüsselt werden und diese verschlüsselten Dateien dann der E-Mail angehängt werden. Sehr unhandlich. Beim Empfang von PGP-verschlüsselten Nachrichten können nur per PGP-Inline-kodierte Nachrichten sofort in K-9 Mail angezeigt werden.PGP-MIME-kodierte Nachrichten müssen erst abgespeichert werden und können anschließend in OpenKeychain entschlüsselt werden. Ebenfalls sehr unhandlich. Wie man in folgenden Thread nachlesen kann, sind für die Implementierung von PGP-MIME in K-9 Mail umfassende Arbeiten an der Storage-Engine notwendig. Leider hat bis heute noch niemand entsprechend Zeit für eine Implementierung gefunden, obwohl es anscheinend zu den am meisten von den Benutzern gewünschten Erweiterungen zählt (inklusive mir). Wer mag, kann einen Anreiz für die Entwickler schaffen, indem er sie finanziell unterstützt. Ein entsprechende Seite bei Bountysource ist eingerichtet und steht aktuell bei US$ 1.015.\n","link":"https://blog.tausys.de/2015/04/20/problem-k-9-mail-openkeychain-und-anhaenge/","section":"posts","tags":["Android","E-Mail","K9","OSS"],"title":"Problem: K-9 Mail, OpenKeychain und Anhänge"},{"body":"Auf der Webseite von Digitally Imported findet man leider keine Liste der dort angebotenen Streams. Wer die gestreamte Musik nicht mit seinem Webbrowser spielen will ist also erst mal außen vor. Ein Blick in die Sourcen fördert sie jedoch zu Tage.\nDie einzelnen Streams:\nAmbient - a blend of ambient, downtempo, and chillout Big Room House - The most uplifting, floor-filling Big Room House! Breaks - a fine assortment of trance and house breaks ChillHop - Trip Hop infused, downtempo nujazz and chillout beats. Chillout - ambient psy chillout, check out our trippy flavors! Chillout Dreams - relax to the sounds of dream and ibiza style chillout Chiptunes - Playing the best chiptunes and video game music. Classic EuroDance - Finest imported cheese on the net! Classic EuroDisco - Relive the sounds of Euro \u0026amp; Italo Disco. Classic Trance - relive the classic trance hits!! Classic Vocal Trance - Classic fusion of trance, dance, and chilling vocals together! Club Dubstep - Enjoy the liquid sounds of Dubstep Club Sounds - the hottest club and dance tunes 24/7 Cosmic Downtempo - A downtempo journey into the cosmos Dark DnB - A twisted blend of heavy hitting Dark Drum and Bass! Deep House - Only the sexiest, silky smooth and groovy Deep House. Deep Nu-Disco - The new sounds of Deep Disco! Deep Tech - Deeper shades of House and Techno with Dub and Blues influences. Disco House - Grooviest Disco House hits on the planet! DJ MIXES - non-stop DJ sets featuring various forms of techno \u0026amp; trance! Downtempo Lounge - Relax with some Downtempo grooves. Drum and Bass - tasty assortment to satisfy your drum and bass fix! Dubstep - Dubstep hits and mixes!!!! EcLectronica - An eclectic mixture of modern electronica. Electro House - an eclectic mix of electro and dirty house Epic Trance - Epic \u0026amp; uplifting trance hits EuroDance - the newest and best of Eurodance hits Funky House - A fine selection of funky house music!! Future Synthpop - Finest selection of futurepop and synthpop!! Glitch Hop - Bit-crushing, dub-infused Hip Hop sounds! Goa \u0026amp; Psychedelic Trance - a voyage out of this world! Hands Up - Dance to the best Hands Up hits!! Hardcore - DJ mixes, hard dance and NuNRG! Hard Dance - are you ready for this! Hardstyle - Banging Hardstyle for your ears!!! House - silky sexy deep house music direct from New York city! Latin House - Finest selection of Latin house!! Liquid DnB - Flowing with the freshest Liquid DnB!! Liquid Dubstep - Mellow out to the rolling, soothing deep bass of Liquid Dubstep. Lounge - sit back and enjoy the lounge grooves! Mainstage - The biggest DJs from the best festivals around the world! Minimal - Finest selection of Minimal Techno \u0026amp; House!! Oldschool Acid - Oldschool sounds of Acid Techno, House, and Trance! Classic Electronica - old school techno, trance \u0026amp; rave! Progressive - house, techno, and trance beats for your mind! Progressive Psy - progressive psychedelic grooves PsyChill - downtempo psychedelic dub grooves, goa ambient, and world beats. Russian Club Hits - Russia's hottest club hits. Sankeys Radio - The sound of the white isle direct from Sankeys Ibiza. Soulful House - house music selected from Paris with love! Space Dreams - ambient space music for expanding minds Tech House - A fusion of techno and house with a deep, soulful vibe. Techno - From Minimal to Detroit to Schranz \u0026amp; all in between! Trance Channel - we can't define it! Trap - Electronic 808 beats with Hip Hop roots. Tribal House - Finest selection of tribal and tech house!! UK Garage - The latest and greatest in UK Garage!! UMF Radio - UMF Radio Vocal Chillout - Enjoy the relaxing vocal sounds of ibiza chillout Vocal Trance - a fusion of trance, dance, and chilling vocals together! Und hier die Streams von Digitally Imported als Playlist z.B. für VLC:\nDigitallyImported Playlist (Titelbild: Alex Regan\n","link":"https://blog.tausys.de/2015/03/17/digitally-imported-streamliste/","section":"posts","tags":["Streaming"],"title":"Digitally Imported: Streamliste"},{"body":"","link":"https://blog.tausys.de/tags/streaming/","section":"tags","tags":null,"title":"Streaming"},{"body":"","link":"https://blog.tausys.de/tags/banking/","section":"tags","tags":null,"title":"Banking"},{"body":"","link":"https://blog.tausys.de/tags/gnucash/","section":"tags","tags":null,"title":"GNUcash"},{"body":"Seit langer Zeit verwende ich GNUcash, um meine Finanzen komfortabel zu verwalten. Beim Umzug auf eine Neuinstallation von Linux Mint wollte das Onlinebanking in GNUcash auf einmal nicht mehr funktionieren. Die erste Fehlermeldung war, dass kein Konto zum Onlinebanking ausgewählt sei. Nun gut, dachte ich, habe ich beim Zurücksichern evtl. ein verstecktes Verzeichnis vergessen. Also: Neueinrichtung des Online-Zugangs in GNUcash. Leider stürzt GNUcash beim Anlegen eines neuen Benutzers für das Onlinebanking mit folgender Fehlermeldung ab:\n1$ gnucash 2Found Finance::Quote version 1.18 3gnucash: list1.c:59: GWEN_List1_GetCount: Zusicherung »l« nicht erfüllt. 4Abgebrochen Anscheinend wurden in Linux-Mint die Paketabhängigkeiten für GNUcash nicht richtig gesetzt, das Paket aqbanking-tools, welches für das Onlinebanking in GNUcash notwendig ist, wird nicht automatisch mitinstalliert.\nNach einem\nsudo apt-get install aqbanking-tools\nfunktioniert anschließend das Onlinebanking in GNUcash wieder wie gewohnt.\n","link":"https://blog.tausys.de/2015/03/16/gnucash-fehler-beim-onlinebanking/","section":"posts","tags":["Banking","GNUcash","Linux","OSS"],"title":"GNUcash: Fehler beim Onlinebanking"},{"body":"Nach einem aktuellen Update konnte HHVM auf einmal keine Verbindung mehr zu MySQL bzw. MariaDB aufnehmen. Grund ist der, dass der MySQL-Socket nun wohl unter /tmp/mysql.sock gesucht wird, wo er nicht liegt. Unter Debian liegt er vielmehr unter /var/run/mysqld/mysqld.sock. In der /etc/hhvm/server.ini ist daher folgende Einstellung einzutragen:\nhhvm.mysql.socket = /var/run/mysqld/mysqld.sock\nNach einem Neustart von HHVM funktionierts dann auch wieder mit HHVM und MySQL über den Socket.\n","link":"https://blog.tausys.de/2015/03/14/hhvm-stolpersteine-heute-mysql-socket/","section":"posts","tags":["HHVM","Linux","MariaDB","MySQL","OSS"],"title":"HHVM-Stolpersteine – Heute: MySQL-Socket"},{"body":"","link":"https://blog.tausys.de/tags/chrome/","section":"tags","tags":null,"title":"Chrome"},{"body":"","link":"https://blog.tausys.de/tags/netflix/","section":"tags","tags":null,"title":"Netflix"},{"body":"Seit Ende letztem Jahres erlaubt Netflix nun auch das Streamen per HTML5 unter Linux. Allerdings bis jetzt nur bei Verwendung von Chrome. Chromium und andere Browser funktionieren bisher nicht.\nNetflix Bildschirmfoto vom 2015-03-09 22:46:50\nNach einem ersten Eindruck wird in 720p (sofern vorhanden) gestreamt.\nWeitere Informationen zu den technischen Hintergründen liefert Golem.\n","link":"https://blog.tausys.de/2015/03/09/netflix-streamen-auch-unter-linux/","section":"posts","tags":["Chrome","Linux","Netflix","Streaming"],"title":"Netflix: Streamen auch unter Linux"},{"body":"","link":"https://blog.tausys.de/tags/bookmarks/","section":"tags","tags":null,"title":"Bookmarks"},{"body":"","link":"https://blog.tausys.de/tags/gnome/","section":"tags","tags":null,"title":"Gnome"},{"body":"Mit dem Dateimanager Nemo lassen sich für Verzeichnisse, aber auch für den Zugriff auf externe Server Bookmarks erstellen. Seit der Nemo-Version 2.4.5 werden die Bookmarks in der Seitenleiste in einer eigenen Kategorie dargestellt. Die Bookmarks werden in der folgenden Datei gespeichert:\n~/.config/gtk-3.0/bookmarks\nBei dieser Datei handelt es sich um eine Textdatei. Mehrere Bookmarks können dort bequem mit einem Editor eingefügt oder abgeändert werden.\n","link":"https://blog.tausys.de/2015/03/05/nemo-bookmarks-editieren/","section":"posts","tags":["Bookmarks","Gnome","Linux","Nemo","OSS"],"title":"Nemo: Bookmarks editieren"},{"body":"Mit dem WordPress Theme \u0026quot;Twenty Fourteen\u0026quot; werden einige Formatvorlagen für Beiträge mitgeliefert. So z.B. kann man Beiträge in Form einer Kurzmitteilung, Bilder, Zitate usw. veröffentlichen. Ist in WordPress eingestellt, dass die Startseite die letzten Beiträge anzeigt, werden standardmäßig alle Beiträge (auch mit unterschiedlichen Formatvorlagen) auf der Hauptseite angezeigt. Möchte man auf der Hauptseite z.B. Beiträge mit bestimmten Formatvorlagen nicht anzeigen, so muss die WordPress-Anfrage, welche die einzelnen Beiträge zur Anzeige ermittelt, modifiziert werden.\nMit folgender Funktion in der themeneigenen Datei functions.php werden z.B. alle Beiträge mit der Formatvorlage \u0026quot;Kurzmitteilung\u0026quot; ausgeblendet:\n1function search_filter($query) { 2 if ( !is_admin() \u0026amp;\u0026amp; $query-\u0026gt;is_main_query() ) { 3 $tax_query = array( array( 4 \u0026#39;taxonomy\u0026#39; =\u0026gt; \u0026#39;post_format\u0026#39;, 5 \u0026#39;field\u0026#39; =\u0026gt; \u0026#39;slug\u0026#39;, 6 \u0026#39;terms\u0026#39; =\u0026gt; array( \u0026#39;post-format-aside\u0026#39; ), 7 \u0026#39;operator\u0026#39; =\u0026gt; \u0026#39;NOT IN\u0026#39;, 8 ) ); 9 $query-\u0026gt;set( \u0026#39;tax_query\u0026#39; , $tax_query ); 10 } 11} 12add_action(\u0026#39;pre_get_posts\u0026#39;,\u0026#39;search_filter\u0026#39;); Mit obigem Code-Schnipsel wird festgelegt, dass die Funktion search_filter vor dem Sammeln der anzuzeigenden Beiträge aufgerufen wird (pre_get_posts).\nDie wichtigen Einstellungen sind hier der Operator \u0026quot;NOT IN\u0026quot; und die Angabe der Formate (unter terms), welche nicht angezeigt werden sollen.\nDas Theme \u0026quot;Twenty Fourteen\u0026quot; definiert folgende Formatvorlagen:\npost-format-aside (Kurzmitteilung) post-format-audio (Audio) post-format-gallery (Galerie) post-format-image (Bild) post-format-link (Link) post-format-quote (Zitat) post-format-video (Video) Genau diese Formate können in die obige Funktion eingetragen werden, um diese Formatvorlagen von der Anzeige in der Hauptseite auszuschließen.\nFür andere Themen als \u0026quot;Twenty Fourteen\u0026quot; können bei vorhandenem Zugang zur Datenbank über z.B. phpMyAdmin oder die Konsole die Namen der bereits verwendeten Formatvorlagen mit folgender Abfrage auf die WordPress-Datenbank ermittelt werden:\nSELECT * FROM wp_terms where slug like 'post-format-%';\nDie Namen der Formatvorlagen befinden sich dabei in der Spalte slug. Genau auf diese Spalte wird mit obiger Funktion ein Filter gesetzt ('field' =\u0026gt; 'slug').\n","link":"https://blog.tausys.de/2015/03/05/wordpress-beitraege-bestimmter-formatvorlagen-ausblenden/","section":"posts","tags":["OSS","WordPress"],"title":"WordPress: Beiträge bestimmter Formatvorlagen ausblenden"},{"body":"Auch Internetnutzer ohne Telekom-Entertain können die öffentlich rechtlichen TV-Sender über das Internet empfangen. Die folgende Liste enhält alle Sender, die aktuell als Livestream empfangen werden können:\n3Sat Livestream ARD Livestream ARD Tagesschau Livestream ARTE.DE Livestream BR.alpha Livestream BR Livestream KiKA Livestream MDR Livestream NDR Livestream RBB Livestream SR Livestream SWR Livestream WDR Livestream ZDF Livestream ZDF.info Livestream ZDF.kultur Livestream ZDF.neo Livestream ZDF.heute Livestream Die Livestreams werden in unterschiedlichen Qualitäten übertragen, meistens jedoch in 720p. Leider kommt es auch ab und zu vor, dass die Sender keine Lizenz für das Streamen des Inhaltes über das Netz erworben haben. Es erscheint dann eine entsprechende Anzeige im Stream.\nMit einem Rechtklick und der Auswahl von \u0026quot;Ziel speichern unter..\u0026quot; kann auch eine Playlist für VLC heruntergeladen werden.\n","link":"https://blog.tausys.de/2015/03/04/streamadressen-oeffentlich-rechtliche-tv-sender/","section":"posts","tags":["IPTV","Streaming"],"title":"Streamadressen öffentlich rechtliche TV-Sender"},{"body":"","link":"https://blog.tausys.de/tags/h.264/","section":"tags","tags":null,"title":"H.264"},{"body":"Dieser Artikel behandelt das einfache Streamen eines mit dem Kameramodul des Raspberry Pi aufgenommenen Videostreams über das Netzwerk an einen anderen Computer. Wie sich der Raspberry Pi in eine Überwachungskamera mit automatisierter Aufnahme verwandeln lässt, habe ich in einem anderen Artikel beschrieben.\nÜbertragung mit Netcat Mit dem vorinstallierten Programm raspivid lässt sich einfach auf den Videostream des Raspberry Pi Kameramoduls zugreifen. Für eine Übertragung an einen anderen Rechner im lokalen Netzwerk können folgende Kommandos verwendet werden.\nFalls nicht schon geschehen, muss zuvor das Programm netcat installiert werden:\nsudo apt-get install netcat\nAnschließend wir der Videostream auf dem Rasperry Pi gestartet:\nraspivid -t 0 -o - | nc 192.168.1.64 5001\nDie IP-Adresse muss mit der IP-Adresse des Computers ersetzt werden, auf dem nachher das Video angezeigt werden soll. Mit den obigen Optionen wird ein Videostream in voller Auflösung (1920x1080) und 30 fps an den angegebenen Computer gesendet.\nAuf dem Computer, auf dem das Video angezeigt werden soll:\nnc -l -p 5001 | mplayer -fps 31 -cache 1024 -\nFür die Übertragung in kleineren Auflösungen kann das obige Kommando raspivid um die Optionen -w für Breite und -h für Höhe ergänzt werden (z.B. -w 1280 -h 720).\nÜbertragung mit VLC und RTSP Sollen mehrere Benutzer gleichzeitig einen Videostream anschauen können, kann obige Methode nicht verwendet werden. Hier bietet sich der Einsatz RTSP an, welches z.B. VLC hervorragend beherrscht.\nSofern noch nicht geschehen, wird VLC mit folgendem Kommando auf dem Raspberry Pi installiert:\nsudo apt-get install vlc\nDanach wird der VLC-Videoserver auf dem Raspberry Pi gestartet:\nraspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264\nObiges Kommando enthält Optionen, die das Video vertikal und horizontal spiegeln (-vf -hf), da mein Raspberry Pi auf dem Kopf steht. Bei Bedarf können diese entfernt werden.\nZum Betrachten des Videostreams auf einem anderen Computer:\nvlc rtsp://raspberrypi.local:8554/\nraspberrypi.local muss dabei mit der IP-Adresse oder Hostnamen ersetzt werden, unter der der Rasperry Pi im lokalen Netzwerk erreichbar ist. Alternativ kann die Adresse des Videostreams auch über die GUI von VLC unter Medien -\u0026gt; Netzwerkstream öffnen... eingegeben werden.\n","link":"https://blog.tausys.de/2015/02/19/raspberry-pi-kamera-video-stream/","section":"posts","tags":["H.264","OSS","RaspberryPi","Video"],"title":"Raspberry Pi: Kamera Video Stream"},{"body":"","link":"https://blog.tausys.de/tags/video/","section":"tags","tags":null,"title":"Video"},{"body":"Mit einem Raspberry Pi, einer Webcam oder dem Raspberry-Pi-Kameramodul ist es relativ einfach, eine Überwachungskamera zu realisieren. Mit der Software motion wird anschließend aufgezeichnet, wenn sich im Bild etwas bewegt. In der folgenden Anleitung möchte ich Schritt für Schritt beschreiben, wie das Ganze in Betrieb genommen werden kann.\nKamera USB-Webcam Evtl. kann eine bereits vorhandene Webcam verwendet werden. Ist die Webcam mit Raspbian, der für Raspberry Pi angepassten Version von Debian Wheezy, kompatibel, sollte nach dem Anstecken der Kamera automatisch ein Device /dev/video* erstellt worden sein. Informationen über den Initalisierungsprozess der Kamera können mit folgendem Kommando angezeigt werden:\ndmesg | tail\nRaspberry Pi Kameramodul Seit kurzem ist ein Treiber verfügbar, der das Rasperry Pi Kameramodul als /dev/video*-Gerät zur Verfügung stellt. Zuerst muss das entsprechende Repository eingebunden werden und anschließend die benötigte Software installiert werden.\nRepositiory eintragen:\necho deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main | sudo tee /etc/apt/sources.list.d/uv4l.list\nSignaturkey des Repositorys einbinden:\ncurl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -\nRepositories neu laden und Kameramodul installieren:\n1sudo apt-get update 2sudo apt-get install uv4l uv4l-raspicam uv4l-raspicam-extras uv4l enthält grundelegende Module, uv4l-raspicam den Treiber zum Ansprechen des Rasperry-Pi-Kameramoduls und uv4l-raspicam-extras ein Skript, welches beim Starten des Rasperry Pi automatisch den erforderlichen Treiber läd.\nAnschließend wird der Treiber gestartet:\nsudo service uv4l_raspicam start\nJetzt sollte unter /dev/video* ein entsprechendes Gerät erstellt worden sein.\nBewegungserkennung Mit der Software motion ist ein Paket verfügbar, mit dem sich Videostreams auf Änderungen untersuchen lassen und anschließend automatisch aufgezeichnet werden können.\nsudo apt-get install motion\nLeider hat das Startskript von motion in der Version 3.2.12 noch einen Fehler: es wird beim Starten des Services nicht die Konfigurationsdatei /etc/motion/motion.conf verwendet. Ausserdem ist zum Einbinden des Raspberry-Pi-Kameramoduls eine weitere Anpassung notwendig.\nEditieren des Startskripts von motion:\nsudo editor /etc/init.d/motion\nunter der Zeile DESC=\u0026quot;motion detection daemon\u0026quot; wird folgende Zeile eingefügt:\nCONFIG_FILE=/etc/motion/motion.conf\nDie Zeile, in der Motion gestartet wird, wird folgendermaßen abgeändert, so dass das angegebene Config-File verwendet wird:\nif start-stop-daemon --start --oknodo --exec $DAEMON -b --chuid motion -- -c $CONFIG_FILE ; then\nWird das Raspberry-Pi-Kameramodul verwendet, muss vor dem Starten von motion noch folgendes ins Startskript eingetragen werden:\nexport LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so\nDas vollständige Startskript für motion kann hier heruntergeladen werden.\nAnschließend stellt man in der Datei /etc/default/motion noch ein, dass motion nach jedem Reboot automatisch gestartet wird und startet den Service anschließend per Hand:\n1sudo editor /etc/default/motion 2sudo service motion start In der Default-Konfiguration werden jetzt bei Bewegungserkennung unter /tmp/motion/ Bilder und Videos abgelegt. Auf dem Raspberry Pi können über den Browser Vorschaubilder der Kamera angezeigt werden. Unter http://localhost:8081 sind Livebilder der Kamera zu sehen und unter http://localhost:8080 ist ein Steuerungsinterface von motion zugänglich.\nStandardmäßig sind die Vorschaubilder und das Steuerungsinterface nur lokal auf dem Raspberry Pi abrufbar. Will man die Bilder auch auf einem anderen Rechner im Netzwerk betrachten, muss in der Datei /etc/motion/motion.conf der Eintrag webcam_localhost auf off gestellt und anschließend motion neu gestartet werden.\nFehlersuche Zuerst sollte überprüft werden, ob sich nach dem Starten von motion im Syslog ungewöhnliche Einträge wiederfinden. Ein normaler Start von motion mit dem Rasperry-Pi-Kameramodul sieht wie folgt aus:\n1Feb 11 08:38:08 pi motion: [26134344] Processing thread 0 - config file /etc/motion/motion.conf 2Feb 11 08:38:08 pi motion: [26134344] Motion 3.2.12 Started 3Feb 11 08:38:08 pi motion: [26134344] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478785 4Feb 11 08:38:08 pi motion: [0] Thread 1 is from /etc/motion/motion.conf 5Feb 11 08:38:08 pi motion: [1] Thread 1 started 6Feb 11 08:38:08 pi motion: [0] motion-httpd/3.2.12 running, accepting connections 7Feb 11 08:38:08 pi motion: [0] motion-httpd: waiting for data on port TCP 8080 8Feb 11 08:38:08 pi motion: [1] cap.driver: \u0026#34;raspicam\u0026#34; 9Feb 11 08:38:08 pi motion: [1] cap.card: \u0026#34;Camera Board OV5647\u0026#34; 10Feb 11 08:38:08 pi motion: [1] cap.bus_info: \u0026#34;CSI\u0026#34; 11Feb 11 08:38:08 pi motion: [1] cap.capabilities=0x05000001 12Feb 11 08:38:08 pi motion: [1] - VIDEO_CAPTURE 13Feb 11 08:38:08 pi motion: [1] - READWRITE 14Feb 11 08:38:08 pi motion: [1] - STREAMING 15Feb 11 08:38:08 pi motion: [1] Test palette YU12 (640x480) 16Feb 11 08:38:08 pi motion: [1] Using palette YU12 (640x480) bytesperlines 960 sizeimage 460800 colorspace 00000000 17Feb 11 08:38:08 pi motion: [1] found control 0x00980900, \u0026#34;brightness\u0026#34;, range 0,100 18Feb 11 08:38:08 pi motion: [1] #011\u0026#34;brightness\u0026#34;, default 50, current 50 19Feb 11 08:38:08 pi motion: [1] found control 0x00980901, \u0026#34;contrast\u0026#34;, range -100,100 20Feb 11 08:38:08 pi motion: [1] #011\u0026#34;contrast\u0026#34;, default 0, current 0 21Feb 11 08:38:08 pi motion: [1] found control 0x00980902, \u0026#34;saturation\u0026#34;, range -100,100 22Feb 11 08:38:08 pi motion: [1] #011\u0026#34;saturation\u0026#34;, default 0, current 0 23Feb 11 08:38:08 pi motion: [1] found control 0x0098090e, \u0026#34;red balance\u0026#34;, range 0,800 24Feb 11 08:38:08 pi motion: [1] #011\u0026#34;red balance\u0026#34;, default 100, current 100 25Feb 11 08:38:08 pi motion: [1] found control 0x0098090f, \u0026#34;blue balance\u0026#34;, range 0,800 26Feb 11 08:38:08 pi motion: [1] #011\u0026#34;blue balance\u0026#34;, default 100, current 100 27Feb 11 08:38:08 pi motion: [1] found control 0x08000000, \u0026#34;shutter speed\u0026#34;, range 0,65535 28Feb 11 08:38:08 pi motion: [1] #011\u0026#34;shutter speed\u0026#34;, default 0, current 0 29Feb 11 08:38:08 pi motion: [1] found control 0x08000001, \u0026#34;zoom factor\u0026#34;, range 1,8 30Feb 11 08:38:08 pi motion: [1] #011\u0026#34;zoom factor\u0026#34;, default 0, current 1 31Feb 11 08:38:08 pi motion: [1] mmap information: 32Feb 11 08:38:08 pi motion: [1] frames=4 33Feb 11 08:38:08 pi motion: [1] 0 length=460800 34Feb 11 08:38:08 pi motion: [1] 1 length=460800 35Feb 11 08:38:08 pi motion: [1] 2 length=460800 36Feb 11 08:38:08 pi motion: [1] 3 length=460800 37Feb 11 08:38:08 pi motion: [1] Resizing pre_capture buffer to 1 items 38Feb 11 08:38:09 pi motion: [1] Started stream webcam server in port 8081 Ebenfalls kontrolliert werden kann, ob motion auf den voreingestellten Ports lauscht:\nsudo netstat -tlpn\nIn der angezeigten Liste sollte motion bei den Ports 8080 und 8081 auftauchen.\n","link":"https://blog.tausys.de/2015/02/11/raspberry-pi-als-webcam-bzw-motion-tracker/","section":"posts","tags":["OSS","RaspberryPi","Webcam"],"title":"Raspberry Pi als Webcam bzw. Motion Tracker"},{"body":"Immer mehr Server sind nicht nur über IPv4 sondern auch über IPv6 erreichbar. Dumm nur, wenn apt-get die IPv6-Adresse verwendet, obwohl gar keine IPv6-Konnektivität ins weite Netz besteht. Mit\n-o Acquire::ForceIPv4=true\nzwingt man apt, IPv4 zu verwenden. Die Einstellung dauerhaft macht man in der Datei /etc/apt/apt.conf.d/99force-ipv4, indem man dort\nAcquire::ForceIPv4 \u0026quot;true\u0026quot;;\neinträgt.\n","link":"https://blog.tausys.de/2015/02/10/apt-ipv4-erzwingen/","section":"posts","tags":["apt","IPv4","IPv6","Linux","OSS"],"title":"apt: IPv4 erzwingen"},{"body":"","link":"https://blog.tausys.de/tags/ipv4/","section":"tags","tags":null,"title":"IPv4"},{"body":"","link":"https://blog.tausys.de/tags/devolo/","section":"tags","tags":null,"title":"Devolo"},{"body":"Zugegeben, der Titel ist etwas irreführend, denn genau genommen wird die Aktualisierung unter Windows (in einer virtuellen Maschine auf einem Linux Host) durchgeführt. Erfreulich ist, dass das devolo-Verwaltungsprogramm auch damit klar kommt und die Adapter bei entsprechender Netzwerkkonfiguration updaten kann.\nStandardmäßig wird unter der in Linux integrierten Virtualisierungssoftware KVM/QEMU den virtuellen Maschinen ein eigenes Netzwerk zugeordnet, welches dann per NAT auf das außen liegende Netzerk und auch das Internet zugreift. Aus diesen \u0026quot;geNATteten\u0026quot; Netzwerken findet das devolo-Tool die dLAN-Adapter nicht, da es offenbar mit Broadcasts arbeitet, die über NAT nicht weitergeleitet werden.\nDie einfachste Möglichkeit ist, die virtuelle Maschine über eine Bridge anzuschließen. Sie liegt dann im gleichen Netzwerk wie die anderen Geräte und somit auch die dLAN-Adapter. Im virt-manager, einem einfachen Tool um die virtuellen Maschinen für KVM zu verwalten, ist es einfach möglich, ein weiteres Interface anzulegen und dieses als Bridge für eth0 zu definieren.\nvirt-manager br0 einrichten\nAnschließend wird br0 der Netzwerkschnittstelle der virtuellen Maschine zugeordnet. Natürlich muss im Netzwerk dann auch ein DHCP-Server laufen (meistens durch den Router bereitgestellt), der der virtuellen Maschine dann auch eine IP-Adresse aus dem Bereich des lokalen LANs zuordnet.\nNach all dem findet das devolo-Verwaltungstool alle dLAN-Adapter im lokalen Netz und kann auf diesen ein Firmwareupdate durchführen.\n","link":"https://blog.tausys.de/2015/01/27/devolo-dlan-adapter-unter-linux-aktualisieren/","section":"posts","tags":["devolo","dLAN","Linux","OSS"],"title":"devolo dLAN Adapter unter Linux aktualisieren"},{"body":"","link":"https://blog.tausys.de/tags/dlan/","section":"tags","tags":null,"title":"DLAN"},{"body":"","link":"https://blog.tausys.de/tags/icmp/","section":"tags","tags":null,"title":"ICMP"},{"body":"","link":"https://blog.tausys.de/tags/iptables/","section":"tags","tags":null,"title":"Iptables"},{"body":"Falls das zu übertragende IP-Paket größer als die maximale Transfergröße (MTU) ist, wird dem Sender per ICMP mitgeteilt, dass eine Fragmentierung durchzuführen ist, die Daten also in kleineren Häppchen zu senden sind. Manche ISPs blockieren ICMP oder lassen nur bestimmte ICMP-Nachrichten durch, was dann dazu führt, dass der Sender nie erfährt, dass die Übertragung nicht funktioniert hat. Gleiches kann bei VPN-Verbindungen (IPSEC, OpenVPN) passieren, die mit ICMP nicht korrekt umgehen. Symptome sind dann:\nWebbrowser stellen zwar eine Verbindung zum Webserver her, stecken dann aber beim Empfang der Webseite fest sehr kleine E-Mails können versand werden, größere hingegen nicht SSH arbeitet korrekt, aber SCP hängt bei der ersten Übertragung fest\n(Quelle: Man-Page [iptables-extensions}(http://ipset.netfilter.org/iptables-extensions.man.html)) Für solche Fälle kann mit Hilfe von iptables und der Erweiterung TCPMSS die MTU der Verbindung auf die maximal zulässige Größe auf diesem Transportpfades gesetzt werden. Dadurch können alle TCP-Pakete ohne Fragmentierung übertragen werden.\niptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu Auf einem Server (nicht Router) tauscht man in obigem Kommando FORWARD gegen OUTPUT.\nAnschließend muss noch ein (distributionsabhängiger) Weg gefunden werden, diese Regel nach einem Neustart des Servers automatisch zu laden.\n(Titelbild: Fabienne Serriere)\n","link":"https://blog.tausys.de/2015/01/26/mtu-steckenbleibende-verbindungen-korrigieren/","section":"posts","tags":["ICMP","IPSEC","iptables","Linux","OSS","Router","VPN"],"title":"MTU: Steckenbleibende Verbindungen korrigieren"},{"body":"","link":"https://blog.tausys.de/tags/router/","section":"tags","tags":null,"title":"Router"},{"body":"","link":"https://blog.tausys.de/tags/vpn/","section":"tags","tags":null,"title":"VPN"},{"body":"Sofern man HHVM aus dem entsprechenden Wheezy-Repositiory installiert hat, kann HHVM aktuell nicht auf Version 3.4.1 aktualisiert werden. Vom Paket vorausgesetzt wird die Version 4.9 von libstdc++6, in Wheezy ist jedoch nur Version 4.8 vorhanden.\nDer Paketmaintainer arbeitet an einer Lösung und hat diese für das Jahresende angekündigt.\nUpdate vom 22.12.2014: Das Problem ist offensichtlich mit Version 3.4.2 von HHVM behoben.\n","link":"https://blog.tausys.de/2014/12/18/hhvm-und-debian-7-probleme-mit-libstdc6/","section":"posts","tags":["HHVM","Linux","OSS","Wheezy"],"title":"HHVM und Debian 7: Probleme mit libstdc++6"},{"body":"","link":"https://blog.tausys.de/tags/wheezy/","section":"tags","tags":null,"title":"Wheezy"},{"body":"Beim Einsatz von MariaDB kann es vorkommen, dass PHP5 beim Verbinden mit der Datenbank folgenden Fehler meldet:\nmysqli::mysqli(): Headers and client library minor version mismatch.\nDie PHP5-Bibliothek, welche für die Anbindung an MariaDB/MySQL zuständig ist, prüft, ob die MariaDB/MySQL-Bibliothek noch die gleiche ist, mit der sie übersetzt wurde. Das ist natürlich nicht mehr der Fall, wenn man die MariaDB/MySQL-Bibliothek auf eine neue Version aktualisiert.\nAbhilfe schafft, den mysqlnd-Treiber zu verwenden, was auch das empfohlene Verfahren von MariaDB ist. Dazu muss unter Debian oder Ubuntu das Paket php5-mysqlnd installiert und php5-mysql entfernt werden.\nWeitere Informationen:\nInstallation issues with PHP5 ","link":"https://blog.tausys.de/2014/11/30/mariadb-headers-and-client-library-minor-version-mismatch/","section":"posts","tags":["Linux","MariaDB","MySQL","OSS","PHP"],"title":"MariaDB: Headers and client library minor version mismatch"},{"body":"Beim Anlegen von virtuellen Maschinen mit virt-manager wird standardmäßig in der VM eine Grafikkarte mit dem Treiber QXL erstellt und die Anzeige auf Spice gestellt. Das ist ansich gut so, denn diese Kombination ist aktuell die schnellste Möglichkeit, grafische Elemente einer VM darzustellen. Wenn man dann in der VM arbeitet kann es jedoch vorkommen, dass einzelne Buchstaben in der Anzeige fehlen und das auch noch unabhängig davon, ob man nun virt-viewer oder spicec zur Anzeige des VM-Bildschirms verwendet:\nFehlende Buchstaben\nDer Fehler liegt im QXL-Treiber. Dieser kann aktuell nicht richtig mit Composite umgehen. Abhilfe schafft, dem Kernel der VM einen Parameter hinzuzufügen:\nhinzufügen von \u0026quot;nomodeset\u0026quot; zu GRUB_CMDLINE_LINUX_DEFAULT in /etc/defaults/grub \u0026quot;update-grub\u0026quot; zur Aktualisierung von Grub Nach einem Neustart der VM wirkt der neue Kernelparameter dann und der oben beschriebene Fehler tritt nicht mehr auf.\nWeitere Informationen:\nRed Hat Bugzilla – Bug 974198 Ubuntu Launchpad - Bug #1261916 ","link":"https://blog.tausys.de/2014/11/09/qemu-kvm-fehlende-buchstaben/","section":"posts","tags":["KVM","Linux","OSS","QEMU"],"title":"QEMU KVM: Fehlende Buchstaben"},{"body":"","link":"https://blog.tausys.de/tags/monit/","section":"tags","tags":null,"title":"Monit"},{"body":"Nach einem Update ändert sich die Checksumme von mit Monit überwachten Files. Zum Zurücksetzen der Checksummen einfach \u0026quot;monit reload\u0026quot; ausführen und danach evtl. \u0026quot;monit monitor all\u0026quot;.\n","link":"https://blog.tausys.de/2014/10/30/monit-checksum-failed/","section":"posts","tags":["Linux","Monit"],"title":"Monit: Checksum failed"},{"body":"Laut Rechtsprechung des Europäischen Gerichtshofs ist das Einbinden von Youtube-Videos nicht strafbar.\nIhm zufolge ist das Einbinden von Inhalten legal, wenn dadurch kein neues Publikum erschlossen und keine neue Technik verwendet wird. Diese Voraussetzungen sind beim Einbetten öffentlich zugänglicher Youtube-Videos erfüllt. Ein neues Publikum werde dadurch nicht erreicht, weil laut EuGH davon ausgegangen werden könne, “dass der Inhaber des Urheberrechts, als er die Wiedergabe erlaubte, an alle Nutzer des Internets gedacht habe.” Quelle\nRechtsanwalt Christian Solmecke stellte dazu fest, dass diese Entscheidung nicht nur für Youtube-Videos gelte, sondern für alle mittels Framing eingebundene urheberrechtlich geschützten Inhalte, die einmal im Netz öffentlich zugänglich gemacht worden sind – egal ob sie mit oder ohne Zustimmung des Urhebers im Netz veröffentlicht wurden.\nHurra!\n","link":"https://blog.tausys.de/2014/10/29/einbinden-von-youtube-videos-nicht-strafbar/","section":"posts","tags":["Recht","Youtube"],"title":"Einbinden von Youtube-Videos nicht strafbar"},{"body":"","link":"https://blog.tausys.de/tags/recht/","section":"tags","tags":null,"title":"Recht"},{"body":"","link":"https://blog.tausys.de/tags/youtube/","section":"tags","tags":null,"title":"Youtube"},{"body":" NASA-Boardingpass\nMitfliegen\n","link":"https://blog.tausys.de/2014/10/17/ich-bin-dann-mal-weg-auf-zum-mars/","section":"posts","tags":null,"title":"Ich bin dann mal weg – Auf zum Mars"},{"body":"Könnte bitte jemand dem Herrn WerFault Bescheid sagen, dass wenn ich bewusst ein ASSERT(false) in meine Programme schreibe um einen Ausnahmefehler zu produzieren und ich anschließend in dem erscheinenden Dialog den Button Wiederholen klicke, ich das Programm auch wirklich debuggen und nicht, wie der Herr WerFault meint, einen Fehlerbericht an Microsoft senden möchte? Danke!\nBtw: Abhilfe schafft das Deaktivieren der Windows-Fehlerberichterstattung. Dann erscheint auch wieder die Auswahl des zu verwendenden Debuggers.\n","link":"https://blog.tausys.de/2014/10/16/der-herr-werfault-und-das-debuggen/","section":"posts","tags":["VisualStudio","Windows"],"title":"Der Herr WerFault und das Debuggen"},{"body":"Wer einen eigenen Router einsetzt, muss diverse Stolpersteine bei der Konfiguration zum Empfang von IPTV überwinden. Im Folgenden wird beschrieben, wie ein Rouer mit pfSense mit der Version 2.1.5 für IPTV der Telekom (Entertain) konfiguriert werden kann.\nDie Datenübertragung am Telekom-Internetanschluß wird getrennt in IPTV und andere Internetdaten (Surfen, E-Mail, usw.). Technisch geschieht dies durch die Verwendung unterschiedlicher VLANs. Zugang zu \u0026quot;normalem\u0026quot; Internetverkehr erfolgt mit der VLAN-ID 7 und die Übertragung der IPTV-Daten erfolgt über ein Netz mit der VLAN-ID 8.\nInterfaces In pfSense müssen also zuerst zwei VLANs angelegt werden. Unter Interfaces -\u0026gt; (assign) -\u0026gt; VLANs werden zwei neue Interfaces mit den entsprechenden VLAN-Kennungen angelegt.\npfsense IPTV VLANs\nBeim ALIX-Beispielrouter hier ist vr1 das externe Netzwerkinterface und vr0 das interne. Das Beispiel muss ggf. auf den eigenen Router angepasst werden.\nDanach muss ein neues Interface erstellt und diesem das VLAN-Interface mit der ID 8 zugewiesen werden. Als IP Configuration Type wählt man DHCP.\npfsense IPTV WAN VLAN8\nDas VLAN-Interface mit der ID 7 weist man dem PPPOE-Interface zu. Die Übersicht aller Interfaces sollte anschließend wie folg aussehen:\npfsense IPTV Interfaces\nNach einer Neueinwahl sollten beide neu angelegte VLAN-Interfaces eine IP-Adresse erhalten haben (kontrollieren im Dashboard):\npfsense IPTV Dashboard Interfaces\nFirewall Steuerinformationen für IPTV werden mit dem Protokoll IGMP übertragen, der Stream selbst per UDP. Als Erstes müssen am LAN-Interface Pakete mit sogenannten IP-Optionen zugelassen werden. pfSense würde diese Pakete sonst ohne Eintrag im Firewall-Log verwerfen. Am LAN-Interface editiert man dazu die Standardregel für IPv4 und erlaubt das Passieren von IP-Optionen:\npfsense IPTV Firewall Advanced\nNach dem Speichern wird die ensprechende Regel mit einem kleinen blauen A gekennzeichnet.\npfsense IPTV Firewall LAN\nAm VLAN-Interface mit der ID 8 erstellt man zwei Regeln, um IGMP-Steuernachrichten und den eigentlichen Stream passieren zu lassen. Bei der Regel für IGMP müssen ebenfalls IP-Optionen (wie im vorhergenden Schritt) erlaubt werden.\npfsense IPTV Firewall VLAN8\nIGMP-Proxy Das Routen der Multicast-Pakete ins lokale Netzwerk, also des IPTV-Streams, übernimmt ein Proxy-Programm auf dem Router. In pfSense ist ein IGMP-Proxy integriert. Unter Services -\u0026gt; IGMP Proxy wird festgelegt, Pakete von welchen Adressen weitergeleitet werden:\npfsense IPTV IGMP Proxy\nDie LAN-Adresse im obigen Bild muss auf das eigene LAN-Subnetz abgeändert werden.\nAnschließend sollte ein Empfang von IPTV am PC (z.B. mit VLC) sofort möglich sein. Durch Anklicken der Adresse rtp://239.35.10.4:10000 und der Auswahl von VLC wird sofort der IPTV-Stream der ARD gestartet. Andere verfügbare Sender habe ich in einer Liste zusammengefasst.\nÜber Erfahrungsberichte in den Kommentaren würde ich mich freuen.\n","link":"https://blog.tausys.de/2014/10/16/telekom-iptv-mit-pfsense/","section":"posts","tags":["IPTV","OSS","pfSense"],"title":"Telekom IPTV mit pfSense"},{"body":"","link":"https://blog.tausys.de/tags/hosting/","section":"tags","tags":null,"title":"Hosting"},{"body":"","link":"https://blog.tausys.de/tags/ram/","section":"tags","tags":null,"title":"RAM"},{"body":"Jede Hardware geht irgendwann einmal kaputt. Besonders wenn Programme aus unerfindlichen und nicht reproduzierbaren Gründen abstürzen, der Kernel Segfaults protokolliert oder gar der Server nicht mehr startet, ist guter Rat teuer. Eine Ursache kann defekter RAM sein.\nFür den Rechner zu Hause ist ein Speichertest kein Problem. Viele Distributionen integrieren memtest+ in das GRUB-Startmenü, mit dem sich ein umfangreicher Speichertest ausführen läßt. Sollte der Rechner aber als sogenannter Root-Server bei einem Hoster stehen, so hat man meistens keinen Zugriff auf die Konsole und kann so auch nicht Memtest starten.\nMit einem kleinen Trick läßt sich dennoch eine erste Aussage treffen, ob evtl. der Speicher des Servers ausgetauscht werden muss. Das Vorgehen ist ziemlich einfach:\nanlegen einer Datei, die ungefähr der Größe des Arbeisspeichers entspricht mehrfaches Lesen der Datei und Bilden einer Checksumme über die gelesenen Daten Da dadurch die Datei in den Speicher des Systems geladen wird, kann so die Funktion des RAMs getestet werden, der durch den Cache verwendet werden kann. Nicht testen läßt sich mit dieser Methode jedoch Speicher, der bereits für andere Prozesse reserviert ist. Um möglichst viel Speicher für den Cache verwenden zu können empfiehlt es sich deshalb, in ein evtl. durch den Hoster bereitgestelltes Rescue-System zu booten und den Test dann auszuführen.\nEine Datei mit einer Größe von 32 GB läßt sich z.B. mit folgendem Kommando sehr schnell erstellen:\nfallocate -l 32G largefile\nVon fallocate unterstützte Dateisysteme sind btrfs, ext4, ocfs2 und xfs. Sollte fallocate nicht verfügbar sein oder das Dateisystem einen anderen Typ haben kann auf das Kommando dd zurückgegriffen werden:\ndd if=/dev/zero of=largefile bs=32G count=1\ndd muss unter Umständen die 32 GB echt lesen und schreiben, was auf langsamen Controllern und Platten eine gewisse Zeit dauern kann.\nAnschließend ließt man die Datei mehrfach ein und erstellt eine Prüfsumme über die gelesenen Daten:\nmd5sum largefile; md5sum largefile; md5sum largefile\nSollte die Ausgabe von md5sum unterschiedlich sein, so liegt ein Hardwaredefekt vor.\nGenau mit dieser Vorgehensweise habe ich meinen Root-Server heute beim Hoster in die Reparatur geschickt, welche inkl. Diagnose erfreulicherweise weniger als eine halbe Stunde gedauert hat.\n(Titelbild: Laserlicht, RAM-Chip)\n","link":"https://blog.tausys.de/2014/10/05/root-server-einfacher-speichertest/","section":"posts","tags":["Hosting","Linux","RAM","Speicher"],"title":"Root-Server: Einfacher Speichertest"},{"body":"","link":"https://blog.tausys.de/tags/speicher/","section":"tags","tags":null,"title":"Speicher"},{"body":"","link":"https://blog.tausys.de/tags/hetzner/","section":"tags","tags":null,"title":"Hetzner"},{"body":"Nachdem unerklärliche Segfaults auf meinem Root-Server zunahmen habe ich einmal einen einfachen Speichertest (noch im Userspace) durchgeführt. Die Ergebnisse deuteten auf einen RAM-Fehler hin. Nach der Meldung an den Hoster war der Server von deren Seite innerhalb einer halben Stunde getestet und der RAM ausgetauscht. Klasse. Superschneller Support. Danke Hetzner.\n","link":"https://blog.tausys.de/2014/10/05/schneller-support/","section":"posts","tags":["Hetzner"],"title":"Schneller Support"},{"body":"Wer sich Tipparbeit und das Wechseln durch viele Apps am Android-Smarthone sparen will, kann die App Airdroid einsetzen. Mit dieser App ist es möglich, Kontakte, Bilder, Videos, Musik und viele andere Sachen, die auf dem Smartphone gespeichert sind, per Webbrowser zu verwalten. Es lassen sich APKs der installierten Apps herunterladen wie auch neue APKs installieren. Ebenso kann das SMS/MMS- und das Anruf-Protokoll angezeigt werden. Für den Einsatz im heimischen Netz ist dazu nicht einmal eine Anmeldung bei den Betreibern der Synchronisationsserver von Airdroid notwendig. Ein besonderes Gimmick ist die Übertragung der Android-Notifications. Man braucht also sein Smartphone nicht mehr aufwecken um zu sehen, wer gerade eine SMS geschrieben hat oder irgendjemand per WhatsApp oder Hangout mitteilungsbedürftig war.\nNach der Installation von Airdroid braucht man sich für den ausschließlichen Gebrauch im heimischen Netzwerk nicht unbedingt beim Airdroid-Betreiber anmelden. Wer mag, kann Airdroid in einem weiteren Schritt die Berechtigung erteilen, die Android-Notifications zu lesen. Anschließend wird eine URL angezeigt (im heimischen Netzwerk die mit der IP-Adresse wählen), mit der man sich über den Browser mit Airdroid verbinden kann.\nAirdroid Weboberfläche\nInsgesamt ist Airdroid eine sehr funktionale App, die auch noch eine meiner Meinung nach ansprechende Oberfläche bietet.\n","link":"https://blog.tausys.de/2014/09/24/android-verwaltung-per-webbrowser/","section":"posts","tags":["Android"],"title":"Android: Verwaltung per Webbrowser"},{"body":"Wer Memcached zusammen mit Nginx oder PHP einsetzt, der möchte in der Konfigurationsphase sicher einmal debuggen, ob die Einstellungen auch korrekt sind und Daten an Memcached übergeben und von dort gelesen werden. Leider bietet Memcached kein Kommandozeilentool, mit dem man sich einfach Statistiken zu Memcached anzeigen lassen könnte. Es existiert zwar ein Munin-Plugin, welches eine einfache Grafik der Memcached-Auslastung anzeigt, Inhalte sieht man dort jedoch auch nicht.\nMit phpMemcachedAdmin ist es möglich, umfangreiche Statistiken zu Memcached aufbereitet auf einer Webseite zu erhalten. Es lassen sich mehrere Memcached-Server verwalten und auch Inhalte zu einzelnen Keys abrufen. Außerdem können Kommandos an den Memcached-Server geschickt werden.\nphpMemcacheAdmin\nUnter See this Server Stats kann auf die einzelnen Items in Memcached zugegriffen werden.\n(Titelbild: ZeptoBars)\n","link":"https://blog.tausys.de/2014/09/23/memcached-admin/","section":"posts","tags":["Apache","Linux","Memcached","Nginx","OSS"],"title":"Memcached Admin"},{"body":"Mit dem Firefox-Add-On Nimbus Screen Capture lassen sich schnell und unkompliziert Screenshots von Webseiten anfertigen - ohne Umwege über die Zwischenablage und ein weiteres Grafikbearbeitungsprogramm.\nAusgewählt werden kann zwischen der ganzen Seite, dem sichtbaren Teil oder manuell ausgewählten Bereichen. In einer Voransicht läßt sich der Screenshot bearbeitet. Es können Markierungen und Notizen direkt im Bild erstellt und bearbeitet werden. Ausgewählte Bereiche können auch verwischt werden. Der fertige Screenshot kann anschließend zu Nimbus oder Google hochgeladen, gespeichert oder direkt ausgedruckt werden.\nIn den Einstellungen des Add-Ons läßt sich festlegen, in welchem Grafikformat und unter welchem Dateinamen der Screenshot gespeichert werden soll. Außerdem lassen sich dort Schnellzugriffstasten für den \u0026quot;schnellen Screenshot\u0026quot; festlegen.\nDas Add-On läuft unter Windows als auch unter Linux.\nEin kleiner Eindruck der Bearbeitungsmöglichkeiten mit Nimbus Screen Capture:\nScreenshot Webseite Demo Nimbus\nUnd wer es braucht: das Add-On kann auch Screenshots ellenlanger Kommentarseiten von Facebook erstellen.\nInsgesamt ein nützliches Add-On, welches einen festen Platz in meiner Sammlung hat.\n","link":"https://blog.tausys.de/2014/09/17/firefox-webseiten-screenshots-erstellen-2/","section":"posts","tags":["Addons","Firefox","Screenshot"],"title":"Firefox: Webseiten-Screenshots erstellen"},{"body":"","link":"https://blog.tausys.de/tags/sicherheit/","section":"tags","tags":null,"title":"Sicherheit"},{"body":"Wie vielleicht einigen Lesern aufgefallen sein dürfte, erzwinge ich seit Längerem einen verschlüsselten Abruf der Webseiteninhalte auf meinem Blog mit HTTPS. Warum eigentlich? In diesem Blog werden keine persönlichen Daten oder gar Kreditkartennummern übertragen. Einen Schutz mit Verschlüsselung braucht es also eigentlich gar nicht, oder?\nDoch, meine ich. Denn jeder, der Zugang zum Übertragungsweg zwischen einer aufgerufenen Webseite und Eurem Browser hat kann ohne Verschlüsselung mitlesen, welchen Artikel Ihr gerade aufruft, was Ihr lest, wo Ihr kommentiert. Mit diesen Daten lassen sich Interessenprofile erstellen, an denen nicht nur Firmen interessiert sind.\nHTTPS verhindert, dass Seitenaufrufe durch andere protokolliert werden können. Ein Mitleser würde nur erkennen können, dass Ihr dieses Blog besucht, nicht aber, was gelesen wird. Es ist also nicht nur eine technische Spielerei, sondern in gewisser Weise auch ein Schutz für Euch.\n(Titelbild: Yuri Samoilov)\n","link":"https://blog.tausys.de/2014/09/16/warum-ich-https-fuer-besucher-erzwinge/","section":"posts","tags":["https","Sicherheit"],"title":"Warum ich HTTPS für Besucher erzwinge"},{"body":" iPhone Troll\n","link":"https://blog.tausys.de/2014/09/10/das-iphone-6-ist-da-willkommen-in-2012/","section":"fundstuecke","tags":null,"title":"Das iPhone 6 ist da: Willkommen in 2012"},{"body":" Die älteste Quelle die ich finden konnte ist vom 06.11.2002.\n","link":"https://blog.tausys.de/2014/09/09/raid-mal-anders/","section":"fundstuecke","tags":null,"title":"RAID mal anders"},{"body":" Nach langer Abstinenz habe ich mich wieder einmal mit Drupal beschäftigt. Zur Experimentierfreudigkeit kam zudem eine aktuelle Aufgabenstellung: Neuorganisation einer kommerziellen Webseite inklusive Auswahl des geeigneten CMS.\nDie Aufgabenstellung war relativ einfach: ansprechende Startseite, ein paar Menüpunkte mit einfachen Seiten, mehrere Kontaktformulare mit unterschiedlichen Feldern. Daneben ein paar Seiten, deren Inhalt dynamisch aus anderen Dateien bzw. Inhalten des Dateisystems generiert werden müssen. Dazu noch ein paar Blog-artige Seiten mit Neuerungen in unterschiedlichen Kategorien.\nMeiner Erfahrung nach habe ich irgendwann verallgemeinert: WordPress = Blog, Drupal = kleiner Projekte mit unterschiedlichen Elementen, Joomla = umfangreiche Projekte mit allem Schnickschnack.\nBei obigen Projekt landete ich also bei Drupal. Die Installation ist bei fast allen CMS gleich: heruntergeladene Dateien in ein Verzeichnis auf den Webserver kopieren, Datenbank anlegen, Seite aufrufen und damit Installation starten. Ebenso bei Drupal. Einfach und in wenigen Minuten durchgeführt.\nEin erstes Theme, welches ungefähr den Anforderungen entsprach war schnell gefunden, die ersten Inhalte schnell übertragen. Alles bestens, alles fein. Drupal meckert nicht, läuft schnell und kommt sogar von Haus aus mit so exotischen Beschleunigern wie dem von mir eingesetzten HHVM zurecht.\nTextformatierungen But wait, die bisherigen Texte hatten keinerlei Auszeichnung, Formatierungen waren bis auf Zeilenumbrüche nicht vorhanden. Kein Problem im Texteingabefeld für den Inhalt in Drupal. Was aber nun bei der ersten Überschrift, dem ersten fett zu formatierenden Text? Drupal setzt hier auf HTML-Kenntnisse der Autoren. Wenn man im Web schreiben will sollte man nach Drupals-Meinung schon wissen, dass Überschriften mit H1, H2 usw. formatiert werden, Fett mit wie Bold formatiert wird und auch korrekt abgeschlossen werden will. Meiner Meinung nach ist das aber unzumutbar für Autoren und Redakteure, die sich um ansprechende Inhalte kümmern sollen und nicht um spitze Klammern.\nEin Wysiwyg-Editor musste also her. In WordPress leistet TinyMCE gute Dienste, hoffentlich läßt er sich auch in Drupal integrieren. Für Drupal existiert dazu das Modul WYSIWYG, welches die Integration mehrerer Editoren in Drupal ermöglicht. Leider läd das Modul den Editor nicht selbst herunter, es liefert nur minimalistische Informationen, wo man den Editor im Dateisystem ablegen soll. Nach dem Herunterladen und dem Kopieren an die richtige Stelle ist es aber noch nicht getan. Es muss zuerst konfiguriert werden, wie der Editor pro Rolle aussehen soll (standardmäßig sind keine Buttons aktiviert, der Editor ist also quasi nicht sichtbar) und man muss den Editor noch den unterschiedlichen Textformaten zuweisen. Soweit so gut und kompliziert. Der Editor läuft und funktioniert.\nNein, es läuft nicht korrekt. Zeilenumbrüche werden weggefiltert, der Text ist nur noch ein einziger Matsch. Es muss erst in den Einstellungen der Textformate definiert werden, dass ein erlaubter Tag ist.\nMenüs Weiter geht es mit den Menüs. Bei jedem Inhalt kann definiert werden, ob ein Menüpunkt erstellt werden soll und wo der Eintrag in der Menüstruktur stehen soll. Standard. Aber warum zum Teufel werden die Menüpunkte nicht aufgeklappt? Nach ein bisschen Forschen fand ich heraus, dass man das Ausklappen der Menüpunkte in Drupal pro Menüpunkt konfigurieren kann. Leider steht der Standard auf \u0026quot;nicht ausgeklappt\u0026quot; und läßt sich auch nicht beim Festlegen des Inhalts als Menüpunkt einstellen, warum auch immer. Mir fällt eigentlich kein Anwendungsfall ein, in dem ein Untermenü erst auf Klick und nicht gleich beim Darüberfahren aufgeklappt werden sollte. Also: klick, klick, klick, klick: alle Menüpunkte des Hauptmenüs auf automatisch aufgeklappt eingestellt.\nBilder Nun das größte Problem: Bilder. Das Einbinden von Bildern ist für jedes CMS nicht ganz unkompliziert. Bilder werden meistens im Dateisystem und nicht wie der Artikelinhalt selbst in der Datenbank abgelegt. Es müssen also immer Dateien und evtl. noch automatisch erstellte verkleinerte Abbildungen im Inhalt referenziert werden. Dazu wird noch eine Möglichkeit benötigt, die Bilder hochzuladen und evtl. zu verwalten. Drupal hat nach einer Standardinstallation nichts von all dem! Leider auch nach Jahren Entwicklungszeit seit meinem letzten Kontakt mit Drupal.\nAus der Erinnerung wusste ich, dass früher ein paar Module benötigt wurden, um Bilder in Drupal einzufügen. Leider hat sich an dieser Situation nichts geändert. Eine entsprechende Anleitung für Drupal 7 war schnell gefunden. Eigentlich nichts anderes, was ich schon vor Jahren machen musste, um Bilder einigermaßen komfortabel in Drupal einzufügen: sechs (!) zusätzliche Module installieren.\nDiese wollen natürlich erst einmal zum Zusammenarbeiten bewegt werden. Der oben verlinkte Artikel gibt da ein paar Hilfestellungen.\nAnschließend waren zwar nicht alle Menüpunkte wie in der Anleitung beschrieben verfügbar, ein Einfügen mehrerer Bilder funktionierte jedoch, wenn auch mit mehreren im Brower geöffneten Popups, welche auch noch ausgesprochen \u0026quot;unstylish\u0026quot; aussehen.\nDrupal setzt bei Bildern auf eine Eigenorganisation. Verzeichnisse für unterschiedliche Webseitenbereiche müssen selbst angelegt und verwaltet werden. Ebenso gibt es nirgendwo einen Überblick, welche Dateien aktuell noch referenziert werden oder aus einem alten gelöschten Artikel stammen. Löschen sollte man deshalb keine Bilder, denn eine Negativliste, also eine Liste der nicht auf der Webseite verwendeten Bilder, gibt es nicht.\nFazit Aus meiner Sicht habe ich im obigen Anwendungsfall keine allzugroßen Anforderungen an das CMS gestellt. Leider hat sich Drupal dabei nicht mit Bravour geschlagen, sondern musste erst mit viel Zusatzarbeit in ein die Grundanforderungen erfüllendes System verwandelt werden. Für Experimentierfreudige ist Drupal sicher brauchbar. Der Drupal-Kern erlaubt eine sehr gute Strukturierung von Inhalten. Leider hat es bei einfachsten Anforderungen bei mir versagt.\n","link":"https://blog.tausys.de/2014/09/08/drupal-7-persoenliche-erfahrungen/","section":"posts","tags":["Drupal"],"title":"Drupal 7: persönliche Erfahrungen"},{"body":"In WordPress hat man die Möglichkeit, einen Weiterlesen-Tag einzufügen um z.B. nur einen Anrisstext in einer längeren Liste von Artikeln auszugeben. Leider hat dieser Weiterlesen-Tag eine eher ungewöhnliche Eigenschaft: er positioniert den Text bis zu dem man gelesen hat oberhalb des Browserfensters. Oben im Browserfenster steht man dann zwar genau an der Stelle, an der man weiterlesen kann, jedoch fehlt der Anfang des Artikels, welcher schon hochgescrollt ist.\nIn WordPress kann man dieses Verhalten mit ein paar Zeilen, eingefügt in die Datei functions.php im Verzeichnis des aktuellen Themas ändern:\n1function remove_more_jump_link($link) { 2 $offset = strpos($link, \u0026#39;#more-\u0026#39;); 3 if ($offset) { 4 $end = strpos($link, \u0026#39;\u0026#34;\u0026#39;,$offset); 5 } 6 if ($end) { 7 $link = substr_replace($link, \u0026#39;\u0026#39;, $offset, $end-$offset); 8 } 9 return $link; 10} 11add_filter(\u0026#39;the_content_more_link\u0026#39;, \u0026#39;remove_more_jump_link\u0026#39;); Danach bringt einen ein Klick auf \u0026quot;Weiterlesen\u0026quot; an den Anfang des kompletten Artikels.\n","link":"https://blog.tausys.de/2014/09/04/wordpress-weiterlesen-ohne-sprung/","section":"posts","tags":["WordPress"],"title":"WordPress: Weiterlesen ohne Sprung"},{"body":"Durch Berichte über die erfolgreiche Umstellung von WordPress unter Apache und mod_php5 auf Nginx und HHVM von Sergej Müller war ich optimistisch, die dort genannten Geschwindigkeitsvorteile auch für mein Blog nutzbar zu machen.\nNginx war mir schon ein Begriff. Der alternative Webserver steht für Resourcenfreundlichkeit und Geschwindigkeit. Leider bieten viele PHP-Projekte nur Unterstützung für Apache, Beispiele für die Nginx-Konfiguration muss man sich oft mühsam selbst zusammensuchen. Nur durch Zufall stieß ich auf die Datei nginx.conf im Rootverzeichnis der WordPress-Installation, die offensichtlich durch das von mir eingesetzte Plugin W3-Total-Cache anlegt und bei Änderungen in der Konfiguration auch entsprechend angepasst wird. In dieser Datei fanden sich dann die für Nginx notwendigen Anweisungen, um korrekt mit dem Caching-Plugin zusammenarbeiten zu können.\nEin weiterer wichtiger Punkt war das Handling der Sitemap-Adressen. Ich setzte zur Erstellung der für Google und anderer Suchmaschinen vorteilhaften Sitemap das WordPress-Plugin Google XML Sitemaps ein. Erfreulicherweise erkennt das Plugin, dass es unter Nginx läuft und liefert auf der Pluginseite Hinweise zur Konfiguration des Webservers.\nEine Besonderheit des Blogs hier ist, dass alle Anfragen auf HTTPS umgeleitet werden, außerdem ist es auch per IPv6 erreichbar. Mit all den Einzelteilen sieht mein Konfigurationsschnipsel für das Blog dann folgendermaßen aus:\n1server { 2 listen 80; ## listen for ipv4; this line is default and implied 3 listen [::]:80 default_server ipv6only=on; ## listen for ipv6 4 5 server_name blog.tausys.de; 6 return 301 https://$host$request_uri; 7} 8 9server { 10 listen 443 ssl; ## listen for ipv4; this line is default and implied 11 listen [::]:443 default ipv6only=on ssl; ## listen for ipv6 12 13 server_name blog.tausys.de; 14 root /xxxxxxxxxx; 15 index index.php index.html index.htm; 16 17 include hhvm.conf; 18 19 ssl on; 20 ssl_certificate /xxxxxxxxxx/crt.pem; 21 ssl_certificate_key /xxxxxxxxxx/key.pem; 22 23 location / { 24 try_files $uri $uri/ /index.php?$args; 25 } 26 27 # deny access to .htaccess files, if Apache\u0026#39;s document root 28 # concurs with nginx\u0026#39;s one 29 # 30 location ~ /\\.ht { 31 deny all; 32 } 33 34 location ~* \\.(js,css,png,jpg,jpeg,gif,ico,woff,ttf,svg,otf)$ { 35 expires 30d; 36 add_header Pragma public; 37 add_header Cache-Control \u0026#34;public\u0026#34;; 38 } 39 40 location = /robots.txt { 41 rewrite ^ /index.php; 42 } 43 44 rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\\.xml$ \u0026#34;/index.php?xml_sitemap=params=$2\u0026#34; last; 45 rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\\.xml\\.gz$ \u0026#34;/index.php?xml_sitemap=params=$2;zip=true\u0026#34; last; 46 rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\\.html$ \u0026#34;/index.php?xml_sitemap=params=$2;html=true\u0026#34; last; 47 rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\\.html.gz$ \u0026#34;/index.php?xml_sitemap=params=$2;html=true;zip=true\u0026#34; last; 48 49 include /xxxxxxxxxx/nginx.conf; 50} Die Zeile 49 enthält das Include der durch W3-Total-Cache erstellten Konfigurationsdatei.\nIn Zeile 17 wird die allgemeine Konfiguration von HHVM einbezogen. Mit HHVM konnte ich erst einmal nichts anfangen, Wikipedia liefert aber auch hier entspechende Aufschlüsse. Die Installation war relativ einfach, da für einige Distributionen bereits vorcompilierte Pakete bereitgestellt werden, die mit Hilfe der Kurzanleitungen anschließend durch die lokalen Paketverwaltung installiert werden können.\nVor dem Start von Nginx muss dann unbedingt der evtl. noch vorhandene Apache beendet oder für andere Ports als 80 bzw. 443 konfiguriert werden.\nGesagt, getan. Das Blog lief sofort und so weit ich sehen konnte, liefen auch alle Plugins korrekt. Getestet werden sollte auf alle Fälle, ob der Zugriff auf robots.txt und, falls vorhanden, die sitemap.xml funktioniert. Die Antwortzeiten sind einfach phantastisch!\nDa ich hier noch viele andere vHost betreibe, die verschiedene PHP-Pakete beinhalten, machte ich mich nun an die Umstellung der restlichen virtuellen Hosts. Leider musste ich dabei feststellen, dass HHVM etwas pingelig mit evtl. nicht ganz regelkonform programmierten Anwendungen ist. So z.B. ist es mir nicht gelungen, Friendica unter HHVM zum Laufen zu bewegen. Genau für diesen Fall bietet es sich an, den bereits vorhandenen Apache auf der lokalen Adresse auf einem anderen Port lauschen zu lassen. Die Anfragen von außen an Friendica können von Nginx per proxy_pass-Anweisung dann an Apache weiterleitet werden. Die Nginx-Proxy-Konfiguration für Friendica könnte dann ungefähr so aussehen:\n1server { 2 listen 80; ## listen for ipv4; this line is default and implied 3 listen [::]:80; ## listen for ipv6 4 5 server_name friends.tausys.de; 6 return 301 https://$host$request_uri; 7} 8 9server { 10 listen 443 ssl; ## listen for ipv4; this line is default and implied 11 listen [::]:443 ssl; ## listen for ipv6 12 13 server_name friends.tausys.de; 14 15 ssl on; 16 ssl_certificate /xxxxxxxxxx/crt.pem; 17 ssl_certificate_key /xxxxxxxxxx/key.pem; 18 19 location / { 20 proxy_pass http://localhost:999999; 21 proxy_set_header Host $host; 22 proxy_set_header X-Real-IP $remote_addr; 23 } 24} Auch hier gibt es bei mir wieder die Besonderheit, dass alle Anfragen an den unverschlüsselten HTTP-Port 80 zuerst einmal auf verschlüsseltes HTTPS umgeleitet werden. Anschließend werden die Anfragen an den nur lokal lauschenden Apache weitergeleitet.\nAndere Pakete, für die zur Zeit keine entsprechende Nginx-Module zur Verfügung stehen, unter anderem WebDAV und SVN, musste ich ebenfalls zur Weiterleitung an Apache per Nginx-Proxy konfigurieren.\nNach ca. einer Woche Laufzeit von Nginx und HHVM musste ich leider feststellen, dass sich HHVM auch mal mitten im Betrieb verabschieden kann. Im Logfile findet sich dann nur ein Core dumped und unter /tmp/ ist ein Stacktrace zu finden. Leider scheint lt. Stacktrace die Situation nicht einfach nachstellbar zu sein, um einen entsprechenden Bugreport für HHVM erstellen zu können. Ich habe mich deshalb dafür entschieden, monit einzusetzen, welches Services überwachen und im Fehlerfall automatisch neu starten kann. Die entsprechende Konfigurationsdatei für HHVM sieht dann bei mir so aus:\n1check process hhvm with pidfile /var/run/hhvm/pid 2 group system 3 group hhvm 4 start program = \u0026#34;/etc/init.d/hhvm start\u0026#34; with timeout 60 seconds 5 stop program = \u0026#34;/etc/init.d/hhvm stop\u0026#34; 6 if failed host blog.tausys.de port 443 type tcpssl protocol http then restart 7 if 3 restarts within 5 cycles then timeout 8 depend on hhvm_bin 9 10 check file hhvm_bin with path /usr/bin/hhvm 11 group hhvm 12 include /etc/monit/templates/rootbin Ich hoffe, Euch mit meiner Beschreibung ein bisschen weitergeholfen zu haben und würde mich über Berichte zu Erfolgen oder Misserfolgen in den Kommentaren freuen.\n","link":"https://blog.tausys.de/2014/08/20/wordpress-nginx-und-hhvm/","section":"posts","tags":["HHVM","Linux","Nginx","OSS"],"title":"WordPress: Nginx und HHVM"},{"body":"Man sucht es immer wieder und es ist in den Supportforen eine häufige Frage:\nWie kann der Autor und die Erstellungszeit in Drupal 7.x ausgeblendet werden?\nUnter Struktur -\u0026gt; Inhaltstypen -\u0026gt; Article -\u0026gt; Bearbeiten -\u0026gt; Anzeigeeinstellungen kann die Option ausgeschaltet werden.\nDrupal Autor und Erstellungszeit ausblenden\n","link":"https://blog.tausys.de/2014/08/18/drupal-7-x-autor-und-erstellungszeit-nicht-anzeigen/","section":"posts","tags":["Drupal","OSS"],"title":"Drupal 7.x: Autor und Erstellungszeit nicht anzeigen"},{"body":"","link":"https://blog.tausys.de/tags/ssl/","section":"tags","tags":null,"title":"SSL"},{"body":"Nach der Umstellung von Apache auf Nginx, der Installation von HHVM und dem Anpassen der HTTPS-Parameter läuft das Blog hier jetzt mehr als flott und die Sicherheit wird mit dem besten Ranking bewertet. Yeah!\nMit Nginx kann ich endlich auch die SSL-Parameter so anpassen, dass PFS unterstützt wird (was mit dem in Debian 7 mitgelieferten Apache 2.2 bisher nicht möglich war). Das Ergebnis zeigt die sehr gute Bewertung durch Qualys SSL Labs:\nQualys SSL Labs Test\nLeider habe ich damit auch alle Internet-Explorer-Benutzer, die noch Windows-XP einsetzen, ausgeschlossen. Der IE unter Windows-XP kann kein Perfect Forward Secrecy (PFS). PFS bedeutet, dass nach dem Entschlüsseln einer Nachricht und damit dem Bekanntwerden eines geheimen Schlüssels, nicht automatisch alle anderen mitgeschnittenen Nachrichten entschlüsselt werden können.\nSofern ihr eine Webseite betreibt, die per HTTPS erreichbar ist, dann könnt ihr auf den Seiten von Qualys selbst testen, was evtl. noch verbesserungswürdig an der verschlüsselten Übertragung eurer Webseite ist.\n","link":"https://blog.tausys.de/2014/08/13/webseite-flott-und-sicher-mit-nginx-hhvm-und-pfs/","section":"posts","tags":["HHVM","Linux","Nginx","OSS","SSL"],"title":"Webseite flott und sicher mit Nginx, HHVM und PFS"},{"body":"Seit nunmehr elf Jahren nutze ich die die Dienste von web.de im Rahmen einer Clubmitgliedschaft. Als web.de noch ein eigenständiges Unternehmen war, wurden mit der Clubmitgliedschaft Dienste angeboten, die damals noch nicht selbstverständlich waren: so z.B. ein Onlinespeicher, ein leicht zu bedienendes Online-Fotobuch, verschiedene Mail-Domains und diverse andere nette Spielereien, die ich aber nicht alle ausprobiert habe.\nLeider musste ich in den letzen zwei Jahren feststellen, dass die Clubvorteile immer weiter zusammengestrichen wurden. Selbst bei den nur zwei von mir genutzten Vorteilen wurden gravierende Änderungen vorgenommen.\nSmartDrive: Ursprünglich war mit der Clubmitgliedschaft ein unberenzter Online-Speicherplatz angeboten worden. Damit dieser nicht sofort überfüllt wird galt die Regel, dass pro Monat der verfügbare Speicherplatz um maximal 1 GB erweitert wird. Bereits letztes Jahr war diese automatische Speicherplatzvergößerung von der Webseite von web.de verschwunden. Erst ein Anruf bei der Hotline brachte eine Erweiterung meines Kontingents um ein weiteres GB. Mittlerweile ist eine Erweiterung nur noch kostenpflichtig zu haben. Unterhaltung: Über den web.de-Club war es möglich, jeden Monat einen Gutschein für einen frei auswählbaren Film bei maxdome zu erhalten. Auch dieser Service wurde zusammengestrichen. Nun wird der Film des Monats fest vorgegeben. Auf den ersten Blick werden Ladenhüter als Vorteil verkauft. Sehr interessant war auch die Möglichkeit, X509-Zertifikate von der web.de-Zertifizierungsstelle, z.B. zum Unterschreiben und Signieren von E-Mails zu erhalten. Leider stellte sich heraus, dass dabei die privaten Schlüssel bei web.de abgelegt werden, also für sichere private Kommunikation ungeeignet waren. Leider hat es web.de im Lauf der Zeit nicht geschafft, wie viele andere, die Schlüssel im Browser des Benutzers zu generieren und nur dort abzulegen. Die Sicherheit der Benutzer bleibt also weiter auf der Strecke und war wohl auch nicht geplant.\nNach dem Zusammenschluss von web.de, gmx und 1\u0026amp;1 zu \u0026quot;United Internet\u0026quot; war es dann mit einem weiteren Service vorbei: Voice-over-IP von web.de. Da Telefoniedienste bereits umfangreich im Portfolio von 1\u0026amp;1 angeboten wurden, war der VoIP-Dienst von web.de wohl nicht mehr erwünscht. Der Dienst wurde von web.de gekündigt.\nIn der Folge fiel web.de bzw. nun United Internet immer wieder durch die eine oder andere Aktion negativ auf: sei es die aggressive Werbung für den meiner Meinung nach unbrauchbaren Dienst De-Mail oder auch die Lüge über den Rechner bedrohenden AdBlocker.\nZu diesen Ärgernissen kommt noch, dass trotz der kostenflichtigen Clubmitgliedschaft ein wöchentlicher Newsletter ausschließlich mit Werbung versand wird. Den hatte ich zwar weggefiltert, er fällt für einen bezahlten Dienst aber trotzdem unschön auf.\nNein web.de, so kann das mit uns nicht weitergehen. Für immer weniger Leistung bezahle ich immernoch das gleiche Geld: 60 € im Jahr - 5 € im Monat. Meine Tage bei dir sind gezählt.\n","link":"https://blog.tausys.de/2014/07/27/meine-tage-bei-web-de-sind-gezaehlt/","section":"posts","tags":["Web.de"],"title":"Meine Tage bei web.de sind gezählt"},{"body":"","link":"https://blog.tausys.de/tags/web.de/","section":"tags","tags":null,"title":"Web.de"},{"body":"Seit längerem kämpfe ich mit einem gestörten Bild bei IPTV. Ein Pakettrace mit Wireshark zeigte, das Pakete des RTP-Streams verloren gingen, die selbst meine Abspielsoftware am PC (VLC) nicht mehr ausgleichen konnte. HD-Streams abspielen war gar nicht mehr möglich.\nDa bei mir die Übertragung vom Router zum PC zuerst über sogenannte AV-Adapter erfolgt (Übertragung über das Stromkabel) und dann am Schreibtisch die ankommende Leitung noch über einen Switch an mehrere Geräte verteilt wird, konnten die Fehlerquellen vielfältig sein.\nMit dem schon lange geplanten Austausch des Switches (von 100MBit- auf ein Gigabit-Modell) waren die Probleme mit den verlorenen UDP-Paketen des RTP-Streams sofort vorbei. Offensichtlich ist der alte Switch defekt. Nach über 7 Jahren fast Dauerbetrieb darf er sich das aber auch leisten.\n","link":"https://blog.tausys.de/2014/07/21/gestoertes-bild-und-ton-paketverluste-bei-iptv/","section":"posts","tags":["IPTV","Switch"],"title":"Gestörtes Bild und Ton: Paketverluste bei IPTV"},{"body":"","link":"https://blog.tausys.de/tags/switch/","section":"tags","tags":null,"title":"Switch"},{"body":"Mit Linux Mint 17 kommt auch Apache 2.4 auf den Rechner. Gegenüber der Version 2.2 gab es auch Änderungen bei der Vergabe von Zugriffsberechtigungen auf URLs. Leider bringt die Installation von Munin nur Einstellungen mit, die kompatibel mit der Apache Version 2.2 sind. Nach der Installation auf dem lokalen Host erscheint beim Zugriff auf http://localhost/munin nur ein \u0026quot;Forbidden\u0026quot;.\nFolgender Eintrag in der Datei /etc/apache2/conf-enabled/munin.conf innerhalb \u0026lt;Directory /var/cache/munin/www\u0026gt; schafft Abhilfe:\n1Require all granted 2Options FollowSymLinks SymLinksIfOwnerMatch Nach einem Neustart des Apache können dann wieder die Munin-Auswertungen angesehen werden.\n","link":"https://blog.tausys.de/2014/06/29/mint17-apache-2-4-und-munin-access-denied/","section":"posts","tags":["Apache","Linux","Munin","OSS"],"title":"Mint17: Apache 2.4 und Munin – Access denied"},{"body":"","link":"https://blog.tausys.de/tags/registry/","section":"tags","tags":null,"title":"Registry"},{"body":"Microsoft stellt mit der Library WinHTTP eine Schnittstelle zur Verfügung, mit der Programme Ressourcen per HTTP(S) abrufen können. Sollte das Programm keine Unterstützung für einen Proxy anbieten, so läßt sich mit Microsoft-eigenen Mitteln ein evtl. im Netzwerk erforderlicher Proxy für WinHTTP einstellen.\nSysteme kleiner als Windows Vista verwenden dazu das Tool proxycfg, alle anderen netsh im winhttp-Kontext. Um z.B. die Proxy-Einstellungen aus dem Internet Explorer in die Registry für WinHTTP zu importieren, kann folgendes Kommando verwendet werden:\nnetsh winhttp import proxy source=ie\nDie aktuellen Einstellungen lassen sich mit folgendem Kommando anzeigen:\nnetsh winhttp show proxy\nDie Proxy-Einstellungen für WinHTTP können mit folgendem Kommando wieder gelöscht werden:\nnetsh winhttp reset proxy\n32- und 64bit-Systeme Auf 64bit-Windows ist die Registry zweigeteilt. Es gibt getrennte Einstellungen für 64bit- und 32bit-Programme in der Registry. Unter einem 64bit-Windows muss zum Ansprechen des 32bit-Teils der Registry netsh aus dem Verzeichnis C:\\Windows\\SysWOW64 aufgerufen werden.\nC:\\Windows\\SysWOW64\\netsh winhttp ...\nUpdate Anscheinend wurde das Problem mit unterschiedlichen Einstellungen für 32Bit- und 64Bit-Systeme unter Windows 8 behoben.\n","link":"https://blog.tausys.de/2014/06/26/winhttp-proxy-in-registry-einstellen/","section":"posts","tags":["Registry","Windows","WinHTTP"],"title":"WinHTTP: Proxy in Registry einstellen"},{"body":"","link":"https://blog.tausys.de/tags/openssl/","section":"tags","tags":null,"title":"OpenSSL"},{"body":"Seit pfSense 2.0 ist ein Zertifikatmanager in die Weboberfläche integriert, mit dem sich Zertifikate, z.B. für IPSEC, erzeugen und signieren lassen.\nBei der Verwendung der mit pfSense erstellten Zertifikate in Strongswan in Versionen kleiner als 4.6.2 kann der private Key nicht geladen werden. Folgende Fehlermeldung erscheint:\n1charon: 00[LIB] L1 - modulus: ASN1 tag 0x02 expected, but is 0x30 2charon: 00[LIB] building CRED_PRIVATE_KEY - RSA failed, tried 8 builders Ursache ist, dass Strongswan bis Version 4.6.2 nur private Keys im PKCS#1-Format lesen kann. Die aus pfSense exportierten privaten Keys liegen aber im PKCS#8-Format vor.\nMit folgendem Kommando kann der private Schlüssel vom PKCS#8- ins PKCS#1-Format konvertiert werden:\nopenssl rsa -in key8.pem -out key1.pem\nAnschließend kann auch der Schlüssel wieder in Strongswan geladen werden.\n","link":"https://blog.tausys.de/2014/06/14/pfsense-ipsec-zertifikate-in-strongswan-verwenden/","section":"posts","tags":["IPSEC","OpenSSL","OSS","pfSense","Strongswan"],"title":"pfSense: IPSEC Zertifikate in Strongswan verwenden"},{"body":" Click image to open interactive version (via Penny Stocks Lab).\n","link":"https://blog.tausys.de/2014/06/02/das-internet-in-realtime/","section":"posts","tags":null,"title":"Das Internet in Realtime"},{"body":"","link":"https://blog.tausys.de/tags/dropbear/","section":"tags","tags":null,"title":"Dropbear"},{"body":"","link":"https://blog.tausys.de/tags/initramfs/","section":"tags","tags":null,"title":"Initramfs"},{"body":"IPv4 Adressen werden immer knapper und mittlerweile bekommt man bei vielen Hostern schon standardmäßig einen IPv6-Adressblock zum gemieteten Server dazu. Wer wie ich einen Debian-Server verwendet, bei dem die Root-Partition mit LUKS verschlüsselt ist und diese beim Bootvorgang über einen Dropbear-SSH-Zugang freigeschaltet werden muss, wird feststellen, dass nach dem Booten die Interfaces nicht die korrekte IPv6-Konfiguration haben.\nUnter Debian kann die Netzwerkschnittstelle für Dropbear über die Datei /etc/initramfs-tools/initramfs.conf nur als IPv4 konfiguriert werden. Nach dem Booten stellen die Debian-Skripte fest, dass eth0 schon konfiguriert ist und verwenden die Einstellungen aus /etc/network/interfaces nicht mehr. Etwaige weitere Einstellungen in dieser Datei haben keine Wirkung, da sie nicht ausgewertet werden.\nAbhilfe schafft ein\n1/sbin/ifdown --force eth0 2/sbin/ifup --force eth0 in /etc/rc.local. Damit wird zuerst das Interface eth0 heruntergefahren und damit in einen definierten Zustand versetzt. Anschließend wird das Interface wieder hochgefahren und die Einstellungen aus /etc/network/interfaces entsprechend angewendet.\n","link":"https://blog.tausys.de/2014/06/02/initramfs-dropbear-und-ipv6/","section":"posts","tags":["Debian","Dropbear","Initramfs","IPv6","Linux","OSS"],"title":"Initramfs, Dropbear und IPv6"},{"body":"","link":"https://blog.tausys.de/tags/truecrypt/","section":"tags","tags":null,"title":"Truecrypt"},{"body":"Seit gestern findet sich auf der Webseite des beliebten Kryptographieprogramms zur Festplattenverschlüsselung Truecrypt eine Warnung (Update: mittlerweile gibt es die Seite nicht mehr), dass die Software angeblich nicht mehr sicher sei. Ebenso wurde die Software in einer neuen Version veröffentlicht, welche nur noch eine Entschlüsselung der Inhalte zulässt.\nGleichzeitig wurden alle Verweise auf die ursprüngliche Webseite aus der Software, ja selbst die Verweise auf die Homepage in der Wayback-Machine archive.org komplett entfernt.\nGegen einen Hack bzw. ein Defacement der Webseite sprechen, dass die neu veröffentlichte Version 7.2 mit dem selben Schlüssel signiert wurde, mit dem auch die vorherige, voll funktionsfähige Version 7.1a signiert wurde. Auch sprechen die umfangreichen Änderungen im Sourcecode (Diff-Format), die das Anlegen neuer Truecrypt-Volumes unmöglich machen und nur noch das Entschlüsseln, jedoch nicht mehr das Verschlüsseln ermöglichen, gegen einen schnellen Hack. Ein neu eingebauter Trojaner konnte nicht gefunden werden.\nEin im April 2014 durch Croudfunding mit 60.000 US$ finanzierter Audit von Truecrypt förderte im April 2014 bereits bekannte Fehler zu Tage:\nIm April 2014 wurden die Ergebnisse einer kommerziellen Begutachtung der Software veröffentlicht. Die Autoren des Berichts fanden elf Fehler, von denen sie keine als schwer, vier als mittelschwer, vier als leicht und drei in die niedrigste Kategorie „informational“ einstuften. Hinweise auf eine Backdoor wurden nicht gefunden.\nEin weiterer Schritt, der zum Ziel hatte, die Software unter eine etablierte OpenSource-Lizenz zu stellen wurde im Januar 2014 gestartet.\nDies alles lässt viel Raum für Spekulationen. Wie immer, wenn wenige Informationen greifbar sind, sprießen Verschwörungstheorien wie Pilze aus dem Boden. Ohne weiterführende Informationen von den (anonymen) Entwicklern wird sich auch keine befriedigende Antwort finden lassen. Evtl. können die Entwickler aber auch gar keine Antwort geben, was auch meiner favorisierten Theorie entspricht: ihnen wurde ein sogenannter National Security Letter (NSL) überstellt, der sie zu irgendetwas verpflichtet, über das sie anschließend unter Strafandrohung auch nicht reden dürfen. Das wäre in etwa das gleiche Vorgehen, wie es auch der Entwickler von Lavabit, einem Anbieter für verschlüsselte E-Mail-Dienste, wählte. Wäre diese Theorie zutreffend, ist die gewählte Methode, die Anwender vor der Unsicherheit der Software ab jetzt zu warnen, ja sogar die weitere Entwicklung der Software einzustellen ein gangbarer Weg, um die Anwender vor möglicherweise anweisungshalber einzubauenden Hintertüren zu warnen.\nNach all dem ist Folgendes festzustellen:\nTruecrypt in der Version 7.1a ist, bis auf anders lautende Berichte aus dem noch durchzuführenden Audit, sicher. Truecrypt 7.2 sollte nicht installiert werden, da damit nur noch eine Entschlüsselung möglich ist und nicht ausgeschlossen werden kann, dass sich doch noch eine Hintertür in der Software versteckt. Da die Entwickler von Truecrypt bisher anonym geblieben sind, ist es nicht möglich, jetzt irgendwelche Wortmeldungen ernst zu nehmen. Die Entwickler haben leider versäumt oder nicht gewollt, dass Truecrypt jemals unter eine anerkannte Opensource-Lizenz gestellt wird. Das wird sich evtl. auch in Zukunft nicht nachholen lassen. Damit ist dieses geniale Stück Software für die Zukunft verloren. Truecrypt in der Version 7.1a kann nach wie vor aus dem [Heise-Softwareverzeichnis](http://www.heise.de/download/truecrypt.html für Windows, Mac und Linux heruntergeladen werden.\nBild: Poil\n","link":"https://blog.tausys.de/2014/05/29/truecrypt-verschwindet-myterioes/","section":"posts","tags":["Security","Truecrypt"],"title":"Truecrypt verschwindet mysteriös"},{"body":"","link":"https://blog.tausys.de/tags/app/","section":"tags","tags":null,"title":"App"},{"body":"Gestern Abend hat das ZDF den Versuch gestartet, mit einer durchaus interessanten Technologie das jüngere Publikum zu erreichen. Man sollte sich eine App Zusatzinformationen anzeigt.\nLeider war die App dann doch bei vielen nicht in der Lage, die im Film (unbemerkt) ausgestrahlten Audiosteuersignale zu empfangen. Bei mir leider nur bei Lautstärkestufen in Ruhestörungsbereich. Ein netter Versuch, den Secondscreen anzubinden, aber mehr allerdings auch noch nicht. Die App musste dauerhaft laufen, Twitter, FB oder Google+ war für die angesprochene Generation also in dem Moment gar nicht möglich.\nÜber die tolle Möglichkeit, ausserhalb des Fernsehens Zusatzinformationen anzuzeigen konnte leider auch nicht die schwache Storry von App hinwegtäuschen.\nEntsprechende Kommentare lassen sich bei Twitter unter dem Hashtag #appfilm nachlesen.\nBild: IMDB\n","link":"https://blog.tausys.de/2014/05/27/secondscreen-mit-app-im-zdf/","section":"posts","tags":["App","ZDF"],"title":"Secondscreen mit App im ZDF"},{"body":"","link":"https://blog.tausys.de/tags/zdf/","section":"tags","tags":null,"title":"ZDF"},{"body":"","link":"https://blog.tausys.de/tags/blender/","section":"tags","tags":null,"title":"Blender"},{"body":"Es ist immer wieder erstaunlich, welche grandiosen Effekte die Filmstudios hervorzaubern. Mit der Bluescreen-Technik oder auch Greenscreening können Bildteile am Computer ersetzt werden. Hier ein kleines Beispiel:\nEinen sehr interessanten Einblick bietet auch folgendes Video:\nZ.B. Magix und Blender beherrschen das Chroma-Key-Verfahren, mit dem auch Heimanwender Filmszenen (natürlich mit entsprechendem Aufwand) nachbearbeiten können.\n","link":"https://blog.tausys.de/2014/05/06/bluescreen-technik-in-film-und-fernsehen/","section":"posts","tags":["Blender","Magix","Video"],"title":"Bluescreen-Technik in Film und Fernsehen"},{"body":"","link":"https://blog.tausys.de/tags/magix/","section":"tags","tags":null,"title":"Magix"},{"body":"","link":"https://blog.tausys.de/tags/keyboard/","section":"tags","tags":null,"title":"Keyboard"},{"body":"Mit den Tastenkombinationen Strg-Alt-F1 bis Strg-Alt-F6 kann man unter Xserver auf klassische Linux-Konsolen umschalten. Was aber nun, wenn man diese Konsolen gar nicht benötigt, ja sogar diese Tastenkombinationen in anderen Programmen braucht?\nIn der Man-Page von xorg.conf ist die Option DontVTSwitch aufgeführt, die genau das bewirken soll.\nThis disallows the use of the Ctrl+Alt+Fn sequence (where Fn refers to one of the numbered function keys). That sequence is normally used to switch to another \u0026quot;virtual terminal\u0026quot; on operating systems that have this feature. When this option is enabled, that key sequence has no special meaning and is passed to clients. Default: off.\nNach dem Setzen der Option und Neustarten des Xservers schalten die Tastenkombinationen nicht mehr auf die virtuellen Konsolen um. Leider aber werden die Tastenkombinationen auch nicht an andere Programme weitergereicht. Die Dokumentation zu DontVTSwitch ist fehlerhaft.\nAbhilfe schafft eine andere Option: Option \u0026quot;XKbOptions\u0026quot; \u0026quot;srvrkeys:none\u0026quot;\nMit folgender Sektion in der xorg.conf sind die oben genannten Tastenkombinationen auch für Programme verfügbar.\n1Section \u0026#34;InputClass\u0026#34; 2 Identifier \u0026#34;keyboard defaults\u0026#34; 3 MatchIsKeyboard \u0026#34;on\u0026#34; 4 Option \u0026#34;XKbOptions\u0026#34; \u0026#34;srvrkeys:none\u0026#34; 5EndSection Quelle\n","link":"https://blog.tausys.de/2014/05/01/virtuelle-konsolen-unter-x-abschalten/","section":"posts","tags":["Keyboard","Linux","OSS","X"],"title":"Virtuelle Konsolen unter X abschalten"},{"body":"","link":"https://blog.tausys.de/tags/x/","section":"tags","tags":null,"title":"X"},{"body":"","link":"https://blog.tausys.de/tags/maus/","section":"tags","tags":null,"title":"Maus"},{"body":" Seit ein paar Jahren nutze ich die Microsoft Wireless Mouse 5000 unter Linux, besser gesagt unter Linux Mint Cinnamon, also Gnome. In einem früheren Beitrag habe ich schon verschiedene Einstellungen für diese Maus vorgestellt, die das Surfen und E-Mail-Lesen angenehmer machen.\nEine neues \u0026quot;Feature\u0026quot; habe ich nun für die Benutzer von Dualboot-Systemen gefunden, welche ab und zu auch mal Windows starten. Wenn man ein Mal Windows gebootet hat und anschließend wieder zu Linux wechselt, ist die Maus rasend schnell. Viel zu schnell! Leider scheint das ein Bug im Treiber zu sein, der die Maus nicht richtig initialisiert.\nAbhilfe: kurz den Receiver der Maus ab- und wieder anstecken.\nSo einfach kann's sein.\n","link":"https://blog.tausys.de/2014/04/28/ms-wireless-mouse-unter-linux/","section":"posts","tags":["Gnome","Linux","Maus","OSS"],"title":"MS Wireless Mouse unter Linux"},{"body":"","link":"https://blog.tausys.de/tags/gnome15/","section":"tags","tags":null,"title":"Gnome15"},{"body":"","link":"https://blog.tausys.de/tags/logitech/","section":"tags","tags":null,"title":"Logitech"},{"body":"Seit kurzem habe ich mein ausgedientes Keyboard, ein Logitech G110, gegen ein aktuelles Modell, ein Logitech G19s, ausgetauscht. Früher habe ich mich nicht um die Ansteuerung der Sondertasten unter Linux gekümmert. Das neue Keyboard mit seinem Display brachte aber den Wunsch wieder hervor, doch einmal zu probieren, was alles mit diesem Keyboard unter Linux möglich ist. Die Software des Herstellers unter Windows hatte ich bereits gesehen und war gespannt, was die Entwickler unter Linux gezaubert haben.\nFür die Ansteuerung der Logitech-Tastaturen unter Linux existiert ein eigenes Projekt: Gnome15. Seit kurzem hat das Projekt auch wieder einen aktiven Maintainer. Auf der Webseite des Projekts ist verständlich beschrieben, wie die Pakete unter verschiedenen Linux-Distributionen installiert werden können. Bei mir verlief die Installation unter Linux Mint 16 problemlos: Paketquelle hinzufügen, Paketliste aktualisieren, Paket installieren und Rechner neu starten. Kurz nach dem Anmelden ging die Beleuchtung der Tastatur an und das Display zeigte erste Informationen.\nDie weitere Konfiguration erfolgt anschließend mit einem zentralen Programm namens \u0026quot;Logitech G Keyboard Configuration\u0026quot;, welches sich bei der Installation automatisch ins Gnome-Menü eingetragen hat.\nWer mag, kann die Pluginausgaben nacheinander auf dem Display des Keyboards anzeigen lassen. Hier eine kleine Auswahl:\nUnbedingt ausprobieren solltet ihr auch das Plugin Impulse15 mit aktiviertem Discomodus. Ich jedenfalls bin fasziniert!\n","link":"https://blog.tausys.de/2014/04/15/logitech-g19s-unter-linux/","section":"posts","tags":["Gnome15","Linux","Logitech","Mint","OSS"],"title":"Logitech G19s unter Linux"},{"body":"","link":"https://blog.tausys.de/tags/mint/","section":"tags","tags":null,"title":"Mint"},{"body":"","link":"https://blog.tausys.de/tags/alix/","section":"tags","tags":null,"title":"ALIX"},{"body":"Schon lange hatte ich den Wunsch, mir einen eigenen Router zu basteln. Mein bisheriger Router bekommt leider vom Hersteller keine Updates mehr. Schon IPv6 ist mit meinem alten Router nicht möglich. Was also tun? Einen ausgemusterten Rechner als Router hinstellen? Zu laut, zu groß, zu viel Stromverbrauch. Was also tun? Ein embedded System musste also her. Meine Wahl fiel auf das ALIX 2D13 Board mit einer 4 GB CF-Karte. Auch das OS war schnell gefunden: genau für diese Hardwarekonstellation gibt es vorgefertigte pfSense-Images (ein angepasstes FreeBSD), welches alle meine Vorgaben erfüllte. Bei der Hardware kamen noch eine WLAN-Karte nebst der notwendigen Antennen und Verbindungskabel dazu. Für die Kommunikation über die serielle Schnittstelle (für den Fall der Fälle) war noch ein Serial-to-USB-Adapterkabel notwendig.\nDie Einrichtung von pfSense war im Anschluß ein Kinderspiel. Die Internetverbindung stand sofort und die anderen Geräte im Netzwerk waren erreichbar.\nAn der Konfiguration für T-Entertain habe ich dann noch zwei Tage geknobelt. Ein ausführlicher Bericht folgt.\nUpdate vom 19.10.2014: pfSense für Telekom-IPTV einrichten\n","link":"https://blog.tausys.de/2014/03/24/router-im-eigenbau-alix-2d13-pfsense/","section":"posts","tags":["ALIX","pfSense","Router"],"title":"Router im Eigenbau – ALIX 2D13 + pfSense"},{"body":"Ab und zu findet man im weiten Netz auch Konfigurationen, in denen für den MX-Record einer Domain ein CNAME geliefert wird. RFC2181 verbietet ausdrücklich, für den MX-Record einen CNAME zu verwenden:\n110.3. MX and NS records 2 3 The domain name used as the value of a NS resource record, or part of 4 the value of a MX resource record must not be an alias. Not only is 5 the specification clear on this point, but using an alias in either 6 of these positions neither works as well as might be hoped, nor well 7 fulfills the ambition that may have led to this approach. This 8 domain name must have as its value one or more address records. 9 Currently those will be A records, however in the future other record 10 types giving addressing information may be acceptable. It can also 11 have other RRs, but never a CNAME RR. Es ist also ausdrücklich verboten, auf eine MX-Anfrage einen CNAME-Record zu liefern. Ganz praktisch: der PHP-Mailer von 1\u0026amp;1 verschickt an CNAME-Records bei einer MX-Anfrage keine E-Mails, sondern deren Mailsystem lehnt dann den Versand der E-Mail ab.\n","link":"https://blog.tausys.de/2014/03/24/der-mx-record-darf-kein-cname-sein/","section":"posts","tags":["DNS","E-Mail","OSS"],"title":"Der MX-Record darf kein CNAME sein"},{"body":"","link":"https://blog.tausys.de/tags/horde/","section":"tags","tags":null,"title":"Horde"},{"body":"Die Horde-Version 5.1.3 reagiert auf Bots (GoogleBot, Bing usw.) allergisch. Folgende Einträge sammeln sich im Log:\n1Mar 3 09:37:29 root HORDE: User is not authorized for horde [pid 3926 on line 306 of \u0026#34;/usr/share/php/Horde/Registry.php\u0026#34;] 2Mar 3 09:37:30 root HORDE: User is not authorized for horde [pid 30824 on line 306 of \u0026#34;/usr/share/php/Horde/Registry.php\u0026#34;] 3Mar 3 09:58:58 root HORDE: User is not authorized for horde [pid 3926 on line 306 of \u0026#34;/usr/share/php/Horde/Registry.php\u0026#34;] Durch eine entsprechende robots.txt im Hauptverzeichnis der Horde-Installation können die Bots angewiesen werden, die Webseite nicht zu indizieren:\n1User-agent: * 2Disallow: / ","link":"https://blog.tausys.de/2014/03/03/horde-user-is-not-authorized-for-horde/","section":"posts","tags":["Horde"],"title":"HORDE: User is not authorized for horde"},{"body":"Das Smartphone Moto G von Motorola kann über die USB-Schnittstelle auf zwei unterschiedliche Arten mit dem PC kommunizieren. Standardmäßig ist Mediengerät (MTP) eingestellt. Der zweite Modus ist Kamera (PTP), mit dem das Gerät sofort unter Linux Mint 16 erkannt wird, aber leider nur Zugriff auf bestimmte Ordner erlaubt.\nUm auch den MTP-Modus nutzen zu können, muß das Moto G durch Vendor-ID und Product-ID erst einmal dem udev-Prozess bekannt gemacht werden. Dazu editiert man (als root) die Datei /lib/udev/rules.d/69-libmtp.rules und fügt dort zwei Zeilen an passender Stelle, evtl. nach den bereits dort eingetragenen Motorola-Geräten ein:\n1# Motorola Moto G (MTP+?) 2ATTR{idVendor}==\u0026#34;22b8\u0026#34;, ATTR{idProduct}==\u0026#34;2e82\u0026#34;, SYMLINK+=\u0026#34;libmtp-%k\u0026#34;, MODE=\u0026#34;660\u0026#34;, GROUP=\u0026#34;audio\u0026#34;, ENV{ID_MTP_DEVICE}=\u0026#34;1\u0026#34;, ENV{ID_MEDIA_PLAYER}=\u0026#34;1\u0026#34; Anschließend wird udev neu gestartet.\nservice udev restart\nNun kann das Smartphone angesteckt werden und im MTP-Modus sollte es sofort im Dateimanager sichtbar sein.\nUpdate vom 08.01.2015: Ab Mint 17 wird das Moto G (2nd Edition) automatisch erkannt. Für Mint 13 LTS ist leider keine Lösung bekannt. (Danke an Michael)\nUpdate vom 08.06.2015: Für das Moto G Modell 2014 ersetzt man in obiger Beschreibung ATTR{idProduct}==”2e82″ durch ATTR{idProduct}==”2e76″, dann wird auch dieses Smartphone durch udev erkannt. (Danke an Stefan)\n","link":"https://blog.tausys.de/2014/01/31/linux-mint-16-und-moto-g-mtp/","section":"posts","tags":["Android","Linux","Mint","MotoG","Motorola","MTP","OSS"],"title":"Linux Mint 16 und Moto G MTP"},{"body":"","link":"https://blog.tausys.de/tags/motog/","section":"tags","tags":null,"title":"MotoG"},{"body":"","link":"https://blog.tausys.de/tags/mtp/","section":"tags","tags":null,"title":"MTP"},{"body":"","link":"https://blog.tausys.de/tags/gesetze/","section":"tags","tags":null,"title":"Gesetze"},{"body":"Viele dürften über die Vorgänge um die Abmahnungen rund um RedTube informiert und einige sehr verunsichert sein. Ist Streaming nun legal oder nicht? Allgemein kann man wohl sagen, dass das Anschauen oder Anhören eines Streams keine Konsequenzen hat, auch wenn das in einer rechtlichen Grauzone liegt. Vielmehr braucht der Bereitsteller des Streams entsprechende Rechte oder Lizenzen, um die Werke überhaupt streamen zu können. Hat er die nicht, so ist das illegal. Wie aber nun soll ich erkennen, ob der Stream vom Anbieter lizensiert ist oder nicht?\nMit Werken, die unter einer entsprechenden CreativeCommons-Lizenz stehen hat man damit erstmal keine Probleme, außer der GEMA vielleicht, aber das ist ein anderes Thema.\nFalling More In Love\rHier gehts zum Original: Falling More In Love, written by Sage (Celestial Grounds) / Produced by Jeremy Allred (Cufool)\n","link":"https://blog.tausys.de/2014/01/30/streaming-nun-legal/","section":"posts","tags":["Gesetze","Streaming"],"title":"Streaming nun legal?"},{"body":"","link":"https://blog.tausys.de/tags/avidemux/","section":"tags","tags":null,"title":"Avidemux"},{"body":"Zum schnellen Bearbeiten von Videos (Bildschirmmitschnitten oder anderen Sourcen) unter Linux wird oftmals Avidemux eingesetzt. Das Programm kann die am häufigsten verwendeten Video-Codecs lesen und auch Videos in den entsprechenden Formaten schreiben.\nBearbeiten von großformatigen Videos Beim Bearbeiten von Bildschirmaufnahmen trifft man unmittelbar auf das Problem, dass Avidemux das Video in voller Auflösung anzeigt und dieses natürlich dann größer als der Bildschirmbereich ist. Da der Fensterrahmen von Avidemux sich nicht kleiner als das angezeigte Video ziehen läßt, erreicht man einige Steuerelemente nicht. Einzige Abhilfe: im Menü Ansicht die Größe auf 1:2 oder noch kleiner setzen.\nFalsche Farben beim Speichern des Videos Bei einigen Videos kann es vorkommen, dass Avidemux statt Blau Orange anzeigt. Da das Problem bekannt ist, wurde bereits ein entsprechender Filter in Avidemux integriert. Unter dem Menüpunkt Video -\u0026gt; Filter fügt man nach der Auswahl der Kategorie Farben den Filter U und V vertauschen hinzu.\nAvidemux - Filter U und V tauschen\n","link":"https://blog.tausys.de/2014/01/30/avidemux-hohe-aufloesung-und-falsche-farben/","section":"posts","tags":["Avidemux","OSS","Video"],"title":"Avidemux: hohe Auflösung und falsche Farben"},{"body":"Mit älteren Mint-Versionen wurde das Programm alacarte zum Bearbeiten des Menüs vorinstalliert. Mit Linux Mint 16 Cinnamon ist das nicht mehr notwendig. Cinnamon bringt seinen eigenen Menüeditor mit.\nAufgerufen wird der Menüeditor durch einen Rechtsklick auf das Menü...\nLinux Mint 16 - Menue anpassen\n... dem Anklicken von Einrichten... ...\nLinux Mint 16 - Menueeinstellungen\n... und dem Klick auf Den Menübearbeiter öffnen.\nLinux Mint 16 - Menueeditor\nDie Oberfläche des Menüeditors ist intuitiv. In den einzelnen Kategorieen können neue Einträge erstellt, bearbeitet oder gelöscht werden. Außerdem können Menüeinträge ohne sie zu löschen ausgeblendet werden.\nSollte man sich einmal komplett mit der Menükonfiguration vertan haben, kann hier auch das Menü auf die Voreinstellung zurückgesetzt werden.\n","link":"https://blog.tausys.de/2014/01/23/linux-mint-16-menue-editieren/","section":"posts","tags":["Linux","Menue","Mint","OSS"],"title":"Linux Mint 16 – Menü editieren"},{"body":"","link":"https://blog.tausys.de/tags/menue/","section":"tags","tags":null,"title":"Menue"},{"body":" Rundum-Service\nGefunden in der Fränkischen Schweiz.\n","link":"https://blog.tausys.de/2013/12/17/rundum-service/","section":"fundstuecke","tags":null,"title":"Rundum-Service"},{"body":" Für Nutzer von Android 4.3 oder höher steht seit kurzem eine App zur Verfügung, mit der das bereits in Android enthaltene Modul zur Verwaltung der Anwendungsberechtigungen angesteuert werden kann: AppOps. Die App kann Berechtigungen anzeigen und listet die Apps auf, die eine Funktion (z.B. \u0026quot;Kontakte lesen\u0026quot;) zuletzt aufgerufen haben.\nMit AppOps können bei der Installation einer App vergebene Rechte auch wieder entzogen werden. So ist es z.B. möglich, einer App das Recht \u0026quot;Vibrieren\u0026quot; wieder zu entziehen. Sehr nützlich, wenn die App das in den eigenen Einstellungen nicht zulässt.\nNach dem Abschalten von Berechtigungen muss natürlich pro App getestet werden, ob sie denn überhaupt noch läuft. Im Zweifelsfall sollte überlegt werden, ob nicht auf eine ähnliche App eines anderen Entwicklers ausgewichen werden kann.\nEin weiteres Highlight ist, dass AppOps die Berechtigungen bearbeiten kann ohne dass man sein Smartphone gerootet haben muss. Die App kann im Google-PlayStore heruntergeladen werden.\nUpdate vom 17.08.2014: Leider wurde AppOps aus Android 4.4 komplett entfernt. Pläne, dass diese Schnittstelle wieder eingebaut werden soll, sind bisher nicht bekannt. Daher haben wohl auch die Entwickler die obige App mittlerweile aus dem Playstore entfernt, da sie ja nun keine Funktion mehr hat.\n","link":"https://blog.tausys.de/2013/12/12/android-datensammelwut-eingrenzen/","section":"posts","tags":["Android","Privacy"],"title":"Android: Datensammelwut eingrenzen"},{"body":"","link":"https://blog.tausys.de/tags/privacy/","section":"tags","tags":null,"title":"Privacy"},{"body":"","link":"https://blog.tausys.de/tags/fibu/","section":"tags","tags":null,"title":"FIBU"},{"body":"","link":"https://blog.tausys.de/tags/microdat/","section":"tags","tags":null,"title":"Microdat"},{"body":"Am Markt tummelt sich eine fast unüberschaubare Anzahl an professionellen Programmen zur Finanzbuchhaltung und solchen, die es gerne sein möchten. Eine Auswahl des passenden Programms ist schwierig und oft mit dem Durchstöbern von aufwändig gestaltetem Werbematerial verbunden. Eine Entscheidung über die Eignung der Software entsprechend der eigenenen Anforderungen kann meistens erst nach dem Kauf erfolgen. Der Zugang zu Finanzbuchhaltungsprogrammen des Marktführers ist für Betriebe gar erst durch den eigenen Steuerberater möglich, selbständige Buchführungshelfer bleiben aussen vor.\nDiese Marktlücke füllt die Firma microdat GmbH mit ihrer über einen Zeitraum von zwei Monaten kostenfrei zu testenden Finanzbuchhaltung \u0026quot;rodat-FIBU\u0026quot;. Die Software kann vorab heruntergeladen und ausprobiert werden. Die Installation der Finanzbuchhaltung bedarf keines Insiderwissens über die Funktionsweise eines Computers, sie ist in wenigen Schritten vom Anwender selbst durchgeführt. Anschließend kann sofort mit dem Einrichten eines ersten Testmandanten und den ersten Buchungen begonnen werden. Die zum Test kostenlos zur Verfügung gestellte Version unterscheidet sich dabei im Funktionsumfang nicht von der kostenpflichtigen Variante. Selbst die in der Testphase eingerichteten Mandaten und Buchungen können nach Testende nahtlos weiterverwendet werden.\nDa rodat-FIBU modular aufgebaut ist, kann ein Softwarepaket vom Anwender genau nach seinen Anforderungen geschnürt werden. Die zu rodat-FIBU zur Verfügung stehenden Zusatzmodule sind BILANZ, ANLAG (Anlagenbuchhaltung), KOST (Kostenrechnung) und BELEG (Einlesen von digitalen Bankbelegen). In der Testphase sind in der Downloadversion alle Module freigeschaltet. Es kann sich so ein kompletter Überblick über die Leistungsfähigkeit und über die später benötigten Module verschafft werden.\nNach der Testphase hat der Anwender die Wahl zwischen einer Nutzungsabrechnung nach Buchungs- und Auswertungsvolumen, eines monatlich kündbaren Software-Mietvertrages oder dem Kauf der Software.\nrodat-FIBU wurde von einer Wirtschaftsprüfungsgesellschaft auf die Beachtung der Grundsätze ordnungsmäßiger DV-gestützter Buchführungssysteme (GoBS) geprüft und ein Testat erteilt. Das Testat im Wortlaut ist auf der Webseite des Herstellers einsehbar.\n","link":"https://blog.tausys.de/2013/11/13/software-professionelle-finanzbuchhaltung/","section":"posts","tags":["FIBU","microdat"],"title":"Software: Professionelle Finanzbuchhaltung"},{"body":"Sollte im Android Device Manager die Meldung erscheinen, dass das Android-Gerät nicht lokalisiert werden konnte, so kann eine Ursache das Google-Konto mit einer \u0026quot;alten\u0026quot; googlemail.com-Adresse sein.\nZur Behebung dieses Fehlers muss zuerst die Mail-Adresse in den Einstellungen von Google-Mail auf gmail.com umgestellt werden. Anschließend löscht man das alte Konto vom Gerät und fügt das neue hinzu. Danach funktioniert die Ortungsfunktion des Android Device Managers.\n","link":"https://blog.tausys.de/2013/11/08/android-device-manager-geraet-kann-nicht-gefunden-werden/","section":"posts","tags":["Android","Security"],"title":"Android Device Manager: Gerät kann nicht gefunden werden"},{"body":"","link":"https://blog.tausys.de/tags/startcom/","section":"tags","tags":null,"title":"StartCom"},{"body":"","link":"https://blog.tausys.de/tags/startssl/","section":"tags","tags":null,"title":"StartSSL"},{"body":"Einige nutzen sicher die Möglichkeit, von StartCom kostenlose SSL-Zertifikate für den eigenen Webserver zu erhalten. Diese kostenlosen Zertifikate sind ein Jahr gültig und müssen anschließend erneuert werden. Beim Einspielen des erneuerten Zertifikats ist jedoch Vorsicht geboten: Firefox fragt standardmäßig den im Zertifikat angegebenen OCSP-Server ab, das neu erstellte Zertifikat ist im OCSP-Server von StartCom aber noch nicht bekannt. Firefox-User erhalten eine Fehlermeldung mit dem Code: sec_error_ocsp_unknown_cert.\nOCSP-Server Fehler Firefox\nNach bisherigen Erkenntnissen dauert es ca. 6 bis 12 Stunden, bis das Zertifikat beim OCSP-Server bekannt ist. Man sollte also vor dem Einspielen des neuen Zertifikats auf den Webserver eine gewisse Zeitspanne warten.\nAlternativ kann die OCSP-Überprüfung in Firefox auch vorübergehend deaktiviert werden. Hier sollte man aber wirklich wissen, was man tut. Die Einstellung ist unter dem Tab Zertifikate bei Validierung zu finden:\nFirefox OCSP Einstellungen\n","link":"https://blog.tausys.de/2013/10/27/startssl-startcom-zertifikate-und-ocsp-server-fehler/","section":"posts","tags":["Firefox","SSL","StartCom","StartSSL","Zertifikat"],"title":"StartSSL / StartCom Zertifikate und OCSP-Server Fehler"},{"body":"","link":"https://blog.tausys.de/tags/luks/","section":"tags","tags":null,"title":"LUKS"},{"body":"Beim Mieten eines Root- oder vServers von einem Hoster oder, wenn der eigene Server bei einem Hoster untergestellt werden soll (Co-Location) hat man ein Problem: der Server ist nicht unter eigener Kontrolle, Mitarbeiter des Hosters können darauf zugreifen, im schlimmsten Fall Daten ändern oder kopieren. Bei vServern ist dieser Angriff releativ einfach, da die gängigen Systeme problemlos einen Snapshot der vServer-Festplatten erstellen können, die dann von bösen Buben in Ruhe ausgewertet werden können. Bei Root-Servern wird meistens ein vom Hoster geliefertes Kernelimage installiert, dessen Quellcode nicht offenliegt, die gesamte Funktionalität also nicht bekannt ist und somit auch z.B. Keylogger enthalten könnte.\nLinux hat auch für diese Problemefälle eine Lösung: verschlüsselte Partitionen. Problematisch ist, dass das zur Entsperrung der Partitionen benötigte Passwort beim Bootvorgang eingegeben werden muß. In einer Schritt-für-Schritt-Anleitung beschreibt Falk Husemanns, wie ein beim Hoster stehender Server von Grund auf mit einem Standardkernel und verschlüsselten Partitionen eingerichtet werden kann. Sollte der Server einmal gebootet werden müssen, kann bei dieser Lösung das Passwort zum Entsperren in einer SSH-Shell eingegeben werden.\nEbenfalls sind im Artikel weitere Werzeuge aufgelistet, mit denen sich Angriffe durch den Hoster erkennen lassen.\nBTW: Dieser Text wird von einem Host geliefert, der nach obiger Anleitung eingerichtet wurde.\n","link":"https://blog.tausys.de/2013/10/14/verschluesselten-root-oder-vserver-einrichten/","section":"posts","tags":["Linux","LUKS","OSS","SSH"],"title":"Verschlüsselten Root- oder vServer einrichten"},{"body":"Was ich nicht alles so bestelle: eine recht teure Canon-Kamera zusammen mit einem Profi-Objektiv. Das ich das Ganze im \u0026quot;Junli\u0026quot; bestellt haben soll, \u0026quot;inkl. MwSt\u0026quot; nochmal auf den Preis draufgerechnet wird und die AGBs etwas sehr vertraulich zur Kenntnis genommen wurden, fällt gar nicht auf. Natürlich führt keiner der gesetzten Links auch nur annähernd in die Nähe von Amazon.\nSpam Amazon\n","link":"https://blog.tausys.de/2013/10/13/warnung-spam-bestellbestaetigung-von-amazon/","section":"posts","tags":["Spam"],"title":"Warnung: Spam-Bestellbestätigung von Amazon"},{"body":"Wer am PC ab und zu DVDs wiedergibt und nicht nur sogenannte Brüllwürfel sondern Aktivlautsprecher, 5.1-Anlagen oder mehr sein Eigen nennt kennt das Problem: bei DVDs mit sehr dynamischem Audiopegel ist man spät abends mehr oder weniger dauernd am Regeln der Lautstärke oder man verärgert vielleicht einen Nachbarn. Viele DVD-Player haben dafür einen speziellen Nachtmodus. Dabei handelt es sich um einen Dynamic-Kompressor, der sich auch in VLC aktivieren lässt. Die Einstellungen des Dynamic-Kompressors in VLC erreicht man über das Menü Extras -\u0026gt; Effekte und Filter und dann über die Reiter Audioeffekte -\u0026gt; Compressor. Folgende Einstellungen sollten für eine einigermaßen gleichbleibende Lautstärke in der Nacht sorgen:\nViel Spaß beim nächsten Film! Ich würde mich freuen, wenn Du hier in einem Kommentar den Titel des Films hinterläßt, den Du gerade schaust.\n","link":"https://blog.tausys.de/2013/09/30/vlc-nachtmodus-mit-dynamic-range-compressor/","section":"posts","tags":["Linux","OSS","Video","VLC"],"title":"VLC: Nachtmodus mit Dynamic Range Compressor"},{"body":"","link":"https://blog.tausys.de/tags/mplayer/","section":"tags","tags":null,"title":"Mplayer"},{"body":"Mit mplayer ist es möglich, Videos oder Videostreams im Linux-Terminal auszugeben. Mit folgendem Kommando wird die Ausgabe gestartet:\nmplayer -vo caca video.mov\nDer Parameter -vo bestimmt, welcher Ausgabecodec verwendet werden soll. caca erzeugt eine farbige ASCII-Art-Ausgabe in einem Terminalfenster. Alternativ kann statt caca auch aa verwendet werden, welches eine monochrome Ausgabe erzeugt.\nUnd so sieht das Ganze aus (die Bildstörungen rühren leider von der Aufnahmesoftware her und sind in der Ausgabe nicht zu sehen):\nGeeky!\n","link":"https://blog.tausys.de/2013/09/28/videos-im-linux-terminal-ansehen/","section":"posts","tags":["Linux","Mplayer","OSS","Video"],"title":"Videos im Linux Terminal ansehen"},{"body":"Was heute im Spamfolder landete ist schon eine Erwähnung wert. Keine \u0026quot;Jetzt kaufen\u0026quot; oder sonstige Angebote zur genitalen Vergrößerung. Nein, ein ziemlich chatty Text mit sogar angehm zu lesender Zeilenlänge:\n1BABE... i guess your not getting any of my email huh? ive been 2tryign to email u so many times but this dam laptop is such a piece of 3garbage and keeps freezing.. anyways how u been? 4 5In case u dont know who this is its ME Adriana.. we used to chat a bit on facebook and then 6I think u deleted me haha.. anyways guess what... I got 2 things to 7tell u.. both good news.. 1) im single now.. yup me and my bf broke up 8about 3 months ago... and 2) guess where im moving? RIGHT EFFING NEAR 9U.. lol... ur actually the only person im gonna know there.. well 3 10cousins too but i cant chill with them lol.. 11 12I remember when we chatted u told me u thought i was cute and u wanted to chill so now we finally 13can HAHA! im kinda scared to move.. im hoping this email addy is still 14the one you use and u can chat with me ebfore i get there.. maybe even 15help me move my shit in...are u still on facebook? i cudnt find ui was 16soo confused...anyways im gonna need someone to show me the town and 17take me out so u better be around bebe... 18 19we only chatted a couple times but i remember thinking to myself i wanted to get ot know u 20better when i was single..a nd i thoguth u were cute too but cudnt 21tell u cause i wasnt single lol...ok so more info about me.. well im 2223.. virgo.. love the outdoors and love to socialize, go out for 23drinks, restaurants, movies etc.. travel.. i have a lil kitty named 24BOO and i luv her to death... uhhh oh im a super horny gurl too but 25every gurl is they just wont admit it. so ilove watching p0rn and all 26that.. love sex etc blah blah blah...who doesnt.. 27 28I really hope we get a chance to chat for a bit either online or on the fone before i get 29there enxt week.. i hope u remmeber me and still wanna chill and arent 30married yet lol.. OH YA also.. i need to find a job when i get there.. 31 32do u have any hookups or know anybody hiring? id LOVE to work in a bar 33or osmehting like that...really anythgin cause my current job is fun 34and all.. and technically i CUD keep doign it but i want a change.. i 35currently work from home and well thats cool but i need ot be out 36meeting people.. oh wait. i dont think i ever actually told u what i 37did? hmm shud i......???? ok WELLLL... and dont get all weirded out 38on me.. i work on a webcam chat community site and i get paid to chat 39with people and get naked HHAHA... BOMB right ? I KNOW.. like i 40figure iim horny anyways why not get paid to chat with people and play 41with myself heheh...anyways i hope u dont look down on that and NO 42THATS NOT WHY IM CONTACTING U RELAX URSELF lol... i actually need help 43once i move and i remembered u live there so im reaching out....like i 44said before this computer is a complete piece of CRAP and freezes NON 45STOP.. ive tried ot send this email to u maybe 3 times already and im 46hopign this time i can hit SEND before i run into trouble lol.. 47 48ANYWAYS.. heres the deal....every month natalie (my boss) gives each 49of us 3 VIP codes to give out to whoever we want.. so with this code u 50can lgoin to watch me at work for free and dont have to pay like 51everyone else... the only way i can give u one of the codes (so we can 52chat) is if you absolutey DO NOT give it out to anyone else and u ONLY 53USE IT FOR URSELF... i only get 3 a month and she gets pissed if more 54than 3 people use them so DONT SHARE IT MISTER... i figured u cud 55always email me back instead but my email account doesnt even let me 56login half the time.. so the bets palce ot chat me is my chat room... 57 58if theres anyone else logged in when u sign in ill boot them out.. but 59remember DONT SHARE THIS PASSWORD PLEASE BABE IM BEGGING U.. I TRUST 60U... im online most of the day now to try and save money for my move.. 61also since im in such a huge debt already form my student loan I 62really thingk we need to chat before i get there and make sure u evern 63remember me hahha.. anyways ive rambled on and on now and ur probably 64soooo annnoyed with me so ill stop now.. im gonna go start work.. i 65really hope u come chat me. it wud make my day and releive a lot of my 66stress about the move... REALLY i mean that....anyways once i see u in 67insdie ill shoot u myc ell number and u can gimme yours.. if u dont 68 69wanna come chat i understand but its really the only palce to find me 70now days.. if u email me abck ill probably get it once i get there 71after my internet is setup so about 2-3 weeks fomr now.. but im hopign 72to see u in my chat room.. rmemeber its 100% free with this code im 73gonna give u.. just DONT GIVE IT OUT OR ILL KICK U IN THE BALLS 74INSTEAD OF LICK U IN THE BALLS WHEN IS EE U hahahahha...k babe im out 75for now... chat ya soon.. kisses xoxo Adriana Den Link am Schluß hab ich mal weggelassen. Obwohl recht nett hats der Spamfilter doch aussortiert.\n","link":"https://blog.tausys.de/2013/09/25/spam-like-facebook-chatterbox/","section":"posts","tags":["Spam"],"title":"Spam like Facebook Chatterbox"},{"body":"Seit der Einführung der neue Google-Kalender-App gibt es unter Android ein Problem: Erinnerungen für Termine werden auf dem Smartphone sowohl von der Stock-Kalender-App als auch von der neuen Google-Kalender-App generiert. Man bekommt jede Erinnerung zweifach. Ohne das Smartphone gerootet zu haben läßt sich die Stock-Kalender-App auch nicht deaktivieren.\nDer einzige Weg ist, die Benachrichtigungen in der Stock-Kalender-App zu deaktivieren. Und hier ist auch schon der erste Stolperstein in der App eingebaut: um alle Benachrichtigungen zu deaktivieren, muss zuerst die Option Alle Kalender angehakt werden und erst dann die Option Benachrichtigungen \u0026amp; Hinweis auf Aus gestellt werden.\nAndroid Stock-Kalender-App Einstellungen\nAnschließend synchronisiert sich die fest installierte Kalender-App zwar weiterhin mit, es wird jedoch nur noch eine Erinnerung durch die neue Google-Kalender-App generiert.\n","link":"https://blog.tausys.de/2013/09/17/android-doppelte-kalender-benachrichtigungen-verhindern/","section":"posts","tags":["Android","Kalender"],"title":"Android: Doppelte Kalender-Benachrichtigungen verhindern"},{"body":"","link":"https://blog.tausys.de/tags/kalender/","section":"tags","tags":null,"title":"Kalender"},{"body":"Die wohl schönste Melodie aus Star Trek TNG hier in der der Originalfassung (die Langfassung findet sich ganz am Ende dieses Beitrags):\nDas Sinfonische Blasorchester Wedel ließ sich durch diese kurze Sequenz zu einer kompletten Komposition inspirieren:\nAuch die Stadtkapelle Landau spielte das Lied in einer ihrer Aufführungen. Nebenbei bemerkt, trägt der Kapellmeister eine an Star Trek TNG erinnernde Uniform.\nDie Langfassung des sehr schönen Liedes ist in folgendem Zusammenschnitt einer Folge von Star Trek TNG (die ich zugegebenermaßen gar nicht kenne) zu finden:\nViel Spaß beim Anhören!\n","link":"https://blog.tausys.de/2013/08/13/star-trek-the-inner-light/","section":"posts","tags":["StarTrek"],"title":"Star Trek: The Inner Light"},{"body":"","link":"https://blog.tausys.de/tags/startrek/","section":"tags","tags":null,"title":"StarTrek"},{"body":"Da das Thema der Sicherheit der eigenen Daten im Netz wieder in aller Munde ist, wollte ich eigentlich einen kleinen Teil dazu beitragen und einen Artikel über das Verschlüsseln von E-Mail mit Hilfe des Thunderbird AddOns Enigmail und GnuPG schreiben. Vor kurzem stieß ich jedoch auf einen Artikel, der die Grundlagen, das Wie und Warum komplett und exakt erklärt. Der Artikel ist so nachvollziehbar geschrieben, dass auch Anwender mit wenig Computer-Kenntnissen die Anleitung sofort umsetzen können. Einer verschlüsselten Kommunikation per E-Mail steht danach nichts mehr im Wege.\n","link":"https://blog.tausys.de/2013/07/21/e-mail-verschluesselung-leicht-gemacht/","section":"posts","tags":["GPG","PGP","Security","Verschlüsselung","Windows"],"title":"E-Mail-Verschlüsselung leicht gemacht"},{"body":"","link":"https://blog.tausys.de/tags/gpg/","section":"tags","tags":null,"title":"GPG"},{"body":"","link":"https://blog.tausys.de/tags/pgp/","section":"tags","tags":null,"title":"PGP"},{"body":"Nach der Installation des Desklets AccuWeather ist in den Einstellungen zu diesem Desklet der Standort anzupassen, zu dem das aktuelle Wetter angezeigt werden soll.\nDesklet AccuWeather Einstellungen\nDie (kodiert) einzutragende Location kann mit Hilfe folgender URL ermittelt werden:\nhttp://forecastfox.accuweather.com/adcbin/forecastfox/locate_city.asp?location=\nDiese kopiert man in den Webbrowser und gibt ganz am Schluss seinen Heimatort an. Die daraufhin angezeigte AccuWeather-Location kopiert man nun in die Einstellungen des Desklets. Fertig.\nDesklet AccuWeather\nUpdate vom 25.01.2016: URL aktualisiert\n","link":"https://blog.tausys.de/2013/07/18/desklet-accuweather-ermitteln-der-location/","section":"posts","tags":["Desktop","Linux"],"title":"Desklet AccuWeather – Ermitteln der Location"},{"body":"","link":"https://blog.tausys.de/tags/desktop/","section":"tags","tags":null,"title":"Desktop"},{"body":" variable Öffnungszeiten\nGefunden und fotografiert bei einem Ausflug an der Elbe in der Nähe von Dresden.\n","link":"https://blog.tausys.de/2013/07/06/variable-oeffnungszeiten/","section":"fundstuecke","tags":null,"title":"Variable Öffnungszeiten"},{"body":"Um die MySQL-Replikation komplett zu deaktivieren führt man zuerst auf dem Slave folgende Kommandos aus:\n1STOP SLAVE; 2 3RESET SLAVE ALL; 4-- für Versionen älter als 5.5.16: 5RESET SLAVE; Danach editiert man /etc/mysql/my.cnf und entfernt alle Angaben, die mit master- oder replicate- beginnen. Anschließend wird der MySQL-Server mit\nservice mysql restart\nneu gestartet.\nAuf dem Master kommentiert man in der /etc/mysql/my.cnf alle Zeilen aus oder löscht sie, die mit server-, binlog- oder log_bin beginnen. Anschließend wird auch der Server-MySQL-Prozess neu gestartet.\nAuf dem ehemaligen Master sollte nun mit\nSHOW MASTER STATUS;\nnichts mehr ausgegeben werden. Ebenso sollte auf dem ehemaligen Slave mit\nSHOW SLAVE STATUS;\nnichts mehr ausgegeben werden. Die MySQL-Replikation wurde komplett deaktiviert.\n","link":"https://blog.tausys.de/2013/06/04/mysql-replikation-komplett-deaktivieren/","section":"posts","tags":["Linux","MySQL","OSS"],"title":"MySQL-Replikation komplett deaktivieren"},{"body":"Wer nicht den Wald-und-Wiesen Speedport der Telekom einsetzt, sondern einen Bintec- bzw. Funkwerk- oder Teldat-Router sein Eigen nennt und Kunde der Telekom mit Entertain ist steht vor dem Problem, wie denn das Ganze nun einzurichten ist. Leider finden sich im Internet nur noch sehr wenige Informationen dazu. Offensichtlich bedingt auch durch den mehrmaligen Verkauf bzw. die Fusionierung von Bintec mit anderen Unternehmen. Im folgenden möchte ich meine Konfiguration beschreiben, mit der Entertain IPTV der Telekom einwandfrei mit einem Bintec R1200w empfangen werden kann.\nSeit der Einführung der \u0026quot;Zielnetzarchitektur\u0026quot; (Telekom-Kunstwort für: Multicast = VLAN 8, Internet = VLAN 7) sind besondere Konfigurationsschritte für einen eigenen Router notwendig, um IPTV der Telekom empfangen zu können. Vorgesehen ist, dass der normale Internetverkehr (über PPPoE) mit der VLAN-ID 7 getaggt wird und IPTV (der gesamte Multicast-Traffic) per VLAN-ID 8. Der Multicast-Traffic bedarf dazu keiner PPPoE-Anmeldung, sondern das jeweilige Interface bekommt direkt von der Telekom eine IP-Adresse zugewiesen, über die dann der gesamte IPTV-Traffic läuft.\nMein Hardware-Setup:\nHeimnetz\nWie zu erkennen ist, habe ich keinen extra Anschluss vom MR zur Bintec. Das lokale Netz ist schnell genug, um auch den Multicast-Traffic überall hin zu verteilen. So komme ich nebenbei auch noch in den Genuß, IPTV am Computer oder am per WLAN an die R1200w angebundenen Smartphone zu sehen.\nDie Konfigurationsschritte im Einzelnen:\nPPPoE mit VLAN 7 taggen Unter \u0026quot;WAN -\u0026gt; Internet + Einwählen\u0026quot; wird der PPPoE-Zugang konfiguriert.\nBintec R1200 - IPTV PPPoE VLAN7\nWichtig ist hier die Aktivierung von VLAN und dem Setzen der VLAN-ID 7. Im obigen Beispiel ist das DSL-Modem an en1-4 angeschlossen.\nMit dieser Konfiguration sollte bereits das Einwählen und der normale Internetzugang funktionieren.\nInterface für VLAN 8 einrichten Für VLAN 8 muss ein zusätzliches Alias-Interface auf dem gleichen Interface eingerichtet werden, an dem das DSL-Modem hängt. Unter \u0026quot;LAN -\u0026gt; IP-Konfiguration -\u0026gt; Neu\u0026quot; richtet man dazu ein neues Interface mit folgenden Einstellungen ein:\nBintec R1200 - IPTV VLAN8 Schnittstelle\nWichtig sind die Einstellungen DHCP, Tagged (VLAN), der VLAN-ID 8 und dem Abschalten des DHCP Broadcast Flags. Bei \u0026quot;basierend auf Ethernet-Schnittstelle\u0026quot; ist die Schnittstelle zu wählen, an der das DSL-Modem hängt.\nAnschließend muss NAT für das neu angelete Interface unter \u0026quot;Netzwerk -\u0026gt; NAT\u0026quot; (hier EN1-4-1) aktiviert werden.\nMulticast Proxy einrichten Im Folgenden muss der IGMP-Proxy für das Weiterleiten der gerade konfigurierten Schnittstelle mit VLAN 8 ins lokale Netzwerk (br0) konfiguriert werden.\nSchnittstelle auf Telekom-Seite Unter \u0026quot;Multicast -\u0026gt; IGMP -\u0026gt; Neu\u0026quot; wird zuerst eine externe Schnittstelle für den IGMP-Proxy erstellt.\nBintec R1200 - IPTV IGMP Proxy extern\nDiese Schnittstelle, die oben mit VLAN 8 getaggt wurde, ist der IGMP-Proxy Host.\nInterne Schnittstelle Anschließend wird die interne Schnittstelle unter \u0026quot;Multicast -\u0026gt; IGMP -\u0026gt; Neu\u0026quot; hinzugefügt.\nBintec R1200 - IPTV IGMP Proxy intern\nHier muss \u0026quot;Routing\u0026quot; und in den erweiterten Einstellungen der IGMP-Proxy und das obige Host-Interface gewählt werden.\nIGMP-Optionen für Telekom-IPTV Multicast der Telekom verwendet aktuell nur IGMPv3, andere Versionen führen nur zu einem schwarzen Bild auf dem Fernseher. Unter \u0026quot;Multicast -\u0026gt; IGMP -\u0026gt; Optionen\u0026quot; muss die IGMP-Version eingestellt werden.\nBintec R1200 - IPTV IGMP Optionen\nIGMP-Proxy aktivieren Zum Schluss wird der IGMP-Proxy im Bintec-Router unter \u0026quot;Multicast -\u0026gt; Allgemein\u0026quot; aktiviert.\nBintec R1200 - IPTV Multicast aktivieren\nTest der Installation Nach der obigen Konfiguration sollte das neue virtuelle Interace per DHCP eine IP-Adresse von der Telekom zugewiesen bekommen haben. Hinter den Interfaces unter \u0026quot;LAN -\u0026gt; IP-Konfiguration\u0026quot; sollten die korrekten VLAN-IDs aufgelistet werden.\nBintec R1200 - IPTV Interfaces\nWichtig ist hier das Interface en-1-4 mit VLAN-ID 7 (Anschluß mit DSL-Modem) über den der normale Internet-Traffic läuft und das Interface en-1-4-1 mit VLAN-ID 8, über das der Multicast-Traffic durch den IGMP-Proxy geleitet wird. Leider stellt das FCI kein Monitoring für IGMP bereit. Dieses ist nur über SSH und der Navigation zu \u0026quot;IP -\u0026gt; Multicast -\u0026gt; IGMP -\u0026gt; Advanced -\u0026gt; Monitor\u0026quot; und der Auswahl der richtigen Schnittstelle (br0 oder en-1-4-1) durch Drücken der Taste N möglich.\nBintec R1200 - IPTV IGMP Monitoring\nUnd nun viel Spaß beim Fernsehen!\nPS: Zum Schluß noch ein kleiner Seitenhieb auf die Hardware der Telekom: Obwohl sich die Speedport-Geräte als \u0026quot;nur DSL-Modem\u0026quot; einrichten lassen, sind sie dann für Entertain unbrauchbar, denn sie entfernen das von einem dahinter hängenden Router getätigte VLAN-Tagging komplett. Das tut das Allnet VDSL-Modem nicht (was übrigens eine zum Verwechseln ähnliche Konfigurationsoberfläche wie das leider nicht mehr hergestellte Speedport 300HS hat).\n","link":"https://blog.tausys.de/2013/05/06/bintec-r1200-und-telekom-entertain-iptv/","section":"posts","tags":["Bintec","Entertain","Funkwerk","IPTV","R1200","Teldat","Telekom"],"title":"Bintec R1200 und Telekom Entertain IPTV"},{"body":"","link":"https://blog.tausys.de/tags/r1200/","section":"tags","tags":null,"title":"R1200"},{"body":"","link":"https://blog.tausys.de/tags/teldat/","section":"tags","tags":null,"title":"Teldat"},{"body":"","link":"https://blog.tausys.de/tags/editor/","section":"tags","tags":null,"title":"Editor"},{"body":"","link":"https://blog.tausys.de/tags/notepad++/","section":"tags","tags":null,"title":"Notepad++"},{"body":"Mein bevorzugter Editor ist Notepad++. Seit längerem beherrscht Notepad++ auch die Suche nach regulären Ausdrücken. Standardgemäß gibt es mit regulären Ausdrücken keine Möglichkeit, Zeilen zu finden, die einen Suchbegriff nicht enhalten. Mit einem kleinen Trick kann diese Einschränkung umgangen werden: mit negativen Look-Arounds.\n1\u0026#34;(?!pattern)\u0026#34; 2\tA zero-width negative look-ahead assertion. For example 3\t\u0026#34;/foo(?!bar)/\u0026#34; matches any occurrence of \u0026#34;foo\u0026#34; that isn\u0026#39;t 4\tfollowed by \u0026#34;bar\u0026#34;. Note however that look-ahead and 5\tlook-behind are NOT the same thing. You cannot use this 6\tfor look-behind. 7 8\tIf you are looking for a \u0026#34;bar\u0026#34; that isn\u0026#39;t preceded by a 9\t\u0026#34;foo\u0026#34;, \u0026#34;/(?!foo)bar/\u0026#34; will not do what you want. That\u0026#39;s 10\tbecause the \u0026#34;(?!foo)\u0026#34; is just saying that the next thing 11\tcannot be \u0026#34;foo\u0026#34;--and it\u0026#39;s not, it\u0026#39;s a \u0026#34;bar\u0026#34;, so \u0026#34;foobar\u0026#34; 12\twill match. Use look-behind instead (see below).\u0026lt;/pre\u0026gt; Damit ist eine Suchbedingung möglich, die den Suchbegriff nicht enthält. Falls z.B. alle Zeilen gesucht werden sollen, die foobar nicht enthalten, dann lautet der Suchbegriff:\n^((?!foobar).)*$\n","link":"https://blog.tausys.de/2013/05/05/notepad-suche-nach-zeilen-die-einen-string-nicht-enthalten/","section":"posts","tags":["Editor","Notepad++","Regex"],"title":"Notepad++ – Suche nach Zeilen, die einen String nicht enthalten"},{"body":"","link":"https://blog.tausys.de/tags/regex/","section":"tags","tags":null,"title":"Regex"},{"body":"Spam und Viren liegen heutzutage massenweise im (ungefilterten) Postfach. Neu ist jedoch, dass diese digital signiert versendet werden. Vor Kurzem traf hier eine E-Mail ein, die angeblich eine Information für den Empfänger einer Überweisung über Western Union sein sollte. In einem Anhang befand sich natürlich ein Virus.\nErstaunlich ist allerdings, mit was für einem Zertifikat die E-Mail unterschrieben wurde. Es handelt sich hier um ein gültiges Zertifikat der Firma Actalis S.p.A.:\nActalis ist eine Firma, die eine eigene CA betreibt und Zertifikate für Server, zum Unterschreiben von E-Mails und zum signieren von Objektcode verkauft.\nAusgestellt wurde das verwendete Zertifikat allerdings nicht von der Actalis-Root-CA selbst sondern von DigitPA, offenbar einer italienischen Regierungs-CA.\n1Certificate: 2 Data: 3 Version: 3 (0x2) 4 Serial Number: 909 (0x38d) 5 Signature Algorithm: sha1WithRSAEncryption 6 Issuer: C=IT, O=DigitPA, OU=Ufficio interoperabilita\u0026#39; e cooperazione, CN=DigitPA CA1 7 Validity 8 Not Before: Mar 31 09:28:10 2011 GMT 9 Not After : Mar 31 09:28:10 2014 GMT 10 Subject: CN=Servizio PEC - AR, O=Actalis S.p.A., C=IT 11 Subject Public Key Info: 12 Public Key Algorithm: rsaEncryption 13 Public-Key: (1024 bit) 14 Modulus: 15 00:a6:a9:83:0b:03:25:1b:a6:26:aa:d4:f7:70:b3: 16 fc:5d:48:0a:11:a4:ed:57:8c:28:9d:ec:59:cd:bf: 17 e3:c1:d5:7d:62:1f:0a:d9:dc:c5:ae:7c:b0:11:e5: 18 4f:1d:83:ee:03:ab:6f:76:66:8b:d8:e8:3a:1b:3e: 19 e0:e5:3b:89:a9:74:1a:29:ac:14:0b:72:0a:77:96: 20 9e:1b:f2:fa:6c:b5:0e:32:88:f1:0e:01:6e:e4:c8: 21 a0:cb:70:c4:e3:66:93:6e:be:22:4a:9e:fc:a6:fa: 22 c7:61:9a:d6:c5:74:2a:f3:e1:32:12:62:df:77:68: 23 8c:f2:50:be:5c:f7:ca:9b:bb 24 Exponent: 65537 (0x10001) 25 X509v3 extensions: 26 X509v3 Basic Constraints: 27 CA:FALSE 28 X509v3 Certificate Policies: 29 Policy: 1.3.76.16.3.1.1 30 CPS: http://www.digitpa.gov.it/manuali-operativi 31 32 X509v3 Subject Alternative Name: 33 email:posta-certificata@pec.actalis.it 34 X509v3 Key Usage: 35 Digital Signature 36 X509v3 Authority Key Identifier: 37 keyid:FE:22:B7:24:E3:4F:27:D9:05:E0:CC:B8:BD:DE:F4:8D:23:FD:2F:D9 38 39 X509v3 Subject Key Identifier: 40 C4:64:35:18:64:12:1B:BA:4E:68:F6:9A:CF:22:71:FF:AE:F6:6D:0B 41 Signature Algorithm: sha1WithRSAEncryption 42... Die E-Mail jedenfalls wurde gut verpackt. Sie sollte wohl so aussehen, als würde sie eine Weiterleitung von Actalis sein. Angehängt (und mitsigniert) ist die eigentliche Nachricht und das Archiv mit dem Virus. Hier ein Auszug des E-Mail-Headers:\n1Received: from smtp.pec.actalis.it (mx.pec.actalis.it [95.110.240.43]) 2\tby mx.kundenserver.de (node=mxbap3) with ESMTP (Nemesis) 3\tid 0MUWkV-1U2ytc0FPP-00RFuG for xxxxxx@xxxxxxxxxx.de; Sat, 20 Apr 2013 15:51:55 +0200 4Received: from smtp2actp.pec.ad.aruba.it (localhost.localdomain [127.0.0.1]) 5\tby smtp.pec.actalis.it (Postfix) with ESMTP id 1D79CA7810C 6\tfor \u0026lt;xxxxxx@xxxxxxxxxx.de\u0026gt;; Sat, 20 Apr 2013 15:51:54 +0200 (CEST) 7Received: from Unknown 8 (host116-9-static.104-82-b.business.telecomitalia.it [82.104.9.116])\tby 9 smtp.pec.actalis.it (Postfix) with ESMTPA id 82E26A7806D\tfor 10 \u0026lt;xxxxxx@xxxxxxxxxx.de\u0026gt;; Sat, 20 Apr 2013 15:51:49 +0200 (CEST) 11Subject: POSTA CERTIFICATA: Western Union Money Transfer service 12X-Riferimento-Message-ID: \u0026lt;29EAC776EFBF4178B08DDBD3EE9DAB6A@bbsvnx\u0026gt; 13Date: Sat, 20 Apr 2013 15:51:53 +0200 14Message-ID: \u0026lt;opec272.20130420155153.19377.06.1.2@pec.actalis.it\u0026gt; 15Reply-To: avv.carlo.iavicoli@certmail-cnf.it 16X-Trasporto: posta-certificata 17To: \u0026lt;xxxxxx@xxxxxxxxxx.de\u0026gt; 18From: \u0026#34;Per conto di: avv.carlo.iavicoli@certmail-cnf.it\u0026#34; \u0026lt;posta-certificata@pec.actalis.it\u0026gt; 19X-Priority: 3 20X-list: info 21MIME-Version: 1.0 22Content-Type: multipart/signed; protocol=\u0026#34;application/x-pkcs7-signature\u0026#34;; micalg=sha1; boundary=\u0026#34;----EA006EF10E5030D619B0DAC25C8C6F5F\u0026#34; 23Envelope-To: xxxxxx@xxxxxxxxxx.de Sind einem Mitarbeiter von Actalis Zertifikate abhanden gekommen oder versendet gar sein Computer diese Viren-Mails?\nHier noch ein Screenshot der E-Mail:\nWestern Union - signed virus mail\nLeider sind meine Italienischkenntnisse nicht ausreichend, um weiter zu recherchieren.\nUpdate vom 27.11.2014: Offensichtlich handelt es sich um ein automatisches Bounce vom Postmaster, der über die Unzustellbarkeit der E-Mail informiert. Warum diese aber nun digital signiert ist, weiß ich nicht. Mittlerweile ist wieder so eine E-Mail hier aufgeschlagen:\nE-Mail Bounce signiert\n","link":"https://blog.tausys.de/2013/04/22/digital-signierte-virus-mail/","section":"posts","tags":["E-Mail","S/MIME","Virus","Zertifikat"],"title":"Digital signierte Virus Mail"},{"body":"","link":"https://blog.tausys.de/tags/s/mime/","section":"tags","tags":null,"title":"S/MIME"},{"body":"","link":"https://blog.tausys.de/tags/virus/","section":"tags","tags":null,"title":"Virus"},{"body":"Um ein Windows-Programm z.B. per Klick auf einen Button als Administrator auszuführen, kann folgender Code verwendet werden:\n1// Elevate the process if it is not run as administrator. 2if (!fIsRunAsAdmin) 3{ 4 wchar_t szPath[MAX_PATH]; 5 if (GetModuleFileName(NULL, szPath, ARRAYSIZE(szPath))) 6 { 7 // Launch itself as administrator. 8 SHELLEXECUTEINFO sei = { sizeof(sei) }; 9 sei.lpVerb = L\u0026#34;runas\u0026#34;; 10 sei.lpFile = szPath; 11 sei.hwnd = hWnd; 12 sei.nShow = SW_NORMAL; 13 14 if (!ShellExecuteEx(\u0026amp;sei)) 15 { 16 DWORD dwError = GetLastError(); 17 if (dwError == ERROR_CANCELLED) 18 { 19 // The user refused the elevation. 20 // Do nothing ... 21 } 22 } 23 else 24 { 25 EndDialog(hWnd, TRUE); // Quit itself 26 } 27 } 28} Die Benutzung des Verbs \u0026quot;runas\u0026quot; ist in der aktuellen MSDN weder unter ShellExecuteEx noch unter SHELLEXECUTEINFO dokumentiert.\n","link":"https://blog.tausys.de/2013/04/10/programm-per-klick-als-administrator-ausfuehren/","section":"posts","tags":["UAC","VC","Windows"],"title":"Programm per Klick als Administrator ausführen"},{"body":"","link":"https://blog.tausys.de/tags/uac/","section":"tags","tags":null,"title":"UAC"},{"body":"","link":"https://blog.tausys.de/tags/vc/","section":"tags","tags":null,"title":"VC"},{"body":"Vorweg: virtuelle Server sind für kleine Aufgaben eine feine Sache. Sie können im aktuellen Betriebszustand gestoppt, gestartet, auf einen anderen Server umgezogen oder Snapshots von den Platten angefertigt werden. Viele Hoster bieten sie zum Betrieb eines eigenen Webservices, so z.B. der eigenen Homepage an. Da der virtuelle Server quasi einen kompletten Computer darstellt, muss man sich um die Aktualisierung der darauf aufgespielten Software und auch um das Betriebssystem selbst kümmern.\nSo schön es auch ist, einen kompletten Computer mit garantierter CPU-Leistung, fest zugewiesenem Hauptspeicher und einer entsprechend großen virtuellen Festplatte zu bekommen, so kann man genau diese Funktionen nicht beeinflussen.\nGenau das zeigte sich leider wieder einmal bei dem virtuellen Server (vServer), auf dem dieses Blog läuft. Das IO-System der Virtualisierungssoftware spielte verrückt. So lag die Zeit, die für einen Schreibvorgang auf die Platte vom System gebraucht wurde stellenweise bei 3,8 Sekunden! Ein normales System zeigt dabei Werte von ca. 20 Millisekunden. Falls die aktuellen Werte der Hard- und Software durch eine Monitoring-Software protokolliert werden (hier kommt Munin zum Einsatz), lassen sich diese Extremfälle gut grafisch darstellen:\nIn der Grafik ist zu erkennen, dass seit ca. 4 Uhr die Reaktionszeit des IO-Systems extrem abnahm. Ein Lesevorgang dauerte zu dieser Zeit 82,81 Millisekunden, ein Schreibvorgang ganze 3,86 Sekunden! Mittlerweile hat sich die Lage wieder normalisiert. Lesen/Schreiben erfolgt jetzt mit 1,99/16,73 ms.\n","link":"https://blog.tausys.de/2013/04/01/virtuelle-server-fehler-im-io-system/","section":"posts","tags":["Linux","Munin","vServer"],"title":"Virtuelle Server – Fehler im IO-System"},{"body":"","link":"https://blog.tausys.de/tags/vserver/","section":"tags","tags":null,"title":"VServer"},{"body":"","link":"https://blog.tausys.de/tags/dyndns/","section":"tags","tags":null,"title":"DynDNS"},{"body":"Genau dann, wenn man den Internetzugang einmal braucht steht er nicht zur Verfügung. Murphys Law. Zuerst hatte ich die hier eingesetzten PowerLine-Adapter in Verdacht, aber mit dessen Konfigurationswerkzeug konnten alle anderen PowerLine-Adapter erreicht werden. Der Router ließ sich auch anpingen. Also konnte nur noch die Internetverbindung gestört sein. Hier das Protokoll eines SpeedPorts der Telekom:\n119.03.2013 20:56:02 If(PPPoE) PPP Fehler : Peer terminate 219.03.2013 20:56:02 PPPoE Stopp 319.03.2013 20:56:02 PPPoE sende PADI 419.03.2013 20:56:05 PPPoE sende PADI 519.03.2013 20:56:08 PPPoE sende PADI 619.03.2013 20:56:11 PPPoE sende PADI 719.03.2013 20:56:15 PPPoE sende PADI 819.03.2013 20:56:18 PPPoE sende PADI 919.03.2013 20:56:21 PPPoE sende PADI 1019.03.2013 20:56:24 PPPoE sende PADI 1119.03.2013 20:56:27 PPPoE sende PADI 1219.03.2013 20:56:30 PPPoE sende PADI 1319.03.2013 20:56:33 PPPoE sende PADI 1419.03.2013 20:56:36 PPPoE sende PADI 1519.03.2013 20:56:40 PPPoE sende PADI 1619.03.2013 20:56:43 PPPoE sende PADI 1719.03.2013 20:56:46 PPPoE sende PADI 1819.03.2013 20:56:49 PPPoE sende PADI 1919.03.2013 20:56:52 PPPoE sende PADI 2019.03.2013 20:56:55 PPPoE sende PADI 2119.03.2013 20:56:58 PPPoE sende PADI 2219.03.2013 20:57:01 PPPoE sende PADI 2319.03.2013 20:57:05 PPPoE sende PADI 2419.03.2013 20:57:08 PPPoE sende PADI 2519.03.2013 20:57:11 PPPoE sende PADI 2619.03.2013 20:57:14 PPPoE sende PADI 2719.03.2013 20:57:17 PPPoE sende PADI 2819.03.2013 20:57:20 PPPoE sende PADI 2919.03.2013 20:57:23 PPPoE sende PADI 3019.03.2013 20:57:26 PPPoE sende PADI 3119.03.2013 20:57:30 PPPoE sende PADI 3219.03.2013 20:57:33 PPPoE sende PADI 3319.03.2013 20:57:36 PPPoE sende PADI 3419.03.2013 20:57:39 PPPoE sende PADI 3519.03.2013 20:57:42 PPPoE sende PADI 3619.03.2013 20:57:45 PPPoE sende PADI 3719.03.2013 20:57:48 PPPoE sende PADI 3819.03.2013 20:57:51 PPPoE sende PADI 3919.03.2013 20:57:55 PPPoE sende PADI 4019.03.2013 20:57:58 PPPoE sende PADI 4119.03.2013 20:57:59 PPPoE empfange PADO 4219.03.2013 20:57:59 PPPoE sende PADR 4319.03.2013 20:58:04 PPPoE sende PADI 4419.03.2013 20:58:05 PPPoE empfange PADO 4519.03.2013 20:58:05 PPPoE sende PADR 4619.03.2013 20:58:05 Der Konfigurations-Service konnte nicht erreicht werden. (A001) 4719.03.2013 20:58:10 PPPoE sende PADI 4819.03.2013 20:58:11 PPPoE empfange PADO 4919.03.2013 20:58:11 PPPoE sende PADR 5019.03.2013 20:58:16 PPPoE sende PADI 5119.03.2013 20:58:19 PPPoE sende PADI 5219.03.2013 20:58:22 PPPoE sende PADI 5319.03.2013 20:58:25 PPPoE sende PADI 5419.03.2013 20:58:29 PPPoE sende PADI 5519.03.2013 20:58:32 PPPoE sende PADI 5619.03.2013 20:58:35 PPPoE sende PADI 5719.03.2013 20:58:38 PPPoE sende PADI 5819.03.2013 20:58:41 PPPoE sende PADI 5919.03.2013 20:58:44 PPPoE sende PADI 6019.03.2013 20:58:47 PPPoE sende PADI 6119.03.2013 20:58:50 PPPoE sende PADI 6219.03.2013 20:58:54 PPPoE sende PADI 6319.03.2013 20:58:57 PPPoE sende PADI 6419.03.2013 20:59:00 PPPoE sende PADI 6519.03.2013 20:59:03 PPPoE sende PADI 6619.03.2013 20:59:06 PPPoE sende PADI 6719.03.2013 20:59:09 PPPoE sende PADI 6819.03.2013 20:59:12 PPPoE sende PADI 6919.03.2013 20:59:15 PPPoE sende PADI 7019.03.2013 20:59:19 PPPoE sende PADI 7119.03.2013 20:59:22 PPPoE sende PADI 7219.03.2013 20:59:25 PPPoE sende PADI 7319.03.2013 20:59:28 PPPoE sende PADI 7419.03.2013 20:59:31 PPPoE sende PADI 7519.03.2013 20:59:34 PPPoE sende PADI 7619.03.2013 20:59:37 PPPoE sende PADI 7719.03.2013 20:59:40 PPPoE sende PADI 7819.03.2013 20:59:44 PPPoE sende PADI 7919.03.2013 20:59:47 PPPoE sende PADI 8019.03.2013 20:59:50 PPPoE sende PADI 8119.03.2013 20:59:53 PPPoE sende PADI 8219.03.2013 20:59:56 PPPoE sende PADI 8319.03.2013 20:59:59 PPPoE sende PADI 8419.03.2013 21:00:00 PPPoE empfange PADO 8519.03.2013 21:00:00 PPPoE sende PADR 8619.03.2013 21:00:05 PPPoE sende PADI 8719.03.2013 21:00:06 PPPoE empfange PADO 8819.03.2013 21:00:06 PPPoE sende PADR 8919.03.2013 21:00:07 DynDNS-Fehler: Der angegebene Domainname kann nicht aufgelöst werden. (D001) 9019.03.2013 21:00:10 Der Konfigurations-Service konnte nicht erreicht werden. (A001) 9119.03.2013 21:00:11 PPPoE sende PADI 9219.03.2013 21:00:12 PPPoE empfange PADO 9319.03.2013 21:00:12 PPPoE sende PADR 9419.03.2013 21:00:18 PPPoE sende PADI 9519.03.2013 21:00:21 PPPoE sende PADI 9619.03.2013 21:00:24 PPPoE sende PADI 9719.03.2013 21:00:27 PPPoE sende PADI 9819.03.2013 21:00:30 PPPoE sende PADI 9919.03.2013 21:00:33 PPPoE sende PADI 10019.03.2013 21:00:36 PPPoE sende PADI 10119.03.2013 21:00:39 PPPoE sende PADI 10219.03.2013 21:00:43 PPPoE sende PADI 10319.03.2013 21:00:46 PPPoE sende PADI 10419.03.2013 21:00:49 PPPoE sende PADI 10519.03.2013 21:00:52 PPPoE sende PADI 10619.03.2013 21:00:55 PPPoE sende PADI 10719.03.2013 21:00:58 PPPoE sende PADI 10819.03.2013 21:01:01 PPPoE sende PADI 10919.03.2013 21:01:04 PPPoE sende PADI 11019.03.2013 21:01:08 PPPoE sende PADI 11119.03.2013 21:01:11 PPPoE sende PADI 11219.03.2013 21:01:14 PPPoE sende PADI 11319.03.2013 21:01:17 PPPoE sende PADI 11419.03.2013 21:01:20 PPPoE sende PADI 11519.03.2013 21:01:23 PPPoE sende PADI 11619.03.2013 21:01:26 PPPoE sende PADI 11719.03.2013 21:01:29 PPPoE sende PADI 11819.03.2013 21:01:33 PPPoE sende PADI 11919.03.2013 21:01:36 PPPoE sende PADI 12019.03.2013 21:01:39 PPPoE sende PADI 12119.03.2013 21:01:42 PPPoE sende PADI 12219.03.2013 21:01:45 PPPoE sende PADI 12319.03.2013 21:01:48 PPPoE sende PADI 12419.03.2013 21:01:51 PPPoE sende PADI 12519.03.2013 21:01:54 PPPoE sende PADI 12619.03.2013 21:01:58 PPPoE sende PADI 12719.03.2013 21:02:01 PPPoE sende PADI 12819.03.2013 21:02:02 PPPoE empfange PADO 12919.03.2013 21:02:02 PPPoE sende PADR 13019.03.2013 21:02:07 PPPoE sende PADI 13119.03.2013 21:02:08 PPPoE empfange PADO 13219.03.2013 21:02:08 PPPoE sende PADR 13319.03.2013 21:02:13 PPPoE sende PADI 13419.03.2013 21:02:14 PPPoE empfange PADO 13519.03.2013 21:02:14 PPPoE sende PADR 13619.03.2013 21:02:15 Der Konfigurations-Service konnte nicht erreicht werden. (A001) 13719.03.2013 21:02:19 PPPoE sende PADI 13819.03.2013 21:02:22 PPPoE sende PADI 13919.03.2013 21:02:25 PPPoE sende PADI 14019.03.2013 21:02:28 PPPoE sende PADI 14119.03.2013 21:02:31 PPPoE sende PADI 14219.03.2013 21:02:34 PPPoE sende PADI 14319.03.2013 21:02:37 PPPoE sende PADI 14419.03.2013 21:02:40 PPPoE sende PADI 14519.03.2013 21:02:44 PPPoE sende PADI 14619.03.2013 21:02:47 PPPoE sende PADI 14719.03.2013 21:02:50 PPPoE sende PADI 14819.03.2013 21:02:53 PPPoE sende PADI 14919.03.2013 21:02:56 PPPoE sende PADI 15019.03.2013 21:02:59 PPPoE sende PADI 15119.03.2013 21:03:02 PPPoE sende PADI 15219.03.2013 21:03:05 PPPoE sende PADI 15319.03.2013 21:03:09 PPPoE sende PADI 15419.03.2013 21:03:12 PPPoE sende PADI 15519.03.2013 21:03:15 PPPoE sende PADI 15619.03.2013 21:03:18 PPPoE sende PADI 15719.03.2013 21:03:21 PPPoE sende PADI 15819.03.2013 21:03:24 PPPoE sende PADI 15919.03.2013 21:03:27 PPPoE sende PADI 16019.03.2013 21:03:30 PPPoE sende PADI 16119.03.2013 21:03:34 PPPoE sende PADI 16219.03.2013 21:03:37 PPPoE sende PADI 16319.03.2013 21:03:40 PPPoE sende PADI 16419.03.2013 21:03:43 PPPoE sende PADI 16519.03.2013 21:03:46 PPPoE sende PADI 16619.03.2013 21:03:49 PPPoE sende PADI 16719.03.2013 21:03:52 PPPoE sende PADI 16819.03.2013 21:03:55 PPPoE sende PADI 16919.03.2013 21:03:59 PPPoE sende PADI 17019.03.2013 21:04:02 PPPoE sende PADI 17119.03.2013 21:04:02 PPPoE empfange PADO 17219.03.2013 21:04:02 PPPoE sende PADR 17319.03.2013 21:04:02 PPPoE empfange PADS 17419.03.2013 21:04:02 If(PPPoE) startet PPP 17519.03.2013 21:04:02 Benutzername und Passwort: OK 17619.03.2013 21:04:03 Vom Internetanbieter zugewiesene Gateway-IP-Adresse:xxx.xxx.xxx.xxx (R022) 17719.03.2013 21:04:04 Internetverbindung wurde erfolgreich hergestellt.(R010) 17819.03.2013 21:04:41 NTP (Network Time Protokoll) aktiv - Aktuell empfangene Zeit:\u0026lt;19.03.2013\u0026gt; \u0026lt;21:04:41\u0026gt; Im Original wird das Protokoll in der Verwaltungsoberfläche des SpeedPorts verkehrt herum dargestellt. Wer auch immer sich das einfallen lassen hat. Logfiles gehen chronologisch von oben nach unten. Offensichtlich hat niemand hinbekommen, das Logfile auf der SpeedPort-Verwaltungswebseite in einem HTML-Textarea darzustellen und gleichzeitig ganz nach unten zu scrollen. Ich habe das Logfile für bessere Lesbarkeit mit tac umgedreht.\nBemerkenswert bei der ganzen Sache sind drei Dinge:\nwar das nicht die Zwangstrennung, sondern wohl eine Störung bei T-Online die Dauer des \u0026quot;Offline-Seins\u0026quot; ein Fehler in allen SpeedPorts, der eine eingetragene DynDNS-Konfiguration ausser acht läßt und bei der Wiedereinwahl einfach nicht den DynDNS auf die neue IP-Adresse konfiguriert Der erste Punkt ist wohl nicht vorhersehbar. Den Zweiten kann ich nicht beurteilen, doch ich glaube kaum, dass in reichlich acht Minuten irgendwohin ein Techniker gefahren ist. Gottseidank lief die Technik bei der Telekom nach so einer kurzen Zeitspanne wieder. Der dritte Punkt ist mehr als ärgerlich. Man kann in den aktuellen SpeedPorts eine DynDNS-Konfiguration eintragen, diese wird jedoch nicht bei einer Neueinwahl beim Anbieter aktualisiert. Das ist ein Bug, welcher lt. diversen Forenmeldungen schon seit Jahren in der Firmware der SpeedPort-Router schlummert.\nNun ja. Ärger von der Seele geschrieben.\n","link":"https://blog.tausys.de/2013/03/19/protokoll-eines-verbindungsabbruchs/","section":"posts","tags":["DynDNS","SpeedPort","Telekom"],"title":"Protokoll eines Verbindungsabbruchs"},{"body":"","link":"https://blog.tausys.de/tags/speedport/","section":"tags","tags":null,"title":"SpeedPort"},{"body":"","link":"https://blog.tausys.de/tags/reader/","section":"tags","tags":null,"title":"Reader"},{"body":"","link":"https://blog.tausys.de/tags/rss/","section":"tags","tags":null,"title":"RSS"},{"body":" Das Ende des Google Reader ist beschlossene Sache. Google hat damit, zumindest bei mir, ein ganzes Stück Vertrauen verloren, wenn vielbenutzte Services einfach so mir nichts dir nichts eingestellt werden. Seit 2005 gibt es den Google Reader mit einer nicht zu unterschätzenden Userbasis. Leider scheint sich Google auch nicht von einer Petition zum Erhalt des Google Readers überzeugen zu lassen, die mittlerweile schon über 120.000 Unterzeichner hat. Also gilt es, einen Ausweg zu finden, um weiterhin die täglichen News stressfrei sichten zu können.\nDa bei mir die Nutzung auf mehren Geräten eine große Rolle spielt, kamen lokale Programme nicht in Frage. Wenn ich auf dem einen Gerät einen Artikel gelesen habe, möchte ich diesen nicht auf einem anderen Gerät wieder als neu angezeigt bekommen. Eine Synchronisation kann also nur über einen Service erfolgen, der unabhängig vom Gerät arbeitet. Allerdings wollte ich auch nicht auf einen externen Dienstleister setzen (so wie Google mit ihrem Reader), sondern eine Software selber hosten, die mir die Reader-Funktionen bereitstellt. Nach längerer Suche bin ich auf Tiny Tiny RSS gestoßen, welches leicht zu installieren und mit ein paar Änderungen im CSS sogar noch ähnlich dem Google Reader Design dargestellt werden kann.\nTiny Tiny RSS\n","link":"https://blog.tausys.de/2013/03/17/tiny-tiny-rss-alternative-fuer-google-reader/","section":"posts","tags":["Google","OSS","Reader","RSS","TinyTinyRSS"],"title":"Tiny Tiny RSS – Alternative für Google Reader"},{"body":"","link":"https://blog.tausys.de/tags/tinytinyrss/","section":"tags","tags":null,"title":"TinyTinyRSS"},{"body":" Seit kurzem beschäftige ich mich mit der Produktion von Videos am heimischen PC. Als sehr gutes Programm zum Schneiden und für verschiedene Effekte wurde mir Magix Video Deluxe empfohlen. Gesagt, getan: das Produkt bei Magix als Downloadversion gekauft und dabei auch noch einen im E-Mail-Postfach herumliegenden 10€ Gutschein aus einer früheren Anmeldung bei Magix eingesetzt.\nDie Installation erfolgt wie von heutigen Programmen gewohnt reibungslos. Anschließend können über das Menü Hilfe -\u0026gt; Gratis-Download... zahlreiche Effekte und Vorlagen nachinstalliert werden. Bei der Erstbenutzung eines lizenzpflichtigen Codecs (MP4, Dolby usw.) ist eine einmalige Aktivierung erforderlich, die direkt aus dem Programm heraus mit wenigen Klicks ausgeführt werden kann.\nWer sich ein bisschen mit Offline-Schnittprogrammen auskennt, wird sich in Magix Video Deluxe schnell zurechtfinden. Keyframes werden für jede Art von Effekten unterstützt. Auch mit umfangreichem Ausgangsmaterial hat Magix Video Deluxe kein Problem und ist recht flott bei der Anzeige der Vorschau.\nHier auf meinem Rechenknecht (i5-3570K, also Ivy-Bridge) hatte ich erst wenige Videos, bei denen die Zeit für das Encoden größer war, als die eigentliche Filmlaufzeit. Allerdings habe ich bisher alle Filme per CPU encodet. In den Einstellungen von Magix Video Deluxe findet man auch Punkte zur CUDA-Unterstützung. Da in meinem Rechner eine Nvidia GTX 660 Ti steckt, versprach ich mir durch die Verwendung von CUDA noch einen entscheidenden Leistungsschub. Leider quittiert der Encoder jeden Versuch, die CUDA-Unterstützung zu verwenden, mit einer Fehlermeldung. Nach viel Suche und verlorener Zeit bin ich im Magix-Forum dann auf folgenden Eintrag mit einem Zitat der Magix-Hotline gestoßen:\nNach Rückfrage bei unseren Entwicklern ist der derzeitige Stand leider so, dass hardwarebeschleunigte Encodierung bei NVidia Karten mit Kepler Archtiktur nicht unterstützt wird. Für diese Funktion verwenden wir den Codec der Firma Mainconcept, welcher mit diesen Karten momentan nicht zusammenarbeitet. Sobald wir von Mainconcept eine Version mit der Unterstützung bekommen, werden wir diese auch einbinden können. Leider gibt es aber dafür noch keinen Termin.\nDas ist insoweit sehr ärgerlich, da die Nvidia-Kepler-Architektur seit Anfang 2012 auf dem Markt verfügbar ist. Leider hat sich zum aktuellen Zeitpunkt an der Situation noch nichts geändert. Anscheinend ähnlich sieht es lt. dem Magix-Forum auch mit aktuellen GPUs von AMD aus. Hier sollte Magix dringend etwas unternehmen! Wer also mit dem Gedanken spielt, sich eine aktuelle Grafikkarte zur Geschwindigkeitssteigerung des Encodings in Magix Video Deluxe anzuschaffen, sollte sich vorher genau informieren, ob den die einzusetzende Grafikkarte auch von den CUDA- oder OpenCL-Treibern unterstützt wird.\nUpdate vom 13.03.2013: Auch auf der [Herstellerseite](http://www.mainconcept.com/eu/products/sdks/gpu-acceleration-sdk/cuda-h264avc.html des von MAGIX verwendeten CUDA-Encoders (Mainconcept) wird klargestellt, dass der Encoder die NVIDIA-Kepler-Architektur nicht unterstützt. Unter \u0026quot;Tech Specs\u0026quot; ist unter anderem zu lesen:\nBoards with Kepler architecture are not supported.\n","link":"https://blog.tausys.de/2013/03/09/magix-video-deluxe-und-nvidia-kepler-grafikkarten/","section":"posts","tags":["Magix","Nvidia","Windows"],"title":"Magix Video Deluxe und Nvidia Kepler Grafikkarten"},{"body":"","link":"https://blog.tausys.de/tags/nvidia/","section":"tags","tags":null,"title":"Nvidia"},{"body":"Die aktuelle Piwik-Version 1.10.1 hat einen Fehler, der beim Anzeigen der Seite Systemprüfung in den Piwik-Einstellungen auftritt. Dabei wird folgende Fehlermeldung ausgegeben:\n1SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \u0026#39;option WHERE option_name IN (\u0026#39;test_system_check1\u0026#39;,\u0026#39;test_system_check2\u0026#39;)\u0026#39; at line 1 Der Fehler tritt nur in Piwik-Installationen auf, die keinen Tabellenprefix in der MySQL-Datenbank für Piwik verwenden. Der Fehler wurde bereits gefixt und sollte in der nächsten Piwik-Version automatisch enthalten sein.\nUpdate vom 09.03.2013: Mit der aktuellen Piwik-Version 1.11 ist der Bug gefixt.\n","link":"https://blog.tausys.de/2013/02/10/piwik-1-10-1-fehler-in-der-systempruefung/","section":"posts","tags":["OSS","Piwik"],"title":"Piwik 1.10.1 Fehler in der Systemprüfung"},{"body":" Einige genießen ja schon das Schauen von TV-Sendungen per IPTV. Ein häufig dazu verwendetes Programm am PC ist VLC, welches sogar den oft auch im IPTV mitgelieferten Teletext anzeigen kann.\nZum Anzeigen der im Netz der deutschen Telekom über Entertain frei empfangbaren Programme reicht ein Herunterladen einer aktuellen Liste mit Senderadressen und dem Öffnen der heruntergeladenen Datei. Mit der Taste \u0026quot;L\u0026quot; können anschließend die in der Playlist enthaltenen Sender angezeigt und umgeschaltet werden.\nLeider bleibt bei der Wiedergabe bei einigen der Bildschirm einfach schwarz. Eine sehr häufige Ursache ist, dass mehrere Netzwerkschnittstellen definiert sind und VLC einfach nicht auf der richtigen Schnittstelle auf den eintreffenden RTP-Stream hört. Solche zusätzlichen Netzwerkschnittstellen werden z.B. bei der Installation von Virtualisierungslösungen wie VMware oder VirtualBox angelegt. Da es in VLC leider keine Möglichkeit zu geben scheint, das zu verwendende Netzwerkinterface auszuwählen, bleibt als Ausweg nur, die virtuellen Schnittstellen in der Netzwerkumgebung zu deaktivieren. Danach ist ohne Neustart sofort wieder der IPTV-Empfang mit VLC möglich.\n","link":"https://blog.tausys.de/2013/02/10/keine-wiedergabe-von-iptv-mit-vlc/","section":"posts","tags":["IPTV","OSS","VLC","Windows"],"title":"Keine Wiedergabe von IPTV mit VLC"},{"body":"","link":"https://blog.tausys.de/tags/capture/","section":"tags","tags":null,"title":"Capture"},{"body":"Filmaufnahmen am eigenen PC (oft Screencasts genannt), sind in der heutigen Zeit mit leistungsstarken Rechnern kein Problem mehr. Ich bin ein Fan von freier Software, doch leider scheint es für diese Kategorie unter Windows nicht viel Auswahl zu geben. Das aktuellste Projekt ist Camstudio, welches allerdings nicht immer reibungslos bei mir funktionieren wollte. Nach ein paar Tests mit anderen Programmen bin ich bei Fraps gelandet. Anwender, die Wert auf großen Funktionsumfang legen, können sich das kommerzielle Camtasia anschauen.\nFraps ist zwar ziemlich minimalistisch und speichert die aufgenommen Videos fast unkomprimiert, doch erledigt es seine Aufgabe hervorragend. Das unkomprimierte Speichern ist bei entsprechendem freien Festplattenplatz und schneller Hardware kein Problem und das Encoding wird nachher vom Schnittprogramm übernommen. Fraps kann getestet werden (es können dann maximal 30 Sekunden aufgenommen werden und die Fraps-URL wird im Video eingeblendet), oder für knapp 30 € eine Lizenz erworben werden. Mit der Lizenzierung erhält man lebenslang kostenlos nachfolgende Updates.\nAls Schnittprogramm kann aus dem Opensource-Lager Avidemux verwendet werden. Leider besitzt Avidemux keinen Titelgenerator, noch über einfache Blenden herausgehende Animationsmöglichkeiten. Echte Kenner werden sicher Blender für die Titelanimationen einsetzen und auch das in Blender integrierte hervorragende Schnittsystem nutzen. Auch ein Versuch mit Lightworks kann Erfolg versprechen. Lightworks ist nach eigenen Aussagen ein nichtlineares Schnittsystem für Profis.\nIch habe mich für eine proprietäre Lösung entschieden: Magix Video Deluxe. Ambitioniert, intuitiv und mit einer Funktionsvielfalt, die sonst kein anderes getestetes Programm bieten konnte. Das Programm ist je nach Funktionsumfang für ca. 70 bis knapp 130 € zu haben. Updates auf neuer Versionen müssen allerdings extra bezahlt werden. Nach dem Kauf werden die verwendeten Codecs bei Benutzung aktiviert. Dies kann jeweils mit einem einzigen Klick online erfolgen und ist in Sekunden erledigt.\nAuch Magix hat eine Funktion, um Videos direkt vom Monitor aufzunehmen. Ein sehr großes Manko dabei ist jedoch, dass keine Fenster für die Aufnahme angegeben werden können, sondern nur ein Bereich auf dem Bildschirm. Der Aufnahmebereich kann mittels eines Auswahlrahmens festgelegt werden. Allerdings trifft man damit nicht sicher immer das aufzunehmende Fenster. Hier kann Fraps punkten. Der Inhalt des aktuellen Fensters wird nach dem Drücken einer einzustellenden Funktionstaste in exakten Abmessungen aufgenommen.\nNach der Aufnahme können die Videos, die bei entsprechender Auflösung und Framerate durch die in Fraps fehlende Komprimierung sehr schnell Größen im Gigabyte-Bereich belegten können, einfach in die Timeline von Magix gezogen werden. Magix kann auch mit sehr großen Videos umgehen und eine Vorschau inkl. der auf das Video angewendeten Effekte schnell anzeigen.\nMagix erleichtert den Einstieg in die vielfältigen Bearbeitungsfunktionen mit entsprechenden Hilfevideos. Der Einstieg ist schnell gefunden und mit vorgefertigten Filmvorlagen werden auch schnell ansprechende Ergebnisse erzeugt.\nErste Ergebnisse werde ich euch demnächst hier vorstellen.\n","link":"https://blog.tausys.de/2013/02/09/filmaufnahmen-am-windows-pc/","section":"posts","tags":["Avidemux","Blender","Capture","Fraps","Lightworks","Magix","Screen","Windows"],"title":"Filmaufnahmen am Windows-PC"},{"body":"","link":"https://blog.tausys.de/tags/fraps/","section":"tags","tags":null,"title":"Fraps"},{"body":"","link":"https://blog.tausys.de/tags/lightworks/","section":"tags","tags":null,"title":"Lightworks"},{"body":"","link":"https://blog.tausys.de/tags/screen/","section":"tags","tags":null,"title":"Screen"},{"body":"Allen Lesern des Blogs ein gesundes und erfolgreiches Jahr 2013!\n","link":"https://blog.tausys.de/2013/01/03/gesundes-neues-jahr/","section":"posts","tags":null,"title":"Gesundes neues Jahr"},{"body":"Du fährst mit dem Auto und hältst eine konstante Geschwindigkeit. Auf deiner linken Seite befindet sich ein Abhang. Auf deiner rechten Seite fährt ein riesiges Feuerwehrauto und hält die gleiche Geschwindigkeit wie du. Vor dir galoppiert ein Schwein, das eindeutig grösser ist als dein Auto und du kannst nicht vorbei. Hinter dir verfolgt dich ein Hubschrauber auf Bodenhöhe. Das Schwein und der Hubschrauber haben exakt deine Geschwindigkeit.\nWas unternimmst du, um dieser Situation gefahrlos zu entkommen?\nVom Kinderkarussell absteigen und weniger Glühwein trinken!\n","link":"https://blog.tausys.de/2012/12/01/weichnachtsraetsel/","section":"fundstuecke","tags":null,"title":"Weichnachtsrätsel"},{"body":"Seit heute bin ich stolzer Besitzer von drei devolo dLAN 500 AVplus. Die Geräte arbeiten nach dem Homeplug AV-Verfahren und sind für einen maximalen Durchsatz von 500 MBit/s konzipiert. Durch die integrierte Steckdose auf der Rückseite wird kein Steckplatz an den sonst manchmal knappen Steckdosen im Raum verbraucht. Zusätzlich ist über die Steckdose im Gerät ein Filter aktiv, der für nachfolgend angeschlossene Geräte die Netzwerkübertragung vom Stromkabel entkoppelt.\nErstinstallation Ich hatte vor, drei Standorte miteinander zu vernetzen: Router, Schreibtisch mit mehreren PCs und den Fernseher. Die Installation war innerhalb von Minuten erledigt. Adapter in die Steckdose, den Stecker nachfolgender Geräte in die Steckdose am Gerät stecken und Netzwerkkabel anschließen. Die einzelnen Adapter fanden sich innerhalb von Sekunden und das Netzwerk lief.\nAn der Vorderseite des Adapters befinden sich drei Statusanzeigen. Eine davon gibt den maximalen Durchsatz in drei Schritten wieder, dargestellt durch die Farben grün, organge und rot. Leider verschweigt das Handbuch, welchen Verbindungsgeschwindigkeiten diese drei Stufen entsprechen. Grün wird als HD-Streaming-tauglich beschrieben, orange als SD-Streaming-tauglich und rot wird als tauglich für einfache Datentransfers oder Internetzugang beschrieben. Erste Geschwindigkeitstests belegten, dass die Adapter einen Durchsatz von 450 MBit/s Durchsatz schaffen. Alle leuchten grün.\nVerschlüsselung Da bei ungünstiger Verkabelung des Stromnetzes im Haus im schlimmsten Fall der Nachbar durch einfaches Anstecken eines Adapters an seiner Steckdose Zugang zu meinem Netzwerk erhält, ist eine Verschlüsselung des Datenverkehrs dringend erforderlich. Die Adapter können den Datenverkehr mit AES128 verschlüsseln. Um die Verschlüsselung zwischen zwei Adaptern einzurichten muss man zuerst an einem Apadter den an der Unterseite angebrachten Taster kurz drücken und dann innerhalb von 2 Minuten am zweiten Adapter den Taster betätigen. Nach kurzer Zeit haben die zwei Adapter dann auf verschlüsselte Übertragung umgeschaltet. Mit dem dritten Adapter wiederholt man die Prozedur und nach unter einer Minute war auch die Verschlüsselung für das komplette Netzwerk eingerichtet und funktionierte problemlos.\nDa ich mir aber nicht sicher war, ob ein Standardpasswort verwendet wird (was dann ja relativ sinnlos wäre, da der Nachbar dann ja das gleiche hätte), habe ich das Passwort anschließend noch per Software auf ein eigenes geändert.\nKonfigurationssoftware Die Konfigurationssoftware für die Apapter ist für Mac, Linux und Windows auf der mitgelieferten CD enthalten. Für Windows wird eine grafische Konfigurationsoberfläche mitgeliefert (devolo dLAN Cockpit), für Linux zwei Kommandozeilen-Tools. Da nicht viele Konfigurationsmöglichkeiten vorhanden sind (braucht es ja nicht), präsentiert sich das dLAN Cockpit vergleichsweise schlicht:\nDevolo dLAN Cockpit\nMit dem dLAN Cockpit können zusätzliche Namen für die einzelnen Adapter vergeben werden, die aktuelle Übertragungsgeschwindigkeit kann angezeigt werden und es kann für alle Adapter gleichzeitig ein neues Passwort für die Verschlüsselung vergeben werden. Die Software läuft ohne Probleme in einer VirtualBox unter Windows-XP. Unter Wine scheint sie lt. Ubuntuusers.de nicht zu funktionieren (ungetestet).\nDie Linux-Software zur Konfiguration der Adapter wird als Sourecode mitgeliefert (sehr löblich!) und muß zuerst kompiliert werden. Da die Software keine ungewöhnlichen Libraries voraussetzt, ist das schnell erledigt. Die Vorgehensweise kann dem mitgelieferten README entnommen werden. Im Anschluß daran stehen zwei Utilities zur Verfügung: dlanlist und dlanpasswd. Wie die Namen schon sagen kann man sich mit Ersterem alle Adapter im Netzwerk anzeigen lassen. Mit dlanpasswd vergibt man (leider nur pro Adapter) ein Passwort für die Verschlüsselung.\nFazit Mit dem devolo dLAN 500 AVplus ist eine schnelle und betriebssystemunabhängige Vernetzung entfernt stehender Hardware möglich. Selbst das Setup inklusive Verschlüsselung ist innerhalb von Minuten ohne Konfiguration am Computer erfolgreich abgeschlossen. Die im Quelltext mitgelieferte Konfigurationssoftware für Linux hat zwar nicht alle Optionen der Windows-Variante, genügt dem Zweck aber vollkommen. Der Durchsatz zwischen den Adaptern ist stabil und entspricht den Erwartungswerten.\nEin Kritikpunkte könnten allerdings sein, dass am Adapter und auch in der Software nicht erkennbar ist, ob der Datenverkehr aktuell verschlüsselt wird. Einen weiteren \u0026quot;halben\u0026quot; Kritikpunkt gibt es für das LED-Schauspiel (zwei Adapter befinden sich in Sichtweite meines Betts). Vielleicht haben zukünftige Versionen hier ja etwas Dezenteres zu bieten.\n","link":"https://blog.tausys.de/2012/11/26/devolo-dlan-500-avplus-im-einsatz/","section":"posts","tags":["Netzwerk"],"title":"devolo dLAN 500 AVplus im Einsatz"},{"body":"Mit dem Add-On Lightning können in Thunderbird nicht nur lokale Kalender bearbeitet werden, sondern es können auch Kalender aus dem Netzwerk eingebunden werden. So z.B. der Google-Kalender.\nBisher erfolgte die Einbindung bis zu Lightning Version 1.8 unter Zuhilfenahme des Add-Ons \u0026quot;Provider for Google Calender\u0026quot;, welches eine bidirektionale Verbindung zum Google-Kalender ermöglichte. Mit Lightning allein war nur ein lesender Zugriff auf den Google-Kalender möglich.\nMit dem Update auf Thunderbird 17.0 wird auch Lightning auf die Version 1.9 aktualisiert. Leider arbeitet diese Version nicht mehr mit dem Add-On \u0026quot;Provider for Google Calender\u0026quot; zusammen. Die Google-Kalender werden nicht mehr in der Kalenderansicht angezeigt.\nLösung Das Add-On \u0026quot;Provider for Google Calender\u0026quot; kann deinstalliert werden, da es für die neue Methode der Einbindung nicht mehr erforderlich ist. Bei der Deinstallation müssen auch alle bisher eingebunden Google-Kalender entfernt werden. Anschließend werden die Kalender mit dem Protokoll WebDAV neu in Lightning eingetragen. Mit dieser Methode ist auch ein schreibender Zugriff von Lightning auf die Kalender möglich.\nDie Schritte im Einzelnen Zuerst muss das Add-On \u0026quot;Provider for Google Calender\u0026quot; deinstalliert werden. Auf der Add-On-Seite klickt man dazu bei \u0026quot;Erweiterungen\u0026quot; auf den Button \u0026quot;Entfernen\u0026quot; bei dem entsprechenden Eintrag. Beim Entfernen werden die Kalender angezeigt, die bisher von diesem Add-On verwaltet wurden. Diese müssen alle zum Entfernen ausgewählt werden.\nAnschließend müssen die Google-Kalender neu abonniert werden. Dazu wird in der Kalenderansicht \u0026quot;Datei\u0026quot; -\u0026gt; \u0026quot;Neu...\u0026quot; -\u0026gt; \u0026quot;Kalender...\u0026quot; angewählt.\nThunderbird Lightning Google Kalender Neu\nMit der Auswahl \u0026quot;Netzwerk\u0026quot; und dem Klick auf \u0026quot;Weiter \u0026gt;\u0026quot; gelangt man in folgenden Dialog:\nThunderbird Lightning Google Kalender CalDAV\nAls Format ist \u0026quot;CalDAV\u0026quot; auszuwählen und unter Adresse die oben angegebene URL einzutragen. Die Google-ID muss dabei mit der ID des jeweiligen Google-Kalenders ersetzt werden.\nDie ID des persönlichen Kalenders ergibt sich aus der Google-Mail-Adresse. Also etwa \u0026quot;benutzer@googlemail.com\u0026quot; oder \u0026quot;benutzer@gmail.com\u0026quot;. Dabei ist das @-Zeichen durch %40 zu ersetzen. Die vollständige Adresse für \u0026quot;benutzer@googlemail.com\u0026quot; würde also lauten:\nhttps://www.google.com/calendar/dav/benutzer%40googlemail.com/events\nDie ID von Gruppen-Kalendern ist auf der Google-Kalender-Seite zu finden. Dort fährt man über den jeweiligen Kalendernamen, wählt rechts daneben den Pfeil aus und klickt dann auf \u0026quot;Kalender-Einstellungen\u0026quot;. Leider wird die ID nicht direkt ausgegeben, sie ist jedoch im Abschnitt \u0026quot;Diesen Kalender einbetten\u0026quot; rechts im von Google ausgegeben HTML-Code zu sehen. Die ID für einen Gruppen-Kalender hat die Form \u0026quot;[lange Zeichenkette]@group.calendar.google.com\u0026quot; und ist hinter \u0026quot;src=\u0026quot; in den Kalendereinstellungen zu sehen.\nNach dem Klick auf \u0026quot;Weiter \u0026gt;\u0026quot; werden die Google-Anmeldedaten abgefragt und anschließend steht der Google-Kalender in Lightning bzw. Thunderbird zur Verfügung.\n","link":"https://blog.tausys.de/2012/11/21/google-kalender-in-thunderbird-einbinden/","section":"posts","tags":["Google","Kalender","Thunderbird"],"title":"Google Kalender in Thunderbird einbinden"},{"body":"","link":"https://blog.tausys.de/tags/thunderbird/","section":"tags","tags":null,"title":"Thunderbird"},{"body":" +10°C Die Bewohner von Mietwohnungen in Helsinki drehen die Heizung ab. Die Lappen (Bewohner Lapplands) pflanzen Blumen. +5°C Die Lappen nehmen ein Sonnenbad, falls die Sonne noch über den Horizont steigt. +2°C Italienische Autos springen nicht mehr an. 0°C Destilliertes Wasser gefriert. -1°C Der Atem wird sichtbar. Zeit, einen Mittelmeerurlaub zu planen. Die Lappen essen Eis und trinken kaltes Bier. -4°C Die Katze will mit ins Bett. -10°C Zeit, einen Afrikaurlaub zu planen. Die Lappen gehen zum Schwimmen. -12°C Zu kalt zum Schneien. -15°C Amerikanische Autos springen nicht mehr an. -18°C Die Helsinkier Hausbesitzer drehen die Heizung auf. -20°C Der Atem wird hörbar. -22°C Französische Autos springen nicht mehr an. Zu kalt zum Schlittschuhlaufen. -23°C Politiker beginnen, die Obdachlosen zu bemitleiden. -24°C Deutsche Autos springen nicht mehr an. -26°C Aus dem Atem kann Baumaterial für Iglus geschnitten werden. -29°C Die Katze will unter den Schlafanzug. -30°C Kein richtiges Auto springt mehr an. Der Lappe flucht, tritt gegen den Reifen und startet seinen Lada. -31°C Zu kalt zum Küssen, die Lippen frieren zusammen. Lapplands Fußballmannschaft beginnt mit dem Training für den Frühling. -35°C Zeit, ein zweiwöchiges heißes Bad zu planen. Die Lappen schaufeln den Schnee vom Dach. -39°C Quecksilber gefriert. Zu kalt zum Denken. Die Lappen schließen den obersten Hemdknopf. -40°C Das Auto will mit ins Bett. Die Lappen ziehen einen Pullover an. -44°C Mein finnischer Kollege überlegt, evtl. das Bürofenster zu schließen. -45°C Die Lappen schließen das Klofenster. -50°C Die Seelöwen verlassen Grönland. Die Lappen tauschen die Fingerhandschuhe gegen Fäustlinge. -70°C Die Eisbären verlassen den Nordpol. An der Universität Rovaniemi (Lappland) wird ein Langlaufausflug organisiert. -75°C Der Weihnachtsmann verlässt den Polarkreis. Die Lappen klappen die Ohrenklappen der Mütze runter. -120°C Alkohol gefriert. Folge davon: Der Lappe ist sauer. -268°C Helium wird flüssig. -270°C Die Hölle friert. -273,15°C Absoluter Nullpunkt. Keine Bewegung der Elementarteilchen. Die Lappen geben zu: Ja, es ist etwas kühl, gib mir noch einen Schnaps zum Lutschen! Und jetzt kennst Du den Unterschied zwischen Lappen und Waschlappen. Also stellt euch nicht so an!\nDer Text geistert seit ein paar Jahren im Internet herum und taucht regelmäßig zum Wintereinbruch auf. Quelle leider unbekannt.\n","link":"https://blog.tausys.de/2012/10/28/was-ist-kaelte/","section":"fundstuecke","tags":null,"title":"Was ist Kälte?"},{"body":"","link":"https://blog.tausys.de/tags/podcast/","section":"tags","tags":null,"title":"Podcast"},{"body":"","link":"https://blog.tausys.de/tags/politik/","section":"tags","tags":null,"title":"Politik"},{"body":" Für jeden Interessierten, der nicht nur den Mainstreammedien folgen will, gibt es seit kurzem einen sehr interessanten Podcast, in dem über sehr viel Hintergründe zu Themen gesprochen wird, zu denen Informationen nicht so ganz einfach im Netz zu finden sind: Alternativlos von Frank und Fefe.\nDie Themen drehen sich um Politik, Technik und Verschwörungstheorien. Ab und zu werden Studiogäste eingeladen, die über ihre Fachgebiete berichten. Sehr viele Fakten, sehr viele Hintergrundinformationen, meistens nicht wertend betrachtet: einfach genial anzuhören. Hervorragende Arbeit. Die Podcasts stehen im OGG- oder MP3-Format zur Verfügung. Eine Auswahl von Themen, um die es in den letzten Folgen ging:\nFolge 27 vom 6.10.2012 über Kriegsroboter und Killerdrohnen. Folge 26 vom 18.8.2012 mit Gaby Weber über investigativen Journalismus, Adolf Eichmann, verdeckte Atombombentests \u0026quot;für zivile Nutzung\u0026quot;, das israelische Atomprogramm und die Adenauerzeit. Folge 25 vom 13.7.2012 mit FX zum Thema Cyberwar — die Geschichte, das rechtliche Umfeld, die Strategien und wie weit die Politik ist. Folge 24 vom 2.7.2012 mit Dr.Mathias Döpfner über den Axel-Springer-Verlag, das Leistungsschutzrecht, das Verhältnis von Politik, Anzeigenkunden und Presse, BILD und die Zukunft des Kapitalismus. Folge 23 vom 6.5.2012 über Verschwörungstheorien, die sich später als wahr herausstellten. Die Podcasts sind zwar meistens sehr lang, lohnen sich aber auf jeden Fall das Anhören.\n","link":"https://blog.tausys.de/2012/10/15/politik-technik-verschwoerungstheorien-alternativlos-podcast/","section":"posts","tags":["Podcast","Politik","Technik","Verschwörungstheorien"],"title":"Politik, Technik, Verschwörungstheorien: Alternativlos Podcast"},{"body":"","link":"https://blog.tausys.de/tags/technik/","section":"tags","tags":null,"title":"Technik"},{"body":"","link":"https://blog.tausys.de/tags/verschw%C3%B6rungstheorien/","section":"tags","tags":null,"title":"Verschwörungstheorien"},{"body":" Piwik Bettina Experiment\nDas Experiment, die Google-Autovervollständigung zu beeinflussen, scheint gescheitert zu sein. Offenbar haben zu wenige Webmaster eine entsprechende Seite veröffentlicht und auch (für Google-Maßstäbe) zu wenige Benutzer nach dem entsprechenden Begriff gesucht und die Seiten aus den Suchergebnissen dann auch besucht.\nWie aus der obigen Grafik ersichtlich ist, stiegen die Zugriffe nach Bekanntwerden der Idee von @peterbreuer rapide an. Sogar eine leichte Beeinflussung der Google-Autovervollständigung konnte beobachtet werden. Den Unterstützern der lustigen Idee ging allerdings schon nach zwei Tagen die Puste aus. Die Zugriffe bewegen sich jetzt wieder auf dem vorherigen Niveau.\nEtwas Positives hat das Experiment allerdings gezeigt: mit entsprechender #CommunityPower kann etwas erreicht werden.\n","link":"https://blog.tausys.de/2012/09/15/google-autovervollstaendigung-experiment-fehlgeschlagen/","section":"posts","tags":null,"title":"Google-Autovervollständigung: Experiment fehlgeschlagen"},{"body":"Nach reichlich 24 Stunden stellen sich erste Teilerfolge bei der Google-Autovervollständigung von Google-Suchergebnissen ein:\nGoogle Autovervollständigung - Bettina Wulff schmeckt\nWie berichtet sollte mit einer Flut von Webseiten und der Suche der Nutzer auf Google nebst dem Anklicken der Suchergebnisse eine Änderung der (bisher unrühmlichen) Autovervollständigung erreicht werden. Auch, wenn ein paar Webseitenbetreiber (schätzungsweise leider weniger als zwanzig) bei der Aktion mitgemacht haben, so sind doch erste Ergebnisse sichtbar. Google meint, lecker und auch das nachfolgende Hähnchen entsprächen dem gesuchten Begriff.\nPiwik - Liste der Suchbegriffe\nDie Besucher auf dieser Seite hier halten sich leider in Grenzen. Eine Suche nur nach dem Begriff hilft dem Vorhaben nicht. Die Suchergebnisse müssen auch angeklickt werden. Und für die Spezialisten: das Klicken per wget ist nicht hilfreich, da wget nicht das beim Klick notwendige JavaScript-Schnipsel ausführt, welches zum Zählen der Klicks bei Google notwendig ist.\nIn der Statistik rechts sind viele ankommende Besucher mit dem entsprechenden Suchbegriff unter \u0026quot;Suchbegriff nicht definiert\u0026quot; gelistet, da Google seit geraumer Zeit die Suchbegriffe für in Google angemeldete Benutzer nicht mehr an die Zielwebseiten liefert.\nMacht weiter und lasst euch nicht entmutigen. Wir schaffen das mit #CommunityPower.\n","link":"https://blog.tausys.de/2012/09/11/erster-teilerfolg-bei-google-autovervollstaendigung/","section":"posts","tags":null,"title":"Erster Teilerfolg bei Google-Autovervollständigung"},{"body":"Wer WordPress so konfiguriert hat, dass die URLs bzw. Permalinks der Postings aus den Titeln der Beiträge erstellt werden, wird sicher schnell feststellen, dass deutsche Umlaute fehlerhaft umgesetzt werden - ä wird zu a, das scharfe S zu einem einfachen s. Gerade für Suchmaschinen ist es aber wichtig, wenn der Titel bereits in der URL des Suchergebnisses gefunden werden kann.\nAbhilfe für die korrekte Umsetzung der deutschen Umlaute und des scharfen S bringt das WordPress-Plugin German Slugs. Nach dessen Installation und Aktivierung sind keine weiteren Einstellungen notwendig. Ab sofort werden die Umlaute in den Permalinks durch ihre Umschreibungen mit e ersetzt, so z.B. wird ä durch ae ersetzt. Das scharfe S wird durch ss ersetzt.\nNebenbei: die Form, wie WordPress die URLs generieren soll, kann unter Einstellungen -\u0026gt; Permalinks vorgegeben werden.\n","link":"https://blog.tausys.de/2012/09/11/korrekte-umsetzung-deutscher-umlaute-in-wordpress-urls/","section":"posts","tags":["OSS","WordPress"],"title":"Korrekte Umsetzung deutscher Umlaute in WordPress-URLs"},{"body":"Frau Bettina Wulff gefällt die Google-Autovervollständigung zu ihrem Namen nicht. Daraufhin hatte @peterbreuer die Idee, Google von \u0026quot;schmeckt lecker nach Hähnchen\u0026quot; zu überzeugen.\nhttps://twitter.com/peterbreuer/status/245170353050103809\nAndere meinen, \u0026quot;schmeckt lecker nach Hähnchen\u0026quot; schon einmal in einem Film gehört zu haben. Wir werden sehen, wie die zu erwartende Flut von neuen Seiten die Google-Autovervollständigung beeinflusst.\nEmpfehlenswert sind noch folgende Links:\nStreisand-Effekt Shitstorm ","link":"https://blog.tausys.de/2012/09/10/bettina-wulff-schmeckt-lecker-nach-haehnchen/","section":"posts","tags":null,"title":"Bettina Wulff schmeckt lecker nach Hähnchen"},{"body":"Die neue Lightworks-Version 11.0.2 ist nun nach knapp acht Monaten Entwicklungszeit verfügbar. Bisher steht sie nur für Windows zur Verfügung, Versionen für Linux und Mac sollen in Kürze folgen.\nMit der neuen Version hat auch die lange angekündigte und in den Foren kontrovers diskutierte Trennung in eine freie und eine jährlich zu lizensierende Version Einzug gehalten. Die Unterschied zwischen beiden Versionen werden übersichtlich in einer Matrix dargestellt. Persönlich ärgert mich ein bisschen, dass der H.264-Support nur in der gebührenpflichtigen Version enhalten ist. Die freier Version findet sich im Downloadbereich der Lightworks-Webseite. (Aktuell scheint diese wegen der großen Nachfrage etwas Schluckauf zu haben.)\nSobald die Version für Linux verfügbar ist, werde ich erste Tests durchführen und hier wieder berichten.\n","link":"https://blog.tausys.de/2012/09/05/neue-lightworks-version-verfuegbar/","section":"posts","tags":["Editor","Lightworks","NLE","Video"],"title":"Neue Lightworks-Version verfügbar"},{"body":"","link":"https://blog.tausys.de/tags/nle/","section":"tags","tags":null,"title":"NLE"},{"body":"Mit dem Plugin Wordpress-Plugin WPtouch ist es möglich, das eigene WordPress-Blog ohne eine einzige Zeile im Thema der Webseite zu ändern für mobile Geräte bereitzustellen. Das Plugin bringt dafür ein Standardthema mit. Einige Farben des Themas für Mobilgeräte können angepasst werden, AdSense kann eingebunden werden und Kategorien oder Schlagworte können von der Anzeige ausgenommen werden.\nDieses Blog benutzt bereits dieses WordPress-Plugin und war in unter fünf Minuten konfiguriert und einsatzbereit.\n","link":"https://blog.tausys.de/2012/08/25/wordpress-blog-fuer-mobile-geraete-bereitstellen/","section":"posts","tags":["WordPress"],"title":"WordPress-Blog für mobile Geräte bereitstellen"},{"body":"","link":"https://blog.tausys.de/tags/gnome-terminal/","section":"tags","tags":null,"title":"Gnome-Terminal"},{"body":"In einem Xterm oder Gnome-Terminal ist es nützlich, dass der aktuelle Host oder das Verzeichnis in der Caption des Teminalfensters angezeigt wird. Die Caption wird evtl. auch in der Taskleiste des jeweiligen Displaymanagers angezeigt, so dass man schnell weiß, welches Terminalfenster wo steht. Allerdings gibt es einige Programme, z.B. den Midnight-Commander, welche die Caption umstellen und beim Verlassen des Programms nicht wieder zurückstellen. In der Shell kann man mitlerweile ganz woanders sein, doch das Terminalfenster zeigt immer noch eine veraltetete Caption an.\nAbhilfe bringt das Umsetzen der Bash-Variablen PS1, welche die Anzeige des Kommandoprompts definiert. In diese Variable kann man Steuerzeichen einfügen, die die Caption entsprechend setzen. In der Datei ~/.bashrc fügt man dazu am Ende folgende Kommandos ein:\n1PS1=\u0026#39;${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[01;34m\\] \\w \\$\\[\\033[00m\\] \u0026#39; 2 3case \u0026#34;$TERM\u0026#34; in 4 xterm) 5 PS1=\u0026#34;$PS1\\033]0;${USER}@${HOSTNAME}: ${PWD}\\007\u0026#34; 6 ;; 7 *) 8 ;; 9esac Eventuell muss die erste Zeile mit der aktuellen Definition von PS1 ersetzt werden (dieser hier stammt aus einer Linux-Mint Installation). Die von der Distribution gesetzte Sequenz für den Kommandoprompt kann vor der Modifikation mit\n1echo $PS1 angezeigt werden. Der nachfolgende Block dient zur Auswahl des jeweiligen Terminals. Auf der Konsole kann keine Caption gesetzt werden, also wird die Steuersequenz auch nur bei Terminals mit Typ xterm hinzugefügt.\nBei Bedarf kann der Codeblock leicht um andere Terminaltypen erweitert werden.\n","link":"https://blog.tausys.de/2012/08/04/terminal-caption-durch-bash-aktualisieren/","section":"posts","tags":["bash","gnome-terminal","Linux","OSS","Ubuntu","xterm"],"title":"Terminal-Caption durch Bash aktualisieren"},{"body":"","link":"https://blog.tausys.de/tags/ubuntu/","section":"tags","tags":null,"title":"Ubuntu"},{"body":"","link":"https://blog.tausys.de/tags/xterm/","section":"tags","tags":null,"title":"Xterm"},{"body":"Bei einer frischen Installation eines Ubuntu 12.04 LTS Servers und nach dem Aktivieren von logcheck (was auf keinem Server fehlen sollte), flatterten immer wieder E-Mails mit folgender Fehlermeldung ins Postfach:\nsshd[21743]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key\nUnter oben angegebener Ubuntu-Version wurde zwar in der Konfigurationsdatei des sshd (/etc/ssh/sshd_config) der Eintrag\nHostKey /etc/ssh/ssh_host_ecdsa_key\ngesetzt, dieser Key aber nicht unter /etc/ssh/ generiert. Ein\nssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''\nholt das nach und die E-Mails von logcheck enthalten nun zumindest diese Fehlermeldung nicht mehr.\n","link":"https://blog.tausys.de/2012/07/31/could-not-load-host-key-etcsshssh_host_ecdsa_key/","section":"posts","tags":["Linux","OSS","sshd","Ubuntu"],"title":"Could not load host key: /etc/ssh/ssh_host_ecdsa_key"},{"body":"Bei der Ubuntu-Serverinstallation kann ausgewählt werden, dass die System-Partitionen auf dem Rechner automatisch verschlüsselt werden. Zudem wird bei einer Standarinstallation die verschlüsselte Partion anschließend automatisch mit LVM aufgeteilt. Bei einem Fehler im Dateisystem der Root-Partition startet der Rechner dann selbst im Rescue Modus nur noch in eine Busybox, in der keinerlei Kommandos für LUKS oder LVM verfügbar sind. Genau so ist es mir passiert und es war guter Rat teuer, wie das System wieder zum Leben zu erwecken ist. Im Folgenden wird beschrieben, wie mit einer Linux-Live-CD auf die Daten in den mit LUKS verschlüsselten und mit LVM aufgeteilten Partitionen zugegriffen werden kann.\nLinux-Live-CD Zuerst einmal wird eine Linux-Live-CD benötigt, um die Partitionen zu bearbeiten. Der Kernel sollte LUKS- und LVM-Unterstützung einkompiliert haben. Meines Wissens nach ist das bei allen aktuellen Ubuntu- oder Linux Mint-Live-CDs der Fall. Evtl. ist auch noch die CD von der Installation des Servers vorhanden. Andernfalls kommt man nicht darum herum, sich auf einem anderen System eine aktuelle Live-CD herunterzuladen und zu brennen oder mit dem Download einen bootbaren USB-Stick zu erstellen. Nach dem Start von der Live-CD bzw. DVD öffnet man ein Terminal. Sollte (wie bei mir) am Server keine Maus angeschlossen sein, kann alternativ auch mit der Tastenkombination Alt-F1 auf die erste Konsole gewechselt werden. Danach wird mit sudo -s zum Benutzer root gewechselt.\nLUKS Wurde bei der Installation des Servers keine eigene Partitionierung durchgeführt, enthält die erste primäre Partition (sda1 bzw. hda1) das Verzeichnis /boot. Die zweite primäre Partition (sda2 bzw. hda2) wird als erweitert gekennzeichet und darin die erste logische Partition (sda5 bzw. hda5) verschlüsselt und darin das LVM erstellt. Die Anzeige der Partitionen erfolgt mit dem Kommando fdisk -l:\n1# fdisk -l 2 3Platte /dev/sda: 123.5 GByte, 123522416640 Byte 4255 Köpfe, 63 Sektoren/Spur, 15017 Zylinder 5Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes 6Sector size (logical/physical): 512 bytes / 512 bytes 7I/O size (minimum/optimal): 512 bytes / 512 bytes 8Disk identifier: 0x0008ad2c 9 10 Gerät boot. Anfang Ende Blöcke Id System 11/dev/sda1 * 1 32 248832 83 Linux 12/dev/sda2 32 15018 120376321 5 Erweiterte 13/dev/sda5 32 15018 120376320 83 Linux Die Partition 5 wird dabei nicht als \u0026quot;Linux LVM\u0026quot; gekennzeichnet, da sie ja erst einmal eine mit LUKS verschlüsselte Partition ist. Es gilt nun, diese Partiton zu entperren. Das Kommando\n1# cryptsetup luksOpen /dev/sda5 sda5_crypt fragt nach dem Verschlüsselungspasswort und stellt anschließend ein virtuelles Device unter /dev/mapper/sda5_crypt bereit.\nLVM Mit dem Kommando pvscan wird anschließend das System auf vorhandene LVM-PVs untersucht:\n1# pvscan 2 PV /dev/mapper/sda5_crypt VG enterprise lvm2 [114,80 GiB / 0 free] 3 Total: 1 [114,80 GiB] / in use: 1 [114,80 GiB] / in no VG: 0 [0 ] Hinter \u0026quot;VG\u0026quot; wird der Name der Volume Group ausgegeben. Anschließend wird nach logischen Volumes mit dem Kommando lvscan gesucht:\n1# lvscan 2 inactive \u0026#39;/dev/enterprise/root\u0026#39; [111,93 GiB] inherit 3 inactive \u0026#39;/dev/enterprise/swap_1\u0026#39; [2,87 GiB] inherit Die logischen Volumes müssen nun mit dem Kommando\n1# vgchange -a y aktiviert werden. Damit werden die Volumes dem Kernel bekannt. Ein anschließendes lvscan zeigt die Volumes dann auch als aktiv an:\n1# lvscan 2 ACTIVE \u0026#39;/dev/enterprise/root\u0026#39; [111,93 GiB] inherit 3 ACTIVE \u0026#39;/dev/enterprise/swap_1\u0026#39; [2,87 GiB] inherit Sollten die LVM-Kommandos nicht auf der Live-CD enthalten sein, können diese mit apt-get install lvm2 nachinstalliert werden. Vorraussetzung ist dabei natürlich, dass im Live-System eine Internetverbindung besteht.\nÜberprüfen des Dateisystems Mit\n1# fsck.ext4 -v /dev/enterprise/root kann die Partition nun auf Fehler überprüft und evtl. repariert werden.\nMounten der Partitionen Nach den vorgenannten Schritten kann die Partition wie gewohnt ins Dateisystem eingehängt werden. Um Fehler zu vermeiden sollte das vorzugsweise im Nur-Lese-Modus erfolgen:\n1mount -o ro /dev/enterprise/root /mnt Mit diesem Kommando wird die Partition unter dem Verzeichnis /mnt eingehängt und es kann auf die Daten zugegriffen werden. Evtl. kopiert man nun die noch zu sichernden Daten auf einen USB-Stick oder einen anderen Ort im Netzwerk oder versucht anschließend nach der erfolgreichen Reparatur des Dateisystems den Server wieder ganz normal hochzufahren.\n","link":"https://blog.tausys.de/2012/07/20/datenrettung-von-luks-lvm-partitionen/","section":"posts","tags":["Linux","LUKS","LVM","OSS","Rescue","Ubuntu"],"title":"Datenrettung von LUKS + LVM Partitionen"},{"body":"","link":"https://blog.tausys.de/tags/lvm/","section":"tags","tags":null,"title":"LVM"},{"body":"","link":"https://blog.tausys.de/tags/rescue/","section":"tags","tags":null,"title":"Rescue"},{"body":"Kommentar-Spam ist nichts Neues. Für fast jedes Content-Managment-System gibt es eine Erweiterung, die mehr oder weniger erfolgreich die Bots abwehrt. Oft wird auch geraten, die IP-Adressen mittels geeigneter Einträge in der Datei .htaccess auszusperren. Bei dieser Lösung muss jedoch immer erst der Webserver den Request behandeln, die Datei .htaccess parsen und anhand der IP-Adresse entscheiden, ob ein Zugriff auf die Webseite erlaubt ist. Eine andere Methode ist der Einsatz von iptables, welches bereits auf Kernelebene den Zugriff von bestimmten IP-Adressen auf den Server verhindern kann. Dadurch wird besonders auf stark frequentierten Webseiten Rechenzeit gespart und bleibt so für die echten Besucher übrig.\nZuerst einmal wird ein sogenannter Chain mit einem frei definierbaren Namen in iptables angelegt. Im folgenden Beispiel habe ich den Chain \u0026quot;wordpress-spambot\u0026quot; genannt:\niptables -N wordpress-spambot\nAnschließend wird dem Chain eine Regel für die Rückkehr in den übergeordneten Chain hinzugefügt:\niptables -A wordpress-spambot -j RETURN\nDamit wäre der Chain auch schon fertig. Jetzt wird im Chain INPUT, in dem alle IP-Pakete von aussen ankommen eine Regel erstellt, die alle TCP-Pakete mit dem Zielport 80 oder 443 (also eine Anfrage an den HTTP- oder HTTPS-Port) an den gerade erstellten Chain \u0026quot;wordpress-spambot\u0026quot; weiterleitet:\niptables -A INPUT -p tcp -m multiport --dports 80,443 -j wordpress-spambot\nDer Grundaufbau ist somit fertig. Alle ankommenden TCP-Pakete an die Ports 80 oder 443 werden an den Chain \u0026quot;wordpress-spambot\u0026quot; weitergeleitet. Die Regeln in diesem Chain werden von oben nach unten abgearbeitet. Im Moment ist dort nur eine einzige Regel enthalten, die die Rückkehr in den aufrufenden Chain bewirkt. Um das zu überprüfen, können mit\niptables -L -v\ndie aktuellen iptables-Regeln angezeigt werden. Das Ergebnis sollte folgende Angaben enthalten:\n1Chain INPUT (policy ACCEPT 1413K packets, 678M bytes) 2pkts bytes target prot opt in out source destination 32148 385K wordpress-spambot tcp -- any any anywhere anywhere multiport dports www,https 4 5Chain wordpress-spambot (1 references) 6pkts bytes target prot opt in out source destination 72136 384K RETURN all -- any any anywhere anywhere Anschließend können nacheinander die zu sperrenden IP-Adressen in den Chain \u0026quot;wordpress-spambot\u0026quot; eingetragen werden:\niptables -I wordpress-spambot --source xxx.xxx.xxx.xxx -j DROP\nDamit wird am Anfang des Chains \u0026quot;wordpress-spambots\u0026quot; eine Regel eingetragen, die bewirkt, dass jeder eingehende Verbindungsversuch von der angegeben IP-Adresse sofort abgebrochen wird. Durch die Angabe von DROP wird der Verbindungsabbruch dem Absender nicht mitgeteilt. Dumme Bots können dadurch sogar noch etwas ausgebremst werden, da sie auf einen Timeout warten. Auch braucht hier keine Auswahl mehr auf die Ports 80 und 443 und das Protokoll TCP durchgeführt zu werden, da ja nur genau diese im Chain \u0026quot;wordpress-spambot\u0026quot; ankommen.\nNach längere Laufzeit können die durch die iptables-Regeln verworfenen Pakete angezeigt werden:\niptables -L wordpress-spambot -v -n\nIn den ersten beiden Spalten der Ausgabe werden die Anzahl der verworfen Pakete und Bytes für jede einzelne Regel im Chain \u0026quot;wordpress-spambot\u0026quot; ausgegeben.\nVerbindungsversuche von den gesperrten IP-Adressen werden jetzt bereits auf Kernelebene abgelehnt und belasten somit nur unmerklich das System. Weitere Prozesse auf dem Server brauchen sich um die Spamabwehr von diesen IP-Adressen nicht mehr zu kümmern. Einen Nachteil hat diese Lösung allerdings: die iptables-Regeln sind nicht permanent. Ohne besondere Vorkehrungen sind die iptables-Regeln nach einem Server-Neustart verloren und müssen neu erfasst werden.\n","link":"https://blog.tausys.de/2012/07/11/spam-bots-mit-iptables-aussperren/","section":"posts","tags":["iptables","OSS","Spam","WordPress"],"title":"Spam-Bots mit iptables aussperren"},{"body":"Vor kurzem trat beim Schreiben der Konfiguration meines Bintec-Router R1200w ein Fehler auf. Der Fehler war anscheinend so schwerwiegend, dass sich das Gerät nach einem Stacktrace in eine ewige Bootschleife verabschiedet hat. Eigentlich sollte der Fehler schnell wieder behoben werden können:\nserielles Kabel anschließen minicom oder eine entsprechende Alternative zum Ansteuern des seriellen Ports starten Löschen der alten Konfiguration im Bootmenü Neustart des Routers wer nicht den Standard 192.168.2.1 weiter verwendet hat: Einstellen der zum lokalen Netzwerk gehörenden IP-Adresse Zurückspeichern einer gespeicherten Konfiguration von einem TFTP-Server, welche mit put-all, also inkl. aller Passwörter erstellt wurde Der Router quittiert das mit einem Fehler:\nBintec Config Restore Error\nIm Router-Log wurde folgende Fehlermeldung angezeigt:\nCONFIG: TFTP-file line#col 5#0: ERROR wrong decrypt password\nNatürlich wurde die Konfiguration mit einem Passwort gespeichert. Allerdings enthalt SETUP in der SNMP-Shell und der aktuellen Version V.7.10 Rev. 1 (Patch 9) keine Eingabemöglichkeit für das erforderliche Passwort.\nErst über das FCI-Interface, also die Verwaltungswebseite des Routers ist die Eingabe des Passwortes und damit ein erfolgreiches Restore der gesicherten Konfiguration möglich:\nBintec Config Restore FCI\n","link":"https://blog.tausys.de/2012/07/01/bintec-r-serie-fehler-beim-restore-der-konfiguration/","section":"posts","tags":["Bintec","Funkwerk","Konfiguration"],"title":"Bintec R-Serie – Fehler beim Restore der Konfiguration"},{"body":"","link":"https://blog.tausys.de/tags/konfiguration/","section":"tags","tags":null,"title":"Konfiguration"},{"body":"","link":"https://blog.tausys.de/tags/cache/","section":"tags","tags":null,"title":"Cache"},{"body":"Liebe Kommentar-Spammer,\nbitte kommt in ausreichender Anzahl, möglichst bei jedem Artikel dieses Blogs vorbei und hinterlasst dort euren Müll. Das absolut geniale WordPress-Plugin Antispam Bee kümmert sich um euch. Und als sehr schöner Nebeneffekt tragt ihr dazu bei, dass nach einem Leeren des Seitencaches der Cache schnell wieder aufgebaut wird und die Seiten wieder schnell an die eigentlichen Leser ausgeliefert werden können.\nFür eure fleißige Arbeit habt ihr euch ein Dankeschön verdient.\nEuer Webmaster\n","link":"https://blog.tausys.de/2012/06/29/kommentar-spammer-beschleunigen-wordpress-seite/","section":"posts","tags":["Cache","Spam","WordPress"],"title":"Kommentar-Spammer beschleunigen WordPress-Seite"},{"body":"","link":"https://blog.tausys.de/tags/abmahnwahn/","section":"tags","tags":null,"title":"Abmahnwahn"},{"body":"Ein nettes Feature für die Kommentare zu Blog-Posts sind Avatarbilder. Durch diese kleinen Bilder, die neben dem Kommentar angezeigt werden, kann in einer Kommentarkette schnell erkannt werden, wer wem geantwortet hat. Auch sind mehrere Kommentare des gleichen Nutzers schnell zu erkennen.\nDamit nun nicht der Kommentator auf jedem Blog, in dem er kommentiert, immer wieder das gleiche Bild hochladen muß, gibt es einen Dienst, bei dem das eigene Avatarbild hinterlegt werden kann und dieser Dienst dann von anderen Blogs (anhand der im Kommentar verwendeten E-Mail-Adresse) nach dem Bild befragt werden kann: Gravatar. WordPress unterstützt Avatarbilder und verlinkt das Avatarbild (falls eines vorhanden ist) mit dem Bild, welches auf Gravatar gespeichert ist. Dadurch wird in allen kommentierten Blogs immer das gleiche Avatarbild zu einer eingegebenen E-Mail-Adresse angezeigt.\nAlles ganz harmlos und ein nützliches Feature, könnte man meinen. Was aber nun, wenn der Kommentator auf Gravatar ein urheberechtlich geschütztes Bild als sein Avatarbild hochgeladen hat? Damit wird in allen Blogs, in denen er kommentiert hat und dieses Feature angeschaltet wurde, ein geschütztes Bild in den Kommtaren angezeigt. Es werden also Bilder angezeigt, die nicht vom Blogbetreiber veröffentlicht wurden.\nJetzt ist ein Fall bekannt geworden, in dem der Rechteinhaber eines Bildes einen Blogbetreiber abgemahnt hat, weil ein Kommentator ein geschütztes Bild als Avatarbild verwendet hat. Der Blogger sollte 1.076,25 € zahlen und eine Unterlassungserklärung abgeben. Erst mit anwaltlicher Hilfe konnte der Fall wohl um einiges günstiger geregelt und dem Rechteinhaber erst einmal erklärt werden, dass der Blogbetreiber erst bei Kenntnis des von Anderen eingestellten geschützten Materials tätig werden muss. Der Rechteinhaber hat das meiner Meinung nach aber sicher schon gewußt, hat aber trotzdem probiert, den Blogger abzumahnen. Einige werden auf so ein Vorgehen sicher auch hereinfallen und vorschnell zahlen.\n","link":"https://blog.tausys.de/2012/06/23/abmahnwahn-mit-avatarbildern-gefahr-durch-gravatar/","section":"posts","tags":["Abmahnwahn","Anwalt","Avatar","Blog","Gravatar"],"title":"Abmahnwahn mit Avatarbildern – Gefahr durch Gravatar"},{"body":"","link":"https://blog.tausys.de/tags/anwalt/","section":"tags","tags":null,"title":"Anwalt"},{"body":"","link":"https://blog.tausys.de/tags/avatar/","section":"tags","tags":null,"title":"Avatar"},{"body":"","link":"https://blog.tausys.de/tags/gravatar/","section":"tags","tags":null,"title":"Gravatar"},{"body":"Nach vielen Tests hat sich nun das Gesicht des Blogs verändert. Das vorherigige Theme war mit Features überladen, die offenbar auch einiges an Ladezeit gekostet haben. Das jetzige Thema ist ruhig, ruckelt nicht beim Nachladen von Bilder, Buttons oder Widgets und ich denke, es sieht optisch auch ganz schick aus.\nFunktional sind auf der Webseite die gleichen Möglichkeiten wie im alten Thema geboten. An der Bedienung und dem Finden von Informationen hier im Blog hat sich nichts geändert.\nIch hoffe, es gefällt.\n","link":"https://blog.tausys.de/2012/06/20/ein-neues-webseiten-gesicht/","section":"posts","tags":["Themes","WordPress"],"title":"Ein neues Webseiten-Gesicht"},{"body":"","link":"https://blog.tausys.de/tags/themes/","section":"tags","tags":null,"title":"Themes"},{"body":"Nachfolgende Funktion berechnet die Entfernung zwischen zwei in geographischer Länge und Breite angegebenen Punkten auf der Erde in Kilometer:\n1drop function if exists entfernung; 2delimiter // 3create function entfernung(lat1 double, lon1 double, lat2 double, lon2 double) 4\treturns double 5\tlanguage sql 6\tcontains sql 7\tcomment \u0026#39;Berechnet die Entfernung zwischen zwei Koordinaten\u0026#39; 8begin 9\tdeclare erdradius double; 10 11\tdeclare lambda1 double; 12\tdeclare phi1 double; 13 14\tdeclare lambda2 double; 15\tdeclare phi2 double; 16 17\tdeclare x1 double; 18\tdeclare y1 double; 19\tdeclare z1 double; 20 21\tdeclare x2 double; 22\tdeclare y2 double; 23\tdeclare z2 double; 24 25\tdeclare entfernung double; 26 27\tset erdradius = 6371; 28 29\tset lambda1 = lon1 * pi() / 180; 30\tset phi1 = lat1 * pi() / 180; 31 32\tset lambda2 = lon2 * pi() / 180; 33\tset phi2 = lat2 * pi() / 180; 34 35\tset x1 = erdradius * cos(phi1) * cos(lambda1); 36\tset y1 = erdradius * cos(phi1) * sin(lambda1); 37\tset z1 = erdradius * sin(phi1); 38 39\tset x2 = erdradius * cos(phi2) * cos(lambda2); 40\tset y2 = erdradius * cos(phi2) * sin(lambda2); 41\tset z2 = erdradius * sin(phi2); 42 43\tset entfernung = 2 * erdradius * asin(sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2) + pow(z1 - z2, 2)) / (2 * erdradius)); 44 45\treturn entfernung; 46end; 47// Update:\nFolgende Funktion ist ca. 4 Mal schneller (getestet mit der MySQL-Funktion BENCHMARK(), Quelle)\n1DELIMITER // 2 3DROP FUNCTION IF EXISTS DISTANCE; // 4 5CREATE FUNCTION DISTANCE( lat1 DOUBLE, lon1 DOUBLE, lat2 DOUBLE, lon2 DOUBLE ) 6 RETURNS DOUBLE NO SQL DETERMINISTIC 7 COMMENT \u0026#39;counts distance (km) between 2 points on Earth surface\u0026#39; 8BEGIN 9 DECLARE dtor DOUBLE DEFAULT 57.295800; 10 11 RETURN (6371 * acos(sin( lat1/dtor) * sin(lat2/dtor) + 12 cos(lat1/dtor) * cos(lat2/dtor) * 13 cos(lon2/dtor - lon1/dtor))); 14END; // 15 16DELIMITER ; ","link":"https://blog.tausys.de/2012/05/04/entfernungen-berechnen-als-sql-funktion/","section":"posts","tags":["MySQL","SQL"],"title":"Entfernungen berechnen – als SQL-Funktion"},{"body":"","link":"https://blog.tausys.de/tags/sql/","section":"tags","tags":null,"title":"SQL"},{"body":"Beim Benutzen von unterschiedlichen Filesystemen als Ablageort für Dateien von unterschiedlichen Betriebssystemen kann es vorkommen, dass Dateinamen mit Umlauten oder anderen Sonderzeichen nicht auf allen anderen Betriebssystemen gleich aussehen. Dies liegt einerseits daran, dass bei der Erstellung der Datei evtl. falsche Zeichensätze für das Dateisystem vorgegeben worden sind und das jeweilige andere Betriebssystem die Zeichen im Dateinamen dann falsch interpretiert. Hinzu kommen noch Netzwerkclients, die evtl. die erforderliche Konvertierung nicht ordnungsgemäß durchführen und so Dateinamen mit Sonderzeichen falsch auf dem Zielsystem erstellen.\nEine oft anzutreffende Variante beim Zusammenspiel von Windows und Linux sind Dateinamen, die von Windows mit dem Zeichensatz ISO-8859-1 oder ISO-8859-15 kodiert worden sind, von Linux aber als UTF-8 erwartet werden.\nBei der Auflistung solch falsch kodierter Dateinamen erhält man dann z.B. folgende Namen: Brief f�r Foobar.doc.\nEin Anschließendes Öffnen des Dokuments erzeugt in z.B. LibreOffice dann die Fehlermeldung Die Datei oder der Ordner Brief f�r Foobar.doc existiert nicht.\nIn der Linux-Shell kann man solche falsch benannten Dateien einfach umbenennen. In diesem Beispiel würde das mit folgendem Befehl geschehen:\nmv Brief\\ f?r\\ Foobar.doc Brief\\ für\\ Foobar.doc\nAnstelle der Sonderzeichen setzt man das Fragezeichen, welches als Maske für genau ein Zeichen steht. Wichtig ist die Maskierung von Leerzeichen mit einem vorgestellen umgekehrten Schrägstrich (Backslash). Alternativ zum Maskieren mit dem Backslash (auch Escapen genannt) können die beiden Dateinamen auch in Anführungszeichen (\u0026quot;) eingefasst werden.\nmv \u0026quot;Brief f?r Foobar.doc\u0026quot; \u0026quot;Brief für Foobar.doc\u0026quot;\nBei wenigen Dateien kann diese Umbenennung von Hand erfolgen. Was aber, wenn sehr viele Dateinamen zu korrigieren sind? Auch hier ist bereits ein geeignetes Linux-Utility vorhanden: convmv. Mit dem Befehl\nconvmv -f iso-8859-15 -t utf-8 --notest /verzeichnis/zu/den/dateien/\nwerden im angegeben Verzeichnis die Dateinamen vom Zeichensatz ISO-8859-15 in den Zeichensatz UTF-8 konvertiert. Mit dem Schalter -r kann diese Aufgabe auch gleich für alle darunterliegenden Verzeichnisse ausgeführt werden. Sollte das Utility nicht bereits auf dem Rechner installiert worden sein, kann es über Synaptic oder mit dem Befehl\nsudo apt-get install convmv\ninstalliert werden.\n","link":"https://blog.tausys.de/2012/05/03/falsch-dargestellt-umlaute-im-dateinamen-unter-linux-korrigieren/","section":"posts","tags":["Filesystem","Linux","OSS","Ubuntu"],"title":"Falsch dargestellt Umlaute im Dateinamen unter Linux korrigieren"},{"body":"","link":"https://blog.tausys.de/tags/filesystem/","section":"tags","tags":null,"title":"Filesystem"},{"body":"","link":"https://blog.tausys.de/tags/itpv/","section":"tags","tags":null,"title":"ITPV"},{"body":"Im Entertain Change(b)log gibt es die aktualisierte Liste aller 54 frei empfangbarer Sender, die im Entertain-IPTV-Angebot der Telekom empfangbar sind inkl. der seit heute aufgeschalteten neuen HD-Sender der dritten Programme.\n","link":"https://blog.tausys.de/2012/05/02/telekom-entertain-senderliste-mit-neuen-hd-sendern/","section":"posts","tags":["Entertain","ITPV","Telekom","VLC"],"title":"Telekom Entertain Senderliste mit neuen HD-Sendern"},{"body":"","link":"https://blog.tausys.de/tags/apple/","section":"tags","tags":null,"title":"Apple"},{"body":"Das mit Quicktime oder anderer Apple Software auf dem PC installierte \u0026quot;Apple Software Update\u0026quot;, welches in bestimmten Zeitabständen automatisch ausgeführt wird, \u0026quot;klaut\u0026quot; dem aktuellen Anwendungsfenster den Fokus, obwohl das Programm selbst gar kein (sichtbares) Fenster auf dem Desktop anzeigt. Grml. Dadurch wird das Tippen in einer Textverarbeitung oder der Konsole jäh unterbrochen. Anwender könnten dadurch auf die Idee kommen, dass etwas mit ihrem PC nicht stimmt. Gottseidank startet das Ding nicht selbsttätig den PC einfach neu.\n","link":"https://blog.tausys.de/2012/05/02/apple-software-update-klaut-fensterfokus/","section":"posts","tags":["Apple","Rant"],"title":"Apple Software Update klaut Fensterfokus"},{"body":"","link":"https://blog.tausys.de/tags/rant/","section":"tags","tags":null,"title":"Rant"},{"body":"","link":"https://blog.tausys.de/tags/ascii/","section":"tags","tags":null,"title":"ASCII"},{"body":"In grauer Vorzeit gab es mal eine Kunst, die nannte sich ASCII-Art. Laut Wikipedia tauchte das erste Kunststück dieser Art bereits 1939 auf. Hier ist noch ein sehr schönes Werk aus dem Jahr 2000. Nach dem Anklicken der Grafik wird die Seite angezeigt: Tux in 257 x 303 Zeichen mit 250 Farben.\n","link":"https://blog.tausys.de/2012/04/25/linux-tux-ascii-art/","section":"fundstuecke","tags":["ASCII","Linux","Tux"],"title":"Linux Tux – ASCII Art"},{"body":"","link":"https://blog.tausys.de/tags/tux/","section":"tags","tags":null,"title":"Tux"},{"body":"Die Auflösung, in der eine Maus dem System z.B. das Scrollen mit dem Mausrad mitteilt, wird mit neuer Technik immer besser. So kann es dann vorkommen, dass mit einer klitzekleinen Bewegung am Mausrad unter Gnome gleich mehrere Seiten geblättert werden.\nLeider muss unter Gnome für jede Anwendung getrennt eingestellt werden, wie viel ein Impuls vom Mausrad die Seite scrollt. Zwei wichtige Anwendungen, bei denen die Konfiguration sehr einfach durchgeführt werden kann, sind Mozilla Firefox und Mozilla Thunderbird.\nIn Firefox ruft man dazu die Adresse about:config auf und gibt nach einer Bestätigung mousewheel unter Search ein. Es werden nun alle Einstellungen für das Mausrad angezeigt. Für die hier eingesetzte Microsoft Wireless Mouse 5000 haben sich dabei folgende Werte bewährt:\nEinstellung Wert mousewheel.withnokey.action 4 mousewheel.withnokey.numlines 12 mousewheel.withnokey.sysnumlines false Mit der Einstellung 4 wird festgelegt, dass nicht nach Zeilen sondern Pixeln gescrollt werden soll. Numlines legt die Anzahl auf 12 Pixel fest und die Abschaltung von Sysnumlines bewirkt, dass sich Firefox nicht die Einstellungen des Betriebssystems holt. Viele weitere Einstellungen findet man im Knowledgebase-Artikel von Mozilla.\nDie gleichen Einstellungen können für Thunderbird vorgenommen werden. Die Einstellungen erreicht man dort über Einstellungen -\u0026gt; Erweitert -\u0026gt; Allgemein -\u0026gt; Konfiguration bearbeiten....\nNach dem Ändern der Einstellungen sind diese sofort aktiv. Man kann für die eigene Maus also schnell eine geeignete Einstellung finden.\n","link":"https://blog.tausys.de/2012/04/23/maus-scrollgeschwindigkeit-unter-gnome-einstellen/","section":"posts","tags":["Gnome","Linux","Maus","OSS","Ubuntu"],"title":"Maus-Scrollgeschwindigkeit unter Gnome einstellen"},{"body":"","link":"https://blog.tausys.de/tags/airtime/","section":"tags","tags":null,"title":"Airtime"},{"body":"Im Zusammenspiel von Airtime, Mixxx und Icecast2 ist der Betrieb einer eigenen kleinen Radiostation mit Hilfe von OpenSource Software möglich. Im Folgenden soll auf die korrekte Konfiguration im Hinblick auf die Verbindung von Airtime zu Icecast eingegangen werden. Es werden Beispiele für den Betrieb auf demselben oder unterschiedlichen Servern aufgezeigt.\nAirtime Airtime unterstützt das gleichzeitige Streamen an bis zu drei unterschiedliche Streams. Die Einstellungen der Streams werden über die Airtime-Verwaltungsoberfläche unter System -\u0026gt; Stream-Settings konfiguriert. Etwas unglücklich gelöst ist die Eingabe des Stream-Passwortes, denn dazu muss auf der Verwaltungswebseite unter dem jeweiligen Stream erst Additional Options angeklickt werden.\nFalls Airtime und Icecast2 auf dem gleichen Server installiert sind, ist als Server am besten localhost anzugeben. Lokale Verbindungen werden von den meisten unter Linux installierten Firewalls nicht blockiert. Somit sind Probleme durch falsch angelegte Regeln in der Firewallsoftware ausgeschlossen.\nBeim Betrieb von Airtime und Icecast2 auf unterschiedlichen Servern muss als Server natürlich der korrekte Hostname des Icecast2-Servers angegeben werden. Dieser muss auch vom Icecast2-Server korrekt in eine IP-Adresse auflösbar sein. Bei Servern im Internet wird das fast immer der Fall sein, bei einer Installation im Heimnetz wird eine im Heimnetz funktionierende DNS-Konfiguration benötigt. Hilfsweise kann man jedoch bei Server auch die IP-Adresse des lokalen Icecast2-Servers angeben.\nBei den erweiterten Optionen zum Stream werden die Zugangskennung zum Stream und Metadaten eingegeben, die dann auch in den MP3- oder OGG-Metadaten an die Zuhörer weitergesendet werden. Der Standard-Benutzername in Icecast2 für eine Quelle ist source. Das Passwort muss das gleiche sein, welches man in der Icecast2-Konfigurationsdatei /etc/icecast2/icecast.xml bei der Einstellung eingestellt hat.\nIm folgenden Bild werden die Stream-Einstellungen von Airtime für den Betrieb auf unterschiedlichen Servern dargestellt (da hier nur ein privater Testserver installiert ist, sind einige Informationen verpixelt):\nAirtime Stream-Einstellungen\nNach dem Speichern der Einstellungen (diese werden in /etc/airtime/liquidsoap.cfg gespeichert) versucht Airtime, sich mit dem Icecast2-Server zu verbinden. Bei erfolgreicher Verbindung wird (wie im Bild gezeigt) Connected to the streaming server angezeigt. Sollte die Verbindung nicht sofort hergestellt werden können, ist evtl. der Service airtime-playout neu zu starten.\n/etc/init.d/airtime-playout restart\nDer Status des Dienstes kann anschließend auf der Verwaltungswebseite von Airtime unter System -\u0026gt; Status abgefragt werden.\nAirtime Service Status\nDie Logdateien von Airtime sind unter /var/log/airtime zu finden. Liquidsoap (der Teil von Airtime, der auch das Streaming übernimmt), erstellt dabei für die laufenden Skripte Logdateien unter /var/log/airtime/pypo-liquidsoap.\nIcecast Icecast2 wird komplett über die Datei /etc/icecast2/icecast.xml konfiguriert. Am besten wird die Datei mit einem Editor bearbeitet, der Syntaxhervorhebung unterstützt, um Fehler im XML zu vermeiden.\nZugangsdaten Bei den Zugangsdaten wird das Passwort festgelegt, mit dem sich eine Source (also hier Airtime) mit dem Icecast2-Server verbinden darf. Bei Bedarf wird ein Passwort festgelegt, über das sich Relay-Server mit Icecast verbinden dürfen und ebenfalls der Benutzername und das Passwort für den Admin-Zugang werden festgelegt:\n1\u0026lt;authentication\u0026gt; 2 \u0026lt;!-- Sources log in with username \u0026#39;source\u0026#39; --\u0026gt; 3 \u0026lt;source-password\u0026gt;xxxxxxxxxx\u0026lt;/source-password\u0026gt; 4 \u0026lt;!-- Relays log in username \u0026#39;relay\u0026#39; --\u0026gt; 5 \u0026lt;relay-password\u0026gt;yyyyyyyyyy\u0026lt;/relay-password\u0026gt; 1\u0026lt;!-- Admin logs in with the username given below --\u0026gt; 2 \u0026lt;admin-user\u0026gt;admin\u0026lt;/admin-user\u0026gt; 3 \u0026lt;admin-password\u0026gt;zzzzzzzzzz\u0026lt;/admin-password\u0026gt; 4\u0026lt;/authentication\u0026gt; Serveradresse und Port Icecast2 lauscht standardmäßig auf dem TCP-Port 8000 auf allen Netzwerkinterfaces. Diese Einstellung funktioniert für den Betrieb in einem Heimnetzwerk oder auch im Internet. Bei einer Änderung des Ports muss dieser auch in die Airtime Streamkonfiguration übernommen werden.\nMount-Punkte Ein einfacher Mount-Punkt kann mit\n1\u0026lt;mount\u0026gt; 2 \u0026lt;mount-name\u0026gt;/airtime_128\u0026lt;/mount-name\u0026gt; 3\u0026lt;/mount\u0026gt; erstellt werden. Damit wird der Mount airtime_128 erstellt (der Gleiche, der oben schon in der Airtime-Konfiguration angeben wurde).\nEine weitere Konfiguration mit unterschiedlichen Mount-Punkten für einen automatischen Failover zum Streamwechsel ist in den Tipps zum automatischen Streamwechsel (ganz unten auf der Seite) beschrieben.\nNach dem Neustart des Icecast2-Services mit\n/etc/init.d/icecast2 restart\nund dem Anmelden auf der Verwaltungswebseite von Icecast unter http://:8000/admin/ werden die konfigurierten Mount-Punkte angezeigt. Sofern sich der Airtime-Server bereits mit dem Mount-Punkt verbunden hat, ist eine Übersicht ähnlich dieser zu sehen:\nAirtime Icecast connected\nDie Logs von Icecast2 sind unter /var/log/icecast2 zu finden. Ein erfolgreicher Verbindungsaufbau von Airtime zu Icecast sieht dann in etwa so aus (aus error.log):\n1[2012-03-25 19:53:59] INFO connection/_handle_source_request Source logging in at mountpoint \u0026#34;/airtime_128\u0026#34; 2[2012-03-25 19:53:59] INFO source/source_main listener count on /airtime_128 now 0 3[2012-03-25 19:53:59] INFO admin/admin_handle_request Received admin command metadata on mount \u0026#34;/airtime_128\u0026#34; Bei Einträgen wie\n1[2012-03-25 19:53:50] INFO connection/_handle_source_request Source (/airtime_128) attempted to login with invalid or missing password 2[2012-03-25 19:53:56] INFO connection/_handle_source_request Source logging in at mountpoint \u0026#34;/airtime_128\u0026#34; stimmen das konfigurierte Passwort in Icecast2 und Airtime nicht überein.\nBei weiteren Fragen zum Thema nicht zögern und die Kommentarfunktion hier im Blog verwenden.\n","link":"https://blog.tausys.de/2012/04/19/airtime-und-icecast-verbinden/","section":"posts","tags":["Airtime","Icecast","Mixxx","OSS"],"title":"Airtime und Icecast verbinden"},{"body":"","link":"https://blog.tausys.de/tags/icecast/","section":"tags","tags":null,"title":"Icecast"},{"body":"","link":"https://blog.tausys.de/tags/mixxx/","section":"tags","tags":null,"title":"Mixxx"},{"body":"Ein Grundsatz in der IT lautet: Backup, Backup, Backup. Auch wenn die ganze Zeit über alles normal läuft, wird die Katastrophe genau dann eintreffen, wenn kein Backup zur Verfügung steht. Dabei sind Festplatten-Crashes evtl. noch die Ausnahme, vielmehr werden sicherlich Bedienungsfehler oder ein unachtsames Kommando zum rekursiven Löschen von Verzeichnissen die Katastrophe auslösen. Wichtige Arbeiten sind verschwunden, ganze Projekte werden zurückgeworfen, die private Bilder- oder Musiksammlung ist verloren. Diesem Horrorszenario begegnet man mit einem regelmäßigem Backup der wichtigen Daten. Ebenso sollte das Backup automatisch ausgeführt werden und nicht per Hand ausgelöst werden müssen. Für Serverbetreiber ist ein automatisches Backup ebenso Pflicht, um im Fehlerfall schnell wieder den gewohnten Service zur Verfügung stellen zu können.\nBei der Suche nach einem geeigneten Backup-Tool stieß ich auf duplicity. Nach dem Studium diverser Howtos zu duplicity und besonders als ich las, dass mein Hosting-Provider in seinem Wiki explizit duplicity inkl. ein paar Beispielen erwähnt, hatte ich meine Lösung gefunden. duplicity kann die Backups über eine Vielzahl von Protokollen übertragen. Aktuell werden HTTP, FILE, FTP, HSI, IMAP(S), RSYNC, S3, SCP, SSH, TAHOE und WEBDAV(S) unterstützt. Die Backups werden vor der Übertragung lokal mit GPG verschlüsselt. duplicity unterstützt das Erstellen von inkrementalen Backups und erstellt mit entsprechenden Optionen automatisch wieder ein Full-Backup nach einer angegebenen Zeitspanne.\nUnter Ubuntu kann duplicity direkt aus den Paketquellen installiert werden. Falls man den Backup-Space per FTP erreichen möchte, ist zusätzlich das Paket NcFTP erforderlich:\n1sudo apt-get install duplicity 2sudo apt-get install ncftp Ein einfaches Backup kann anschließend mit folgendem Kommando durchgeführt werden:\n1export PASSPHRASE=SomeLongGeneratedHardToCrackKey 2export FTP_PASSWORD=WhateverPasswordYouSetUp 3duplicity /etc ftp://FtpUserID@ftp.domain.com/etc 4unset PASSPHRASE 5unset FTP_PASSWORD Mit der ersten Zeile wird ein Passwort festgelegt, mit dem der Backup-Satz verschlüsselt wird. In der zweiten Zeile wird das Passwort des FTP-Servers gesetzt. Dieses sollte nicht direkt in der Backup-URL eingegeben werden, denn dann wäre es von anderen Usern auf dem Server durch die Ausgabe der Prozessliste lesbar.\nEin Restore einzelner Dateien ist ebenso möglich:\n1export PASSPHRASE=SomeLongGeneratedHardToCrackKey 2export FTP_PASSWORD=WhateverPasswordYouSetUp 3duplicity --file-to-restore apt/sources.list ftp://FtpUserID@ftp.domain.com/etc /home/user/sources.list 4unset PASSPHRASE 5unset FTP_PASSWORD Mit diesem Skript wird der letzte gesicherte Stand der Datei apt/sources.list aus dem Backup-Satz /etc nach /home/user/sources.list zurückgespeichert. Mit folgendem Kommando kann z.B. der Stand von vor vier Tagen zurückgespeichert werden (vorausgesetzt, man erstellt tägliche Backups):\n1duplicity -t4D --file-to-restore apt/sources.list ftp://FtpUserID@ftp.domain.com/etc /home/user/sources.list Ein komplettes Beispiel aus dem Ubuntu-Hilfeforum kann als Grundlage für eigene Anpassungen dienen:\n1export PASSPHRASE=(insert your value here) 2export FTP_PASSWORD=(insert your value here) 3 4# doing a monthly full backup (1M) 5duplicity --full-if-older-than 1M /etc ftp://(insert your FTP server here)/etc 6# exclude /var/tmp from the backup 7duplicity --full-if-older-than 1M --exclude /var/tmp /var ftp://(insert your FTP server here)/var 8duplicity --full-if-older-than 1M /root ftp://(insert your FTP server here)/root 9 10# cleaning the remote backup space (deleting backups older than 6 months (6M, alternatives would 1Y fo 1 year etc.) 11duplicity remove-older-than 6M --force ftp://(insert your FTP server here)/etc 12duplicity remove-older-than 6M --force ftp://(insert your FTP server here)/var 13duplicity remove-older-than 6M --force ftp://(insert your FTP server here)/root 14 15unset PASSPHRASE 16unset FTP_PASSWORD Die Option --full-if-older-than erstellt nach der angegebenen Zeitspanne automatisch wieder ein Full-Backup. Ist die Zeitspanne zum letzten Full-Backup noch nicht überschritten, werden inkrementale Backups erstellt. Das Kommando remove-older-than aus dem zweiten Teil des Skripts sorgt anschließend dafür, dass Backups, die älter als 6 Monate sind gelöscht werden.\n","link":"https://blog.tausys.de/2012/04/17/linux-backup-mit-duplicity/","section":"posts","tags":["Backup","Linux","OSS"],"title":"Linux-Backup mit duplicity"},{"body":"Leider ist die Version 1.x von GPG nicht mehr auf der Webseite des GnuPG-Projekts verlinkt. Für Windows werden dort nur noch die Downloadlinks für GPG 2.x angeboten. Das für Windows vorkompilierte Paket GPG4WIN verwende ich jedoch nicht, da es von Firmen erstellt wurde, die nicht mein Vertrauen genießen. Die aktuellen Binaries der Version 1.x für Windows sind auf dem FTP-Server von GnuPG unter der Adresse ftp://ftp.gnupg.org/gcrypt/binary/ zu finden.\nDie Version 1.4.12 von GnuPG arbeitet anstandslos mit dem Thunderbird-Plugin Enigmail 1.4 zusammen.\n","link":"https://blog.tausys.de/2012/04/11/gnu-privacy-guard-1-x-windows-binaries/","section":"posts","tags":["E-Mail","GnuPG","PGP","Verschlüsselung","Windows"],"title":"GNU Privacy Guard 1.x – Windows Binaries"},{"body":"","link":"https://blog.tausys.de/tags/gnupg/","section":"tags","tags":null,"title":"GnuPG"},{"body":"","link":"https://blog.tausys.de/tags/t-online/","section":"tags","tags":null,"title":"T-Online"},{"body":"Wer einen modernen Browser einsetzt, der kann sich mittlerweile auf YouTube zu einem Betatest anmelden, bei dem die Videos nicht mehr im Flash-Format sondern in neuem WebM- oder H.264-Format ausgeliefert werden. Diese Formate sind für die Wiedergabe im Browser, sofern er bereits HTML5 unterstützt, als natives Format vorgesehen. Die Installation zusätzlicher Plugins entfällt damit. Das meistens extra zu aktualisierende und in der Vergangenheit für viele Sicherheitslücken bekannte Flash-Plugin ist damit hinfällig.\nYouTube testet die Wiedergabe von in HTML5 eingelagerten Videos im WebM- oder H.264-Format bereits seit geraumer Zeit. Unter einer eigens dafür eingerichteten Webseite kann man an diesem Betatest teilnehmen. Nach erfolgreicher Aktivierung erscheint unter Firefox/Linux z.B. folgende Webseite:\nYouTube HTML5 Test\nIn Verbindung mit dem älteren Tipp zur Nutzung des Provider-Proxys für T-Online-Kunden beim YouTube-Videoabruf lässt sich damit im Moment noch ein bisschen Geschwindigkeit herausholen, da nach meinen Tests die Server, von denen die YouTube-Videos in den neuen Formaten aberufen werden, noch nicht auf einer Liste mit Geschwindigkeitsbeschränkungen eingetragen sind.\n","link":"https://blog.tausys.de/2012/04/02/youtube-beschleunigung-die-2/","section":"posts","tags":["Firefox","T-Online","Youtube"],"title":"YouTube-Beschleunigung die 2."},{"body":" Gefunden bei Eric Martindale.\n","link":"https://blog.tausys.de/2012/03/29/rechenaufgabe-oder-mentaler-test/","section":"fundstuecke","tags":null,"title":"Rechenaufgabe oder mentaler Test?"},{"body":"Bereits seit längerem ist in Firefox eine automatische Aktualisierung des Programms eingebaut. Mit Version 12 wird diese Aktualisierung nocheinmal erweitert. Wie z.B. bereits bei Google Chrome üblich, erfolgt die Aktualisierung dann im Hintergrund und braucht nicht mehr bestätigt zu werden. Ähnlich verhält es sich auch jetzt schon bei den installierten Addons. Falls verfügbar, erfolgt eine Aktualisierung beim nächsten Firefox-Start.\nNicht so jedoch bei den Plugins. Plugins stammen von anderen Programmen und werden bei deren Installation in Firefox eingeklinkt. Beispiele dafür sind Quicktime oder Shockwave Flash. Plugins können von Firefox nicht automatisch aktualisiert werden, da dazu die Programme aktualisiert werden müssten, aus denen die Plugins stammen. Aktualisiert man die Plugins bzw. die dazugehörigen Programme nicht regelmäßig, schafft man sich unter Umständen ein Sicherheitsloch, falls Lücken in Plugins bekannt werden.\nUm diese Problematik in den Griff zu bekommen, sollte man regelmäßig die installierten Plugins auf Aktualität überprüfen. Firefox bietet dazu auf der Liste der installierten Plugins einen Link an:\nFirefox Plugins\nKlickt man oben auf den Link Überprüfen Sie, ob Ihre Plugins aktuell sind, öffnet sich eine Seite von Mozilla, die die Versionen der installierten Plugins auswertet und mit aktuellen Versionen vergleicht. Sollten veraltete Plugins gefunden werden, erscheinen Links zu Seiten, auf denen man aktuelle Versionen erhält.\nFirefox Plugins ueberpruefen\nVielleicht erfolgt diese Überprüfung ja in einer kommenden Version von Firefox auch automatisch im Hintergrund. Zwischenzeitlich muss man sich manuell behelfen, um Sicherheitslücken zu schließen.\n","link":"https://blog.tausys.de/2012/03/29/browsersicherheit-firefox-plugins-aktualisieren/","section":"posts","tags":["Firefox"],"title":"Browsersicherheit: Firefox Plugins aktualisieren"},{"body":"Vor kurzem habe ich beschrieben, wie eine eigene kleine Webradiostation mit OpenSource-Software aufgesetzt werden kann. Das dort eingesetzte Airtime bietet \u0026quot;unterhalb\u0026quot; der Weboberfläche viele Möglichkeiten, den Sendebetrieb durch entsprechende Skripte anzupassen. Eine häufige Anwendung wird das Senden von Musik zu den Zeiten sein, in denen keine Show und kein Live-DJ geplant ist. Mit minimalen Änderungen an den Airtime-Skripts lässt sich dieses Vorhaben einfach bewerkstelligen.\nHinter der Weboberfläche von Airtime verbergen sich Python-Skripts. Zuständig für die Einstellungen, was in der Zeit ohne eine eingeplante Sendung passieren soll, ist das Skript\n/usr/lib/airtime/pypo/bin/liquidsoap_scripts/ls_script.liq\nIn den Zeilen 38 und 39 (bei Version 2.0.2) wird mit\n1default = amplify(0.00001, noise()) 2default = rewrite_metadata([(\u0026#34;artist\u0026#34;,\u0026#34;Airtime\u0026#34;), (\u0026#34;title\u0026#34;, \u0026#34;offline\u0026#34;)],default) festgelegt, dass in den Pausenzeiten ein Rauschen mit sehr geringer Lautstärke gespielt und dazu die Metadaten Airtime - offline zu eventuellen Zuhörern übertragen werden.\nZufällige Musik aus einem Ordner spielen Zuerst müssen die Zeilen 38 und 39 mit einem \u0026quot;#\u0026quot; am Zeilenanfang auskommentiert werden. Anschließend fügt man folgende Zeile direkt danach ein:\n1default = playlist(mode=\u0026#39;random\u0026#39;, \u0026#34;/srv/music/\u0026#34;) Mit dieser Zeile wird liquidsoap (ein Teil der Airtime-Installation) angewiesen, in den Pausenzeiten Musik aus dem Verzeichnis /srv/music in einer zufälligen Reihenfolge zu spielen.\nMusik, Jingles und Drops zufällig abspielen Mit folgendem Skript lässt sich Musik aus einem Verzeichnis abspielen und zufällig werden Jingles und Drops aus zwei anderen Verzeichnissen eingeblendet:\n1# At first we define some locations... 2drops = playlist(mode=\u0026#39;randomize\u0026#39;,reload=1,reload_mode=\u0026#34;rounds\u0026#34;,\u0026#34;/srv/users/drops/\u0026#34;) 3music = playlist(mode=\u0026#39;randomize\u0026#39;,reload=1,reload_mode=\u0026#34;rounds\u0026#34;,\u0026#34;/srv/users/music/\u0026#34;) 4jingles = playlist(mode=\u0026#39;randomize\u0026#39;,reload=1,reload_mode=\u0026#34;rounds\u0026#34;,\u0026#34;/srv/users/jingles/\u0026#34;) 5 6# Here we rotate between the directories. The numbers indicate how many songs are played from each share 7default = rotate(weights=[1,3,1,3], [jingles,music,drops,music]) 8 9def crossfade(s) 10 #duration is automatically overwritten by metadata fields passed in 11 #with audio 12 s = fade.in(type=\u0026#34;log\u0026#34;, duration=0., s) 13 s = fade.out(type=\u0026#34;log\u0026#34;, duration=0., s) 14 fader = fun (a,b) -\u0026gt; add(normalize=false,[b,a]) 15 cross(fader,s) 16end Danke an Benjamin Krause.\nDabei sind noch viele andere Anwendungsmöglichkeiten denkbar. Weitere umfangreiche Beispiele sind in der Dokumentation zu liquidsoap zu finden.\n","link":"https://blog.tausys.de/2012/03/27/pausenmusik-fuer-airtime/","section":"posts","tags":["Airtime","OSS","Streaming"],"title":"Pausenmusik für Airtime"},{"body":" Mit aktueller OpenSource-Software ist es zwischenzeitlich einfach möglich, eine eigene kleine Radiostation zu betreiben. Im Folgenden wird die Installation und Konfiguration von Airtime als Broadcast-Server, Icecast als Streaming-Server und Mixxx als Client für DJs und Moderatoren beschrieben. Airtime und Icecast wird dabei auf einem Ubuntu-Server installiert. Mixxx ist für die Betriebssysteme Linux, Windows und Mac OS X erhältlich. Vorraussetzung ist auf dem Ubuntu-Server ein bereits laufender Apache. Nach der Konfiguration dieser Softwarepakete können eigene Radioshows und DJs eingeplant werden, die mit Mixxx live streamen können. In diesem Artikel wird nur auf die technischen Belange eingegangen. Über die rechtlichen Belange zum Betrieb einer Webradiostation muss man sich vor der Inbetriebnahme des Senders an entsprechenden Stellen informieren.\nIcecast Icecast ist zuständig für die Verteilung des von einem DJ oder einer Broadcast-Software gelieferten Audiostreams an die Zuhörer. Icecast2 ist bereits in den Ubuntu-Quellen vorhanden und kann mit\n1sudo apt-get install icecast2 installiert werden. Die Konfiguration erfolgt anschließend in der Datei /etc/icecast2/icecast.xml. Die Konfigurationsdatei von Icecast2 ist sehr gut dokumentiert. Folgende Parameter sollten angepasst werden:\nOption Beschreibung source-password Passwort, mit dem sich DJs oder der Broadcast-Server mit Icecast verbinden admin-user Benutzername für den Admin-Zugang zur Icecast-Webseite admin-password Passwort für den Admin-Zugang hostname Hostname, unter dem der Icecast-Server erreichbar ist In der Standardinstallation unter Ubuntu wird Icecast2 nicht automatisch gestartet. In der Datei /etc/defaults/icecast2 kann der automatische Start eingeschaltet werden. Von Hand wird der Service mit\n1service icecast2 start gestartet. Anschließend ist der Icecast-Server unter der Adresse http://:8000/ erreichbar.\nIcecast Weboberfläche\nAirtime Mit Airtime werden Shows verwaltet. DJs können nach dem Hochladen von Musikstücken Playlists zusammenstellen. Manager können das Programm und DJs für Shows einplanen. Airtime eignet sich also dazu, vorproduzierte Shows zu einer bestimmten Zeit automatisch auszusenden. Seit kurzem steht eine neue Airtime-Version zur Verfügung, die das Streamen an einen Icecast- oder Shoutcast-Server beherrscht. Leider ist Airtime nicht in den Ubuntu-Quellen enthalten. Vom Hersteller werden aber entsprechende Pakete bereitgestellt. Das aktuelle Paket erhält man immer unter http://apt.sourcefabric.org/misc/airtime-easy-setup.deb. Dieses Paket ist nicht schon das komplette Airtime, vielmehr installiert es weitere Quellen für apt, so dass Airtime mit Hilfe der Paketverwaltung installiert werden kann. Airtime wird dann mit folgenden Kommandos installiert:\n1sudo dpkg -i airtime-easy-setup.deb 2sudo apt-get update 3sudo apt-get install airtime Leider setzt Airtime auf die Datenbanksoftware PostgreSQL, welche mit obigen Befehlen automatisch mitinstalliert wird. Eine Umstellung auf das bei vielen Webservern bereits vorhandene MySQL scheint momentan nicht möglich zu sein. Die Konfiguration von Airtime wird anschließend mit dem Befehl\n1sudo dpkg-reconfigure airtime ausgeführt. Mit Airtime werden ein paar weitere Services installiert, die für den Betrieb der Broadcast-Software erforderlich sind. Leider musste ich feststellen, dass nach der Standardinstallation zumindest ein Service von aussen erreichbar ist. Der Service monit lauscht in der ausgelieferten Konfiguration an der öffentlichen Adresse des Broadcast-Servers und ist dadurch von aussen z.B. mit einem Webbrowser erreichbar. Um das zu ändern editiert man alle Dateien im Verzeichnis /etc/monit/conf.d, die airtime im Namen haben. Um monit nicht mehr von aussen zugänglich zu machen, editiert man die Zeile\n1set httpd port 2812 und fügt hinten eine Beschränkung auf localhost an:\n1set httpd port 2812 and use the address localhost Damit wird monit angewiesen, nur noch auf der localhost-Adresse 127.0.0.1 zu lauschen.\nAnschließend ist die Airtime-Weboberfläche unter der Adresse http:/// zu erreichen. Nach dem Login mit dem Benutzernamen admin und dem zuvor im Konfigurationsschritt festgelegten Passwort erhält man vollen Zugriff auf die Airtime-Weboberfläche.\nAirtime Startseite\nMixxx Mit Mixxx steht eine OpenSource-Lösung für DJs zur Verfügung. Mixxx hat dazu zwei Decks, die anhand der BPM synchronisiert werden können. Außerdem lassen sich Samples für Jingles oder andere Einblendungen hinterlegen. In den Einstellungen werden die Parameter zum Verbinden mit dem Icecast-Server festgelegt:\nMixxx Stream Einstellungen\nUnter Host wird der Hostname eingetragen, auf dem der Icecast-Server läuft. Bei Password wird das Passwort eingestellt, welches man oben im ersten Schritt als Source-Passwort in der Icecast-Konfiguration festgelegt hat.\nMöchte man Titelinformationen über das gerade gespielte Lied zu den Zuhörern übertragen, muss als Streamingformat MP3 gewählt werden. Soweit mir bekannt ist, unterstützt das OGG-Format diese Übertragung von Titelinformationen nicht.\nInnerhalb von Mixxx kann mit der Taste \u0026quot;L\u0026quot; eine Verbindung zum Streaming-Server hergestellt oder auch wieder getrennt werden. Nach dem Starten eines Titels bei aktiver Verbindung zum Streaming-Server ist anschließend der Stream mit obigen Konfigurationsparametern unter der Adresse http://:8000/live zu hören.\nTipps Automatische Stream-Umschaltung Da DJs und der Broadcast-Server nicht in den gleichen \u0026quot;Eingang\u0026quot; in Icecast streamen können, die Zuhörer aber ein laufendes Programm empfangen und auf keinen Fall einen Streamwechsel durchführen müssen sollen, muss eine Lösung für das Umschalten von Broadcast zu Live-DJ gefunden werden. Eine einfache Möglichkeit ist die Nutzung des Failovers in Icecast. Dazu sind in der Icecast-Konfiguration weitere Mount-Punkte einzutragen:\n1\u0026lt;mount\u0026gt; 2 \u0026lt;mount-name\u0026gt;/airtime_128\u0026lt;/mount-name\u0026gt; 3 \u0026lt;hidden\u0026gt;1\u0026lt;/hidden\u0026gt; 4\u0026lt;/mount\u0026gt; 5 6\u0026lt;mount\u0026gt; 7 \u0026lt;mount-name\u0026gt;/live\u0026lt;/mount-name\u0026gt; 8 \u0026lt;fallback-mount\u0026gt;/airtime_128\u0026lt;/fallback-mount\u0026gt; 9 \u0026lt;fallback-override\u0026gt;1\u0026lt;/fallback-override\u0026gt; 10 \u0026lt;hidden\u0026gt;1\u0026lt;/hidden\u0026gt; 11\u0026lt;/mount\u0026gt; 12 13\u0026lt;mount\u0026gt; 14 \u0026lt;mount-name\u0026gt;/stream\u0026lt;/mount-name\u0026gt; 15 \u0026lt;fallback-mount\u0026gt;/live\u0026lt;/fallback-mount\u0026gt; 16 \u0026lt;fallback-override\u0026gt;1\u0026lt;/fallback-override\u0026gt; 17 \u0026lt;hidden\u0026gt;0\u0026lt;/hidden\u0026gt; 18\u0026lt;/mount\u0026gt; Über den \u0026quot;Eingang\u0026quot; airtime_128 wird der Broacaster Airtime angeschlossen, über live schalten sich die DJs auf und für die Zuhörer wird die Streamadresse http://:8000/stream veröffentlicht.\nIcecast Mountpoints\nWenn sich nun ein Zuhörer auf stream verbindet (auf dem nie etwas eingespeist wird), sorgt der Failover-Mechanismus von Icecast dafür, dass der Zuhörer automatisch mit live verbunden wird, auf dem eventuell gerade ein DJ einspeist. Sollte aktuell auch kein DJ verbunden sein, wird weiter zu airtime_128 verbunden, auf dem der Broadcaster sein Programm einspeist. Sobald sich ein DJ aufschaltet, wird automatisch wieder auf live zurückgeschaltet. Ein Streamwechsel bei den Zuhörern ist so nicht erforderlich.\n","link":"https://blog.tausys.de/2012/03/26/eigene-radiostation-mit-airtime-mixxx-und-icecast/","section":"posts","tags":["Airtime","Icecast","Mixxx","OSS","Streaming","Ubuntu","Webradio"],"title":"Eigene Radiostation mit Airtime, Mixxx und Icecast"},{"body":"","link":"https://blog.tausys.de/tags/webradio/","section":"tags","tags":null,"title":"Webradio"},{"body":" Nach längerer Zeit habe ich wieder einmal die Senderlisten der RTP-Streamadressen von Telekom Entertain aktualisiert. Es sind alle nicht verschlüsselten Sender enthalten. Dabei handelt es sich um alle öffentlich-rechtlichen Sender. Ein paar davon sind auch in HD zu empfangen.\nPlayliste im M3U-Format (rechte Maustaste -\u0026gt; Ziel speichern unter...) Playliste im PLS-Format (rechte Maustaste -\u0026gt; Ziel speichern unter...) (Eventuell muss im Browser der Link zu den Playlisten mit rechts angeklickt werden und Ziel speichern unter... gewählt werden.)\nAls kleines Gimmick: unter rtp://239.35.41.24:10000 ist ein Demo-Stream in 720p zu bewundern.\nIn der nachfolgenden Liste sind alle aktuellen RTP-Adressen zu finden. In VLC werden diese mit rtp://:10000 geöffnet.\nSender Adresse Das Erste 239.35.10.4 ZDF 239.35.10.5 KIKA 239.35.10.19 3sat 239.35.10.6 phoenix 239.35.10.22 BR Süd 239.35.10.7 hr 239.35.10.8 MDR Sachsen 239.35.10.9 NDR 239.35.10.10 Radio Bremen TV 239.35.10.12 rbb Berlin 239.35.10.14 SR 239.35.10.15 SWR BW 239.35.10.16 SWR RP 239.35.10.17 WDR 239.35.10.18 arte 239.35.10.20 Einsfestival 239.35.10.21 zdf.kultur 239.35.10.23 BR alpha 239.35.10.24 EinsExtra 239.35.10.25 EinsPlus 239.35.10.26 ZDFneo 239.35.10.27 ZDFinfo 239.35.10.28 BR Nord 239.35.10.13 MDR Sachsen-Anhalt 239.35.10.29 MDR Thüringen 239.35.10.30 NDR Hamburg 239.35.10.31 NDR Mecklenburg-Vorpommern 239.35.10.32 NDR Schweswig-Holstein 239.35.10.33 rbb Brandenburg 239.35.10.34 WDR Aachen 239.35.10.35 WDR Bielefeld 239.35.10.36 WDR Bonn 239.35.10.37 WDR Dortmund 239.35.10.38 WDR Duisburg 239.35.10.39 WDR Düsseldorf 239.35.10.40 WDR Essen 239.35.10.41 WDR Münster 239.35.10.42 WDR Siegen 239.35.10.43 WDR Wuppertal 239.35.10.44 Das Erste HD 239.35.10.1 ZDF HD 239.35.10.2 arte HD 239.35.10.3 Die Vorschaubilder der Sender (PIP) werden unter weiteren IP-Adressen ausgeliefert. Dazu addiert man auf das letzte Oktet der IP-Adresse 100 hinzu. So z.B. ist Das Erste unter 239.35.10.4 zu empfangen. Das zugehörige PIP unter 239.35.10.104.\nFür den dvbviewer finden sich aktuelle Listen im Entertain Change(b)log.\nUnd für all die, die sich fragen, wie man die Streamadressen herausbekommt: man filtert einen pcap-Dump z.B. mit Wireshark mit folgendem Filter igmp \u0026amp;\u0026amp; igmp.num_grp_recs == 1 \u0026amp;\u0026amp; igmp.record_type == 4 und bekommt anschließend alle angezappten Senderadressen.\n","link":"https://blog.tausys.de/2012/03/21/streamadressen-telekom-entertain-fuer-vlc-und-mediaportal/","section":"posts","tags":["Entertain","IPTV","MediaPortal","Telekom","VLC"],"title":"Streamadressen Telekom Entertain für VLC und MediaPortal"},{"body":"","link":"https://blog.tausys.de/tags/adwords/","section":"tags","tags":null,"title":"AdWords"},{"body":"","link":"https://blog.tausys.de/tags/analytics/","section":"tags","tags":null,"title":"Analytics"},{"body":"Seit geraumer Zeit wird in der Piwik-Statistik immer wieder der Text Suchbegriff nicht definiert als Keyword, über den Besucher von einer Suchmaschine auf dieser Seite gelandet sind, ausgegeben. Dabei hat der Besucher natürlich nicht selbst diesen Begriff eingegeben, sondern Google hat das Verfahren geändert, mit dem der besuchten Webseite mitgeteilt wird, wonach gesucht wurde durch die Umstellung der Google-Suche auf HTTPS wird der Referer (in dem der Suchbegriff enthalten ist) bei einer Zielseite, die nur HTTP spricht, nicht durch den Browser übermittelt. Das ist lt. RFC 2616 § 15.1.3 so spezifiziert.\nStatistik- oder Analysesoftware von Drittanbietern sind dagegen machtlos und es können keine vernünftige Auswertung nach den gesuchten Keywords mehr erstellt werden. Auf der Webseite zu Piwik findet sich dazu auch eine Antwort.\nPiwik Suchbegriffe\n","link":"https://blog.tausys.de/2012/03/19/piwik-suchbegriff-nicht-definiert/","section":"posts","tags":["AdWords","Analytics","Google","Piwik"],"title":"Piwik – Suchbegriff nicht definiert"},{"body":"YouTube macht nur sehr wenige Angaben darüber, mit welchen Bitraten die hochgeladenen Videos konvertiert werden. Speziell interessierte mich die verwendete Audio-Bitrate, da mit verschiedenen Online-Diensten der Audio-Track von YouTube-Videos extrahiert und heruntergeladen werden kann.\nIn einem Artikel von Nick Vogt habe ich dazu aktuelle Informationen gefunden, die durch Tests herausgefunden worden sind. Aktuell verwendet YouTube je nach Ausgangsmaterial folgende Audio-Bitraten:\nResolution Audio Bit Rate Compression Original 152 kbps AAC 1080p 152 kbps AAC 720p 152 kbps AAC 480p 128 kbps AAC 360p 128 kbps AAC 240p 60 kbps MP3 Wie einem Artikel auf Wikipedia zu entnehmen ist, halten mit dem neuen HTML5-Player und den dann ausgelieferten Videos im WebM-Format auch Audiodateien mit 192 kBit/s Einzug.\nWenn sich dann auch noch die GEMA mit Google einigt, steht dem Musikgenuss nichts mehr im Wege.\n","link":"https://blog.tausys.de/2012/03/18/youtube-audio-bitraten/","section":"posts","tags":["MP3","Youtube"],"title":"YouTube Audio Bitraten"},{"body":"","link":"https://blog.tausys.de/tags/dj/","section":"tags","tags":null,"title":"DJ"},{"body":"Auf der Suche nach einer Streaminglösung für Windows wird man von Freunden meistens auf Sam Broadcaster oder Virtual DJ hingewiesen. Diese Programme bieten eine Vielzahl von Features, belasten dabei aber den Geldbeutel des Hobby-DJs ungemein. Durch Zufall stieß ich auf eine Liste von OpenSource-DJ-Programmen und habe mir davon Mixxx näher angesehen.\nAuf der Programmoberfläche von Mixxx findet man sich schnell zurecht, zumal alle Knöpfe mit einer kleinen Hilfe versehen sind. Nach dem Festlegen der Soundeinstellungen für den primären Ausgang, den für die Kopfhörer zu verwendenden Ausgang (fürs Vorhören) und dem Eintragen der Zugangsdaten für den zu verwendenen Streaming-Server kann sofort losgelegt werden. Ein umfangreiches Handbuch hilft bei der Ersteinrichtung oder auch bei der Einrichtung einer Profi-DJ-Umgebung mit externem Mixer und Turntables. Mixxx kommt dabei mit über 30 DJ-MIDI-Controllern zurrecht.\nNach dem Import der eigenen Musikbibliothek findet man diese in der Bibliothek des Programms wieder und kann dort gegenenfalls auch Daten zum Track ändern. Nutzer von iTunes können ihre iTunes-Bibliothek importieren und diese direkt in Mixxx verwenden. Nach dem Import der Musikbibliothek können die Titel auf die BPM von Mixxx analysiert werden. Anschließend sind die Beats in der Waveformanzeige sichtbar.\nMit dem Auto-DJ und einer dort abgelegten Playlist oder einzelnen Songs übernimmt Mixxx das Abschneiden von Stille am Anfang und Ende der Tracks und das Crossfaden. Für den Crossfader können drei unterschiedliche Modi gewählt werden.\nMixxx unterstützt für das Streamen Shoutcast, Icecast1 und Icecast2. Nach dem Eintragen der Zugangsdaten hat die Verbindung (über das Menü Optionen -\u0026gt; Live-Übertragung aktivieren) sofort funktioniert (für MP3-Streaming siehe Hinweise unten).\nFür das Einspielen kurzer Jingles sind vier Sampler vorhanden. Das klingt auf den ersten Blick wenig, jedoch können die einzelnen Jingles mit jeweils vier Cue-Punkten versehen werden, ab denen diese eingespielt werden.\nBei leicht unterschiedlichen BPM zwischen zwei Titeln lassen sich diese automatisch mit einem Klick zwischen den zwei Decks synchronisieren. Ebenfalls erfolgt beim Laden eines Titels eine automatische Lautstärkeanpassung. Diese zwei Parameter werden auch sehr schön in der Waveformanzeige dargestellt.\nFür den ambitionierten DJ finden sich noch viele weitere Funktionen wie z.B. Beatloops über mehrere Beats und abspeicherbare Cues.\nAnpassungen und Hinweise Falls Mixxx als Streaminglösung eingesetzt werden wird sollte man in den Einstellungen darauf achten, dass die Abtastrate auf 44,1 kHz gesetzt ist (voreingestellt sind 48 kHz), denn damit wird Bandbreite gespart. Nach dem Importieren der eigenen Musikbibliothek muß diese erst einmal auf fehlende BPM-Einträge untersucht werden. Dazu wählt man im Reiter Analyse erst einmal Alle und klickt dann auf Alle auswählen und Analyse starten. Bei einer umfangreichen Bibliothek kann die Analyse der Titel sehr lange dauern, weshalb man diese am besten einmal über Nacht laufen läßt. Nutzer einer 64Bit-Windows-Variante sollten sich das Programm nicht direkt von der Hauptseite von Mixxx herunterladen (dort ist nur die 32Bit-Version verlinkt), sondern sollten zuerst die Download-Seite aufrufen. Dort steht Mixxx dann auch als 64Bit-Version zur Verfügung. Da für Programme, die das MP3-Format verwenden, Lizenzgebühren abzuführen sind, wird mit Mixxx keine MP3-Unterstützung mitgeliefert. Für das Streamen im MP3-Format muß eine zusätzliche DLL heruntergeladen und ins Mixxx-Installationsverzeichnis kopiert werden. Näheres dazu findet sich im Handbuch unter Hilfe -\u0026gt; Benutzerhandbuch. Hört sich kompliziert an, ist aber in drei einfachen Schritten erledigt. Fazit Mit Mixxx steht eine gelungene OpenSource DJ- und Streaming-Software zur Verfügung, die es auch mit größeren kommerziellen Programmen aufnehmen kann.\n","link":"https://blog.tausys.de/2012/03/18/mixxx-opensource-dj-und-streaming-software/","section":"posts","tags":["DJ","MP3","OSS","Streaming","Windows"],"title":"Mixxx – OpenSource DJ- und Streaming-Software"},{"body":"Bei der Suche nach Informationen, wie in WordPress Formulare eingebunden werden können, weisen die Suchergebnisse immer wieder auf ein Thema hin: die Einbindung von Kontaktformularen. Das war aber nicht gesucht, denn ich wollte ein selbst entworfenes Formular in mein WordPress-Blog einbinden und die in diesem Formular eingegeben Daten in einem PHP-Skript auswerten, um eine Grafik darzustellen.\nZuerst einmal kam mir gnuplot in den Sinn, da gnuplot hervorragend zum Erzeugen einer Vielzahl von Diagrammen geeignet ist. Soweit mir bekannt ist, unterstützt gnuplot jedoch leider nicht die Ausgabe der Grafik in einen Stream, so wie es für die Ausgabe als Grafik in einem PHP-Skript wünschenswert wäre, sondern muss immer über den Umweg einer Ausgabedatei realisiert werden, was bei einer Mehrbenutzerumgebung wie einer Webseite ein paar Probleme mit sich bringt.\nDer zweite Ansatz war die Nutzung der Google-Chart-API um eine entsprechende Grafik darzustellen. Ein kurzes Überfliegen der Doku gab Gewissheit, dass das Unterfangen mit Googles Chart-API möglich ist, jedoch die Parameter der Grafik als URL-Parameter übertragen werden müssen. Das widersprach jedoch meiner Vorstellung davon, wie viel Google über euch wissen muss. Google hätte beim Aufruf der entsprechenden Seite leicht andere Cookies, die von deren Seite auf eurem Computer bereits gesetzt worden sind, mit eurem hier eingegebenen Geburtsdatum abgleichen können. No way also.\nBlieb also nur die eigene Erzeugung der Grafik. Gnuplot schied mangels Streamausgabe nach PHP aus. Das PHP-Modul der GD-Library rückte in den Vordergrund. Zwar ist die Erstellung eines Diagramms nur mit Hilfe der GD-Library nicht gerade \u0026quot;zweckoptimiert\u0026quot;, hält sich aber dennoch vom Aufwand her in Grenzen. Einfache Linien und Grids lassen sich damit mit einem durchaus angemessenen Aufwand realisieren. Zumal die GD-Library als Modul in PHP aktiviert werden kann und die direkte Streamausgabe unterstützt - Grafiken also direkt von einem PHP-Skript ausgegeben werden können.\nRealisierung Shortcode Zuerst einmal habe ich einen neuen Shortcode definiert, der ein Formular zur Eingabe des Geburtsdatums realisiert. Um die Formatierung der Ausgabe habe ich mir keine Gedanken gemacht, da das Aufgabe des installierten WordPress-Themes ist und dieses die Aufgabe hervorragend bewältigte.\nDie eingegebenen Daten werden vom Formular (nach Verifizierung) im PHP-globalen Array $_SESSION gespeichert. Eine Übergabe an das grafikerzeugende Skript per URL kam nicht in Frage, denn dadurch hätten die Parameter von einem eventuellen Angreifer modifiziert und zur Überlastung (durch andauernde mehrfache Aufrufe) missbraucht werden können. Gleichfalls gibt es Plugins für jeden gängigen Browser, die die angesurfte URL erst einmal an einen Dienst übermitteln (der wohl wohlgemeint sein kann), um die Unbedenklichkeit des jeweiligen Links zu überprüfen. Diese Übermittlung eures Geburtsdatums wollte ich auf jeden Fall verhindern. Deswegen kam nur die Speicherung der eingegeben Daten in den Session-Variablen in Frage. Und zu eurem Schutz ist die Speicherung der Session-Daten auch auf die Dauer eurer Browser-Sitzung beschränkt. Sobald ihr euren Browser schließt, weiss die Webseite nicht mehr, welche Daten ihr in dieses Formular eingegeben habt.\nDas durch den Shortcode ausgegebene Formular hat als Ziel (beim Klicken des Submit-Buttons) sich selbst. Dabei wird folgendes erkannt:\nwurde das Formular ausgefüllt (wurden Werte mit dem entsprechenden Namen übermittelt)? entsprechen die übermittelten Werte den Vorgabewerten (sind sie gültig)? wenn ja, dann Abspeichern der Werte in den PHP-Variablen $_SESSION['...'] wenn ja, dann Einbinden einer URL, die als Ausgabe eine Grafik enthalten soll 1if (isset($_SESSION[\u0026#39;bio_day\u0026#39;]) \u0026amp;\u0026amp; isset($_SESSION[\u0026#39;bio_month\u0026#39;]) \u0026amp;\u0026amp; isset($_SESSION[\u0026#39;bio_year\u0026#39;])) 2{ 3 $bday = $_SESSION[\u0026#39;bio_day\u0026#39;]; 4 $bmonth = $_SESSION[\u0026#39;bio_month\u0026#39;]; 5 $byear = $_SESSION[\u0026#39;bio_year\u0026#39;]; 6} 7 8if (isset($_POST[\u0026#39;bio_day\u0026#39;]) \u0026amp;\u0026amp; isset($_POST[\u0026#39;bio_month\u0026#39;]) \u0026amp;\u0026amp; isset($_POST[\u0026#39;bio_year\u0026#39;])) 9{ 10 $tday = intval($_POST[\u0026#39;bio_day\u0026#39;]); 11 $tmonth = intval($_POST[\u0026#39;bio_month\u0026#39;]); 12 $tyear = intval($_POST[\u0026#39;bio_year\u0026#39;]); 13 if ($tday \u0026gt;= 1 \u0026amp;\u0026amp; $tday \u0026lt;= 31 \u0026amp;\u0026amp; $tmonth \u0026gt;= 1 \u0026amp;\u0026amp; $tmonth \u0026lt;= 12 \u0026amp;\u0026amp; $tyear \u0026gt;= date(\u0026#39;Y\u0026#39;) - 100 \u0026amp;\u0026amp; $tyear \u0026lt;= date(\u0026#39;Y\u0026#39;) \u0026amp;\u0026amp; checkdate($tmonth, $tday, $tyear)) 14 { 15 $bday = $tday; 16 $bmonth = $tmonth; 17 $byear = $tyear; 18 $_SESSION[\u0026#39;bio_day\u0026#39;] = $bday; 19 $_SESSION[\u0026#39;bio_month\u0026#39;] = $bmonth; 20 $_SESSION[\u0026#39;bio_year\u0026#39;] = $byear; 21 } 22} PHP-Skript Das eingebundene PHP-Skript zur Generierung der Grafik überprüft dann als erstes das Vorhandensein der zu übergenben Werte. Dabei müssen in der URL keinerlei Parameter mitgegeben werden, da vorher nach erfolgreicher Gültigkeitsprüfung alle erforderlichen Werte in den Session-Variablen abgelegt wurden. Das PHP-Skript wird als Quelle eines Bildes in der Form angegeben.\nBeim Aufruf des Skripts myphpscript.php (aus der gleichen Domain!) sind dann alle $_SESSION-Variablen wieder lesbar und lassen sich weiterverarbeiten. Mit Hilfe der GD-Library lassen sich dann entsprechende Grafiken erzeugen.\n","link":"https://blog.tausys.de/2012/03/13/wordpress-shortcodes-formulare-und-deren-verarbeitung/","section":"posts","tags":["PHP","WordPress"],"title":"WordPress – Shortcodes, Formulare und deren Verarbeitung"},{"body":"WordPress bietet die Möglichkeit, eine Liste von Artikeln zu mehreren Tags anzuzeigen. Dabei können die Tags mit UND/ODER verknüpft werden. Dazu müssen in der URL mehrere Tags angegeben werden. Werden die Tags mit \u0026quot;+\u0026quot; abgetrennt, werden sie logisch UND verknüpft. Mit \u0026quot;,\u0026quot; erfolgt die Verknüpfung logisch ODER.\nSo z.B. werden durch\n1http://blog.tausys.de/tag/linux+ubuntu/ alle Artikel angezeigt, die mit Stichwörtern linux UND ubuntu gekennzeichnet sind. Durch\n1http://blog.tausys.de/tag/linux,ubuntu/ werden alle Artikel angezeigt, die entweder mit dem Stichwort linux ODER ubuntu gekennzeichnet sind.\n","link":"https://blog.tausys.de/2012/03/10/wordpress-artikel-zu-mehreren-tags-anzeigen/","section":"posts","tags":["OSS","WordPress"],"title":"WordPress – Artikel zu mehreren Tags anzeigen"},{"body":"","link":"https://blog.tausys.de/tags/cmd/","section":"tags","tags":null,"title":"CMD"},{"body":"Die Windows-Eingabeaufforderung enthält seit Windows XP eine Befehlshistorie, mit der sich bereits eingegebene Befehle erneut auswählen lassen. Ganz einfach geht das mit den Pfeil-Nach-Oben und -Unten Tasten, die jeweils einen Befehl in der Historie rückwärts oder vorwärts gehen.\nEine weitere Möglichkeit wird mit der Taste F7 angeboten. Es öffnet sich ein kleines Fenster mit den zuletzt eingegebenen Befehlen. Durch diese Liste kann mit den Tasten Pfeil-Nach-Oben/Unten, Bild-Auf/Ab und Pos1/Ende navigiert werden. Zum schnellen Auswählen kann auch der Anfangsbuchstabe des jeweiligen Befehls eingegeben werden. Die Markierung springt dann sofort zum zuletzt eingegebenen Befehl mit diesem Anfangsbuchstaben. Durch mehrmaliges Drücken des Anfangsbuchstabens kann zwischen den Befehlen mit gleichem Anfang navigiert werden. Mit der Esc-Taste wird das Historien-Fenster ohne Auswahl eines Befehls geschlossen.\nMit der Enter-Taste wird der markierte Befehl sofort ausgeführt. Mit den Taste Pfeil-Nach-Rechts oder -Links wird der markierte Befehl erst in die Eingabeaufforderung übertragen, so dass man ihn vor der Ausführung editieren kann.\n","link":"https://blog.tausys.de/2012/03/09/kommando-historie-in-der-windows-eingabeaufforderung/","section":"posts","tags":["CMD","Windows"],"title":"Kommando-Historie in der Windows-Eingabeaufforderung"},{"body":"Ein Konfigurationsbeispiel eines name-based vhosts aus der Praxis:\nmehrere Subdomains zur Domain example.com jede eigene Subdomain hat ihren eigenen name-based virtuellen Hosts in Apache eingestellt reverse Mapping im DNS ist so eingestellt, dass example.com zur gleichen Adresse wie www.example.com auflöst Was passiert nun, wenn http://example.com angesteuert wird?\nDer Apache sucht sich den ersten virtuellen Host heraus, den er beim Starten eingelesen hat und liefert diese Seite aus. Das ist natürlich nicht im Sinne des Erfinders.\nAbhilfe schafft die ServerAlias-Direktive, die in der jeweiligen vhost-Konfigurationsdatei anzugeben ist. Mit\n1ServerName www.example.com 2ServerAlias example.com\u0026lt; in der vhost-Definition von www.example.com wird beim Aufruf von http://www.example.com oder http://example.com anschließend die richtige Seite ausgeliefert.\n","link":"https://blog.tausys.de/2012/03/07/standard-virtuellen-host-in-apache-einstellen/","section":"posts","tags":["Apache","OSS"],"title":"Standard virtuellen Host in Apache einstellen"},{"body":"","link":"https://blog.tausys.de/tags/bing/","section":"tags","tags":null,"title":"Bing"},{"body":"Immer wieder landen im eigenen Postfach E-Mails, in denen Experten die Optimierung der eigenen Webseite anbieten. Aus dem beruflichen Umfeld kenne ich einige dieser Optimierer und meiner Meinung nach kommt jeder mit Verstand und ein bisschen technischem Hintergrundwissen auf die nötigen Einstellungen und Anpassungen an der eigenen Webseite, um bei den Suchmaschinen kontextbezogen auf vordersten Plätze zu landen.\nGoogle Für jeden Webmaster ist es wichtig, die Erreichbarkeit der eigenen Webseite zu testen und ausserdem zu erfahren, wie Suchmaschinen die eigene Webseite sehen. Google hat dazu die Google-Webmaster-Tools erstellt, mit denen sich schnell ein Überblick darüber verschafft werden kann, welche Inhalte am meisten gesucht und dann auch geklickt worden sind. Sehr nützlich ist ausserdem die Anzeige der Crawl-Fehler, also fehlerhafte Links, die auf keine Seite mehr zeigen. Zusätzlich gibt Google Hinweise, welche Seitentitel doppelt vergeben worden sind oder Google zu kurz erscheinen. Ebenfalls bei den Google-Webmaster-Tools kann eine Sitemap der eigenen Seite einreicht werden, um dem Google-Crawler die Arbeit zu erleichtern und auch Prioritäten für die einzelnen Seiten vergeben.\nFür blog.tausys.de zeigen die Google-Webmaster-Tools für die letzten 30 Tage z.B. folgende Grafik über die Anzeige in Suchergebnissen und die daraus resultierenden Klicks an:\nGoogleTauSys Anfragen der letzten 30 Tage\nNeben den eindeutig zu vergebenden Titeln einer Seite sind für Google auch die Ladezeiten einer Webseite wichtig. In den Crawl-Statistiken wird extra eine Grafik für die Geschwindigkeit, mit der eine Seite vom Google-Crawler abgerufen werden kann, angezeigt.\nGoogle TauSys Dauer des Herunterladens einer Seite\nDiese Leistungkennzahl wird offensichtlich noch ausgebaut, denn in den Google-Labs wird an einer Funktion \u0026quot;Webseite-Leistung\u0026quot; gearbeitet, die das Ladeverhalten einer Webseite analysiert:\nLeistungsübersicht\nIm Durchschnitt benötigen Seiten auf Ihrer Website 1,3 Sekunden zum Laden (aktualisiert am 20.11.2011). Dies ist schneller als 85 % der Websites. Diese Schätzungen sind von geringer Genauigkeit (weniger als 100 Datenpunkte).\nWie einige Besucher dieser Webseite vielleicht wissen, setze ich hier WordPress ein. Da Content-Managment-Systeme Webseiten dynamisch beim Abruf erstellen, ergibt sich dadurch eine hohe Ladezeit. Abhilfe schafft das schon beschriebene W3 Total Cache-Plugin, welches die generierten Webseiten für eine gewisse Zeit als Dateien speichert und dann schnell ausliefern kann. An obigem Graphen ist die Wirkung nach der Installation des Plugins Anfang Dezember schön zu sehen.\nBing Microsoft hat analog zu Google eigene Webmaster-Tools entwickelt. Auch bei den Bing-Webmaster-Tools kann man eine Sitemap der eigenen Webseite einreichen und verschiedene Grafiken zum Crawling oder den gesuchten Seiten finden. Leider ist meiner Meinung nach die Qualität im Gegensatz zu Google eine ganz andere. Es werden viel weniger Zahlen präsentiert, doch umsomehr uninformative Grafiken. Auch sind die Benutzer von Bing wohl eher nicht im technischen Umfeld zu suchen, so dass Bing nicht unbedingt für dieses Blog hier relevant ist.\nYahoo Yahoo betreibt seit langem keine eigene Suchmaschine mehr. Der ehemalige Yahoo-Site-Explorer und all seine Daten wurden komplett in Bing integriert.\nVerlinkung Eine nicht zu unterschätzende Möglichkeit der Verlinkung eines Blogs ist die Abgabe von Kommentaren zu relevanten Posts in anderen Blogs. So z.B. gestattet es WordPress von Haus aus, Kommentare durch Angabe eines Benutzernamens, einer E-Mail-Adresse (wird nicht veröffentlicht) und einer Web-Adresse zu veröffentlichen. Je nach Einstellung muss der abgegebene Kommentar noch vom Administrator des Blogs freigeschaltet werden. Nicht umsonst schlagen hier im Blog dauernd automatisierte Spam-Kommentare auf, die nur einen Zweck haben: eine URL auf dieser Webseite einzutragen.\nEine weitere Möglichkeit ist die Erwähnung von anderen Blogs im eigenen Artikel verbunden mit dem Setzen eines korrekten Link. WordPress generiert daraus die in der Blog-Szene bekannten Pingbacks, mit denen ohne weiteres Zutun unter den verlinkten Artikel ein Verweis auf den eigenen Artikel mit einem kurzen Textausschnitt gepostet wird. Ein Beispiel ist hier unter WordPress auf neue Domain umziehen zu finden, in dem ein Link auf einen Artikel auf der Webseite blogs-optimieren.de gesetzt wurde. Automatisch (bei freigeschaltetem Trackback) erscheint damit auf blogs-optimieren.de ein Kommentar zum Artikel.\nRSS-Feeds Ein RSS-Feed ist für ein Blog ein Muss. Ein RSS-Feed kann vom Leser abonniert und in seinen bevorzugten RSS-Reader eingetragen werden. Damit wird zwar beim Lesen nicht die eigene Webseite besucht, aber die Leser bekommen sofort mit, wann ein neuer Artikel im Blog veröffentlicht wurde. Um den Leser bei interessanten Themen doch noch auf die eigene Webseite zu locken empfiehlt es sich, im RSS-Feed nur einen kurzen Anrisstext des Artikels anzuzeigen.\nDamit bei einer breiten Leserschaft die Webseite des Blogs nicht unter der Last des RSS-Feed-Abrufs zusammenbricht, kann z.B. der Dienst Feedburner (mittlerweile auch zu Google gehörend) genutzt werden. Dadurch erfolgt der RSS-Abruf nur durch Feedburner und alle Leser erhalten als RSS-Feed-Adresse die Feedburner-Adresse mitgeteilt. Ein für WordPress passendes Plugin ist das FD Feedburner Plugin, welches diese Aufgaben automatisch erledigt.\nSocial Media Mehr und mehr werden auch die Posts von Usern aus dem Social-Media-Bereich von Suchmaschinen durchforstet. Google hat hier mit seinem eigenen sozialen Netzwerk Google+ klar die Nase vorn. Mit der Suchfunktion in Google und Google+ werden Seiten sowohl aus dem \u0026quot;normalen\u0026quot; Netz als auch aus Google+ gefunden. Facebook dagegen hat sich schon immer abgegrenzt. Die Posts der User dort sind nicht in Suchmaschinen verzeichnet. Bei beiden Netzwerken ist unter Umständen evtl. eine Einrichtung einer Seite angebracht, um mehr Benutzer auf das eigene Blog hinzuweisen. Nachteil ist dabei natürlich, dass man evtl. Nachrichten doppelt verfassen muss.\nContent im Kontext Suchmaschinen sind bei weitem nicht mehr so \u0026quot;dumm\u0026quot; wie zu Zeiten von Altavista und Co. Sie erkennen, um was es in dem jeweiligen Blog geht und bilden sich daraus einen Kontext-Graphen, der bei der Suche nach relevanten anderen Inhalten hilft. Für ein Blog ist dieser gleichbleibende Kontextbezug nicht immer einfach herzustellen. So z.B. geht es in diesem Blog hier um viele verschiedene computertechnische Sachen, ein paar Blog-Einträgen mit ganz persönlichen Meinungen und auch Fundstücken aus den Tiefen des Webs. Eine Hilfe für die Suchmaschinen ist sicherlich dabei die Verlinkung von gleichartigen Inhalten auf der Webseite. Diese Verlinkung kann man z.B. in WordPress durch die Angabe von Kategorien vereinfachen.\nBewertung Ich habe seit längerer Zeit hier Plugins für Google+, Facebook und auch Twitter eingebunden, mit dem sich der gerade angezeigte Artikel bei Interesse in die jeweiligen Netzwerke weitergeben lässt. Seit kurzem wurde auch eine Möglichkeit zur Bewertung der einzelnen Beiträge eingeführt. Leider nutzen zumindest meine Leser diese Möglichkeit fast nicht. Allerdings erlebt man oft auch auf großen Newsportalen ein etwas kümmerliches Dasein dieser Funktionen.\nResultat Mittlerweile hat dieses Blog einen Sprung aus dem Nichts unter die ersten 100.000 Webseiten aus Deutschland geschafft. Das Alexa-Ranking:\nAlexa TauSys Ranking 03-2012\n","link":"https://blog.tausys.de/2012/03/04/blog-selbst-optimieren-erfahrungen-und-tipps/","section":"posts","tags":["Bing","Google","WordPress","Yahoo"],"title":"Blog selbst optimieren – Erfahrungen und Tipps"},{"body":"","link":"https://blog.tausys.de/tags/yahoo/","section":"tags","tags":null,"title":"Yahoo"},{"body":"Wie einer Pressemitteilung zu entnehmen ist, kommen ab morgen bei Entertain mehrere HD-Sender hinzu: ProSieben HD, SAT1 HD, kabel eins HD, sixx HD, N24 HD und TELE 5 HD. Erfreulicherweise bleibt bei diesen Sendern die Funktion des Vorwärtsspulens und die Aufnahmemöglichkeit erhalten.\nNeu ist ebenfalls, dass auch Kunden mit einem 16 Mbit Anschluss in den Genuss von HD kommen sollen.\n","link":"https://blog.tausys.de/2012/02/29/neue-hd-sender-bei-telekom-entertain/","section":"posts","tags":["IPTV","Telekom"],"title":"Neue HD-Sender bei Telekom Entertain"},{"body":"Die nachfolgenden Bilder zeigen die Unterschiede der einzelnen Lichtquellen in Blender.\n","link":"https://blog.tausys.de/2012/02/27/blender-typen-der-lichtquellen/","section":"posts","tags":["Blender"],"title":"Blender – Typen der Lichtquellen"},{"body":"Thunderbird lässt sich mit ein paar Einstellungen für eine bessere Tastaturnavigation konfigurieren. Mit der Taste N kann man schnell zur nächsten ungelesenen Nachricht weiterschalten. Falls die Nachrichten evtl. direkt vom Server aber schon in unterschiedliche Ordner einsortiert worden sind, erscheint beim Wechseln des Ordners eine Frage, ob auch wirklich in den neuen Ordner gewechselt werden soll. Diese Frage finde ich unnötig - sie lässt sich abstellen. Unter Einstellungen -\u0026gt; Erweitert -\u0026gt; Konfiguration bearbeiten gelangt man zu den Einstellungen, die nicht direkt in der Oberfläche bearbeitet werden können. Die Einstellung\nmailnews.nav_crosses_folders\nist zuständig für die Frage beim Ordnerwechsel. Stellt man hier (durch einen Doppelklick) den Wert 3 ein, erscheint die Frage beim Ordnerwechsel nicht mehr.\nNicht direkt mit der Tastaturnavigation zu tun, aber für Benutzer mit einem IMAP-Postfach und mehreren vom Server direkt befüllten Ordnern nützlich, ist noch folgende Einstellung:\nmail.server.default.check_all_folders_for_new\nNach dem Setzen des Wertes auf true werden alle IMAP-Postfächer nach neuen E-Mails durchsucht.\n","link":"https://blog.tausys.de/2012/02/24/thunderbird-einstellungen-zur-tastaturnavigation/","section":"posts","tags":["E-Mail","Thunderbird"],"title":"Thunderbird – Einstellungen zur Tastaturnavigation"},{"body":"","link":"https://blog.tausys.de/tags/acta/","section":"tags","tags":null,"title":"ACTA"},{"body":" ACTA Sperrung\n(gefunden bei da]v[ax)\nWas man alles gegen ACTA tun kann ist in einem eigens eingerichteten Wiki zu erfahren. Dort findet sich auch eine Liste mit geplanten Aktionen und Demonstrationen.\n","link":"https://blog.tausys.de/2012/02/02/so-koennte-es-mit-acta-bald-auf-vielen-webseiten-aussehen/","section":"posts","tags":["ACTA"],"title":"So könnte es mit ACTA bald auf vielen Webseiten aussehen"},{"body":"In Thunderbird können die für die Abfrage von E-Mail-Konten benötigten Passwörter im integrierten Passwort-Manager hinterlegt werden. Damit Unbefugte keinen Zugriff auf diese Passwortliste bekommen, kann ein Master-Passwort eingestellt werden, welches dann beim Start von Thunderbird eingegeben werden muss. Falls gleichzeitig auch die Thunderbird-Kalender-Erweiterung (Lightning) installiert ist, tritt bei der Abfrage des Master-Passwortes ein Bug zutage, der leider seit Ende 2006 nicht behoben wurde: der Dialog zur Abfrage des Master-Passworts erscheint zwei Mal. Einmal für die E-Mail-Konten und einmal für die Kalender.\nDie Bugs sind mehrfach im Mozilla-Bugtracker dokumentiert:\nhttps://bugzilla.mozilla.org/show_bug.cgi?id=349641 https://bugzilla.mozilla.org/show_bug.cgi?id=682474 Thunderbird AddOn StartupMaster\nAbhilfe schafft bis jetzt nur die Installation des Thunderbird-Addons StartupMaster, welches direkt beim Anwendungsstart das Masterpasswort abfragt und dann Thunderbird und Lightning zur Verfügung steht.\n","link":"https://blog.tausys.de/2012/01/17/doppelte-masterpasswort-abfrage-in-thunderbird-verhindern/","section":"posts","tags":["Lightning","Thunderbird"],"title":"Doppelte Masterpasswort-Abfrage in Thunderbird verhindern"},{"body":"","link":"https://blog.tausys.de/tags/lightning/","section":"tags","tags":null,"title":"Lightning"},{"body":"","link":"https://blog.tausys.de/tags/datenschutz/","section":"tags","tags":null,"title":"Datenschutz"},{"body":"Durch einen Kommentar auf Google+ bin ich auf eine Übersicht bei daten-speicherung.de über deutscher Sicherheits- und Überwachungsgesetze, ihres kritischen Inhalts und des Stimmverhaltens der Fraktionen im Deutschen Bundestag hingewiesen worden, den ich hier gern weitergeben möchte.\n","link":"https://blog.tausys.de/2012/01/16/ueberwachungsgesetze/","section":"posts","tags":["Datenschutz","Gesetze","Sicherheit"],"title":"Überwachungsgesetze"},{"body":"Modernere Computer sind meistens mit einem Kartenleser zum Lesen und Schreiben von marktübliche Speicherkarten ausgerüstet. Besitzer einer Digitalkamera rüsten gegebenenfalls ihren Computer mit einem externen Lesegerät nach, um Fotos oder Videos auf den Computer übertragen zu können. Standardmäßig wird unter Windows bei der Installation für jeden Kartenleser-Slot ein eigener Laufwerksbuchstabe vergeben. Bei vielen Slots können da schon mal sechs oder mehr (meistens ungenutzte) Laufwerksbuchstaben zusammenkommen. Falls, wie unter einem neueren Windows üblich, eine mit dem Dateisystem NTFS formatierte Partition vorhanden ist, lassen sich diese Kartenleser-Slots auch ohne Vergabe eines Laufwerksbuchstabens ansprechen.\nNTFS bietet die Möglichkeit, andere Datenträger unter einem Verzeichnisnamen einzubinden. So z.B. kann unter C:\\Kartenleser Slot1 der erste Slot des Kartenlesers eingebunden werden. Gleichzeitig kann der automatisch vergebene Laufwerksbuchstabe vom entsprechend Kartenleser-Slot entfernt werden. Bei jedem Explorer-Zugriff auf das Verzeichnis C:\\Kartenleser Slot1 bekommt man den Inhalt der gerade eingelegten Speicherkarte angezeigt. Die Laufwerksbuchstaben aller Slots sind nach der Umstellung dann wieder für andere anzuschließende Geräte (USB-Sticks, Festplatten) verfügbar.\nDie Einbindung der Laufwerke erfolgt in der Computerverwaltung. In der Computerverwaltung wird die Datenträgerverwaltung aufgerufen. Anschließend erhält man einen Überblick über die im System installierten Speichergeräte und die darauf vorhandenen Partitionen.\nComputerverwaltung Datenträgerverwaltung\nIn diesem Beispiel sind die Laufwerke E: bis H: durch einen Kartenleser belegt. Zum Ändern des Laufwerksbuchstabens wird auf den Zeilenkopf (dort wo im Bild Wechselmedium (E:) steht) mit der rechten Maustaste geklickt und Laufwerksbuchstaben und -pfade ändern... gewählt.\nComputerverwaltung Datenträgerverwaltung Laufwersbuchstabe und Pfade\nZum Bereitstellen dieses Laufwerks wählt man zuerst Hinzufügen... und wählt im nachfolgenden Dialog einen bereits vorhandenen, leeren Ordner aus oder erstellt im Durchsuchen...-Dialog einen neuen Ordner.\nComputerverwaltung Datenträgerverwaltung Laufwersbuchstabe und Pfade hinzufügen\nNach dem Klick auf OK wird die Bereitstellung des Datenträgers im angegeben Ordner vorgemerkt. Anschließend wird im vorherigen Dialog der Laufwerksbuchstabe angeklickt (hier E:) und diese Zuweisung durch Klicken auf Enfernen aufgehoben. Nach einem abschließenden Klick auf OK werden die gerade gemachten Änderungen durchgeführt.\nFür Nutzer, die nur einen bestimmten Kartentyp mit ihrem Leser verwenden, kann evtl. auch nur der Laufwerksbuchstabe entfernt werden, so dass der betreffende Slot überhaupt nicht mehr vom System angesprochen wird.\nLeider hat die hier gezeigte Vorgehensweise auch einen Nachteil: nach bisherigen Tests protokolliert das Windows-eigene Sicherungsprogramm beim Sichern eines Laufwerks mit eingehängten anderen Datenträgern immer Warnmeldungen, wenn beim Sicherungslauf keine Karte im Leser eingelegt ist.\n","link":"https://blog.tausys.de/2012/01/16/datentraeger-in-ntfs-verzeichnissen-bereitstellen/","section":"posts","tags":["Kartenleser","Laufwerk","NTFS","Windows"],"title":"Datenträger in NTFS-Verzeichnissen bereitstellen"},{"body":"","link":"https://blog.tausys.de/tags/kartenleser/","section":"tags","tags":null,"title":"Kartenleser"},{"body":"","link":"https://blog.tausys.de/tags/laufwerk/","section":"tags","tags":null,"title":"Laufwerk"},{"body":"","link":"https://blog.tausys.de/tags/ntfs/","section":"tags","tags":null,"title":"NTFS"},{"body":"","link":"https://blog.tausys.de/tags/fail2ban/","section":"tags","tags":null,"title":"Fail2ban"},{"body":"Auf allen Blogs, Webseiten und überhaupt allem, was http spricht, tummeln sich Bots. Die meisten davon sind Bots der Suchmaschinenbetreiber. Daneben gibt es solche, die für die Webseite keinerlei Nutzen bringen, ja sogar gegen die Webseitenbetreiber arbeiten. So z.B. der Pixray-Bot, der Webseiten nach urheberechtlich geschützen Bildern durchsucht. Bei einem Fund kann man sich anschließend offensichtlich auf Post vom Anwalt freuen.\nDa meiner Meinung nach das Verhalten des Pixray-Bots einer digitalen Hausdurchsuchung entspricht, ich ihm das nicht erlaubt habe und ich den durch den Bot generierten Traffic bezahlen muss, habe ich nach einer Lösung gesucht, den Bot von meinen Webseiten fernzuhalten.\nMeine erste Idee war, die IP-Adressen des Bots aus den Apache-Logfiles zu fischen und diese dann direkt mit iptables zu sperren. Natürlich nur mit einem deny und nicht mit reject, man will es den Betreibern von Pixray ja nicht zu einfach machen. Allerdings ist das Festlegen auf IP-Adressen wohl keine gute Idee, denn diese können sich im Laufe der Zeit ändern. Auch die Sperre eines Subnetzes ist nicht möglich, da (derzeit) die Pixray-Bots auf verschiedenen einzelnen Servern aus unterschiedlichen Subnetzen beim Hostingprovider Hetzner gehostet werden. Vielleicht ist das auch Absicht.\nDie zweite Idee war erfolgversprechender: mit Hilfe des bereits hier eingesetzen fail2ban Zugriffe durch den Pixray-Bot feststellen und dann automatisch die IP-Adresse mit iptables aussperren. Das garantiert zwar keinen 100%igen Erfolg, da immer erst mindestens ein erfolgreicher Zugriff protokolliert worden sein muss. Auch identifiziert sich der Pixray-Bot selbst durch seinen User-Agent, was evtl. in Zukunft nicht mehr der Fall sein kann. Mit diesem Kompromiss kann ich aber im Moment leben.\nIn der fail2ban-Konfiguration unter Ubuntu (mitgeliefert wird aktuell die fail2ban-Version 0.8.4) ist bereits ein Filter zum Erkennen von unliebsamen User-Agents enthalten, aber nicht aktiviert. In der Datei /etc/fail2ban/filter.d/apache-badbots.conf sind bereits ein paar User-Agents eingetragen. Ich habe dort Pixray bei der Einstellung badbotscustom hinzugefügt:\n1badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\\.02|sogou music spider|Pixray Bei mir musste ausserdem das Muster zum Suchen angepasst werden, da in meinen Apache-Logs als erstes der virtuelle Hostname protokolliert wird. Das Suchmuster sieht bei mir dann so aus:\n1failregex = ^(blog|www|piwik|thinkup)\\.tausys\\.de \u0026lt;HOST\u0026gt; -.*\u0026#34;(GET|POST).*HTTP.*\u0026#34;(?:%(badbots)s|%(badbotscustom)s).*\u0026#34;$ Besonders auf das hinzugefügte .* am Ende des Muster muss geachtet werden. Falls nicht schon vorhanden muss anschließend in der Datei /etc/fail2ban/jail.conf ein neues \u0026quot;Gefängnis\u0026quot; definiert werden:\n1[apache-badbots] 2enabled = true 3port = http,https 4filter = apache-badbots 5logpath = /var/log/apache*/*access.log 6maxretry = 0 7bantime = 2592000 Die bantime entspricht in dieser Einstellung 30 Tagen. Den Wert für maxretry habe ich auf 0 gesetzt, damit schon nach einem einzigen Versuch Aktionen durch fail2ban ausgelöst werden.\nNach einem Neustart von fail2ban kann die korrekte Konfiguration durch die Anzeige der iptables-Chains mit\n1iptables -L -v kontrolliert werden. Dort muss dann ein Chain fail2ban-apache-badbots angelegt worden sein. Nach kurzer Laufzeit (der Pixray-Bot kam hier im Minutentakt vorbei) hat man schon die ersten Bots ausgesperrt.\n1Chain fail2ban-apache-badbots (1 references) 2pkts bytes target prot opt in out source destination 3 3 180 DROP all -- any any node-176-9-19-103.cluster.eu.webcrawler.pixray.com anywhere 4 6 360 DROP all -- any any node-176-9-31-203.cluster.eu.webcrawler.pixray.com anywhere 5 6 360 DROP all -- any any node-46-4-121-154.cluster.eu.webcrawler.pixray.com anywhere 6 20 1136 DROP all -- any any node-46-4-116-100.cluster.eu.webcrawler.pixray.com anywhere 73878 718K RETURN all -- any any anywhere anywhere Nun ist Ruhe.\n","link":"https://blog.tausys.de/2012/01/13/pixray-bot-mit-fail2ban-aussperren/","section":"posts","tags":["Apache","fail2ban","OSS","Security"],"title":"Pixray-Bot mit Fail2ban aussperren"},{"body":"Seit kurzem ist die Version 2.6 von Blender verfügbar, die nun standardmäßig den Ocean Modifier erthält. Mit diesem lassen sich relistische Ozeanscenen erstellen. Hier mein Beispiel:\nDer Ozean in dieser Scene wurde mit folgenden Einstellungen des Ocean Modifiers gerendert:\nBlender Ocean Modifier\n","link":"https://blog.tausys.de/2012/01/03/blender-uebung-ozean/","section":"posts","tags":["Blender"],"title":"Blender Übung: Ozean"},{"body":"Die Blender-Tutorials von Blender Cookie sind einfach genial. Nach dem Bau von ein paar Lufballons musste ich mich gleich am nächsten interessanten Tutorial versuchen: einem Audio Visualizer mit Python.\nBlender Übung Audio Visualizer\nMit ein paar Anpassungen im vorgestellten Python-Skript und anschließender Bearbeitung der generierten Objekte sieht mein erster Versuch so aus:\nDer von mir verwendete Song EGOamp-The Cabinet (Edit Version) steht unter einer CC-Lizenz und kann aus den Free Music Charts oder von Jamendo heruntergeladen werden.\n","link":"https://blog.tausys.de/2011/12/30/blender-uebung-audio-visualizer/","section":"posts","tags":["Blender"],"title":"Blender Übung: Audio Visualizer"},{"body":"Aus der Reihe: Fehler im Programm-Manager\nTelekom Programm-Manager Fehler\n","link":"https://blog.tausys.de/2011/12/30/man-kanns-auch-mit-humor-sehen/","section":"posts","tags":["Telekom"],"title":"Man kanns auch mit Humor sehen"},{"body":"","link":"https://blog.tausys.de/tags/logcheck/","section":"tags","tags":null,"title":"Logcheck"},{"body":"","link":"https://blog.tausys.de/tags/saslauthd/","section":"tags","tags":null,"title":"Saslauthd"},{"body":"Alle im Internet angebotenen Services werden über kurz oder lang angegriffen werden. Einfache Attacken sind dabei das Ausprobieren verschiedener Logins auf einem SSH- oder IMAP-Server. Diese können automatisch mit logcheck erkannt und dokumentiert werden. Eine wirkliche Abwehr der Attacke ist das jedoch nicht, da logcheck nur die gescheiterten Loginversuche aus den Logfiles heraussucht und entsprechende Warnungen an den Administrator per E-Mail verschickt. Auf der Suche nach einer einfachen Abwehrmethode stieß ich auf fail2ban, welches nach einer einzustellenden Anzahl von fehlgeschlagenen Logins die IP-Adresse des Angreifers mittels iptables automatisch blockieren kann und diese Blockierung nach einer einzustellenden Zeit automatisch wieder aufhebt.\nlogcheck und fail2ban ist in den Ubuntu-Quellen enthalten und kann mit\n1apt-get install logcheck 2apt-get install fail2ban installiert werden. In der Datei /etc/logcheck/logcheck.conf kann angepasst werden, an welche E-Mail-Adresse die Ergebnisse der Suche nach fehlgeschlagenen Logins geschickt werden. Für fail2ban kann das Selbe in der Datei /etc/fail2ban/jail.conf konfiguriert werden. Nach einem Neustart dieser beiden Dienste werden die Änderungen übernommen.\n1service logcheck restart 2service fail2ban restart Unter Ubuntu 10.04.3 LTS ist es erforderlich, für die erfolgreiche Überwachung des saslauthd die Datei /etc/fail2ban/filter.d/sasl.conf anzufassen, da der saslauthd unter Ubuntu offenbar eine andere Ausgabe benutzt, als sie in fail2ban voreingestellt ist. Die Zeile zum Matchen der Meldung ist durch folgende Zeile zu ersetzten (Quelle):\n1failregex = (?i): warning: [-._\\w]+\\[\u0026lt;HOST\u0026gt;\\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/ ]*)?$ Nach einem Neustart von fail2ban werden anschließend auch fehlgeschlagene Logins über den saslauthd erkannt.\nWenn fail2ban mehrere aufeinanderfolgende fehlgeschlagenen Login-Versuche von einer IP-Adresse durch entsprechende Logmeldungen der zu überwachenden Dienste erkennt, wird die IP-Adresse mittels iptabels gesperrt. Nach einer bestimmten Zeit, die in /etc/fail2ban/jail.conf unter bantime in Sekunden eingestellt werden kann, wird die IP-Adresse wieder aus der Sperrliste in iptables entfernt. Falls man den oder die zu überwachenden Server allein betreibt, kann man evtl. die Sperrzeit auf einen sehr hohen Wert einstellen. 86400 Sekunden entspricht dabei einem Tag.\n","link":"https://blog.tausys.de/2011/12/30/ubuntu-serverabsicherung-gegen-bruteforce-attacken-mit-fail2ban/","section":"posts","tags":["fail2ban","logcheck","OSS","saslauthd","Security","Ubuntu"],"title":"Ubuntu Serverabsicherung gegen Bruteforce-Attacken mit Fail2ban"},{"body":"In letzter Zeit beschäftige ich mich wieder etwas mit Blender, welches seit kurzem eine Generalüberholung des Interfaces erfahren hat. Im Gegensatz zu früher gibt es heute eine Fülle von Tutorials zu Blender. Letztens habe ich mir das sehr gute Tutorial von Jonathan Williamson vorgenommen, in dem das Modellieren von Luftballons mit anschließendem umfangreichen Compositing beschrieben wird.\nBlender Übung Luftballons\nMit dem Shading habe ich etwas herumgespielt und nicht die wie im Tutorial beschriebenen Werte verwendet. Das Ergebnis kann sich aber alle Mal sehen lassen:\nBlender Luftballons\n","link":"https://blog.tausys.de/2011/12/28/blender-uebung-luftballons/","section":"posts","tags":["Blender"],"title":"Blender Übung: Luftballons"},{"body":"Seit heute würde für alle ausgerollt: einstellbare Administratoren für Google+ Seiten. Es können max. 50 Administratoren pro Seite angelegt werden. Zum Verwalten der Administratoren wechselt man zuerst in den Kontext der Seite (links oben neben dem Profilbild), klickt dann rechts oben auf das Zahnrad und wählt Google+ Einstellungen. Links findet sich nun der Menüpunkt Administratoren, unter dem man die Administratoren der Google+ Seite verwalten kann.\nGoogle Pages Administratoren\n","link":"https://blog.tausys.de/2011/12/21/administratoren-fuer-google-seiten-fuer-alle-freigeschaltet/","section":"posts","tags":["Google"],"title":"Administratoren für Google+ Seiten für alle freigeschaltet"},{"body":" Firefox Plugins\nFirefox (von dem soeben die Version 9 veröffentlicht wurde) hat von Haus aus fast alles dabei, um ein einfaches, sicheres und schnelles Surfvergnügen zu bereiten. Mit ein paar kostenlosen und einfach zu installierenden Addons kann man nachhelfen, die eine oder andere Lücke im Bedienkomfort zu schließen oder andere wichtige Funktionen nachzurüsten.\nDie nachfolgende Liste enhält die von mir bevorzugten Addons. Viele werden sich wundern, warum die Liste so kurz ist. Bei all den angebotenen Gimmicks und Features, die man mit Addons nachrüsten kann, sollte man immer bedenken, dass jedes zusätzlich installierte Addon den Browser speicherhungriger, langsamer oder sogar angreifbarer machen kann. Ich verzichte daher grundsätzlich auf Addons, die ich nicht dauernd benötige.\nAdblock Plus Mit Hilfe dieses Addons kann Werbung sehr effektiv ausgeblendet werden. Dazu verwendet das Addon eine Liste von zu blockierenden Webseitenelementen, die automatisch im Hintergrund immer aktuell gehalten wird. Mit der letzten Version von Adblock Plus wurde allerdings das generelle Blockieren etwas reduziert. Bestimmte, nicht als störend empfundene Werbung wird nicht mehr blockiert. Dieses Verhalten läßt sich jedoch in den Einstellungen von Adblock Plus deaktivieren. Ich habe es jedenfalls noch nicht als erforderlich empfunden, denn die nun (wieder) angezeigte Werbung ist wirklich nicht lästig und hilft z.B. auch kleinen Blogs, deren Server zu finanzieren. Eine gute Sache, wie ich denke.\nDownloadHelper Die meisten Videoportale bieten keinen Download der dort gehosteten Videos an. Dieses Addon macht es möglich Videos von mehr als 1.000 unterstützten Portalen herunterzuladen.\nFirebug Firebug ist für Webdesigner ein unverzichtbares Addon. Mit Firebug kann die Struktur einer Webseite untersucht , CSS und HTML on-the-fly geändert und auch JavaScript direkt ausgeführt werden. Firebug macht es außerdem einfach, den Netzwerkverkehr zu visualisieren, den eine Seite beim Laden verursacht. Durch die direkten Änderungsmöglichkeiten von CSS kann man sofort erkennen, wie sie sich auf die gesamte Seite auswirkt. Auch ein DOM-Inspector ist in Firebug enthalten.\nFoxyProxy Standard Wer zum Surfen einen Proxy eintragen muss oder z.B. den Proxy des Providers benutzen will, kann diesen direkt in Firefox einstellen. Leider läßt sich in Firefox aber nur ein einziger Proxy eintragen. Hier setzt das Addon FoxyProxy an, welches je nach festzulegendem URL-Muster unterschiedliche Proxys verwenden kann. Im Zusammenhang mit Videoportalen sind Proxys oft von Vorteil.\nGhostery In Zeiten, in denen von vielen verschiedenen Onlinediensten gespeichert wird, was wir denn so im Netz tun, kann man mit Ghostery quasi zum Schelbstschutz greifen und alle bekannten Tracker, Webbugs und Social Media Plugins blockieren. Dieses Addon hat gegenüber dem früher hier eingesetzten NoScript den Vorteil, dass pro Domain entschieden werden kann, ob eine Blockierung stattfindet oder nicht. So z.B. kann festgelegt werden, dass beim Surfen auf einer Nachrichtenseite alles blockiert wird, beim Surfen auf Facebook aber automatisch die Social Media Plugins wieder erlaubt sind. Mit Hilfe dieses Plugins kann die bereits beim Ansurfen einer Webseite angestoßene Datenübertragung an Facebook und Google (sofern Social Media Plugins wie der Facebook-Like-Button auf der Webseite eingebunden sind) verhindert werden.\nPageSpeed PageSpeed\nDieses Addon stammt von Google und setzt eine Installation des Addons Firebug voraus. Mit PageSpeed kann die eigene Webseite analysiert werden. Anschließend generiert PageSpeed eine Liste mit eventuell verbesserungswürdigen Einstellungen am Webserver, im Design der Webseite oder in der Anordnung von JavaScript und CSS innerhalb der Webseite. Die Optimierungsmaßnamen werden in Kategorien unterteilt und zu jeder Optimierung kann eine Hilfeseite aufgerufen werden, die weitere Hinweise zur Durchführung der Optimierung bietet. PageSpeed hat dabei offenbar ähnliche Kriterien für eine Webseite, wie sie auch die Google-Suchmaschine hat. Je weniger erforderliche Optimierungen angezeigt werden, umso besser ist die Bewertung der Webseite durch Google.\nWeb Developer Mit Web Developer wird eine zusätzliche Menüleiste erstellt, die einen schnellen Zugriff auf viele Designelemente einer Webseite bietet. Ausserdem lassen sich mit einem Klick die von einer Webseite gesetzten Cookies anzeigen. Fehlende Bilder auf der Webseite werden mit diesem Addon schnell gefunden. Für Webdesigner ebenfalls ein unverzichtbares Addon.\n","link":"https://blog.tausys.de/2011/12/20/meine-bevorzugten-firefox-addons/","section":"posts","tags":["Addons","Firefox"],"title":"Meine bevorzugten Firefox-Addons"},{"body":"","link":"https://blog.tausys.de/tags/technorati/","section":"tags","tags":null,"title":"Technorati"},{"body":"Technorati macht es einem schon ein bisschen schwer, den eigenen Blog-Feed dort einzutragen. Nicht, dass schon die Registrierung mit Firefox nicht klappen wollte (erst Chrome brachte mich vorwärts), sondern auch ein anschließendes Anmelden wollte mit Firefox nicht klappen (wiederum mit Chrome erfolgreich). Für die Registrierung des Feeds solle man doch bitte einen neuen Eintrag mit dem Code NB5NETXYFHSQ (nur für den Feed dieser Webseite gültig) veröffentlichen, der dann auch im Feed erscheinen muss. Dabei muss der Code, so wie ich das verstanden habe, im ganz normalen Text zu finden sein. Also sei dieser Anforderung hiermit Genüge getan.\n","link":"https://blog.tausys.de/2011/12/19/technorati-feed-registrierung/","section":"posts","tags":["Chrome","Firefox","RSS","Technorati"],"title":"Technorati Feed Registrierung"},{"body":"Drei Hexen schauen sich drei Swatch Uhren an...\nFür Anfänger Deutsch: Drei Hexen schauen sich drei Swatch Uhren an. Welche Hexe schaut welche Swatch Uhr an?\nEnglisch: Three witches watch three Swatch watches. Which witch watches which Swatch watch?\nFür Fortgeschrittene Deutsch: Drei geschlechtsumgewandelte Hexen schauen sich drei Swatch Uhrenknöpfe an. Welche geschlechtsumgewandelte Hexe schaut sich welchen Swatch Uhrenkopf an?\nEnglisch: Three switched witches watch three Swatch watch switches. Which switched witch watches which Swatch watch switch?\nUnd für Profis Deutsch: Drei schweizer Hexen-Schlampen, die sich wünschen geschlechtsumgewandelt zu sein, schauen sich schweizer Swatch Uhrenknöpfe an. Welche schweizer Hexen-Schlampe, die sich wünscht geschlechtsumgewandelt zu sein, schaut sich welche Swatch Uhrenknöpfe an?\nEnglisch: Three swiss witch-bitches, which wished to be switched swiss witch-bitches, wish to watch swiss Swatch watch switches. Which swiss witch-bitch which wishes to be a switched swiss witch-bitch, watches which swiss Swatch watch switch?\nViel Spaß beim Probieren!\n","link":"https://blog.tausys.de/2011/12/19/englischer-zungenbrecher/","section":"fundstuecke","tags":null,"title":"Englischer Zungenbrecher"},{"body":"Sollte aus irgendeinem Grund der Telekom-Anschluß gesperrt werden, sei es nun wegen nicht ausgeglichener Rechnungen oder einem anderen trifftigen Grund, dann passiert lt. Erfahrungsberichten an einem Entertain-Anschluß inkl. Telefon folgendes:\nabgehende Anrufe werden komplett gesperrt (auch keine Telefonate mit 0800er-Nummern sind mehr möglich, so wie die Telekom behauptet) eingehende Anrufe sind noch für einen begrenzten Zeitraum möglich (die genaue Dauer des Zeitraums ist unbekannt) der Internetzugang wird gesperrt - technisch wird das durch eine nicht mehr erfolgreich verlaufende Anmeldung am Telekom-Radius-Server realisiert IPTV ist weiterhin möglich, es können allerdings nur noch die öffentlich-rechtlichen Sender empfangen werden bereits vorhandene Aufnahmen auf dem Mediareceiver können nicht mehr angeschaut werden, da für das zum Abspielen notwendige DRM eine Internetverbindung benötigt würde, die ja nun nicht mehr zur Verfügung steht Die Freischaltung des Anschlusses erfolgt anschließend in mehreren Schritten:\nTelefon wird automatisch nach Freigabe des Anschlusses wieder freigeschaltet die Freischaltung des Internetzugangs und zu Entertain erfolgen lt. Aussage der Telekom noch per Hand und werden am gleichen Tag (oft nur Stunden nach der Telefonfreischaltung) durchgeführt ","link":"https://blog.tausys.de/2011/12/18/was-passiert-bei-einer-anschlusssperre-durch-die-telekom/","section":"posts","tags":["IPTV","Telekom"],"title":"Was passiert bei einer Anschlußsperre durch die Telekom?"},{"body":"Lange Zeit habe ich nach einer Anleitung für GIMP gesucht, einen Lupeneffekt für Screenshots zu erstellen. Viele Tutorials beziehen sich auf Photoshop oder waren nicht einfach für Anfänger in GIMP zu realisieren. Bei MakeUseOf habe ich eine Anleitung gefunden, die ich hier mit freundlicher Genehmigung auf deutsch wiedergebe.\nWer öfters Screenshots im Blog postet, wird sicher schon nach einem Eyecandy gesucht haben, um die Bilder aufzuwerten. Diese Anleitung beschreibt in ein paar einfachen Schritten, wie der gezeigte Lupeneffekt mit GIMP erzeugt werden kann. Es wird Schritt für Schritt erklärt, wie aus einem einfachen Screenshot das rechts gezeigte Bild mit einem Lupeneffekt erstellt wird.\nZuerst einmal wird ein bereits erstellter Screenshot in GIMP geöffnet oder ein neuer Screenshot mit GIMP-eigenen Mitteln erstellt. Im Menü Datei -\u0026gt; Erstellen -\u0026gt; Bildschirmfoto kann ein Screenshot des ganzen Bildschirms oder eines einzelnen Fensters erstellt werden.\nMit dem Elipsen-Auswahl-Tool wird anschließend der hervorzuhebende Bereich des Bildes ausgewählt. Wird beim Auswählen die Shift-Taste festgehalten, wird ein exakter Kreis ausgewählt. Beim Zeichnen der Auswahl muss dabei die Option Aktuelle Auswahl ersetzen ausgewählt sein.\nNun wird mit Strg-C und anschließendem Strg-V die Auswahl kopiert und gleich wieder eingefügt. Die eingefügte Auswahl ist in der Ebenenansicht (falls sie nocht nicht angezeigt wird: mit Strg-L einschalten) als Schwebende Auswahl angezeigt. Über das Menü Ebene -\u0026gt; Neue Ebene wird aus der schwebenden Auswahl eine neue Ebene erstellt.\nIm Ebenendialog ist nun die neue gerade erzeugte Ebene auszuwählen und mit dem Skalierungs-Tool auf das gewünschte Maß zu vergrößern.\nNach dem Skalieren der eingefügten Ebene wird mit einem Klick auf das Auge links vor der Hintergrundebene in der Ebenenansicht die Hintergrundebene ausgeblendet.\nJetzt wird die obere (gerade eingefügte Ebene) angewählt und mit dem Menüpunkt Ebene -\u0026gt; Ebene auf Bildgröße vergrößert.\nMit einem Rechtsklick auf die Ebene im Ebenendialog und der Auswahl von Auswahl aus Alphakanal wird aus dem sichtbaren Bereich eine neue Auswahl erzeugt.\nDiese Auswahl wird anschließend mit dem Menüpunkt Auswahl -\u0026gt; Vergrößern um ein Pixel vergrößert.\nDiese Auswahl stellt den inneren Rand der Lupe dar. Für diesen inneren Rand wird eine neue Ebene benötigt (Ebene -\u0026gt; Neue Ebene...). Die neue Ebene kann inner gray outline genannt werden. Die Benennung von Ebenen erleichter die Arbeit im Ebenendialog ungemein. Als Ebenenfüllart muß Transparenz gewählt werden.\nMit dem Füllen-Werkzeug (Shift-B) und der Auswahl einer Vordergrundfarbe\nwird die Ebene inner gray outline anschließend gefüllt. Danach wird diese Ebene unter die eingefügte Ebene der Lupe im Ebenendialog verschoben. Dazu wird einfach die zu verschiebende Ebene mit der linken Maustaste festgehalten und an die entsprechende Stelle im Ebenenstapel gezogen.\nNun wird die Auswahl mit Auswahl -\u0026gt; Vergrößern um zwei weitere Pixel vergrößert und eine neue Ebene mit dem Namen white outline erstellt.\nDanach wird die Vorder- und Hintergrundfarbe durch einen Klick auf den Doppelpfeil neben den Farben vertauscht und die Vordergrundfarbe auf weiß geändert. Die aktive Ebene white outline wird mit dem Füllen-Werkzeug gefüllt und anschließend diese Ebene im Ebenendialog hinter die Ebene inner gray outline verschoben.\nNun wird über Auswahl -\u0026gt; Vergrößern die Auswahl abermals um ein Pixel vergrößert und eine neue Ebene mit dem Namen outer gray outline erstellt. Die Vorder- und Hintergrundfarben werden wieder vertauscht (mit einem Klick auf den Doppelpfeil bei den Farben) und die neu erstellte Ebene mit dem Füllen-Werkzeug gefüllt. Anschließend wird die Ebene unter die Ebene white outline verschoben.\nAn dieser Stelle ist ein einfacher Lupeneffekt zu erkennen. Dieser kann noch mit einem Schlagschatten verbessert werden. Zum Hinzufügen des Schlagschattens mit der aktuellen Auswahl und aktivierter Ebene outer gray outline wird der Menüpunkt Filter -\u0026gt; Licht und Schatten -\u0026gt; Schlagschatten angewählt.\nDie Standardwerte können beibehalten werden, nur die Option Größenänderung zulassen muß abgewählt werden.\nNun ist der Schlagschatten fertig. Es kann nun noch ein Leuchteffekt hinzugefügt werden. Dazu wird zuerst im Ebenendialog die eingefügte (und vergrößerte) Ebene ausgewählt und mit einem Rechtsklick Auswahl aus Alphakanal angeklickt. Danach wird die aktuelle Auswahl mit Auswahl -\u0026gt; Nach Pfad in einem Pfad gespeichert.\nAnschließend wird eine neue transparente Ebene mit dem Namen lens feather erzeugt. Mit dieser ausgewählten Ebene im Ebenendialog wird danach der Menüpunkt Auswahl -\u0026gt; Ausblenden aufgerufen und ein Wert von 50 Pixeln eingegeben.\nDanach wird die Auswahl mit Auswahl -\u0026gt; Invertieren umgekehrt.\nNun wird wieder Vorder- und Hintergrundfarbe vertauscht, so dass weiß Vordergrundfarbe ist und die aktuelle Auswahl mit dem Füllen-Werkzeug gefüllt (am Bildrand klicken).\nMit aktivierter Ebene lens feather folgen im Menü die Schritte Auswahl -\u0026gt; Nichts auswählen, Auswahl -\u0026gt; Vom Pfad und Drücken der Entf-Taste. Dadurch wird der Aussenbereich des Leuchteffekts gelöscht.\nZum Hinzufügen eines Glanzeffekts wird die eingefügte und vergrößerte Ebene im Ebenendialog rechts-geklickt und Auswahl aus Alphakanal gewählt. Mit der Auswahl des Elipsen-Werkzeugs und gesetztem 4. Modus (Auswahlschnittmenge bilden) wird eine Elipse über den linken Teil des Bildes ungefähr in der folgenden Art gezeichnet:\nEine neue Ebene mit dem Namen shine wird hinzugefügt, mit weiß gefüllt und deren Deckkraft im Ebenendialog auf 10% gesetzt.\nAnschließend wird mit Auswahl -\u0026gt; Nichts auswählen die aktuelle Auswahl entfernt. Soll die nun komplett erstellte Lupe auf dem Hintergrundbild bewegt werden, empfiehlt es sich, die einzelnen Ebenen mit einem Rechtsklick auf die jeweilige Ebene und der Auswahl von Nach unten vereinen zusammenzufassen. Nach dem Einblenden der Hintergrundebene (Klick auf das Auge vor der Hintergrundebene im Ebenendialog) kann das Ergebnis betrachtet werden.\nFür eigene Experimente kann der Faktor des Ausblendens verändert werden. Über Kommentare zu Verbesserungsvorschläge oder einfacheren Verfahren zum Erziehlen dieses Effekts würden wir uns freuen.\nFrei übersetzt nach einer Idee von Jessica Cam Wong.\n","link":"https://blog.tausys.de/2011/12/18/einfachen-zoom-effekt-auf-screenshot-mit-gimp-erstellen/","section":"posts","tags":["GIMP","OSS","Screenshot"],"title":"Einfachen Zoom Effekt auf Screenshot mit GIMP erstellen"},{"body":"","link":"https://blog.tausys.de/tags/gimp/","section":"tags","tags":null,"title":"GIMP"},{"body":"Unter Windows kann unkompliziert ein Screenshot des aktuellen Fensters mit der Tastenkombination Alt-Druck in die Zwischenablage erstellt werden. Anschließend kann der Inhalt der Zwischenablage im Menü Bearbeiten -\u0026gt; Einfügen oder mit der Tastenkombination Strg-V in ein beliebiges Grafikprogramm eingefügt und dann als Datei gespeichert werden. Seit Windows Vista ist der Fensterbereich aber nicht mehr rechteckig - die Ecken werden abgerundet dargestellt. Und hier liegt das Problem: Alt-Druck kopiert immer einen rechteckigen Bereich, die Ecken enthalten dabei die Inhalte, die unter dem Fenster liegen. Falls man einen dunklen Bildschirmhintergrund verwendet, kann das durchaus störend wirken. Durch das Aero-Design wird in Windows die Titelleiste ebenfalls transparent angezeigt und der Hintergrund scheint durch. Für neutrale Screenshots nicht gerade eine optimale Einstellung.\nAls einfache Lösung kann für Screenshots ein weißer Desktophintergund eingestellt werden. Dann sind die Ecken weiß und auch die Titelleiste sieht gleichförmig aus. Wer den Desktophintergrund nicht immer wechseln möchte, kann z.B. Notepad öffnen, entsprechend groß ziehen oder maximieren und dann das zu fotografierende Fenster vor das weiße Fenster von Notepad ziehen.\nBei all diesen Lösungen geht eins verloren: die Fensterschatten, die seit Windows Aero dargestellt werden. Auch alle einfachen Programme inklusive des ab Windows 7 mitgelieferten Snipping-Tools zum Fotografieren eines Fensters nehmen diese Schatten nicht mit auf. Für den Screenshot eines Fensters reicht es nicht aus, nur den Fensterbereich aufzunehmen.\nUm ansprechende Screenshots mit neutralem Hintergrund (Füllung der Ecken und durchscheinender Titelleiste) zu erstellen empfiehlt sich folgendes Verfahren:\nNotepad starten und evtl. maximieren (für den weißen Hintergrund) zu fotografierendes Fenster vor das Notepad-Fenster setzen die Taste Druck zum Kopieren des gesamten Bildschirminhalts in die Zwischenablage drücken Zwischenablage in ein Grafikprogramm einfügen und auf das betreffende Fenster (inkl. der Fensterschatten) zuschneiden Das Zuschneiden kann dabei schnell mit z.B. IrfanView erledigt werden. Nach dem Einfügen der Zwischenablage wird ein grobes Rechteck um den entsprechenden Bereich gezogen und im Menü Bearbeiten -\u0026gt; Freistellen (Strg-Y) gewählt. Anschließend wird mit Bearbeiten -\u0026gt; Ränder automatisch beschneiden (Strg-Shift-Y) das Bild automatisch um die verbleibenden weißen Randbereiche beschnitten.\nMit dem freien Grafikprogramm Gimp ist das Beschneiden ebenso einfach. Nach dem Einfügen als neues Bild wird mit dem Zuschneiden-Werkzeug (Shift-C) grob das Bild beschnitten und anschließen werden mit Bild -\u0026gt; Automatisch zuschneiden die verbleibenden weißen Ränder entfernt.\nMit diesem Verfahren erhält man optimale Screenshots inklusive der Aero-Schatten:\nWindows Rechner\n","link":"https://blog.tausys.de/2011/12/17/ansprechende-screenshots-unter-windows-erstellen/","section":"posts","tags":["GIMP","Irfanview","Screenshot","Windows"],"title":"Ansprechende Screenshots unter Windows erstellen"},{"body":"","link":"https://blog.tausys.de/tags/irfanview/","section":"tags","tags":null,"title":"Irfanview"},{"body":"","link":"https://blog.tausys.de/tags/feed/","section":"tags","tags":null,"title":"Feed"},{"body":" Update: wie bei jedem Artikel muss beachtet werden, wann er veröffentlicht wurde. Der Artikel hier spiegelt die Situation Ende 2011 wieder. Manche Dienste, wie z.B. der Google Reader, wurden mittlerweile eingestellt.\nUnser Hunger nach Neuigkeiten scheint unstillbar. Früher lag dafür die Tageszeitung im Briefkasten und wurde beim Morgenkaffee oder in der U-Bahn gelesen. Über persönlich interessante Artikel hat man sich mit Kollegen und am Stammtisch ausgetauscht und irgendwann ist sicher der eine oder andere Leserbrief entstanden, der dann eventuell auch abgedruckt wurde.\nDieses Bild hat sich grundsätzlich geändert. Mit der zunehmenden Verbreitung der auch mobil einsetzbaren Technik wird unser Newshunger auf ganz neue Weise gestillt. Wir lesen Webseiten, klicken uns von Artikel zu Artikel, verfassen Kommentare und treten evtl. auch mit anderen Kommentatoren direkt in Kontakt. Auch das passiert in der U-Bahn - beim Morgenkaffee hoffe ich doch eher selten - und dann immer, wenn uns der kleine Hunger treibt.\nEigentlich alle Webseiten, die wir für den täglichen Nachrichtenkonsum besuchen, präsentieren uns eine Übersicht über aktuelle Artikel und Hintergrundberichte. Manchmal werden zu aktuellen Ereignissen auch Ticker eingebunden, die minutengenau über den Stand der Geschehnisse informieren. Dabei ist jede News-Webseite einzigartig. Einzigartig in der Bedienung, im Layout, das wir erfassen müssen und in der Darstellung der aktuellen Nachrichten. Wir haben uns anzupassen auf das jeweilige Design, den Vorstellungen des Designers der Webseite zu entsprechen. Wieso eigentlich? Das hat doch alles nichts mit der vorzustellenden Nachricht zu tun. Warum können wir nicht einfach die Nachricht lesen, so wie sie ist?\nGenau an dieser Stelle setzt RSS an. RSS steht für Really Simple Syndication, also eine einfache Art, News bekannt zu geben.\nFast jede Webseite bietet ihre Nachrichten auch als RSS-Stream an. Diese RSS-Streams sind speziell kodierte Dateien, die vom Browser oder anderen Diensten heruntergeladen werden können und Informationen zum Titel, meistens auch zum Autor der Nachrichten, dem Zeitpunkt und einem Anrisstext oder der ganze Nachricht enthalten. Das Format des RSS-Streams ist genormt, das gelieferte Format kann von vielen Programmen, die RSS-Streams darstellen können, auf unkomplizierte Weise weiterverarbeitet werden. RSS ist also nichts weiter, um uns Nachrichten auf direktem Weg zu liefern.\nWie nutze ich nun RSS?\nLokale Programme Die gängigen Browser, mit Ausnahme von Google Chrome ohne entsprechende Plugins, unterstützen durchweg RSS. In Firefox klickt man dazu auf die orangene Schaltfläche links oben im Browser und wählt Lesezeichen -\u0026gt; Diese Seite abonnieren.... Der Menüpunkt ist nur verfügbar, wenn die Webseite einen RSS-Feed bereitstellt. Anschließend kann festgelegt werden, mit welchem Programm oder Dienst der Newsfeed abonniert werden soll. Im einfachsten Fall Dynamische Lesezeichen. Dadurch wird der Lesezeichen-Symbolleiste ein Menüpunkt hinzugefügt, der die aktuellen News dieser Webseite enthält.\nRSS Firefox\nOpera untersucht die Webseite ebenfalls automatisch auf enthaltene RSS-Feeds und zeigt in der Adressleite ein RSS-Icon an. Beim Klick auf das Icon wird der RSS-Feed der Seite abonniert. Genauso wie bei Firefox kann anschließend entschieden werden, mit welchem Programm oder Dienst der RSS-Feed angezeigt werden soll.\nRSS Opera\nMit dem Internet Explorer müssen erst die auf der betreffenden Nachrichtenseite bereitgestellten Links zum RSS-Feed angewählt werden und erst dann wird eine Seite angezeigt, auf der der Nachrichten-Feed abonnieren werden kann.\nRSS IE\nAlternativ gibt es noch eine ganze Reihe von Programmen, die RSS-Feeds darstellen können. Ein bekannter Vertreter ist RSS-Owl, der Nachrichten automatisch herunterläd und diese dann in einer Offline-Ansicht darstellen kann. RSS-Owl glänzt dabei durch eine Vielzahl von Filtermöglichkeiten die auf die Nachrichten angewandt werden können.\nOnline-Dienste Neben den lokal installierten Programmen zum Betrachten der RSS-Feeds gibt es auch eine ganze Reihe von Online-Diensten, die ebenfalls zum Abonnieren von Nachrichten genutzt werden können. Der prominenteste Vertreter ist dabei der [Google-Reader](http://www.google.com/reader/. Der Vorteil dieser Onlinedineste ist, dass keine Programme lokal installiert und auch gewartet werden müssen, sondern die Anzeige der Nachrichten gleichzeitig auf unterschiedlichsten Geräten zur Verfügung steht und auch von unterschiedlichen Standorten (nach Anmeldung) abgerufen werden kann. Mit einem Online-Dienst ist ebenfalls gewährleistet, dass eine Nachricht auf unterschiedlichen Geräten oder Standorten nicht mehr als neu angezeigt wird. Der Online-Dienst stellt die Nachrichten, plattform- und auch standortübergreifend entsprechend dar.\nVoraussetzung für den Google-Reader ist eine Google-Anmeldung. Im Google-Reader kann durch einfache Angabe einer Webadresse der Newsfeeds der betreffenden Webseite abonniert werden. Die Suche nach dem RSS-Feed auf der Nachrichtenseite entfällt. Zur Strukturierung können die Newsfeeds mit einer Kennzeichnung (Tag) versehen werden, um die Nachrichten-Feeds zu kategorisieren. Der Google-Reader stellt eine ganze Reihe von Tastaturkürzeln bereit, mit dem sich das Lesen der Nachrichten bequem gestaltet. So z.B. kann mit der Taste J auf den nächsten Artikel weitergeblättert werden, mit K in der Liste zurück, V zeigt den Originalartikel an (den man dann auch mit Strg-F4 wieder schließen kann) und R aktualisiert die Liste der Nachrichten.\nRSS Google Reader\nEin weiterer bekannter Dienst, der die Oberfläche des Web 2.0 bereitstellen will ist Netvibes. Dort können ebenfalls Nachrichten-Feeds abonniert und dann als sogenannte Widgets frei auf der persönlichen Seite platziert werden.\nRSS Netvibes\nFazit Ob online oder offline hängt ganz vom persönlichen Geschmack, dem bevorzugten Lesen und dem Einsatz auf unterschiedlichen Geräten ab. Sollen die Nachrichten auf mehreren Computern oder Geräten gelesen werden, empfehlen sich die Online-Varianten, die eine Geräte- und Standort-übergreifende Synchronisation bereitstellen. Beim Lesen immer über den gleichen Zugang können die Offlinen-Varianten der RSS-Reader eingesetzt werden, da diese eindeutig mehr Filtermöglichkeiten bieten. Im Falle eines Datenverlusts und der ab und an fälligen Neuinstallation des heimischen Computers haben Online-Dienste klar die Nase vorn, da sie nicht auf lokale Daten angewiesen sind.\n","link":"https://blog.tausys.de/2011/12/12/news-pfundweise-wie-nutze-ich-rss/","section":"posts","tags":["Feed","Google","RSS"],"title":"News pfundweise – Wie nutze ich RSS"},{"body":"","link":"https://blog.tausys.de/tags/feedburner/","section":"tags","tags":null,"title":"Feedburner"},{"body":"Für Webseiten mit hoher Leseranzahl oder einfach, um eine Statistik über die gelesenen Artikel zu erhalten empfiehlt es sich, den Newsfeed der Webseite über Feedburner zu leiten. Feedburner ist ein Dienst von Google, der den Nutzern den Webseite-eigenen Newsfeed durchreicht, ohne dass er bei jedem Zugriff von der Webseite abgerufen wird. Feedburner erstellt dabei Statistiken über die Anzahl der Subscriber und der gelesenen Artikel.\nUm den WordPress eigenen Feed auf Feedburner umzuleiten, kann z.B. das FD Feedburner Plugin eingesetzt werden, welches den Blog- und den Kommentar-Feed automatisch umleiten kann.\nAuf der Feedburner-Webseite kann nach dem Auswählen des eigenen Feeds unter dem Menüpunkt Publizieren -\u0026gt; Socialize ein Twitter-Account mit dem Feed verknüpft und weitere Einstellungen zum Format der Twitter-Nachrichten festlegt werden. Nach dem Aktivieren des Dienstes wird immer, wenn im Feed ein neuer Artikel erscheint, dieser automatisch getwittert.\n","link":"https://blog.tausys.de/2011/12/09/mit-feedburner-automatisch-auf-twitter-publizieren/","section":"posts","tags":["Feedburner","Twitter","WordPress"],"title":"Mit Feedburner automatisch auf Twitter publizieren"},{"body":"","link":"https://blog.tausys.de/tags/twitter/","section":"tags","tags":null,"title":"Twitter"},{"body":"","link":"https://blog.tausys.de/tags/batch/","section":"tags","tags":null,"title":"Batch"},{"body":"Auf der Suche nach einer bestimmten Syntax für Batch-Dateien stieß ich vor kurzem auf folgenden Schnipsel:\n1NET USE | FIND \u0026#34;X:\u0026#34; \u0026gt; TEMP.BAT 2\u0026gt;\u0026gt; OK.BAT ECHO SET UNC=%%2 3CALL TEMP.BAT 4IF NOT \u0026#34;%UNC%\u0026#34;==\u0026#34;\u0026#34; ECHO UNC for drive X: is %UNC% Zum einen fällt erst einmal die ungewöhnliche Verwendung der Ausgabeumleitung am Anfang der Zeile auf. Warum wird aber durch das Beispiel eine Datei OK.BAT erstellt, die anscheinend nirgendwo aufgerufen wird?\nDer Trick ist der, dass durch die allererste Zeile eine Batch-Datei TEMP.BAT mit einem Inhalt ähnlich\nOK X: \\\\SERVER\\FREIGABE Microsoft Windows Network\nerstellt wird. Durch den anschließenden Aufruf dieser Batch-Datei wird eine Datei OK.BAT gesucht, die ja kurz zuvor erstellt wurde. Sehr tricky.\nAuf der Webseite von Rob van der Woude finden sich viele weiter Beispiele.\n","link":"https://blog.tausys.de/2011/12/09/kreative-batch-files/","section":"posts","tags":["Batch"],"title":"Kreative Batch-Files"},{"body":"Das Blog ist auf einen neuen Server umgezogen. Die URLs und die bereits gesetzten Links bleiben alle gleich. Die Updates der Nameserver sollten im Laufe des Tages erfolgen.\nDie Performance des Blogs auf dem alten Server brach unter der Last der Anfragen und der noch selbst auf dem Server zu erledigenden Aufgaben zusammen. Bei regelmäßigem Swap ist kein performanter Betrieb einer Webseite mehr möglich. Deswegen wurde das Blog jetzt auf einen entsprechend erweiterten Server umgezogen, der bei den derzeitigen Zugriffszahlen keine Seiten mehr auslagen muss und CPU-seitig gleich den doppelten Load verträgt.\nWir wünschen Euch einen angenehmen Aufenthalt mit schnellem Seitenaufbau!\n","link":"https://blog.tausys.de/2011/12/08/serverumzug-des-blogs/","section":"posts","tags":["Hosting"],"title":"Serverumzug des Blogs"},{"body":"","link":"https://blog.tausys.de/tags/mpeg/","section":"tags","tags":null,"title":"MPEG"},{"body":"Mittlerweile herrscht ein ziemliches Angebot an frei ins Haus flatternden MPEG-Streams. Sei es nun per DVB oder auch per IPTV. Für Mitschnitte hat sich hier VLC bewährt, welches zum Aufzeichnen der Sendung einen einfachen Record-Button bietet. Da beim Aufzeichnen die Streams nicht konvertiert werden, liegen Videos anschließend als MPEG-TS (Transport Stream) auf der Platte. Diese lassen sich ohne Probleme mit VLC wiedergeben, allerdings verweigern die meisten Programme die Weiterbearbeitung von Transport Streams.\nEine lange Suche nach geeigneten Konvertern erbrachte leider nichts Positives. Als einzigstes Programm konnte ProjectX die Transport Streams ohne Transkodierung in ein MPEG umwandeln. Allerdings scheiterte es an dem in HD-Streams verwendetem Codec H.264. Von ProjectX können nur MPEG-codierte Streams verarbeitet werden. Alle anderen bisher getesteten Programme waren mehr oder weniger unhandlich und es war immer eine zeitraubende Transkodierung erforderlich.\nDa die Suche nach geeigneten Programmen ergebnislos schien, habe ich mich dann entschlossen, die Transport Streams auf YouTube (als \u0026quot;privat\u0026quot; gekennzeichnet) hochzuladen. YouTube konvertiert automatisch die Videos in das passende Format. Nach kurzer Zeit stehen auch HD-Videos als MP4 wieder zum Herunterladen zur Verfügung. Mit dem in YouTube enthaltenen Video-Editor kann bereits im Vorfeld das Video auf die Hauptscene zugeschnitten werden.\nIch denke, diese Zwischenstufe ist ein gangbarer Weg, auch wenn für den Upload des Videos eine gewisse Zeit eingeplant werden muss.\n","link":"https://blog.tausys.de/2011/12/05/mpeg-ts-videostreams-konvertieren/","section":"posts","tags":["H.264","MPEG","Video","Youtube"],"title":"MPEG-TS Videostreams konvertieren"},{"body":"Viele Handys bieten Unterstützung für einen Sychronisationsdienst an, mit dem man seine Kontakte, Termine, und vieles andere mehr als Backup auf einem Server speichern kann oder mit Online-Kalendern und anderen persönlichen Planern synchronisieren kann. Leider sind diese Dienste meist kostenpflichtig. Ebenfalls sollte man sich im Klaren darüber sein, dass man mit solch einer Synchronisation alle seine Kontakte preisgibt.\nEine zweite Methode ist das Synchronisieren mit dem heimischen PC. Hier wird meistens vom Hersteller des Handys eine Software mitgeliefert. Leider hat aber diese Software meistens eins gemeinsam: sie synchronisiert Termine und Kontakte nur mit den Mainstream-Produkten Outlook Express und evtl. noch Windows-Kalender.\nWas aber nun, wenn man seine Kontakte in Thunderbird pflegt und seine Termine im Thunderbird-Plugin Lightning verwaltet? Genau diese Lücke füllt das Programm MyPhoneExplorer in Zusammenspiel mit einem MyPhoneExplorer-Plugin für Thunderbird. Von MyPhoneExplorer werden fast alle SonyEricsson-Handy und seit neuestem auch Geräte mit Android unterstützt. Auf der Homepage des Programms ist eine ausführliche Liste zu finden.\nFür die Synchronisierung von Kontakten und Terminen muß nach der Installation als Synchronisationsziel Thunderbird ausgewählt werden:\nMyPhoneExplorer Einstellungen Synchronisierung\nBei der Anwahl von Thunderbird beim Synchronisierungsziel wird beim ersten Mal automatisch Thunderbird geöffnet und das zugehörige Thunderbird-Plugin installiert.\nUnter Kontakte -\u0026gt; Erweitert legt man anschließend fest, mit welchem Thunderbird-Adressbuch MyPhoneExplorer die Kontakte synchronisieren soll.\nMyPhoneExplorer Einstellungen Synchronisierung Kontakte\nUnter Termine -\u0026gt; Erweitert legt man fest, welcher Lightning-Kalender durch MyPhoneExplorer mit dem Handy synchronisiert werden soll.\nMyPhoneExplorer Einstellungen Synchronisierung Kalender\nDamit ist eigentlich schon alles fertig eingerichtet. Nun ist es allerdings müßig, immer Kontakte und Termine einzeln zu synchronisieren. Hier hilft das MyPhoneExplorer-Feature Multi-Sync. Für Multi-Sync kann eingestellt werden, welche Daten quasi in einem Rutsch synchronisiert werden sollen. Unter Einstellungen -\u0026gt; Multi-Sync kann man die gewünschte Auswahl treffen:\nMyPhoneExplorer Einstellungen Multi-Sync\nAnschließend kann in MyPhoneExplorer über Extras -\u0026gt; Multi-Sync ausführen die Synchronisation der ausgewählten Daten gestartet werden.\n","link":"https://blog.tausys.de/2011/12/03/handy-kontakte-und-termine-mit-myphoneexplorer-synchronisieren/","section":"posts","tags":["Handy","Lightning","MyPhoneExplorer","Thunderbird"],"title":"Handy-Kontakte und -Termine mit MyPhoneExplorer synchronisieren"},{"body":"","link":"https://blog.tausys.de/tags/myphoneexplorer/","section":"tags","tags":null,"title":"MyPhoneExplorer"},{"body":"Zugegeben, ich habe ein ziemlich angestaubtes SonyEricsson K610i. Mit der genialen Software MyPhoneExplorer für SonyEricsson-Handys lassen sich SMS, die Kontaktliste, der Kalender und Dateien zwischen PC und Handy synchronisieren und auch archivieren. So ganz nebenbei enthält MyPhoneExplorer einen Monitor, der den Ladezustand des Akkus, die UMTS-Signalstärke und auch die Temperatur des Akkus und des Geräts anzeigt.\nWie ich festgestellt habe, zeigt die Temperaturanzeige des Geräts genau die Umgebungstemperatur an. Ein nützlicher Nebeneffekt am Schreibtisch.\nMyPhoneExplorer Monitor\n","link":"https://blog.tausys.de/2011/12/02/handy-als-thermometer-verwenden/","section":"posts","tags":["Handy","MyPhoneExplorer","Sensor"],"title":"Handy als Thermometer verwenden"},{"body":"","link":"https://blog.tausys.de/tags/sensor/","section":"tags","tags":null,"title":"Sensor"},{"body":" Software Tire-Swing\n","link":"https://blog.tausys.de/2011/12/02/wie-software-entsteht/","section":"fundstuecke","tags":null,"title":"Wie Software entsteht"},{"body":"","link":"https://blog.tausys.de/tags/installer/","section":"tags","tags":null,"title":"Installer"},{"body":"Nach einer Windows-Grundinstallation ist das Gerät kaum zum Arbeiten zu gebrauchen, da als einziges Arbeitsmittel ein Browser mitgeliefert wird. Seit Windows 7 fehlen auch Programme zur E-Mail-Kommunikation. Windows muss erst erst einmal mit passender zusätzlicher Software ausgerüstet werden. Für viele Anwendungsfälle gibt es bereits kostenlose Varianten, die aus dem Netz heruntergeladen werden können.\nBei der Vielzahl der benötigten Anwendungen ist es allerdings sehr zeitaufwendig, die entsprechenden Webseiten erst einmal zu finden, die Installationspakete herunterzuladen und dann einzeln zu installieren. Hier setzt der Hersteller ninite an, bei dem man sich die benötigten Pakete einfach zusammenklicken kann.\nninite Programmauswahl\nNach Kategorien getrennt kann man sich die bevorzugten Anwendungen zusammenstellen und erhält im Anschluss einen Installer, der genau die ausgewählten Anwendungen automatisch herunterläd und installiert.\nIch finde, ein sehr praktisches Werkzeug, um schnell einen neu aufgesetzten Computer zu einem vollwertigen Arbeitsmittel zu machen.\n","link":"https://blog.tausys.de/2011/12/02/komfortabel-eigene-programmauswahl-unter-windows-installieren/","section":"posts","tags":["Installer","Windows"],"title":"Komfortabel eigene Programmauswahl unter Windows installieren"},{"body":"Mit sogenannten Shortcodes lassen sich innerhalb eines Artikels Funktionen aufrufen, um z.B. einen immer wiederkehrenden Textblock einzubinden oder komplexe Berechnungen ausführen. In WordPress sind bereits ein paar Shortcodes vordefiniert. Der bekannteste Shortcode dürfte [gallery] sein, der eine Galerie der dem Artikel angehängten Bilder erstellt.\nShortcodes beginnen immer mit einer öffnenden eckigen Klammer [. Anschließend folgt der Shortcode-Name, der keine Sonderzeichen oder Leerzeichen enhalten darf und abgeschlossen wird der Shortcode mit einer schließenden eckigen Klammer ].\nEin eigener Shortcode wird in der Datei functions.php des eigenen Templates definiert. Am Ende der Datei (aber noch vor dem abschließenden PHP-Ende-Zeichen \u0026quot;?\u0026gt;\u0026quot;) fügt man zuerst eine eigene PHP-Funktion ein, die die auszuführende Aufgabe des Shortcodes übernimmt (im einfachsten Fall also die Ausgabe eines Textes) und anschließend definiert man einen Shortcode, der an diese neue PHP-Funktion gekoppelt ist.\n1function answer42() 2{ 3 return \u0026#39;\u0026lt;pre\u0026gt;42\u0026lt;/pre\u0026gt;\u0026#39;; 4} 5add_shortcode(\u0026#39;answer\u0026#39;, \u0026#39;answer42\u0026#39;); Mit dem obigen Code wird zuerst eine Funktion mit dem Namen answer42 definiert, die einfach nur ein HTML-Schnipsel mit der Zahl 42 ausgibt. Der anschließende Aufruf der WordPress-Funktion add_shortcode definiert den Shortcode [answer] und legt fest, dass bei diesem Shortcode die PHP-Funktion answer42 aufgerufen werden soll.\nNach dem Speichern der Datei functions.php kann der neu definierte Shortcode sofort verwendet werden. Irgendwo im Artikel und auch in einem Text-Widget in der Sidebar kann nun [answer] eingegeben werden und auf der Artikelseite erscheint dann automatisch der Text\n42\nDer Funktion des Shortcodes sind dabei keine Grenzen gesetzt. So z.B. könnte ein Besucherzähler integriert werden, Datenbankabfragen durchgeführt und deren Ergebnisse ausgegeben werden und vieles mehr.\nWeiterführende Informationen (z.b. zur Parameterübergabe aus dem Shortcode an die PHP-Funktion) sind in der WordPress-Dokumentation zu finden.\n","link":"https://blog.tausys.de/2011/12/01/eigene-shortcodes-in-wordpress-definieren/","section":"posts","tags":["WordPress"],"title":"Eigene Shortcodes in WordPress definieren"},{"body":"Mit dem WordPress-Plugin Adrotate ist eine übersichliche Verwaltung der auf der Webseite anzuzeigenden Ads möglich. Das Plugin W3 Total Cache (W3TC) sorgt für eine Zwischenspeicherung der dynamisch generierten Seiten und sendet bereits generierte Dateien direkt an den Browser, was bei entsprechender weiterer Konfiguration zu erheblicher Geschwindigkeitssteigerung bei der Auslieferung der Seiten führen kann. Das Problem ist, dass in den durch W3TC zwischengespeicherte Seiten Adrotate nicht mehr aufgerufen wird (und somit auch keine anderen Ads mehr einbauen kann), sondern es wird immer das gleiche Ad / die gleiche Seite bis zum Ablauf der maximalen Cache-Zeit ausgeliefert. Die Ads rotieren nicht mehr. Um dieses Problem zu lösen, bietet W3TC Funktion für einen sogenannten fragementierten Cache an, mit dem bestimmte Teile der Seite nicht mehr zwischengespeichert werden. Mit diesen Funktion läßt sich Adrotate hervorragend zur Zusammenarbeit mit W3TC bewegen.\nW3TC bietet eine Reihe von Möglichkeiten an, eigenen Code innerhalb des Templates einzubinden:\n1\u0026gt; * Example 1: 2\u0026gt; \u0026lt;!-- mfunc any PHP code --\u0026gt;\u0026lt;!-- /mfunc --\u0026gt; 3\u0026gt; * Example 2: 4\u0026gt; \u0026lt;!-- mfunc --\u0026gt;any PHP code\u0026lt;!-- /mfunc --\u0026gt; 5\u0026gt; * Example 3: 6\u0026gt; \u0026lt;!--mfunc--\u0026gt; 7\u0026gt; echo rand(); 8\u0026gt; \u0026lt;!--/mfunc --\u0026gt; 9\u0026gt; * Example 4: 10\u0026gt; \u0026lt;!-- mclude path/to/file.php --\u0026gt;\u0026lt;!-- /mclude --\u0026gt; 11\u0026gt; * Example 5: 12\u0026gt; \u0026lt;!-- mclude --\u0026gt;path/to/file.php\u0026lt;!-- /mclude --\u0026gt; Zur Einbindung von Adrotate geht man nun folgendermaßen vor:\nChild-Theme erstellen (falls nicht schon geschenken) Lokalisieren des für die jeweilige Sidebar zuständigen PHP-Templatefiles, in der man die Ads einbinden möchte Kopieren dieses Templatefiles in das eigene Child-Theme Einfügen der Funktion zum Anzeigen der Ads mit der oben angegeben Syntax Hier auf der Webseite wird ein von Suffusion abgeleitetes Theme verwendet. In diesem Theme ist die Datei sidebar-below-header.php für die Anzeige des Blockes oben unterhalb der Menüleiste zuständig. Diese Datei wurde vom Haupt- in das eigene Theme kopiert. An ensprechender Stelle in sidebar-below-header.php wurde folgender Code eingefügt:\n1\u0026lt;!-- mfunc --\u0026gt;echo adrotate_block(\u0026#39;1\u0026#39;);\u0026lt;!-- /mfunc --\u0026gt; 2\u0026lt;!-- mfunc --\u0026gt;echo adrotate_block(\u0026#39;2\u0026#39;);\u0026lt;!-- /mfunc --\u0026gt; Nach dem Aktivieren des Page-Chaches in W3TC ist nun zu sehen, dass die Ads immer neu angezeigt werden und nicht mehr die komplette zwischengespeicherte Seite ausgeliefert wird.\n","link":"https://blog.tausys.de/2011/11/29/adrotate-mit-w3-total-cache-nutzen/","section":"posts","tags":["WordPress"],"title":"Adrotate mit W3 Total Cache nutzen"},{"body":"Videos auf YouTube werden im allgemeinen als Flash-Video oder, falls hochauflösendes Material zur Verfügung steht, als MP4-Datei angeboten. Einen direkten Link zum Herunterladen des Videos gibt es auf YouTube nicht - es existieren aber viele Programme und Plugins für die gängigen Browser, die dennoch einen Download der Videos ermöglichen. Eine andere Möglichkeit ist die Nutzung von Onlinediensten, die als Zusatzfunktion auch gleich den Audiostream aus dem Video extrahieren können.\nOhne Anspruch auf Vollständigkeit möchte ich hier drei Dienste vorstellen, mit denen sich Videos von YouTube herunterladen oder die Audiospuren als MP3 aus YouTube-Videos einfach extrahieren lassen.\nVideo2MP3 Screenshot Converter video2mp3\nWie der Name schon sagt handelt es sich bei diesem Dienst um einen einfachen Konverter, der aus dem Audiostream des Videos eine MP3-Datei macht. Man hat nur die Möglichkeit, die Qualität der zu erzeugenden MP3-Dateien einzustellen. Das Erstellen des MP3s braucht ziemlich lange und man wird durch Werbung auf der Seite auf den Download eines eigenständigen Programms hingewiesen.\nfilsh Screenshot Converter filsh\nMit Hilfe dieses Dienstes können YouTube-Videos in merere Formate konvertiert werden. Der Audiostream kann in MP3, M4A, WMA, AAC und OGG konvertiert werden. Das komplette Video läßt sich in die Formate MP4, 3GP, AVI, WMV, MPG und FLV konvertieren und anschließend herunterladen. Die Geschwindigkeit des Dienstes ist hervorragend. Vor dem Herunterladen der konvertierten Audio-Dateien lassen sich bei MP3 auch gleich die ID3-Tags festlegen.\ndirpy Screenshot Converter dirpy\nDirpy analysiert das Videofile und zeigt die verfügbaren Videoformate auf der Webseite an. Ein Konvertieren des Videos erfolgt nicht, sondern es werden direkt die YouTube-Videos zum Download angeboten. Dirpy kann den Audiostream des Videos extrahieren. Dabei werden verschiedene Bitraten entsprechend dem Quellmaterial angeboten. Ebenfall können direkt auf der Webseite die ID3-Tags bearbeitet werden. Dirpy konvertiert den Audiostream immer nach MP3. Als Besonderheit lassen sich bei Dirpy die Anfangs- und Endzeit innerhalb des Videos festlegen, aus dem dann eine MP3-Datei erzeugt werden soll.\n","link":"https://blog.tausys.de/2011/11/28/youtube-videos-online-konvertieren/","section":"posts","tags":["MP3","Youtube"],"title":"YouTube-Videos online konvertieren"},{"body":"Nach der Installation einer ersten Auswahl an WordPress-Plugins habe ich diese Liste nun angepasst, ein paar Plugins entfernt, durch andere ersetzt oder neue hinzugenommen.\n2 Click Social Media Buttons Diese Plugin bindet die von vielen Webseiten bekannte Methode zur Darstellung der entsprechenden Buttons für Google+, Twitter, Facebook und Flatr in einem 2-Klick-Verfahren ein. Diese Methode wird als datenschutzrechtlich bedeutend unbedenklicher angesehen, als das direkte Einbinden der vom jeweiligen Dienst bereitgestellter Buttons, da nicht schon durch den Aufruf der Webseite Daten an die Dienstbetreiber gesendet werden, sondern erst nach expliziter Interaktion des Benutzers mit dem Button.\nAll in One SEO Pack Mit dem All in One SEO Pack werden automatisch die für Suchmaschinen wichtigen Angaben in den Header der Webseite eingefügt. Ebenfalls können Keywords für jeden Artikel auch manuell festlegen. Es lassen sich von der Indizierung durch Suchmaschinenen auszuschließende Seiten (noindex) festlegen.\nAntispam Bee Kommentar-Spam ist in WordPress immer wieder ein Thema. Auf der einen Seite möchte man es seinen Besuchern so einfach wie möglich machen, über Inhalte zu diskutieren. Auf der anderen Seite muss eine Möglichkeit gefunden werden, automatisch durch Bots abgegebene Spam-Kommentare zu unterbinden. Standardmäßig ist in WordPress das Plugin Akismet enthalten. Dieses Plugin scheint Kommentar-Spam wirkungsvoll zu unterdrücken, hat jedoch den Nachteil, dass Daten an einen ausländischen Dienstleister übertragen werden müssen. Außerdem ist Akismet für kommerzielle Verwendung nicht kostenlos.\nDas Plugin Antispam Bee ist hier eine Alternative. Spam wird zuverlässig erkannt und kann Kommentare gleichzeitig mit einem OpenSouce-Honeypot-Projekt abgleichen, um die Spamerkennung noch zu erhöhen.\nInnerhalb eines Tages hat mich dieses Plugin bei diesem noch relativ neuen Blog vor ca. 70 Spam-Kommentaren bewahrt.\nFast Secure Contact Form Mit diesem Plugin können mehrere Kontaktformulare erstellt und an entsprechender Stelle mit einem Shortcode eingebunden werden. Ein automatisch erstelltes Captcha verhindert Spam über das Kontaktformular.\nFD Feedburner Plugin Mit FD Feedburner Plugin kann der Newsfeed der WordPress-Installation über Feedburner umgeleitet werden. Ebenfalls kann der Kommentar-, Kategorien- und Stichwort-Feed umgeleitet werden. Eingriffe ins Template sind dabei nicht erforderlich.\nGallery Widget Dieses Plugin hat hier in diesem Blog nur einen einzigen Zweck: es stellt auf der rechten Seite ein Widget mit einem zufälligen Bild bereit. Es kann festgelegt werden, ob das letzte oder ein zufälliges Bild angezeigt werden soll.\nGerman Slugs Ein Plugin, welches für deutsche WordPress-Blogs, die wohlgeformte URLs einsetzten, ungedingt erforderlich ist. Unter Einstellungen -\u0026gt; Permalinks kann man in WordPress festlegen, nach welchem Schema URLs für die Aktikel des Blogs erstellt werden sollen. Leider geht WordPress von Haus aus dabei recht rigoros mit den deutschen Umlauten und dem ß um. Aus einem Artikeltitel Fundstücke würde eine URL mit .../fundstucke/ resultieren. Diese Umsetzung ist nicht für Suchmaschinen geeignet, da Seiten, bei denen die Suchworte in der URL gefunden werden, besser bewertet werden. Abhilfe schafft das Plugin German Slugs, welches die deutschen Umlaute richtigerweise umsetzt. Aus dem Artikeltitel Fundstücke wird dan eine URL mit .../fundstuecke/.\nGoogle XML Sitemaps Damit Google und auch andere Suchmaschinen schnell die zu indizierenden Seiten eines Blogs erkennen können, kann eine Sitemap an die Suchmaschinen übermittelt werden, die maschinenlesbar eine Liste mit den zu indizierenden Artikeln enthält. Das Plugin Google XML Sitemaps übernimmt diese Aufgabe, baut die Sitemap bei neuen Artikeln automatisch neu auf und benachrichtigt Google, Bing und Ask.com über das Vorhandensein einer neuen Sitemap.\nLightbox Plus Zu Artikeln hinzugefügte Bilder können mit Lightbox Plus automatisch vergrößert dargestellt werden. Ebenfalls läßt sich in den Einstellungen des Plugins aktivieren, dass Lightbox Plus die Aufgabe der Darstellung einer Galerie von Bildern in Artikeln übernimmt.\nLeider gibt es eine Unverträglichkeit diese Plugins mit dem weiter unten genannten W3 Total Cache. In W3 Total Cache muss die Minify-Option abgeschaltet werden, damit Lightbox Plus korrekt funktioniert.\nRedirection Mit diesem Plugin ist es möglich, einfache Umleitungen im Blog zu definieren. Außerdem erstellt das Plugin automatisch eine Umleitung, wenn sich die Artikel-URL ändert (welche ja schon im Index von Suchmaschinen gelistet sein kann). Das Plugin führt ausserdem eine Liste mit URLs, welche auf der Webseite nicht gefunden wurden und man kann direkt aus dieser Liste eine Umleitung auf die korrekte URL hinzufügen.\nSmart Youtube Dieses Plugin macht die Einbindung von YouTube-Videos einfach. Es muss nur die Video-URL in den Artikel kopiert und leicht modifiziert werden - schon ist das YouTube-Video eingebunden.\nSocial Media Widget Zur Vernetzung des Blogs mit anderen sozialen Diensten ist dieses Plugin nützlich. Es stellt ein Widget mit vordefinierten sozialen Netzwerken zur Verfügung.\nUltimate Category Excluder Eventuell sollen nicht alle Kategorien eines Blogs automatisch auf der Hauptseite erscheinen. Mit diesem Plugin ist genau dies möglich. Es lassen sich eine oder mehrere Kategorien definieren, deren Artikel nicht mit in der Liste der Artikel auf der Hauptseite angezeigt werden.\nW3 Total Cache Die Seiten eines WordPress-Blogs werden standardmäßig bei jedem Aufruf dynamisch erstellt. Da sich die Seiten aber meistens nicht ändern, ist die zeitaufwändige Neuerstellung der Seiten eigentlich überflüssig. Hier setzt W3 Total Cache an. Es kann die dynamisch erstellen Seiten zwischenspeichern und bei erneutem Abruf die bereits erzeugten, zwischengespeicherten Seiten ausliefern. Für das Blog ergibt sich dadurch ein deutlicher Geschwindigkeitsvorteil, welcher auch für die Bewertung durch Suchmaschinen wichtig ist. Ebenfalls kann das Plugin CSS- und JS-Code verkleinern, Datenbankabfragen und Objekte zwischenspeichern. Weiterhin bietet es viele Möglichkeiten, das Caching z.B. anhand von Referern oder User-Agents zu steuern.\nZu beachten ist, dass das Plugin Lightbox Plus nicht mit der Minify-Option dieses Plugins kompatibel ist. Minify sollte also beim gleichzeitigen Einsatz dieser beiden Plugins abgeschaltet bleiben.\nWidget Logic Mit diesem Plugin lässt sich ein Kontextbezug der angezeigten Widgets auf einfache Weise herstellen. Jedes Widget erhält durch dieses Plugin eine Einstellmöglichkeit, wann es angezeigt werden soll. So ist es z.B. mögliche, Widgets nur bei einer bestimmte Kategorie anzuzeigen. Widget Logic stellt viele Funktionen zur Steuerung der Anzeige zur Verfügung.\nWP-PageNavi In der Standardinstallation von WordPress werden unterhalb der Seite nur einfache Navigationslinks zum Blättern in der Liste der Artikel angezeigt. Dieses Plugin erweitert diese einfache Anzeige durch die direkte Navigationsmöglichkeit zu ausgewählten Seiten. Einige Themes (wie auch das hier installierte) unterstützen WP-PageNavi, so dass die Navigationsleite im gleichen Design wie der Rest des Blogs angezeigt wird.\nWP-Polls WP-Polls bietet die einfache Erstellung und Einbindung von Umfragen ins Blog an. Umfragen können dabei mit einem Shortcode in Artikel oder in einem Widget dargestellt werden.\nYet Another Related Posts Plugin Dieses Plugin bindet eine Liste von weiteren relevanten Artikeln ein. Für Leser ist es dadurch einfach, weitere zum Thema gehörenden Informationen im Blog zu finden, ohne sich durch Kategorien, Stichworte oder gar die Suche hangeln zu müssen. In den Einstellungen des Plugins kann festgelegt werden, wie ähnliche Artikel gefunden werden.\n","link":"https://blog.tausys.de/2011/11/27/ausgewaehlte-wordpress-plugins/","section":"posts","tags":["WordPress"],"title":"Ausgewählte WordPress-Plugins"},{"body":"Ich hielt es ja nicht für möglich, aber es scheint problemlos zu funktionieren. Mit dem im Windows-Live-Paket enthaltenen Windows Live Writer kann man auf einfache Weise neue Artikel für sein eigenes WordPress-Blog erstellen. Windows Live Writer versucht dabei, so viele Design-Elemente wie möglich herunterzuladen und dann den neuen Beitrag entsprechend darzustellen. Kategorien werden ebenfalls heruntergeladen und können dem Beitrag zugeordnet werden ebenso wie Stichwörter.\nIn den Standardeinstellungen ist die Veröffentlichung von Beiträgen über die von Windows Live Writer benutze Schnittstelle XML-RPC in WordPress nicht freigeschaltet. Unter Einstellungen –\u0026gt; Schreiben setzt man dazu einen Haken bei XML-RPC. Anschließend kann in Windows Live Writer ein neues Blog hinzugefügt werden und sofort mit dem Veröffentlichen begonnen werden.\nNeben den Kategorien und den Stichwörtern lässt sich auch das Veröffentlichungsdatum einstellen. Ebenfalls beherrscht der Windows Live Writer eine Vorschau des Beitrages, wie er später inkl. der anderen Elemente auf der Webseite aussehen würde.\nEine direkte Veröffentlichung wie auch eine Speicherung als Entwurf ist möglich. Die im Beitrag zur Verfügung stehenden Textformatierungen richten sich ebenfalls nach den Einstellungen, die von der Webseite vorgegeben wurden.\nIch finde, Windows Live Writer ist ein einfaches Werkzeug, um schnell einen Artikel im eigenen WordPress-Blog zu veröffentlichen.\n","link":"https://blog.tausys.de/2011/11/23/veroeffentlichen-in-wordpress-mit-windows-live-writer/","section":"posts","tags":["Windows","WordPress"],"title":"Veröffentlichen in WordPress mit Windows Live Writer"},{"body":"","link":"https://blog.tausys.de/tags/awstats/","section":"tags","tags":null,"title":"AWStats"},{"body":"In der Standardinstallation unter Ubuntu ist der Zugriff auf die Statistiken von AWStats nicht geschützt. Die Einstellungen für Apache zu AWStats sind in der Datei /etc/apache2/conf.d/awstats gespeichert. Um nun den Zugriff auf AWStats nur noch nach erfolgreicher Authentifizierung zu erlauben, erweitert man die Apache-Konfigurationsdatei für AWStats um folgende Einträge:\n1\u0026lt;Directory /usr/lib/cgi-bin\u0026gt; 2 \u0026lt;Files awstats.pl\u0026gt; 3 AuthUserFile /etc/awstats/awstats-htpasswd 4 AuthName \u0026#34;AWStats\u0026#34; 5 AuthType Basic 6 require valid-user 7 \u0026lt;/Files\u0026gt; 8\u0026lt;/Directory\u0026gt; Anschließend erstellt man die Datei /etc/awstats/awstats-htpasswd mit folgendem Befehl:\n1htpasswd -c /etc/awstats/awstats-htpasswd benutzername Nach einem Neustart des Apache ist dann der Zugang zu den AWStats-Auswertungen nur noch für berechtigte Benutzer möglich.\n","link":"https://blog.tausys.de/2011/11/23/zugriff-auf-awstats-schuetzen/","section":"posts","tags":["Apache","AWStats","Ubuntu"],"title":"Zugriff auf AWStats schützen"},{"body":"Vor kurzem musste eine WordPress-Installation auf eine neue Domain umziehen. WordPress macht diesen Umzug relativ leicht. Wenn man keine Spezialanpassungen in der .htaccess gemacht hat und auf beiden Servern die gleichen Module im Apache aktiviert sind, kann ein Umzug in wenigen Schritten durchgeführt werden.\nSichern der Datenbank auf dem alten Server Falls man über einen Shell-Zugang auf dem Server verfügt, bietet sich das MySQL-Utility mysqldump an.\n1mysqldump --opt wordpress | gzip -9 \u0026gt; wordpress.sql.gz Dieses Kommando erzeugt einen Dump der MySQL-Datenbank wordpress und packt diese anschließend in die Datei wordpress.sql.gz. Diese Datei wird dann auf den neuen Server übertragen und in einem weiteren Schritt dort eingespielt.\nSollte kein Shell-Zugang möglich sein, kann man die Datenbank evtl. mit einer Verwaltungsoberfläche des jeweiligen Hosters sichern. Meist ist phpMyAdmin installiert, mit dem ebenfalls ein Dump der WordPress-Datenbank erstellt werden kann.\nEinspielen der Datenbank auf dem neuen Server Mit Shell-Zugang legt man zuerst eine neue Datenbank an (evtl. auch über eine Verwaltungsoberfläche des jeweiligen Hosters) und spielt dann den zuvor erstellen Dump in diese Datenbank ein:\n1zcat wordpress.sql.gz | mysql wordpress Ohne Shell-Zugang bietet der Hoster sicher eine Verwaltungsoberfläche an (phpmyadmin), um den Dump der Datenbank einzuspielen.\nAnpassen der MySQL-Datenbank auf den neuen Domainnamen In der Tabelle wp_options sind zwei Einstellungen gespeichert, die den Domain-Namen unter der die WordPress-Installation erreichbar ist, enthalten. Diese müssen nun angepasst werden:\n1update wp_options set option_value = \u0026#39;http://neue-domain\u0026#39; where option_name in (\u0026#39;siteurl\u0026#39;, \u0026#39;home\u0026#39;); Falls in den Posts absolute URLs enthalten sind, die auf den alten Domainnamen zeigen, kann man diese mit folgendem SQL-Statement auf den neuen Domainnamen ändern:\n1update wp_posts set post_content = replace(post_content, \u0026#39;http://alte-domain\u0026#39;, \u0026#39;http://neue-domain\u0026#39;); Übertragen des WordPress-Verzeichnisses Abschließend ist das komplette WordPress-Verzeichnis vom alten auf den neuen Webserver zu übertragen. Hier bietet sich bei Shell-Zugang auf beiden Servern rsync an, welches Verzeichnisse direkt zwischen zwei Servern synchronisieren kann.\nAlternativ kann man mit einem geeigneten FTP-Client (z.B. Filezille für Windows) die Dateien vom alten Server herunterladen und auf den neuen wieder hochladen.\nAnpassungen in den WordPress-Einstellungen In der Datei wp-config.php sind die Zugangsdaten für die neue Datenbank einzustellen. Anzupassen sind folgende Einstellungen:\n1define(\u0026#39;DB_NAME\u0026#39;, \u0026#39;database_name_here\u0026#39;); 2define(\u0026#39;DB_USER\u0026#39;, \u0026#39;username_here\u0026#39;); 3define(\u0026#39;DB_PASSWORD\u0026#39;, \u0026#39;password_here\u0026#39;); 4define(\u0026#39;DB_HOST\u0026#39;, \u0026#39;localhost\u0026#39;); Fertig.\nEin Artikel von blogs-optimieren enthält Vorgehensweisen bei Fehlern und weiterführende Links.\n","link":"https://blog.tausys.de/2011/11/23/wordpress-auf-neue-domain-umziehen/","section":"posts","tags":["WordPress"],"title":"WordPress auf neue Domain umziehen"},{"body":"","link":"https://blog.tausys.de/tags/openoffice/","section":"tags","tags":null,"title":"OpenOffice"},{"body":"Beim Importieren von Listen aus Unix oder Linux in OpenOffice ist in diesen Listen manchmal ein Timestamp als Zeit in Sekunden seit dem 1.1.1970 angegeben. In OpenOffice lässt sich dieser Zeitwert mit Hilfe einer Formel in ein mit OpenOffice darstellbares Datum oder eine Zeit umrechnen.\ndie Unix-Zeit wird in Sekunden seit dem 01.01.1970 angegeben OpenOffice arbeitet mit Tagen seit dem 30.12.1899 die Zeit in OpenOffice wird als Bruchteil von einem Tag dargestellt Mit folgender Beispiel-Formel lassen sich Unix-Timestamps in OpenOffice-Calc in ein Datum und eine Zeit umrechnen:\n1=GANZZAHL(\u0026lt;Quellzelle\u0026gt;/60/60/24)+DATWERT(\u0026#34;01.01.1970\u0026#34;)+((\u0026lt;Quellzelle\u0026gt;-GANZZAHL(\u0026lt;Quellzelle\u0026gt;/86400)*86400)/86400) oder viel einfacher (Danke an Burghard)\n1=\u0026lt;Quellzelle\u0026gt;/86400+DATWERT(\u0026#34;1970-01-01\u0026#34;) \u0026lt;Quellzelle\u0026gt; ist dabei mit der ensprechenden Zellenangabe, in der der Zahlenwert des Unix-Timestamps steht zu ersetzen. Angezeigt wird in der Zelle nach Eingabe der Formel eine Zahl, welche dem OpenOffice Datum und der Zeit entspricht. Die Anzeige als Datum oder Zeit erreicht man anschließend durch Formatierung der Zelle als Datum oder Zeit.\nUmrechnung von Unix-Timestamps mit Hilfe einer Formel in OpenOffice\n","link":"https://blog.tausys.de/2011/11/20/unix-timestamp-in-openoffice-datum-und-zeit-umrechnen/","section":"posts","tags":["OpenOffice","OSS"],"title":"Unix-Timestamp in OpenOffice-Datum und -Zeit umrechnen"},{"body":"Beim Surfen werden Inhalte zwischen Browser und Webserver normalerweise unverschlüsselt mit dem Hypertext Transfer Protokoll (kurz http) übertragen. In einer ungesicherten Umgebung, z.B. in einer Firma oder auch auf einem nicht vertrauenswürdigen Computer, der irgendwo im Internet gerade an der aktuellen Übertragung beteiligt ist, kann diese Übertragung mitgeschnitten und so leicht mitgelesen werden. Aus diesem Grund erfolgt die Informationsübertragung z.B. beim Bezahlen im Netz oder auch beim Onlinebanking immer über das verschlüsselnde Protokoll https. Ein Mitschnitt solch einer Verbindung kann nicht oder nur mit enormem Aufwand wieder entschlüsselt werden. Zu sehen ist in einem solchen https-Mitschnitt nur der Aufruf bestimmter Webseiten, nicht aber deren Inhalte oder gar die vom Surfer eingegebenen Informationen wie z.B. Adresse oder Bankverbindung bei einer Bestellung im Netz.\nDa immer mehr Menschen in sozialen Netzwerken unterwegs sind und diese z.B. auch in der Arbeit nutzen, wäre es also durchaus sinnvoll, auch die dort übertragenen Informationen zu verschlüsseln. Facebook und Twitter bieten diese Möglichkeit an, sie muss allerdings vom Benutzer manuell aktiviert werden. Bei Google+ wird https standardmäßig verwendet.\nTwitter Bei Twitter erreicht man die Einstellung über Profil -\u0026gt; Profil bearbeiten -\u0026gt; Konto. Dort findet sich dann ganz unten eine Einstellung, mit der man https dauerhaft einschalten kann.\nHTTPS in Twitter aktivieren\nFacebook Die verschlüsselte Informationsübertragung heist bei Facebook Sicheres Durchstöbern. Zu finden ist die Einstellung über Kontoeinstellungen -\u0026gt; Sicherheit.\nHTTPS bei Facebook aktiviert\nLeider unterstützen viele Anwendungen bei Facebook https nicht. Beim Aufruf solch einer Anwendung erscheint der Hinweis, dass diese Anwendung kein sicheres Durchstöbern unterstützt und bei Bestätigung wird die Verbindung automatisch auf unverschlüsselte Übertragung geschaltet. Nach dem Verlassen der Anwendung wird https automatisch wieder aktiviert.\nGoogle+ Bei Google+ wird man automatisch auf die verschlüsselte Verbindung weitergeleitet. Weitere Einstellungen sind nicht notwendig.\n","link":"https://blog.tausys.de/2011/11/13/verschluesselte-uebertragung-bei-facebook-google-und-twitter/","section":"posts","tags":["Facebook","Google","https","Twitter"],"title":"Verschlüsselte Übertragung bei Facebook, Google+ und Twitter"},{"body":"Mit ThinkUp ist es einfach, den Überblick über seine eigenen Social Network Aktivitäten zu behalten. ThinkUp unterstützt Facebook, Twitter und seit neuestem auch Google+. Postings, Fan-Counter, Likes, Replies und das gesamte Repertoire an Interaktionen werden gesammelt und übersichtlich angezeigt. ThinkUp ist OpenSource und wird aktiv weiterentwickelt.\nThinkUp Übersicht Twitter\nThinkup bietet für jedes Netzwerk umfangreiche Auswertungen. Auf der Übersichtsseite z.B. für Twitter findet man die \u0026quot;Hot Posts\u0026quot; mit der Anzahl der Retweets und der Replies. Es wird automatisch eine Grafik mit den beliebtesten Tweets erstellt, der man schnell entnehmen kann, welche Mitteilungen beliebt sind oder am meisten diskutiert wurden. Über die Anzeige der Replies lassen sich komplette Unterhaltungen anzeigen. Sollten die Tweets mit einer Ortsangabe versehen sein, lassen sich \u0026quot;Landkarten der Kommunikation\u0026quot; erzeugen.\nSeit kurzem steht ThinkUp hier kostenlos zur Verfügung. Nach dem Anmelden kann man seine benutzen Netzwerke einrichten und weitere Einstellungen treffen. Von ThinkUp werden dazu die Passwörter der auszuwertenden Social Networks nicht benötigt und können daher auch nicht gespeichert oder im schlimmsten Fall auch nicht in falsche Hände gelangen.\nFür Facebook hat man zusätzlich die Möglichkeit, Facebook-Pages auszuwerten, deren Fan-Counter statistisch zu erfassen oder auch nur zu sehen, welche Postings dort gerade aktuell diskutiert werden. Als weiters Gimmik kann man seine eigene Auswertungen oder die Auswertung einzelner Facebook-Seiten veröffentlichen, so dass Freunde, auch ohne Facebook-Zugang die Möglichkeit haben, sich über bestimmte Seiten die man mag zu informieren.\nDas Aktualisieren der Auswertungen erfolgt im Hintergrund, wenn ein auf der Seite angegebener Newsfeed aktualisiert wird. Z.B. der Internet Explorer, Firefox und Opera können das automatisch in einzustellenden Abständen. Dadurch werden die eigenen Auswertungen immer aktuell gehalten. Alternativ kannst kann man auch innerhalb von ThinkUp auf den Link \u0026quot;Update Now\u0026quot; klicken, um ThinkUp zu veranlassen, neue Statistiken zu erstellen. Wer möchte, kann mir auch gerne mitteilen, dass Änderungen automatisch im Hintergrund erfasst werden soll.\nWer ThinkUp in Aktion sehen möchte, kann sich kostenlos anmelden oder wer bereits einen Account hat kann sich gleich anmelden um die neuesten Artikel oder Auswertungen anzusehen. Ohne Anmeldung sind ein paar Auswertungen öffentlich einsehbar.\nUpdate vom 18. März 2014:\nDas Experiment mit ThinkUp auf diesem Server wurde beendet. Leider scheint das Projekt auch nach Jahren nicht aus der Betaphase herauszukommen. Eine aktive Community wie auch eine Möglichkeit, Fehler zu reporten habe ich bis jetzt nicht gefunden. Schade.\n","link":"https://blog.tausys.de/2011/11/10/social-network-aktivitaeten-im-ueberblick-mit-thinkup/","section":"posts","tags":["Facebook","Google","OSS","ThinkUp","Twitter"],"title":"Social Network Aktivitäten im Überblick mit ThinkUp"},{"body":"","link":"https://blog.tausys.de/tags/thinkup/","section":"tags","tags":null,"title":"ThinkUp"},{"body":"Update vom 17.02.2015: Seit kurzem heißt das Mediencenter MagentaCLOUD. Es existiert jetzt auch eine Anleitung von der Telekom, wie die MagentaCLOUD mit WebDAV genutzt werden kann.\nMit dem Mediencenter bietete die Telekom einen für Kunden in den meisten Tarifen kostenlosen Onlinespeichersplatz von 25 GB an. Das Hoch- oder Herunterladen vom Mediencenters kann direkt über die Webseite oder über ein von der Telekom zur Verfügung gestelltes Programmpaket erfolgen. Ebenfalls ist ein Zugriff über das sogenannte WebDAV-Protokoll möglich. Dieses Protokoll ist in allen neueren Windows-Versionen bereits integriert. Zur Nutzung des Mediencenters ist also keine weitere Software notwendig.\nFür den Zugriff muss eine Netzwerkverbindung zum Mediencenter hergestellt werden. Dazu klickt man im Explorer erst auf der linken Seite \u0026quot;Computer\u0026quot; an. Es erscheint folgendes Menü in dem man den Punkt \u0026quot;Netzlaufwerk verbinden\u0026quot; anklickt.\nExplorer Button Netzwerklaufwerk hinzfuegen\nAnschließend wählt man aus, dass eine Verbindung mit einer Webseite hergestellt werden soll. Leider hielt es Microsoft wohl nicht für nötig, in den Text das verwendete Protokoll WebDAV mit aufzunehmen.\nExplorer Netzwerklaufwerk verbinden WebDAV\nEs startet ein Assistent, um eine neue Verbindung einzurichten. Nach dem Willkommens-Dialog und nach der Auswahl, dass eine benutzerdefinierte Netzwerkadresse verbunden werden soll erscheint folgender Dialog, in dem die WebDAV-Adresse des Mediencenters\nhttps://webdav.mediencenter.t-online.de/\neinzutragen ist.\nWebDAV Assistent 3 Adresse\nNach dem Klick auf \u0026quot;Weiter\u0026quot; werden die Zugangsdaten für das Mediencenter abgefragt. Diese sind die selben wie für die Anmeldung im Kundencenter oder zu anderen Diensten der Telekom.\nIm Anschluss daran folgen noch zwei Dialoge zur Fertigstellung der Verbindung. Danach ist das Mediencenter unter \u0026quot;Netzwerk\u0026quot; in den Explorer eingebunden und man kann wie mit dem Explorer gewohnt Dateien im Mediencenter ablegen oder von dort herunterladen.\n","link":"https://blog.tausys.de/2011/11/08/telekom-mediencenter-in-explorer-einbinden/","section":"posts","tags":["Backup","Telekom","Windows"],"title":"Telekom Mediencenter in Explorer einbinden"},{"body":"WordPress bietet die Möglichkeit, automatische Trackbacks zu verschicken. Man kann sich Trackbacks in etwa so vorstellen, dass immer, wenn ein Artikel mit Bezug auf einen Artikel in einem anderen Blog publiziert wird, dieses Quell-Blog über einen neuen, referenzierenden Artikel informiert wird. So wie ich das verstanden habe, schickt daraufhin das Trackback-empfangende Blog (also das Blog der Quelle) einen Pingback an das verweisende Blog zurück. Eine ausführliche Beschreibung zu dem Thema habe ich auf OptiNiche gefunden und versuche das nun einmal mit diesem Blog-Eintrag zu testen.\n","link":"https://blog.tausys.de/2011/11/07/automatische-trackbacks/","section":"posts","tags":["WordPress"],"title":"Automatische Trackbacks"},{"body":"Nach vorherigen Tests klappte die Umstellung auf WordPress sehr gut. Alle Inhalte aus der alten Webseite wurden übernommen. Mit Regeln in der .htaccess der alten Webseite werden alle Aufrufe nun auf die neue Webseite umgeleitet. Im folgenden möchte ich kurz ein paar Plugins auflisten, die für die Funktionen der Webseite erforderlich waren:\n2 Click Social Media Buttons heise.de-Leser kennen die Darstellung der Google-, Facebook-, Twitter- und Flattr-Buttons auf Facebook. Das Plugin bindet genau diese Buttons unterhalb der Artikel ein.\nContact Form With Captcha In WordPress ist standardmäßig kein Kontaktformular enthalten. Ein Kontaktformular mit reCaptcha-Unterstützung kann mit diesem Plugin nachgerüstet werden.\nEasy AdSense Lite Dieses Plugin erlaubt es, Werbeblöcke in die Webseite zu integrieren. Dabei kann das Plugin auch Banner mitten in den Artikeltext setzen, so wie man es von vielen anderen Newsseiten kennt.\nGerman Slugs Für Suchmaschinenen müssen die URLs der Seiten \u0026quot;wohlgeformt\u0026quot; sein. Ein paar grundlegende Einstellungen dazu bietet WordPress schon, um URLs mit sprechenden Namen zu erzeugen. Leider wurden dabei keine nationalen Gegebenheiten beachtet. Aus einem ä in der URL wird ein a. Für Deutschland nicht die optimalste Einstellunge. Nach der Installation von German Slugs werden aus ä, ö, ü und ß in der URL entsprechend ae, oe, ue und ss.\nGoogle XML Sitemaps Man braucht sicher nicht erwähnen, dass man Google mitteilen sollte, wo welcher Content auf der Webseite versteckt ist. Dieses Plugin erledigt das automatisch.\nLightbox Plus Ich war schon immer ein Fan von Lightbox bzw. Colobox zur Anzeige von Bildern oder Bildergalerien. Mit Lightbox Plus erfolgt die Anzeige von Bildern zeitgemäß für eine Webseite.\nPage Link Manager Von Haus aus kann man in WordPress (ohne vielleicht an die Template-Sourcen Hand anzulegen) verhindern, dass Seiten im Hauptmenü angezeigt werden. Nun möchte man aber sicher auch Seiten erstellen, die nicht direkt im Menü verlinkt sind. Mit diesem Plugin kann man einstellen, welche Seiten nichts im Menü zu suchen haben.\nRedirection Bei einem Umzug einer Webseite (zumal auf ein anderes CMS) kommt es unweigerlich vor, dass sich URLs ändern. Da nun aber die alten Seiten im Index verschiedener Suchmaschinen stehen und man die User nicht mit einer \u0026quot;Nicht gefunden Seite\u0026quot; verärgern will, leitet man die URLs nach dem Schema der alten Webseite auf die nun richtigen URLs um. Diese Umstellungen kann man mit Redirection komfortabel verwalten. Nach längeren Tests führt offensichtlich auch eine niedrige Anzahl von nicht gefundenen URLs einer Webseite zu einer höheren Bewertung durch Google. Nachschauen kann man die von Google nicht gefundenen Seiten in den Google-Webmaster-Tools. Das Plugin Redirection bietet ebenfalls eine Liste mit nicht gefundenen Seiten.\nSmart Youtube Dieses Plugin ermöglicht es, YouTube-Videos nur durch Angabe der entsprechenden Video-URL im Artikel einzubinden.\nW3 Total Cache WordPress scheint von Haus aus keine Caching-Funktionen mitzuliefern. Es ist ohnehin schon sehr schnell. Mit diesem Plugin wird das Caching nachgerüstet, um auch noch das letzte Quentchen Geschwindigkeit aus der Webseite herauszuholen.\nWidget Logic Dieses Plugin bietet eine einfache Möglichkeit, Widgets nur beim Zutreffen einer angegebenen Bedingung anzuzeigen. Diese Bedingungen können z.B. das Vorhandensein eines Tags oder einer Kategorie im Artikel sein. Sehr nützlich, um kontextbezogen andere Widgets anzuzeigen.\nWP-PageNavi Design ist Geschmachssache. Offensichtlich fanden viele Leute die Seitennavigation von WordPress im Auslieferungszustand gut. Dieses Plugin ersetzt die Navigation mit einer ausgefeilteren Anzeige.\nWP-Polls Möchte man etwas über die User der Webseite erfahren, so setzt man Umfragen ein. Mit diesem Plugin können mehrere gleichzeitig laufenden Umfragen erstellt werden. Diese können entweder als Widget oder direkt im Artikel eingebunden werden.\nWP Security Scan Ich bin mir noch unsicher, ob ich dieses Plugin nach einem Scan weiter benötige. Irritiert hat mich der Hinweis beim Plugin, dass es ständig aktiviert sein muss...\nIch hoffe, diese kleine Zusammenstellung wird dem einen oder anderen bei der ersten Installation von WordPress bei der Auswahl der benötigten Plugins helfen.\n","link":"https://blog.tausys.de/2011/11/06/umstellung-auf-wordpress-komplett/","section":"posts","tags":["WordPress"],"title":"Umstellung auf WordPress komplett"},{"body":"Der tägliche Umgang mit SocialMedia, das notwendige Verkürzen von Text bei SMS und Twitter und nicht zuletzt auch der Einfluss anderer Sprachen oder lokaler Dialekte bringt schon die eine oder andere Wortkreation hervor. Besonders lustige oder merkwürdig klingend und mir bisher unbekannte habe ich in folgender Liste zusammengefasst:\ncerebralentkernt Quelle\ngraswurzelig\nrevolutionäres Zelten Quelle\nheppern\nKichern, sehr albernes kichern das nicht so leicht wieder aufhört.\nQuelle: Reallife\nVerbaldiarrhoe\nQuelle\nverbale Inkontinenz\nQuelle: Reallife\nWirkungstrinker\nHeiner Lauterbach in Inas Nacht auf ARD am 4.12.2011\nVorschlägen zum Erweitern der Liste gegenüber bin ich aufgeschlossen.\n","link":"https://blog.tausys.de/2011/11/05/ndw-neues-deutsches-woerterbuch/","section":"posts","tags":null,"title":"NDW – Neues Deutsches Wörterbuch"},{"body":" Schon länger spiele ich mit dem Gedanken, meine Webseite von Drupal auf WordPress umzustellen. Für die wenigen Funktionen der bisherigen Webseite ist Drupal einfach zu umfangreich und damit auch langsamer als eine schlanke WordPress-Installation (ganz abgesehen davon, dass Google langsamere Webseiten schlechter bewertet als schnelle). Nach kurzem Einlesen war festzustellen, dass mit ein paar zusätzlichen WordPress-Plugins alle Funktionen der bisherigen Drupal-Webseite abzubilden sind.\nLaut der Installationsanleitung von WordPress sind nur wenige Schritte nötig, um eine lauffähige Basisversion installiert zu bekommen. Ebenfalls ist eine Variante mit bereits eingebauter deutschen Übersetzung verfügbar. Das klang alles sehr gut. Gesagt, getan, ran an die Installation.\n1. Tag Für einen ersten Test habe ich das WordPress-Archiv in ein Unterverzeichnis der bestehenden Webseite extrahiert, eine neue MySQL-Datenbank und einen neuen MySQL-User eingerichtet und die WordPress-Installationsseite aufgerufen. Alles lief vorbildlich. Vorübergehend noch den Schreibzugriff auf das WordPress-Root-Verzeichnis erteilt (zum Schreiben der wp-config.php) und fertig war die Installation.\nEin Feature musste ich sofort ausprobieren (wohl aus dem Grund, da das in Drupal nur nach mehrtägiger Installation und vielen vielen Fehlermeldungen nur leidlich funktionierte): das Einbinden von mehreren Bildern in einen Artikel. Beim ersten Upload eines Bildes erschien noch ein Hinweis auf die korrekt zu setzenden Berechtigungen für das Upload-Verzeichnis. Anschließend funktionierte das Einbetten aber sofort wunderbar. Ich war begeistert.\nSofort musste ich natürlich auch das Installieren der von mir benötigten Plugins ausprobieren. Dabei erfuhr ich, dass erst einmal ein FTP-User nötig ist, um Plugins und Themes hochzuladen. Die Konfiguration von vsftpd mit FTPS war schnell erledigt. Dann den FTP-User und Passwort in das Formular beim Installieren eines Plugins eingetragen... und... Fehlermeldung: Das Verzeichnis \u0026quot;wp-content\u0026quot; konnte nicht gefunden werden.\nGut. Erst mal schnell Google befragt, welche Einstellung ich da in WordPress wohl noch umstellen müsste. Leider fand ich keine Einstellung, die ich vergessen haben könnte. Ein paar Problemlösungen von offensichtlich WordPress-Erfahrenen wurden angeboten, allerdings meldeten nicht alle Kommentare zu diesen Problemlösungen einen Erfolg. Vielmehr kam es mir bei den Kommentaren der Geplagen eher so vor, als resignierten sie mit zunehmener Thread-Länge. Eine Möglichkeit schien immer zu funktionieren: der manuelle Upload von Plugins und Themes in die richtigen WordPress-Verzeichnisse. Von einem modernen CMS hatte ich mir da allerdings mehr erwartet (Drupal kann das ohne Probleme) und außerdem wollte ich keinen technologischen Rückschritt machen.\nNach dem Ausprobieren verschiedener Lösungsmöglichkeiten wollte sich das Problem bei mir aber so ganz und gar nicht beheben lassen. Ein auch vorgeschlagenes chmod -R 0777 auf die WordPress-Installation schied kategorisch aus! Mit jeder weiteren an diesem Fehler zugebrachten Minute fühlte ich mich immer mehr wie die resignierenden Poster aus den vielen anderen Threads, die ich bisher zu diesem Fehler gelesen hatte. Ergebnis: nach zwei Stunden ohne erfolgreiche Problemlösung habe ich WordPress wieder gelöscht. Unglaublich, dass ein CMS mit so einem Fehler ausgeliefert wird!\n2. Tag Irgendwie war ich nicht zufrieden mit der Situation. Es gibt tausende von WordPress-Installationen. Was war den an meinem Minimalserver so anders? Erster Verdacht: ich hatte WordPress in einem Unterverzeichnis des www-Roots installiert. Vielleicht war das ja schon der Fehler. Also, schnell einen virtuellen Server in Apache eingerichtet und WordPress direkt ins www-Root extrahiert. Bei der Plugin-Installation: Das Verzeichnis \u0026quot;wp-content\u0026quot; konnte nicht gefunden werden. Das gibts doch nicht!\nNach langem Suchen bin ich dann auf eine Lösung gestossen, die ganz am Ende der wp-config.php einzufügen ist und anscheinend eine Funktion in WordPress überschreibt bzw. erweitert:\n1if(is_admin()) { 2 add_filter(\u0026#39;filesystem_method\u0026#39;, create_function(\u0026#39;$a\u0026#39;, \u0026#39;return \u0026#34;direct\u0026#34;;\u0026#39; )); 3 define( \u0026#39;FS_CHMOD_DIR\u0026#39;, 0751 ); 4} Der Codeschnipsel sah nicht gefährlich aus und die Installation war eh noch in der Testphase in einem abgeschotteten Verzeichnis. Und welch Wunder: dieser Patch funktionierte bei mir hervorragend!\nJetzt konnte das Testen richtig losgehen, Plugins installieren, konfigurieren, wieder verwerfen. Das Gleiche auch nochmal mit Themes.\n3. Tag Nach dem Einrichten eines ansprechenden Themes und ein paar Anpassungen in demselben ging es daran, Artikel von der \u0026quot;alten\u0026quot; Webseite in WordPress zu übernehmen. Ein direkter Import von Drupal nach WordPress ist noch nicht implementiert. Eine Möglichkeit schien der Import des RSS-Feeds von Drupal zu sein. Allerdings erscheinen in diesem nur wenige Artikel (ich wollte in Drupal nicht mehr suchen, wo das dort einzustellen ist) und außerdem wurde nur Text importiert. Keine Bilder.\nDen halben dritten Tag habe ich dann damit verbracht, Perl-Skripte zu schreiben, die die Artikelinhalte von Drupal nach WordPress direkt von Datenbank zu Datenbank übernehmen. Die Bilder habe ich manuell übernommen und dann in den entsprechenden Artikeln angepasst.\nFazit Wäre der oben beschiebene, extrem frustlastige Fehler nicht gewesen, wäre eine Umstellung in einem Tag machbar.\n","link":"https://blog.tausys.de/2011/11/05/test-umstellung-auf-wordpress-3-2-1/","section":"posts","tags":["Drupal","WordPress"],"title":"Test Umstellung auf WordPress 3.2.1"},{"body":"Schön, Dich auf meinem Blog zu sehen! Hier befindet sich ein Sammelsurium an Tipps und Tricks entstanden beim täglichen Umgang mit Hard- und Software, aufgeschrieben direkt aus dem IT-Alltag.\nImpressum Für den Inhalt verantwortlich:\nJens Tautenhahn\nPostfach 21 01 45\n90119 Nürnberg\nbloginput@tausys.de\nDie Nutzung dieser Daten für rechtswidrige oder Werbezwecke ist untersagt!\nWer befugt ist und eine ladungsfähige Adresse benötigt, kann bei der Denic nachfragen. Natürlich bevorzuge ich immer eine vorherige Kontaktaufnahme per E-Mail oder auch per Post an die obige Adresse.\nDiese Webseite enthält Links zu Webseiten anderer Personen oder Firmen, auf deren Inhalt keinerlei Einfluss genommen werden kann. Zum Zeitpunkt der Veröffentlichung eines Links bestand unserer Meinung nach kein rechtlicher Grund, die eine Linksetzung verhindern würde. Da die gesetzten Links nicht laufend auf ihren Inhalt überprüft werden können, bitte wir darum, bei Bekanntwerden von \u0026quot;problematischen\u0026quot; Links, diese sofort mitzuteilen.\nBei den veröffentlichten Bildern handelt es sich um eigenen Kreationen oder um frei verwendbare Inhalte. Sollte jemand Zweifel über die Urheberschaft eines Inhalts haben, bitten wir darum, uns umgehend zu kontaktieren.\n","link":"https://blog.tausys.de/about/","section":"","tags":null,"title":"Über mich"},{"body":"","link":"https://blog.tausys.de/tags/0zapftis/","section":"tags","tags":null,"title":"0zapftis"},{"body":"Dr. Ole Schöder, parlamentarischer Staatssekretär beim Bundesminister des Innern gegen Dr. Hans-Peter Uhl, seines Zeichens Vorsitzender der Arbeitsgruppe Innenpolitik der CDU/CSU-Bundestagsfraktion. Beides Juristen wohlgemerkt:\nDanke an Farlion für diesen gelungenen Schnitt.\nEine Mitschrift zum Herauskopieren der wirklich bemerkenswerten Sätze beider Herren:\nSchröder: Zunächst einmal: die von einem Richter in Ausnahmefällen angeordnete Telkommunikationsüberwachung (kurz TKÜ) ist ein unverzichtbares Hilfsmittel der Strafverfolgungsbehörden im Kampf gegen Terrorismus, gegen organisierte Kriminalität und wir reden hier allein über diese Formen von Kriminalität. Wir reden hier nicht über Batatellkriminalität, über Alltagskriminalität. Für diese Formen ist eine solche Überwachungmaßnahme überhaupt nicht erlaubt und wird in Deutschland auch nicht angewendet.\nUhl: Wir müssen Sicherheit auch im Internet herstellen. Wir wissen, und das wird sich noch dramatisch weiterentwickeln, so wie das Internet sich überhaupt dramatisch weiterentwickelt, dass immer mehr Kriminalität im Netz stattfindet. Tausendfach, zehntausendfach, hunderttausendfach. Die Computer der Kriminellen werden immer ausgetüftelter, sie werden immer rafinierter, der Staat muss schauen, wie er diesen Verbrechen im Netz Herr wird.\nSchröder: Nun ist Quellen-Telekommunikationsüberwachung eindeutig zu unterscheiden von einer sogenannten Onlinedurchsuchung. Und das Bundesverfassungsgericht hat dies in seinem Urteil zur Onlinedurchsuchung von 2008 auch sehr deutlich gesagt. Ich zitiere: \u0026quot;Artikel 10 Absatz 1 ist hingegen der alleinige grundrechlicht Maßstab für die Beurteilung einer Ermächtigung zu einer Quellen-Telekommunikationsüberwachung, wenn sich die Überwachung ausschließlich auf die Daten aus einem laufenden Telekommunikationsvorgang beschränkt. Dies muß durch technische Vorkehrungen und rechtliche Vorgaben sichergestellt sein.\u0026quot; So das Bundesverfassungsgericht.\nUhl: Die Software dieser Quellen-TKÜ kann sehr viel mehr als sie darf. Aber sie wurde nicht so angewand.\nSchröder: Selbstverständlich muss das auch entsprechende Konsequenzen für die Software haben. Wo Quellen-TKÜ draufsteht darf keine Onlinedurchsuchung drinstehen meine Damen und Herren.\nUhl: Die Software dieser Quellen-TKÜ kann sehr viel mehr als sie darf. Aber sie wurde nicht so angewand.\nSchröder: Die Vorwürfe des Chaos Computer Clubs und vieler anderer, auch hier im Haus, dass der Bund Software einsetzt die mehr kann als Quellen-TKÜ ist schlichtweg falsch.\nUhl: Die Software dieser Quellen-TKÜ kann sehr viel mehr als sie darf. Aber sie wurde nicht so angewand.\nSchröder: Und durch diese Protokollierung ist es auch nicht einfach möglich, mal eben andere Schadmodule nachzuladen weil das nämlich bemerkt werden würde.\nUhl: Die Software dieser Quellen-TKÜ kann sehr viel mehr als sie darf. Aber sie wurde nicht so angewand.\nSchröder: Und die Software, meine Damen und Herren, wird für jeden Einzelfall entsprechend konzipiert und vorher überprüft, damit sie eben nicht mehr kann als sie darf.\nUhl: Die Software dieser Quellen-TKÜ kann sehr viel mehr als sie darf. Aber sie wurde nicht so angewand.\nSchröder: Meine Damen und Herren, wir sind uns alle einig: grundlegende Freiheitsrechte dürfen wir nicht aufgeben. Datensicherheit, Datenschutz ist wichtig, aber, eins gefährdet die Rechte und Freiheiten der Bürger am meisten: das ist ein Staat, der sie nicht garantieren kann.\nUhl: Es ist nicht ausser Kontrolle, sondern das Land wird von Sicherheitsbehörden geleitet die sehr kontrolliert, sehr sorgfältig, sehr behutsam mit dem sensiblen Instrument der Quellen-TKÜ umgeht und so soll es auch sein. Es heist, es wäre schlimm, wenn unser Land am Schluß regiert werden würde von Piraten und Chaoten aus dem Computerclub. Es wird regiert von Sicherheitsbeamten, die dem Recht und dem Gesetz verpflichtet sind.\n","link":"https://blog.tausys.de/2011/10/23/das-ultimative-schroeder-vs-uhl-pingpong/","section":"posts","tags":["0zapftis","Staatstrojaner"],"title":"Das ultimative Schröder vs Uhl Pingpong"},{"body":"","link":"https://blog.tausys.de/tags/staatstrojaner/","section":"tags","tags":null,"title":"Staatstrojaner"},{"body":"Vor kurzem wurde wieder mal ein Rechner mit Windows 7 neu aufgesetzt. Aus dem Download-Ordner lässt sich nun ganz gut nachvollziehen, welche Programme als erstes installiert wurden. Die folgende Liste gibt ein paar Empfehlungen, welche Programme auf keinem Windows-Desktoprechner fehlen sollten.\nFirefox Meiner Meinung nach ein Muss. Komfortables browsen vom Feinsten. Der vorinstallierte Internet-Explorer bietet bei weitem nicht die Möglichkeiten, die Firefox anzubieten hat, zumal sich dieser mit diversen Add-ons erweitern lässt.\nPasswordSafe Wer hat schon alle seine Passwörter immer im Kopf. Ich hoffe ja sehr, dass der geneigte Leser nicht für alle Webseiten das gleiche Passwort verwendet, sondern für jede Webseite und jeden Dienst ein eigenes. Um dann den Überblick zu behalten, bieten sich Programme an, die die Passwörter verwalten und mit nur einem Masterpasswort zugänglich machen. Das Programm meiner Wahl war dafür PasswordSafe, da es als Windows- und Linux-Version zu haben ist und auch ein CLI-Zugriff auf die gespeicherten Passwörter unter Linux zur Verfügung steht.\nMicrosoft Security Essentials Auf einem Windows-Desktop-System muss ein Virenscanner installiert werden. Nach anfänglichen Experimenten und jahrelangem Einsatz von Avira habe ich mich dann doch für die Lösung von Microsoft entschieden, da dessen Erkennungsrate nicht schlechter als vergleichbare Produkte ist. Technisch wird Microsoft schon wissen, wie ein Virenscanner ins hauseigene Betriebssystem einzubinden ist und als Bonus ist das Ganze werbefrei und aktualisiert sich selbstständig mit Hilfe von Windows Update.\nSysinternals Suite Wer programmiert und ein bisschen tiefer in die Windows-Internals einsteigen möchte, dem empfehle ich unbedingt die Sysinternals Suite. Die Sysinternal Tools wurden früher von Mark Russinovich erstellt und später von Microsoft aufgekauft. Auf diversen Microsoft-eigenen Screenshots findet man schon Tools aus der Sysinternals Suite, besonders den gegenüber dem Windows-Taskmanager um Welten erweiterten Process-Explorer.\nOpenOffice Jeder muss ab und an mal einen Brief schreiben, evtl. ein paar Daten in einer Tabellenkalkulation erfassen oder auch eine Einladung für die nächste Geburtstagsfeier erstellen. Für diesen Zweck bietet sich Microsoft Office an. Doch, wer möchte schon Geld ausgeben, wenn es die gleiche Funktionalität auch als kostenlose Software gibt. OpenOffice bietet alles, was Microsoft Office hat. Das auch mal als Hinweis an alle Cracker, die Microsoft Office unberechtigterweise einsetzen. OpenOffice steht dem Microsoft-Produkt dabei in keiner Weise nach. Zusätzlich beinhaltet OpenOffice ein Datenbank-Frontend, welches bei Microsoft als MS Access zusätzlich erworben werden muss.\nThunderbird Windows 7 beinhaltet in der Standardinstallation keinen E-Mail-Client mehr. Microsoft Outlook Express wurde in Rente geschickt, erlebt aber in den Windows Live Tools eine Reinkarnation als Windows Live Mail. Leider fehlen Windows Live Mail immer noch Features, die Thunderbird seit Jahren hat. Thunderbird läßt sich ebenso wie Firefox mit diversen Add-ons erweitern. Mit dem Add-on Lightning erhält Thunderbird eine Kalenderkomponente und steht damit im Funktionsumfang Welten über dem alten Outlook Express.\nNotepad++ Bei Programmierern beliebt und auch sonst für alle Bearbeitungen von Textdateien nützlich. Durch die bei der Installation durchgeführte Integration in das Kontextmenü des Windows Explorers können alle möglichen Textdateien einfach in Notepad++ geöffnet und bearbeitet werden. Notepad++ bring dabei einen beachtlichen Umfang an vorinstallierten Parsern für das Syntax-Highlighting mit. Der Erfolg von mit Add-ons erweiterbaren Programmen setzt sich auch hier fort: Notepad++ lässt sich mit vielen Plugins erweitern.\n7Zip Wer häufig mehrere Dateien gleichzeitig per E-Mail versendet wird vor dem Problem stehen, diese in einem Archiv packen zu wollen. Das spart Speicherplatz und Übertragungszeit. Packer gibt es sehr viele, seit Windows XP ist ZIP auch direkt in Windows integriert und nennt sich dort „Komprimierte Ordner“. Leider ist ZIP wie auch das verbreitete RAR kein freies Format und muss als Shareware gekauft werden. 7Zip dagegen steht auf allen Betriebssystemen zur Verfügung und ist ein freies Format. Daneben kann 7Zip auch RAR- und ZIP-Archive (und viele mehr) entpacken. Die Komprimierleistung liegt dabei gleichauf mit RAR, brauch sich also nicht hinter den vielen anderen verstecken.\nPuTTY Für Webseitenbetreiber mit SSH-Zugang zu ihrem Server ist PuTTY unerlässlich. Nach meinen Informationen ist es auch der einzigst frei erhältliche SSH-Client unter Windows. Wer zur Verwaltung seines Routers einen Telnet-Client benötigt, ist auch mit PuTTY gut bedient. Microsoft installiert unter Windows 7 den hauseigenen (altbackenen) Telnet-Client nicht mehr standartmäßig.\nMyPhoneExplorer Zugegeben: eine sehr spezielle Empfehlung. Für Besitzer von SonyEricsson-Handys aber ein Muss. Leichtgewichtiger als die PC-Suite und dennoch (bis auf MMS) gleichwertig. Ohne PC-Suite (die aktuell auch nicht mehr von der SonyEricsson-Webseite heruntergeladen werden kann) kann man für die Installation der USB-Treiber auf das „Universal-Treiber-Paket für Sony Ericsson“ von grisu59964 zurückgreifen.\nRSSOwl Wer täglich auf dem Laufenden bleiben möchte, hat sicher ein paar RSS-Feeds abonniert. Komfortabel kann man das mit dem Google Reader erledigen, allerdings teilt man damit auch Google mit, welche News einen interessieren. Als quasi Offline-Variante ist für die tägliche Newskost RSSOwl zu empfehlen. Die Darstellung der Nachrichten kann auf „Newspaper“ umgestellt werden, welche ungefähr der Google Reader Darstellung entspricht. News können ebenfalls archiviert werden und stehen dann unabhängig vom Betreiber der Newsseite zur Verfügung.\nGoogle Earth Routenplanung, Entdecken von interessanten Orten, Streetview, weiterführende Informationen zu bestimmten Orten, Fotos: alles in einem.\nPidgin Wer viel Chattet kennt das Problem: verschiedene Kontakte in unterschiedlichen Netzwerken. Und jedes Netzwerk möchte seinen eigenen Chatclient installiert wissen. Mit Pidgin ist man diese Flut von Chatprogrammen los, denn Pidgin unterstützt alle gängigen Chats: Facebook, Google Talk, MSN, ICQ, Yahoo, Jabber und noch ein paar mehr.\nTomboy Notizen macht sich jeder. Meistens wurde aber gerade der Notizblock oder das Schreibgerät vom Tisch durch den Partner oder die Kinder entführt und man fuchtelt am Telefon oder (unbemerkt) im Chat erst einmal rum, wenn man sich etwas aufschreiben will. Hier setzt Tomboy an: schnell Alt-F12 (konfigurierbar) gedrückt und eine neue Notiz erstellt. Und so ganz nebenbei geht auch kein Zettel verloren. Dazu kann Tomboy sich auch mit einem Server synchronisieren und die Notizen stehen dadurch zu Hause und auch in der Arbeit gleichzeitig zur Verfügung.\nInkscape Wer etwas mehr aus seinen Einladungskarten für die nächste Geburtstagsfeier machen will, der hat mit Inkscape alle Möglichkeiten, an denen irgendwann OpenOffice-Draw scheitert. Leider ist Inkscape beim Bildschirmaufbau noch etwas langsam, aber es lassen sich alle z.B. auf eine Bitmap angewendeten Effekte auch wieder rückgängig machen. Das kann das vergleichbare aber auch entsprechend teure Vektorzeichenprogramm CorelDRAW oder auch CorelPhotoPaint nicht.\nGIMP Wer künstlerisch begabt ist, kann mit GIMP wunderbare Grafiken erstellen. Zur Bildbearbeitung ist es DAS kostenfreie Tool, um am PC Bilder nachzubearbeiten. GIMP bietet dabei viele Funktionen, die sonst nur Profisoftware wie Photoshop bieten. Zum Anfang ist die GUI von GIMP zwar ein wenig gewöhnungsbedürftig, aber nach kurzer Einarbeitungszeit und dem Konsum von den schon zahlreich vorhandenen Hilfeseiten zu GIMP im Netz wird das Bearbeiten von Bildern schnell zum Kinderspiel. Das GIMP-eigene Format XCF speichert außerdem den Bearbeitungsverlauf eines Bildes, so dass auch nach dem Speichern und Öffnen eines Bildes frühere Bearbeitungsschritte rückgängig gemacht werden können.\nIrfanView Wer oft mit Bildern unterschiedlicher Formate umgeht wird sich sicher schon über die unzureichende Darstellung bzw. Vorschau der Bilder im Windows Explorer geärgert haben. Auch die eingebaute Windows Bildanzeige ist nur zur Anzeige einer kleinen Auswahl von Bildformaten fähig. Ganz anders IrfanView. Das Programm kann (erweitert durch die Plugins) alle Bildformate lesen. Wenn man will kann IrfanView sogar Videos wiedergeben. Ebenfalls lassen sich mit ausgewählten Bildern Galerien z.B. für die eigene Webseite automatisch erstellen. Ein mächtiges Feature ist außerdem die Batchkonvertierung oder -umbenennung. Damit können hochauflösende Bilder in einem Rutsch in eine kleiner Auflösung (z.B. auch wieder für die Webseite) konvertiert werden und Bilder z.B. nach Erstellungszeit umbenannt werden.\n","link":"https://blog.tausys.de/2011/10/08/nuetzliche-programme-persoenliche-empfehlungen/","section":"posts","tags":["Windows"],"title":"Nützliche Programme – Persönliche Empfehlungen"},{"body":"03/2012: Bitte aktualisierte IPTV-Senderliste beachten!\nIm Anhang ist eine aktuelle Liste mit Serveradressen der mit IPTV der Telekom (Entertain) frei empfangbaren Sender zu finden. Die Installation in MediaPortal erfolgt in folgenden Schritten:\nGermany T-Home IPTV Senderliste für Mediaportal herunterladen und in *.m3u umbenennen TVService unter Dienste stoppen heruntergeladene Datei nach\nC:\\ProgramData\\Team MediaPortal\\MediaPortal TV Server\\TuningParameters\\dvbip\nkopieren TVService wieder starten in TV-Service Configuration einen neuen Scan mit der aktualisierten Liste durchführen Viel Spaß vor der Glotze.\n","link":"https://blog.tausys.de/2011/09/02/aktuelle-senderliste-iptv-fuer-mediaportal/","section":"posts","tags":["IPTV","MediaPortal","Telekom"],"title":"Aktuelle Senderliste IPTV für MediaPortal"},{"body":"","link":"https://blog.tausys.de/tags/chat/","section":"tags","tags":null,"title":"Chat"},{"body":" Instantbird Konten\n(Wer noch mehr Komfort beim Chatten braucht, sollte einen Blick auf Pidgin werfen.)\nViele Webseiten bieten einen Chat an, so z.B. Google, Facebook, Yahoo, Web.de und GMX. Dem Anwender wird dabei jeweils ein eigenes Chatprogramm angeboten, mit dem man sich dann mit seinen Freunden unterhalten kann. Dazu kommen die vielleicht schon auf dem Rechner installierten Programme für ICQ, MSN und für die, die es noch kennen: IRC. Wenn man die alle benutzt, endet das in einer Flut von Chatprogrammen, die alle unterschiedlich zu konfigurieren und zu bedienen sind. Gleichzeitig muss man sich selber um die Aktualisierung von mehreren Programmen kümmern, um nicht eventuellen Sicherheitslücken ausgeliefert zu sein.\nUm dieses Chaos zu beenden gibt es mittlerweile gute Programme wie Pidgin oder Instantbird. Instantbird deckt im derzeitigen Entwicklungsstand folgende Protokolle ab:\nAIM Facebook Chat Gadu-Gadu Google-Talk GroupWise ICQ IRC MSN MySpaceIM Netsoul QQ SIMPLE Twitter XMPP (darüber kann GMX und Web.de angesprochen werden) Yahoo und Yahoo JAPAN Wer Produkte von Mozilla einsetzt, wird sich in den Einstellungen von Instantbird schnell zurechtfinden und einen ähnlichen Einstellungs-Dialog wie in Firefox oder Thunderbird vorfinden. Für die unterschiedlichsten Anwendungsfälle können zusätzlich Add-ons installiert werden. Genauso wie für Firefox und Thunderbird gibt es für Instantbird auch unterschiedliche Themes, um das Programm dem eigenen Geschmack anzupassen.\nNach dem Einrichten der eigenen Chatkonten laufen dann alle Chats unter einer gemeinsamen Haube und man braucht sich nicht mehr mit unterschiedlichsten Chatprogrammen oder Chat-Webseiten herumschlagen.\n","link":"https://blog.tausys.de/2011/09/02/chatprogramm-fuer-alle-faelle/","section":"posts","tags":["Chat","Facebook","GMX","Google","Instantbird","Web.de","XMPP"],"title":"Chatprogramm für alle Fälle"},{"body":"","link":"https://blog.tausys.de/tags/gmx/","section":"tags","tags":null,"title":"GMX"},{"body":"","link":"https://blog.tausys.de/tags/instantbird/","section":"tags","tags":null,"title":"Instantbird"},{"body":"03/2012: Bitte aktualisierte IPTV-Senderliste beachten!\nSeit kurzem hat die Telekom die Multicast-Adressen der Sender im IPTV umgestellt. Viele der im Netz kursierenden Listen sind damit leider ungültig und bringen nur einen schwarzen Bildschirm im VLC. In der IPTV Senderliste Telekom Entertain (Stand August 2011) sind alle frei empfangbaren IPTV-Sendern der Telekom zu finden.\n","link":"https://blog.tausys.de/2011/08/30/aktualisierte-iptv-senderliste-fuer-telekom-entertain/","section":"posts","tags":["IPTV","Telekom","VLC"],"title":"Aktualisierte IPTV-Senderliste für Telekom Entertain"},{"body":"Nachdem in letzer Zeit viel über das Facebook Social Plugin berichtet wurde, wollte ich einmal wissen, wie es unsere Parteien mit dem Einbinden solcher Tools und dem Datenschutz halten.\nZu den Social Plugins (Facebook, Twitter und Google+1) muss man wissen, dass bereits beim Anzeigen einer Webseite Daten an die jeweiligen Dienste übermittelt werden. Sollte man gleichzeitig auch noch bei dem jeweiligen Dienst einen Account eingerichtet haben, kann der Dienst die besuchten Webseiten unmittelbar einem bestimmten Benutzer zuordnen. Dabei ist es technisch ohne weiteres möglich, auch wenn man in der aktuellen Browsersitzung nicht direkt an einem dieser Dienste angemeldet ist, diese Daten einem bestimmten Benutzer zuzuordnen. Sollte man bei diesen Diensten keinen Account eingerichtet haben, so ist es dennoch möglich, das Suftverhalten eines (noch) anonymen Nutzers aufzuzeichnen, wenn er denn Seiten besucht, die solche Social Plugins in die Webseite eingefügt haben. Das Surfverhalten wird also generell durch Facebook, Twitter und Google erfasst, wenn Benutzer auf ganz anderen Webseiten surfen.\nIn der nachfolgenden Tabelle sind die einzelnen Parteien und die auf deren Webseiten eingesetzten Tracker oder Social Plugins aufgelistet (Stand 26.08.2011):\nPartei Datenschutz-Seite auf Startseite verlinkt Tracker und social Plugins Hinweis in der Datenschutzrichtlinie CDU Ja eTracker, Google+1 eTracker ja, Google+1 nicht SPD Ja Facebook Connect Ja CSU Nein Google-Analytics Ja FDP Ja Piwik Analytics Ja Bündnis 90 / Die Grünen Ja Piwik Analytics, Facebook Social Plugin, Twitter Button Ja Die Linke Nein Piwik Analytics Ja CDU\nDie CDU vermeidet in ihren Hinweisen zum Datenschutz das Wort IP-Adresse. Gespeichert wird dort der \u0026quot;Internet Service Provider\u0026quot;. Zu \u0026quot;Marketing- und Optimierungszwecken\u0026quot; wird eTracker eingesetzt, auf deren Webseite mit folgender Produkteigenschaft geworben wird: \u0026quot;Die User Experience Ihrer Website steigern Sie durch Mouse Tracking mit Visitor Motion. Sie können sämtliche Mausbewegungen aufzeichnen und sie direkt als Film abspielen.\u0026quot; Ein Link für das Opt-Out dieses Trackings ist in den Hinweisen zum Datenschutz vorhanden. Ein Hinweis auf den Einsatz von Google+1 und die damit verbundene Datenübertragung zu Google in den USA fehlt gänzlich.\nSPD\nBei der SPD werden IP-Adressen maximal 7 Tage gespeichert. Genutzt werden diese \u0026quot;nur dann, wenn Tatsachen die Annahme rechtfertigen, dass unbefugte Dritte Zugriff auf IT-Systeme von uns nehmen wollen, bzw. den Betrieb der Internetseiten negativ beeinträchtigen möchten.\u0026quot; Auf die eingebundenen Facebook Social Plugins wird hingewiesen und auch auf den Umstand, dass bereits bei der Anzeige von Webseiten Daten an Facebook in den USA übertragen werden. Falsch ist allerdings die Aussage, dass der Benutzer dieses Tracking verhindern kann, indem er sich bei Facebook ausloggt.\nCSU\nBei der CSU geht es nicht so sehr um Datenschutz. Hinweise zum Datenschutz findet man nur im Impressum, dem dann dort ganze fünf Sätze gewidmet sind. Ausführlicher ist der Absatz \u0026quot;Cookies\u0026quot; im Impressum, der auch Hinweise zum eingesetzten Google Analytics enthält. Woher allerdings die CSU weiß, dass Google \u0026quot;in keinem Fall Ihre IP-Adresse mit anderen Daten der Google in Verbindung bringen\u0026quot; wird, ist unbekannt.\nFDP\nDie FDP setzt Piwik Analytics ein und verwendet nur Session-Cookies. Diese Cookies werden beim Schließen des Browsers automatisch gelöscht. Auf diesen Umstand wird in den Hinweisen zum Datenschutz auch eingegangen. Die FDP hat es auf ihrer Webseite als einzigste Partei geschafft, Buttons zum Teilen auf Facebook und Twitter datenschutzkonform einzufügen. Die entsprechenden Buttons werden dabei von der FDP-Webseite geladen und erst beim Daraufklicken werden Daten an Facebook oder Twitter übertragen.\nBündnis 90 / Die Grünen\nBei Bündnis 90 / Die Grünen wird in den Hinweisen zum Datenschutz über den Einsatz von Piwik Analytics und den Einsatz der Social Plugins hingewiesen. Auch wird erklärt, dass Piwik Analytics die IP-Adressen verkürzt speichert. Die Hinweise zu den Social Plugins sind jedoch falsch, da nicht erst beim Anklicken der entsprechenden Buttons Daten an die jeweiligen Dienst übertragen werden, sondern schon bei der Anzeige der Webseite von Bündnis 90 / Die Grünen.\nDie Linke\nDie Linke verlinkt die Hinweise zum Datenschutz nicht auf der Hauptseite und auch nicht in der Sitemap. Die Datenschutz-Hinweise findet man nur über das Stichwortverzeichnis. Das Wort IP-Adresse taucht in den allgemein gehaltenen Hinweisen zum Datenschutz nicht auf.\n","link":"https://blog.tausys.de/2011/08/26/die-parteien-und-der-datenschutz/","section":"posts","tags":["Datenschutz"],"title":"Die Parteien und der Datenschutz"},{"body":" RSSOwl Screenshot\nLange Zeit war ich Nutzer des Google Readers um meine tägliche Kost an News anständig präsentiert zu bekommen. Immer gestört hat mich jedoch an diesem Angebot die Klickverfolgung (Google weiss, welche Artikel ich lese) und ebenso die eingeschränkte Suchfunktion. Nach langer Suche und dem Weg über die Dynamischen Lesezeichen in Firefox oder den Blog und News-Feeds Konten in Thunderbird bin ich auf RSSOwl gestossen.\nRSSOwl bietet alles, was ein anständiger Newsreader zu bieten haben sollte. Die bestehenden Newsfeeds können vom Google-Reader übernommen werden. Es können selbst Filter erstellt werden, um z.B. über News mit Bezug auf ein Thema oder eine Region informiert zu werden. News können archiviert werden und überdauern so die Kurzlebigkeit des Netzes. Seit der neuesten Version (2.1.2) ist RSSOwl auch mit einer deutschen Oberfläche erhältlich. Eine Suche hilft dabei, Newsfeeds zu weiteren interessanten Themen zu finden.\nVoraussetzung für RSSOwl ist ein installiertes Java, was aber auf den meisten Rechnern heutzutage sicher schon installiert ist.\n","link":"https://blog.tausys.de/2011/08/21/persoenliche-news-im-ueberblick-rssowl/","section":"posts","tags":["OSS","RSS"],"title":"Persönliche News im Überblick – RSSOwl"},{"body":"Der Facebook-Like-Button und auch der neu aufkommende +1-Button von Google stehen sehr oft in der Kritik von Datenschützern. Hintergrund ist, dass bereits beim Betrachten einer Webseite Daten an Facebook oder Google übertragen werden, obwohl der Benutzer gar nicht auf die entsprechenden Buttons geklickt hat. Facebook oder Google wissen also genau, welche Seiten von einem Benutzer besucht wurden.\nUm die Webseite datenschutzkonform zu gestalten, trotzdem aber noch Komfort zu bieten, wurden die Buttons zum Teilen von Inhalten überarbeitet. Auf den Einsatz von externen Dienstleistern wie addtoany.com oder addthis.com wurde ebenfalls verzichtet, da durch diese ebenfalls ein Tracking ohne Klick durchgeführt werden kann und wird. Die Buttons zum Teilen von Inhalten funktionieren nun so, dass erst beim Klick darauf Daten an den jeweiligen Anbieter übertragen werden.\n","link":"https://blog.tausys.de/2011/08/20/datenschutzkonforme-buttons-fuer-facebook/","section":"posts","tags":["Datenschutz"],"title":"Datenschutzkonforme Buttons für Facebook"},{"body":" Thunderbird Plugins\nFür die Verwaltung der E-Mail-Flut wird oft Thunderbird von Mozilla eingesetzt. Der Standardfunktionsumfang lässt sich (wie auch der Browser Firefox) durch Plugins erweitern. Meine bevorzugten Plugins möchte ich im Folgenden kurz vorstellen:\nDeutsches Wörterbuch\nDas Plugin wird bei der Installation standardmäßig mitinstalliert und macht schon beim Schreiben auf eventuelle Orthographiefehler aufmerksam.\nEnigmail\nEigentlich ein Muss für jeden, der E-Mails nicht ungeschützt wie beispielsweise eine Postkarte versenden will. Enigmail bedient sich für die Verschlüsselung des Programms GPG. Allgemeine Informationen über das Verfahren erhält man im Wikipedia-Artikel. GPG muss vor der Installation bereits installiert worden sein. Eine Anleitung zum Theme Verschlüsselung mit GPG unter Windows hat Brendan Kidwell verfasst.\nHabuL\nFür den Kampf gegen Spam ist das Plugin HabuL eine Hilfe. Zwar erreicht man damit im eigenen Postfach erst mal gar nichts, denn mit Hilfe dieses Plugins kann man Spam \u0026quot;nur\u0026quot; melden. HabuL meldet markierten Spam an verschiedene Onlinedienste, die Listen für andere E-Mail-Provider liefern, um so Spam gleich vor dem Empfang abzulehnen. Allerdings sollte man sich bei der Klassifizierung von Spam ganz sicher sein, denn eine Falschmeldung kann unter Umständen auch negative Auswirkungen auf das eigene Mailsystem (sofern vorhanden) haben.\nLightning\nDas Plugin ist ein Muss, um die eigenen Termine im Überblick zu behalten. Lightning hat dazu alles, was ein moderner Terminkalender haben sollte. Es können ebenfalls externe Kalender eingebunden werden, z.B. zur Anzeige von Schulferien oder Feiertagen.\nProvider für Google Kalender\nWie der Name des Plugins schon sagt, können damit auch Google-Kalender in Lighning komfortabel eingebunden und auch bearbeitet werden.\nSieve\nDieses Plugin ist besonders für Leute interessant, deren E-Mail-Provider einen IMAP-Server mit fernwartbaren Sieve-Skripts anbietet oder die selbst einen IMAP-Server mit Sieve betreiben. Mit diesem Plugin kann man die im Server abgelegten Skripte zum Filtern der eigenen E-Mails komfortabel bearbeiten. Ebenfalls eingebaut ist ein Syntaxchecker, damit man nach dem Abspeichern des Skripts keine bösen Überaschungen erlebt.\n","link":"https://blog.tausys.de/2011/08/19/thunderbird-plugins/","section":"posts","tags":["E-Mail","Thunderbird"],"title":"Thunderbird Plugins"},{"body":"","link":"https://blog.tausys.de/tags/explorer/","section":"tags","tags":null,"title":"Explorer"},{"body":"Zum Kopieren oder Verschieben von Dateien zwischen mehreren Ordnern öffnet man üblicherweise zwei Explorer-Fenster oder wählt in einem Fenster zuerst Kopieren oder Ausschneiden im Kontextmenü der markierten Dateien und fügt sie dann mit Einfügen im gewünschten Zielordner ein. Der Windows-Explorer unter Windows 7 bietet für diese alltägliche Aufgabe Funktionen, die diese Aufgabe erleichtern. Im Kontextmenü des Explorers können zwei Einträge freigeschaltet werden, mit denen man Dateien einfach an einen anderen Ort verschieben oder kopieren kann. Allerdings können diese Funktionen nicht in den Einstellungen des Explorers aktiviert werden, sondern werden erst durch eine Änderung in der Registry freigeschaltet.\nZum Aktivieren der Kontextmenü-Einträge navigiert man in Regedit zu folgendem Eintrag:\nHKEY_CLASSES_ROOT\\AllFilesystemObjects\\shellex\\ContextMenuHandlers\nDurch Hinzufügen folgender Schlüssel werden weitere Einträge zum Kontextmenü des Explorers hinzugefügt:\n{C2FBB630-2971-11D1-A18C-00C04FD75D13}\naktiviert den Kontextmenü-Eintrag In Ordner kopieren… und der Schlüssel\n{C2FBB631-2971-11D1-A18C-00C04FD75D13}\naktiviert den Kontextmenü-Eintrag In Ordner verschieben…. Ein Neustart des Systems ist bei Windows 7 nicht erforderlich, die neuen Funktionen stehen im Kontextmenü des Explorers sofort zur Verfügung.\n","link":"https://blog.tausys.de/2011/08/09/windows-explorer-kontextmenue-erweitern/","section":"posts","tags":["Explorer"],"title":"Windows-Explorer Kontextmenü erweitern"},{"body":"","link":"https://blog.tausys.de/tags/icq/","section":"tags","tags":null,"title":"ICQ"},{"body":"","link":"https://blog.tausys.de/tags/msn/","section":"tags","tags":null,"title":"MSN"},{"body":" Heutzutage chattet man schon mehr als zu telefonieren. Leider findet man aber nicht alle Freunde im gleichen Chat. Ein paar sind bei Facebook, andere bei ICQ, MSN, Google-Talk usw. Außer den direkten Webseitenchats (z.B. Facebook) möchte jeder Anbieter gern ein eigenes Programm für \u0026quot;seinen\u0026quot; Chat installieren. Für Windows-Benutzer ist meistens der Messenger vorinstalliert, der auch noch mit Werbung daherkommt. Über das überall blinkernde Programm von ICQ möchte ich gar keinen Kommentar abgeben.\nFindige Köpfe haben sich dieses Problems angenommen und ein Programm geschrieben, welches die am häufigsten benutzen IM-Chats unter einer Haube vereint: Pidgin. Alle Chats laufen unter einer einheitlichen Oberfläche und man braucht z.B. für Facebook keine Webseite mehr öffnen um zu chatten. Von Pidgin werden zur Zeit folgende Chats unterstützt:\nAIM, Google-Talk, IRC, MySpaceIM, Sametime, Zephyr, Bonjour, Groupwise, MSN, SILC, XMPP (darunter fallen z.B. Facebook, Web.de und GMX), Gadu-Gadu, ICQ, MXit, Simple, Yahoo!\nPidgin kann ausserdem mit Plugins erweitert werden, um die Oberfläche und das Verhalten noch mehr auf die persönlichen Bedürfnisse anzupassen. Einige Plugins werden standardmäßig mit ausgeliefert. Das Programm kann von http://www.pidgin.im heruntergeladen werden. Beispielhaft wird im Folgenden das Hinzufügen eines Facebook-Kontos in Pidgin beschrieben. Weitere Konten können anschließend im Menü unter Konten -\u0026gt; Konten verwalten hinzugefügt werden.\nFacebook-Konto hinzufügen\nFalls noch keine Konten in Pidgin eingerichtet sind, wird man nach dem Start des Programms mit folgendem Dialog begrüßt:\nWillkommen\nDurch Klicken auf Hinzufügen... wird der Dialog zum Einrichten eines Kontos angezeigt.\nKonto hinzufuegen Facebook\nZuerst wählt man Facebook aus der Liste der Protokolle aus. Bei Benutzername wird der Facebook-Benutzername eingetragen. Das ist nicht der Benutzername, mit dem man sich bei Facebook anmeldet! Den Benutzernamen findet man, wenn man auf der eigenen Facebook-Seite oben auf Profil klickt. Für das Funktionieren von Pidgin ist es erforderlich, dass für das eigene Profil ein Benutzername innerhalb von Facebook registriert worden ist. Falls beim Klick auf Profil in der Adressleiste des Browser eine Adresse ähnlich dieser\nhttps://www.facebook.com/profile.php?id=100000000000000\nauftaucht, dann wurde noch kein eigener Benutzername bei Facebook registriert und man muss das erst einmal nachholen. Anschließend sieht beim Klick auf Profil die Adresse folgendermaßen aus:\nhttp://www.facebook.com/max.mustermann\nIn dem Fall ist max.mustermann der Benutzername.\nUnter Passwort wird das normales Facebook-Passwort eingetragen. Bei Ressource kann eine Bezeichnung gewählt werden, die auf den Ort hinweist, von dem aus gerade Facebook-Chat verwendet wird. Um das Passwort nicht bei jedem Anmelden eingeben zu müssen, kann die Option Passwort speichern aktiviert werden. Das sollte natürlich nicht auf öffentlichen Computern oder z.B. auf dem Computer eines Freundes erfolgen. Unter Lokaler Alias sollte der eigenen Namen eintragen werden, ansonsten erscheinen im Chatfenster die eigenen Beiträge unter dem Namen @chat.facebook.com.\nNach dem Klicken auf Hinzufügen wird versucht, eine Verbindung zum Facebook-Chat herzustellen. Diese Verbindung erfolgt verschlüsselt und es wird gefragt, ob man das Zertifikat von Facebook akzeptieren möchte.\nPidgin Zertifikatsmeldung\nNach dem Klicken auf Akzeptieren wird man bei Facebook angemeldet und es erscheint das Hauptfenster von Pidgin mit der Liste der gerade angemeldeten Freunde. Durch Doppelklick auf einen Freund kann dann direkt ein Chat gestartet werden.\nPidgin Buddyliste\nProbleme beim Verbinden zum Facebook-Chat\nWenn man gleichzeitig den Facebook-Chat auf der Webseite aktiviert hat und sich dort On- oder Offline setzt, kann unter Umständen der Chat in Pidgin unterbrochen werden. Als Lösung bietet sich an, sich auf der Facebook-Seite generell Offline zu setzen und nur noch den Pidgin-Chat zu verwenden. Sollte beim Aktivieren des Facebook-Kontos in Pidgin die Meldung \u0026quot;... nicht authorisiert...\u0026quot; erscheinen, sind evtl. Sonderzeichen oder Umlaute im Facebook-Passwort die Ursache. Nach dem Ändern des eigenen Facebook-Passworts und dem Eintragen des neuen Passworts in Pidgin unter Konten -\u0026gt; Konten verwalten -\u0026gt; Auswählen des Facebook-Kontos -\u0026gt; Bearbeiten... sollte auch die Anmeldung bei Facebook mit Pidgin funktionieren. Eine weitere Ursache für die Fehlermeldung \u0026quot;... nicht authorisiert ...\u0026quot; ist, dass vergessen wurde, bei Facebook einen Benutzernamen zu registrieren und diesen als Benutzername in Pidgin einzutragen. ","link":"https://blog.tausys.de/2011/08/04/pidgin-ein-universelles-im-programm/","section":"posts","tags":["Chat","Facebook","GMX","Google","ICQ","MSN","OSS","Pidgin","Web.de","XMPP"],"title":"Pidgin – ein universelles IM-Programm"},{"body":" EPG Missing in Action 2\nEs ist immer wieder lustig, welch haarsträubenden Fehler im Programm-Manager der Telekom zu finden sind. Ich weiss zwar nicht, was \u0026quot;Missing in Action 2\u0026quot; mit Erotik zu tun hat, in der Vorschau ist der Film jedoch als solches deklariert.\n","link":"https://blog.tausys.de/2011/07/30/missing-in-action-2-mit-genre-erotik/","section":"posts","tags":["Telekom"],"title":"Missing in Action 2 mit Genre Erotik"},{"body":"","link":"https://blog.tausys.de/tags/gui/","section":"tags","tags":null,"title":"GUI"},{"body":" gconf-editor\nStandardmäßig wird die Ubuntu-GUI mit Knöpfen auf der linken Seite des Fenstertitels ausgeliefert. Das mag für die Mac-Benutzer zwar ziemlich einfach sein, verwirrt aber so manchen Windows-User. Diese Anordnung kann jedoch (im Gegensatz zu Windows (sic)) leicht umgestellt werden:\nAlt+F2 drücken gconf-editor eingeben und Enter drücken zum Pfad Apps/Metacity/General navigieren und dann auf der rechten Seite den Eintrag button_layout öffnen für Buttons auf der linken Seite close,minimize,maximize: und für Buttons auf der rechten Seite :minimize,maximize,close eintragen (den Doppelpunkt nicht vergessen) OK klicken, fertig ","link":"https://blog.tausys.de/2011/07/25/ubuntu-fensterknoepfe-auf-der-rechten-seite/","section":"posts","tags":["GUI","OSS","Ubuntu"],"title":"Ubuntu Fensterknöpfe auf der rechten Seite"},{"body":"","link":"https://blog.tausys.de/tags/httpd/","section":"tags","tags":null,"title":"Httpd"},{"body":"In Piotr Gabryjeluks Blog habe ich ein interessantes Skript gefunden, welches einen Webserver in 100 Zeilen Bash enthält. Als Parameter erwartet das Skript eine Portnummer, auf die es lauschen soll.\nFür Ubuntu muss dieses Skript angepasst werden, da das dort installierte netcat andere Optionen versteht. Das Original kann von obiger Webseite heruntergeladen werden, das für Ubuntu angepasste folgt hier und kann auch als Datei heruntergeladen werden:\n1#!/bin/bash 2# 3# httpd.bash : 4# webserver in 100 lines of bash. 5# 6# credits: http://piotr.gabryjeluk.pl/www-server-in-100-lines-bash-script 7# 8# This software should be quite safe, since this checks for some nasty tricks like: 9# .. in URL 10# / in some places 11# It binds to port specified from the command line. 12# It serves only files accessible by the user that runs this script from the current directory (not going up). 13# 14# dependencies: 15# This script depends on nc (netcat package) being installed in PATH. 16# If you have nc instead of netcat, just change the netcat in script to nc. 17 18function debug { 19 local severity=\u0026#34;$1\u0026#34; 20 shift 21 local message=\u0026#34;$@\u0026#34; 22 23 echo -n \u0026#34;`date -u`\u0026#34; 1\u0026gt;\u0026amp;2 24 echo -ne \u0026#39;\\t\u0026#39; 1\u0026gt;\u0026amp;2 25 echo -n \u0026#34;$severity\u0026#34; 1\u0026gt;\u0026amp;2 26 echo -ne \u0026#39;\\t\u0026#39; 1\u0026gt;\u0026amp;2 27 echo \u0026#34;$message\u0026#34; 1\u0026gt;\u0026amp;2 28} 29 30function fix_path { 31 echo -n \u0026#34;$1\u0026#34; | head -n 1 | sed \u0026#39;s|^[/.-]*||\u0026#39; | sed \u0026#39;s|/\\.*|/|g\u0026#39; 32} 33 34function serve_dir { 35 local dir=\u0026#34;`fix_path \u0026#34;$1\u0026#34;`\u0026#34; 36 if [ \u0026#34;$dir\u0026#34; = \u0026#34;\u0026#34; ]; then 37 dir=\u0026#34;./\u0026#34; 38 fi 39 echo \u0026#39;HTTP/1.1 200 OK\u0026#39; 40 echo \u0026#39;Content-type: text/html;charset=UTF-8\u0026#39; 41 echo 42 echo LISTING \u0026#34;$dir\u0026#34; 43 echo \u0026#39;\u0026lt;br/\u0026gt;\u0026#39; 44 ls -p \u0026#34;$dir\u0026#34; | sed -e \u0026#39;s|^\\(.*\\)$|\u0026lt;a href=\u0026#34;/\u0026#39;\u0026#34;$dir\u0026#34;\u0026#39;\\1\u0026#34;\u0026gt;\\1\u0026lt;/a\u0026gt;\u0026lt;br/\u0026gt;|\u0026#39; 45} 46 47function serve_file { 48 echo \u0026#39;HTTP/1.1 200 OK\u0026#39; 49 echo \u0026#39;Content-type: application/x-download-this\u0026#39; 50 echo 51 local file=\u0026#34;`fix_path \u0026#34;$1\u0026#34;`\u0026#34; 52 debug INFO serving file \u0026#34;$file\u0026#34; 53 cat \u0026#34;$file\u0026#34; 54} 55 56function process { 57 local url=\u0026#34;`gawk \u0026#39;{print $2}\u0026#39; | head -n 1`\u0026#34; 58 case \u0026#34;$url\u0026#34; in 59 */) 60 debug INFO Processing \u0026#34;$url\u0026#34; as dir 61 serve_dir \u0026#34;$url\u0026#34; 62 break 63 ;; 64 *) 65 debug INFO Processing \u0026#34;$url\u0026#34; as file 66 serve_file \u0026#34;$url\u0026#34; 67 ;; 68 esac 69} 70 71function serve { 72 local port=\u0026#34;$1\u0026#34; 73 local sin=\u0026#34;$2\u0026#34; 74 local sout=\u0026#34;$3\u0026#34; 75 76 while debug INFO Running nc; do 77 78 netcat -l \u0026#34;$port\u0026#34; \u0026lt; \u0026#34;$sin\u0026#34; \u0026gt; \u0026#34;$sout\u0026#34; \u0026amp; 79 pid=\u0026#34;$!\u0026#34; 80 81 debug INFO Server PID: \u0026#34;$pid\u0026#34; 82 83 trap cleanup SIGINT 84 head -n 1 \u0026#34;$sout\u0026#34; | process \u0026gt; \u0026#34;$sin\u0026#34; 85 trap - SIGINT 86 done 87 88 debug INFO Quiting server 89} 90 91function cleanup { 92 debug INFO Caught signal, quitting... 93 rm -Rf \u0026#34;$tmp_dir\u0026#34; 94\tkill \u0026#34;$pid\u0026#34; 95 exit 96} 97 98tmp_dir=\u0026#34;`mktemp -d -t http_server.XXXXXXXXXX`\u0026#34; 99sin=\u0026#34;$tmp_dir\u0026#34;/in 100sout=\u0026#34;$tmp_dir\u0026#34;/out 101pid=0 102port=\u0026#34;$1\u0026#34; 103 104mkfifo \u0026#34;$sin\u0026#34; 105mkfifo \u0026#34;$sout\u0026#34; 106 107debug INFO Starting server on port \u0026#34;$port\u0026#34; 108serve \u0026#34;$port\u0026#34; \u0026#34;$sin\u0026#34; \u0026#34;$sout\u0026#34; 109cleanup","link":"https://blog.tausys.de/2011/07/18/webserver-in-100-zeilen-bash/","section":"posts","tags":["bash","httpd","Linux","OSS","Ubuntu"],"title":"Webserver in 100 Zeilen Bash"},{"body":"","link":"https://blog.tausys.de/tags/proxy/","section":"tags","tags":null,"title":"Proxy"},{"body":"Manchmal ist es schon ein Graus. Man möchte schnell mal das Video auf Youtube anschauen, was man von einem Freund gerade per Skype oder MSN geschickt bekommen hat und dann \u0026quot;bröckelt\u0026quot; das Video nur so auf den heimischen Rechner. Zumindest für T-Online-Kunden gibt es eine Möglichkeit, die Geschwindigkeit des Ladens von Youtube-Videos entscheidend zu verbessern: die Benutzung des T-Online-Proxys. Proxies dienen dazu, Inhalte, die schon andere Benutzer abgerufen haben, zwischenzuspeichern um sie dann an einen weiteren Benutzer ohne ein Laden von der Ursprungswebseite direkt ausliefern zu können. Proxies sind also so etwas wie ein Zwischenspeicher für Webseitenabrufe oder auch andere Inhalte. Dabei sind Mechanismen festgelegt, nach denen der Proxie weiß, wann er seine gespeicherten Inhalte einer Seite \u0026quot;vergessen\u0026quot; soll und sie wieder vom Ursprungsprovider läd. Das Ganze funktioniert automatisch und soll nicht Gegenstand dieses Artikels sein.\nDa Youtube (meines Wissens nach früher) über Cogent durch die Telekom-Benutzer erreicht werden kann und die Schnittstelle Cogent \u0026lt;-\u0026gt; Telekom nicht eine der Schnellsten im Internet ist, bietet sich der Einsatz von Proxies an. Wenn ein Freund, der auch den Telekom-Proxy nutzt, Dir gerade einen Link zu einem Youtube-Video geschickt hat und dieses auch direkt vorher angesehen hat, dann ist dieses Video evtl. noch direkt vom Telekom-Proxy abrufbar und kann mit maximaler Geschwindigkeit heruntergeladen werden.\nUm nun den Telekom-Proxie z.B. in Firefox einzustellen gibt es verschiedene Möglichkeiten. Entweder, man stellt diesen Proxy direkt über Einstellungen -\u0026gt; Erweitert -\u0026gt; Netzwerk -\u0026gt; Verbindung - Einstellungen ein oder benutzt ein Plugin, welches den Proxy je nach abzurufender URL auswählt. Vorteil der ersten Methode ist: man brauch sich um Nichts mehr kümmern. Nachteil: man muss jede einzelne URL, die im lokalen Netzwerk ist von Hand in die Ausschlussliste eintragen, da diese ja lokal ist und vom Telekom-Proxie ganz sicher nicht gefunden werden kann. Mit der zweiten Methode durch Einsatz des Plugins FoxyProxy für Firefox kann genau abgestimmt werden, für welche URL welcher Proxy zu benutzen ist. Unter Firefox kann das Plugin FoxyProxy sehr leicht über die Plugin-Verwaltung installiert werden. Anschliessend wird in FoxyProxy für den Abruf bestimmter URLs (in unserem Fall Youtube) ein Proxy eingestellt. Nach dem Anwählen von Neuer Proxy in den Einstellungen von FoxyProxy trägt man folgendes ein:\nProxy Allgemein\nFür die Proxy-Details werden diese Einstellungen eingetragen:\nProxy Details\nUnd anschließend werden für den soeben neu angelegten Proxy die URLs eingestellt, für welche dieser Proxie verwendet werden soll:\nProxy URL-Muster\nMit Neues Muster fügt man das entsprechende Muster für Youtube hinzu:\nFoxyProxy Standort\nNach dem Speichern der Einstellungen und dem Aufruf einer Youtube-URL sieht man dann auch an dem sich veränderden Icon von FoxyProxy, dass die URL über andere Proxies geladen wird.\nUnd nun viel Spaß beim schnellen Laden von Youtube-Videos.\n","link":"https://blog.tausys.de/2011/04/27/schneller-auf-youtube-mit-t-online-zugreifen/","section":"posts","tags":["Firefox","Proxy","Telekom","Youtube"],"title":"Schneller auf Youtube mit T-Online zugreifen"},{"body":"Vor kurzem habe ich beschrieben, wie man kostengünstig seine erworbenen Musikstücke online sichert. Im folgenden möchte ich aufzeigen, wie man den Onlinespeicher von web.de, genannt SmartDrive und den Onlinespeicher von T-Home, genannt Mediencenter in das Linux-Dateisystem einhängt. Der Onlinespeicher ist anschließend über einen Verzeichnispfad zugänglich, in den ganz normal Dateien z.B. kopiert werden können.\nBeide genannten Onlinespeicher haben eins gemeinsam: sie sind über das Protokoll WebDAV ansprechbar. Für WebDAV existiert für Linux ein Packet, mit dem sich WebDAV-Server ins Dateisystem einbinden lassen.\nUnter Ubuntu installiert man dazu das Paket davfs2 mit dem Befehl\n1sudo apt-get install davfs2 Unter Ubuntu sind die Berechtigungen vom damit installierten mount.davfs so eingestellt, dass nur root Dateisysteme ein- oder aushängen darf. Wer das auch als normaler Benutzer durchführen möchte bzw. seinen anderen Benutzern erlauben möchte, muss noch folgende zwei Schritte ausführen:\nZuerst muss mit\n1chmod u+s /usr/sbin/mount.davfs das sogenannte Suid-Bit gesetzt werden, was besagt, dass das Programm beim Ausführen mit den Rechten des Eigentümers des Programms (in unserem Falle also root) und nicht mit den Rechten des aufrufenden Benutzers ausgeführt werden soll. Allerdings sollte man sich dabei immer im Klaren darüber sein, dass man Benutzern erlaubt, Programme mit den Rechten von root auszuführen, was auf Mehrbenutzersystemen wohlüberlegt sein sollte.\nAnschließend sind mit\n1adduser musermann davfs2 die Benutzer, die WebDAV-Speicher ein- und aushängen können sollen, in die Gruppe davfs2 aufzunehmen.\nUm nun das Ein- oder Aushängen der WebDAV-Server zu erleichtern, bietet sich ein Eintrag in der Datei /etc/fstab an, da man dort gleich alle benötigten Parameter eintragen kann und diese nicht immer auf der Kommandozeile einzugeben braucht. Ein Eintrag sieht dabei folgendermaßen aus:\nfür SmartDrive\nhttps://webdav.smartdrive.web.de/ /media/web.de davfs rw,user,noauto 0 0\nfür Mediencenter\nhttps://webdav.mediencenter.t-online.de/ /media/t-home.de davfs rw,user,noauto 0 0\nWer nur als root Ein- oder Aushängen möchte, kann \u0026quot;,user\u0026quot; aus der obigen Zeile weglassen.\nAnschließend müssen noch die beiden Verzeichnisse /media/web.de und /media/t-home.de angelegt werden.\nNun steht dem Einbinden der Onlinespeicher nichts mehr im Wege. Mit\n1mount /media/web.de und\n1mount /media/t-home.de werden die WebDAV-Server nach der Angabe von Benutzername und Passwort für den jeweiligen Service in den angegebenen Verzeichnissen eingebunden.\nWer diesen Schritt noch eleganter gestalten will, kann in der Datei ~/.davfs2/secrets noch Benutzername und Passwort für den jeweiligen WebDAV-Server hinterlegen.\n","link":"https://blog.tausys.de/2011/04/26/onlinespeicher-ins-linux-dateisystem-einbinden/","section":"posts","tags":["Backup","Linux","OSS","Telekom","Ubuntu","Web.de"],"title":"Onlinespeicher ins Linux-Dateisystem einbinden"},{"body":" Nach links oder rechts?\nDu kannst dich nicht entscheiden?\nSchau dir das Bild noch mal sorgfältig an!\nDu weißt es immer noch nicht?\nVorschulkindern wurde das gleiche Bild gezeigt und genau die gleiche Frage gestellt. 90% von ihnen gaben diese Antwort: \u0026quot;Der Bus fährt nach links.\u0026quot;\nAuf die Frage: \u0026quot;Warum glaubst du, dass der Bus nach links fährt?\u0026quot; antworteten sie: \u0026quot;Weil man die Tür nicht sehen kann, um in den Bus einzusteigen.\u0026quot;\nWie fühlst du dich jetzt???\nIch weiß, ich auch.\n","link":"https://blog.tausys.de/2011/04/20/in-welche-richtung-faehrt-der-bus/","section":"fundstuecke","tags":null,"title":"In welche Richtung fährt der Bus?"},{"body":"","link":"https://blog.tausys.de/tags/boinc/","section":"tags","tags":null,"title":"BOINC"},{"body":"Was tut man mit der ganzen Rechenpower des eigenen PCs, wenn man gerade mal einen Brief schreibt oder im Web unterwegs ist? Zu dieser Zeit ist der PC normalerweise nur minimal ausgelastet und hat noch viele Reserven.\nWer möchte, kann diese brach liegende Rechenzeit wissenschaftlichen Projekten spenden. Das ist ganz einfach und man kann sich die Projekte aussuchen, an denen man teilnehmen möchte. So z.B. kann man die Gesundheitsforschung unterstützen, bei der Erforschung von Pulsaren helfen oder riesige Datenmengen nach eventuellen Nachbarn in der Galaxis durchforsten.\nInstalliert wird dazu das Programm BOINC, welches sich komplett um die Verwaltung der Projekte kümmert und in dem man einstellen kann, wie viel Rechenzeit man den Projekten zur Verfügung stellen möchte. Der Rest läuft dann ganz von alleine.\nIch z.B. nehme seit 1999 an Seti@home und seit kurzem auch an Einstein@home teil.\n","link":"https://blog.tausys.de/2011/04/16/rechnen-fuer-die-wissenschaft/","section":"posts","tags":["BOINC"],"title":"Rechnen für die Wissenschaft"},{"body":"Ausdruck: 15.10.2008 aus: Softwareanfrage.rtd Seite 1\nSoftwareanfrage\nSehr geehrte Damen und Herren\nVoriges Jahr bin ich von der Version 'Freundin 7.0' auf 'Gattin 1.0' umgestiegen. Ich habe festgestellt, dass das Programm einen unerwarteten Kind-Prozess gestartet hat und sehr viel Platz und wichtige Ressourcen belegt. In der Produktanweisung wird ein solches Phänomen nicht erwähnt. Außerdem installiert sich 'Gattin 1.0' in allen anderen Programmen von selbst und startet in allen Systemen automatisch, wodurch alle Aktivitäten der übrigen Systeme gestoppt werden. Die Anwendungen 'Bordell 10.3', 'Umtrunk 2.5' und 'Fußballsonntag 5.0' funktionieren nicht mehr, und das System stürzt bei jedem Start ab. Leider kann ich 'Gattin 1.0' auch nicht minimieren, während ich meine bevorzugten Anwendungen benutzen möchte.\nIch überlege ernsthaft, zum Programm 'Freundin 7.0' zurückzugehen, aber bei Ausführen der UninstalI-Funktion von 'Gattin 1.0' erhalte ich stets die Aufforderung, zuerst das Programm 'Scheidung 1.0' auszuführen. Dieses Programm ist mir aber viel zu teuer. Können Sie mir helfen?\nDanke, ein User\njetzt das wirklich Geniale, die Antwort des Technischen Dienstes Antwort\nLieber User,\ndas ist ein sehr häufiger Beschwerdegrund bei den Usern. In den meisten Fällen liegt die Ursache aber bei einem grundlegenden Verständnisfehler: Viele User steigen von 'Freundin 7.0 ' auf 'Gattin 1.0' um, weil sie Zweites zur Gruppe der \u0026quot;Spiele \u0026amp; Anwendungen\u0026quot; zählen. 'Gattin 1.0' ist aber ein BETRIEBSSYSTEM und wurde entwickelt, um alle anderen Funktionen zu kontrollieren. Es ist unmöglich, von 'Gattin 1.0' wieder auf 'Freundin 7.0' zurückzugehen.\nBei der Installation von 'Gattin 1.0' werden versteckte Dateien installiert, die ein Re-Load von 'Freundin 7.0' unmöglich machen. Es ist nicht möglich, diese versteckten Dateien zu deinstallieren, zu löschen, zu verschieben oder zu vernichten. Einige User probierten die Installation von 'Freundin 8.0' oder 'Gattin 2.0' gekoppelt mit 'Scheidung 1.0', aber am Ende hatten sie mehr Probleme als vorher. Lesen Sie dazu in Ihrer Gebrauchsanweisung die Kapitel \u0026quot;Warnungen\u0026quot;, Alimente-Zahlungen – fortlaufende Wartungskosten von Kindern ab Version 1.0\u0026quot;. Ich empfehle Ihnen daher, bei 'Gattin 1.0' zu bleiben und das Beste daraus zu machen.\nIch habe selber 'Gattin 1.0' vor Jahren installiert und halte mich strikt an die Gebrauchsanweisung, vor allem in Bezug auf das Kapitel \u0026quot;Gesellschaftsfehler\u0026quot;. Sie sollten die Verantwortung für alle Fehler und Probleme übernehmen, unabhängig davon, ob Sie schuld sind oder nicht. Die beste Lösung ist das häufige Ausführen des Befehls: C:\\UM-ENTSCHULDIGUNG-BITTEN.exe. Vermeiden Sie den Gebrauch der \u0026quot;ESC\u0026quot; Taste, da Sie öfter UM-ENTSCHULDIGUNG-BITTEN einschalten müssten, damit 'Gattin 1.0' wieder Normal funktioniert.\nDas System funktioniert solange einwandfrei, wie Sie für die \u0026quot;Gesellschaftsfehler\u0026quot; uneingeschränkt haften! Alles in allem ist 'Gattin 1.0' ein sehr interessantes Programm – trotz der unverhältnismäßig hohen Betriebskosten. Bedenken Sie auch die Möglichkeit, zusätzliche Software zu installieren, um die Leistungsfähigkeit von 'Gattin 1.0' zu steigern. Ich empfehle Ihnen: 'Pralinen 2.1' und 'Blumen 5.0' in Deutsch.\nViel Glück!\nIhr Technischer Dienst\nPS: Installieren Sie niemals 'Sekretärin im Minirock 3.3'! Dieses Programm verträgt sich nicht mit 'Gattin 1.0' und könnte einen nicht wieder gutzumachenden Schaden im Betriebssystem verursachen.\n","link":"https://blog.tausys.de/2011/04/15/softwareanfrage-an-den-support/","section":"fundstuecke","tags":null,"title":"Softwareanfrage an den Support"},{"body":"","link":"https://blog.tausys.de/tags/dropbox/","section":"tags","tags":null,"title":"Dropbox"},{"body":"Es gibt massenweise Online-Backup-Lösungen für \u0026quot;den kleinen Mann\u0026quot;. Eine weit verbreitete davon ist Dropbox. Dropbox ist deswegen interessant, da es Unterstützung für Windows, Linux, Mac, iPhone, iPad, Android und Blackberry bietet. Kostenlos erhält man einen Account, der 2GB Speicherplatz bietet.\nLeider scheint es um die Sicherheit der online gespeicherten Daten nicht sonderlich bestellt zu sein, da einem Bericht zufolge der Zugang nur durch wenige, auch noch auf der Platte gespeicherter Schlüssel möglich ist.\nEinen Ausweg aus dieser fatalen Sicherheitslücke bietet die Nutzung von Truecrypt zusammen mit Dropbox. Dabei wird ein verschlüsselter Truecrypt-Container, der sich als Laufwerk einbinden lässt, mit Dropbox online gespeichert. Zugang hat man dann erst durch die Eingabe eines Passwortes oder durch Benutzung sogenannter Keyfiles.\nBeim Anlagen von Truecrypt-Containern innerhalb von Dropbox müssen ein paar Optionen beachtet werden.\n","link":"https://blog.tausys.de/2011/04/09/sicherer-onlinespeicher/","section":"posts","tags":["Backup","Dropbox","Truecrypt"],"title":"Sicherer Onlinespeicher"},{"body":"Bei der Installation des Windows Internal Database Service Pack 4 für x64 Edition (KB2463332) kann auf einem Domaincontroller der Fehler 0x80070643 auftreten. Bei einem installierten WSUS mit der Windows Internal Database wird dieses Update ebenfalls von Windows Update zur Installation vorgeschlagen.\nZur Behebung hat der Knowledgebase-Artikel 919945 weitergeholfen: für die Installation müssen in der Registry gespeicherte SIDs mit den entsprechenden SIDs im Active Directory korrespondieren. Das tun sie aber nicht mehr, wenn der Computer nach der WSUS-Installation zu einem Domaincontroller heraufgestuft wurde.\nNach dem Leeren der in KB919945 beschriebenen Registry-Werte war die Installation des Updates erfolgreich.\n","link":"https://blog.tausys.de/2011/04/06/fehler-bei-installation-des-windows-internal-database-service-pack-4/","section":"posts","tags":["Windows","WSUS"],"title":"Fehler bei Installation des Windows Internal Database Service Pack 4"},{"body":"","link":"https://blog.tausys.de/tags/wsus/","section":"tags","tags":null,"title":"WSUS"},{"body":"Im Netz kursieren viele Anleitungen und Threads (auch von leider immer wieder abschweifenden \u0026quot;Experten\u0026quot;), wie man am besten IPTV des Entertain-Pakets der Telekom mit VLC auf dem PC anschauen kann.\nVorgehensweise\nPlaylist mit Adressen der IPTV-Sender von z.B. hier hier herunterladen (Stand 08/2011). Playlist (*.m3u) am besten auf dem Desktop speichern und dann mit VLC öffen. In VLC wird mit Ansicht -\u0026gt; Wiedergabeliste die Playlist mit den verschiedenen Sendern angezeigt. Fallstricke\nEs lassen sich nur die Programme der öffentlich-rechtlichen Sender frei mit VLC empfangen. Alle anderen Programme werden verschlüsselt übertragen und können (nach aktuellem Kenntnisstand) nur vom Mediareceiver dekodiert werden. Virtualisierungssoftware \u0026quot;verwirrt\u0026quot; VLC durch die zusätzlich eingerichteten Netzwerkinterfaces. Sollte kein Bild und Ton mit VLC ankommen, dann die Virtualisierungssoftware testweise deinstallieren. Bei mir z.B. hat sich VLC nicht mit den Netzwerinterfaces von VirtualBox vertragen. Ein weiterer Test wäre, mit Wireshark zu überprüfen, ob IGMP-Nachrichten auf dem PC ankommen und auch vom PC bzw. VLC beantwortet werden. Evtl. muss auch IGMP für VLC in der Firewall freigeschaltet werden. Bei der gleichzeitigen Anzeige mehrerer SD-Programme mit VLC sollte man immer im Hinterkopf haben, dass ein Stream ca. 4MBit/s Bandbreite verbraucht. Irgendwann ist die heimische Internetleitung ausgelastet. Und nun viel Spaß beim Glotzen am PC!\n","link":"https://blog.tausys.de/2011/04/03/t-online-entertain-iptv-mit-vlc-anschauen/","section":"posts","tags":["IPTV","Telekom","VLC"],"title":"T-Online Entertain IPTV mit VLC anschauen"},{"body":"Wer kennt das nicht: im Laufe der Jahre wächst und wächst die private Musiksammlung und kann schon sehr schnell das Ausmaß mehrerer Gigabytes erreichen. Irgendwann überlegt man sich (hoffentlich), wie die Sammlung gegen Ausfall der Festplatte geschützt werden kann. Bei Sammlungen in einer Größe von insgesammt 8 GB ist schon die Grenze erreicht, die sich auf eine DVD brennen lässt. Abhilfe schafft hier das Sichern auf mehrere DVDs oder, wer schon einen entsprechenden Brenner hat, das Sichern auf eine Blueray-Scheibe. Aber auch hier sind wieder ziemlich enge Grenzen gesetzt, wenn man nicht immer mit mehreren Scheiben jonglieren möchte. Ausserdem lassen sich die Scheiben immer nur ein Mal verwenden und stapeln sich nach mehreren Sicherungen.\nAuch lassen sich die gekauften Songs und Alben bei den meisten Lieferanten nur in einer begrenzten Anzahl wiederholt herunterladen. Also auch kein sicherer Weg, um im Besitz der Ware zu bleiben. Was also tun?\nEinige Anbieter eines Internetzugangs bringen gleich einen Zugriff auf einen Onlinespeicher mit. So z.B. ist bei Arcor und auch T-Online meistens ein Onlinespeicher im Tarif enthalten. Dieser lässt sich, wenn man nicht zur den Anbieter dauernd wechselnden Kundschaft gehört, vortrefflich für die Sicherung von Daten, so auch MP3s verwenden.\nBei T-Online heisst dieser Onlinespeicher Mediencenter. Auf der zugehörigen Webseite wird angeboten, sich eine spezielle Software zum Verwalten der Inhalte herunterzuladen. Das braucht man aber nicht, denn das Mediencenter kann man unter Windows direkt in den Explorer einbinden und kann dann Musik, Bilder oder was auch immer direkt per Explorer in das Mediencenter kopieren. Mit den z.B. in meinem Vertrag enthaltenen 25 GB Speicherplatz bin ich auch ganz zufrieden.\nWeb.de Kunden, die Clubmitglieder sind, haben ebenfalls einen Onlinespeicher inklusive. Dieser nennt sich bei Web.de SmartDrive. Die anfängliche Größe ist dabei zwar auf 4 GB beschränkt, wächst bei Überschreitung aber einmal im Monat um ein weiteres GB. Auch für SmartDrive ist unter Windows keine zusätzliche Software erforderlich. SmartDrive kann ebenfalls einfach in den Explorer eingebunden werden.\nDies soll nur eine kleine Auswahl der bereits in den diversen Verträgen kostenlos zur Verfügung stehenden Onlinespeicher sein und erhebt keinesfalls den Anspruch auf Vollständigkeit. Vielleicht lohnt sich wieder mal ein Blick auf die Webseite des eigenen Anbieters, ob nicht bereits ein Onlinespeicher im Vertrag vorhanden ist.\nUnd nun viel Spaß beim Sichern der Musikschätze.\n","link":"https://blog.tausys.de/2011/03/30/mp3-sammlung-sichern/","section":"posts","tags":["Backup","MP3","Telekom"],"title":"MP3-Sammlung sichern"},{"body":"Die Gurke ist eine Frage des Geschmacks. Diskussionen gab es über die Gurke schon viele. Die eine hitzig, die andere mit klaren Aussagen. Wie haltet ihr es mit der Gurke?\nPro Gurke:\nist auf dem Burger drauf und gehört dazu gibt dem Burger genau den richtigen Geschmack Kontra Gurke:\nschwabbelig und ecklig schmeckt furchtbar Habt ihr weitere Argumente pro oder kontra Gurke?\n","link":"https://blog.tausys.de/2011/03/24/bleibt-die-gurke-auf-dem-burger/","section":"posts","tags":null,"title":"Bleibt die Gurke auf dem Burger?"},{"body":"Heute war es mal wieder an der Zeit, einen kurzen Blick in den Junk-Ordner meines E-Mail-Programms zu werfen. Seit Jahren findet man dort alle Arten von Scam, Phishing, UBE, UCE und wie sie alle heißen. So auch bei einer Scam-Mail, die mir glauben machen wollte, dass sich der Sohn des Noch-Herrschers von Libyen an mich wendet. Nigeria scheint wohl gerade nicht so populär zu sein. Wie immer sollte eine grössere Summe Geld transferiert werden. Kennt man ja schon alles, inklusive der russischen Buchstaben anstatt der deutschen Umlaute im Text.\nInteressant war dann aber doch, welche Kontaktinformationen verlangt wurden:\n11. NAME in FULL: .................................... 22. ADDRESS: ......................................... 33. NATIONALITY: ..................................... 44. AGE: ............................................. 55. Geschlecht ....................................... 66. OCCUPATION: ...................................... 77. Heirats-STATUS: .................................. 88. KOPFHЦRER ........................................ 99. PRIVATE E-MAIL-ADRESSE ........................... Welches persönliche Datum nennt sich denn Kopfhörer? Nach längerem Überlegen bin ich nicht darauf gekommen, was denn gemeint sein könnte. Auch habe ich keine Übersetzung gefunden, die da wohl schief gelaufen ist.\nWer mir bei diesem wohl sinnfreien Zeitvertreib helfen möchte, kann gern die Kommentarfunktion benutzen.\n","link":"https://blog.tausys.de/2011/03/22/akustischer-scam/","section":"posts","tags":["Spam"],"title":"Akustischer Scam?"},{"body":"","link":"https://blog.tausys.de/tags/gpo/","section":"tags","tags":null,"title":"GPO"},{"body":"Die Verwaltung bzw. Abfrage von Informationen per WMI in einer Arbeitsgruppe oder Domäne scheitert manchmal mit der Fehlermeldung: Ursache: Der RPC-Server ist nicht verfügbar. Ursache kann sein, dass die Firewall auf dem zu verwaltenden Computer den Zugriff auf notwendige Ports verhindert.\nGruppenrichtlinie RPC freischalten\nPer Gruppenrichtlinie kann festgelegt werden, dass die Ports für die Remoteverwaltung in der Firewall freigeschaltet werden. Man findet diese in der Gruppenrichtlinenverwaltung unter Computerkonfiguration -\u0026gt; Richtlinien -\u0026gt; Administrative Vorlagen -\u0026gt; Netzwerk -\u0026gt; Netzwerkverbindungen -\u0026gt; Windows-Firewall und dann entsprechend dem Umfeld entweder Domänen- oder Standardprofil. Dort ist die Richtlinie Windows-Firewall: Eingehende Remoteverwaltungsausnahme zulassen zu aktivieren und ein Netzwerk anzugeben, für welches der Zugriff freigeschaltet werden soll.\nNach der nächsten Synchronisierung der Gruppenrichtlinien sollte der obige Fehler nicht mehr auftreten und der Zugriff auf WMI möglich sein.\n","link":"https://blog.tausys.de/2011/03/21/verwaltungszugriff-auf-wmi-per-gruppenrichtlinie-festlegen/","section":"posts","tags":["GPO","Windows","WMI"],"title":"Verwaltungszugriff auf WMI per Gruppenrichtlinie festlegen"},{"body":"","link":"https://blog.tausys.de/tags/wmi/","section":"tags","tags":null,"title":"WMI"},{"body":"","link":"https://blog.tausys.de/tags/mozilla/","section":"tags","tags":null,"title":"Mozilla"},{"body":"Ich verwende für meine persönlichen Termine und zum Einbinden externer Kalender das Lightning-Plugin von Mozilla Thunderbird. Mit einem zusätzlichen Plugin lassen sich damit sogar Google-Kalender einbinden.\nHeute überraschte mich mein Terminkalender. Ich habe wohl sehr viel zu tun.\n","link":"https://blog.tausys.de/2011/03/20/persoenliche-terminplanung/","section":"posts","tags":["Lightning","Mozilla"],"title":"Persönliche Terminplanung"},{"body":"","link":"https://blog.tausys.de/tags/sam/","section":"tags","tags":null,"title":"SAM"},{"body":"Vor längerer Zeit habe ich für meine interne Webseite ein Skript geschrieben, um die Playlist des SAM Broadcasters innerhalb einer Drupal 6 Webseite anzusteuern. Die beiden angehängten Skripte müssen ins Verzeichnis include/ der Drupal-Installation kopiert werden. Die SAM-MySql-Datenbank ist fest verdrahtet und heißt sambc (kann aber leicht ersetzt werden) und liegt auf dem gleichen Host, in der auch die Drupal-Datenbank liegt.\nAnschließend erstellt man eine normale Drupal-Seite mit dem Format PHP code und fügt folgenden Code ein:\n1\u0026lt;?php 2include_once(\u0026#39;mt_stream_overview.inc\u0026#39;); 3?\u0026gt; mt_stream_overview.inc mt_stream_request.php ","link":"https://blog.tausys.de/2011/03/13/sam-broadcaster-und-drupal-6/","section":"posts","tags":["Drupal","PHP","SAM"],"title":"SAM Broadcaster und Drupal 6"},{"body":"In bestimmten Fällen müssen in Secondlife Objekte an eine Gruppe übertragen werden. So ist es z.B. für die Funktionsweise von Radios oder Fernsehern auf Gruppenland erforderlich, dass diese bzw. ein sogenannter im Fernseher oder Radio enthaltener MediaProxy an die Gruppe übertragen werden muss, der das Land gehört. Näheren Aufschluß, welches Objekt an die Gruppe zu übergeben ist liefert in allen Fällen die Bedienungsanleitung zum Radio oder Fernseher. Nur Objekte mit dem gleichen Eigentümer können auf einer Parzelle Audio- oder Mediastreams einstellen. Dazu muss das Objekt bei einer Parzelle, die einer Gruppe gehört, als Eigentümer also auch die Gruppe haben. Es muss vom bisherigen Eigentümer in das Eigentum der Gruppe übergeben werden.\nSecondLife - Objekt an Gruppe übertragen\nDabei spielt es keine Rolle, ob der Eigentümer bereits durch seine Gruppenmitgliedschaft oder eine entsprechende Rolle das Recht hat, Audio- oder Mediastreams auf der Parzelle einzustellen. Bei Objekten werden keine Rollen angewendet, sondern es entscheidet einzig und allein, ob das Objekt dem Landeigentümer (bei Gruppenland eben der Gruppe) gehört.\nUm ein Objekt an die Gruppe übergeben zu können, muss der bisherige Eigentümer das Recht haben, dieses Objekt weiterzugeben (das Objekt muss transfer sein). Außerdem muß der Eigentümer in der jeweiligen Gruppe das Recht haben, Objekte an die Gruppe übergeben zu dürfen. Wenn diese beiden Voraussetzungen gegeben sind, wird im Bearbeiten-Modus des zu übergebenden Objekts folgendermaßen vorgegangen:\nMit der Schaltfläche Festlegen wird die Gruppe ausgewählt, an die das Objekt übergeben werden soll, bzw. der das Land gehört. Durch Anklicken von Mit Gruppe teilen wird die Schaltfläche rechts daneben aktiviert. Und schließlich durch Übertragen wird das Objekt in das Eigentum der Gruppe übertragen. ","link":"https://blog.tausys.de/2011/03/10/objekte-in-secondlife-an-eine-gruppe-uebertragen/","section":"posts","tags":["Secondlife"],"title":"Objekte in Secondlife an eine Gruppe übertragen"},{"body":" Muss man jetzt die Serien, die wohl durch überdurchschnittlich hohe Einschaltquoten glänzen schon mit dem Genre \u0026quot;Porno\u0026quot; bewerben? Natürlich nicht. Ein ganz normaler Fehler, wie er in letzter Zeit sehr häufig im Programm-Manager von T-Home zu finden ist. Leider.\n","link":"https://blog.tausys.de/2011/02/23/fehler-im-programm-manager/","section":"posts","tags":["Telekom"],"title":"Fehler im Programm-Manager"},{"body":"Seit kurzem verwendet diese Webseite Drupal 7. In der Grundinstalltion sind schon wesentliche Module zum Betrieb einer einfachen Webseite oder eines Forums enthalten. Um noch mehr Komfort zu ermöglichen oder bestimmte Funktionen nachzurüsten, kann Drupal einfach mit Modulen erweitert werden. Im Folgenden möchte ich ein paar Module vorstellen, die auch auf dieser Webseite eingesetzt werden:\nViews Wie der Name schon sagt lassen sich mit diesem Modul verschiedene Ansichten erstellen. Das Modul beherrscht dabei auch die unterschiedliche Darstellung des anzuzeigenden Inhalts je nach Typ der Anzeige. So z.B. unterschiedliche Anzeigeformen innerhalb einer Seite oder eines Blocks. Ein Beispiel für einen View ist die Liste der unterschiedlichen Kategorien mit der Anzahl der Seiten, die diese Kategorien enthalten hier links auf dieser Seite. External Links Mit diesem Modul werden alle Links auf externe Webseiten mit einem kleinen Symbol direkt neben dem Link gekennzeichnet. Es kann ausserdem das Browserfenster festgelegt werden, in dem sich ein externer Link öffnet. IMCE Mit IMCE wird die Möglichkeit geschaffen, dass Benutzer z.B. Bilddateien hochladen und selbst verwalten können. Zusammen mit den Modulen IMCE Wysiwyg API bridge und Wysiwyg ist es dann möglich, dass Benutzer Inhalte in einem WYSIWIG-Editor erstellen und komfortabel Bilder hochladen und in ihre Beiträge einfügen können. AddToAny Das Modul stellt einen Button oder Textlink zur Verfügung, um beliebte Inhalte auf vielen unterschiedlichen sozialen Netzwerken mit anderen zu teilen. Colorbox Colorbox ist ein jQuery-Modul, welches zur Anzeige von Bildern oder ganzer Bildergalerien verwendet werden kann. Pathauto Ein Modul, auf dass man bei SEO nicht verzichten kann. Obwohl Drupal durch die Verwendung von mod_rewrite schon selbst Links zum Content ohne für Suchmaschinen tödliche Parameter erstellen kann, so ist ein Link in der Form http://example.com/node/2 für eine Suchmaschine wohl noch nicht sehr vielsagend. Abhilfe schafft dieses Modul, was den Link umformt in http://example.com/content/auf-ein-neues. Search 404 Bei nicht gefundenen Seiten führt dieses Modul automatisch eine Suche auf der Webseite durch und zeigt die Ergebnisse an. Sollte nur ein Ergebnis gefunden werden, kann eingestellt werden, dass der Besucher automatisch diese Seite angezeigt bekommt. Site Verification Mit Hilfe dieses Moduls kann die von verschiedenen Suchmaschinen geforderte Site Verification komfortabel für die Webseite verwaltet werden. Superfish Das Modul erzeugt mit Hilfe von jQuery Menüs die automatisch aufklappen oder Hovereffekte haben. CAPTCHA Auf einer Webseite, die anonyme Kommentare erlaubt und auch für die Benutzerregistrierung unverzichtbar. Das Modul fordert vor dem Abschicken eines Formulars durch anonyme Benutzer dazu auf, die Zeichen aus einem Bild einzugeben oder eine einfache mathematische Aufgabe zu lösen. Der Spam durch Roboter hat damit ein Ende. XML sitemap Das Modul erstellt die für viele Suchmaschinen notwendige sitemap.xml. Ebenfalls kann das Modul bei Änderungen an der Webseite die neue Sitemap automatisch bei den Suchmaschinen melden. Neben diesen Modulen sind noch eine Reihe weiterer installiert, die als Vorraussetzung für den Einsatz der beschriebenen Module dienen.\n","link":"https://blog.tausys.de/2011/02/20/module-fuer-drupal-7/","section":"posts","tags":["Drupal"],"title":"Module für Drupal 7"},{"body":"Nachdem nun mein eigener Mailserver online ist, er nicht in einem Dialin-IP-Block liegt und (ich hoffe) anständig mit TLS und saslauthd abgesichert ist, kann ich getrost Adieu zum E-Mail-Paket sagen, da ich nun alle Funktionen, insbesondere das Verwenden der unterschiedlichen eigenen E-Mail-Adressen selber erledigen kann.\n","link":"https://blog.tausys.de/2011/02/17/adieu-e-mail-paket/","section":"posts","tags":["E-Mail","Telekom"],"title":"Adieu E-Mail-Paket"},{"body":"Mit Drupal 7 hat sich das Taxonomiemodul grundlegend geändert. Die Beispiele aus dem Web für ältere Drupal-Versionen enden schlimmstenfalls in einer komplett leeren Seite. Dann ist Handarbeit in der Datenbank angesagt.\nHier nun ein funktionierendes Beispiel, wie Blöcke in Drupal 7 anhand eines Taxonomiebegriffs des Nodes angezeigt werden können (einzufügen in den Sichbarkeitseinstellungen des jeweiligen Blocks):\n1\u0026lt;?php 2if ( arg(0) == \u0026#39;node\u0026#39; \u0026amp;\u0026amp; is_numeric(arg(1)) ) { 3 $node = node_load(arg(1)); 4\t$items = field_get_items(\u0026#39;node\u0026#39;, $node, \u0026#39;field_tags\u0026#39;); 5\tif (is_array($items)) 6\t{ 7\tforeach($items as $term) 8\t{ 9\tif ($term[\u0026#39;tid\u0026#39;] == 7) 10\t{ 11\treturn TRUE; 12\t} 13\t} 14\t} 15\treturn FALSE; 16} 17?\u0026gt; Dabei wird davon ausgegangen, dass das Feld field_tags die Taxonomiebegriffe enthält. Im Beispiel wird der Block nur angezeigt, wenn der Node den Taxononomie-Term 7 enthält.\nGenau dieser Code wird hier auf der Webseite eingesetzt, um Blöcke auf der rechten Seite anzuzeigen, wenn der Node den Term 7 (= Secondlife) enthält.\n","link":"https://blog.tausys.de/2011/02/15/bloecke-in-drupal-7-nur-bei-bestimmter-taxonomie-anzeigen/","section":"posts","tags":["Drupal","PHP"],"title":"Blöcke in Drupal 7 nur bei bestimmter Taxonomie anzeigen"},{"body":"Drupal 7 wartet auf neuen Tatendrang und die alte Webseite ist schon etwas angestaubt. Es wird also höchste Zeit, die Bits und Bytes wieder mal ordentlich in Schwung zu bringen, egal, ob sie jetzt schon zur Anzeige der Webseite mit einer irrsinnigen Geschwindigkeit durch den Prozessor rasen. Es bleibt mir nur eins: Gutes Gelingen! Und viel Spaß beim Lesen und Stöbern.\n","link":"https://blog.tausys.de/2011/02/10/auf-ein-neues/","section":"posts","tags":null,"title":"Auf ein Neues"},{"body":"","link":"https://blog.tausys.de/tags/smb/","section":"tags","tags":null,"title":"SMB"},{"body":"Verschiedene NAS-Systeme unterstützen kein SMB2, welches seit Windows Vista verwendet wird. Mit folgenden Befehlen kann man SMB2 abschalten, so dass nur noch SMB1 verwendet wird (auszuführen in einer Eingabeaufforderung, die als Administrator ausgeführt wird):\n1sc config lanmanworkstation depend= bowser/mrxsmb10/nsi 2sc config mrxsmb20 start= disabled Zu beachten ist die etwas ungewöhnliche Parameterangabe. Nach dem Gleichheitszeichen muss ein Leerzeichen folgen. \u0026quot;bowser\u0026quot; ist ebenfalls kein Schreibfehler.\nMit dem ersten Befehl wird festgelegt, dass der Arbeitsstationsdienst (lanmanworkstation) von den Diensten Bowser, MRxSmb10 und NSI abhängt. Mit dem zweiten Befehl wird der Dienst MRxSmb20 abgeschaltet. Anschließend ist ein Rechnerneustart erforderlich.\nUm SMB2 wieder einzuschalten fügt man MRxSmb20 zu den Abhängigkeiten des Arbeitsstationsdienstes hinzu:\n1sc config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi 2sc config mrxsmb20 start= auto Nach dieser Änderung ist wiederum ein Rechnerneustart erforderlich.\n","link":"https://blog.tausys.de/2010/12/15/smb2-unter-windows-7-deaktivieren-und-aktivieren/","section":"posts","tags":["SMB","Windows"],"title":"SMB2 unter Windows 7 deaktivieren und aktivieren"},{"body":"Ich zähle zu den Verückten, die das T-Online E-Mail-Paket nutzen. Ausschlaggebend für die Nutzung war, dass beim Versand eine X-beliebige Abenderadresse eingestellt werden kann. \u0026quot;Normale\u0026quot; Kunden können das auch, aber die Absenderadresse wird von T-Online beim Versand mit der T-Online E-Mail-Adresse des Kunden ersetzt. Nicht so beim E-Mail-Paket, da bleibt die vom Versender vorgegebene Absenderadresse erhalten. Soweit, so gut.\nSeit kurzem fiel mir auf, dass ich E-Mails erhalte, die an meine T-Online-Adresse gerichtet waren. Wie, was, wo? Die habe ich doch niemandem herausgegeben. Ich versende immer mit einer Absenderadresse einer auf mich registrierten Domain. Und habe das E-Mail-Paket. Ein kurzer Check in den eingegangenen E-Mails brachte die Katastrophe dann ans Tageslicht. Das ging seit ca. einem Jahr schon so...\nWas nun? Ok.\nLeistungsbeschreibung von T-Online für das E-Mail-Paket checken. Punkt 1.4: Simple Mail Transfer Protocol (=SMTP) - Relayserver Der SMTP-Relayserver ermöglicht dem Kunden E-Mails mit seiner eigenen Domain als Absenderadresse zu versenden (Beispiel: name@meine-Internetadresse.de).\nOk. Die Leistung gibt es also noch. Ich habe keine AGB-Änderung übersehen.\nTest-E-Mail an externe Adresse verschicken. Kommt mit T-Online-Absenderadresse an... Hm...\nHilfeseiten bei T-Online. Dort findet man dann bei Fragen und Antworten zum E-Mail Paket unter dem Titel Wie kann ich meine E-Mails über ein E-Mail-Programm empfangen und senden? die zum E-Mail-Versand einzustellenden SMTP-Server. Da ich ein sicherheitsbewusster Netzbürger bin, habe ich den SMTP-Server mit SSL-Verschlüsselung gewählt: securesmtp.t-online.de. Alles nochmal kontrolliert. Postfix-Transports-Tabelle genau gecheckt und mail.log angesehen. Die E-Mails werden über den richtigen Server verschickt. Hm, habe ich jetzt jahrelang für eine Leistung bezahlt, die gar nicht funktioniert? Blieb 5. nur der Griff zum Telefon, da auf der Kontaktseite bei T-Online leider keinerlei E-Mail-Adresse angegeben ist.\nEs ist ca. 21:30 Uhr und von der Störungsstelle ist noch jemand da. Klasse. Ich schildere mein Problem. E-Mail-Paket wurde verstanden. Die Möglichkeit, eine eigene Absenderadresse einzustellen, die dann auch erhalten bleibt, war unbekannt. Grml. Ich las den oben genannten Punkt der Leistungsbeschreibung vor. Erstaunen am anderen Ende. Die Dame vom Support schaffte es aber blitzschnell, mich selbst in Erstaunen zu versetzen:\nHaben Sie denn ein Stichwort, unter dem ich in unserer Datenbank suchen könnte?\nMir fiel in dem Moment nichts besseres als SMTP-Relay ein (wobei ich Relay auch noch buchstabieren musste). Es fand sich ein Eintrag in der Datenbank: eine Anleitung für Outlook und dergleichen. Ich hörte den Ausführungen brav zu, und, was war das? Ein anderer SMTP-Servername: smtprelay.t-online.de. Ich wurde gefragt, ob ich das denn kurz ausprobieren könnte. Na, warum nicht. Meine Frage nach zwei Minuten Zeit zum Postfix einstellen waren kein Problem. Und welch Wunder. Eine Test-E-Mail behielt den eingestellten Absender. Wow, Freude auf beiden Seiten. Die Dame wollte sich auch ein \u0026quot;Lesezeichen\u0026quot; auf diesen Artikel in ihrer Datenbank setzten.\nSpäter fand ich auf der gleichen Hilfeseite zum E-Mail-Paket dann noch eine Antwort auf die Frage: Welche Einstellungen sind notwendig, um SMTP-Relayserver nutzen zu können?. Dort wurde auch der richtige zu verwendende SMTP-Server angegeben. Verwunderlich ist nur, warum das in der ersten Antwort nicht so drin steht, da damit ja offensichtlich nicht alle Funktionen des E-Mail-Pakets nutzbar sind.\nAlso noch mal kurz und knapp: für Nutzer des E-Mail-Paketes von T-Online muss, damit die angegebene Absenderadresse von T-Online nicht umgeschrieben wird, der Postausgangssserver smtprelay.t-online.de angegeben werden.\nUnd die Moral von der Geschicht: auch T-Online-Support-Mitarbeiter bekommen heraus, wo der Hase im Pfeffer liegt.\n","link":"https://blog.tausys.de/2010/12/01/t-online-e-mail-die-faq-und-der-kundendienst/","section":"posts","tags":["E-Mail","Telekom"],"title":"T-Online, E-Mail, die FAQ und der Kundendienst"},{"body":"Nach stundenlanger Konfiguration von Windows-Diensten oder anderen Anwendungen ist es manchmal wünschenswert, die Eventlogs von Windows zu leeren und in einen sauberen Anfangszustand zu versetzen. Unter Windows 7, Windows 2008 R2 und Windows Vista steht dazu der Befehl wevtutil zur Verfügung. Um nun nicht per Hand jedes einzelne Eventlog aus der schier unüberschaubaren Anzahl der Eventlogs der genannten Betriebssystem eingeben zu müssen, wird ein komplettes Leeren aller Eventlogs mit folgendem Befehl erreicht:\n1for /f \u0026#34;usebackq delims=\u0026#34; %l in (`wevtutil el`) do wevtutil cl \u0026#34;%l\u0026#34; Informationen zu wevtutil findet man ebenfalls im Technet: Clear an Event Log. Dort wird auch folgendes Monstrum beschrieben:\n1wevtutil sl Application /ca:O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)(A;;0x4;;;BO) Alles klar?!\n","link":"https://blog.tausys.de/2010/11/17/windows-eventlog-loeschen/","section":"posts","tags":["Windows"],"title":"Windows Eventlog löschen"},{"body":"","link":"https://blog.tausys.de/tags/cifs/","section":"tags","tags":null,"title":"Cifs"},{"body":"In den Standardeinstellungen ist es normalen Benutzern nicht erlaubt, SMB-Shares unter Ubuntu einzuhängen. Eine Angabe von user in der /etc/fstab reicht nicht aus.\nDie Programme mount.cifs und umount.cifs müssen als Erstes das SUID-Bit gesetzt bekommen.\n1chmod +s /usr/sbin/mount.cifs 2chmod +s /usr/sbin/umount.cifs Wie empfohlen werden dann die Anmeldedaten in einer extra Datei gespeichert, z.B. in /etc/cifs_credentials die folgenden Aufbau hat:\n1username=... 2password=... 3domain=... Diese Datei sollte mit entsprechenden Rechten gegen Lesen durch jedermann gesichert werden. Nur die Benutzer, die nachher die Shares mounten sollen, müssen diese Datei lesen können. Es empfielt sich also, eine extra Gruppe für diese Benutzer anzulegen und der Gruppe Leserechte auf diese Datei zu geben.\n1addgroup smbmounters 2adduser benutzer1 smbmounters 3adduser benutzer2 smbmounters 4... 5chgrp smbmounters /etc/cifs_credentials 6chmod g+r,o-r /etc/cifs_credentidials Anschliessend könnte ein Eintrag in der /etc/fstab folgendermaßen aussehen:\n1//SERVER/Freigabe /mnt/server/freigabe cifs rw,user,noauto,suid,credentials=/etc/cifs_credentials 0 3 Zu beachten ist außerdem, dass die User zum Mounten Schreibrechte auf den Einhängepunkt (hier im Beispiel /mnt/server/freigabe) benötigen, ansonsten wird ein mount-Versuch mit der Fehlermeldung\n1mount error: permission denied or not superuser and mount.cifs not installed SUID verweigert.\n","link":"https://blog.tausys.de/2010/09/09/mounten-von-windows-shares-als-normaler-user-unter-ubuntu/","section":"posts","tags":["cifs","OSS","Ubuntu","Windows"],"title":"Mounten von Windows-Shares als normaler User unter Ubuntu"},{"body":"Das erste Ergebnis mit Blender und dem Erstellen von Sculpties für Secondlife sieht zwar nicht gerade wie im Tutorial-Video aus, ist aber schon mal ein Anfang.\n","link":"https://blog.tausys.de/2010/08/22/erster-test-mit-blender-und-sculpties-fuer-secondlife/","section":"posts","tags":["Blender","Sculpties","Secondlife"],"title":"Erster Test mit Blender und Sculpties für Secondlife"},{"body":"","link":"https://blog.tausys.de/tags/sculpties/","section":"tags","tags":null,"title":"Sculpties"},{"body":"Ich habe mir gerade die Tutorials zum Erstellen von Sculpties für SecondLife von Machinimatrix zu Gemüte geführt und ich muss sagen, ich bin beeindruckt. Da ich ein bisschen vorbelastet in Sachen Blender bin dachte ich mir, probierst Du das ganze doch gleich einmal aus. Gesagt getan. Nach diversen Fallstricken (64bit-System und händischem Anpassen von Umgebungsvariablen) war es dann so weit und ich hielt mein erstes selbsterstelltes Sculptie in den Händen. Ok, besser gesagt auf dem Kopf, denn es ist ein Hut. Hier mal die Vorgehensweise für alle, die ein System installieren wollen, mit dem sich die vorgenannten Tutorials einfach unter Windows nachstellen lassen:\nAls erstes installiert man die 32bit-Version von Blender, da es für die 64bit-Version noch keinen Installer gibt und 32bit-DLLs nicht von 64bit-Anwendungen geladen werden können.\nAnschließend wird Python ebenfalls in der 32bit-Version installiert. Hier muss man aufpassen, dass man die gleiche Version, mit der Blender gelinkt wurde installiert. Ansonsten beschweren sich weitere DLLs, dass sie nicht geladen werden können.\nDanach müssen die Umgebungsvariablen für Python eingestellt werden, damit andere Programme die Python-Installation finden.\nWindows-Taste + Pause für Vista und Windows 7: auf der linken Seite Erweiterte Systemeinstellungen Umbebungsvariablen... im oberen Teil (den Benutzervariablen) die Variable PATH entweder neu erstellen oder ändern an den Wert der Variablen hinten mit einem Semikolon getrennt den Pfad der Python-Installation anhängen (bei mir z.b. _C:\\Program Files (x86)\\Python26_) eine neue Umgebungsvariable mit dem Namen _PYTHONPATH_anlegen und dieser Variablen folgenden Wert geben: C:\\Program Files (x86)\\Python26\\;C:\\Program Files (x86)\\Python26\\DLLs\\;C:\\Program Files (x86)\\Python26\\Lib\\;C:\\Program Files (x86)\\Python26\\Lib\\Lib-Tk\\ vorrausgesetzt, bei euch wurde Python auch unter C:\\Program Files (x86)\\ installiert, ansonsten entsprechend anpassen\nÜberprüfen, dass die Python-Installation auch von Blender erkannt wurde. Dazu einfach Blender starten. In der erscheinenden DOS-Box (evtl. extra über die Taskleiste auswählen) sollte dann folgendes stehen:\nCompiled with Python version 2.6.2.\nChecking for installed Python... got it! Plugin PrimStarfür Blender zum Erstellen von Sculptmaps herunterladen, dieses entpacken und im Verzeichnis des enpackten Plugins folgendes aufrufen: \u0026quot;C:\\Program Files (x86)\\Blender Foundation\\Blender\\blender.exe\u0026quot; -P install.py Dadurch wird das Plugin in Blender installiert.\nUnd nun: Gleich die obigen Tutorials ausprobieren und happy blendering!\n","link":"https://blog.tausys.de/2010/08/19/scultpies-fuer-secondlife-selber-erstellen/","section":"posts","tags":["Blender","Sculpties","Secondlife"],"title":"Scultpies für SecondLife selber erstellen"},{"body":"Manchmal werden die Apache access.logs von meinem Provider nicht immer in der richtigen Reihenfolge geliefert. Nach dem Zusammenkopieren stellte ich fest, dass das Datum nicht immer in der richtigen Reihenfolge war. Dies ist aber Vorraussetzung, um die Logfiles mit Awstats weiter zu bearbeiten. Wie aber nun sortieren? GNU-sort hat da ein paar interessante Features, mit dem verschiedene Keys ausgewählt werden können. Der Sort-Befehl, um ein Apache access.log nach Datum und Uhrzeit zu sortieren sieht dann so aus:\n1sort -s -b -t\u0026#39; \u0026#39; -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n Als Feldtrenner wird mit -t' ' ein Leerzeichen festgelegt. Mit -k 4... wird das vierte Feld in der Zeile angesprochen und mit der nachfolgenden Auswahl der Stellen im Feld 4 nach Jahr, Monat, Tag, Stunde, Minute und Sekunde sortiert.\n","link":"https://blog.tausys.de/2010/08/13/apache-access-log-sortieren/","section":"posts","tags":["Apache","Linux","OSS","Sort"],"title":"Apache access.log sortieren"},{"body":"","link":"https://blog.tausys.de/tags/sort/","section":"tags","tags":null,"title":"Sort"},{"body":"Wer Probleme beim Anzeigen von Sculpties hat, kann den Viewer durch eine Einstellung veranlassen, die Sculpties auch von der Ferne besser anzuzeigen. Dazu aktiviert man (fals noch nicht geschehen) im Viewer das Advanced-Menü mit der Tastenkombination Strg-Alt-Shift-D und wählt dort dann den Menüpunkt Debug Settings.... In dem nun erscheinenden Fenster wählt man die Einstellung RenderVolumeLODFactor. Den Wert sollte man für eine gute Darstellung der Sculpties auf mindestens 4 stellen.\n","link":"https://blog.tausys.de/2010/06/18/sculpties-in-secondlife-besser-anzeigen/","section":"posts","tags":["Sculpties","Secondlife"],"title":"Sculpties in Secondlife besser anzeigen"},{"body":"Dieser Tipp gilt für nur für den Phoenix-Viewer\nIn Secondlife lassen sich die Tooltips auf den Buttons nicht über den Menüpunkt Ansicht -\u0026gt; Schwebe-Tipps -\u0026gt; Tipps anzeigen ausschalten, sondern diese Einstellung aktiviert oder deaktiviert nur die Anzeige von Tooltips für Inworld-Objekte.\nMit einem Trick lassen sich jedoch auch die Tooltips für die Buttons des Secondlife-Clients abstellen. Dazu muss als erstes das Advanced-Menü mit der Tastenkombination Strg-Alt-Shift-D aktiviert werden. Danach kann über den neu erschienenen Menüpunkt Advanced -\u0026gt; Debug Settings eine Liste aller möglichen Einstellungen aufgerufen werden. Wenn man nun die Einstellung ToolTipDelay auf einen sehr hohen Wert setzt, z.b. 3600, werden die Tooltips erst nach dieser Zeit, also praktisch nicht mehr angezeigt.\n","link":"https://blog.tausys.de/2009/08/25/button-tooltips-in-secondlife-abstellen/","section":"posts","tags":["Secondlife"],"title":"Button-Tooltips in Secondlife abstellen"},{"body":"Es wurden ein paar Bäume entfernt.\n","link":"https://blog.tausys.de/2009/05/20/mittwoch/","section":"posts","tags":null,"title":"Mittwoch"},{"body":"","link":"https://blog.tausys.de/tags/pecl/","section":"tags","tags":null,"title":"PECL"},{"body":"Um eine PECL-Erweiterung unter Ubuntu zu installieren, kann aus den Quellen ein Paket gebaut werden, welches dann komfortabel über die Paketverwaltung installiert werden kann. Am Beispiel der PECL-Erweiterung uploadprogress ist das Vorgehen folgendermaßen:\n1export DEBEMAIL=your@email 2export DEBFULLNAME=\u0026#39;Your Name\u0026#39; 3apt-get install dh-make-php 4pecl download uploadprogress 5dh-make-pecl --only 5 uploadprogress-1.0.0.tgz 6cd php-uploadprogress-1.0.0 Der nachfolgende Schritt gibt evtl. fehlende Abhängigkeiten aus, die noch installiert werden müssen\n1fakeroot dpkg-buildpackage -b Jetzt ist das Paket gebaut und der Name wird in einer Zeile ähnlich der folgenden ausgegeben.\n1dpkg-deb: building package \u0026#39;php5-uploadprogress\u0026#39; in \u0026#39;../php5-uploadprogress_1.0.0-1_amd64.deb\u0026#39;. Danach kann das Paket ganz normal mit der Paketverwaltung installiert werden.\n","link":"https://blog.tausys.de/2009/05/15/pecl-erweiterung-unter-ubuntu-installieren/","section":"posts","tags":["Linux","OSS","PECL","Ubuntu"],"title":"PECL-Erweiterung unter Ubuntu installieren"},{"body":"","link":"https://blog.tausys.de/tags/dhcp/","section":"tags","tags":null,"title":"DHCP"},{"body":"","link":"https://blog.tausys.de/tags/routing/","section":"tags","tags":null,"title":"Routing"},{"body":"Wenn man den DHCP-Clients zusätzlich zum default Gateway auch noch andere Routen mitteilen möchte, kann man die DHCP-Option, welche in RFC3442 definiert ist, nutzen. Zuerst einmal ist eine neue Option für den dhcpd zu definieren:\noption rfc3442-classless-static-routes code 121 = array of integer 8;\nDie eigentliche zusätzliche Route kann man dann wie folgt definieren:\noption rfc3442-classless-static-routes 24, 192, 168, 47, 192, 168, 47, 25;\nDabei bedeuten:\n24 Länge der nachfolgenden Subnetzmaske in Bits 192, 168, 47 die signifikanten Bytes der Subnetzmaske 192, 168, 47, 25 das Gateway für das vorher angegebene Subnetz Mit dem obigen Beispiel wird also eine Route für das Subnetz 192.168.47.0/24 über das Gateway 192.168.47.25 festgelegt. Soweit mir bekannt ist, wird dieses Verfahren vom Microsoft DHCP-Client unter Windows XP und Vista unterstützt.\n","link":"https://blog.tausys.de/2008/12/30/statische-routen-per-dhcp-mitteilen/","section":"posts","tags":["DHCP","Routing"],"title":"Statische Routen per DHCP mitteilen"},{"body":"","link":"https://blog.tausys.de/tags/bind/","section":"tags","tags":null,"title":"BIND"},{"body":"","link":"https://blog.tausys.de/tags/dnssec/","section":"tags","tags":null,"title":"DNSSEC"},{"body":"","link":"https://blog.tausys.de/tags/firewall/","section":"tags","tags":null,"title":"Firewall"},{"body":"Mit der Einführung von DNSSEC für verschiedene TLDs haben sich die Erfordernisse an die eingesetzte Firewall-Software erhöht. Da gleichzeitig im BIND9 die DNSSEC-Abfrage per Default eingeschaltet wurde, sollte getestet werden, ob die Firewall-Software für EDNS0-Anfragen richtig funktioniert. Hinweise für eine nicht richtig funktionierende EDNS0-Anfrage liefert eine BIND9-Meldung wie z.B.:\n1too many timeouts resolving \u0026#39;ze.akamaitech.net/AAAA\u0026#39; (in \u0026#39;akamaitech.net\u0026#39;?): disabling EDNS EDNS0-Anfragen passen oft nicht in die (alten) UDP-Pakete mit einer Länge von 512 Bytes. Mit\n1dig +norec +dnssec example.com @a.root-servers.net kann getestet werden, ob die Firewall UDP-Pakete mit einer Länge größer als 512 Bytes durchlässt. Mit\n1dig +dnssec +norec +ignore dnskey se @A.NS.se kann getestet werden, ob IP Fragmente für UDP unterstützt werden.\n","link":"https://blog.tausys.de/2008/12/29/firewall-auf-dnssec-erfordernisse-testen/","section":"posts","tags":["BIND","DNS","DNSSEC","Firewall","Linux"],"title":"Firewall auf DNSSEC-Erfordernisse testen"},{"body":"Linux kennt für dieses Problem das Kommando which. Unter Windows existiert solch ein Kommando leider nicht, kann aber leicht CMD-Mitteln nachgestellt werden.\nLäuft ab Windows XP:\n1@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT \u0026#34;%%~$PATH:i\u0026#34;==\u0026#34;\u0026#34; echo %%~$PATH:i Einfach im Pfad als z.B. which.bat speichern.\nQuelle\n","link":"https://blog.tausys.de/2008/12/19/windows-programm-im-pfad-finden/","section":"posts","tags":["Batch","Windows"],"title":"Windows – Programm im Pfad finden"},{"body":"Beim Absturz von NT-artigen Windows wird eine Speicherabbilddatei unter C:\\WINDOWS\\Minidump erstellt. Diese kann mit den durch Microsoft zur Verfügung gestellten Debugging Tools for Windows gelesen und analysiert werden.\nDer Knowledgebase-Artikel 315263 beschreibt die Vorgehensweise ausführlich.\nLaden der Symbole vom Microsoft-Symbolserver:\n1windbg.exe -y srv*c:\\symbols*http://msdl.microsoft.com/download/symbols -i c:\\windows\\i386 -z c:\\windows\\minidump\\minidumpXXXX.dmp Vorraussetzung dafür ist, das der Inhalt des Ordners I386 von der Windows-Installations-CD in den Ordner C:\\WINDOWS\\I386 kopiert wurde.\n","link":"https://blog.tausys.de/2008/12/19/windows-minidumps-lesen/","section":"posts","tags":null,"title":"Windows MiniDumps lesen"},{"body":"Auf einer .NET-Informationsveranstaltung habe ich den Begriff DLL-Hell aufgeschnappt. Hier wollte die .NET-Entwicklungsumgebung eigentlich neue Maßstäbe setzen und die DLL-Flut weitgehend verhindern. Fakt ist jedoch, daß aus jedem einzelnen .NET-Projekt eine eigene Assembly (als DLL- oder EXE-Datei) resultiert. Das fehlende Utility ist ILMerge. Mit diesem Utility kann man die einzelnen zum Projekt hinzugehörenden DLL-Dateien in eine einzige Assembly verpacken.\nILMerge is a utility that can be used to merge multiple .NET assemblies into a single assembly. ILMerge takes a set of input assemblies and merges them into one target assembly. The first assembly in the list of input assemblies is the primary assembly. When the primary assembly is an executable, then the target assembly is created as an executable with the same entry point as the primary assembly. Also, if the primary assembly has a strong name, and a .snk file is provided, then the target assembly is re-signed with the specified key so that it also has a strong name.\nILMerge is packaged as a console application. But all of its functionality is also available programmatically. Note that Visual Studio 2005 does allow one to add an executable as a reference, so you can write a C# client that uses ILMerge as a library. If you are using Visual Studio 2003, you must use the v1.1 version of ILMerge and rename it to be a dll in order to use it as a reference.\nThere are several options that control the behavior of ILMerge. See the documentation that comes with the tool for details.\nThe v2.0 version of ILMerge runs in the v2.0 .NET Runtime, but it is also able to merge v1 or v1.1 assemblies. However it can merge PDB files only for v2 assemblies. The v1.1 version of ILMerge can only process assemblies built in the v1.1 runtime (but does merge PDB files for those assemblies).\nCurrently, ILMerge works only on Windows-based platforms. It does not yet support Rotor or Mono. It runs in the v2.0 .NET Runtime, but is also able to merge v1 or v1.1 assemblies. Quelle\nLinks:\nDownload von ILMerge Entwicklerhomepage von ILMerge ","link":"https://blog.tausys.de/2008/12/19/ilmerge/","section":"posts","tags":null,"title":"ILMerge"},{"body":"Q: How to convert between 'CString' and 'std::string'?\nA:\n'CString' to 'std::string':\n1CString cs(\u0026#34;Hello\u0026#34;); 2std::string s((LPCTSTR)cs); 'std::string' to 'CString':\n1std::string s(\u0026#34;Hello\u0026#34;); 2CString cs(s.c_str()); std::string cannot always construct from a LPCTSTR i.e. the code will fail for UNICODE builds.\nAs std::string can construct only from LPSTR / LPCSTR, a programmer who uses VC++ 7.x or better can utilize conversion classes such as CT2CA as an intermediary.\nLike this:\n1CString cs (\u0026#34;Hello\u0026#34;); 2 3// Convert a TCHAR string to a LPCSTR 4CT2CA pszConvertedAnsiString (cs); 5 6// construct a std::string using the LPCSTR input 7std::string strStd (pszConvertedAnsiString); ","link":"https://blog.tausys.de/2008/12/19/konvertieren-zwischen-cstring-und-stdstring/","section":"posts","tags":null,"title":"Konvertieren zwischen CString und std::string"},{"body":"Der mit .NET 2.0 eingeführte Namespace My beinhaltet My.Computer.Audio. Mit den darin enthaltenen Methoden ist es einfach möglich, Audiodateien wiederzugeben:\n1Dim musicFile As String 2musicFile = My.Computer.FileSystem. _ 3 GetFiles(\u0026#34;C:\\WINDOWS\\Media\u0026#34;, _ 4 FileIO.SearchOption.SearchAllSubDirectories, _ 5 \u0026#34;*.wav\u0026#34;)(0) 6My.Computer.Audio.Play(musicFile) ","link":"https://blog.tausys.de/2008/12/19/audio-dateien-mit-net-abspielen/","section":"posts","tags":null,"title":"Audio-Dateien mit .NET abspielen"},{"body":" 1inline unsigned char toHex(const unsigned char x) { 2\treturn x \u0026gt; 9 ? (x + \u0026#39;A\u0026#39; - 10) : (x + \u0026#39;0\u0026#39;); 3} 4 5std::string URLEncode(const std::string \u0026amp;sIn) 6{ 7\tstd::string sOut; 8 9\tconst size_t length = sIn.length(); 10\tfor (size_t idx = 0; idx \u0026lt; length;) { 11\tconst char ch = sIn.at(idx); 12\tif (isalnum(ch)) 13\t{ 14\tsOut.append(1, ch); 15\t} 16\telse if (isspace(ch) \u0026amp;\u0026amp; ((ch != \u0026#39;\\n\u0026#39;) \u0026amp;\u0026amp; (ch != \u0026#39;\\r\u0026#39;))) 17\t{ 18\tsOut.append(1, \u0026#39;+\u0026#39;); 19\t} 20\telse 21\t{ 22\tsOut.append(1, \u0026#39;%\u0026#39;); 23\tsOut.append(1, toHex(ch\u0026gt;\u0026gt;4)); 24\tsOut.append(1, toHex(ch%16)); 25\t} 26\tidx++; 27\t} 28\treturn sOut; 29} ","link":"https://blog.tausys.de/2008/12/19/urlencode-von-stdstring/","section":"posts","tags":null,"title":"UrlEncode von std::string"},{"body":"Um in CHtmlView bei Verwendung von CSS auch visuelle Styles anzugeigen, muss lt. MSDN folgende Headerzeile in die HTML-Seite eingefügt werden:\n1\u0026lt;META HTTP-EQUIV=\u0026#34;MSThemeCompatible\u0026#34; CONTENT=\u0026#34;Yes\u0026#34;\u0026gt; ","link":"https://blog.tausys.de/2008/12/19/xp-styles-und-chtmlview/","section":"posts","tags":["CSS"],"title":"XP-Styles und CHtmlView"},{"body":"Benutzerdefinierte Aktionen bei Install/Uninstall Dem Installer können benutzerdefinierte Aktionen für die Phasen Install, Commit, Rollback und Uninstall hinzugefügt werden. Die Assembly (die als benutzerdefinierte Aktion ausgewählt wird) muß ein Klasse enthalten, die von System.Configuration.Install abgeleitet ist. Dort können die angegebenen Methoden überschrieben werden. Der Installer ruft dann die entsprechenden Methoden in der angegebenen Assembly auf.\nFür Windows-Dienste wird empfohlen, den Dienst in der Methode Commit zu starten und in Uninstall zu stoppen.\nParameterübergabe Parameter können an die benutzerdefinierte Aktion ebenfalls übergeben werden. Dazu muß die Eigenschaft CustomActionData der benutzerdefinierten Aktion im Setupprojekt gefüllt werden. Beispiel: /targetdir=\u0026quot;[TARGETDIR]\u0026quot;.\nIn der den Methoden Install und Uninstall übergebenen Variable stateSaver können Werte aus der Installation gespeichert werden, die dann bei der Deinstallation wieder zur Verfügung stehen:\n1stateSaver.Add(\u0026#34;conStr\u0026#34;,rijndael.Encrypted); ","link":"https://blog.tausys.de/2008/12/18/microsoft-installer/","section":"posts","tags":null,"title":"Microsoft Installer"},{"body":"Beispiel der Ausgabe einer MySQL-Tabelle mit den Drupal-Formatierungsfunktionen:\n1\u0026lt;?php 2 $result = db_query(\u0026#34;SELECT * FROM {my_table}\u0026#34;); 3 $output = \u0026#39;\u0026#39;; 4 $rows = array(); 5 $header = array(\u0026#39;id\u0026#39;,\u0026#39;Domain\u0026#39;,\u0026#39;Module\u0026#39;); 6 $rows = array(); 7 $i = 0; 8 while($row = db_fetch_object($result)){ 9 $data = array(); 10 $data[] = $row-\u0026gt;sid; 11 $data[] = $row-\u0026gt;domain; 12 $data[] = $row-\u0026gt;module; 13 $rows[] = $data; 14 $i++; 15 } 16 $output .= theme(\u0026#39;table\u0026#39;, $header,$rows); 17 echo $output; 18?\u0026gt; Zur Anzeige ist einfach der obige Code in eine neue Drupal-Seite einzufügen und als Eingabeformat PHP code auszuwählen. Aber Vorsicht! Der PHP-Code sollte syntaktisch korrekt sein und man sollte wissen, wie man fehlerhaften Code per Hand wieder aus der Drupal-Datenbank bekommt.\n","link":"https://blog.tausys.de/2008/12/12/mysql-tabellen-mit-drupal-ausgeben/","section":"posts","tags":["Drupal","MySQL"],"title":"MySQL-Tabellen mit Drupal ausgeben"},{"body":"","link":"https://blog.tausys.de/tags/c/","section":"tags","tags":null,"title":"C"},{"body":" sizeof(char) \u0026lt;= sizeof(short) \u0026lt;= sizeof(int) \u0026lt;= sizeof(long) \u0026lt;= sizeof(long long) sizeof(short) \u0026gt;= 2 sizeof(int) \u0026gt;= 2 sizeof(long) \u0026gt;= 4 ","link":"https://blog.tausys.de/2008/12/09/groesse-der-typen-in-c/","section":"posts","tags":["C","Programmieren"],"title":"Größe der Typen in C"},{"body":"","link":"https://blog.tausys.de/tags/programmieren/","section":"tags","tags":null,"title":"Programmieren"},{"body":"Nun ist er doch noch umgefallen!\n","link":"https://blog.tausys.de/2008/11/30/breaking-news/","section":"fundstuecke","tags":null,"title":"Breaking News"},{"body":" ","link":"https://blog.tausys.de/2008/11/29/nuechternheitstest/","section":"fundstuecke","tags":null,"title":"Nüchternheitstest"},{"body":"Einstein verfasste dieses Rätsel im letzten Jahrhundert. Er behauptete, 98% der Weltbevölkerung seien nicht in der Lage, es zu lösen.\nEs gibt fünf Häuser mit je einer Farbe In jedem Haus wohnt eine Person einer anderen Nationalität Jeder Hausbewohner bevorzugt ein bestimmtes Getränk, raucht eine bestimmte Zigarettenmarke und hält ein bestimmtes Haustier KEINE der 5 Personen trinkt das gleiche Getränk, raucht die gleichen Zigaretten oder hält das gleiche Tier wie einer seiner Nachbarn Frage: Wem gehört der Fisch?\nDie Hinweise:\nDer Brite lebt im roten Haus Der Schwede hält einen Hund Der Däne trinkt gerne Tee Das grüne Haus steht direkt links vom weißen Haus Der Besitzer des grünen Hauses trinkt gerne Kaffee Die Person, die Pall Mall raucht, hält einen Vogel Der Mann, der im mittleren Haus wohnt, trinkt gerne Milch Der Besitzer des gelben Hauses raucht Dunhill Der Norweger wohnt im ersten Haus Der Marlboro-Raucher wohnt nebem dem, der eine Katze hält Der Mann, der ein Pferd hält, wohnt nebem dem, der Dunhill raucht Der Winfield-Raucher trinkt gerne Bier Neben dem blauen Haus wohnt der Norweger Der Deutsche raucht Rothmanns Derjenige, der Marlboro raucht, hat einen Nachbarn, der Wasser trinkt Lösung gefunden?\n","link":"https://blog.tausys.de/2008/11/29/wem-gehoert-der-fisch/","section":"fundstuecke","tags":null,"title":"Wem gehört der Fisch?"},{"body":" Nehmen Sie einen Käfig mit fünf Affen. Hängen Sie eine Banane an die Käfigdecke und stellen Sie eine Stufenleiter darunter. Es wird nun nicht lange dauern, bevor ein Affe versuchen wird, die Leiter zu erklimmen um an die Banane zu kommen. Sobald der Affe die Leiter berührt, besprühen sie alle Affen mit kaltem Wasser. Nach einer Weile wird ein anderer Affe versuchen, auf die Leiter zu steigen, mit dem selben Resultat. Alle Affen werden mit kaltem Wasser besprüht.\nStellen Sie das kalte Wasser nun ab. Falls später ein anderer Affe versuchen sollte, die Leiter zu erklimmen, wird er von den anderen Affen zurückgehalten werden, obwohl sie diesmal nicht besprüht werden.\nNehmen sie nun einen der Affen aus dem Käfig und ersetzen sie ihn mit einem neuen Affen. Der neue Affe sieht die Banane und wird versuchen, sie über die Leiter zu erreichen. Zu seinem Horror wird er von allen anderen Affen angegriffen. Noch ein Versuch und noch ein Angriff machen ihm klar, das er beim Versuch die Banane zu erreichen, verhauen wird.\nAlls nächstes nehmen sie einen weiteren der ursprünglichen Affen aus dem Käfig und ersetzten sie mit einem neuen Affen. Der Neue geht zur Leiter und wird sofort attackiert. Der zuletzt angekommene Neuling nimmt enthusiastisch an der Attacke teil.\nNehmen sie nun noch einen der ursprünglichen Affen aus dem Käfig und ersetzten sie ihn wieder mit einem Neuen. Dasselbe Spiel wiederholt sich. Der Neue versucht an die Banane zu kommen und wird verprügelt. Zwei der vier Affen haben keine Idee warum es ihnen nicht erlaubt war, die Banane zu holen oder weshalb sie an der Verprügelung des neuesten Affen teilnahmen.\nNachdem sie nun auch den vierten und fünften Affen ausgetauscht haben, ist keiner der ursprünglich Anwesenden, mit kaltem Wasser besprühten Affen, mehr vorhanden.\nTrotzdem wird keiner der Affen je wieder versuchen, die Leiter zu erklimmen. Warum nicht?\nWEIL WIR DAS HIER SCHON IMMER SO GEMACHT HABEN!\n","link":"https://blog.tausys.de/2008/11/29/planet-der-affen/","section":"fundstuecke","tags":null,"title":"Planet der Affen"},{"body":"Das folgende Formular ist nur im äußersten Notfall zu benutzen!\n1Mustermerkbefreiung: (laut Amtsblatt) 2==================== 3 4Die nachstehend eindeutig identifizierte Lebensform 5 6Name : ____________________ 7Vorname : ____________________ 8Geburtsdatum : __.__.19__ 9Geburtsort : ____________________ 10Personalausweisnummer: ____________________ 11 12ist hiermit für den Zeitraum von 13 14 [_] 6 Monaten 15 [_] 12 Monaten 16 [_] 24 Monaten 17 [_] unbefristet 18 19davon befreit, etwas zu merken, d.h. wesentliche 20Verhaltensänderungen bei der Interaktion mit denkenden Wesen zu 21zeigen. Die Einstufung der o.a. Person nach dem amtlichen Index 22für Merkbefreiungen liegt bei dem Äquivalent von 23 24 [_] einem Mensaessen vom Vortag 25 [_] drei Hartkeksen in löslichem Kaffee 26 [_] einer Kiste Schwarzbrot in Dosen 27 [_] einem Quadratmeterstück Torfmoos während einer 28 sechswöchigen Sommerdürre 29 [_] einem Container erodiertem Sandstein 30 (Streusandqualität) 31 32Die ausgesprochene Merkbefreiung erlischt mit dem Ablauf des 33 34 [_] __.__.20__ 35 [_] 01.01.2010 36 [_] der vollständigen Erosion der körperlichen 37 Bestandteile der o.a. Lebensform 38 39und gilt, sofern die o.a. Lebensform durch das nachstehende 40Kennzeichen als merkbefreit zu identifizieren ist: 41 42 [_] eine rote Plastiknase 43 [_] olives Stoffstück mit weißem Rand, auf der Schulter 44 zu tragen 45 [_] die Lebensform ist durch den Gesichtsausdruck 46 zweifelsfrei als unbefristet merkbefreit zu 47 erkennen. 48 49Die o.a. Lebensform ist durch den Erwerb dieses 50Merkbefreiungsscheins automatisch für die folgenden Tätigkeiten 51qualifiziert: 52 53 [_] Markierungshütchen bei Abmarkierungsarbeiten auf 54 Bundesautobahnen 55 [_] Garderobenständer und Regenschirmständer in 56 Restaurants bis zu, aber nicht eingeschlossen, 3 57 Sterne 58 [_] Regelstab in Schwerwasserreaktoren 59 [_] Markierungsstab für das Fahrwasser im Nationalpark 60 Wattenmeer 61 [_] Landschaftsmerkmal/Orientierungshilfe in der Wüste 62 Gobi 63 64Die Merkbefreiung für die o.a. Lebensform wurde in einem 65öffentlichen Merkbefreiungsverfahren ausgesprochen und ist nach 66Ablauf der Einspruchsfrist von 17 Sekunden rechtskräftig. 67 68Datum Unterschrift Dienstsiegel 69 70Stirnabdruck des Merkbefreiten ","link":"https://blog.tausys.de/2008/11/29/merkbefreiung/","section":"fundstuecke","tags":null,"title":"Merkbefreiung"},{"body":"It works!\nUnd bevor ich jetzt noch graue Haare von Drupal, IMCE, WYSIWIG mit TinyMCE oder FCKEditor und dem nicht funktionierenen Inline-Image-Insert bekomme, gehe ich lieber eine Runde Secondlife spielen.\n","link":"https://blog.tausys.de/2008/11/21/willkommen-auf-meiner-neuen-webseite/","section":"posts","tags":null,"title":"Willkommen auf meiner neuen Webseite"},{"body":"Der Nachbar hat das Auto in der Früh beim Ausweichen übersehen. Sieht alles nicht so schlimm aus, ist aber trotzdem ein Totalschaden. Und damit auch leider das Ende von meiner Rennsemmel.\n","link":"https://blog.tausys.de/2008/06/16/auto-putt/","section":"posts","tags":null,"title":"Auto putt"},{"body":"Nach einem Upgrade auf Ubuntu Hardy Heron funktioniert das Signieren und Verschlüsseln von E-Mails aus Thunderbird und Evolution leider nicht mehr korrekt.\nGrund ist ein Eintrag in der ~/.gnupg/gpg.conf, der auf eine falsche Stelle des Socket von seahorse-agent zeigt. Am Ende der Datei ist der Eintrag gpg-agent-info zu deaktivieren oder zu entfernen.\n","link":"https://blog.tausys.de/2008/05/11/probleme-mit-gpg-und-thunderbird-evolution-unter-ubuntu-hardy-heron/","section":"posts","tags":["GPG","Linux","Ubuntu"],"title":"Probleme mit GPG und Thunderbird / Evolution unter Ubuntu Hardy Heron"},{"body":"Vom Grill ist zwar nicht viel zu sehen, dafür aber ein wunderschöner Balkonausblick.\n","link":"https://blog.tausys.de/2008/05/10/samstag-beim-grillen/","section":"posts","tags":null,"title":"Samstag beim Grillen"},{"body":" ","link":"https://blog.tausys.de/2008/04/13/sonntag-im-garten/","section":"posts","tags":null,"title":"Sonntag im Garten"},{"body":" ","link":"https://blog.tausys.de/2008/02/10/baustelle-ist-fertig/","section":"posts","tags":null,"title":"Baustelle ist fertig"},{"body":"Die Baustelle rings um das Haus wird wohl nie fertig. Hier wird seit eineinhalb Monaten an einem Gehweg gearbeitet.\n","link":"https://blog.tausys.de/2007/12/08/baustelle/","section":"posts","tags":null,"title":"Baustelle"},{"body":" ","link":"https://blog.tausys.de/2007/09/06/balkonausblick/","section":"posts","tags":null,"title":"Balkonausblick"},{"body":" Wichtig! Ohne eine Zustimmung zum Speichern funktionaler Cookies werden auch bereits abgegebenen Kommentare vom Kommentarsystem nicht angezeigt.\nDas Kommentarsystem wird von mir selbst gehostet, Kommentare verlassen also nicht meinen Zuständigkeitsbereich. Solltet ihr bereits einen Kommentar im neuen Kommentarsystem abgegeben haben (Vielen Dank dafür!) könnt ihr euch dort mit den gleichen Zugangsdaten anmelden.\nAlle anderen Cookies sind optional und können abgelehnt werden. Es wäre allerdings nett, wenn ihr nur mir erlaubt zu sehen, welche Beiträge euch gefallen. Und wer mehr zu Cookies allgemein wissen möchte: ich hatte da mal was aufgeschrieben.\nCookie-Einstellungen anpassen\rDatenschutz Informationen zum Datenschutz, von Juristen für Juristen, befinden sich auf einer eigenen Seite.\n","link":"https://blog.tausys.de/cookies/","section":"","tags":null,"title":"Cookie-Einstellungen anpassen"},{"body":"","link":"https://blog.tausys.de/series/","section":"series","tags":null,"title":"Series"}]