<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Marco Gabriel Blog</title>
    <link>https://www.marcogabriel.com/posts/</link>
    <description>Recent content in Posts on Marco Gabriel Blog</description>
    <image>
      <title>Marco Gabriel Blog</title>
      <url>https://www.marcogabriel.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://www.marcogabriel.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sat, 05 Nov 2022 11:40:24 +0100</lastBuildDate>
    <atom:link href="https://www.marcogabriel.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>GFS2 unter Proxmox um zusätzliche Nodes erweitern</title>
      <link>https://www.marcogabriel.com/posts/2022-11-05-gfs2-unter-proxmox-um-zusaetzliche-nodes-erweitern/</link>
      <pubDate>Sat, 05 Nov 2022 11:40:24 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/2022-11-05-gfs2-unter-proxmox-um-zusaetzliche-nodes-erweitern/</guid>
      <description>&lt;p&gt;Das Schöne an Proxmox VE (und generell an Open Source Software) ist, dass man nicht auf die Anwendungsmöglichkeiten beschränkt ist, die ein Hersteller für mich vorsieht.&lt;/p&gt;
&lt;p&gt;Proxmox VE bindet FC- oder iSCSI-Storages normalerweise als Block-Storage ein. Das ist recht unkompliziert, performant und einfach zu erledigen. Allerdings lassen sich dann keine Snapshots von einzelnen Images oder VMs erzeugen. Storage-seitig können zwar Snapshots erzeugt werden (sofern die Storage das anbietet), aber dann wird eben die gesamte LUN einem Snapshot unterzogen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wie man git Repositories auf der lokalen Festplatte findet</title>
      <link>https://www.marcogabriel.com/posts/656-wie-man-git-repositories-auf-der-lokalen-festplatte-findet/</link>
      <pubDate>Fri, 25 Oct 2019 09:22:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/656-wie-man-git-repositories-auf-der-lokalen-festplatte-findet/</guid>
      <description>&lt;p&gt;Ich hatte irgendwann mal ein paar Scripte entwickelt, die ich nun wieder suchte. Ich hatte grob eine Ahnung, wo sie sein könnten. Da das schon eine Weile her war, konnte ich mich nur an den Server, nicht aber mehr an das Verzeichnis erinnern. Die meisten Scripte lege ich in Standardverzeichnisse wie /usr/local/bin, weil ich sie dort auch wieder finden würde. Hier handelte es sich aber um ein git Repository und nicht um fertige, ausführbare Scripte.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Konsole remote anzeigen</title>
      <link>https://www.marcogabriel.com/posts/655-linux-konsole-remote-anzeigen/</link>
      <pubDate>Sat, 18 Jun 2016 11:53:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/655-linux-konsole-remote-anzeigen/</guid>
      <description>&lt;p&gt;Kürzlich hatte ich ein Update direkt an der Konsole eines Linux Servers gestartet. Das Update dauerte länger und ich wollte aber nicht noch länger vor der Konsole stehen und warten. Aber ich wollte die Ausgabe des bereits gestarteten Updates natürlich sehen.&lt;/p&gt;
&lt;p&gt;Eine einfache und praktische Lösung dazu ist, sich per SSH von extern aus einzuloggen und sich die Konsole anzeigen zu lassen. Das erledigt der Befehl &lt;code&gt;screendump&lt;/code&gt; für uns. Wenn ich nun den Fortschritt noch sehen möchte, verwende ich dazu &amp;ldquo;watch&amp;rdquo; und beschränke die Anzahl der anzuzeigenden Zeilen mit tail.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hardware Seriennummer unter Linux auslesen</title>
      <link>https://www.marcogabriel.com/posts/654-hardware-seriennummer-unter-linux-auslesen/</link>
      <pubDate>Sat, 28 May 2016 11:38:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/654-hardware-seriennummer-unter-linux-auslesen/</guid>
      <description>&lt;p&gt;Neulich testete ich eine neue Software zur Verwaltung vieler Systeme. Um die Systeme unterscheiden zu können ist die Seriennummer der Hardware häufig recht hilfreich, denn daraus lassen sich eventuelle Herstellungsdaten und genaue Systeminformationen beim Hersteller erfragen.&lt;/p&gt;
&lt;p&gt;Bei Windows Systemen funktionierte das Auslesen der Seriennnummer auch problemlos. Nur das Auslesen der Seriennummer von Linux Systemen funktioniert leider gar nicht.&lt;/p&gt;
&lt;p&gt;Dabei geht das unter Linux sehr einfach:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;~# dmidecode -t system|grep -i &amp;#34;serial&amp;#34;
   Serial Number: xxxxxxx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;dmidecode kann übrigens noch mehr auslesen. Ein Blick in die Dokumentation oder ein einfaches dmidecode auf der Shell lohnt sich.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Alle ZFS Snapshots auf einmal löschen</title>
      <link>https://www.marcogabriel.com/posts/653-alle-zfs-snapshots-auf-einmal-loeschen/</link>
      <pubDate>Thu, 26 May 2016 13:42:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/653-alle-zfs-snapshots-auf-einmal-loeschen/</guid>
      <description>&lt;p&gt;ZFS hat Snapshots um regelmäßige Sicherungspunkte zu erstellen. Das lässt sich mittels zfs-auto-snapshot sogar automatisieren.&lt;/p&gt;
&lt;p&gt;Wenn man nun aber plötzlich Platz benötigt kann es mühsam sein, hunderte von Snapshots manuell zu löschen. Das geht auch mit einem Einzeiler:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for snapshot in `zfs list -H -t snapshot | cut -f 1`; do zfs destroy $snapshot; done
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Lets Encrypt Zertifikate automatisch installieren</title>
      <link>https://www.marcogabriel.com/posts/652-lets-encrypt-zertifikate-automatisch-installieren/</link>
      <pubDate>Fri, 13 May 2016 17:35:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/652-lets-encrypt-zertifikate-automatisch-installieren/</guid>
      <description>&lt;p&gt;Der &lt;a href=&#34;https://certbot.eff.org/&#34;&gt;CertBot&lt;/a&gt; von der Electronic Frontier Foundation geht dabei zur Hand.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;CertBot&#34; loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/652-lets-encrypt-zertifikate-automatisch-installieren/certbot.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>rsync zu langsam im LAN - Wie man rsync beschleunigt</title>
      <link>https://www.marcogabriel.com/posts/651-rsync-zu-langsam-im-lan-wie-man-rsync-beschleunigt/</link>
      <pubDate>Wed, 11 May 2016 18:05:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/651-rsync-zu-langsam-im-lan-wie-man-rsync-beschleunigt/</guid>
      <description>&lt;p&gt;&amp;hellip;hat schon jemand geschrieben. Man kann es bereits &lt;a href=&#34;https://gist.github.com/KartikTalwar/4393116&#34;&gt;hier&lt;/a&gt; nachlesen.&lt;/p&gt;
&lt;p&gt;rsync nutzt SSH und SSH verschlüsselt. Das kostet Zeit und Performance, vor allem wenn man im LAN mit Gigabit unterwegs ist.&lt;/p&gt;
&lt;p&gt;Kurz gesagt nutzt man die richtigen Optionen und macht&amp;rsquo;s damit schneller:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rsync -aHAXxv --numeric-ids --delete --progress \
    -e &amp;#34;ssh -T -c arcfour -o Compression=no -x&amp;#34; \
    user@&amp;lt;source&amp;gt;:&amp;lt;source_dir&amp;gt; &amp;lt;dest_dir&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>site_url in Modx Revo</title>
      <link>https://www.marcogabriel.com/posts/646-site_url-in-modx-revo/</link>
      <pubDate>Sat, 27 Dec 2014 23:59:46 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/646-site_url-in-modx-revo/</guid>
      <description>&lt;p&gt;Neulich stellte ich eine Modx Revo Seite von http auf https um. Allerdings hatte ich danach damit zu kämpfen, dass in der Base URL mal &lt;code&gt;http://&lt;/code&gt; und mal &lt;code&gt;https://&lt;/code&gt; Links auftauchten. Da Modx die &lt;code&gt;[[++base_url]]&lt;/code&gt; selbst ermittelt, kam dann je nach erstem Abruf entweder ein http oder https zum Zug.&lt;/p&gt;
&lt;p&gt;Im Modx Forum habe ich eine &lt;a href=&#34;http://forums.modx.com/thread/31534/revolution-solved-quick-question-standard-way-to-retrieve-the-base-url&#34;&gt;Lösung&lt;/a&gt; dazu gefunden: &lt;code&gt;[[!++site_url]]&lt;/code&gt; verwenden und diese im verwendeten Kontext einfach festschreiben. Danach sollten alle Links sauber sein.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MODx Revo hacked (Update 23.12.2014)</title>
      <link>https://www.marcogabriel.com/posts/645-modx-revo-hacked-update-23.12.2014/</link>
      <pubDate>Tue, 23 Dec 2014 00:46:37 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/645-modx-revo-hacked-update-23.12.2014/</guid>
      <description>&lt;p&gt;Von Googles Webmastertools wurde ich eben darauf hingewiesen, dass eine meiner MODx Revo Sites offenbar URLs für Spammer redirected. Sie Website verwies also auf dubiose Shops mit Medikamenten und anderem Gedöns.&lt;/p&gt;
&lt;p&gt;Nach einer ausgedehnten Analyse habe ich dann zunächst in &lt;code&gt;core/cache/&lt;/code&gt; mehrere &lt;code&gt;tmp-*&lt;/code&gt; Dateien gefunden, die offenbar immer dann angelegt wurden, wenn eine dieser URLs aufgerufen worden ist.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/645-modx-revo-hacked-update-23.12.2014/tmp-files.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Die Datei selbst enthielt etwas PHP Code, der sich gegenüber Google und anderen Suchmaschinen unsichtbar machte, in dem der Code nur ausgeführt wurde, wenn der Request nicht von bestimmten IPs oder Agents kam. Im Web habe ich darüber etwas unter dem Begriff &amp;ldquo;Google Conditional Hack&amp;rdquo; gefunden, z.B. &lt;a href=&#34;http://typo3blogger.de/die-eigene-webseite-als-spam-schleuder-der-google-conditional-hack/&#34;&gt;hier&lt;/a&gt;. Scheinbar existiert dieser Hack &lt;a href=&#34;http://blog.namics.com/2012/01/a-study-in-viagra.html&#34;&gt;für&lt;/a&gt; &lt;a href=&#34;http://forums.modx.com/thread/92140/security-warning-need-help-understanding-new-version-of-site-hack-on-evo-1-014&#34;&gt;diverse&lt;/a&gt; CMS Systeme, nicht nur für MODx Revo. In meinem speziellen Fall scheint der Angriff zumindest auf MODx angepasst worden zu sein, denn er gibt sich als Core Komponente aus, damit Benutzer ihn nicht finden oder sich nicht trauen ihn zu löschen:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Warum varnish für normale Webserver nichts bringt</title>
      <link>https://www.marcogabriel.com/posts/644-warum-varnish-fuer-normale-webserver-nichts-bringt/</link>
      <pubDate>Sun, 30 Nov 2014 15:00:46 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/644-warum-varnish-fuer-normale-webserver-nichts-bringt/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.varnish-cache.org/&#34;&gt;Varnish&lt;/a&gt; ist ein extrem schneller caching reverse Proxy, der einem normalen Webserver vorgeschaltet wird. In der Regel beantwortet Varnish dann die Anfragen der Benutzer, entscheidet, ob er aus seinem eigenen Cache liefern kann und den Webserver dahinter nicht mehr fragen muss. Da Varnish den Proxy im Speicher hält, bedient er Anfragen extrem schnell. Was er nicht selbst bedienen kann, z.B. weil die Seiten aktive Inhalte haben oder nicht gecached werden dürfen, gibt er an den dahinter liegenden Webserver weiter. Darüber hinaus überwacht er die Webserver und verteilt Anfragen an mehrere Webserver. Fällt einer der Webserver aus, leitet Varnish dort einfach keine Anfragen mehr hin. Benutzer bekommen davon überhaupt nichts mit. Varnish ist übrigens auch völlig anpassbar über eine eigene Konfigurationssprache. Damit lassen sich extrem tolle Dinge relativ einfach realisieren.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Laufzeit eines Scripts unter Linux messen</title>
      <link>https://www.marcogabriel.com/posts/643-laufzeit-eines-scripts-unter-linux-messen/</link>
      <pubDate>Sun, 30 Nov 2014 13:56:48 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/643-laufzeit-eines-scripts-unter-linux-messen/</guid>
      <description>&lt;p&gt;Neulich hatte ich eine Unterhaltung darüber, wie man die Laufzeit eines Programms möglichst einfach misst. Im konkreten Fall wollten wir wissen, wie lange ein mysqldump benötigt hat. Dazu gibts unter Linux den Befehl time, den man dem zu messenden Programm einfach voranstellt.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;time &amp;lt;Programm und Parameter&amp;gt;
[...Ausgabe des Programms...]

real    0m56.754s
user    0m0.784s
sys    0m4.004s
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Wert hinter real zeigt an, wie lange das Programm gelaufen ist, im obigen Beispiel 0 Minuten, 56 Sekunden und 754 Millisekunden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mysqldump: Error 2020: Got packet bigger than ‘max_allowed_packet’ bytes</title>
      <link>https://www.marcogabriel.com/posts/642-mysqldump-error-2020-got-packet-bigger-than-max-allowed-packet-bytes/</link>
      <pubDate>Sun, 30 Nov 2014 13:38:12 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/642-mysqldump-error-2020-got-packet-bigger-than-max-allowed-packet-bytes/</guid>
      <description>&lt;p&gt;Für ein &lt;a href=&#34;http://www.inett.de/produkte/zarafa&#34;&gt;Zarafa&lt;/a&gt; Upgrade von 6.40 auf 7.1 musste ich eine MySQL Datenbank von einem alten auf einen neuen Server übernehmen. Da es sich um eine relativ große Datenbank handelte, testete ich den Vorgang vorab und alles funktionierte - inklusive dem Dump und dem Restore der Datenbank.&lt;/p&gt;
&lt;p&gt;Beim eigentlichen Upgrade dann brach der Dump mit der folgenden Meldung ab:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mysqldump: Error 2020: Got packet bigger than &amp;#39;max_allowed_packet&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Das Problem ist, dass &lt;code&gt;mysqldump&lt;/code&gt; nicht die gleichen Konfigurationsparameter wie der &lt;code&gt;mysqld&lt;/code&gt; verwendet. In der &lt;code&gt;/etc/mysql/my.cnf&lt;/code&gt; kommt ganz weit unten eine Sektion namens &lt;code&gt;[mysqldump]&lt;/code&gt;, in der man die &lt;code&gt;max_allowed_packet&lt;/code&gt; Größe anpassen muss, wenn der Server ebenfalls größere Pakete zulässt. Passt man diese Größe nicht an, können Backups unbrauchbar sein weil sie mittendrin abbrechen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Diffie-Hellmann Schlüsseltausch: Warum SSL funktioniert</title>
      <link>https://www.marcogabriel.com/posts/638-diffie-hellmann-schluesseltausch-warum-ssl-funktioniert/</link>
      <pubDate>Sun, 27 Apr 2014 11:10:20 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/638-diffie-hellmann-schluesseltausch-warum-ssl-funktioniert/</guid>
      <description>&lt;p&gt;Heute schon den Kontostand geprüft oder online etwas eingekauft? Meist verwendet man dazu eine verschlüsselte Verbindung, auch wenn das vielen nicht bewusst ist, weil es automatisch irgendwie im Hintergrund geschieht.&lt;/p&gt;
&lt;p&gt;Obwohl wir alle fast täglich Verschlüsselung im Internet einsetzen, weiß kaum jemand, wie das überhaupt funktioniert.&lt;/p&gt;
&lt;p&gt;Auf Youtube gibt&amp;rsquo;s nun ein schönes &lt;a href=&#34;https://www.youtube.com/embed/YEBfamv-_do&#34;&gt;Video&lt;/a&gt;, das erläutert, wie zwei Personen (oder Systeme) Daten miteinander austauschen können ohne sich vorher jemals getroffen zu haben.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQLite Zugriff von extern</title>
      <link>https://www.marcogabriel.com/posts/637-sqlite-zugriff-von-extern/</link>
      <pubDate>Wed, 02 Apr 2014 20:44:12 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/637-sqlite-zugriff-von-extern/</guid>
      <description>&lt;p&gt;SQLite ist eine hübsche kleine Datenbank mit vielen Möglichkeiten. Allerdings kennt sie keinen Client/Server Betrieb, so dass man nur lokal direkt auf die Daten zugreifen kann. Ich habe aktuell die Herausforderung, dass ich auf eine SQLite Datenbank über das Netz zugreifen muss, da ich mit den Daten quasi in Echtzeit auf einem anderen Rechner weiterverarbeite.&lt;/p&gt;
&lt;p&gt;Konkret geht es um eine SQLite Datenbank auf einer Asterisk Telefonanlage, in der ich die Call Detail Records (CDR) abgreifern kann. Leider ist der Asterisk geschlossen und Module, die es mir leichter machen würden, die Daten gleich in eine externe Datenbank zu schreiben sind nicht vorhanden. Also brauche ich wohl oder übel die Trickkiste.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vi lernen in 30 Minuten</title>
      <link>https://www.marcogabriel.com/posts/636-vi-lernen-in-30-minuten/</link>
      <pubDate>Sun, 22 Dec 2013 02:02:32 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/636-vi-lernen-in-30-minuten/</guid>
      <description>&lt;p&gt;Geht nicht? Geht doch.&lt;/p&gt;
&lt;p&gt;Und das Beste daran ist:  &amp;ldquo;vimtutor &amp;quot; ist sehr wahrscheinlich schon installiert.&lt;/p&gt;
&lt;p&gt;Einfach auf der Shell starten und den Anweisungen folgen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vimtutor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/636-vi-lernen-in-30-minuten/vimtutor.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linkverwaltung mit eigenem Bookmark Manager als Delicous Alternative</title>
      <link>https://www.marcogabriel.com/posts/635-linkverwaltung-mit-eigenem-bookmark-manager-als-delicous-alternative/</link>
      <pubDate>Sat, 21 Dec 2013 15:10:29 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/635-linkverwaltung-mit-eigenem-bookmark-manager-als-delicous-alternative/</guid>
      <description>&lt;p&gt;Delicious war toll und ich habe es lange genutzt um meine eigenen Bookmarks unabhängig vom Browser zu verwalten. Ich habe Delicious übrigens auch als Suchmaschine genutzt, da die Inhalte jeweils von Menschen zusammengestellt waren, aber das ist eine andere Geschichte.&lt;/p&gt;
&lt;p&gt;Zwischenzeitlich hat Delicious mehrmals den Besitzer gewechselt und ist heute auch für mich nicht mehr das was ich eigentlich möchte. Daher habe ich mich nach einer eigenen Verwaltung für meine Bookmarks umgeschaut, die ich auch auf meinem eigenen Webspace betreiben kann, um auch unabhängig zu werden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fileListReceive failed bei backuppc rsync Sicherung</title>
      <link>https://www.marcogabriel.com/posts/634-filelistreceive-failed-bei-backuppc-rsync-sicherung/</link>
      <pubDate>Wed, 09 Oct 2013 17:03:07 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/634-filelistreceive-failed-bei-backuppc-rsync-sicherung/</guid>
      <description>&lt;p&gt;&amp;hellip;könnte darauf hindeuten, dass rsync noch gar nicht installiert ist.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt-get install rsync
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;behebt das Problem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux diff im Detail</title>
      <link>https://www.marcogabriel.com/posts/633-linux-diff-im-detail/</link>
      <pubDate>Sun, 29 Sep 2013 17:26:20 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/633-linux-diff-im-detail/</guid>
      <description>&lt;p&gt;Eben habe ich einen schönen &lt;a href=&#34;http://www.antusblog.de/2009/05/13/dateien-vergleichen-mit-diff-kompare-und-meld/&#34;&gt;Artikel&lt;/a&gt; gefunden, der diff, kompare und meld mal im Detail beschreibt. Ich nutze diff beispielsweise immer um bei Upgrades zu sehen, welche Optionen bei einer neuen Konfigurationsdaten dazu gekommen sind.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mdadm Linux Software RAID Monitoring mit Zabbix</title>
      <link>https://www.marcogabriel.com/posts/632-mdadm-linux-software-raid-monitoring-mit-zabbix/</link>
      <pubDate>Thu, 19 Sep 2013 00:18:31 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/632-mdadm-linux-software-raid-monitoring-mit-zabbix/</guid>
      <description>&lt;p&gt;Sehr schöne Lösung: &lt;a href=&#34;https://www.zabbix.com/forum/showpost.php?p=91083&amp;amp;postcount=18&#34;&gt;https://www.zabbix.com/forum/showpost.php?p=91083&amp;amp;postcount=18&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mails eines bestimmten Absenders aus der Postfix Queue löschen</title>
      <link>https://www.marcogabriel.com/posts/631-mails-eines-bestimmten-absenders-aus-der-postfix-queue-loeschen/</link>
      <pubDate>Thu, 12 Sep 2013 21:44:26 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/631-mails-eines-bestimmten-absenders-aus-der-postfix-queue-loeschen/</guid>
      <description>&lt;p&gt;Zabbix hat uns heute unseren Mailserver zugespammt mit berechtigten Fehlermeldungen. Eine einfache Möglichkeit, Mails eines bestimmten Absenders aus einer Postfix Queue zu löschen, bevor diese zugestellt werden, zeige ich hier (alles in einer Zeile):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mailq | grep absender@example.com | awk &amp;#39;{print $1}&amp;#39; &amp;gt; /tmp/zmails.tmp &amp;amp;&amp;amp; while read LINE; do postsuper -d $LINE; done &amp;lt; /tmp/zmails.tmp &amp;amp;&amp;amp; rm /tmp/zmails.tmp
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Zabbix Queue voll?</title>
      <link>https://www.marcogabriel.com/posts/630-zabbix-queue-voll/</link>
      <pubDate>Wed, 11 Sep 2013 22:26:27 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/630-zabbix-queue-voll/</guid>
      <description>&lt;p&gt;Merke: Zeit richtig einstellen auf dem Zabbix Server hilft.&lt;/p&gt;
&lt;p&gt;Der besagte Zabbix Server hatte die falsche Zeitzone und ging damit zwei Stunden nach. Damit kamen bestimmte Pakete von anderen Agents nicht  &amp;ldquo;rechtzeitig &amp;quot; und wurden verworfen.&lt;/p&gt;
&lt;p&gt;Nach Anpassung der Zeitzone mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;dpkg-reconfigure tzdata
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;lief die Queue auch schön leer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zabbix Performance Tuning</title>
      <link>https://www.marcogabriel.com/posts/629-zabbix-performance-tuning/</link>
      <pubDate>Sun, 01 Sep 2013 20:30:23 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/629-zabbix-performance-tuning/</guid>
      <description>&lt;p&gt;Dazu gibts doch eine nette Präsentation, die zwar aus 2011 stammt, aber nach wie vor gültig ist:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://de.slideshare.net/xsbr/alexei-vladishev-zabbixperformancetuning&#34;&gt;https://de.slideshare.net/xsbr/alexei-vladishev-zabbixperformancetuning&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Espruino: JavaScript Mikrocontroller</title>
      <link>https://www.marcogabriel.com/posts/628-espruino-javascript-mikrocontroller/</link>
      <pubDate>Sat, 31 Aug 2013 11:32:12 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/628-espruino-javascript-mikrocontroller/</guid>
      <description>&lt;p&gt;Auf Kickstarter.com gibt es gerade ein neues Projekt: &lt;a href=&#34;http://www.kickstarter.com/projects/48651611/espruino-javascript-for-things&#34;&gt;Espruino (JavaScript for Things)&lt;/a&gt;, ein Mikrocontroller der ähnlich einem Raspberry Pi klein und energiesparend ist, sich aber in JavaScript programmieren lässt. Nach ein paar Tagen bereits wurde das Ziel für die Realisierung erreicht, aber man kann noch einsteigen.&lt;/p&gt;
&lt;p&gt;Interessant ist das allemal. Ich sollte das im Auge behalten.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zabbix SNMP - Error building asn.1 representation</title>
      <link>https://www.marcogabriel.com/posts/627-zabbix-snmp-error-building-asn.1-representation/</link>
      <pubDate>Wed, 28 Aug 2013 22:29:49 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/627-zabbix-snmp-error-building-asn.1-representation/</guid>
      <description>&lt;p&gt;Fragt man mit Zabbix per SNMP Hosts ab und erhält die Meldung&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Error building asn.1 representation
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;liegt es vermutlich an den fehlenden (und vermutlich noch nicht installierten) MIBs. Um unter Debian/Ubuntu diese MIBs zu installieren, genügt ein&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt-get install snmp-mibs-downloader
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach sollte Zabbix noch mal durchgestartet werden und die SNMP Fehlermeldung sollte weg sein.&lt;/p&gt;
&lt;p&gt;Testen kann man dies beispielsweise mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;snmpget -v2c -c public &amp;lt;serveradresse&amp;gt; &amp;lt;server.adresse&amp;gt; SNMPv2-MIB::sysUpTime.0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Erhält man wie erwartet die aktuelle Uptime als Antwort, werden die MIBs aufgelöst und es funktioniert.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OmniOS</title>
      <link>https://www.marcogabriel.com/posts/625-omnios/</link>
      <pubDate>Tue, 27 Aug 2013 16:44:18 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/625-omnios/</guid>
      <description>&lt;p&gt;Neulich gefunden: &lt;a href=&#34;http://omnios.omniti.com/&#34;&gt;OmniOS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ein erweitertes Illumos mit ein paar netten, zusätzlichen Features. Ich nehme an, es fühlt sich trotzdem ähnlich einem Solaris an.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Twitter Bootstrap oder Zurb Foundation als Responsive CSS Framework?</title>
      <link>https://www.marcogabriel.com/posts/624-twitter-bootstrap-oder-zurb-foundation-als-responsive-css-framework/</link>
      <pubDate>Mon, 26 Aug 2013 21:49:48 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/624-twitter-bootstrap-oder-zurb-foundation-als-responsive-css-framework/</guid>
      <description>&lt;p&gt;Nette Zusammenstellung, geht fast als Cheat Sheet durch und beinhaltet auch das gerade erst veröffentlichte Bootstrap 3 bereits: &lt;a href=&#34;http://responsive.vermilion.com/compare.php&#34;&gt;http://responsive.vermilion.com/compare.php&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>GlusterFS zu OCFS2 mit DRBD migrieren</title>
      <link>https://www.marcogabriel.com/posts/623-glusterfs-zu-ocfs2-mit-drbd-migrieren/</link>
      <pubDate>Mon, 26 Aug 2013 11:50:35 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/623-glusterfs-zu-ocfs2-mit-drbd-migrieren/</guid>
      <description>&lt;p&gt;Mit Cluster Filesystemen kann man schon ziemlich viel Zeit verbringen. Nicht nur beim Einrichten, sondern auch beim Warten auf Daten, die von eben jenen Filesystemen angefordert werden.&lt;/p&gt;
&lt;p&gt;Major Hayden &lt;a href=&#34;http://major.io/2010/11/10/switching-from-glusterfs-to-drbd-and-ocfs2/&#34;&gt;beschreibt&lt;/a&gt; in seinem Blog, was ihn dazu bewogen hat, von GlusterFS auf ein OCFS2/DRBD Konstrukt zurück zu wechseln. Der Post ist schon von 2010, dürfte aber grundsätzlich noch immer relevant sein.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open Source Digital Asset Management</title>
      <link>https://www.marcogabriel.com/posts/622-open-source-digital-asset-management/</link>
      <pubDate>Mon, 26 Aug 2013 00:16:06 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/622-open-source-digital-asset-management/</guid>
      <description>&lt;p&gt;DAM oder  &amp;ldquo;Digital Asset Management &amp;quot; Software wird zum Verwalten von digitalen Gütern verwendet. Häufig sind das Bilder oder andere Medien. Es gibt im Open Source Bereich zwischenzeitlich einige brauchbare Produkte:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NotreDAM &lt;a href=&#34;http://notredam.org/&#34;&gt;http://notredam.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ResourceSpace &lt;a href=&#34;http://www.resourcespace.org/&#34;&gt;http://www.resourcespace.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Nuxeo &lt;a href=&#34;http://www.nuxeo.com/en&#34;&gt;http://www.nuxeo.com/en&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Darüber hinaus habe ich noch einige weitere gefunden, die obigen sahen mir aber am brauchbarsten aus.&lt;/p&gt;
&lt;p&gt;Wozu man so etwas benötigt? Beispielsweise für die Verwaltung gekaufter Bilder von Bildagenturen. Diese werden ja nur unter bestimmten Bedingungen lizensiert und auch wenn man ein solches Bild nach einem Jahr noch mal irgendwo verwendet, muss man diese Lizenzbestimmungen natürlich beachten. Damit hier keine bösen überraschungen drohen, sollte man die Lizenz immer gemeinsam mit dem Bild aufbewahren. Und genau so etwas kann ein DAM tun.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Webserver, simpel</title>
      <link>https://www.marcogabriel.com/posts/621-webserver-simpel/</link>
      <pubDate>Sun, 25 Aug 2013 12:08:42 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/621-webserver-simpel/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python -m SimpleHTTPServer
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Befehl startet einen Webserver, der das aktuelle Verzeichnis über Port 8000 freigibt.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;~# python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Man kann also nun über &lt;code&gt;http://&amp;lt;adresse&amp;gt;:8000&lt;/code&gt; auf das Verzeichnis zugreifen. Da Python quasi überall vorhanden ist, werden keine weiteren Freigaben oder Software benötigt. Nicht einmal root Rechte braucht man dafür.&lt;/p&gt;
&lt;p&gt;Wer einen anderen Port bevorzugt, kann diesen noch dahinter angeben:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python -m SimpleHTTPServer [port]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So etwas ähnliches gibt&amp;rsquo;s auch &lt;a href=&#34;http://www.razvantudorica.com/08/web-server-in-one-line-of-bash/&#34;&gt;in Bash&lt;/a&gt;, die obige Lösung finde ich aber einfacher.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Filesystem verkleinern ohne Datenverlust (LVM, ext3/4)</title>
      <link>https://www.marcogabriel.com/posts/620-filesystem-verkleinern-ohne-datenverlust-lvm-ext34/</link>
      <pubDate>Sat, 11 May 2013 20:16:36 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/620-filesystem-verkleinern-ohne-datenverlust-lvm-ext34/</guid>
      <description>&lt;p&gt;Vergrößern kann jeder, das Verkleinern eines Filesystems ist schon ein wenig aufwendiger. Auch Tools versagen gelegentlich ihren Dienst, wenn ein LVM unter der eigentlichen Partition liegt.&lt;/p&gt;
&lt;p&gt;Vor allem aber sollte man dies nur tun nach einem vorherigen Backup.&lt;/p&gt;
&lt;p&gt;Los geht&amp;rsquo;s.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Screen&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Alle Arbeiten sollte man entweder an der lokalen Konsole oder in einem Screen ausführen. Kommt es mitten in einer Verkleinerung zu einem Verbindungsabbruch, läuft der Task trotzdem weiter und man kann jederzeit neu einsteigen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rsync Logical Volumes / LVM</title>
      <link>https://www.marcogabriel.com/posts/619-rsync-logical-volumes-lvm/</link>
      <pubDate>Sun, 05 May 2013 17:20:03 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/619-rsync-logical-volumes-lvm/</guid>
      <description>&lt;p&gt;Wenn man regelmäßig Daten transferieren oder abgleichen möchte, dann ist Rsync in der Regel das beste Mittel der Wahl. Rsync überträgt nur geänderte Dateien, tut dies sehr effizient, komprimiert dabei noch und verschlüsselt die Daten während des Transfers. Rsync funktioniert für regelmäßige Dateitransfers also extrem gut.&lt;/p&gt;
&lt;p&gt;Schön wäre es nun, wenn man so etwas wie Rsync auch für sehr große Dateien oder Logical Volumes eines LVM verwenden könnte. Ein typischer Anwendungsfall ist die Sicherung von virtuellen Maschinen, bei denen diese Images auch schon mal mehrere hundert GB groß sind.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wenn&#39;s mal wieder länger dauert: MySQL Tuning Scripts</title>
      <link>https://www.marcogabriel.com/posts/618-wenns-mal-wieder-laenger-dauert-mysql-tuning-scripts/</link>
      <pubDate>Sat, 20 Apr 2013 17:01:46 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/618-wenns-mal-wieder-laenger-dauert-mysql-tuning-scripts/</guid>
      <description>&lt;p&gt;Wer hat schon zu viel Zeit? Und irgendwas zu optimieren gibt&amp;rsquo;s doch immer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://launchpad.net/mysql-tuning-primer&#34;&gt;MySQL Tuning Primer Script in Launchpad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://mysqltuner.pl/&#34;&gt;MySQL Tuner&lt;/a&gt; (Unter Debian/Ubuntu auch über apt-get install mysqltuner installierbar)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das Denken übernehmen die Scripte nicht, aber sie sind dabei sehr behilflich.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash: Zeile für Zeile</title>
      <link>https://www.marcogabriel.com/posts/617-bash-zeile-fuer-zeile/</link>
      <pubDate>Sat, 20 Apr 2013 13:39:45 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/617-bash-zeile-fuer-zeile/</guid>
      <description>&lt;p&gt;Neulich musste ich für die Umstellung eines Mailsystems ca. 3.300 Aliase umschreiben. Da diese Aliase aus mehreren Quellen stammen sollte das ganze auch automatisch und jederzeit wiederholbar sein. Ich kam irgendwann an den Punkt, an dem ich eine Datei lesen und mit jeder Zeile etwas tun musste.&lt;/p&gt;
&lt;p&gt;Der Klassiker in Bash ist einfach:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for LINE in $(cat /pfad/zur/datei)
do
    echo $LINE
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dazu gibt es jedoch eine meist bessere Alternative:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;while read LINE
do
    echo $LINE
done &amp;lt; /pfad/zur/datei
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Variante 2 nutzt das read Kommando unter Linux und liest die Datei wirkich zeilenweise, wogegen Version 1 wortweise liest.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Neues Langzeitprojekt: Linux Home Automation</title>
      <link>https://www.marcogabriel.com/posts/616-neues-langzeitprojekt-linux-home-automation/</link>
      <pubDate>Mon, 01 Apr 2013 23:13:42 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/616-neues-langzeitprojekt-linux-home-automation/</guid>
      <description>&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.openremote.org/display/HOME/OpenRemote&#34;&gt;OpenRemote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fhem.de/fhem_DE.html&#34;&gt;FHEM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.domotiga.nl/&#34;&gt;DomoTiga&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://hcs.sourceforge.net/&#34;&gt;HCS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.pytomation.com/&#34;&gt;Pythomation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://hcan.grundwerk.info/&#34;&gt;HCAN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>E-Mail Migration / Abgleich zwischen Zarafa und Dovecot</title>
      <link>https://www.marcogabriel.com/posts/614-e-mail-migration-abgleich-zwischen-zarafa-und-dovecot/</link>
      <pubDate>Sun, 10 Feb 2013 20:45:41 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/614-e-mail-migration-abgleich-zwischen-zarafa-und-dovecot/</guid>
      <description>&lt;p&gt;Felix schrob da ein &lt;a href=&#34;http://blog.host-consultants.de/2013/02/howto-e-mail-migration/&#34;&gt;nettes Tutorial&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>QuTTY (Update)</title>
      <link>https://www.marcogabriel.com/posts/613-qutty-update/</link>
      <pubDate>Sun, 10 Feb 2013 12:12:10 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/613-qutty-update/</guid>
      <description>&lt;p&gt;Was man nicht so alles findet, wenn man etwas über &lt;a href=&#34;https://www.marcogabriel.com/posts/611-kitty-das-bessere-putty/&#34;&gt;PuTTY&lt;/a&gt;, &lt;a href=&#34;https://www.marcogabriel.com/posts/611-kitty-das-bessere-putty/&#34;&gt;KiTTY&lt;/a&gt; und &lt;a href=&#34;https://www.marcogabriel.com/posts/612-iterm2-fuer-mac-os-x-als-terminal-ersatz/&#34;&gt;iTerm2&lt;/a&gt; schreibt:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://code.google.com/p/qutty/&#34;&gt;QuTTY - Successor to PuTTY with advanced features similar to iterm2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zumindest ich habe ihn allerdings noch nicht getestet. Vielleicht demnächst, denn iTerm2 gefällt mir sogar besser als KiTTY.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 10.02.2013:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eben getestet. Das ist noch ein verdammt weiter Weg bis zu einem iTerm2 Putty&amp;hellip; Im Moment sieht er nach einem Tabbed Putty aus, der ausser Tabs eigentlich noch nichts kann.&lt;/p&gt;</description>
    </item>
    <item>
      <title>iTerm2 für Mac OS X als Terminal Ersatz</title>
      <link>https://www.marcogabriel.com/posts/612-iterm2-fuer-mac-os-x-als-terminal-ersatz/</link>
      <pubDate>Sun, 10 Feb 2013 11:24:31 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/612-iterm2-fuer-mac-os-x-als-terminal-ersatz/</guid>
      <description>&lt;p&gt;Wo wir schon mal bei &lt;a href=&#34;https://www.marcogabriel.com/posts/611-kitty-das-bessere-putty/&#34;&gt;besseren Terminal Alternativen&lt;/a&gt; sind: Auch für Mac OS X gibt es einen aus meiner Sicht deutlich besseren Terminal Client als das standardmäßig in OS X enthaltene Terminal: &lt;a href=&#34;http://www.iterm2.com/#/section/home&#34;&gt;iTerm2&lt;/a&gt;. Übrigens nicht zu verwechseln mit &lt;a href=&#34;http://iterm.sourceforge.net/&#34;&gt;iTerm&lt;/a&gt;. Auch gut, aber alt und wird scheinbar nicht mehr gepflegt. iTerm2 dagegen setzt auf die Features von iTerm noch eins drauf und macht alles schöner.&lt;/p&gt;
&lt;p&gt;Schön sind beispielsweise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Split Panes&lt;/li&gt;
&lt;li&gt;Readability&lt;/li&gt;
&lt;li&gt;Full Screen&lt;/li&gt;
&lt;li&gt;Tagged Profiles (die sind toll!)&lt;/li&gt;
&lt;li&gt;Autocomplete&lt;/li&gt;
&lt;li&gt;Und, wie üblich, &lt;a href=&#34;http://www.iterm2.com/#/section/features&#34;&gt;vieles mehr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Downloads gibt&amp;rsquo;s auf der Entwicklungsseite bei &lt;a href=&#34;http://code.google.com/p/iterm2/&#34;&gt;Google Code&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KiTTY - das bessere PuTTY </title>
      <link>https://www.marcogabriel.com/posts/611-kitty-das-bessere-putty/</link>
      <pubDate>Sun, 10 Feb 2013 10:49:05 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/611-kitty-das-bessere-putty/</guid>
      <description>&lt;p&gt;Wer &lt;a href=&#34;http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html&#34;&gt;PuTTY&lt;/a&gt; unter Windows als bevorzugten SSH Client verwendet, sollte einen Blick auf &lt;a href=&#34;http://kitty.9bis.net/&#34;&gt;KiTTY&lt;/a&gt; werfen. KiTTY ist ein Fork von PuTTY 0.62 und bringt ein paar nette Features mit, die PuTTY fehlen. Zudem gibt es öfter Updates und Verbesserungen als bei PuTTY.&lt;/p&gt;
&lt;p&gt;Einige bemerkenswerte Features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sessions Suchfilter (sehr praktisch wenn man sehr viele gespeicherte Server Sessions hat)&lt;/li&gt;
&lt;li&gt;Kann Sessions und Einstellungen im Filesystem ablegen statt in der Registry (gut für portablen Einsatz oder synchronisieren mehrerer Rechner)&lt;/li&gt;
&lt;li&gt;Lokale Scripts können remote ausgeführt werden (praktisch bei sehr vielen Servern mit gleichen Aufgaben)&lt;/li&gt;
&lt;li&gt;Transparenz und Terminalhintergrundbild können frei gewählt werden (wer&amp;rsquo;s braucht, wird damit glücklich sein&amp;hellip;)&lt;/li&gt;
&lt;li&gt;Und vieles weitere&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Und da ein Bild mehr sagt als tausend Worte: Mehr Screenshots von KiTTY gibt&amp;rsquo;s auf der Homepage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wo wir schon mal bei Star Wars sind</title>
      <link>https://www.marcogabriel.com/posts/610-wo-wir-schon-mal-bei-star-wars-sind/</link>
      <pubDate>Sun, 10 Feb 2013 03:49:25 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/610-wo-wir-schon-mal-bei-star-wars-sind/</guid>
      <description>&lt;p&gt;traceroute zu 216.81.59.173 und ttl auf 70, damit man die ganze Story sieht&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/610-wo-wir-schon-mal-bei-star-wars-sind/Bildschirmfoto2013-02-09um21.55.30.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>http error 404, star wars style...</title>
      <link>https://www.marcogabriel.com/posts/609-http-error-404-star-wars-style.../</link>
      <pubDate>Sun, 10 Feb 2013 03:48:22 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/609-http-error-404-star-wars-style.../</guid>
      <description>&lt;p&gt;http error 404, star wars style&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/peteralaoui/django-taggit-live/tree/master/taggit_live&#34;&gt;https://github.com/peteralaoui/django-taggit-live/tree/master/taggit_live&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Einfache Logger unter PHP</title>
      <link>https://www.marcogabriel.com/posts/604-einfache-logger-unter-php/</link>
      <pubDate>Thu, 24 Jan 2013 01:11:36 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/604-einfache-logger-unter-php/</guid>
      <description>&lt;p&gt;Es gibt für PHP ja so einige Möglichkeiten, Logs zu erzeugen. Apache &lt;a href=&#34;http://logging.apache.org/log4php/&#34;&gt;Log4PHP&lt;/a&gt; dürfte die bekannteste sein, aber ich suchte etwas ganz einfaches und habe &lt;a href=&#34;http://codefury.net/2008/07/klogger-a-simple-logging-class-for-php/&#34;&gt;KLogger&lt;/a&gt; gefunden.&lt;/p&gt;
&lt;p&gt;Einfaches Beispiel:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$log = new KLogger(&amp;#39;/var/log/&amp;#39;); # Specify the log directory
$log-&amp;gt;logInfo(&amp;#39;Returned a million search results&amp;#39;); //Prints to the log file
$log-&amp;gt;logFatal(&amp;#39;Oh dear.&amp;#39;); //Prints to the log file
$log-&amp;gt;logInfo(&amp;#39;Here is an object&amp;#39;, $obj); //Prints to the log file with a dump of the object
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ideal für meinen Einsatzzweck und in wenigen Minuten implementiert.&lt;/p&gt;</description>
    </item>
    <item>
      <title>rsync nur einmal starten</title>
      <link>https://www.marcogabriel.com/posts/603-rsync-nur-einmal-starten/</link>
      <pubDate>Wed, 23 Jan 2013 05:07:13 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/603-rsync-nur-einmal-starten/</guid>
      <description>&lt;p&gt;Ab und an dauert ein rsync Job länger als geplant. Wenn man sicherstellen möchte, dass rsync in einem Cronjob nur ausgeführt wird, falls es nicht schon läuft, kann man folgendes Konstrukt verwenden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pgrep -c rsync || rsync [options] quelle ziel
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ich hatte das vor einiger Zeit bei Serverfault schon mal als Antwort eingestellt, aber eigentlich ist es in meinem Blog auch gut aufgehoben.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Viele, sehr viele Dateien in einem Verzeichnis unter Linux löschen</title>
      <link>https://www.marcogabriel.com/posts/594-viele-sehr-viele-dateien-in-einem-verzeichnis-unter-linux-loeschen/</link>
      <pubDate>Sat, 05 Jan 2013 15:47:49 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/594-viele-sehr-viele-dateien-in-einem-verzeichnis-unter-linux-loeschen/</guid>
      <description>&lt;p&gt;Ein bestimmter Server wurde in letzter Zeit immer unzuverlässiger und stürzte öfter mal ab, ohne dass wir eine genaue Ursache ausmachen konnten. Gestern habe ich mich dem Server noch mal angenommen und ein bisschen Ursachenforschung betrieben. Ein einfaches &lt;code&gt;ls -la /var/log&lt;/code&gt; dauerte schon ewig. Ich spekulierte schon über einen Festplattenschaden bis ich dann irgendwann tatsächlich eine endlose Dateiliste zu sehen bekam.&lt;/p&gt;
&lt;p&gt;Ein &lt;code&gt;ls -la | wc -l&lt;/code&gt; brachte hervor, dass in diesem Ordner mehr als 1,3 Millionen Files lagen. Kein Wunder, dass  der Server dabei ab und an mal Schwierigkeiten hat. Die Ursache war, dass sich auf Debian/Ubuntu Systemen der &lt;code&gt;sysklogd&lt;/code&gt; und &lt;code&gt;logrotate&lt;/code&gt; gegenseitig in die Quere kommen. Aber dazu vielleicht ein anderes Mal mehr. Nun musste ich erst mal die ganzen überflüssigen Dateien löschen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatische btrfs Snapshots vor Installation</title>
      <link>https://www.marcogabriel.com/posts/593-automatische-btrfs-snapshots-vor-installation/</link>
      <pubDate>Sun, 15 Apr 2012 16:58:45 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/593-automatische-btrfs-snapshots-vor-installation/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://de.wikipedia.org/wiki/Btrfs&#34;&gt;Btrfs&lt;/a&gt;, so könnte man meinen, ist der kommende Star unter den Linux Filesystemen. Bis dahin ist es zwar noch ein weiter weg, denn auch btrfs hat noch einige Baustellen, aber es werden permanent weniger und die &lt;a href=&#34;https://btrfs.wiki.kernel.org/&#34;&gt;Entwicklung schreitet mit großen Schritten voran&lt;/a&gt;. Noch 2012 wird Oracle, als Arbeitgeber des Hauptentwicklers Chris Mason, das Filesystem als stabil kennzeichnen und es in der kommenden Version ihres Oracle Linux ganz offiziell supporten. Das alles lässt hoffen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zarafa Spracheinstellungen</title>
      <link>https://www.marcogabriel.com/posts/592-zarafa-spracheinstellungen/</link>
      <pubDate>Wed, 21 Mar 2012 22:47:29 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/592-zarafa-spracheinstellungen/</guid>
      <description>&lt;p&gt;Mich erreichen von Zeit zu Zeit immer wieder mal Anfragen bezüglich Zarafa und dessen Spracheinstellungen. Mal sind die persönlichen Ordner des Benutzers in Englisch obwohl die Menüs auf Deutsch angezeigt werden, manchmal werden Umlaute faklsch angezeigt und manchmal hängt es einfach auch an der Sprache des Anmeldefensters.&lt;/p&gt;
&lt;p&gt;Meistens sind nicht oder falsch gesetzte Locale Einstellungen dafür verantwortlich, manchmal aber auch nur eine falsche Vorgehensweise.&lt;/p&gt;
&lt;p&gt;Daher erläutere ich die diversen Einstellungen, Fehler und Gründe dafür und zeige die Möglichen Lösungen dafür im Folgenden kurz auf.&lt;/p&gt;</description>
    </item>
    <item>
      <title>cdrecord unter Debian 6</title>
      <link>https://www.marcogabriel.com/posts/591-cdrecord-unter-debian-6/</link>
      <pubDate>Mon, 12 Mar 2012 00:18:44 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/591-cdrecord-unter-debian-6/</guid>
      <description>&lt;p&gt;Wer in Debian 6 eine Möglichkeit sucht, ein ISO Image auf einen Rohling zu brennen, wird cdrecord vermissen. Dies ist in Debian mittlerweile nicht mehr enthalten. Stattdessen kann man aber auf wodim zurückgreifen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;aptitude install wodim
wodim tolles-image.iso
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>flickr und die Bilder</title>
      <link>https://www.marcogabriel.com/posts/587-flickr-und-die-bilder/</link>
      <pubDate>Sun, 11 Mar 2012 12:55:00 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/587-flickr-und-die-bilder/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/&#34;&gt;Flickr&lt;/a&gt; verwehrt mir den (direkten) Zugriff auf meine Bilder, zeigt sie anderen zum Nutzen von Flickr aber an.&lt;/p&gt;
&lt;p&gt;Nun die lange Story:&lt;/p&gt;
&lt;p&gt;Ich hatte mal einen flickr Pro Account, zahlte meinen kleinen Obulus an flickr für die jährliche Nutzung des Accounts und der schönen vielen kostenpflichtigen Zusatzleistungen. So konnte ich mehr als 200 Bilder hochladen. Irgendwann gab es mal eine Diskussion, dass Flickr Mitgliedern aus Deutschland jedoch den Account zensiert und manche Bilder nicht anzeigt. Ich beschwerte mich bei Flickr, wie so viele andere zu der Zeit ebenfalls und verlängerte danach konsequenterweise meinen Pro Account auch nicht mehr. Ich war schlicht nicht mehr einverstanden mit der Art, wie Flickr mit seinen Nutzern umging. Nach Ablauf des Pro Status wurde mein Account also auf einen normalen Account zurückgestuft und unterlag somit auch wieder der Beschränkung von maximal 200 Bildern.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu / Debian: Installierte .deb Pakete eines Servers auf einem anderen Server installieren</title>
      <link>https://www.marcogabriel.com/posts/589-ubuntu-debian-installierte-.deb-pakete-eines-servers-auf-einem-anderen-server-installieren/</link>
      <pubDate>Wed, 24 Aug 2011 12:14:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/589-ubuntu-debian-installierte-.deb-pakete-eines-servers-auf-einem-anderen-server-installieren/</guid>
      <description>&lt;p&gt;Es kommt immer wieder mal vor, dass ein Server installiert werden muss, der einen alten Server ersetzen soll. So lange nur wenige Dienste oder Pakete auf dem alten Server installiert waren, lässt sich das auch schnell aus dem Kopf erledigen. Pakete auf dem neuen Server installieren, Config übernehmen, Config anpassen, läuft.&lt;/p&gt;
&lt;p&gt;Allerdings gibt es auch Server, auf denen viele Pakete installiert sind und die mehrere Dienste anbieten. Hier eine Vorgehensweise, um sich das Leben einfacher zu machen:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Backup mit Duply, Duplicity und Rdiff-Backup auf (potentiell unsichere) Online Speicher (Teil 2)</title>
      <link>https://www.marcogabriel.com/posts/586-linux-backup-mit-duply-duplicity-und-rdiff-backup-auf-potentiell-unsichere-online-speicher-teil-2/</link>
      <pubDate>Tue, 13 Jul 2010 00:50:51 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/586-linux-backup-mit-duply-duplicity-und-rdiff-backup-auf-potentiell-unsichere-online-speicher-teil-2/</guid>
      <description>&lt;h2 id=&#34;teil-2-duply-und-duplicity&#34;&gt;Teil 2: Duply und Duplicity&lt;/h2&gt;
&lt;p&gt;Im &lt;a href=&#34;https://www.marcogabriel.com/posts/585-linux-backup-mit-duply-duplicity-und-rdiff-backup-auf-potentiell-unsichere-online-speicher-teil-1/&#34;&gt;ersten Teil&lt;/a&gt; habe ich ja bereits die Unterschiede zwischen &lt;a href=&#34;http://sourceforge.net/projects/ftplicity/&#34;&gt;Duply&lt;/a&gt; / &lt;a href=&#34;http://www.nongnu.org/duplicity/&#34;&gt;Duplicity&lt;/a&gt; und &lt;a href=&#34;http://www.nongnu.org/rdiff-backup/&#34;&gt;Rdiff-Backup&lt;/a&gt; geschildert. In diesem Teil gehe ich also davon aus, dass man Duplicity verwendet, weil man vom Provider einen FTP Backup Space zur Verfügung gestellt bekommen hat oder &lt;a href=&#34;http://aws.amazon.com/de/s3/&#34;&gt;Amazons S3&lt;/a&gt; nutzt.&lt;/p&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;Unter Ubuntu 10.04 LTS / Lucid Lynx könnte es kaum einfacher sein. Die Pakete sind bereits im Repository vorhanden und können direkt mittels aptitude installiert werden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Backup mit Duply, Duplicity und Rdiff-Backup auf (potentiell unsichere) Online Speicher (Teil 1)</title>
      <link>https://www.marcogabriel.com/posts/585-linux-backup-mit-duply-duplicity-und-rdiff-backup-auf-potentiell-unsichere-online-speicher-teil-1/</link>
      <pubDate>Tue, 13 Jul 2010 00:10:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/585-linux-backup-mit-duply-duplicity-und-rdiff-backup-auf-potentiell-unsichere-online-speicher-teil-1/</guid>
      <description>&lt;p&gt;Same procedure as every year, James!&lt;/p&gt;
&lt;p&gt;Der neue Rootserver ist fertig, aber benötigt noch ein Backup. Hat man nun nicht gerade ein Rechenzentrum im Keller und kann dort Bänder wechseln gehen, bietet sich für Rootserver ein Backup auf verfügbaren Onlinespeicher an. Das kann in einigen Fällen ein weiterer Rootserver mit noch reichlich Platz sein, aber auch ein vom Provider zur Verfügung gestellter FTP Server oder auch Amazons S3 sind gute Alternativen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delete Files older than 30 days on Linux</title>
      <link>https://www.marcogabriel.com/posts/582-delete-files-older-than-30-days-on-linux/</link>
      <pubDate>Fri, 25 Jun 2010 20:16:59 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/582-delete-files-older-than-30-days-on-linux/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;find /path/to/files* -mtime +30 -exec rm {} \;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ich mag Einzeiler&amp;hellip; ;-)&lt;/p&gt;</description>
    </item>
    <item>
      <title>raid initializing</title>
      <link>https://www.marcogabriel.com/posts/580-raid-initializing/</link>
      <pubDate>Sun, 30 May 2010 19:58:24 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/580-raid-initializing/</guid>
      <description>&lt;p&gt;Irgendwie bleibt immer ein seltsames Gefühl, wenn nach einem einfachen Reboot der Hardware Controller für eine Weile auf  &amp;ldquo;Initializing&amp;rdquo; steht. Auch wenn&amp;rsquo;s laut Handbuch bei 3ware Controllern im RAID1 nichts ungewöhliches ist.&lt;/p&gt;
&lt;p&gt;Ein Blick in&amp;rsquo;s &lt;a href=&#34;http://www.3ware.com/support/UserDocs/EscaladeUG7000-122003.pdf&#34;&gt;gut versteckte Handbuch&lt;/a&gt; auf die Seiten 150 bis 158 hilft beim Beruhigen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Merke: MySQL REPLACE und mysql_affected_rows()</title>
      <link>https://www.marcogabriel.com/posts/560-merke-mysql-replace-und-mysql_affected_rows/</link>
      <pubDate>Thu, 19 Nov 2009 11:18:01 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/560-merke-mysql-replace-und-mysql_affected_rows/</guid>
      <description>&lt;p&gt;Merke: Nach einem erfolgreichen &lt;code&gt;REPLACE INTO&lt;/code&gt; meldet &lt;code&gt;mysql_affected_rows()&lt;/code&gt; nicht 1 sondern 2 zurück.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu Jaunty / 9.04 Performance und die Sache mit dem Atom</title>
      <link>https://www.marcogabriel.com/posts/530-ubuntu-jaunty-9.04-performance-und-die-sache-mit-dem-atom/</link>
      <pubDate>Sun, 19 Jul 2009 13:16:32 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/530-ubuntu-jaunty-9.04-performance-und-die-sache-mit-dem-atom/</guid>
      <description>&lt;p&gt;Auf einem schlanken, schmalen, stromsparenden Atom 230 Rechner installierte ich kürzlich Ubuntu. Zunächst die 8.10, danach per Upgrade die 9.04. Alles lief soweit zufriedenstellend, aber so richtig glücklich war ich mit der Performance nicht. Ich dachte länger, dass es wohl so sei, wenn man einen Atom230 mit einer 1920x1080er Auflösung beauftragt, &lt;del&gt;denn Hubraum lässt sich nur durch mehr Hubraum ersetzen&lt;/del&gt; und man daher auch damit leben müsse. Muss man aber nicht.&lt;/p&gt;</description>
    </item>
    <item>
      <title>.cue / .bin unter Linux mounten oder brennen</title>
      <link>https://www.marcogabriel.com/posts/527-cue-bin-unter-linux-mounten-oder-brennen/</link>
      <pubDate>Thu, 16 Jul 2009 18:26:31 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/527-cue-bin-unter-linux-mounten-oder-brennen/</guid>
      <description>&lt;p&gt;&lt;code&gt;.cue&lt;/code&gt; und &lt;code&gt;.bin&lt;/code&gt; Dateien sind keine &lt;code&gt;.iso&lt;/code&gt; Dateien. Nicht einmal annähernd. Unter Windows verstehen viele Brennprogramme das Format trotzdem und brennen es anstandslos auf eine Silberscheibe. Unter Linux sieht das nicht ganz so aus. Ich habe mich auch immer wieder darüber geärgert, bis ich über &lt;code&gt;bchunk&lt;/code&gt; gestolpert bin.&lt;/p&gt;
&lt;p&gt;Dieses Programm ist in der Lage, aus &lt;code&gt;.cue&lt;/code&gt; und &lt;code&gt;.bin&lt;/code&gt; mal eben eine &lt;code&gt;.iso&lt;/code&gt; zu erstellen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;bchunk -v image.bin image.cue image
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nach ein wenig auf der Platte rödeln findet man eine fertige &lt;code&gt;image.iso&lt;/code&gt; Datei. Und die kann man problemlos brennen, auch unter Linux.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tar split</title>
      <link>https://www.marcogabriel.com/posts/522-tar-split/</link>
      <pubDate>Wed, 15 Jul 2009 11:35:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/522-tar-split/</guid>
      <description>&lt;p&gt;Wer von irgendeinem Linux Filesystem auf eine externe Festplatte mit FAT(32) Filesystem Daten sichern möchte, kann ein Lied davon singen. Nicht, dass man unbedingt FAT32 haben möchte, aber die meisten externen Festplatten sind ab Werk damit vorformatiert und laufen daher an den meisten Betriebssystemen out-of-the-box.&lt;/p&gt;
&lt;p&gt;FAT32 beschränkt die maximale Dateigröße jedoch auf 4 GB pro Datei. Für eine Datensicherung ist das heutzutage nicht mehr besonders viel.&lt;/p&gt;
&lt;p&gt;Linux selbst bringt die Lösung in Form der Kombination aus den beiden Kommandos &lt;code&gt;tar&lt;/code&gt; und &lt;code&gt;split&lt;/code&gt; bereits mit:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Error: bad minute; while reading /etc/crontab</title>
      <link>https://www.marcogabriel.com/posts/515-error-bad-minute-while-reading-etccrontab/</link>
      <pubDate>Thu, 09 Jul 2009 14:22:17 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/515-error-bad-minute-while-reading-etccrontab/</guid>
      <description>&lt;p&gt;Gerade eben stellte ich fest, dass auf einem Ubuntu 8.04 Server die Cron-Jobs nicht mehr ausgeführt werden. Also machte ich mich auf die Suche nach dem Grund, konnte ihn aber zunächst nicht finden. In der /var/log/syslog dann der erste Hinweis:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Error: bad minute; while reading /etc/crontab
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die /etc/crontab sah allerdings sehr normal aus. Da gab es keine falschen Einträge oder fehlende Angaben. Nach einigem auskommentieren und testen bin ich dann auf die Lösung gekommen. In der crontab fand ich folgende Zeile, bei der ich mir erst mal nichts dachte:&lt;/p&gt;</description>
    </item>
    <item>
      <title>RDP schneller machen über NX</title>
      <link>https://www.marcogabriel.com/posts/510-rdp-schneller-machen-ueber-nx/</link>
      <pubDate>Mon, 06 Jul 2009 18:05:05 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/510-rdp-schneller-machen-ueber-nx/</guid>
      <description>&lt;p&gt;RDP, das &lt;a href=&#34;http://de.wikipedia.org/wiki/Remote_Desktop_Protocol&#34;&gt;Remote Desktop Protocol&lt;/a&gt;, macht seine Arbeit beim Zugriff auf entfernte Server soweit ja ganz ordentlich. Mittlerweile liegt RDP in Version 6 vor und es gibt sogar unter Linux einen funktionierenden Client und auch einen funktionierenden RDP Server. Steht der zu steuernde Server allerdings hinter einer nicht ganz so breitbandigen Verbindung, lahmt RDP gelegentlich auch mal dahin. Selbst wenn man die Performance optimiert, fliesst es so la la, abhängig eben von der Upload-Bandbreite des Anschlusses an dem der Server hängt. Da auch ich oft auf RDP Server zugreife(n muss), die hinter einem normalen DSL Anschluss hängen kenne ich das Problem also auch aus erster Hand.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fetchmail Alternativen</title>
      <link>https://www.marcogabriel.com/posts/489-fetchmail-alternativen/</link>
      <pubDate>Sun, 16 Nov 2008 16:39:52 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/489-fetchmail-alternativen/</guid>
      <description>&lt;p&gt;Fetchmail, der fast alles könnende Dinosaurier unter den Mailabholern, ist zwar weit verbreitet, aber mindestens genauso unbeliebt. Fetchmail kann viel und ist leicht zu konfigurieren, sofern man für jede Mail-Adresse ein separates Konto beim Provider und bereit ist, jedem Mailnutzer auch einen Linux-Account zu geben. In einer Welt der virtuellen Maildomains ist es dagegen eine mittlere Katastrophe, mit Fetchmail arbeiten zu müssen.&lt;/p&gt;
&lt;p&gt;Alternativen zu &lt;a href=&#34;http://fetchmail.berlios.de/&#34;&gt;Fetchmail&lt;/a&gt; gibt es zwar, ob sie für den jeweiligen Fall aber besser sind, muss jeder für sich beurteilen:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Warum defekte Platten unter Linux nicht mit dd gesichert werden sollten</title>
      <link>https://www.marcogabriel.com/posts/464-warum-defekte-platten-unter-linux-nicht-mit-dd-gesichert-werden-sollten/</link>
      <pubDate>Thu, 05 Jun 2008 11:58:27 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/464-warum-defekte-platten-unter-linux-nicht-mit-dd-gesichert-werden-sollten/</guid>
      <description>&lt;p&gt;Was tun wenn die Festplatte lustige Geräusche macht oder bereits Daten verloren hat, weil die Harddisk defekte Sektoren hat?&lt;/p&gt;
&lt;p&gt;Das allseits beliebte &lt;a href=&#34;%22http://de.wikipedia.org/wiki/Dd_(Unix)%22&#34;&gt;dd&lt;/a&gt; zum Erstellen von Festplattenimages tut bei funktionierenden Festplatten seinen Dienst, bei Platten mit defekten Sektoren jedoch führt dd zu unbrauchbaren images. Aber warum und was passiert dabei genau?&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;dd bs=4096 conv=noerror,sync if=/dev/hda of=/mnt/server/imagedatei.img 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;dd&lt;/code&gt; liest blockweise (4096 Bytes) die Daten von der Festplatte &lt;code&gt;/dev/hda&lt;/code&gt;, macht auch weiter wenn es auf Fehler trifft, füllt den Block mit Nullbytes auf 4096 bytes auf, falls er kürzer ist, und schreibt diese Dateien gleichzeitig in 4096 Byte Blöcken nach &lt;code&gt;/mnt/server/imagedatei.img&lt;/code&gt;. Fatal ist, wenn Blöcke nicht lesbar sind. In dem Falle bricht dd zwar nicht ab, weil &lt;code&gt;conv=noerror&lt;/code&gt; angegeben wurde, aber es liest keine Daten ein und schreibt auch keine Daten in das Image.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kurztipp: Linux Festplattenimage über SSH sichern</title>
      <link>https://www.marcogabriel.com/posts/463-kurztipp-linux-festplattenimage-ueber-ssh-sichern/</link>
      <pubDate>Tue, 03 Jun 2008 23:31:29 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/463-kurztipp-linux-festplattenimage-ueber-ssh-sichern/</guid>
      <description>&lt;p&gt;(Alles in einer Zeile:)&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;server# dd bs=65536 if=/dev/hda | ssh -o Compression=yes user@host  &amp;#34;cat &amp;gt; image.img &amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;liest aus der shell von &amp;ldquo;server&amp;rdquo;&lt;/li&gt;
&lt;li&gt;mit 64k Blöcken&lt;/li&gt;
&lt;li&gt;den Festplatteninhalt von &lt;code&gt;/dev/hda&lt;/code&gt; aus&lt;/li&gt;
&lt;li&gt;meldet sich dann als user bei host an* und schickt das image via ssh komprimiert über die Leitung&lt;/li&gt;
&lt;li&gt;und legt das Image im Homedir des Benutzers user als image.img ab.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ja, ich steh auf ssh :-).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trac als Hilfsmittel zur Entwicklung</title>
      <link>https://www.marcogabriel.com/posts/462-trac-als-hilfsmittel-zur-entwicklung/</link>
      <pubDate>Tue, 03 Jun 2008 17:23:14 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/462-trac-als-hilfsmittel-zur-entwicklung/</guid>
      <description>&lt;p&gt;Ich habe eben für einen Kunden Trac aufsetzen dürfen, der ein eigenes SVN Repository für&amp;rsquo;s Versionskontrollmanagement betreibt. Ich mag SVN (&lt;a href=&#34;http://subversion.tigris.org&#34;&gt;Subversion&lt;/a&gt;) zur Versionsverwaltung sowieso schon sehr, aber in Verbindung mit Trac ist es ein echtes Dream Team und Entwicklungsbeschleuniger. Teamkommunikation bei der Entwicklung einfach gemacht.&lt;/p&gt;
&lt;p&gt;Wer &lt;a href=&#34;http://trac.edgewall.org/&#34;&gt;Trac&lt;/a&gt; noch nicht kennt, sollte unbedingt mal einen Blick drauf werfen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>top Ausgabe übersichtlicher machen</title>
      <link>https://www.marcogabriel.com/posts/458-top-ausgabe-uebersichtlicher-machen/</link>
      <pubDate>Thu, 10 Apr 2008 23:17:45 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/458-top-ausgabe-uebersichtlicher-machen/</guid>
      <description>&lt;p&gt;Manchmal lohnt es sich, die Kommandozeilenparameter für Programme näher zu erforschen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;top -i
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;zeigt nur noch die aktiven Prozesse an, was deutlich übersichtlicher ist. Probierbefehl :-).&lt;/p&gt;</description>
    </item>
    <item>
      <title>No route to host - aber nur für Postfix</title>
      <link>https://www.marcogabriel.com/posts/453-no-route-to-host-aber-nur-fuer-postfix/</link>
      <pubDate>Fri, 08 Feb 2008 19:19:02 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/453-no-route-to-host-aber-nur-fuer-postfix/</guid>
      <description>&lt;p&gt;Kürzlich überraschte mich mein interner Mailserver (Postfix) mit der Log-Meldung &lt;code&gt;No route to host&lt;/code&gt;. Alle E-Mails blieben in der Mailqueue und wurde nicht mehr zum Smarthost ausgeliefert, von wo aus sie dann an die Empfänger geleitet werden.&lt;/p&gt;
&lt;p&gt;Die Lösung dafür lag darin, daß beim DSL-Zugangsprovider kürzlich alles auf Port 25 abgehende gesperrt wurde, damit die ganzen Spambots eben nicht mehr spammen. Somit war es nur für Verbindungen auf Port 25 unmöglich, irgendetwas da draussen noch zu erreichen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Serendipity, Trackback-Spam und mod_rewrite</title>
      <link>https://www.marcogabriel.com/posts/415-serendipity-trackback-spam-und-mod_rewrite/</link>
      <pubDate>Tue, 26 Jun 2007 23:06:40 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/415-serendipity-trackback-spam-und-mod_rewrite/</guid>
      <description>&lt;p&gt;Was soll ich bloß davon halten, wenn ich auf den Monat hochgerechnet etwa 650.000 Trackbacks von Spammern geschickt bekomme? Seit längerem antwortete mein Blog darauf nur noch mit einem HTTP/404, leider jedoch ohne daß es dadurch irgendwie nachgelassen hätte. Die Attacken halten noch immer an, und ich habe das Gefühl es werden stetig mehr.&lt;/p&gt;
&lt;p&gt;Bis gestern waren es über 530.000 Spam-Trackbacks, die zusammen 230MB Traffic produziert haben.&lt;/p&gt;
&lt;p&gt;Heute habe ich folgende Gegenmaßnahmen ergriffen:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatischer Shutdown für Linux Server</title>
      <link>https://www.marcogabriel.com/posts/413-automatischer-shutdown-fuer-linux-server/</link>
      <pubDate>Sat, 16 Jun 2007 17:16:41 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/413-automatischer-shutdown-fuer-linux-server/</guid>
      <description>&lt;p&gt;So ein Server zu hause ist praktisch. Er ermöglicht den Austausch von Dateien, automatische Backups, viel Plattenplatz an einem zentralen Ort und je Anforderungen der Benutzer auch weitere Dienste.&lt;/p&gt;
&lt;p&gt;Allerdings hat ein solcher Server, gerade wenn er zu Hause steht, oftmals eine Einsatzdauer von maximal 4-8 Stunden am Tag. Aus Bequemlichkeit laufen die meisten Home Server dennoch 24 Stunden täglich durch. Im Leerlauf verbraten diese Rechner dann zwischen 30 und 300 Watt für nichts. Rechnet man diese Leistung auf einen Monat oder gar ein Jahr hoch stellt man fest, daß man für das Geld lieber etwas anderes getan hätte. Bei einem Leerlauf von 16 Stunden und 100 Watt Leistung kommt man auf etwa 100 Euro Stromkosten im Jahr - für nichts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Virtuelle Screens unter Linux im Textmodus</title>
      <link>https://www.marcogabriel.com/posts/385-virtuelle-screens-unter-linux-im-textmodus/</link>
      <pubDate>Fri, 24 Nov 2006 15:58:32 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/385-virtuelle-screens-unter-linux-im-textmodus/</guid>
      <description>&lt;p&gt;Nicht jeder Linux-Server hat und braucht eine grafische Oberfläche. Denken wir nur an die ganzen entfernt stehenden Rootserver, die ja mittlerweile aufgrund des Preisverfalls praktisch für jeden erschwinglich sind. Eine grafische Oberfläche ist hier normalerweise nicht notwendig und auch nur in Ausnahmefällen installiert, die freien Ressourcen gibt man meist besser dem Server zum Erfüllen seiner eigentlichen Aufgaben.&lt;/p&gt;
&lt;p&gt;Auch auf solchen Servern kommt es vor, daß man Programme startet, die voraussichtlich lange laufen werden, und auch dann weiter laufen wenn die ssh-Verbindung getrennt wird. Normalerweise werden die vom User gestarteten Prozesse vom System beendet, wenn die Verbindung getrennt wird (und sei es nur, weil das Timeout der Fritzbox mal wieder nach 10 Minuten die Verbindung automatisch trennt). Kommt man an den Platz zurück und loggt sich wieder ein, so darf man von vorne beginnen. Oft kann man nicht mal wirklich sagen ob der Prozess regulär beendet wurde weil er seine Arbeit beendet hat oder ob das System ihn beendete.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Defekte Nummerierungen in Word reparieren</title>
      <link>https://www.marcogabriel.com/posts/353-defekte-nummerierungen-in-word-reparieren/</link>
      <pubDate>Fri, 22 Sep 2006 13:35:42 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/353-defekte-nummerierungen-in-word-reparieren/</guid>
      <description>&lt;p&gt;Automatische Nummerierungen sind ja eine feine Sache so lange sie funktionieren. Word hat allerdings schon seit Jahren nicht unerhebliche Probleme damit, vor allem weil sämtliche Zusammenhänge programmintern bleiben und keine Reparatur ohne weiteres möglich ist.&lt;/p&gt;
&lt;p&gt;Neben einigen im Internet kursierenden Lösungen habe ich eben noch eine weitere entdeckt, mit denen man gebrochene Nummerierungen reparieren kann:&lt;/p&gt;
&lt;p&gt;Man bediene sich OpenOffice (getestet mit 2.0.3) und öffne das defekte Word-Dokument. Danach geht man in die Formatvorlagen, ändert sie leicht ab und speichert danach das Dokument wieder als Word-Dokument ab. Wenn man es nun wieder mit Word öffnet, sind die Nummerierungen wieder in Ordnung.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Scripte mit PyInstaller als .exe verteilen</title>
      <link>https://www.marcogabriel.com/posts/343-python-scripte-mit-pyinstaller-als-.exe-verteilen/</link>
      <pubDate>Sat, 02 Sep 2006 23:45:19 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/343-python-scripte-mit-pyinstaller-als-.exe-verteilen/</guid>
      <description>&lt;h2 id=&#34;wozu-der-aufwand&#34;&gt;Wozu der Aufwand?&lt;/h2&gt;
&lt;p&gt;Es kommt der Tag, an dem man seine Python Scripte ausserhalb seiner &lt;a href=&#34;http://www.marcogabriel.com/Python-Eclipse-Integration.76.0.html&#34;&gt;Entwicklungsumgebung&lt;/a&gt; einsetzen möchte. Von anderen Programmiersprachen kennt man die Möglichkeit, die Programme zu compilieren und diese unter Windows als ausführbare .exe oder .dll Dateien zu verteilen.&lt;/p&gt;
&lt;p&gt;Compilieren im eigentlichen Sinn lässt sich ein Python Script nicht. Man kann jedoch Python Scripte auch in .exe verwandeln und diese verteilen. Der Grund dafür kann sein, daß man nicht überall eine installierte Python-Umgebung voraussetzen möchte oder auch um seinen Quellcode gegen neugierige Blicke oder Änderungen zu schützen. In diesen .exe-Dateien wird dann neben dem Script noch eine Python-Laufzeitumgebung und benötigte Bibliotheken mit eingepackt, so daß alle benötigten Bestandteile dabei sind und das Programm sofort auf dem Zielrechner ausführbar ist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PureFTPd - ein schlanker FTP Server - virtual style</title>
      <link>https://www.marcogabriel.com/posts/338-pureftpd-ein-schlanker-ftp-server-virtual-style/</link>
      <pubDate>Wed, 30 Aug 2006 18:57:29 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/338-pureftpd-ein-schlanker-ftp-server-virtual-style/</guid>
      <description>&lt;p&gt;Wer bisher gerne einen kleinen, schlanken und sicheren FTP Server auf seinem Linux-Host einsetzte griff meist zu &lt;a href=&#34;http://vsftpd.beasts.org/&#34;&gt;VSFTPd&lt;/a&gt;. Der ist zwar nett, ich fand aber &lt;a href=&#34;http://www.pureftpd.org/project/pure-ftpd&#34;&gt;PureFTPd&lt;/a&gt; kürzlich netter.&lt;/p&gt;
&lt;p&gt;Überzeugt hat mich vor allem ein Feature: Datenbankanbindung.&lt;/p&gt;
&lt;p&gt;Authentifiziert werden kann gegen MySQL, PostgreSQL oder auch LDAP. Wer gerne gegen ein anderes Backend authentifiziert, schreibt ein Plugin für die bereits implementierte Schnittstelle. Experimentell beherrscht PureFTPd auch eine TLS-Verschlüsselung.&lt;/p&gt;
&lt;p&gt;Betreibt man nun einen Server, auf dem sowieso eine Datenbank für alle Nutzerdaten eines Postfix-Mailservers läuft, so kann man sich eine Menge Verwaltungsarbeit sparen indem man die FTP Logins gleich mit über diese Nutzerdatenbank abwickelt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dateidatum ändern</title>
      <link>https://www.marcogabriel.com/posts/330-dateidatum-aendern/</link>
      <pubDate>Thu, 17 Aug 2006 11:42:02 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/330-dateidatum-aendern/</guid>
      <description>&lt;p&gt;Wo uns verschiedenste *nixe (oder neusprachlich auch *nuxe) mit einem simplen &lt;code&gt;touch meinedatei&lt;/code&gt; das Dateidatum auf den aktuellen Stand bringen lassen, da versagt Windows mit Boardmitteln kläglich. Naja, fast. Es sei denn man nutzt einige undokumentierte Features, die es aus DOS-Zeiten noch bis heute geschafft haben.&lt;/p&gt;
&lt;p&gt;Um eine Datei auf das aktuelle Datum zu bringen kann man simpel&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;copy /b datei+,,
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;nutzen. Um ein ganzes Verzeichnis auf den aktuellen Stand zu bringen kann man auch Wildcards verwenden:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache2 Redirect für nicht existierende Seiten</title>
      <link>https://www.marcogabriel.com/posts/311-apache2-redirect-fuer-nicht-existierende-seiten/</link>
      <pubDate>Mon, 31 Jul 2006 10:49:34 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/311-apache2-redirect-fuer-nicht-existierende-seiten/</guid>
      <description>&lt;p&gt;Wer über Jahre hinweg Websites betreut wird früher oder später auch dazu kommen, daß externe Links auf Seiten verweisen, die nicht mehr existieren.&lt;/p&gt;
&lt;p&gt;Je nach dem wie man den Eintrag für 404 Seiten in der apache.conf hinterlegt gibt Apache2 dann sogar (anfangs verwirrende) verschiedene Statuscodes zurück:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ErrorDocument 404 /relativer/link/zur/404-erklaerung.html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ergibt einen 404 (not found)&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ErrorDocument 404 http://mein.host/404-erklaerung.html```

liefert einen 302 (document moved)

Was nun für die eigene Site sinnvoller ist, muss man von Fall zu Fall entscheiden.
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Django Installation</title>
      <link>https://www.marcogabriel.com/posts/302-django-installation/</link>
      <pubDate>Fri, 30 Jun 2006 22:45:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/302-django-installation/</guid>
      <description>&lt;p&gt;Wie ich kürzlich schon schrieb, möchte ich eine Artikelserie über das &lt;a href=&#34;http://www.djangoproject.com/&#34;&gt;Python Web Framework Django&lt;/a&gt; starten. Anfangen möchte ich dabei mit der Installation des Framework auf einem Linux Server, welches wohl auch die am meisten verwendete Kombination sein dürfte.&lt;/p&gt;
&lt;p&gt;Django wurde urspünglich als Grundlage eines kommerziellen Backends (&lt;a href=&#34;http://www.ellingtoncms.com/&#34;&gt;Ellington&lt;/a&gt;) für eine &lt;a href=&#34;http://www.ljworld.com/&#34;&gt;Onlinezeitung&lt;/a&gt; entwickelt und im Juli 2005 als Open Source unter einer BSD Lizenz veröffentlicht. Die Kernkomponenten des Frameworks sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objektrelationale Definition der eigenen Datenmodelle&lt;/li&gt;
&lt;li&gt;Eine eingebaute Administrationsoberfläche für alle Datenmodelle, auf eigene Bedürfnisse anpassbar in Funktion und Design&lt;/li&gt;
&lt;li&gt;Elegante, saubere, aussagekräftige URL Definitionen, keine kryptischen Zahlenkolonnen die sich niemand merken kann (Suchmaschinen und Leser danken!)&lt;/li&gt;
&lt;li&gt;Eigene, leicht zu erlernende und sinnvolle Template-Sprache (inklusive Vererbung von Templates)&lt;/li&gt;
&lt;li&gt;Caching ist bereits eingebaut, aber nur wenn man es möchte und für welche Teile man es möchte&lt;/li&gt;
&lt;li&gt;Internationalisierung von Webprojekten wird direkt unterstützt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Um diesem Beispiel folgen zu können benötigt man natürlich auch ein paar Dinge. Zum Beispiel sollte man einen Linux Server haben, &lt;a href=&#34;http://www.python.org/&#34;&gt;Python&lt;/a&gt; sollte bereits installiert sein und Grundkenntnisse darin sollte man auch haben. Zumindest hilft es ungemein, die Beispiele ein wenig zu verstehen. Wenn man nicht sicher ist, ob Python bereits installiert ist oder welche Version installiert ist, kann man dies mit einem &lt;code&gt;python -V&lt;/code&gt; herausfinden. Django selbst benötigt mindestens Python 2.3, welches
man in jeder aktuellen Distribution vorfindet. Unter Debian Stable (Sarge) ist es auch schon die Version 2.3, und Sarge ist nun nicht gerade für die neuesten Pakete bekannt. Unter Debian Testing (Etch) ist mittlerweile die sogar weiter verbreitete Python 2.4 zu bekommen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Backups mit dd und Fortschrittsanzeige</title>
      <link>https://www.marcogabriel.com/posts/287-linux-backups-mit-dd-und-fortschrittsanzeige/</link>
      <pubDate>Mon, 19 Jun 2006 14:39:19 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/287-linux-backups-mit-dd-und-fortschrittsanzeige/</guid>
      <description>&lt;p&gt;&lt;code&gt;dd&lt;/code&gt; ist wohl das Standardwerkzeug zum Erstellen von Festplattenimages unter Linux. Bei großen Festplatten (und mittlerweile sind alle Festplatten groß) dauert das eine ganze Weile, in der man sich gelegentlich fragt, wie weit der Vorgang denn abgeschlossen ist. &lt;code&gt;dd&lt;/code&gt; besitzt nämlich keinerlei Fortschrittsbalken.&lt;/p&gt;
&lt;p&gt;Mit einem kleinen Workaround lässt sich das aber herausfinden:&lt;/p&gt;
&lt;p&gt;Läuft &lt;code&gt;dd&lt;/code&gt; bereits, kann man in einer weiteren Konsole mit folgendem Befehl den aktuellen Stand ausgeben:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pkill -USR1 dd
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Besser allerdings wäre, gleich zu &lt;a href=&#34;https://www.marcogabriel.com/posts/464-warum-defekte-platten-unter-linux-nicht-mit-dd-gesichert-werden-sollten/&#34;&gt;GNU ddrescue&lt;/a&gt; zu greifen, auch bei Festplatten, die noch völlig intakt sind. Das geht nicht nur schneller, sondern bringt auch gleich eine Fortschrittsanzeige mit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PyInstaller statt py2exe</title>
      <link>https://www.marcogabriel.com/posts/236-pyinstaller-statt-py2exe/</link>
      <pubDate>Sun, 09 Apr 2006 02:10:14 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/236-pyinstaller-statt-py2exe/</guid>
      <description>&lt;p&gt;Nachdem mich &lt;a href=&#34;http://py2exe.org/&#34;&gt;py2exe&lt;/a&gt; schon öfter geärgert hat und gerade jetzt wieder nicht das tat, was er eigentlich tun sollte habe ich kurzerhand auf &lt;a href=&#34;http://pyinstaller.hpcf.upr.edu/cgi-bin/trac.cgi&#34;&gt;PyInstaller&lt;/a&gt; gewechselt um aus Python-Code direkt ausführbare Programme zu generieren.&lt;/p&gt;
&lt;p&gt;Nicht nur, daß PyInstaller auch unter Linux ausführbare Executables erzeugen kann, er generiert auch wirklich nur eine einzige .exe, die man besser verteilen kann.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Erbsenzählende Komprimierer</title>
      <link>https://www.marcogabriel.com/posts/229-erbsenzaehlende-komprimierer/</link>
      <pubDate>Tue, 04 Apr 2006 14:04:48 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/229-erbsenzaehlende-komprimierer/</guid>
      <description>&lt;p&gt;Packt man auf der Shell mit &lt;a href=&#34;http://www.7-zip.com&#34;&gt;7-Zip&lt;/a&gt; Dateien in ein Archiv, sollte man sehr genau darauf achten was man einpackt.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;*.*&lt;/code&gt; bedeutet für 7-Zip, daß die Datei eine Endung haben &lt;strong&gt;muß&lt;/strong&gt;. Ohne Endung (also nur &lt;code&gt;*&lt;/code&gt;), wird die Datei nicht mit ins Archiv gepackt&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Schlechte Bewertungen bei Ebay schneller finden</title>
      <link>https://www.marcogabriel.com/posts/163-schlechte-bewertungen-bei-ebay-schneller-finden/</link>
      <pubDate>Fri, 20 Jan 2006 19:49:56 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/163-schlechte-bewertungen-bei-ebay-schneller-finden/</guid>
      <description>&lt;p&gt;Wie beurteilt man die Zuverlässigkeit eines Verkäufers bei Ebay, der schon tausende von Bewertungen hat? Man schaut sich nur die schlechten Bewertungen an.&lt;/p&gt;
&lt;p&gt;Das geht zwar auch durch rumgeklicke bei Ebay selbst, aber da mir das jedesmal zu aufwendig war, hab ich mal einen kleinen Schnellanzeiger für schlechte Bewertungen gebaut.&lt;/p&gt;
&lt;p&gt;Einfach den Ebay-Namen des Verkäufers eingeben und absenden, dann geht ein neues Fenster auf, das die schlechten Bewertungen des Verkäufers in den letzten 12 Monaten anzeigt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nvi und vim</title>
      <link>https://www.marcogabriel.com/posts/161-nvi-und-vim/</link>
      <pubDate>Fri, 20 Jan 2006 10:37:34 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/161-nvi-und-vim/</guid>
      <description>&lt;p&gt;Debian kommt standardmäßig mit &lt;a href=&#34;http://www.bostic.com/vi/&#34;&gt;nvi&lt;/a&gt; als Editor daher. Seit ich den gegen den &lt;a href=&#34;http://www.vim.org/&#34;&gt;vim&lt;/a&gt; ausgetauscht habe, geht nun auch meine Backspace-Taste und meine Cursortasten wie ich das erwarte :).&lt;/p&gt;
&lt;p&gt;Danke, &lt;a href=&#34;http://www.brainoverip.net/blog/&#34;&gt;Marcus&lt;/a&gt;, für den Tipp gestern.&lt;/p&gt;
&lt;p&gt;Merke:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt-get remove nvi &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt-get install vim
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Einfache und kleine Installer mit 7-Zip selbstgebaut</title>
      <link>https://www.marcogabriel.com/posts/127-einfache-und-kleine-installer-mit-7-zip-selbstgebaut/</link>
      <pubDate>Fri, 23 Dec 2005 00:11:00 +0100</pubDate>
      <guid>https://www.marcogabriel.com/posts/127-einfache-und-kleine-installer-mit-7-zip-selbstgebaut/</guid>
      <description>&lt;p&gt;Es muß nicht immer ein ausgewachsener Installer mit &lt;a href=&#34;http://nsis.sourceforge.net/Main_Page&#34;&gt;NSIS&lt;/a&gt; oder ähnlicher Software sein. Wenn man einfach nur eine Sicherheitsabfrage (&amp;ldquo;Software XYZ jetzt installieren?&amp;rdquo;) haben möchte und anschließend die Setup.exe nach dem Entpacken des Distributionsarchivs automatisch aufgerufen werden soll, so kann man dafür auch &lt;a href=&#34;http://www.7-zip.org/&#34;&gt;7-Zip&lt;/a&gt; nehmen.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.7-zip.org/&#34;&gt;SevenZip&lt;/a&gt; ist ein Packer/Archiver, der sowohl eine Commandline-Version wie auch einen eigenen File-/Archivmanager mitbringt. Wer schon einmal über die Dateiendung 7z gestolpert ist, kennt den 7-Zip bereits. Der verwendete Algorithmus ist LZMA, welcher eine deutlich höhere Kompression als *zip erreicht.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cobol und die moderne Welt</title>
      <link>https://www.marcogabriel.com/posts/75-cobol-und-die-moderne-welt/</link>
      <pubDate>Tue, 04 Oct 2005 20:27:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/75-cobol-und-die-moderne-welt/</guid>
      <description>&lt;p&gt;Zufällig liefen mir heute Daten über den Weg, die aus einem in Cobol geschriebenen und zugegeben schon etwas älteren Programm stammen. Beim auseinandernehmen der Datenstrukturen stieß ich auf einen für mich ziemlich seltsam anmutenden Datentyp: &lt;code&gt;comp-3&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Stell dir vor, du hast eine gegebene Zahl &lt;code&gt;1234567&lt;/code&gt;, die du &lt;code&gt;comp-3&lt;/code&gt; codiert speicherst. Du gibst also &lt;code&gt;1234567&lt;/code&gt; rein und kriegst hexadezimal &lt;code&gt;0x12&lt;/code&gt;, &lt;code&gt;0x34&lt;/code&gt;, &lt;code&gt;0x56&lt;/code&gt;, &lt;code&gt;0x7c&lt;/code&gt; raus.&lt;/p&gt;
&lt;p&gt;Der Aufbau ist an sich recht leicht: Man packt jeweils eine Ziffer in ein 4-bit nybble (also ein teil-byte) und hängt ganz am Schluß noch mal in 4 bit ein &lt;code&gt;0xC&lt;/code&gt; für positiv oder ein &lt;code&gt;0xD&lt;/code&gt; für negativ an. Klingt logisch, nicht?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 2.4.2 &#43; bemerkenswerte Schnipsel</title>
      <link>https://www.marcogabriel.com/posts/70-python-2.4.2-bemerkenswerte-schnipsel/</link>
      <pubDate>Thu, 29 Sep 2005 10:43:26 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/70-python-2.4.2-bemerkenswerte-schnipsel/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/70-python-2.4.2-bemerkenswerte-schnipsel/python_logo.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.python.org/2.4.2/&#34;&gt;Python 2.4.2&lt;/a&gt; wurde heute veröffentlicht. Hauptsächlich Bugfixes, trotzdem sollte es in keiner gepflegten Python-Sammlung fehlen :).&lt;/p&gt;
&lt;p&gt;Weitere Python-Schnipsel:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://planetpython.org/&#34;&gt;Planet Python&lt;/a&gt;, eine sammlung aggregierter Python Blogs&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://faces.homeip.net/&#34;&gt;Faces 0.4.0&lt;/a&gt;, ein Projektmanagement-Tool geschrieben und programmierbar in Python. Gantt- und Ressource Charts, Ressource-Listen und viele andere Features sind bereits integriert.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.ixi-software.net/content/body_software_mirra.html&#34;&gt;Mirra 0.2.5.7&lt;/a&gt;, ein D OpenGL Framework für Python&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.elifulkerson.com/projects/telnet-serial-bridge.php&#34;&gt;tsb - Telnet to Serial Bridge&lt;/a&gt;, ein Programm mit dem man einen seriellen Anschluß per Telnet im Netzwerk zur Verfügung stellen kann. Sehr schön für serielle Geräte die an entfernten Rechnern hängen, zum Beispiel bei Telefonanlagen-Gebührenerfassung per serieller Schnittstelle.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>wxGlade 0.4 freigegeben</title>
      <link>https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/</link>
      <pubDate>Thu, 15 Sep 2005 09:35:53 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/</guid>
      <description>&lt;p&gt;Der GUI-Designer &lt;a href=&#34;http://wxglade.sourceforge.net/&#34; title=&#34;wxGlade&#34;&gt;wxGlade&lt;/a&gt; für wxPython / wxWindows ist in der neuen Version 0.4 freigegeben worden. Support für wxPython 2.6 Widgets und die Event Handler wurden verbessert. Give it a try :).&lt;/p&gt;
&lt;p&gt;Screenshots:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_palette.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_tree.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_property_panel.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_group.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Webdesign und CSS</title>
      <link>https://www.marcogabriel.com/posts/65-webdesign-und-css/</link>
      <pubDate>Sun, 11 Sep 2005 00:00:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/65-webdesign-und-css/</guid>
      <description>&lt;p&gt;Unter der Headline &lt;a href=&#34;http://www.dobschat.de/weblog/index.php/dobschat/entry/was-mit-css-alles-geht/&#34;&gt;Was mit CSS alles geht&lt;/a&gt; habe ich den Link zu einer Site gefunden die sich mit Table Layouts per CSS beschäftigt. Das ist ein Anfang, aber nicht genug.&lt;/p&gt;
&lt;p&gt;Mein persönlicher Favorit ist immer noch der &lt;a href=&#34;http://www.csszengarden.com/&#34; title=&#34;CSS Zen Garden - CSS vom Feinsten!&#34;&gt;CSS Zen Garden&lt;/a&gt;. Dort kann man das CSS Design der Website per Klick festlegen. Das Interessante dabei ist, daß die Seite von Design zu Design völlig unterschiedlich aussieht, aber der HTML-Quellcode immer der selbe bleibt. Das einzige was sich wirklich ändert ist das genutzte CSS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSource Grafiksoftware</title>
      <link>https://www.marcogabriel.com/posts/64-opensource-grafiksoftware/</link>
      <pubDate>Sat, 10 Sep 2005 18:46:33 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/64-opensource-grafiksoftware/</guid>
      <description>&lt;p&gt;Ich habe eben mal meine Seiten ein wenig überarbeitet um die Dinge permanent niederzuschreiben. So habe ich vor kurzem einen Flyer entworfen und bin im Web über allerhand brauchbare Werkzeuge gestolpert.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.scribus.net/&#34;&gt;Scribus&lt;/a&gt;, ein DTP-Programm für Linux, Windows und Mac OS X. Leider funktioniert die Windows-Version nur unter Cygwin und selbst da nur mit erhöhtem Installationsaufwand.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.inkscape.org/&#34;&gt;Inkscape&lt;/a&gt;, ein Vektorzeichenprogramm für Linux, Windows und Mac OS X. Beherrscht alles, was man so braucht und beherrscht das SVG-Dateiformat.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.sodipodi.com/&#34;&gt;Sodipodi&lt;/a&gt; ist auch ein Vektorzeichenprogramm für Windows und Linux. Sieht auf den Screenshots auch sehr vielversprechend aus.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://commons.wikimedia.org/wiki/Hauptseite&#34;&gt;Wikimedia Commons&lt;/a&gt; beheimatet freie Mediendateien die vorwiegend in Wikimedia-Projekten wie zum Beispiel Wikipedia verwendet werden.&lt;/li&gt;
&lt;li&gt;Die &lt;a href=&#34;http://www.openclipart.org/&#34;&gt;Open Clipart Library&lt;/a&gt; ist eine Sammlung aus vielen freien Cliparts, die sich in eigenen Projekten einbinden lassen. Als SVG-Grafiken sind sie auch noch gut skalierbar und die PNG-Thumbnails sind auch direkt verwendbar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So habe ich meine Seiten &lt;a href=&#34;http://www.marcogabriel.com/Fotografie_und_Grafik.82.0.html&#34;&gt;hier&lt;/a&gt;, &lt;a href=&#34;http://www.marcogabriel.com/Grafiken_erstellen.97.0.html&#34;&gt;hier&lt;/a&gt; und &lt;a href=&#34;http://www.marcogabriel.com/Links.90.0.html&#34;&gt;hier&lt;/a&gt; mal aktualisiert. Viel Spaß damit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wxGlade Designer für wxPython</title>
      <link>https://www.marcogabriel.com/posts/50-wxglade-designer-fuer-wxpython/</link>
      <pubDate>Thu, 30 Jun 2005 20:26:58 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/50-wxglade-designer-fuer-wxpython/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/50-wxglade-designer-fuer-wxpython/python-powered-small.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Wie ich vor &lt;a href=&#34;https://www.marcogabriel.com/posts/46-grafische-benutzeroberflaechen-und-python/&#34;&gt;kurzem&lt;/a&gt; schon mal schrieb, erscheint mir &lt;a href=&#34;http://www.wxpython.org&#34;&gt;wxPython&lt;/a&gt; als beste Lösung für mich.&lt;/p&gt;
&lt;p&gt;Nun habe ich sogar einen &lt;a href=&#34;http://wxglade.sourceforge.net/&#34;&gt;GUI Designer für wxPython&lt;/a&gt; gefunden, der das eigentliche Oberflächendesign etwas schneller macht. Noch etwas Beta sieht &lt;a href=&#34;http://wxglade.sourceforge.net/&#34;&gt;wxGlade&lt;/a&gt; jedoch vielversprechend aus und liefert sogar änderbaren Code ab. D.h. man kann seine eigenen Erweiterungen schon mal reintun und die GUI bleibt dennoch editierbar ohne daß die eigenen Erweiterungen überschrieben werden.&lt;/p&gt;
&lt;p&gt;Daneben habe ich ein GUI-Toolkit namens &lt;a href=&#34;http://venster.sourceforge.net/&#34;&gt;Venster&lt;/a&gt; gefunden, das leider nur unter Windows funktioniert, dort aber das beste Look &amp;amp; Feel aufzuweisen hat. Leider ist es so gut wie nicht dokumentiert.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WellGet auf Deutsch</title>
      <link>https://www.marcogabriel.com/posts/49-wellget-auf-deutsch/</link>
      <pubDate>Wed, 29 Jun 2005 19:42:55 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/49-wellget-auf-deutsch/</guid>
      <description>&lt;p&gt;Ich habe die Sprachdatei für den &lt;a href=&#34;http://www.wellget.com/&#34;&gt;WellGet&lt;/a&gt; Downloadmanager mal in&amp;rsquo;s Deutsche übersetzt. Die gibt&amp;rsquo;s jetzt &lt;a href=&#34;http://www.marcogabriel.com/Downloads.96.0.html&#34;&gt;hier&lt;/a&gt; zum Download.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grafische Benutzeroberflächen und Python</title>
      <link>https://www.marcogabriel.com/posts/46-grafische-benutzeroberflaechen-und-python/</link>
      <pubDate>Fri, 17 Jun 2005 23:53:20 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/46-grafische-benutzeroberflaechen-und-python/</guid>
      <description>&lt;p&gt;Für ein aktuelles Projekt habe ich mal wieder ein Programm in Python geschrieben. Nun wollte ich dem Programm eine grafische Benutzeroberfläche spendieren, denn der Benutzer soll dort auch etwas selektieren können. Aber welche &lt;a href=&#34;http://www.metaslash.com/brochure/tutorial/&#34;&gt;GUI Bibliothek&lt;/a&gt; setzt man dazu am besten ein?&lt;/p&gt;
&lt;p&gt;Unter Python hat man ja die Qual der Wahl, da man aus so vielen verschiedenen frei wählen kann.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://wiki.python.org/moin/TkInter&#34;&gt;Tkinter&lt;/a&gt;: Stark an Tcl/Tk angelehnt, plattformunabhängig, in der Python-Standardinstallation bereits integriert, sehr gute und umfangreiche Dokumentation verfügbar. Aber es sieht altbacken aus.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.wxpython.org/&#34;&gt;wxPython&lt;/a&gt;: Von wxWidgets (früher wxWindows) abgeleitet. Es ist plattformunabhängig, umfangreiche aber nicht immer ganz aktuelle Dokumentation vorhanden und viele Beispielprogramme aus denen man lernen kann. Es ist schnell und es sieht auf dem Zielsystem so aus, wie es aussehen soll. Aber es ist kompliziert beim Einstieg, dafür aber mächtig.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.pygtk.org/&#34;&gt;GTK&lt;/a&gt;: Es sieht eben aus wie &amp;hellip; GTK. Man dank Glade extrem schnell eine GUI designen und diese in sein Programm integrieren mit nur wenigen Zeilen zusätzlichem Programmcode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also hab ich wxPython genommen. Ich konnte mich einfach nicht mit der Optik der anderen anfreunden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bildverzeichnungen korrigieren - Teil II</title>
      <link>https://www.marcogabriel.com/posts/23-bildverzeichnungen-korrigieren-teil-ii/</link>
      <pubDate>Wed, 06 Apr 2005 12:16:58 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/23-bildverzeichnungen-korrigieren-teil-ii/</guid>
      <description>&lt;p&gt;Wenn man ein wenig weiter rumsieht, dann findet man noch weitere freie Software um Verzeichnungen zu korrigieren.&lt;/p&gt;
&lt;p&gt;Als freies Photoshop-Plugin zum Beispiel gibt es &lt;a href=&#34;http://epaperpress.com/ptlens/&#34;&gt;PTLens&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Es gibt noch etliche andere, wie ich mittlerweile festgestellt habe (z.B. &lt;a href=&#34;http://www.stoske.de/digicam/Artikel/verzeichnung.html&#34;&gt;DistortionRemove&lt;/a&gt; von Stephan Stoske). Nach und nach sollte ich meine Links dazu auffrischen&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bildverzeichnungen korrigieren</title>
      <link>https://www.marcogabriel.com/posts/18-bildverzeichnungen-korrigieren/</link>
      <pubDate>Tue, 29 Mar 2005 17:06:40 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/18-bildverzeichnungen-korrigieren/</guid>
      <description>&lt;p&gt;&amp;hellip;mit freier Software: &lt;a href=&#34;http://www.uni-koeln.de/~al001/radcor.html&#34;&gt;radcor&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
