<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C3VO</title><link>https://c3vo.de/</link><description></description><atom:link href="https://c3vo.de/feeds/rss" rel="self"></atom:link><lastBuildDate>Wed, 05 Aug 2020 19:00:00 +0200</lastBuildDate><item><title>Mirror von gitlab zu github</title><link>https://c3vo.de/home/mirror-gitlab-github/</link><description>&lt;p&gt;Die &lt;a href="https://gitlab.com/help/user/project/repository/repository_mirroring.md"&gt;gitlab Dokumentation&lt;/a&gt;
empfiehlt zum Spiegeln meiner Meinung nach zu stark das Nutzen von github
&lt;a href="https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token"&gt;personal access tokens&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Diese haben aber einen Nachteil: Personal access tokens gelten für alle
Repositories eines Nutzer. Anders formuliert: Gibt man einem personal
access token Schreibrechte, kann man mit diesem token in alle
Repositories dieses Nutzers schreiben. Gewollt ist in meinem Fall jedoch eher,
dass man Schreibrechte für &lt;em&gt;das eine&lt;/em&gt; Repository zum Spiegeln vergibt.&lt;/p&gt;
&lt;p&gt;github hat &lt;a href="https://docs.github.com/en/developers/overview/managing-deploy-keys#deploy-keys"&gt;deploy keys&lt;/a&gt;
, die nur lesen/schreiben &lt;em&gt;pro Repository&lt;/em&gt; ermöglichen.
Diese kann man auch für das Spiegeln von gitlab zu github nutzen.&lt;/p&gt;
&lt;p&gt;Da das aber in den beiden Dokumentationen subjektiv eher implizit steht, hier einmal die konkreten Schritte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ziel-Repository auf github erstellen&lt;/li&gt;
&lt;li&gt;mirror in gitlab einrichten&lt;ol&gt;
&lt;li&gt;im bestehenden gitlab-Repository „Repository Settings“ → „Mirroring repositories“ öffnen&lt;/li&gt;
&lt;li&gt;Github-Repository-URL eingeben. Fallstrick hier: &lt;code&gt;ssh://&lt;/code&gt; vorn an SSH-Repo-Adresse aus github, später den &lt;code&gt;:&lt;/code&gt; durch &lt;code&gt;/&lt;/code&gt; ersetzen. Also aus &lt;code&gt;git@github.com:&amp;lt;user&amp;gt;/&amp;lt;repo&amp;gt;.git&lt;/code&gt; wird &lt;code&gt;ssh://git@github.com/&amp;lt;user&amp;gt;/&amp;lt;repo&amp;gt;.git&lt;/code&gt;. Andernfalls mag gitlab die URL nicht.&lt;/li&gt;
&lt;li&gt;Erscheinenden „Detect host keys.“-Button klicken und den Fingerprint mit dem von &lt;a href="https://docs.github.com/en/github/authenticating-to-github/githubs-ssh-key-fingerprints"&gt;github&lt;/a&gt; vergleichen.&lt;/li&gt;
&lt;li&gt;Mirror direction „push“ auswählen.&lt;/li&gt;
&lt;li&gt;Bei „Authentication method“ „SSH public key“ wählen → damit wird ein eigener SSH-Key im gitlab erstellt.&lt;/li&gt;
&lt;li&gt;Den generierten SSH public key aus gitlab kopieren und in github als deploy key einfügen. Dieser braucht in github Schreibrechte.&lt;/li&gt;
&lt;li&gt;im gitlab „update now“ drücken und schauen, ob es funktioniert.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Dann sollte es gehen. 🙂&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Wed, 05 Aug 2020 19:00:00 +0200</pubDate><guid>tag:c3vo.de,2020-08-05:home/mirror-gitlab-github/</guid><category>uu-planet</category><category>Open Source</category><category>gitlab</category><category>github</category></item><item><title>mpv über Tastenkürzel steuern</title><link>https://c3vo.de/home/mpv-uber-tastenkurzel-steuern/</link><description>&lt;p&gt;Persönlich bin ich ein Freund von &lt;a href="https://wiki.ubuntuusers.de/mpv/"&gt;mpv&lt;/a&gt;. Einfach in einen Ordner gehen und eine beliebige Multimedia-Datei öffnen oder via &lt;code&gt;mpv --shuffle --no-video .&lt;/code&gt; Musik zufällig aus dem aktuellen Verzeichnis abspielen. Soweit kein Problem. Zudem kann man mpv auch viele Video-URLs einfach vorwerfen und er spielt sie ab.&lt;/p&gt;
&lt;p&gt;Allerdings gab es immer einen großen Wertmutstropfen: Über die Multimedia-Tasten (Vor, Zurück, Pause) auf der Tastatur wollte sich mpv nie so wirklich steuern lassen.&lt;/p&gt;
&lt;p&gt;Abhilfe schafft ein Plugin für mpv, das man im gitHub-Repository
&lt;a href="https://github.com/hoyon/mpv-mpris"&gt;https://github.com/hoyon/mpv-mpris&lt;/a&gt; findet. Dieses setzt für mpv das Media Player Remote Interfacing Specification – kurz &lt;a href="https://specifications.freedesktop.org/mpris-spec/latest/"&gt;MPRIS&lt;/a&gt; – um.&lt;/p&gt;
&lt;p&gt;Die Installation gliedert sich in zwei Schritte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Entweder das Repo klonen und selbst kompilieren oder eine vorkompilierte Version unter &lt;a href="https://github.com/hoyon/mpv-mpris/releases"&gt;https://github.com/hoyon/mpv-mpris/releases&lt;/a&gt; herunterladen. Letzteres benötigt glib &amp;gt;= 2.52.&lt;/li&gt;
&lt;li&gt;Das erhaltene Plugin-Binary in &lt;code&gt;~/.config/mpv/scripts&lt;/code&gt; kopieren oder zumindest verlinken. Dann wird es bei jedem Start von mpv mitgestartet.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Wer genaueres wissen möchte, liest am besten die &lt;code&gt;README.md&lt;/code&gt; im verlinkten Repository.&lt;/p&gt;
&lt;p&gt;Nach der Installation kann man in GNOME und einer Erweiterung
wie &lt;a href="https://extensions.gnome.org/extension/55/media-player-indicator/"&gt;Media Player Indicator&lt;/a&gt;
den aktuellen Titel sehen sowie zusätzlich mpv drüber steuern. In KDE und anderen (großen) Desktopumgebungen sollte es ähnlich funktionieren. Ich habe es aber nicht explizit getestet.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Mon, 08 Oct 2018 23:45:00 +0200</pubDate><guid>tag:c3vo.de,2018-10-08:home/mpv-uber-tastenkurzel-steuern/</guid><category>Linux</category><category>uu-planet</category><category>Open Source</category><category>mpv</category></item><item><title>Daten von USB-Stick retten</title><link>https://c3vo.de/home/daten-von-usb-stick-retten/</link><description>&lt;p&gt;Gestern hatte ich das Problem, dass eine USB-Stick nur noch schwer lesbar und beschreibbar war. Grund hierfür: Der USB-Stick meldet sich alle 15s an und wieder ab. (Das fällt einem durch automount bei kleinen Textdateien nicht mal sofort auf) Das Problem trat sowohl unter Windows als auch Linux auf – auch an verschiedenen USB-Ports von drei Rechnern. &lt;code&gt;dmesg&lt;/code&gt; macht einem mit&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;[12124.276596] blk_update_request: I/O error, dev sdd, sector 12949480
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;nicht gerade Hoffnungen. Die Diagnose ist einfach wie bitter zugleich: USB-Stick kaputt. Nun steht man vor dem Problem: Hab ich von allen Daten, die gegebenenfalls noch auf dem Stick sind, noch eine Kopie? Ein simples Kopieren der Daten vom Stick war durch das zyklische An- und Abmelden nicht mehr möglich. Also als allererstes ein Image erstellen.&lt;/p&gt;
&lt;h2&gt;Image erstellen&lt;/h2&gt;
&lt;p&gt;Programm der Wahl ist hier &lt;a href="https://wiki.ubuntuusers.de/gddrescue/"&gt;ddrescue&lt;/a&gt;. Der Programmaufruf ist dabei simpel:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo ddrescue -n QUELLE ZIEL ddrescue.log
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;QUELLE&lt;/code&gt; ist immer ein Linux-Device, also nach dem Schema &lt;code&gt;/dev/sdX&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ZIEL&lt;/code&gt; kann eine Datei sein; eine andere Partition o.ä. wäre aber auch möglich&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-n&lt;/code&gt; sorgt dafür, dass bei einem Fehler nicht probiert wird, den selben Sektor wiederholt zu lesen. Die Sektoren werden entsprechend im log markiert. Ist ddrescue soweit fertig, kann man die Option entfernen. Erst ohne Option wird versucht, beschädigte Sektoren zu lesen. Letzteres kann aber dauern.&lt;/li&gt;
&lt;li&gt;Über &lt;code&gt;ddrescue.log&lt;/code&gt; weiß ddrescue, welche Sektoren bereits mit welchem Status gelesen wurden. Dadurch ist ddrescue also auch für häufig abbrechende Lesevorgänge geeignet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das ganze habe ich dann noch in eine while-Schleife gepackt. Somit macht &lt;code&gt;ddrescue&lt;/code&gt; weiter, sobald der USB-Stick sich wieder beim Kernel angemeldet hat. Das Ende vom Lied: 15MB an Sektoren sind nicht mehr lesbar. (es war ein Stick mit 16GB) Auch ohne &lt;code&gt;-n&lt;/code&gt; hat sich dieser Wert nur noch um eine einstellige Zahl an 100 kB verbessert.&lt;/p&gt;
&lt;p&gt;Mit einer &lt;em&gt;Kopie des Images&lt;/em&gt; kann man dann weiterarbeiten und Rettungsversuche durchführen, wie man lustig ist. Man hat ja noch das originale Image auf der Platte.&lt;/p&gt;
&lt;h2&gt;Image mounten&lt;/h2&gt;
&lt;p&gt;Zuerst wird via &lt;code&gt;losetup&lt;/code&gt; ein loop-Device erstellt:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo losetup -f -P /path/to/image
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-f&lt;/code&gt; automatisch nächstes, freies loop-Device wählen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-P&lt;/code&gt; Markierung für Partition an loop-Device hinzufügen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In den meisten Fällen wird dadurch &lt;code&gt;loop0&lt;/code&gt; verwendet. Da der Stick nur eine Partition hatte, ist diese entsprechend unter &lt;code&gt;/dev/loop0p1&lt;/code&gt; zu finden.&lt;/p&gt;
&lt;p&gt;Vor dem Mounten ist es zudem sinnvoll einmal &lt;a href="https://wiki.ubuntuusers.de/Dateisystemcheck/#Pruefung-in-der-Konsole"&gt;fsck&lt;/a&gt; über die Partition laufen zu lassen:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo fsck -y /dev/loop0p1
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Durch &lt;code&gt;-y&lt;/code&gt; werden alle automatisch erkennbaren Fehler entfernt. Danach mounten per:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo mount /dev/loop0p1 /mnt/my-recover-mountpoint
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;&lt;code&gt;/mnt/my-recover-mountpoint&lt;/code&gt; ist beliebige wählbar; der Ordner muss einzig vor dem mounten existieren.&lt;/p&gt;
&lt;p&gt;Nach dem mounten gab es noch Probleme mit dem Zeichensatz von Dateinamen. Mir ist unbekannt, ob das Problem schon vorher vorhanden war. Retter in der Not hier: &lt;a href="https://wiki.ubuntuusers.de/Zeichensatz-Konverter/#convmv"&gt;convmv&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Datensichtung&lt;/h2&gt;
&lt;p&gt;Nachdem man jetzt (hoffentlich erfolgreich) auf die Inhalte des Images Zugriff hat, kann man mal schauen, was alles noch so auf dem Stick ist – oder wie kaputt die Daten sind. Man findet zum Beispiel Folgendes:&lt;/p&gt;
&lt;figure&gt;
    &lt;img src="https://c3vo.de/images/Bild_mit_Bitfehler.JPG" alt="JPEG-Bild mit Artefakten, die durch Datenverlust entstanden sind"&gt;

    &lt;figcaption&gt;
    JPEG-Bild nach teilweisem Datenverlust
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Bei dem Bild war es nicht schlimm, da es auf dem Stick nur als Backup lag. Aber es zeigt meiner Meinung nach recht anschaulich, was passiert, wenn Sektoren nicht mehr gelesen werden können.&lt;/p&gt;
&lt;p&gt;Sollte noch mehr kaputt oder nicht auffindbar (Beschädigte &lt;a href="https://en.wikipedia.org/wiki/Inode"&gt;Inode&lt;/a&gt; etc.) sein, helfen Programme wie &lt;a href="https://wiki.ubuntuusers.de/Datenrettung/#PhotoRec"&gt;PhotoRec&lt;/a&gt;. Das Programm eignet sich auch gut, um sofort versehentlich gelöschte Daten wiederherzustellen. Das aber nur als Hinweis am Rand, ich werde hier jetzt nicht genauer darauf eingehen.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;tja, was lernt man daraus?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backups sind immer wichtig. Am besten in mehrfacher Ausführung.&lt;/li&gt;
&lt;li&gt;Vertraue keinem USB-Stick wichtige Daten an. Die sind nur dafür da, eine &lt;em&gt;Kopie&lt;/em&gt; von A nach B zu tragen.&lt;/li&gt;
&lt;li&gt;Im Idealfall kann man noch einige Daten retten. Aber das ist auch reine Glückssache.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wiki.ubuntuusers.de/Datenrettung/"&gt;https://wiki.ubuntuusers.de/Datenrettung/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/file_recovery"&gt;https://wiki.archlinux.org/index.php/file_recovery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://help.ubuntu.com/community/DataRecovery"&gt;https://help.ubuntu.com/community/DataRecovery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Thu, 06 Oct 2016 16:30:00 +0200</pubDate><guid>tag:c3vo.de,2016-10-06:home/daten-von-usb-stick-retten/</guid><category>Datenrettung</category><category>USB-Stick</category><category>uu-planet</category><category>Open Source</category></item><item><title>Kurztipp: vimdiff</title><link>https://c3vo.de/home/kuztipp-vimdiff/</link><description>&lt;p&gt;Eigentlich ein simples Problem: Man hat Text, den mal jemand anderes lesen und Fehler ausmerzen soll. Der Korrekturlesende hat aber kein git, sondern die Änderungsvorschläge kommen einfach per E-Mail. Als Erstes kommen einem graphische Tools wie &lt;a href="https://wiki.ubuntuusers.de/diffuse/"&gt;diffuse&lt;/a&gt; in den Kopf. Aber letzteres bietet leider keine Möglichkeit lange Zeilen umzubrechen (steht aber auf deren &lt;a href="http://diffuse.sourceforge.net/roadmap.html"&gt;TODO&lt;/a&gt;). &lt;/p&gt;
&lt;p&gt;Bliebe natürlich noch das klassische &lt;code&gt;diff&lt;/code&gt;. Aber das manuelle Durchschauen und Übernehmen in die Originaldatei ist dann auch wieder komplizierter. (Alles zugegebenermaßen eigentlich Luxusprobleme ;))&lt;/p&gt;
&lt;p&gt;Lange Rede, kurzer Sinn: &lt;code&gt;vimdiff&lt;/code&gt; kann hier wirklich praktisch sein – gerade wenn man vim sowieso nicht abstoßend findet. Aufruf im simpelsten Fall über&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vimdiff &amp;lt;org&amp;gt; &amp;lt;new&amp;gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;!-- TODO --&gt;

&lt;figure&gt;
  &lt;picture&gt;
    &lt;img src="https://c3vo.de/images/vimdiff.png" alt="Geöffnetes vimdiff mit zwei Spaltenlayout zum Vergleichen der Dateien"&gt;
  &lt;/picture&gt;
&lt;/figure&gt;

&lt;p&gt;Mehr als zwei Dateien kann man auch vergleichen; dementsprechend einfach die Dateie(n) als Argumente hinten dran hängen. Gleichzeitig stehen einem alle Möglichkeiten von vim offen. Hat man zum Beispiel eine LaTex-Datei mit wenig Zeilenumbrüchen, möchte aber wie gesagt nicht auch noch horizontal scrollen, so kann man das automatische Umbrechen folgendermaßen wieder aktivieren:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;windo&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;wrap&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Dann einfach in eine Datei die Änderungen übernehmen und speichern.&lt;/p&gt;
&lt;p&gt;Aber man kann natürlich auch noch eine komplett andere Datei in einem neuen window öffnen, ein anderes theme verwenden etc. Mehr Optionen und Informationen gibt es wie immer in den manpages von vimdiff und vim oder im &lt;a href="https://wiki.ubuntuusers.de/Textdateien_vergleichen/#vimdiff"&gt;ubuntuusers-Wiki&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Sat, 10 Sep 2016 16:00:00 +0200</pubDate><guid>tag:c3vo.de,2016-09-10:home/kuztipp-vimdiff/</guid><category>vim</category><category>diff</category><category>uu-planet</category></item><item><title>HTML/CSS und Base64 kodierte Bilder</title><link>https://c3vo.de/home/base64-kodierte-bilder/</link><description>&lt;h2&gt;Wofür kann man das brauchen?&lt;/h2&gt;
&lt;p&gt;Im normalen Alltag wird man Base64 auf Websiten sicherlich eher wenig
antreffen. Das liegt einfach an dem Nachteil, dass so eingebunde Bilder
oder Daten im Allgemeinen nicht gecached werden und dadurch immer wieder
heruntergeladen werden. Gegebenenfalls ist es sinnvoll, wenn man ein
Bild mit 100%iger Sicherheit nur wirklich ein einziges Mal auf einer
Hauptseite braucht und es dabei so klein ist, dass die HTTP-Anfrage
länger dauert, als das eigentliche Laden. (Aber meist finden sich dann
auch noch mehrere kleine Bilder auf der selben Seite. Warum also kein
Sprite?) Das war es dann meiner Meinung nach auch mit möglichen
Einsatzmöglichkeiten.&lt;/p&gt;
&lt;p&gt;Trotzdem hatte ich letztens erst einen Spezialfall, wo man die Technick
doch wieder gebrauchen kann: Für die &lt;a href="https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#4-errorfile"&gt;Errorfiles eines
haproxys&lt;/a&gt;.
Diese Dateien werden vom Proxy direkt an den Client gesendet, sobald die
Infrastruktur dahinter ggf. komplett weg ist. Ihre Größe (pro Datei) ist
dabei entweder auf 8 oder 16 kB beschränkt. Da bleibt nicht gerade viel
Platz für hübsches Webdesign. Aber es muss auch nicht eine ganz
spartanische HTML-Website ohne jegliches CSS sein. Weiteres Problem
dabei aber: Wenn das Errorfile des Proxy aktiviert wird, ist wie
angedeutet im wort case auch der eigene CDN nicht mehr verfügbar. Also
müssen die Bilder – z.B. ein Logo – direkt ins HTML. (eine &lt;a href="https://c3vo.de/home/web-bildformate/"&gt;Übersicht zu
Bildkompressionen&lt;/a&gt; gab es ja schon
vor Längerem) Das Mittel der Wahl hier:
&lt;a href="https://de.wikipedia.org/wiki/Base64"&gt;Base64&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Ok. Wie geht es?&lt;/h2&gt;
&lt;h3&gt;Konvertieren&lt;/h3&gt;
&lt;p&gt;Unter Linux kann man eine bestehende Datei ganz einfach über den Befehl&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;base64 -w &lt;span class="m"&gt;0&lt;/span&gt; datei.png
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;mit base64 kodieren. Die Ausgabe erfolgt dabei ohne weitere Angaben
direkt auf der Shell. Gut für c&amp;amp;p. Ansonsten einfach in eine Datei
seiner Wahl pipen.&lt;/p&gt;
&lt;p&gt;Die Option &lt;code&gt;-w 0&lt;/code&gt; bewirkt dabei, dass die standardmäßige Begrenzung auf
76 Zeichen pro Zeile aufgehoben ist. Diese Begrenzung mag ganz schön für
E-Mails sein, aber im Quelltext einer HTML-Seite eher weniger. Außerdem
brauchen die Zeilenenden ebenfalls ein wenig zusätzlichen Platz – wenn
zugegebenermaßen auch sehr wenig. (laut dem oben verlinkten
Wikipediaartikel 3%)&lt;/p&gt;
&lt;h3&gt;Einbinden&lt;/h3&gt;
&lt;p&gt;Über ein &lt;code&gt;img&lt;/code&gt;-Tag lässt sich die erzeugte Zeichenkette relativ einfach
über das folgende Gerüst nutzen:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;data:image/png;base64,[data-String]&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;&lt;code&gt;image/png&lt;/code&gt; ist dabei nichts anderes als der für das Dateiformat
entsprechende
&lt;a href="http://www.iana.org/assignments/media-types/media-types.xhtml"&gt;Mime-type&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Über CSS, also vornehmlich &lt;code&gt;background:&lt;/code&gt; und &lt;code&gt;background-image:&lt;/code&gt;, lässt
es sich sehr ähnlich einbinden:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nc"&gt;.xy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;background-image&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="sx"&gt;url(&amp;#39;data:image/png;base64,[data-String]&amp;#39;)&lt;/span&gt;&lt;span class="p"&gt;;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Das war es auch schon. Ganz nebenbei weiß man jetzt auch, wie die
meisten E-Mail-Anhänge funktionieren und warum das nicht gerade die
effizientest Methode ist, (größere) Daten zu übertragen…&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAABhlBMVEUAAAAJCAQqJQ4VEgcCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD53VaIGEb43FVpWyffxk1jEzT9/P3s0VH2vNbp6OlVUj6UhDPLtEbCrEKYhzR5bCptYSU/OBX02VRgXU3QuUhwZCllXCbh4OHv1FLdxEyIeS8FBwfXv0p4FT1RTzuHeC5/ci5qXiRpXSQwGhghHQsgHAv49/jirMS6ubqBgYLw1VOSJlLmzE/jyk6GF0W9qEKgjjefjTdURjZkXTFdUiQ+DiLy8fLt7O3T0tPyttHrq8fYj6+6jKCuUXimRW1ubmtlZmRbXFxmZFtKS0zGsEW4pECsmjxkXjyolTpvFDlzaTNYTDB0aStOECpIQBw4Jhra2tvGxsfTobjdmLasrK2pgZOyV32tT3abS21tVV5TPUVBQkJWUj5ZJzxxFTtAQDZdEjFeUy1IDydWTiNLQB4cHh42DR5BLh1AMRs1MRZf3ynGAAAAGHRSTlMA+v763NTQjoxYKh0CzBe7upmBgGloyxbR3Ql3AAACG0lEQVQoz2WTd3uiQBDGsffYc5s9AxoUFQR776eesSSX3nu93nu/b34DGBLM7599dl9mnmFmXkLBZjE5DXq9wWmy2IhprB6jLl7OMEymHNcZPVaVaPc5tNEIhRGAqUhU6/DZb9UZsyYWxkgBh2Ma84yiums0RiowXXNPdLu5tojusVg3y/l9GjpxePBICcwdJFJw0hq/VLMjVuK2vwg5WU1fFPa48SF8FnOI9Xu0/E4y+SErSPGU0E422tl/fYTCWi90w8iPWuTKr6zmBAGD7Qa5vJvNCizCUaONsOhOuBBJtvd3z6B69qxFkuTL/Z1CGqGIzkKY4mFuGZ6erIwgO3WcJMVLYy8Bl7iJcJbT3NMQ0BqxCKWOn4VEkhzIuOIiDBlqvAB8LGQwvJQKCxI/ulBI0UDoGdQLSKSkygMTEMDoQYaY+yBZhuQoFxUeTnOEpORQGk7R1a/zai7HrFyaKU6h3HV+Tk3+T0/+MYsugqif89PytdwWaGoU49LSY7V8+rcrNxVGEkb96qn83Nna3OrAeSmw4kjkgWLMy+Gb66vB1Rev5z5Xj2Cgs9bJOqDE1XfQ36wFRdbe/r7A0jooy9S/Wsp31oMSG+/5LhrAMt2sYp3GCb76aaPZbD5/9e6cZjFddz9QL3Kk9G04HJ7zg4C0yIoK+f2SDVK9dIBiRRvM+u1qE3nBRJUiwxQrYCKv2kQTC7pEC7ruWvA/FvNveFlOCE0AAAAASUVORK5CYII=" /&gt;&lt;/p&gt;
&lt;p&gt;(ja, das Smiley ist ausnahmsweise per base64 eingebunden)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Fri, 06 Feb 2015 23:30:00 +0100</pubDate><guid>tag:c3vo.de,2015-02-06:home/base64-kodierte-bilder/</guid><category>HTML</category><category>CSS</category><category>Web</category><category>Open Source</category><category>uu-planet</category></item><item><title>Automatisches Übersetzen von LaTex-Quellcode</title><link>https://c3vo.de/home/automatisches-ubersetzen-von-latex-quellcode/</link><description>&lt;p&gt;Schreibt man gerade an einem LaTex-Dokument, schaut der Workflow
eigentlich immer relativ gleich aus: Tex-Quellcode in einem Texteditor
schreiben, nach einer Änderung Quelltext in zum Beispiel PDF übersetzen
und das Ergebnis anschließend anschauen. Das häufige hin und her
Wechseln zwischen Terminal und den beiden anderen Fenstern kann gerade
bei längerem Arbeiten nerven. Eine eigene Entwicklungsumgebung finde ich
für LaTex dagegen auch übertrieben. Ich präferiere zudem auch den
Texteditor meiner Wahl (in meinem Fall Geany, kann aber freilich auch
vim, sublime etc. sein) Meistens führt man im Terminal zum
LaTex-Kompilieren folgenden Befehl aus:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;pdflatex Beispiel-datei_xyz.tex
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Viel angenehmer ist es in meinen Augen aber, wenn die tex-Datei bei
jeder Änderung automatisch in eine pdf übersetzt wird. Das geht einfach
mit folgenden Befehl und mithilfe von &lt;a href="http://wiki.ubuntuusers.de/inotify"&gt;inotify (Installation ist dort
ebenfalls beschrieben)&lt;/a&gt;:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; inotifywait -e modify *.tex&lt;span class="p"&gt;;&lt;/span&gt; latexmk -pdf&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Wenn man BibTex verwendet, kann man neben &lt;em&gt;*.tex&lt;/em&gt; auch noch ein
&lt;em&gt;*.bib&lt;/em&gt; hinzufügen.&lt;/p&gt;
&lt;p&gt;Damit kann es höchstens passieren, dass durch einen Syntaxfehler das
Kompilieren gestoppt wird. Dadurch kann man gerade bei größeren
Bildschirmen Editor- und PDF-Reader immer nebeneinander im Vordergrund
behalten – ein ständiges Wechseln zwischen Terminal und Editor entfällt.
Verwendet man als PDF-Reader zum Beispiel evince, wird die PDF bei jeder
Änderung automatisch neu geladen. Winwin-Situation – und ein Stückchen
angenehmeren Workflow. ;)&lt;/p&gt;
&lt;h2&gt;Update: Alternative ohne inotifywait&lt;/h2&gt;
&lt;p&gt;Per
&lt;a href="//c3vo.de/home/automatisches-ubersetzen-von-latex-quellcode#readComments"&gt;Kommentar&lt;/a&gt;
hab ich die Information bekommen, dass latexmk auch von Haus aus eine
sehr ähnliche Funktion bietet. Erstmal Danke für den Hinweis! Denn ein
einfaches&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;latexmk -pdf -pvc codierung.tex
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;macht die gleiche Arbeit wie ein der Befehl mit &lt;em&gt;inotifywait&lt;/em&gt;. Einzige
Einschränkung, die es nach Manpage gibt:&lt;/p&gt;
&lt;p&gt;Zudem wird standardmäßig Adobe Reader (der
&lt;a href="//ikhaya.ubuntuusers.de/2014/10/06/mv-acroread-dev-null/"&gt;bekanntermaßen&lt;/a&gt;
nicht mehr für Linux existiert) für die automatische Vorschau verwendet.
Um das zu ändern, folgendes im Terminal ausführen:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$pdf_previewer = &amp;quot;start evince&amp;quot;;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.latexmkrc
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Ich habe hier beispielhaft einfach mal evince eingetragen. Man kann
natürlich auch Okular oder einen ganz anderen PDF-Reader seiner Wahl
eintragen. Mehr Infos gibt es in der &lt;a href="http://man.cx/latexmk"&gt;Manpage von
latexmk&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Mon, 20 Oct 2014 09:15:00 +0200</pubDate><guid>tag:c3vo.de,2014-10-20:home/automatisches-ubersetzen-von-latex-quellcode/</guid><category>uu-planet</category><category>LaTex</category><category>Open Source</category></item><item><title>print.css</title><link>https://c3vo.de/home/printcss/</link><description>&lt;p&gt;Warum sollte man heute immer noch ein print.css, also ein Stylesheet
damit die Website beim Drucken schön aussieht, anbieten?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Es gibt immer noch Orte oder Leute, die kein Internet haben.&lt;/li&gt;
&lt;li&gt;Es ist auch ganz praktisch, um aus einer Website eine pdf-Datei zu
    erstellen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sucht man im Internet nach passenden Artikeln, findet sich wiedermal
eine schiere Masse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.thestyleworks.de/tut-art/layout_print.shtml"&gt;The Styleworks – „Druck-Layouts mit
    CSS“&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2011/11/24/how-to-set-up-a-print-style-sheet/"&gt;Smashin Magazine – „How To Set Up A Print Style
    Sheet“&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.webmasterpro.de/coding/article/css-fuer-den-druck.html"&gt;Webmasterpro.de – „CSS für den
    Druck“&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.webdesign-in.de/mts/print-css-und-datei-drucken/"&gt;WebDesign by mts – „Anleitung für die Print.css, denn Datei →
    Drucken ist nach wie vor sehr beliebt – das
    Drucklayout“&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.peter-rozek.de/publikationen/css-design-grundlage-druckversion.php"&gt;Peter Rozek – „CSS-Design: Grundlagen
    Druck-Stylesheets“&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ich finde allesamt lesewürdig, allerdings dauert das doch ein wenig.
Deswegen habe ich mal ein stichpunktartige Liste erstellt, was man alles
anpassen sollte: (das ist mehr eine Gedächtnisstütze, wer ausführlichere
Beschreibungen will → verlinkte Artikel lesen)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;allgemeines Seitenlayout  &lt;ul&gt;
&lt;li&gt;&lt;em&gt;margin&lt;/em&gt;,&lt;em&gt;padding&lt;/em&gt; entfernen&lt;/li&gt;
&lt;li&gt;statt &lt;em&gt;min-midth&lt;/em&gt; oder &lt;em&gt;max-width&lt;/em&gt; generell &lt;em&gt;width: 100%&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;für Druck unnötige Elemente verstecken mit &lt;em&gt;display: none&lt;/em&gt;&lt;ul&gt;
&lt;li&gt;betrifft Navigation, Header oder Footer&lt;/li&gt;
&lt;li&gt;„interaktive Elemente“ wie &lt;em&gt;video&lt;/em&gt;, &lt;em&gt;audio&lt;/em&gt;, &lt;em&gt;embed&lt;/em&gt;, object&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Schriften&lt;ul&gt;
&lt;li&gt;nur schwarze oder dunkelgraue Schriftfarbe&lt;/li&gt;
&lt;li&gt;serifen-Schrift statt sans-serife → bessere Lesbarkeit&lt;/li&gt;
&lt;li&gt;Schriftgröße z.B. auf 12 pt setzten (pt ist wegen variablen
    Druckerauflösung zu bevorzugen)&lt;/li&gt;
&lt;li&gt;Hintergrundfarben entfernen, stattdessen z.B. farbige Umrahmungen
mit 1pt oder 2pt Dicke&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Links sind auf Papier nicht klickbar; zwei Möglichkeiten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;per CSS &lt;em&gt;:after&lt;/em&gt; href-Attribute hinter den Text ausgeben&lt;br /&gt;
Beispielbasisimplementierung&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:after&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;[&amp;quot;&lt;/span&gt;&lt;span class="n"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;href&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;]&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;90%&lt;/span&gt;&lt;span class="p"&gt;;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.v2.easy-designs.net/code/footnoteLinks/index.php"&gt;per JavaScript Fußnoten
erstellen&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Bilder&lt;ul&gt;
&lt;li&gt;maximale Breite und Höhe einstellen, z.B. 500px → verbraucht
   weniger Tinte und erhält Lesbarkeit&lt;/li&gt;
&lt;li&gt;background-images (via CSS) werden von den Browsern
   standardmäßig nicht gedruckt! (nur änderbar über Einstellungen
   des Clients, nicht CSS)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Umbrüche verschönern (unterstützt aber leider nicht jeder Browser)&lt;ul&gt;
&lt;li&gt;&lt;a href="http://css-tricks.com/almanac/properties/w/widows/"&gt;widows&lt;/a&gt; und
&lt;a href="http://css-tricks.com/almanac/properties/o/orphans/"&gt;orphans&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://css-tricks.com/almanac/properties/p/page-break/"&gt;page-break&lt;/a&gt;
Damit man auch den Unterschied zwischen &lt;em&gt;overflow: auto&lt;/em&gt; und
ohne wrapping sieht, hab ich hier einen &lt;a href="https://c3vo.de/article_addition/test_word_wrapper.html"&gt;kleinen
Vergleich&lt;/a&gt;
gebastelt.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text vollständig lesbar machen (betrifft beispielsweise &lt;em&gt;pre&lt;/em&gt;)&lt;br /&gt;
    Lösungen heißen word-wrap und white-space, ein vollständig
    kugelsicherer Codeblock findet sich auf
    &lt;a href="http://css-tricks.com/snippets/css/make-pre-text-wrap/"&gt;CSS-Tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Quelle ggf. mit Lizenzhinweis ans Ende des Ausdrucks&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ob man das Ganze dann letztendlich von Grund auf neu baut oder
vorhandene Regeln überschreibt, bleibt jedem selbst überlassen. Ebenso,
ob man das in einen eigene CSS-Datei packt und via&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;formate.css&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;media=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;print&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;einbindet oder einfach&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="nt"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt; &lt;span class="nt"&gt;Druck-CSS&lt;/span&gt; &lt;span class="nt"&gt;hierher&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;verwendet. Nur eine Anmerkung: Die allermeisten Browser laden
automatisch ein Stylesheet mit media="print" – nach der Regel „man
könnte es ja ggf. drucken wollen“.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Mon, 22 Sep 2014 10:42:00 +0200</pubDate><guid>tag:c3vo.de,2014-09-22:home/printcss/</guid><category>CSS</category><category>Web</category><category>Open Source</category></item><item><title>Ein Blick auf Ghost</title><link>https://c3vo.de/home/ghost/</link><description>&lt;p&gt;Ghost, eine Bloggingsoftware, die erst durch
&lt;a href="https://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform"&gt;Kickstarter&lt;/a&gt;
so richtig entstand, bescheiden ist („Just a Blogging Platform“) und auf
Node.js aufsetzt. Gerade der letzte Punkt mag zusammen mit dem etwas
überflüssig erscheinenden
&lt;a href="https://s3.amazonaws.com/ksr/assets/000/511/606/53cb7cffa27c89a43bc91b40f604f7e2_large.jpg?1365807289"&gt;Dashboard&lt;/a&gt;
den ein oder anderen skeptisch werden lassen. Mir ging es genauso. Nach
der &lt;a href="http://t3n.de/news/ghost-blog-release-party-497115/"&gt;Offenlegung&lt;/a&gt;
wurde das „CMS“ von mir gekonnt ignoriert und einfach links liegen
gelassen. Zu unrecht? Mittlerweile hab ich mir Ghost einmal angeschaut
und vom aktuellen Entwicklungsstand überzeugt. Vorweg: Das Dashboard
&lt;a href="https://github.com/TryGhost/Ghost/wiki/Planned-Features#where-is-the-dashboard"&gt;existiert noch
nicht&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Auf die Installation möchte ich in diesem Blogpost gar nicht näher
eingehen – denn diese Arbeit wurde mir bereits abgenommen. Stattdessen
verlinke ich auf Anleitungen: Einmal die &lt;a href="http://docs.ghost.org/de/installation/"&gt;offizielle
Anleitung&lt;/a&gt; von Ghost (auf
Deutsch). Daneben gibt es für die Ubernauten unter euch ebenfalls einen
Link aufs &lt;a href="https://wiki.uberspace.de/cool:ghost"&gt;Wiki, Untersektion
„cool“&lt;/a&gt;. Eine größere Hürde wird
es ggf. darstellen, dass der eigene Hoster nicht Node.js unterstützt.
Das wiederum setzt Ghost aber auf jeden Fall voraus.&lt;/p&gt;
&lt;h2&gt;Der erste Eindruck&lt;/h2&gt;
&lt;figure&gt;
    &lt;picture&gt;
        &lt;!--TODO
        &lt;source media="(min-width: 450px)" src="https://c3vo.de/images/ghost/mid/Home.png"&gt;
        --&gt;
        &lt;img src="https://c3vo.de/images/ghost/small/Home.png" alt=""&gt;
    &lt;/picture&gt;

    &lt;figcaption&gt;
    So sieht die Website mit dem Template frisch nach der Installation aus.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Hat man die Installation hinter sich, kommt der erste Blick auf das
Standardtheme. Kurz: Es gefällt mir. Im Allgemeinen nicht sehr
aufdringlich, sondern auf das wichtigste hin konzentriert – nämlich den
Einträgen. Bei der Schrift wurde ebenfalls ein bisschen geschraubt. Der
Gesamteindruck: Minimalistisch durch das dominierende Grau oder Schwarz,
aber doch schön anzusehen. In Summe also ganz so wie ich das mag. Wem
das Theme überhaupt nicht gefällt, kann natürlich auch sein eigenes
&lt;a href="http://docs.ghost.org/de/themes/"&gt;bauen&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;
    &lt;picture&gt;
    &lt;!-- TODO
        &lt;source media="(min-width: 450px)" srcset="{filename}/images/ghost/mid/Login.png"&gt;
        --&gt;
        &lt;img src="https://c3vo.de/images/ghost/small/Login.png" alt=""&gt;
    &lt;/picture&gt;

    &lt;figcaption&gt;
    Das Eingangstor jedes ghost-Besitzers.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;In die Administration gelangt man unter
\&amp;lt;eigenen-domain.example&gt;&lt;em&gt;/ghost&lt;/em&gt;. Erklärt wird das auch nocheinmal in
dem standardmäßig ersten und einzigen Post. In der Verwaltung ein sehr
ähnliches Bild: Keine große Ablenkung in den Einstellungen durch eine
Masse an Optionen, sondern man beschränkt sich hier ebenfalls auf das
Wesentliche. Manchen mag das zu wenig Möglichkeiten bieten, persönlich
finde ich das so perfekt.&lt;/p&gt;
&lt;figure&gt;
    &lt;picture&gt;
        &lt;!-- TODO
        &lt;source media="(min-width: 450px)" srcset="{filename}/images/ghost/mid/Admin-Start.png"&gt;
        --&gt;

        &lt;img src="https://c3vo.de/images/ghost/small/Admin-Start.png" alt=""&gt;
    &lt;/picture&gt;

    &lt;figcaption&gt;
        Nach dem Login begrüßt einen ghost mit diesem Bildschirm.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;
    &lt;picture&gt;
        &lt;!--TODO
        &lt;source media="(min-width: 450px)" srcset="{filename}/images/ghost/mid/Einstellungen-ges.png"&gt;
        --&gt;
        &lt;img src="https://c3vo.de/images/ghost/small/Einstellungen-ges.png" alt=""&gt;
    &lt;/picture&gt;

    &lt;figcaption&gt;
        Auf gerade mal zwei Seiten sind alle Einstellungen verteilt.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Mein Lieblingsteil von Ghost bleibt aber ungeschlagen das Herzstück
jedes Blogs: &lt;strong&gt;der Editor&lt;/strong&gt;. Man erreicht ihn, indem man zuerst in der
linken Liste einen Artikel auswählt (frisch nach der Installation ist da
nur ein einziger ;) ) und danach auf den Stift rechts oben klickt. Dabei
wird nicht auf einen
&lt;a href="https://de.wikipedia.org/wiki/WYSIWYG"&gt;WYSIWYG&lt;/a&gt;-Editor oder blankes
HTML gesetzt, sondern das einfachere
&lt;a href="https://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt;. Als
Besonderheit wird der Bildschirm dabei in zwei Hälften aufgeteilt: Auf
der linken ist die Markdowneingabe, auf der rechten Seite sieht man eine
Live-Vorschau des Geschriebenen. Man erkennt also Syntaxfehler sofort
beim Schreiben. Scrollt man im Editor, scrollt die Vorschau automatisch
mit, sodass immer der aktuelle Inhalt zu sehen ist. Schreibt man in
Markdown einen „Bildtag“, kann man das Bild in der Livevorschau einfach
per Drag&amp;amp;Drop hochladen. Tags finden man ebenso in dieser Ansicht; sie
befinden sich in einer unteren Leiste.&lt;/p&gt;
&lt;figure&gt;
    &lt;picture&gt;
        &lt;!-- TODO
        &lt;source media="(min-width: 450px)" srcset="{filename}/images/ghost/mid/Editor-desktop.png"&gt;
        --&gt;
        &lt;img src="https://c3vo.de/images/ghost/small/Editor-desktop.png" alt=""&gt;
    &lt;/picture&gt;

    &lt;figcaption&gt;
        Mardowneditor (links) mit Livevorschau. Rechts kann man zudem ein Bild
        per Drag&amp;Drop hochladen.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Bei kleinen Bildschirmen – zum Beispiel Smartphones – wandert mangels
Breite der Editor und Vorschau in je einen Tab. Mal eben einen Minipost
unterwegs tippen oder Rechtschreibfehler korrigieren, dem steht nichts
im Weg.&lt;/p&gt;
&lt;figure&gt;
    &lt;picture&gt;
        &lt;!-- TODO
        &lt;source media="(min-width: 450px)" srcset="{filename}/images/ghost/mid/Editor-mobile.png"&gt;
        --&gt;
        &lt;img src="https://c3vo.de/images/ghost/small/Editor-mobile.png" alt=""&gt;
    &lt;/picture&gt;

    &lt;figcaption&gt;
        Auf dem Smartphone bekommt der Markdowneditor Tabs.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Beim Editor hat wirklich jemand mitgedacht und auch auf kleinste Details
geachtet. Großes Kompliment, das macht Ghost meiner Meinung nach aus!&lt;/p&gt;
&lt;h2&gt;Was hält dich dann vom Wechsel ab?&lt;/h2&gt;
&lt;p&gt;Allerdings gibt es für mich zwei wichtige, aber eigentlich kleinere
Punkte, die Ghost momentan noch nicht erfüllt:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Kommentarfunktion&lt;/strong&gt;: Ghost hat an sich keine eingebaute
    Kommentarfuntion. Stattdessen wird momentan auf externe Dienste wie
    &lt;a href="https://disqus.com/"&gt;Disquis&lt;/a&gt;
    &lt;a href="https://help.disqus.com/customer/portal/articles/1454924-ghost-installation-instructions"&gt;verwiesen&lt;/a&gt;.
    Auf die Kommentarfunktion will ich aber nicht verzichten,
    gleichzeitig aber nach Möglichkeit auch nicht zu einem externen
    amerikanischen Dienst auslagern (ihr wisst schon NSA und so…).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Feeds pro Tag&lt;/strong&gt;: Der Blogfeed, zu finden unter
    \&amp;lt;eigenen-domain.example&gt;&lt;em&gt;/rss&lt;/em&gt;, enthält schon mal den kompletten
    Artikel. Das rechne ich auch hoch an. Einerseits da man dann Artikel
    direkt im Feedreader lesen kann. Andererseits weil es zum Beispiel
    für den ubuntusuers.de-Planeten Voraussetzung für eine Aufnahme ist.
    Allerdings bringt es für den Planeten relativ wenig, wenn dort auch
    komplette irrelevante Artikel landen. Denn Feeds, kategorisiert pro
    Tag, gibt es momentan nicht.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Rosige Zukunft&lt;/h2&gt;
&lt;p&gt;Beide Probleme brennen eigentlich förmlich danach, mit einfachen
Erweiterungen gelöst zu werden. Allerdings
&lt;a href="https://github.com/TryGhost/Ghost/milestones"&gt;kommt&lt;/a&gt; so eine API
mindestens erst Ende August mit Version 0.6. Wer die Ziele ausführlicher
erläutert haben möchte, findet ebenfalls eine
&lt;a href="https://github.com/TryGhost/Ghost/wiki/Roadmap"&gt;Roadmap&lt;/a&gt;. Allgemein
finde ich es schön anzusehen, wie Ghost kontinuierlich weiterentwickelt
wird. Ich werde also einfach später im Jahr Ghost nochmals testen und
sehen, ob es die beschriebenen Probleme immer noch gibt.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Ghost ist momentan eine kleines, fast minimalistisches Stück Software,
das aber alles bietet, was man zum einfachen Bloggen braucht. Support
gibt es über ein gutes, mehrsprachiges
&lt;a href="http://docs.ghost.org/de/"&gt;Handbuch&lt;/a&gt; oder
&lt;a href="https://ghost.org/forum/"&gt;Forum&lt;/a&gt;. Daneben wird Ghost &lt;a href="https://github.com/TryGhost/Ghost"&gt;stetig
weiterentwickelt&lt;/a&gt; und kann ihn
Zukunft nur noch besser werden. Ist das nicht toll? :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Thu, 07 Aug 2014 22:20:00 +0200</pubDate><guid>tag:c3vo.de,2014-08-07:home/ghost/</guid><category>uu-planet</category><category>Web</category><category>CMS</category><category>Open Source</category></item><item><title>Onlinebanking mit remasterten Ubuntu</title><link>https://c3vo.de/home/onlinebanking-mit-remasterten-ubuntu/</link><description>&lt;h2&gt;Ansprüche&lt;/h2&gt;
&lt;p&gt;Die grundsätzlichen Ansprüche an das Banking-ISO-Image kann man in einem
Satz zusammenfassen: Möglichst sicher, aber dennoch einfach zu bedienen.&lt;/p&gt;
&lt;p&gt;Zum Komfort gehört meiner Meinung nach, dass sich das System automatisch
mit dem Internet verbindet und automatisch der Browser nach dem Starten
öffnet sowie auf die eigene Bankhompage navigiert.&lt;/p&gt;
&lt;p&gt;Wegen der Sicherheit sollte weiterer Ballast in Form von Programmen
möglichst vermieden werden – bei einer geringeren Anzahl Anwendungen
wird die Anzahl an möglichen Exploits reduziert. Außerdem sollte
jegliche Software an einem Ort einfach upzudaten sein.&lt;/p&gt;
&lt;p&gt;Das sind alles Punkte, die eine gängige Linuxdistribution mit
Paketverwaltung erfüllt. Ein BSD oder ähnliches wäre freilich auch
denkbar. Wegen dem langen Supportzeitraum habe ich mich im Folgenden für
ein LTS-Ubuntu entschieden.&lt;/p&gt;
&lt;h2&gt;Skript zum Bauen&lt;/h2&gt;
&lt;p&gt;Um das ISO zu bauen, habe ich mir ein Shellskript gebastelt. Große Teile
sind aus der Anleitung &lt;a href="http://wiki.ubuntuusers.de/LiveCD_manuell_remastern"&gt;„LiveCD manuell remastern“ aus dem
ubuntuusers.de-Wiki&lt;/a&gt;
entnommen. Weitere Informationen finden sich im &lt;a href="https://help.ubuntu.com/community/LiveCDCustomization"&gt;englischen
Ubuntu-Wiki&lt;/a&gt;.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# Copyright (c) 2014 Christoph Volkert (http://c3vo.de)&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# parts used from http://wiki.ubuntuusers.de/LiveCD_manuell_remastern&lt;/span&gt;
&lt;span class="c"&gt;# for more information (in German) see  &lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;

wget -nc http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04.1-desktop-amd64.iso
mount -o loop ubuntu-12.04.1-desktop-amd64.iso /mnt
mkdir -p work/&lt;span class="o"&gt;{&lt;/span&gt;livecd,old,new&lt;span class="o"&gt;}&lt;/span&gt;
chmod -R u+w work/livecd
&lt;span class="nb"&gt;cd &lt;/span&gt;work
cp -a /mnt/. livecd/
mount -t squashfs -o loop,ro /mnt/casper/filesystem.squashfs old
dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/zero &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ubuntu-fs.ext2 &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1M &lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;5120
mke2fs -F ubuntu-fs.ext2
mount -o loop,rw ubuntu-fs.ext2 new
rm -rf new/lost+found
cp -a old/. new/
umount old
umount /mnt
mount -t proc -o &lt;span class="nb"&gt;bind&lt;/span&gt; /proc new/proc
mount -o &lt;span class="nb"&gt;bind&lt;/span&gt; /dev/pts new/dev/pts
chroot new dpkg-divert --local --rename --add /sbin/initctl
chroot new ln -s /bin/true /sbin/initctl

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="s2"&gt;Autostart&lt;/span&gt;
&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="nv"&gt;ubuntu_home&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;./new/home/ubuntu

mkdir -p &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ubuntu_home&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.config/autostart/

cat &amp;lt;&amp;lt; &lt;span class="s2"&gt;&amp;quot;__EOF__&amp;quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ubuntu_home&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.config/autostart/numlockx_on.desktop
&lt;span class="o"&gt;[&lt;/span&gt;Desktop Entry&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="nv"&gt;Name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Ziffernblock anschalten
&lt;span class="nv"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Application
&lt;span class="nv"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;numlockx on
&lt;span class="nv"&gt;Terminal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
&lt;span class="nv"&gt;NoDisplay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True
__EOF__


cat &amp;lt;&amp;lt; &lt;span class="s2"&gt;&amp;quot;__EOF__&amp;quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ubuntu_home&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.config/autostart/firefox_start.desktop
&lt;span class="o"&gt;[&lt;/span&gt;Desktop Entry&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="nv"&gt;Name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Firefox Onlinebanking
&lt;span class="nv"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Application
&lt;span class="nv"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;firefox http://www.example.org/bank
&lt;span class="nv"&gt;Terminal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
&lt;span class="nv"&gt;NoDisplay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True
__EOF__

chown -R 999:999 &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ubuntu_home&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;#echo &amp;quot;&lt;/span&gt;
&lt;span class="c"&gt;#Networking (WLAN)&lt;/span&gt;
&lt;span class="c"&gt;#&amp;quot;&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#mkdir -p ./new/etc/NetworkManager/system-connections&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#NetworkSource=/etc/NetworkManager/system-connections/WLAN-XXXX&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#cp ${NetworkSource} ./new${NetworkSource}&lt;/span&gt;
&lt;span class="c"&gt;#chown root ./new${NetworkSource}&lt;/span&gt;
&lt;span class="c"&gt;#chgrp root ./new${NetworkSource}&lt;/span&gt;
&lt;span class="c"&gt;#chmod 400 ./new${NetworkSource}&lt;/span&gt;

cat &amp;lt;&amp;lt; &lt;span class="s2"&gt;&amp;quot;__EOF__&amp;quot;&lt;/span&gt; &amp;gt; new/etc/apt/sources.list
deb http://de.archive.ubuntu.com/ubuntu precise main restricted universe multiverse
&lt;span class="c"&gt;#deb-src http://de.archive.ubuntu.com/ubuntu precise main restricted universe multiverse&lt;/span&gt;

deb http://de.archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse
&lt;span class="c"&gt;#deb-src http://de.archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse&lt;/span&gt;

deb http://de.archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse
&lt;span class="c"&gt;#deb-src http://de.archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse&lt;/span&gt;

&lt;span class="c"&gt;#deb http://de.archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse&lt;/span&gt;
&lt;span class="c"&gt;#deb-src http://de.archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse&lt;/span&gt;

&lt;span class="c"&gt;## This software is not part of Ubuntu, but is offered by third-party&lt;/span&gt;
&lt;span class="c"&gt;## developers who want to ship their latest software.&lt;/span&gt;
&lt;span class="c"&gt;# deb http://extras.ubuntu.com/ubuntu precise main&lt;/span&gt;
__EOF__

chroot new apt-get update
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="s2"&gt;Remove unneeded programs&lt;/span&gt;
&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

chroot new apt-get -y --purge autoremove rhythmbox* gwibber* telepathy* ubuntuone* usb-creator-common transmission-* ubiquity* simple-scan software-center unity-scope-* unity-lens-music unity-lens-video thunderbird* xdiagnose deja-dup gparted gnome-disk-utility

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="s2"&gt;Update Kernel&lt;/span&gt;
&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

chroot new apt-get remove -y linux-generic* linux-image* linux-headers*
chroot new apt-get install -y linux-image-generic linux-headers-generic linux-image-generic
chroot new apt-get -y install chromium-browser numlockx language-pack-de language-pack-gnome-de
chroot new apt-get dist-upgrade -y
chroot new apt-get clean

chroot new rm /sbin/initctl
chroot new dpkg-divert --local --rename --remove /sbin/initctl
cp new/boot/vmlinuz* livecd/casper/vmlinuz
cp new/boot/initrd.img* livecd/casper/initrd.lz
chroot new dpkg-query -W --showformat&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;Package&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;Version&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;\n&amp;quot;&lt;/span&gt; &amp;gt; livecd/casper/filesystem.manifest 
dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/zero &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;new/unused_space
rm new/unused_space
rm livecd/wubi.exe
rm livecd/casper/filesystem.squashfs

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="s2"&gt;Change locales to German&lt;/span&gt;
&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;de&amp;quot;&lt;/span&gt; &amp;gt; livecd/isolinux/lang

umount new/proc
umount new/dev/pts
mksquashfs new/. livecd/casper/filesystem.squashfs -comp xz
umount new
find livecd -type f -print0 &lt;span class="p"&gt;|&lt;/span&gt;xargs -0 md5sum &lt;span class="p"&gt;|&lt;/span&gt; tee livecd/md5sum.txt
genisoimage -o ownbanking-ubuntu-12.04-desktop-amd64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size &lt;span class="m"&gt;4&lt;/span&gt; -boot-info-table -r -V &lt;span class="s2"&gt;&amp;quot;own Banking Ubuntu 12.04 Remix&amp;quot;&lt;/span&gt; -cache-inodes -J -l livecd
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Da sich durch die Zeilennummerierung das Skript relativ schlecht
kopieren lässt, nochmal ein &lt;a href="https://c3vo.de/article_addition/create_internet_banking.sh"&gt;direkter
Downloadlink&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Das Skript an sich ist zu großen Teilen meiner Meinung nach
selbsterklärend. Sollte dennoch etwas unklar sein, die entsprechende
Frage einfach in den Kommentaren stellen.&lt;/p&gt;
&lt;p&gt;Eine Stelle, bei der man am besten selbst kurz Hand anlegt, ist die
Netzwerkkonfiguration (Z. 63 bis 74). In Zeile 69 wird die Quelldatei
festgelegt, aus dem die Konfiguration vom lokalen (Image-erstellenden)
Rechner kopiert wird. Den Pfad entsprechend seines eigenen Netzwerks
anpassen. Anschließend den gesamten Block auskommentieren. Außerdem wird
vorausgesetzt, dass man den
&lt;a href="http://wiki.ubuntuusers.de/NetworkManager/NetworkManager_ohne_GUI"&gt;NetworkManager&lt;/a&gt;
benutzt. Daneben sollte man in Zeile 56 die URL der eigenen Bankwebsite
eintragen. Weitere interessante Zeilen zum individuellen Anpassen sind
vielleicht, welche Programme installiert (Z. 107) bzw. deinstalliert (Z.
99) werden.&lt;/p&gt;
&lt;p&gt;Danach das Skript mit Rootrechten ausführen und den Schaffungsprozess
damit starten.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo bash create_internet_banking.sh
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Wer lieber eine Logdatei statt lange Ausgaben im Terminal haben möchte,
führt Folgendes aus:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo bash create_internet_banking.sh &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&amp;gt; create_internet_banking.log
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Der gesamte Prozess dauert ungefähr eine halbe Stunde, in der
stellenweise Festplatte und / oder Prozessor schön ausgelastet werden.
Um die Software zu aktualisieren, Skript einfach erneut ausführen. Auf
einen USB-Stick bekommt man das erhaltene ISO-Image zum Beispiel mit dem
&lt;a href="http://wiki.ubuntuusers.de/Live-USB#USB-Creator"&gt;USB-Creator&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Bootmedium&lt;/h2&gt;
&lt;p&gt;Um wirklich sicher zu gehen, dass keinerlei Malware bei zukünftigen
Starts das Linuxsystem befällt, führt man das erstellte Image von einem
schreibgeschützten Medium aus.&lt;/p&gt;
&lt;p&gt;Die offensichtlichste Möglichkeit wäre eine CD zu brennen. Allerdings
muss man diese dann bei jedem Update erneut brennen, was zu ziemlich
viel Müll führt. (Die Möglichkeit das Medium nicht abzuschließen und
dadurch Updates durchzuführen, macht die CD/DVD zu einem beschreibbaren
Medium, was am Ziel vorbeiführt.) Zudem ist bei CDs die
Speicherkapazität mit 700MB relativ knapp. Dadurch muss man auf eine DVD
ausweichen. Gerade letztere sind mir auf Dauer jedoch zu teuer.&lt;/p&gt;
&lt;p&gt;Was kann uns hier helfen? Wiederbeschreibarer Flashspeicher mit
Schreibschutz natürlich! Der Vorteil ist klar: Man kann einfach Updates
aufspielen, aber wenn man das Medium öfter ohne Reflashen ausführt,
verändert sich nichts (richtige Schalterstellung vorausgesetzt).
SD-Karten zum Beispiel sind da eine Möglichkeit. Wobei man bei ihnen
aufpassen muss, dass der Schreibschutz auch wirklich funktioniert. Also
am besten einfach testen.&lt;/p&gt;
&lt;p&gt;Ein USB-Stick wäre aber doch noch schöner oder? Und es gibt sie – wenn
auch sehr selten. Ich bin auf 2 Modelle gestoßen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Der erste ist der &lt;a href="http://www.trekstor.de/detail-datenspeicher/product/usb-stick-cs.html"&gt;Trekstor
    CS&lt;/a&gt;.
    Dieser wurde nur mit USB 2.0 gesegnet – das reicht meiner Meinung
    nach von der Geschwindigkeit aber für ein wöchentliches
    Onlinebanking locker. Weiterer Hacken: Er bootet bei aktiviertem
    Schreibschutz leider nicht bei jedem BIOS/UEFI. So wird ihm in
    diesem den Zustand unter meinem Fujitsu-Desktop (Baujahr 2009) der
    Dienst verweigert, bei meinem Medion-Notebook von 2011 wiederum
    funktioniert alles perfekt. Das deckt sich mit
    &lt;a href="http://www.heise.de/forum/c-t/Kommentare/Sicheres-Online-Banking-mit-Bankix/Re-USB-Stick-bootet-nicht/posting-347305/show/"&gt;Erfahrungen&lt;/a&gt;,
    die man im Internet
    &lt;a href="http://www.amazon.de/review/R3DZFP75LEWWRE/"&gt;findet&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Den zweiten kann ich leider nur aus der Ferne und aus Rezensionen
    bewerten: &lt;a href="http://www.pqigroup.com/prod_in.aspx?mnuid=1286&amp;amp;modid=138&amp;amp;prodid=555"&gt;PQI
    Nano&lt;/a&gt;.
    Er hat USB 3.0 und ist damit flotter, scheint jedoch leider nicht
    mehr wirklich verfügbar zu sein.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Warum der Aufwand – und genau so?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Warum nicht einfach
    &lt;a href="http://www.heise.de/ct/projekte/Sicheres-Online-Banking-mit-Bankix-284099.html"&gt;Bankix&lt;/a&gt;
    von der c't?&lt;ul&gt;
&lt;li&gt;Seit dem Versuch ein &lt;a href="http://ikhaya.ubuntuusers.de/2014/03/28/kwami-warum-das-heise-ubuntu-fuer-aeltere-rechner-nicht-durchdacht-ist/"&gt;Ubuntu-Image mit
    NON-PAE-Bootmöglichkeit&lt;/a&gt;
    zu erstellen, ist mein Vertrauen in c't in diesem Bereich ein
    wenig geschrumpft. Daneben ist auf Bankix Software, die ich
    niemals brauche – beispielsweise
    &lt;a href="https://de.wikipedia.org/wiki/Hibiscus_%28Software%29"&gt;Hibiscus&lt;/a&gt;.
    Zugegebenermaßen war Bankix aber Inspirationsquelle.&lt;/li&gt;
&lt;li&gt;Der Wille sich einmal selbst mit dem Thema zu beschäftigen – wie
    immer das Welt-Wald-und-Wiesenargument für alles halt.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Warum Ubuntu 12.04.1 als Ausgangsimage?&lt;ul&gt;
&lt;li&gt;Ubuntu 12.04 statt 14.04: Ein Ubuntu LTS zu verwenden war von
    Anfang an klar. Erst wollte ich die neueste LTS 14.04 verwenden,
    das ist dann aber an einem &lt;a href="https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/1338183"&gt;Bug
    gescheitert&lt;/a&gt;.
    Mit 12.04 ging alles – und Support gibt es auch noch bis 2017.
    Vielleicht funktioniert es mit 14.04, sobald man &lt;a href="https://help.ubuntu.com/community/LiveCDCustomizationFromScratch"&gt;von Grund auf
    baut&lt;/a&gt;;
    die Seite fand ich aber zu spät. (und irgendeine Herausforderung
    für Später muss es doch auch geben ;) )&lt;/li&gt;
&lt;li&gt;12.04.&lt;strong&gt;1&lt;/strong&gt; als Ausgangsimage aus dem Grund, weil in den darauf
    folgenden Point-Releases
    &lt;a href="http://wiki.ubuntuusers.de/LTS_Enablement_Stacks"&gt;Hardware-Enablement-Stacks&lt;/a&gt;
    verwendet wurden. Bei diesen läuft der Support allerdings zu
    unterschiedlichen Zeiten und vor dem eigentlichen Supportende
    von 12.04 aus.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ein Nachteil bzw. Angriffsvektor bietet diese Variante weiterhin: Sind
bereits die Paketquelle des Distributors mit Schadsoftware befallen,
kommt diese am Schluss auch auf das erstellte Image. Man legt gegenüber
den Repositorien also ein gewisses Vertrauen voraus. Wie man dieses
Problem praktisch lösen könnte – außer jeglichen Quellcode manuell zu
auditieren und selbst zu kompilieren – , weiß ich nicht.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Sat, 12 Jul 2014 13:00:00 +0200</pubDate><guid>tag:c3vo.de,2014-07-12:home/onlinebanking-mit-remasterten-ubuntu/</guid><category>uu-planet</category><category>Onlinebanking</category><category>Linux</category><category>Ubuntu</category><category>Open Source</category></item><item><title>Nethogs: Netzwerkverkehr nach Prozessen</title><link>https://c3vo.de/home/nethogs/</link><description>&lt;h2&gt;Für was ist das gut?&lt;/h2&gt;
&lt;p&gt;Um den Netzwerktraffic unter Linux zu analysieren, gibt es zahlreiche
Werkzeuge wie ethstatus, &lt;a href="http://iptraf.seul.org/"&gt;iptraf&lt;/a&gt; oder
&lt;a href="http://www.ex-parrot.com/pdw/iftop/"&gt;iftop&lt;/a&gt;. Allerdings zeigen die
meisten Programme nur von und zu welcher IP der Datenverkehr durch die
Leitung geschickt wird oder wie viel gerade fließt. Möchte man dagegen
wissen, welcher Prozess den meisten Netzerwerkverkehr gerade im Moment
verursacht, tappt man bei den genannten im Dunkeln. Das Licht schafft
hier das kleine Kommandozeilenwerkzeug Nethogs.&lt;/p&gt;
&lt;p&gt;Allerdings gibt es vorab erwähnt auch ein paar kleinere Feature-Lücken:
So kann keine Sortierung nach Programmnamen stattfinden, Nethogs muss
immer mit Root-Rechten ausgeführt werden, zeigt nur den aktuellen
Netzwerkverkehr und lässt UDP unter den Tisch fallen (relevant zum
Beispiel für BitTorrent).&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Das Progamm findet sich eigentlich in jedem Repositorium einer
Linux-Distribution, zum Beispiel
&lt;a href="http://packages.ubuntu.com/de/trusty/nethogs"&gt;Ubuntu&lt;/a&gt; oder &lt;a href="https://www.archlinux.org/packages/community/x86_64/nethogs/"&gt;Arch
Linux&lt;/a&gt;.
Notfalls kann man aber auch den Quellcode &lt;a href="http://sourceforge.net/projects/nethogs/files/nethogs/"&gt;selbst
kompilieren&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Verwendung&lt;/h2&gt;
&lt;p&gt;Grundsätzlich lässt sich Nethogs mit dem gleichnamigen
Kommandozeilen-Befehl ausführen. Jedoch sind dazu Root-Rechte notwendig.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo nethogs
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Standardmäßig lauscht Nethogs an eth0. Verwendet man allerdings WLAN
übergibt man – für die erste WLAN-Schnittstelle – wlan0 als Parameter.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;sudo nethogs wlan0
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Sollte das immer noch nicht zu Erfolg führen, gibt der folgende Befehl
alle lokalen Netzwerkschnittstellen aus.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ifconfig
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Die gewünschte Schnittstelle dann Nethogs entsprechend als Parameter
übergeben. Danach präsentiert sich Nethogs als ncurses-Oberfläche wie im
Screenshot.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src="https://c3vo.de/images/nethogs.png" alt="Aussehen von Nethogs: tabellenartig mit 6 Spalten. Eine Spalte für die
PID, der Nutzer der das Programm ausführt, der Programmname, die
Netzwerkschnittstelle sowie die Menge an gesendeten und empfangenen
Daten."
    &lt;figcaption&gt;
        So tabellenartig sieht Nethogs aus.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Die einzelnen Spalten sind eigentlich selbsterklärend. Zudem kann man
über Tastenkürzel Nethogs ein wenig anpassen; kurz die meiner Meinung
nach wichtigsten Optionen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;M: Zwischen den Einheiten KB/s, KB, B oder MB umschalten&lt;/li&gt;
&lt;li&gt;R: Sortierung nach &lt;em&gt;empfangenen&lt;/em&gt; Daten (received)&lt;/li&gt;
&lt;li&gt;S: Sortierung nach &lt;em&gt;gesendeten&lt;/em&gt; Daten (send)&lt;/li&gt;
&lt;li&gt;Q: Programm schließen (Alternative zu Strg + C)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die (kleine) Liste aller Optionen finden sich entweder in der manpage
oder auf Deutsch im
&lt;a href="http://wiki.ubuntuusers.de/nethogs"&gt;Ubuntuusers-Wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Nethogs ist ein kleines Werkzeug, das einfach nur macht, was es soll –
nämlich den aktuellen Netzwerkverkehr auf die einzelnen Prozesse
aufgliedern. Die bestehenden „Problemchen“ wie fehlende
UDP-Unterstützung oder Sortiertung allein nach Datentraffic werden ggf.
in einer nächsten Version ausgebügelt.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Tue, 10 Jun 2014 21:10:00 +0200</pubDate><guid>tag:c3vo.de,2014-06-10:home/nethogs/</guid><category>uu-planet</category><category>Linux</category><category>Open Source</category></item><item><title>highlighting</title><link>https://c3vo.de/home/highlighting/</link><description>&lt;p&gt;Im Ubuntu-Repositorium bin ich auf das Kommandozeilen Programm
&lt;a href="http://packages.ubuntu.com/de/precise/highlight"&gt;„highlighting“&lt;/a&gt;
gestoßen. Gleich vorweg: Meine Bedürfnisse für Syntax-Highlighting
erfüllt es vollkommen. Ich will damit vor allem längere Code-Passagen
auf dieser Website lesbarer machen, weswegen die Ausgabe in diesem
Artikel in HTML erfolgt. LaTex ist aber beispielsweise auch möglich.&lt;/p&gt;
&lt;h2&gt;Beispielanwendung&lt;/h2&gt;
&lt;p&gt;Nach der Installation aus dem Repositorium (denke das sollte jeder
selbst hinbekommen), ist highlighting über die Kommandozeile zu
bedienen. Ein Beispiel:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;highlight -l -f --inline-css --enclose-pre -S html -i test.html -o test_high.html
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Die Bedeutung der Parameter im Detail:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-l: Zeilennummern&lt;/li&gt;
&lt;li&gt;-f: kein Header oder Footer (Voraussetzung für beiden nachfolgenden
    Optionen)&lt;/li&gt;
&lt;li&gt;--inline-css: bei HTML keine seperate CSS-Datei, sondern
    Formatierung „direkt an Ort und Stelle“&lt;/li&gt;
&lt;li&gt;--enclose-pre: keine vollständige HTML-Datei mit body und header,
    sondern nur die &amp;lt;pre&gt;-Tags&lt;/li&gt;
&lt;li&gt;-S: „Sprache“ &lt;em&gt;der Quelle&lt;/em&gt; festlegen; hier html&lt;/li&gt;
&lt;li&gt;-i: Eingabedatei für Syntaxhighlighting&lt;/li&gt;
&lt;li&gt;-o: Ausgabedatei&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ich nutze hier ausnahmsweise CSS inline, da ein generiertes externes
CSS-Stylesheet nur die aktuell verwendeten Regeln auswirft. Eine Option,
um ein komplettes Stylesheet für einen Stil ausgeben zu lassen, habe ich
nicht gefunden. Damit wir der Hauptnutzen von externem CSS meiner
Meinung nach ad absurdum geführt, nämlich das Caching. Denn wenn für
jede neuen Codeblock ein eigenes Stylsheet geladen werden muss, kann man
dies gleich inline schreiben. Das spart nur HTTP-Requests – die fehlende
Trennung von Inhalt und Design ignoriere ich hier jetzt einmal.&lt;/p&gt;
&lt;h2&gt;Themes&lt;/h2&gt;
&lt;p&gt;Das Aussehen der Ausgabe kann man über vorgegeben Themes verändern.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;highlight -w
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Gibt eine Liste mit allen installierten Themes aus. Wie die einzelnen
Themes aussehen, sieht man auf zwei (unvollständigen) Wiki-Seiten:
&lt;a href="http://www.andre-simon.de/dokuwiki/doku.php?id=theme_examples"&gt;Seite
1&lt;/a&gt;,
&lt;a href="http://www.andre-simon.de/dokuwiki/doku.php?id=theme_examples_2"&gt;Seite
2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Meine Favoriten sind die Stile „acid“, „bright“, und „zmrok“. Das
Standardtheme ist aber auch nicht schlecht. Auf dieser Website werde ich
in Zukunft wohl „zmrok“ verwenden.&lt;/p&gt;
&lt;h2&gt;Skript zum Ausprobieren&lt;/h2&gt;
&lt;p&gt;Da die Wikiseite wie oben geschrieben unvollständig ist, hab ich mir mal
ein kleines Shell-Skript geschrieben. Dieses probiert anhand einiger
Dateien im Ordner „org“ die unterschiedlichen Themes für verschiedenen
Programmiersprachen aus. Dabei ist für jede Programmiersprache eine
eigenen Beispieldatei im „org-Ordner“. Entsprechend der Dateiendung wird
ein Ordner angelegt. Mit den ausgegeben HTML-Dateien ist dann ein
Vergleichen der Themes relativ gut möglich.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://c3vo.de/article_addition/test_highlight.tar.bz2"&gt;Das Archiv&lt;/a&gt; enthält
schon einen Durchlauf des Skripts unter Ubuntu 12.04. Möchte man es auf
seinem eigenen Rechner ausführen, reicht ein einfaches&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;bash test_highlighting.sh
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;im selben Ordner. Wer möchte, kann davor alle Ordner außer „org“
löschen.&lt;/p&gt;
&lt;h2&gt;Beispiel: JS-Code, Theme „zmork“&lt;/h2&gt;
&lt;p&gt;Zum Abschluss noch ein Beispiel für das meiner Meinung nach schönste
Theme „zmork“&lt;/p&gt;
&lt;p&gt;&lt;img alt="Zmrok stellt Code mit Orange für Zahlen, Braun für Steuerungswörter und einem dunklen Blau für Funktionen dar. Textfarbe ist sonst ein helles Grau." src="https://c3vo.de/images/zmork_highlight.png" /&gt;&lt;/p&gt;
&lt;p&gt;(Als Screenshot, da ich mittlerweile auf pygments setze)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Sat, 07 Jun 2014 15:15:00 +0200</pubDate><guid>tag:c3vo.de,2014-06-07:home/highlighting/</guid><category>uu-planet</category><category>Linux</category><category>Web</category><category>Open Source</category></item><item><title>HTML/CSS: figure, text-transform und vertikales Zentrieren</title><link>https://c3vo.de/home/htmlcss-figure-text-transform-und-vertical-align/</link><description>&lt;p&gt;Im Folgenden eine paar HTML-Tags bzw. CSS-Optionen, die ich erst neu
gefunden habe bzw. mir wieder ins Gedächtnis kamen.&lt;/p&gt;
&lt;h2&gt;[HTML] figure und figcaption&lt;/h2&gt;
&lt;p&gt;Die beiden Tags sind dazu gedacht, einer Tabelle bzw. einem Bild eine
dazugehörige Unterschrift zu geben. Vorteil gegenüber einfachen divs ist
die bessere semantische Hervorhebung.&lt;/p&gt;
&lt;p&gt;Der Quellcode&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;figure&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;tinypng-small.png&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;figcaption&amp;gt;&lt;/span&gt;Als Beispiel der Panda von tinypng&lt;span class="nt"&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/figure&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;schaut gerendert zum Beispiel so aus:&lt;/p&gt;
&lt;figure&gt;
    &lt;img src="https://c3vo.de/images/tinypng-small.png"&gt;
    &lt;figcaption&gt;
    Als Beispiel der Panda von tinypng
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;(Das Ganze ist noch ein wenig mit CSS umgestaltet.)&lt;/p&gt;
&lt;p&gt;Aus der Reihe fällt bei der
&lt;a href="http://caniuse.com/#feat=html5semantic"&gt;Unterstützung&lt;/a&gt; nur der IE8. Das
sollte sich &lt;a href="https://de.wikipedia.org/wiki/Internet_Explorer#Version_8"&gt;zunehmend aber von selbst
erledigt&lt;/a&gt;
haben, da es bekanntlich keinen Suppport für Windows XP mehr gibt.
(Notfalls den &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document#Using_HTML5_Elements_in_Non-HTML5_Browsers"&gt;einfachen Workaround von
Mozilla&lt;/a&gt;
verwenden)&lt;/p&gt;
&lt;p&gt;weitere Informationen unter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mozilla Developer Network:
    &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure"&gt;figure&lt;/a&gt;,
    &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption"&gt;figcaption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;w3schools.com:
    &lt;a href="http://www.w3schools.com/Tags/tag_figure.asp"&gt;figure&lt;/a&gt;,
    &lt;a href="http://www.w3schools.com/Tags/tag_figcaption.asp"&gt;figcaption&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;[CSS] text-transform&lt;/h2&gt;
&lt;p&gt;Folgendes Problem: In einem Menü möchte man nur Großbuchstaben
verwenden. Freilich kann man das direkt im HTML-Quellcode umsetzen.
Möchte man aber auf Nummer sicher gehen, weil es z.B. mit einem CMS
umgesetzt wird, ist die Lösung über CSS schöner. Auf die entsprechenden
Tags folgendes anwenden:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;text-transform&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;uppercase&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Mehr Informationen zu text-transform auf:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform"&gt;Mozilla Developer
    Network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.w3schools.com/cssref/pr_text_text-transform.asp"&gt;w3schools.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;[CSS] Eine Zeile Text vertikal zentrieren&lt;/h2&gt;
&lt;p&gt;Horizontal Text zu zentrieren ist einfach (vgl.
&lt;a href="http://www.w3schools.com/cssref/pr_text_text-align.asp"&gt;text-align&lt;/a&gt;) –
aber wie schaut es vertikal aus? Braucht man wie ich nur ein einziges
Wort oder Zeile zu zentrieren, geht es am einfachsten, line-height auf
den selben Wert wie die Höhe des umgebenden Tags zu setzen. Ein
Beispiel:&lt;/p&gt;
&lt;p&gt;CSS-Teil&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4
5
6
7
8&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;orange&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;line-height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;text-align&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;HTML-Teil&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Text&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Das ergibt:&lt;/p&gt;
&lt;div class="show_vertical_align"&gt;
Text
&lt;/div&gt;

&lt;p&gt;Handelt es sich dagegen um einen mehrere Zeilen langen Text finden sich
mögliche Lösungen auf auf css-tricks: &lt;a href="http://css-tricks.com/vertically-center-multi-lined-text/"&gt;per
table-cell&lt;/a&gt;
oder noch allgemeiner gehalten &lt;a href="http://css-tricks.com/centering-in-the-unknown/"&gt;per
Pseudo-Element&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Fri, 06 Jun 2014 16:15:00 +0200</pubDate><guid>tag:c3vo.de,2014-06-06:home/htmlcss-figure-text-transform-und-vertical-align/</guid><category>CSS</category><category>Web</category><category>HTML</category><category>Open Source</category></item><item><title>Neulich bei Hearthstone</title><link>https://c3vo.de/home/neulich-bei-hearthstone/</link><description>&lt;p&gt;Ich möchte jetzt keine große negative Spielkritik über Blizzards
Hearthstone loslassen. Im Gegenteil: Ich finde dieses Online-Kartenspiel
hat großen Suchtfaktor und damit Wiederspielwert, wobei der Spaß auch
nicht zu gering ausfällt. Aber stellenweise gibt es in Matchs einfach
Momente, in denen man sich nur fragt bzw. gar nicht mehr fragt, sondern
vor lauter Staunen nur noch die Kinlade runtergeht, der Mund dadurch
sperrangelweit offen ist und man so vor dem PC sitzt. Im Folgenden
ebenso eine Fall.&lt;/p&gt;
&lt;figure&gt;

&lt;picture&gt;
    &lt;!-- TODO
    &lt;source media="(min-width: 850px)" srcset="{filename}/images/Hearthstone_Paladin-Krieger.jpg"&gt;
    --&gt;
    &lt;img src="https://c3vo.de/images/Hearthstone_Paladin-Krieger_small.jpg" alt=""&gt;
&lt;/picture&gt;

&lt;figcaption&gt;Beschriebene Spielszene&lt;/figcaption&gt;

&lt;/figure&gt;

&lt;p&gt;Krieger gegen Paladin – soweit nichts besonderes. Allerdings hat der
Paladin gerade einen „Schildmeista von Sen'jin“ mit achtzehn (18)
Angriff und Leben. In meinem halben Delirium hab ich es sogar noch
geschafft irgendwie auf die Druck-Taste zu kommen und somit einen
Screenshot zu machen (wenn man schon hinschaut: man beachte den
Darstellungsfehler beim Fertig-Button). Schaut man sich die Karte
genauer an, sieht man welche Wucht an Zaubern der Schildmeister erhalten
hat: Ursprünglich „nur“ 5 Leben, bekam er 4 zusätzliche durch zwei
Zauberkarten. Anschließend wird das Leben von eben diesem noch
verdoppelt, auf die besagten 18. Als wäre das nicht schon ein harter
Brocken, werden die Lebenspunkte durch einen weiteren Zauber den
Angriffspunkten gleichgesetzt. Das kann eigentlich nur mein Ende
bedeuten.&lt;/p&gt;
&lt;p&gt;Persönlich frage ich mich da, wie man gegen so etwas ankommen soll – ich
meine, die kurze Antwort heißt: In diesem Moment gar nicht. Einzig der
Gurubashi Berserker kann in solchen „Angriffsligen“ mithalten.
Allerdings muss dieser dazu erst einmal Schaden erleiden, was ggf.
mehrere Runden dauert. Zudem wird er durch das verminderte Leben
wiederum leichter zu einem Angriffspunkt. Deshalb muss man ihn zum
Beispiel per Spott schützen. In Summe ist also meiner bescheidenen
Meinung nach schon ein wenig mehr Können und Abwägen nötig. Die
beschriebene Technik des Paladins ist jedoch durchaus ausgefuchst, keine
Frage.&lt;/p&gt;
&lt;p&gt;Ein letzter Punkt bringt mich aber noch mehr ins Grübeln: Eigentlich
wäre es möglich ein Paladindeck nur mit Zauberkarten aufzustellen und
dennoch zu gewinnen. Denn der Schildmeista ist nämlich auch nur per
Zauber von mir übernommen worden… Was man also gegen so etwas machen
kann? Möglichst früh angreifen, wobei man viel Schaden produziert,
sodass die große Zauberkarten-Combo mangels Kristallen gar nicht erst
möglich wird bzw. er noch nicht alle nötigen Karten beisammen hat. Das
mag aber bestimmt nicht immer funktionieren.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Fri, 30 May 2014 22:00:00 +0200</pubDate><guid>tag:c3vo.de,2014-05-30:home/neulich-bei-hearthstone/</guid><category>Hearthstone</category><category>Games</category></item><item><title>Domain zu Suchmaschinen hinzufügen</title><link>https://c3vo.de/home/domain-zu-suchmaschinen-hinzufugen/</link><description>&lt;p&gt;Da hat man eine neue Domain registriert und dort auch schon Inhalt
publiziert. Allerdings soll eine Website natürlich besucht werden bzw.
der Inhalt gelesen. Kennt die entsprechende Domain aber niemand, so wird
die Wesite ebenfalls keine Besucher haben. Deswegen gab es in der
Frühzeit des Internet zuerst Listen mit guten Webseiten (am Rand: so ist
Yahoo entstanden), später wurde das Finden durch Suchmaschinen
benutzerfreundllicher. Die mit Abstand größte und populärste ist heute
Google. Aber wie kommt man in die Indexe der Suchmaschinen, sodass deren
Bots (auch &lt;a href="http://de.wikipedia.org/wiki/Webcrawler"&gt;Crawler&lt;/a&gt;) nach
neuen Inhalten sucht?&lt;/p&gt;
&lt;h2&gt;Schon im Suchindex?&lt;/h2&gt;
&lt;p&gt;Zu allererst kann man prüfen, ob man überhaupt schon im Index ist. Das
geht am einfachsten per&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;site&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;example&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;org&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;in der jeweiligen Suchmaschine. Ergibt diese Suche keine Treffer, ist
man entsprechend auch noch nicht im Index. Es werden nämlich hier alle
Treffer angezeigt, die die Domain example.org liefert.&lt;/p&gt;
&lt;h2&gt;Eintragen&lt;/h2&gt;
&lt;p&gt;Ist die Nachforschung negativ, sollte man die Domain manuell eintragen.
Im Folgenden kurz der Eintrageprozess anhand von Google, Yahoo und Bing.&lt;/p&gt;
&lt;h3&gt;Google&lt;/h3&gt;
&lt;p&gt;Hier ging bei mir alles automatisch. Domain kaum registriert, schon kam
der erste Crawler; Google scheint hier mit den Domainregistraturen zu
kooperieren.&lt;/p&gt;
&lt;p&gt;Wer es dennoch manuell macht (bzw. machen muss), findet die
entsprechende
&lt;a href="http://www.google.de/addurl/?continue=/addurl"&gt;Registrierungs-Möglichkeit&lt;/a&gt;
relativ schnell. Jedoch scheint es dazu einen Google-Acount zu
brauchen…&lt;/p&gt;
&lt;h3&gt;Yahoo&lt;/h3&gt;
&lt;p&gt;Wie &lt;a href="https://de.hilfe.yahoo.com/kb/search/SLN2217.html"&gt;ein
Hilfeeintrag&lt;/a&gt; zeigt,
reicht es sich bei Bing in den Index einzutragen; dann ist man
automatisch auch bei Yahoo gelistet. (nach ein bisschen Denken kam es
mir auch wieder: schließlich kooperieren Yahoo und Microsoft in diesem
Bereich.)&lt;/p&gt;
&lt;h3&gt;Bing&lt;/h3&gt;
&lt;p&gt;Einfach &lt;a href="http://www.bing.com/toolbox/submit-site-url"&gt;über ein Formular die Website an Bing
übermitteln&lt;/a&gt;. Das geht ganz
ohne Konto, auch wenn anschließend eine Aufforderung für die Bing
Webmaster Tools erscheint; wenn man den nicht will, ist aber auch das
schnell ignoriert.&lt;/p&gt;
&lt;p&gt;Damit dürfte den Webcrawlner nichts mehr von der Arbeit auf der eigenen
Website abhalten.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Tue, 27 May 2014 15:44:00 +0200</pubDate><guid>tag:c3vo.de,2014-05-27:home/domain-zu-suchmaschinen-hinzufugen/</guid><category>Web</category><category>Suchmaschinen</category></item><item><title>[Shelltool] wtf</title><link>https://c3vo.de/home/shelltool-wtf/</link><description>&lt;p&gt;Durch Zufall (danke Tabvervollständigung) bin ich auf das Shellkommando
„wtf“ gestoßen. Für was ist es? Naja, für solche Situationen in denen
man sich denkt, was zum Henker bedeutet diese Abkürzung?! Im Folgenden
mal zwei Beispiele für die Benutzung:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;wtf afaik
AFAIK: as far as I know

&lt;span class="nv"&gt;$ &lt;/span&gt;wtf afk
AFK: away from keyboard
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Es scheint sich dabei auf das
&lt;a href="https://de.wikipedia.org/wiki/Netzjargon"&gt;„Netzjargon“&lt;/a&gt; zu fokussieren.
Allerdings hört es in Summe beim Umfang relativ schnell auf:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;wtf ack
Gee...  I don&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;t know what ack means...
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Konkret bekommt man den Umfang mit einem less über
&lt;em&gt;/usr/share/games/bsdgames/acronyms&lt;/em&gt; bzw.
&lt;em&gt;/usr/share/games/bsdgames/acronyms.comp&lt;/em&gt;. Um die letzte Datenbank zu
nutzen, braucht es außerdem den Parameter &lt;em&gt;-f&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;P.S.: Unter den
&lt;a href="http://wiki.linuxquestions.org/wiki/BSD_games"&gt;bsd-games&lt;/a&gt; sind im
Allgemeinen ganz nette Sachen. ;)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Thu, 17 Apr 2014 14:40:00 +0200</pubDate><guid>tag:c3vo.de,2014-04-17:home/shelltool-wtf/</guid><category>uu-planet</category><category>Linux</category><category>Programme</category><category>BSD</category><category>Open Source</category></item><item><title>Yahoo!-Geschichten</title><link>https://c3vo.de/home/yahoo-geschichten/</link><description>&lt;h2&gt;#1 E-Mail-Weiterleitung&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Das Ziel&lt;/strong&gt; war (eigentlich) klar: Ich wollte eine E-Mail-Weiterleitung
von meinem Yahoo-Mail-Account an yahoo@[eigene-Domain].de einrichten.&lt;/p&gt;
&lt;p&gt;Also ganz normal über Einstellungen → Reiter „Accounts“ → Button
„Bearbeiten“ → unter Weiterleitung die E-Mail-Adresse eingetragen. Auf
Speichern klicken. Die Bestätigungsmail konnte nicht versandt werden.
Hm, komisch.&lt;/p&gt;
&lt;p&gt;Danach versuchte ich unter den Account-Einstellungen die selbe
E-Mail-Adresse hinzuzufügen. Es kam nur ein Dialog:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Es ist ein Problem aufgetreten. (#400005) – Sie haben keine gültige
Mail-Adresse eingegeben. Bitte wiederholen Sie den Vorgang.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Oder alternativ:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Es ist ein Problem aufgetreten. (#604,E2) – Sie versuchen, eine
Mail-Adresse hinzuzufügen, die von dessen Eigentümer gesperrt wurde.
Geben Sie eine andere Mail-Adresse ein.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Beides war irgendwie unlogisch, da ich die Domain registriert hatte und
E-Mails an die Adresse auch ankamen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Lösung:&lt;/strong&gt; Nehmt kein „yahoo“ als ersten E-Mail-Adressen-Teil (vor
dem @). Anscheinend habe ich da irgendwelche Filter getriggert…&lt;/p&gt;
&lt;h2&gt;#2 Die Schrecksekunde beim Anmeldeverlauf&lt;/h2&gt;
&lt;p&gt;Mehr durch Zufall bin ich auf die Seite „Jüngste Anmeldungsaktivitäten“
meines Yahoo-Mail-Accounts gestolpert.&lt;/p&gt;
&lt;figure&gt;

&lt;picture&gt;
    &lt;!-- TODO
    &lt;source media="(min-width: 450px)" srcset="{filename}/images/Yahoo-Anmeldungen.png"&gt;
    --&gt;
    &lt;img src="https://c3vo.de/images/Yahoo-Anmeldungen.png" alt=""&gt;
&lt;/picture&gt;

&lt;figcaption&gt;So (oder ähnlich) schaut die Tabelle bei Yahoo! aus.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Dort sah ich dann einmal eine IP mit dem Standort „CA, US“. Kalifornien,
wieso das, ich war doch in letzter Zeit gar nicht in der USA? Da ist
doch nicht hoffentlich jemand in meinen Account…&lt;/p&gt;
&lt;p&gt;Ein &lt;a href="http://who.is/whois-ip/ip-address/66.249.81.94"&gt;whois auf
„66.249.81.94“&lt;/a&gt; gab dann
aber die Erkenntnis: Diese IP gehört zu Google. Kurz nachgedacht und auf
das Android-Smartphone gekommen, bei dem ich (unter Chrome) über einen
Google-Proxy gehe, der die Daten nochmal komprimiert. Also Entwarnung.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Wed, 16 Apr 2014 19:52:00 +0200</pubDate><guid>tag:c3vo.de,2014-04-16:home/yahoo-geschichten/</guid><category>Web</category><category>Yahoo</category></item><item><title>Die unendliche Reise (oder: die iTunes-Anmeldung)</title><link>https://c3vo.de/home/die-unendliche-reise-oder-die-itunes-anmeldung/</link><description>&lt;h2&gt;Vorgeplänkel&lt;/h2&gt;
&lt;p&gt;Es begab sich zu einer Zeit, als ich einen 15€-iTunes-Gutschein
geschenkt bekam. Ich nutze normalerweise keine Apple-Produkte bzw.
-Dienste, aber ich hatte gleichzeitig ein Album gefunden, was es nur bei
iTunes gab. Zusätzlich wollte ich mich schonmal aus reiner Neugierde
heranwagen.&lt;/p&gt;
&lt;p&gt;Schaut man sich die Hauptseite
&lt;a href="https://appleid.apple.com"&gt;appleid.apple.com&lt;/a&gt; an, entdeckt man sofort
den Absatz:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An Apple ID is your user name for &lt;strong&gt;everything you do with Apple&lt;/strong&gt;:
Shop the iTunes Store, enable iCloud on all your devices, buy from the
Apple Online Store, make a reservation at an Apple Retail Store,
access the Apple Support website, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Das heißt, sobald man eine Apple-ID hat, kann man einen Rattenschwanz
von Apple Diensten verwenden. Also ganz ähnlich wie bei Google. Ich
hoffe jedoch, dass man nicht bei jedem Apple Dienst automatisch
angemeldet ist – so wirklich finden wollte ich die Info nicht. Versteht
mich nicht falsch, gegen einen zentrale Anmeldung für mehrere
Unter-Dienste habe ich nichts. Im Gegenteil finde ich es positiv, sich
weniger Anmeldedaten merken zu müssen. Allerdings finde ich es komisch,
bei diesen Diensten zu sein, ohne es zu wissen. Kommen wir aber nun zur
eigentlichen kuriosen Geschichte: dem Anmelde-Prozess.&lt;/p&gt;
&lt;h2&gt;Per iTunes&lt;/h2&gt;
&lt;p&gt;Die offensichtlichste Möglichkeit sich für iTunes anzumelden, ist in der
gleichnamigen Software. Also ganz normal im Menü die Anmeldung
gestartet. (Das entpuppt sich &lt;a href="#zuruck-zu-iTunes"&gt;im Nachhinein als
Fehler&lt;/a&gt;…). Als ersten
Anmelde-Schritt E-Mail, Kennwort, Sicherheitsfragen und Geburtstag
angeben – alles noch ganz normal.&lt;/p&gt;
&lt;figure&gt;
&lt;picture&gt;
    &lt;!-- TODO
    &lt;source media="(min-width: 800px)" srcset="{filename}/images/itunes_anmeldung.png"&gt;
    --&gt;
    &lt;img src="https://c3vo.de/images/itunes_anmeldung-small.png" alt=""&gt;
&lt;/picture&gt;

&lt;figcaption&gt;
Die erste Seite im Anmeldeprozess für iTunes…
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Einzig das fehlende Highlight des aktuellen Formularfeldes nervt
stellenweise etwas. Denn man weiß nicht, wo man gerade ist. (soweit zum
„perfekten Design“ von Apple – klar schön sieht es aus, aber zum Design
gehört imho auch ein bisschen mehr wie bloße Schönheit, zum Beispiel
&lt;a href="https://de.wikipedia.org/wiki/Benutzerfreundlichkeit"&gt;Usability&lt;/a&gt;; und
da sehe ich hier nun wirklich nicht gerade die Beste. Klar kann man mir
hier wieder vorwerfen, das ist eine Kleinigkeit. Aber bitte mal weiter
lesen…)&lt;/p&gt;
&lt;p&gt;Die zweite Seite war aber umso besser. Ein Bezahlungsmittel wird
gefordert: Eine Kreditkarte oder alternativ „Click and Buy“. Abgesehen
davon, dass ich von beiden keines habe, würde ich es ansonsten auch
nicht angeben. Ich habe doch einen Gutschein vor mir liegen. Überdies
ist eine Rechnungsadresse notwendig: Warum? Ich will doch mit dem
Gutschein bezahlen. Da sollte es doch eigentlich egal sein, woher ich
genau komme, oder?&lt;/p&gt;
&lt;figure&gt;
&lt;picture&gt;
    &lt;!-- TODO
    &lt;source srcset="{filename}/images/itunes_anmeldung2.png" media="(min-width: 450px)"&gt;
    --&gt;
    &lt;img src="https://c3vo.de/images/itunes_anmeldung2-small.png" alt=""&gt;
&lt;/picture&gt;
&lt;figcaption&gt;…und die zweite Seite mit Zahlungsinformationen&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Die fehlende Kennzeichnung von Pflichtfeldern macht sich hier außerdem
auch stark bemerkbar: Die meisten Nutzer werden meinen, man muss alles
ausfüllen. Der einzige Ansatzpunkt: Man drückt absichtlich mal auf
„Weiter“, obwohl man nichts eingetragen hat. Aber auch damit entpuppt
sich, man soll alles ausfüllen. Denn hat man zum Beispiel die
Adressdaten ausgefüllt, soll man jetzt nun ebenfalls eine Kreditkarte
angeben. Davor war dies aber nicht rot, also als auszufüllend markiert.&lt;/p&gt;
&lt;p&gt;Von der obigen Kreditkarte kann man sich auch nicht „rausreden“, indem
man einen Gutscheincode eingibt. Es wird weiterhin ein anderes
Zahlungsmittel gefordert. btw. Was passiert eigentlich, sobald man einen
Gutscheincode bereits bei der Anmeldung angibt, aber zum Beispiel einen
Tippfehler bei E-Mail-Adresse hat. In der Folge kommt man dann nicht
mehr in seinen Account. (man kann den Link in der Bestätigungsmail
schließlich nicht aufrufen) Ist das Guthaben dann einfach weg?!&lt;/p&gt;
&lt;p&gt;Am Ende wollte ich einmal die ganze Daten (probehalber) abschicken: Aber
die Sitzung war abgelaufen. Also alles nochmal neu eingeben… Ok, ich
hatte im Hintergrund etwas nachgeschaut, ärgerlich finde ich es dennoch.&lt;/p&gt;
&lt;p&gt;Das scheinbare Ende vom Lied: Ohne Kreditkarte keine Anmeldung – und das
trotz Gutschein.&lt;/p&gt;
&lt;h2&gt;Next Try: Webinterface&lt;/h2&gt;
&lt;p&gt;iTunes habe ich nach der Erfahrung erst einmal links liegen gelassen.
Stattdessen habe ich mein Glück mal unter
&lt;a href="https://appleid.apple.com"&gt;appleid.apple.com&lt;/a&gt; versucht. Dort sollte
eine Anmeldung ebenfalls möglich sein.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src="https://c3vo.de/images/itunes_web_anmeldung2.png"&gt;

    &lt;figcaption&gt;
    Das Anmeldeformular für die Apple-ID im Webbrowser.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Als aller erstes fällt der unterschiedliche Umfang gegenüber iTunes auf:
Bei der Anschrift fehlt zum Beispiel ein Feld für Telefonnummern
komplett, die PLZ ist plötzlich optional. Man braucht plötzlich auch
keine Kreditkarte oder ähnliches mehr.&lt;/p&gt;
&lt;figure&gt;

&lt;picture&gt;
    &lt;!-- TODO
    &lt;source srcset="{filename}/images/itunes_web_anmeldung3.png" media="(min-width: 400px)"&gt;
    --&gt;

    &lt;img src="https://c3vo.de/images/itunes_web_anmeldung3-small.png" alt=""&gt;
&lt;/picture&gt;

&lt;figcaption&gt;
Gegenüber der iTunes Version ist die PLZ hier optional; die Telefonnummer fehlt komplett.
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Hat man das Formular ausgefüllt, habe ich allerdings die lapidare
Meldung „An unknown error has occured“ erhalten. YEAH! Das ist die
aussagekräftigste Fehlermeldung seit Jahren. Und total gut zu
reproduzieren… &lt;em&gt;nicht&lt;/em&gt;.&lt;/p&gt;
&lt;figure&gt;
&lt;picture&gt;
    &lt;!-- TODO
    &lt;source srcset="{filename}/images/itunes_web_error.png" media="(min-width: 450px)"&gt;
    --&gt;

    &lt;img src="https://c3vo.de/images/itunes_web_error.png" alt=""&gt;
&lt;/picture&gt;

&lt;figcaption&gt;
Eine sehr allgemein gehaltene Fehlermeldung nach der (fehlgeschlagenen) Registrierung auf appleid.apple.com.
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id="zuruck-zu-iTunes"&gt;Die Lösung: zurück zu iTunes&lt;/h2&gt;
&lt;p&gt;Sucht man dann ein wenig mit Google weiter, findet man eine Schritt für
Schritt Anleitung zur &lt;a href="http://support.apple.com/kb/HT2534?viewlocale=de_DE"&gt;„Anmeldung ohne
Kreditkarte“&lt;/a&gt;. Dazu
muss man zuerst eine kostenlose App aus dem Store installieren. Auch
wenn man gar kein iPhone, iPad, iPod etcpp. besitzt. Danach erscheint
dann der ein und der selbe identische Dialog, als ob man die Anmeldung
über das Menü aufgerufen hätte. Allerdings offenbart sich dann im
weiteren Verlauf der Anmeldung ein „Keiner“-Button als Zahlungsmittel.
Weiter oben war er dort aber eben noch nicht. Wer hat sich so etwas
ausgedacht? bzw. Geht es eigentlich komplizierter? Ich denke nein.&lt;/p&gt;
&lt;h2&gt;Das Loswerden kann auch interessant werden…&lt;/h2&gt;
&lt;p&gt;Da ich mir in Zukunft aus dieser Erfahrung heraus, wohl keinen weiteren
iTunes-Gutschein kaufen werde (die geschenkten werden weitergegeben),
wollte ich mal wissen, wie das mit dem „Entsorgen“ der Apple-ID
aussieht.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.helpster.de/apple-id-loeschen-so-wird-es-gemacht_137795"&gt;Auf
Helpster&lt;/a&gt;
bin ich dann auf Folgendes gestoßen:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Sie können nicht, wie Sie es von anderen Serviceanbietern gewohnt
    sind, Ihre Apple-ID einfach so löschen. Dies sieht Apple nicht
    vor.&lt;/li&gt;
&lt;li&gt;Auf verschiedene Anfragen von Usern, die dieses Verfahren
    ungewöhnlich finden, hat Apple jedoch reagiert und angegeben, dass
    zwar nicht der Account selbst, wohl aber die Informationen aus
    diesem Account gelöscht werden können.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seiten von &lt;a href="http://www.wikihow.com/Delete-an-Apple-ID"&gt;wikihow&lt;/a&gt;,
&lt;a href="http://praxistipps.chip.de/apple-id-loeschen-so-gehts_3140"&gt;chip&lt;/a&gt; oder
&lt;a href="https://www.apple.com/support/appleid/"&gt;Apple-Support-Seite&lt;/a&gt; scheinen
das Bild zu verstärken. Auf Apples Seite kommt kein Wort löschen oder
ähnliches vor; die anderen beiden Seiten sprechen von „Löschen“ in der
Überschrift, im Verlauf der Anleitung werden aber nur Daten geändert.
Bei Wikihowto mit dem Verweis, dass Löschen nicht möglich sei. (Warum
dann eigentlich die Überschrift?)&lt;/p&gt;
&lt;p&gt;Sollte das Löschen also wirklich nicht möglich sein, bin ich von Apple
in dem Punkt enttäuscht. Zudem kommt mir das Thema schon &lt;a href="https://c3vo.de/home/blackberryid-mull/"&gt;von BlackBerry
bekannt&lt;/a&gt; vor – das wird
hoffentlich nicht bei allen Diensten so sein. Ich lasse meine Apple-ID
daher erst einmal erhalten und schaue, ob es nicht doch über den Support
funktioniert. Also vorerst eine Karteileiche mehr…&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Ende vom Lied: Apple ist anscheinend nichts für mich; die wollen ja
nicht einmal wirklich, dass ich mich anmelde. Das Einlösen des
Gutscheins ging nach der Anmeldung relativ einfach und problemlos. Wieso
man die Anmeldung aber so komplex (ohne Kreditkarte) gestaltet, ist mir
ein wenig unverständlich. (für die Verschwörungstheoretiker: bestimmt
will Apple nur Kreditkartendaten sammeln und gleichzeitig die Gutscheine
ohne Gegenleistung verrotten lassen.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Tue, 15 Apr 2014 15:10:00 +0200</pubDate><guid>tag:c3vo.de,2014-04-15:home/die-unendliche-reise-oder-die-itunes-anmeldung/</guid><category>Geschichten</category><category>iTunes</category><category>Apple</category></item><item><title>[LoL#10] Teamersteller</title><link>https://c3vo.de/home/lol10-teamersteller/</link><description>&lt;h2&gt;Neue Teamersteller&lt;/h2&gt;
&lt;p&gt;Nach einer kurzen Probephase erhielt der Teamersteller jetzt eine länger
„Betaphase“ in LoL. Neu am Teamersteller ist dabei, dass man selbst
wählen kann auf welcher Position, welchen Helden und in welcher Rolle
man spielen will (siehe für den zweiten Schritt auch den Screenshot).
Erst danach wird das eigentliche Team gesucht. Man entgeht somit einem
möglichen Streit um die gerade genannten Punkte und kann sich so voll
auf das Spiel konzentrieren.&lt;/p&gt;
&lt;figure&gt;

    &lt;picture&gt;
        &lt;!-- TODO
        &lt;source srcset="{filename}/images/Teamersteller_Championwahl-mid.jpg" media="(min-width: 600px)"&gt;
        &lt;source srcset="{filename}/images/Teamersteller_Championwahl.jpg" media="(min-width: 850px)"&gt;
        --&gt;

        &lt;img src="https://c3vo.de/images/Teamersteller_Championwahl-small.jpg" alt="Auswahl der Position und Rolle im Teamersteller. In diesem Fall wird beispielsweise Draven als Schütze auf der Top Lane gespielt. Das Ganze wird zusätzliche auf einer Karte visualisiert."&gt;
    &lt;/picture&gt;
    &lt;figcaption&gt;
    Auswahl der Position und Rolle im Teamersteller.
    &lt;/figcaption&gt;

&lt;/figure&gt;

&lt;p&gt;Einen Nachteil gibt es dennoch: die lange Wartezeit. Sie betrug bei mir
meist um die fünf Minuten gegenüber knapp zwei bei der normalen
Teamsuche. Erst dann wird meist ein Team gefunden (der Bildschirm schaut
dann ungefähr so wie im zweiten Screenshot aus). Das ganze verlängert
sich noch, sobald der Teamleiter die Gruppe wieder auflöst. Das ist
nämlich auch möglich.&lt;/p&gt;
&lt;figure&gt;

&lt;picture&gt;
    &lt;!-- TODO
    &lt;source media="(min-width: 950px)" srcset="{filename}/images/Teamersteller_Warten.jpg"&gt;
    &lt;source media="(min-width: 600px)" srcset="{filename}/images/Teamersteller_Warten-mid.jpg"&gt;
    --&gt;

    &lt;img src="https://c3vo.de/images/Teamersteller_Warten-small.jpg" alt="Warten bis ein gegnerisches Team gefunden wurde. Alle Teammitglieder müssen davor bestätigen, dass sie bereit zum Spielen sind."&gt;
&lt;/picture&gt;

    &lt;figcaption&gt;
    Warten bis ein gegnerisches Team gefunden wurde.
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Allerdings wird daran
&lt;a href="http://forums.euw.leagueoflegends.com/board/showthread.php?t=1678471"&gt;gearbeitet&lt;/a&gt;.
So hat man zum Beispiel versucht, die Anzahl der Teams zu verkleinern,
indem man ein neues nur eröffnen kann, sobald man neben sich selbst noch
einen Freund im Team hat. Das hat aber auch nur bedingt geholfen, wie
man an den obigen Zahlen gesehen hat. Dort war diese Verbesserung
nämlich schon eingebaut.&lt;/p&gt;
&lt;p&gt;Summa sumarum, finde ich den Teamersteller persönlich sehr praktisch, um
mal gezielt einen Champion auf einer bestimmten Position auszuprobieren.
Allerdings wird es mit dem nächsten Match über den Teamersteller dauern,
da die Verwendung (zurzeit) erst ab Level 25 möglich ist. Ich habe
momentan Level 10 erreicht – das kann also dauern.&lt;/p&gt;
&lt;p&gt;Weitere Informationen gibt es auf der &lt;a href="http://teambuilder.euw.leagueoflegends.com/de/teambuilder/"&gt;eigenen Seite zum
Teamersteller&lt;/a&gt;
sowie in einem &lt;a href="https://www.youtube.com/watch?v=AF_Y2gOsSaU"&gt;einminütigen Video&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Fri, 11 Apr 2014 11:30:00 +0200</pubDate><guid>tag:c3vo.de,2014-04-11:home/lol10-teamersteller/</guid><category>League of Legends</category><category>Games</category></item><item><title>BlackBerryID → Müll</title><link>https://c3vo.de/home/blackberryid-mull/</link><description>&lt;p&gt;Ich hab mir vor einiger Zeit mal den BlackBerry Messenger (kurz: BBM)
auf meinem Androiden installiert. Nun möchte ich mich aber gern wieder
von diesem trennen (Grund ist ein anderes Thema). Die BBM-App ist auch
schnell deinstalliert. Allerdings bleibt die sogenannte &lt;a href="http://de.blackberry.com/bbid.html"&gt;„BlackBerry
ID“&lt;/a&gt; weiterhin erhalten. Wie kann
man die also ins Nirwana schicken?&lt;/p&gt;
&lt;h2&gt;Einzige Möglichkeit: Link in Bestätigungsmail&lt;/h2&gt;
&lt;p&gt;Direkt nach der Anmeldung erhält man auf die angegeben E-Mail-Adresse
eine Bestätigungsmail. Schaut man sich die mal etwas genauer an, findet
man neben dem Bestätigungslink einen weiteren (vgl. erstes Bild).&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="https://c3vo.de/images/BlackBerryID-Mail.png" /&gt;&lt;/p&gt;
&lt;p&gt;Dieser ist dazu gedacht, bei falschen E-Mail-Adressen die sofortige
Löschung zu beantragen. Also letztendlich auch das, was ich will. Link
anklicken, einmal kurz mit „Fortfahren“ bestätigen; fertig (siehe
zweites Bild).&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="https://c3vo.de/images/BlackBerryID-delete.png" /&gt;&lt;/p&gt;
&lt;p&gt;Nach längerem Suchen mit Google und in den &lt;a href="http://docs.blackberry.com/de-de/smartphone_users/deliverables/39271/Frequently_asked_questions_1259641_11.jsp"&gt;FAQ von
BlackBerry&lt;/a&gt;
scheint das der einzige Weg zu sein, sich von dieser ID zu trennen.
Meine eigene Meinung dazu im Folgenden.&lt;/p&gt;
&lt;h2&gt;Ernsthaft?&lt;/h2&gt;
&lt;p&gt;Erst habe ich noch eine zweite Möglichkeit zum Löschen vermutet. Man
kann sich nämlich mit seiner ID bei BlackBerry
&lt;a href="https://blackberryid.blackberry.com/bbid/login"&gt;anmelden&lt;/a&gt;. Dort gibt es
aber nicht die Möglichkeit, diese zu löschen. Lediglich die bestehenden
Daten können geändert werden. Löschen Nutzer solche Daten so wenig, dass
man sich die Funktion einfach spart? Anders kann ich mir die fehlende
Funktion zumindest nicht erklären. Hat man die E-Mail also nicht mehr,
bleibt einem eigentlich nur noch mehr oder weniger das Betteln beim
Support. Und wie die das dann mit der Authentifikation machen, ich weiß
es nicht…&lt;/p&gt;
&lt;p&gt;Zum Anderen ist mir das mit dem Link in der Bestätigungsmail auch nicht
ganz koscher. Es braucht genau &lt;em&gt;zwei&lt;/em&gt; Klicks, um die ID zu löschen. Ohne
jegliche Authentifikation. Diese Aktion kann also jeder durchführen, der
diesen einen Link hat. Das kann im Worst Case auch jemand sein, der
entgegen dem eigentlichen Eigentümer der BlackBerry ID handelt und
obwohl die angegebenen Daten stimmen.&lt;/p&gt;
&lt;p&gt;Abgesehen davon mag die fehlende Löschfunktion Sinn gemacht haben,
solange es Geräte nur mit BlackBerry OS gab. Sobald aber Apps ebenfalls
für Android, iOS oder &lt;a href="http://www.zdnet.de/88185036/bbm-kommt-im-sommer-auf-windows-phone/"&gt;zukünftig Windows
Phone&lt;/a&gt;
angeboten werden, ist das leicht überholt. Das bildet meiner Meinung
nach wenig Vertrauen beim Verbraucher. Gut, dass ich keinen Dienst mit
BlackBerrys Einfluss nutzen muss…&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Mon, 07 Apr 2014 21:30:00 +0200</pubDate><guid>tag:c3vo.de,2014-04-07:home/blackberryid-mull/</guid><category>BlackBerry</category><category>Geschichten</category></item><item><title>[LOL#9] Champion Historie</title><link>https://c3vo.de/home/lol9-champion-historie/</link><description>&lt;p&gt;Trotz ein paar Wochen der Schreibabstinenz ging das Leben (&amp;amp; Spielen)
weiter. Deswegen wurden auch ein paar Champions getestet. Eben jene, die
in den letzten Wochen kostenlos zu spielen waren. Darum mal eine kleine
Auflistung der Getesteten plus Kommentar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/ashe/"&gt;Ashe&lt;/a&gt;
    und
    &lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/garen/"&gt;Garen&lt;/a&gt;&lt;br /&gt;
    Eindeutig für blutige Anfänger ausgelegt. Ist damit relativ solide
    in meinem Ranking; kann man also ab und zu mal spielen. Allerdings
    wird es auf Dauer ein wenig eintönig, weil nicht wirklich sehr viele
    verschiedene Fähigkeiten oder Kombos gefordert werden.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/shyvana/"&gt;Shyvana&lt;/a&gt;&lt;br /&gt;
    Gefällt mir sehr gut. Ich hab mir angewöhnt des Öfteren mit
    „Flammenodem“ anzufangen. Das bietet den Vorteil, Gegner relativ
    früh und aus der Ferne zu attackieren, ohne dabei selbst ihn großer
    Gefahr zu schweben. Funktioniert gerade in Lanes echt gut.&lt;br /&gt;
    Die Ulti „Erbe des Drachen“ gefällt mir ebenfalls sehr gut. Erst
    einmal verwandelt sich Shyvana in einen Drachen, wobei man direkt
    auf einen Gegner springt und ihm so Schaden zufügt. Um sich
    verwandeln zu können, muss man einen gewisse Menge an Zorn gesammelt
    haben. Diesen baut man als Drache, bis man eben bei Null angekommen
    ist, ab und ist ab diesem Zeitpunkt an kein Drache mehr. Zorn
    sammelt man bei zum Beispiel normalen Angriffen gegenüber Gegnern.
    Hat man wieder genug Zorn, kann der gesamte Prozess von vorne
    beginnen. Klingt komplex, ist es aber eigentlich nicht wirklich.&lt;br /&gt;
    Das bedeutet aber auch, dass die anderen Fähigkeiten keinerlei Mana-
    oder Zorn-Kosten haben, sondern lediglich Abklingzeit. Auch
    interessant zu wissen ist, dass die ersten drei Fähigkeiten
    verstärkt werden, sobald man noch in einen Drachen verwandelt ist.
    Somit am besten erst in einen Drachen verwandeln und dann die
    restlichen Fähigkeiten auf die Gegner abfeuern.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/velkoz/"&gt;Vel'Koz&lt;/a&gt;&lt;br /&gt;
    Mächtig als Gegner, aber ich kann ihn nicht wirklich spielen. Mir
    fehlt da gefühlt vor allem eine Fähigkeiten für den Nahkampf. Gerade
    der „Lebensformdesintegrator“ (btw. gar nicht komplizierter Name
    \^\^) ist sehr interessant und kann mehreren Gegner auf einmal
    zusetzen, da der „Energiestrahl“ der Maus folgt.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/diana/"&gt;Diana&lt;/a&gt;&lt;br /&gt;
    Ebenfalls ein mächtiger Gegner, sobald man die Anfangsphase
    überstanden hat. Danach geht es aufwärts. Aber eben nur, wenn man es
    bis dahin schafft. Bei mir funktionierte das in meinem Test zu
    langsam, von daher wurde das bei Diana nicht wirklich etwas mit dem
    für mich geeigneten Champion.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/caitlyn/"&gt;Caitlyn&lt;/a&gt;&lt;br /&gt;
    Kurz: Guter Champion, der Schaden machen kann.&lt;br /&gt;
    Lang: Die Fähigkeiten „Piltover-Friedensstifter“, „Kaliber 90-Netz“
    und „Ass im Ärmel“ sind soweit alle imho in Ordnung. Mit allen kann
    man beim Gegner gut Leben runterschrauben und mit „Kaliber 90-Netz“
    verlangsamen (daher von Vorteil, wenn man es als erstes einsetzt).
    Einzig „Yordle-Schlagfalle“ nutze ich zu wenig, einfach weil ich sie
    vergesse. Beziehungsweise sie vor allem für Jungler interessant
    wären und ich jetzt nicht soo viel jungle.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gameinfo.euw.leagueoflegends.com/de/game-info/champions/twitch/"&gt;Twitch&lt;/a&gt;&lt;br /&gt;
    Diesen Champion hab ich in einem Bot-Game nur kurz angetestet. Wie
    es sich für eine Seuchenratte gehört, wird dabei vor allem auf den
    Einsatz von Gift gesetzt. In der kurzen Zeit, in der ich Twitch
    gespielt habe, bin ich nicht wirklich zu einer gewinnbringenden
    Strategie gekommen. Das mag nach einer längeren Beschäftigung mit
    ihm besser laufen; bei mir wollte es in der kurzen Zeit (15 min) auf
    jeden Fall nicht.&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christoph</dc:creator><pubDate>Sun, 06 Apr 2014 14:15:00 +0200</pubDate><guid>tag:c3vo.de,2014-04-06:home/lol9-champion-historie/</guid><category>League of Legends</category><category>Games</category></item></channel></rss>