<?xml version="1.0" encoding="utf-8"?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://www.tauceti.net/roller/roller-ui/styles/rss.xsl" media="screen"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
  <title>TauCeti.NET</title>
  <link>https://www.tauceti.net/roller/cetixx/</link>
    <atom:link rel="self" type="application/rss+xml" href="https://www.tauceti.net/roller/cetixx/feed/entries/rss?cat=Tipps" />
  <description>The lost star colony...</description>
  <language>en-us</language>
  <copyright>Copyright 2026</copyright>
  <lastBuildDate>Sun, 29 Mar 2026 13:51:17 +0000</lastBuildDate>
  <generator>Apache Roller 6.1.5</generator>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/m4a-dateien-in-mp3-konvertieren</guid>
    <title>m4a Dateien in mp3 konvertieren mit ffmpeg unter Linux</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/m4a-dateien-in-mp3-konvertieren</link>
    <pubDate>Wed, 28 Dec 2016 18:34:27 +0000</pubDate>
    <category>Tipps</category>
    <category>ffmpeg</category>
    <category>m4a</category>
    <category>mp3</category>
    <category>sound</category>
<description>&lt;p&gt;Mit folgender Kommandozeile kann man mit ffmpeg &lt;strong&gt;m4a&lt;/strong&gt; Sounddateien ins &lt;strong&gt;mp3&lt;/strong&gt; Format umwandeln:&lt;/p&gt;
  &lt;p&gt;&lt;span style=&quot;font-family:monospace;&quot;&gt;&lt;strong&gt;find . -type f -name &amp;#39;*.m4a&amp;#39; -exec bash -c &amp;#39;ffmpeg -i &amp;quot;$0&amp;quot; &amp;quot;${0/%m4a/mp3}&amp;quot;&amp;#39; &amp;#39;{}&amp;#39; \;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p&gt;Mit &lt;strong&gt;find&lt;/strong&gt; suchen wir uns erst mal alle &lt;strong&gt;m4a&lt;/strong&gt; Dateien und für jede Datei wird eine neue Bash Shell gestartet. Diese startet &lt;strong&gt;ffmpeg&lt;/strong&gt;, übergibt die gefundene Datei an &lt;strong&gt;ffmpeg&lt;/strong&gt; als Input (&lt;strong&gt;-i&lt;/strong&gt;). Dahinter wird die Zieldatei angegeben. Dabei ersetzen wir die Dateiendung &lt;strong&gt;m4a&lt;/strong&gt; durch &lt;strong&gt;mp3&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;
  &lt;p&gt; &lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/kde-plasma-display-helligkeit-display</guid>
    <title>KDE Plasma Display Helligkeit (Display Brightness)</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/kde-plasma-display-helligkeit-display</link>
    <pubDate>Mon, 7 Nov 2016 19:44:52 +0000</pubDate>
    <category>Tipps</category>
    <category>archlinux</category>
    <category>display</category>
    <category>kde</category>
    <category>linux</category>
    <category>monitor</category>
    <category>plasma</category>
<description>&lt;p&gt;Wenn bei KDE Plasma mal wieder der Helligkeitsregler (Screen / Display brightness) versagt und genau nichts macht (was bei mir unter Archlinux ab und an passiert) und man auf das nächste Update wartet, kann man sich der weilen so behelfen, das man die Hintergrundbeleuchtung per Kommandozeile einstellt. Z.B.:&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;echo 700 &amp;gt;&amp;nbsp;/sys/class/backlight/gmux_backlight/brightness&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;In meinem Fall steht hier &lt;strong&gt;gmux_backlight&lt;/strong&gt; (MacBook Pro, der unter Linux läuft). Bei anderen muss man unter &lt;strong&gt;/sys/class/backlight/&lt;/strong&gt; einfach schauen, welche Backlights angezeigt werden (z.B.&amp;nbsp;&lt;strong&gt;intel_backlight&lt;/strong&gt;). Den aktuellen Wert kann man sich mit&lt;strong&gt; cat /sys/class/backlight/*/brightness&lt;/strong&gt; ausgeben lassen. Für das &lt;strong&gt;gmux_backlight&lt;/strong&gt; war der Wert bei mir bei &lt;strong&gt;1023&lt;/strong&gt;. Am Besten geht man in 100erter Schritten nach unten bis man die gewünschte Helligkeit eingestellt hat.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/google-storage-mit-s3cmd-und</guid>
    <title>Google Storage mit s3cmd und aws cli benutzen</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/google-storage-mit-s3cmd-und</link>
    <pubDate>Thu, 20 Oct 2016 07:59:28 +0000</pubDate>
    <category>Tipps</category>
    <category>aws</category>
    <category>cloud</category>
    <category>gce</category>
    <category>s3</category>
    <category>storage</category>
<description>&lt;p&gt;Wenn man &lt;strong&gt;s3md&lt;/strong&gt;&amp;nbsp;mit Google Cloud Storage benutzen will, muss man in dessen Konfigurationsdatei &lt;strong&gt;.s3cfg&lt;/strong&gt;&amp;nbsp;Folgendes anpassen:&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;access_key = xxx&lt;br&gt;secret_key = xxx&lt;br&gt;host_base = storage.googleapis.com&lt;br&gt;host_bucket = %(bucket).storage.googleapis.com&lt;/strong&gt;&lt;/p&gt; 
  &lt;div&gt;
    &lt;p&gt;&lt;strong&gt;xxx&lt;/strong&gt;&amp;nbsp;muss man natürlich durch seine entsprechenden Keys ersetzen, die man sich über die Google Console/UI (Storage -&amp;gt; Settings -&amp;gt; Interoperability) erstellen kann (nachdem man den interoperable access aktiviert hat natürlich). Diese Keys sind pro Projektmitglied und nicht pro Projekt (also jeder hat seinen eigenen Key).&lt;/p&gt;
    &lt;p&gt;Bei der AWS CLI (aws Kommando) konnte ich die Einstellungen in &lt;strong&gt;.aws/config&lt;/strong&gt; irgendwie nicht nutzen. &amp;nbsp;Hier half nur die Keys als Env. Variable zu setzen und den Endpoint zu ändern:&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;export AWS_ACCESS_KEY_ID=xxx&lt;br&gt;export AWS_SECRET_ACCESS_KEY=xxx&lt;br&gt;aws s3 --endpoint-url https://storage.googleapis.com ls&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Auch hier natürlich &lt;strong&gt;xxx&lt;/strong&gt; entsprechend ändern.&lt;/p&gt;
  &lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/ersatz-f%C3%BCr-kde-quadkonsole</guid>
    <title>Ersatz für KDE Quadkonsole</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/ersatz-f%C3%BCr-kde-quadkonsole</link>
    <pubDate>Mon, 7 Sep 2015 23:25:24 +0000</pubDate>
    <category>Tipps</category>
    <category>kde</category>
    <category>linux</category>
<description>Bei KDE 4 hatte ich immer u.a. die KDE App Quadkonsole im Einsatz. Wird aber leider schon länger nicht mehr weiterentwickelt und unter Archlinux mit KDE Plasma 5 klappte das mit selber kompilieren auch nicht so wirklich. Als Ersatz habe ich &lt;a href=&quot;http://gnometerminator.blogspot.de/p/introduction.html&quot; target=&quot;_blank&quot;&gt;Terminator&lt;/a&gt; gefunden, eine Konsole mit der man das Konsolenfenster in mehrere Teile splitten kann.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/wo-ist-mein-speicherplatz-hin</guid>
    <title>Wo ist mein Speicherplatz hin?</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/wo-ist-mein-speicherplatz-hin</link>
    <pubDate>Fri, 7 Aug 2015 22:55:08 +0000</pubDate>
    <category>Tipps</category>
    <category>directory</category>
    <category>du</category>
    <category>files</category>
    <category>hdd</category>
    <category>linux</category>
    <category>ncdu</category>
<description>&lt;p&gt;&lt;strong&gt;cd /in/ein/verzeichnis&lt;br&gt;du -h . | grep -P &amp;#39;^[0-9\.]+G&lt;/strong&gt;&lt;/p&gt; 
  &lt;p&gt;Alternativ das Tool &lt;strong&gt;ncdu&lt;/strong&gt; installieren...&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/gentoo-alle-installierten-pakete-auflisten</guid>
    <title>Gentoo - Alle installierten Pakete auflisten</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/gentoo-alle-installierten-pakete-auflisten</link>
    <pubDate>Fri, 7 Aug 2015 22:55:01 +0000</pubDate>
    <category>Tipps</category>
    <category>funtoo</category>
    <category>gentoo</category>
    <category>packages</category>
    <category>portage</category>
<description>&lt;strong&gt;equery list &amp;quot;*&amp;quot;&lt;/strong&gt; &lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/apache-mesos-testcluster</guid>
    <title>Apache Mesos Testcluster für daheim</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/apache-mesos-testcluster</link>
    <pubDate>Thu, 6 Aug 2015 21:56:55 +0000</pubDate>
    <category>Tipps</category>
    <category>apache</category>
    <category>cluster</category>
    <category>mesos</category>
<description>&lt;p&gt;&lt;strong&gt;Was ist Mesos und Voraussetzungen&lt;/strong&gt; &lt;/p&gt; 
  &lt;p&gt;Ganz grob und einfach gesagt ist&amp;nbsp;&lt;strong&gt;Apache Mesos&lt;/strong&gt;&amp;nbsp;ein &amp;quot;verteiltes Betriebssystem für Datenzentren&amp;quot;, wenn man so will. Dabei spielt es keine Rolle, ob man Rechner, VMs oder beides hat und wo diese Rechner/VMs stehen. Man hat eine einheitliche Sicht auf alle Resourcen, auf welche man dann von Frameworks Tasks verteilt werden (u.a. auch Docker Container). Marathon und Chronos sind z.B. solche Frameworks und es gibt noch eine Reihe anderer und man kann selbst welche bauen. Alle Rechner, die in diesem Cluster-Verbund sind, stellen sich nach Außen als ein einzelner Pool an Resourcen dar. Das Ganze skaliert über einige zehntausend Nodes (soweit man sie denn hat ;-) ), ist ausfallsicher mit Hilfe von ZooKeeper, unterstützt Docker seit einiger Zeit, isoliert Tasks mit Hilfe von Linux Containern und bietet Java, Python, C++ und Go APIs, um direkt neue parallele Applikationen mit Mesos zu entwickeln.&lt;/p&gt; 
  &lt;p&gt;Um Mesos einigermaßen realistisch zu testen (realistisch in dem Sinne, das man eine gewisse Anzahl von VMs hat und auch das HA-Setup mal testen kann), macht es Sinn, sich wie für den produktiven Betrieb auch, mindestens 3 Master-VMs (oder wer Rechner hat, dann 3 Rechner) und 2-3 Slaves (die dann die Tasks ausführen) zu installieren. Die Master-VMs benötigt man für ZooKeeper, der dafür sorgt, das immer ein Mesos-Service der sog. Master ist (die anderen sind soz. im Standby-Modus) und bei Ausfall des Masters, ein neuer Master bestimmt wird. Da der Master seine Aufgaben alle an die Slaves delegiert, hält sich die Belastung was CPU &amp;amp; Co. anbelangt bei ihm in Grenzen. Damit man ein Quorum hat, machen immer eine ungerade Anzahl von ZooKeeper-Instanzen Sinn (normalerweise 3 oder 5).&lt;/p&gt; 
  &lt;p&gt;Für eine Testinstallation bietet es sich an, einige VMs zu installieren. Um VMs aufzusetzen, kann man z.B.&amp;nbsp;&lt;a href=&quot;https://github.com/everpeace/vagrant-mesos/&quot; target=&quot;_blank&quot;&gt;Vagrant mit Virtualbox&lt;/a&gt; verwenden. Da ich libvirt drauf hab und in Vagrant nicht so tief drin bin, habe ich die 6 Ubuntu 14.04 LTS VMs mit virsh-install installiert. Wie das geht, habe ich prinzipiell&amp;nbsp;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/entry/vm-mit-virsh-install-installieren&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt; beschrieben. Wenn man dann eine Ubuntu-VM installiert hat, kann man das fertige qcow2-File einfach kopieren (solange die VM nicht gestartet ist) und entsprechend dann in libvirt konfigurieren. Ich gehe darauf jetzt aber nicht weiter ein. Noch einfacher geht die Sache allerdings mit &lt;a href=&quot;http://libguestfs.org/virt-builder.1.html&quot; target=&quot;_blank&quot;&gt;virt-builder&lt;/a&gt;&amp;nbsp;(Teil des &lt;a href=&quot;http://libguestfs.org/&quot; target=&quot;_blank&quot;&gt;libguestfs&lt;/a&gt; Pakets ab Version 1.26, wenn ich mich nicht irre).&lt;/p&gt; 
  &lt;p&gt;Wenn man dann die 6 VMs hat, kann man sich in der /etc/hosts noch Einträge machen, damit man die VMs per Namen und nicht per IP ansprechen kann. In meinem Fall:&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;192.168.122.252 me-master01&lt;br&gt;192.168.122.251 me-master02&lt;br&gt;192.168.122.250 me-master03&lt;br&gt;192.168.122.249 me-slave01&lt;br&gt;192.168.122.248 me-slave02&lt;br&gt;192.168.122.247 me-slave03&lt;/strong&gt;&lt;/p&gt; 
  &lt;p&gt;Der Netzbereich &lt;strong&gt;192.168.122.0/24&lt;/strong&gt; ist bei mir die Default-Range, die bei libvirt vorgegeben war. Hab ich einfach übernommen. Ebenso die von libvirt erzeugte Bridge&amp;nbsp;&lt;strong&gt;virbr0&lt;/strong&gt;. Nicht schaden kann auch die Installation des &lt;strong&gt;ntp&lt;/strong&gt; Pakets auf allen VMs, damit die Zeiten überall gleich sind.&lt;br&gt;&lt;br&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;Allgemein&lt;/strong&gt; &lt;/p&gt; 
  &lt;p&gt;Nachdem die VMs einsatzbereit sind, machen wir Ubuntu das Mesosphere Repository bekannt auf ALLEN VMs und updaten den Repo-Index:&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF&lt;br&gt;DISTRO=$(lsb_release -is | tr &amp;#39;[:upper:]&amp;#39; &amp;#39;[:lower:]&amp;#39;)&lt;br&gt;CODENAME=$(lsb_release -cs)&lt;br&gt;echo &amp;quot;deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main&amp;quot; | sudo tee /etc/apt/sources.list.d/mesosphere.list&lt;br&gt;sudo apt-get -y update&lt;/strong&gt;&lt;/p&gt; 
  &lt;div&gt; 
    &lt;p&gt;Auf den &lt;strong&gt;Master-Hosts &lt;/strong&gt;(und nur da) installieren wir das mesosphere-Metapaket das u.a. ZooKeeper, Mesos, Marathon (für langlaufende Tasks) und Chronos (für verteilte Cronjobs) enthält (das Metapaket hat aktuell ca. 330 MB):&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo apt-get install mesosphere&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Auf den &lt;strong&gt;Slave-Hosts&lt;/strong&gt; installieren wir das mesos-Paket, das ist gut 100 MB kleiner und enthält u.a. ZooKeeper:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo apt-get install mesos&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Als Nächstes konfigurieren wir ALLE VMs so, das sie alle die gleiche ZooKeeper Verbindungsinformation haben zu unseren ZooKeeper-Masterservern. Dazu editieren wir die Datei&amp;nbsp;&lt;strong&gt;/etc/mesos/zk. &lt;/strong&gt;Normalerweise finden wir dort den Eintrag &lt;strong&gt;zk://localhost:2181/mesos &lt;/strong&gt;(der ist dafür gedacht, wenn man nur einen ZooKeeper hat), welchen wir ersetzen wollen. Statt localhost:2181 (2181 ist der ZooKeeoper Port) geben wir kommasepariert die IP&amp;#39;s und Port unserer Master-ZooKeeper Server an. In meinem Fall sieht der Eintrag dann also so aus:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;zk://192.168.122.252:2181,&lt;/strong&gt;&lt;strong&gt;192.168.122.251&lt;/strong&gt;&lt;strong&gt;:2181,&lt;/strong&gt;&lt;strong&gt;192.168.122.250&lt;/strong&gt;&lt;strong&gt;:2181/mesos&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;&lt;br&gt;&lt;strong&gt;Master-Hosts/VMs (Mesos-Master)&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Auf den &lt;strong&gt;Master-Hosts&lt;/strong&gt;&amp;nbsp;müssen wir nun jeder ZooKeeper-Instanz eine eindeutige ID verpassen. Dazu editieren wir &lt;strong&gt;/etc/zookeeper/conf/myid&lt;/strong&gt;&amp;nbsp;auf jedem Master. Die ID darf eine Zahl von 1-255 sein. In meinem Fall nehme ich das letzte Oktet von der IP der jeweiligen Master-VM also ID 252 für master01, 251 für master02 und 250 für master03.&lt;/p&gt; 
    &lt;p&gt;Dann müssen wir der ID einen Host zuweisen. Dieses Mapping macht man in der Datei&amp;nbsp;&lt;strong&gt;/etc/zookeeper/conf/zoo.cfg&lt;/strong&gt;&amp;nbsp;und sieht wie folgt aus:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;server.252=192.168.122.252:2888:3888&lt;br&gt;server.251=192.168.122.251:2888:3888&lt;br&gt;server.250=192.168.122.250:2888:3888&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Hinter &lt;strong&gt;server.&lt;/strong&gt; steht also unsere ID, die wir oben vergeben haben und hinter dem &amp;quot;=&amp;quot;&amp;nbsp;dann die IP des zugehörigen Hosts. Der erste &lt;strong&gt;Port 2888&lt;/strong&gt; wird verwendet, um mit dem Master zu kommunizieren. Der zweite &lt;strong&gt;Port 3888&lt;/strong&gt; wird verwendet, wenn ein neuer Master gewählt werden muss. Sollte man eine Firewall zwischen den Hosts haben, muss man die Ports natürlich freischalten! ZooKeeper ist damit soweit fertig.&lt;/p&gt; 
    &lt;p&gt;Kümmern uns nun um die &lt;strong&gt;Mesos Master&lt;/strong&gt; selber. Zuerst müssen wir das Quorum anpassen. Das Quorum legt fest, wie viele Nodes im Cluster noch funktionieren müssen, damit der Cluster noch als funktional eingestuft werden kann und Entscheidungen treffen kann. Über 50% des Clusters sollten noch funktionieren, damit Entscheidungen getroffen werden können. D.h. in unserem Fall von den drei Master-Hosts müssen mindestens zwei noch laufen. Wir setzen also auf ALLEN Master-VMs in&amp;nbsp;&lt;strong&gt;/etc/mesos-master/quorum&lt;/strong&gt; einen Wert von 2 (Default ist 1).&amp;nbsp;&lt;/p&gt; 
    &lt;p&gt;Dann schreiben wir auf ALLEN Master-VMs in &lt;strong&gt;/etc/mesos-master/ip&lt;/strong&gt;&amp;nbsp;die IP des jeweiligen Hosts, auf dem wir die Datei gerade editieren. Das Gleiche machen wir in&lt;strong&gt;/etc/mesos-master/hostname&lt;/strong&gt;&amp;nbsp;(alternativ kann man hier auch den Hostnamen rein schreiben, allerdings sollte man dann alle Hosts in der /etc/hosts stehen haben auf allen Mesos-Hosts/VMs, damit man nicht von einem DNS-Server abhängig ist - und falls der ausfällt, ist das eher ungünstig, zumindest wenn das Ganze produktiv wird ;-) ).&lt;/p&gt; 
    &lt;p&gt;&lt;br&gt;&lt;strong style=&quot;font-size:medium;&quot;&gt;Master-Hosts/VMs (Marathon)&lt;/strong&gt; &lt;/p&gt; 
    &lt;p&gt;Als Nächstes ist dann die &lt;strong&gt;Marathon Konfiguration&lt;/strong&gt; an der Reihe - die verteilte init System Implementierung, wenn man so will. Marathon startet u.a. lang laufende Prozesse. Marathon läuft auf allen Master-Hosts, aber nur der Leader kann Jobs ausführen. Die anderen Marathon Instanzen leiten die Requests transparent an den Leader weiter. Für jede Marathon Instanz müssen wir wie bei Mesos auch schon, wieder den Hostnamen festlegen. Hierzu können wir einfach&amp;nbsp;&lt;strong&gt;/etc/mesos-master/hostname &lt;/strong&gt;nach &lt;strong&gt;/etc/marathon/conf/hostname&lt;/strong&gt; kopieren, müssen aber vorher noch das Verzeichnis auf jedem Master-Host anlegen (&lt;strong&gt;mkdir -p&amp;nbsp;/etc/marathon/conf&lt;/strong&gt;).&amp;nbsp;&lt;/p&gt; 
    &lt;p&gt;Dann müssen wir eine Liste von ZooKeeper Master für Marathon festlegen, die Marathon benötigt für den Informationsaustausch und Scheduling. Die Liste hat das gleiche Format wie wir es für Mesos in &lt;strong&gt;/etc/mesos/zk&lt;/strong&gt; schon festgelegt haben. Auf ALLEN Master-Hosts kopieren wir also die Datei&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo cp /etc/mesos/zk /etc/marathon/conf/master&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Damit erlauben wir Marathon sich mit dem Mesos Cluster zu verbinden. Allerdings soll Marathon seine eigenen Informationen in ZooKeeper speichern können. Dafür nehmen wir wieder die gleiche Konfigurationsdatei und passen nur den Endpunkt (/marathon anstatt /mesos) an. Auf allen Master-Hosts kopieren wir&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo cp /etc/marathon/conf/master /etc/marathon/conf/zk&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Dann editieren wir &lt;strong&gt;/etc/marathon/conf/zk&lt;/strong&gt; und tauschen, wie oben schon erwähnt, den Endpunkt &lt;strong&gt;/mesos&lt;/strong&gt; durch &lt;strong&gt;/marathon&lt;/strong&gt; aus. Dann sind wir mit Marathon soweit durch.&lt;/p&gt; 
    &lt;p&gt;Auf den Master-Hosts sollen keine Slave-Prozesse laufen, deshalb beenden wir diese (soweit sie überhaupt laufen) und sorgen dafür, das sie beim Reboot nicht wieder starten:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo stop mesos-slave&lt;br&gt;echo manual | sudo tee /etc/init/mesos-slave.override&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Nun soll dann auch endlich unser Konfiguration aktiv werden, an der wir schon die ganze Zeit rum basteln ;-)&amp;nbsp;&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo restart zookeeper&lt;br&gt;sudo start mesos-master&lt;br&gt;sudo start marathon&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Wenn wir alles richtig gemacht haben, können wir uns auf einen der Master mal die GUI (Port 5050) anschauen z.B.&amp;nbsp;http://192.168.122.251:5050/&amp;nbsp;. Man wird dann automatisch auf den Leader weitergeleitet, wenn man ihn nicht auf Anhieb erwischt. Bei Problemen kann man auf den Master-Hosts auch mal einen Blick in das ZooKeeper Log unter&amp;nbsp;&lt;strong&gt;/var/log/zookeeper&lt;/strong&gt; werfen. Da wir noch keine Slaves am Laufen haben, sieht die GUI noch nicht sehr spannend aus ;-)&lt;/p&gt; 
    &lt;p&gt;Auf die Marathon-GUI können wir auch einen Blick werfen, welche unter Port 8080 läuft z.B. http://192.168.122.251:8080/ . Auch hier geht es nicht sonderlich spannend zu im Moment ;-)&lt;/p&gt; 
    &lt;p&gt;&lt;br&gt;&lt;strong&gt;Slave-Hosts/VMs&lt;/strong&gt; &lt;/p&gt; 
    &lt;p&gt;Da wir jetzt mit den Master-Hosts fertig sind, kümmern wir uns um die &lt;strong&gt;Slave-Hosts&lt;/strong&gt;. Da wir hier keinen ZooKeeper und Mesos Master benötigen, fahren wir die Services runter (soweit sie laufen) und sorgen auch dafür, das diese Services beim Reboot nicht wieder starten. Auf ALLEN Slave-Hosts also:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo stop zookeeper&lt;br&gt;sudo echo manual | sudo tee /etc/init/zookeeper.override&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo stop mesos-master&lt;br&gt;sudo echo manual | sudo tee /etc/init/mesos-master.override&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Auch für die Slave-Hosts müssen wir wieder Hostname und IP festlegen diesmal im Verzeichnis &lt;strong&gt;/etc/mesos-slave&lt;/strong&gt;. In unserem Fall sieht das für den ERSTEN Slave-Host dann so aus&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;echo &amp;quot;192.168.122.249&amp;quot; | sudo tee /etc/mesos-slave/ip&lt;br&gt;sudo cp /etc/mesos-slave/ip /etc/mesos-slave/hostname&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Für die weiteren Slave-Hosts passt man die IP entsprechend an und führt die Kommandos dort aus. Dann können wir die Mesos Slaves auf ALLEN Slave-Hosts starten:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;sudo service mesos-slave start&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Wenn wir uns nun wieder auf eine der Mesos-Master GUIs einloggen (z.B.&amp;nbsp;http://192.168.122.251:5050/), sollte auf der linken Seite irgendwo &lt;strong&gt;Slaves / Activated 3&lt;/strong&gt;&amp;nbsp;stehen. Etwas weiter unten sieht man die Resourcen, die uns insgesamt im Cluster dann zur Verfügung stehen - also etwa die Anzahl der CPUs und RAM. Weitere Infos über die Slaves bekommt man, wenn man oben im Menü auf &lt;strong&gt;Slaves&lt;/strong&gt; klickt.&lt;/p&gt; 
    &lt;p&gt;Damit ist ZooKeeper, Mesos und Marathon soweit einsatzbereit. Über die Marathon-GUI (z.B. http://192.168.122.251:8080/) können wir dann oben links auf &lt;strong&gt;New Apps&lt;/strong&gt;&amp;nbsp;klicken und einen Task definieren. Zum Testen kann man einfach mal bei der ID &lt;strong&gt;Hello&lt;/strong&gt; eingeben und beim Command&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;echo hello; sleep 10;&lt;/strong&gt; &lt;/p&gt; 
    &lt;p&gt;Man sieht dann, das alle 10 Sek. der Task auf einem Slave gestartet wird, nachdem er sich beendet hat.&lt;br&gt;&lt;br&gt;&lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div&gt; 
    &lt;p&gt; &lt;/p&gt; 
  &lt;/div&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/vm-mit-virsh-install-installieren</guid>
    <title>VM mit virsh-install installieren</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/vm-mit-virsh-install-installieren</link>
    <pubDate>Tue, 4 Aug 2015 22:12:29 +0000</pubDate>
    <category>Tipps</category>
    <category>kvm</category>
    <category>libvirt</category>
    <category>qemu</category>
    <category>virsh</category>
<description>&lt;p&gt;Wenn man libvirtd (und die div. virsh*-Tools) installiert hat, kann man sich mit folgenden Kommando eine Ubuntu 14.04 VM erzeugen:&lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;export VMNAME=vm_name&lt;br&gt;export VMRAM=1024&lt;br&gt;export VMCPU=3&amp;nbsp;&lt;/strong&gt;&lt;/p&gt; 
  &lt;div&gt; 
    &lt;p&gt;&lt;strong&gt;virt-install \&lt;/strong&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--name $VMNAME \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--ram $VMRAM \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--disk path=/var/lib/libvirt/images/$VMNAME.qcow2,size=10 \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--vcpus $VMCPU \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--os-type linux \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--os-variant generic \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--network bridge=virbr0 \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--graphics none \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--console pty,target_type=serial \&lt;/strong&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;strong&gt;--location &amp;#39;http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/&amp;#39; \&lt;br&gt;&lt;/strong&gt;&lt;strong&gt;--extra-args &amp;#39;console=ttyS0,115200n8 serial&amp;#39;&lt;/strong&gt;&lt;/div&gt;
  &lt;div&gt; 
    &lt;p&gt;&lt;strong&gt;vm_name&lt;/strong&gt; ersetzt man durch den Namen, den die VM später haben soll und bei &lt;strong&gt;virsh list&lt;/strong&gt; angezeigt wird. &lt;strong&gt;VMRAM&lt;/strong&gt; gibt die RAM-Größe an und &lt;strong&gt;VMCPU&lt;/strong&gt; die Anzahl der CPUs, die die VM nutzen darf. Wenn libvirtd gestartet ist, gibt es normalerweise auch ein Netzwerk-Interface &lt;strong&gt;virbr0&lt;/strong&gt;. Sollte das &lt;strong&gt;br0&lt;/strong&gt; o.ä. heissen, muss man das entsprechend anpassen.&lt;br&gt;&lt;br&gt;&lt;/p&gt; 
  &lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/how_to_automatically_fetch_missing</guid>
    <title>Abhängigkeiten bei der Installation eines .deb Pakets auflösen</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/how_to_automatically_fetch_missing</link>
    <pubDate>Thu, 23 Jul 2015 21:34:51 +0000</pubDate>
    <category>Tipps</category>
    <category>apt-get</category>
    <category>debian</category>
    <category>package</category>
<description>&lt;div&gt;
    &lt;p&gt;Wenn man ein .deb Paket direkt installieren will und auch die Abhängigkeiten aufgelöst werden sollen, dann kann man das mit &lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;gdebi paketname.deb&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;machen.&lt;br&gt; &lt;/p&gt;
  &lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/create-a-tv-show-tracker</guid>
    <title> Create a TV Show Tracker using AngularJS, Node.js and MongoDB</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/create-a-tv-show-tracker</link>
    <pubDate>Thu, 23 Jul 2015 21:30:36 +0000</pubDate>
    <category>Tipps</category>
    <category>angularjs</category>
    <category>javascript</category>
    <category>mongodb</category>
    <category>nodejs</category>
    <category>nosql</category>
<description>Ein unfangreiches &lt;a href=&quot;http://sahatyalkabov.com/create-a-tv-show-tracker-using-angularjs-nodejs-and-mongodb/&quot; target=&quot;_blank&quot;&gt;Tutorial&lt;/a&gt; das die Technologien&amp;nbsp;AngularJS, Node.js und MongoDB verwendet.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/archlinux-xbmc-kodi-lirc-und</guid>
    <title>Archlinux - XBMC/Kodi, Lirc und Streamzap</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/archlinux-xbmc-kodi-lirc-und</link>
    <pubDate>Sun, 7 Dec 2014 14:40:29 +0000</pubDate>
    <category>Tipps</category>
    <category>archlinux</category>
    <category>kodi</category>
    <category>lirc</category>
    <category>streamzap</category>
    <category>xbmc</category>
<description>&lt;p&gt;Wer die Streamzap Fernbedienung unter Archlinux mit XBMC aka Kodi zum Laufen bringen möchte, dem hilft vielleicht diese kleine Anleitung:&lt;/p&gt; 
  &lt;p&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;*) Den Streamzap-Empfänger in den USB-Port stecken&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;*) Normalerweise müsste das &lt;strong&gt;streamzap&lt;/strong&gt;-Modul dann selbstständig geladen werden (prüfen mit &lt;strong&gt;lsmod | grep streamzap&lt;/strong&gt;). Ansonsten: &lt;strong&gt;modprobe streamzap&lt;/strong&gt; und am Besten eine Datei anlegen, damit das Modul beim nächsten Start des Rechners mit geladen wird:&lt;br&gt;&lt;strong&gt;echo &amp;quot;streamzap&amp;quot; &amp;gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;/etc/modules-load.d/streamzap.conf&lt;/strong&gt;&lt;br&gt;*) &lt;strong&gt;pacman -S lirc-utils&lt;/strong&gt;&lt;br&gt;*) Im $HOME-Verzeichnis, mit dem XBMC aka Kodi dann laufen soll, ins Verzeichnis &lt;strong&gt;$HOME/.xbmc/userdata/&lt;/strong&gt; wechseln und eine Datei Lircmap.xml (&lt;strong&gt;man achte auf das große L&lt;/strong&gt;) anlegen:&lt;br&gt;&lt;/p&gt;
  &lt;p&gt;Download &lt;a href=&quot;http://www.tauceti.net/config/Lircmap.xml.gz&quot; target=&quot;_blank&quot;&gt;Lircmap.xml.gz&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;*) &lt;strong&gt;ln -s&amp;nbsp;/usr/share/lirc/streamzap/lircd.conf.streamzap&amp;nbsp;/etc/lirc/lircd.conf&lt;/strong&gt;&lt;br&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;*) Lircd-Service-Datei für Systemd anlegen:&amp;nbsp;&lt;/span&gt;&lt;strong&gt;/usr/lib/systemd/system/lircd.service&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Download &lt;a href=&quot;http://www.tauceti.net/config/lircd.service.gz&quot; target=&quot;_blank&quot;&gt;lircd.service.gz&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;*)&amp;nbsp;&lt;strong&gt;systemctl daemon-reload&lt;/strong&gt;&lt;br&gt;*) &lt;strong&gt;systemctl start lircd&lt;/strong&gt;&lt;br&gt;*) Mit dem Kommando &lt;strong&gt;irw&lt;/strong&gt; kann man dann testen, ob man etwas empfängt, wenn man eine Taste auf der Fernbedienung drückt. Der Output sieht dann z.B. so aus:&lt;/p&gt;
  &lt;p&gt;00000000000028d0 00 KEY_UP Streamzap_PC_Remote&lt;br&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;00000000000028d0 01 KEY_UP Streamzap_PC_Remote&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;00000000000028d4 00 KEY_DOWN Streamzap_PC_Remote&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;00000000000028d3 00 KEY_RIGHT Streamzap_PC_Remote&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;00000000000028d5 00 KEY_MENU Streamzap_PC_Remote&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-size:13px;&quot;&gt;00000000000028d6 00 KEY_EXIT Streamzap_PC_Remote&lt;/span&gt;&lt;span style=&quot;font-size:13px;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
  &lt;p&gt;Wenn was bei &lt;strong&gt;irw&lt;/strong&gt; rein kommt, dann hat man gute Chancen, das es auch unter XBMC/Kodi klappt.&lt;br&gt; &lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/thunderbird_mehrere_e_mail_adressen</guid>
    <title>Thunderbird: Mehrere E-Mail-Adressen in einer Identität verwalten</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/thunderbird_mehrere_e_mail_adressen</link>
    <pubDate>Wed, 4 Jun 2014 23:10:11 +0000</pubDate>
    <category>Tipps</category>
    <category>identity</category>
    <category>mail</category>
    <category>thunderbird</category>
<description>&lt;p&gt;Da ich meine eigene Maildomain habe, richte ich mir immer eine neue E-Mail Adresse ein, wenn ich mich irgendwo anmelde. Sollte eine dieser Adressen irgendwo auf einer Spamliste landet, wird der Account einfach gelöscht (hat auch noch ein paar andere Vorteile). Der Nachteil ist, das man dann im Thunderbird für jede dieser Adressen eine eigene Identität sprich Konto anlegen muss. Das wird natürlich bald recht unübersichtlich ;-)&lt;/p&gt; 
  &lt;p&gt;Aber Thunderbird kann mehrere E-Mail-Adressen in einer Identität bzw. Konto verwalten. Dazu geht man auf &lt;b&gt;Edit&lt;/b&gt; -&amp;gt; &lt;b&gt;Account Settings&lt;/b&gt; (sorry, hab die englischsprachige Version von Thunderbird...). Dann wählt man einen Account aus und klickt dann unten rechts auf den Button &lt;b&gt;Manage Identities...&lt;/b&gt;&amp;nbsp;(unterhalb vom &lt;b&gt;Outgoing Server (SMTP)&lt;/b&gt;). Jetzt kann man hier die Email Adresse (das ist der FROM Header im SMTP-Protokoll) und auch Reply-to angeben (i.d.R. wird man in diesem Fall beides auf den gleichen Wert setzen).&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;Wenn man nun eine E-Mail verfasst, kann man oben bei &lt;b&gt;From:&lt;/b&gt;&amp;nbsp;diese - ich nenne es mal - virtuelle Identität auswählen. Wichtig ist nur, das der Mail-Server diese Mail-Adresse auch akzeptiert, sonst klappt das natürlich nicht. Aber ansonsten sieht dann der Empfänger der Mail als Absender diese &amp;quot;virtuelle&amp;quot; Identität. Es steht also dann nicht nur im &lt;b&gt;Reply-to&lt;/b&gt;&amp;nbsp;die gewünschte E-Mail-Adresse sondern auch im &lt;b&gt;From:&lt;/b&gt;&amp;nbsp;Feld und das ist das was wir haben wollen ;-) Die Default Mail-Adresse des Kontos taucht dann im Mailprotokoll nicht mehr auf.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size:13px;&quot;&gt; &lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/cli53_amazon_route_53_dns</guid>
    <title>cli53 - Amazon Route 53 DNS Kommandozeilentool</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/cli53_amazon_route_53_dns</link>
    <pubDate>Sun, 19 Jan 2014 22:09:18 +0000</pubDate>
    <category>Tipps</category>
    <category>amazon</category>
    <category>aws</category>
    <category>cloud</category>
    <category>dns</category>
    <category>linux</category>
<description>Wenn man eine DNS-Zone in AWS Route 53 verwaltet, leistet das kleine Tool &lt;a href=&quot;https://github.com/barnybug/cli53&quot; target=&quot;_blank&quot;&gt;cli53&lt;/a&gt; ganz gute Dienste. Damit kann man z.B. eine Zone aus AWS heraus ins BIND-Format exportieren oder auch wieder importieren oder gezielt Einträge ändern. Es gibt zwar hierfür auch das &lt;a href=&quot;http://aws.amazon.com/cli/&quot; target=&quot;_blank&quot;&gt;aws&lt;/a&gt; Kommandozeilen Tool (pip install awscli), aber das hat einige Features von cli53 nicht.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/ftp_verzeichnisse_rekursiv_herunterladen</guid>
    <title>FTP: Verzeichnisse rekursiv herunterladen</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/ftp_verzeichnisse_rekursiv_herunterladen</link>
    <pubDate>Mon, 25 Mar 2013 22:31:25 +0000</pubDate>
    <category>Tipps</category>
    <category>download</category>
    <category>ftp</category>
<description>&lt;p&gt;Will wann einen FTP-Ordner und dessen Unterordner herunterladen, geht das recht gut mit wget:&amp;nbsp;&lt;/p&gt;
  &lt;p&gt;&lt;b&gt;wget -r &amp;quot;ftp://user:passwort@domain/verzeichnis&amp;quot;

&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/varnish_cache_objekt_vor_ablauf</guid>
    <title>Varnish Cache Objekt vor Ablauf der TTL erneuern</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/varnish_cache_objekt_vor_ablauf</link>
    <pubDate>Wed, 20 Feb 2013 21:22:22 +0000</pubDate>
    <category>Tipps</category>
    <category>cache</category>
    <category>proxy</category>
    <category>refresh</category>
    <category>varnish</category>
<description>&lt;p&gt;Der Varnish ist an sich ein toller Reverse-Proxy, hat nur vereinzelt ein paar Dinge, die manchmal etwas Kopfzerbrechen bereiten. Eine Sache davon ist, das Erneuern von gecachten Objekten. Ist die TTL eines Objekts abgelaufen und jemand frägt dieses Objekt ab, muss er warten, bis der Varnish es vom Backend neu gezogen hat. Fragen andere gleichzeitig dieses Objekt ab, bekommen sie es weiterhin aus dem Cache, soweit man eine Grace-Period definiert hat. Aber dieser eine o.g. User muss warten. Das kann man umgehen, in dem man sich für die wichtigsten Seiten einen Job schreibt, der das Objekt bereits vor Ablauf der TTL erneuert. In der Varnish-Konfiguration könnte das dann so aussehen:&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;acl refresh {&lt;br&gt;&amp;nbsp; &amp;quot;localhost&amp;quot;;&lt;br&gt;}&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;sub vcl_recv {&lt;br&gt;&amp;nbsp; if (req.request == &amp;quot;REFRESH&amp;quot;) {&lt;br&gt;&amp;nbsp; &amp;nbsp; if (client.ip !~ refresh) {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; error 405 &amp;quot;Not allowed&amp;quot;;&lt;br&gt;&amp;nbsp; &amp;nbsp; }&lt;br&gt;&amp;nbsp; &amp;nbsp; set req.hash_always_miss = true;&lt;br&gt;&amp;nbsp; &amp;nbsp; set req.request = &amp;quot;GET&amp;quot;;&lt;br&gt;&amp;nbsp; }&lt;br&gt;}&amp;nbsp;&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;req.hash_always_miss&lt;/b&gt;&amp;nbsp;funktioniert seit Varnish V 2.1.4. Während die User ja die Seiten mit der HTTP GET-Methode weiterhin aus dem Varnish-Cache bekommen, kommt unser Skript mit der REFRESH-Methode rein, setzt &amp;quot;req.hash_always_miss = true&amp;quot; und umgeht somit den Cache und zieht das entsprechende Objekt neu vom Backend. Anschließend wird es im Cache ersetzt und wir haben wieder ein &amp;quot;frisches&amp;quot; Objekt. Sehr praktisch :-)&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/slide_lasttest_mit_jmeter</guid>
    <title>Slide: Lasttest mit JMeter</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/slide_lasttest_mit_jmeter</link>
    <pubDate>Sat, 26 Jan 2013 20:27:08 +0000</pubDate>
    <category>Tipps</category>
    <category>jmeter</category>
    <category>loadtest</category>
    <category>stresstest</category>
<description>Ein gute Einführung von Larry Davidson: 
  
  &lt;p style=&quot;margin:12px auto 6px;font-family:Helvetica, Arial, sans-serif;font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:normal;display:block;&quot;&gt; &lt;a title=&quot;View Load Testing With JMeter on Scribd&quot; href=&quot;http://www.scribd.com/doc/7499267/Load-Testing-With-JMeter&quot; style=&quot;text-decoration:underline;&quot;&gt;Load Testing With JMeter&lt;/a&gt; by   &lt;a title=&quot;View LAwebdevmeetup&amp;#39;s profile on Scribd&quot; href=&quot;http://www.scribd.com/LAwebdevmeetup&quot; style=&quot;text-decoration:underline;&quot;&gt;LAwebdevmeetup&lt;/a&gt; &lt;/p&gt; 
  </description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/sch%C3%B6ne_ausgabe_der_git_history</guid>
    <title>Schöne Ausgabe der Git History auf der Kommandozeile</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/sch%C3%B6ne_ausgabe_der_git_history</link>
    <pubDate>Thu, 24 Jan 2013 19:49:31 +0000</pubDate>
    <category>Tipps</category>
    <category>git</category>
    <category>history</category>
<description>&lt;p&gt;Wenn man sich folgende Aliase in die .git/config einträgt, kann man sich die Git-History auf der Kommandozeile recht schön anzeigen lassen:&lt;/p&gt; 
  &lt;pre&gt;[alias]
lg1 = log --graph --all --format=format:&amp;#39;%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)&amp;#39; --abbrev-commit --date=relative
lg2 = log --graph --all --format=format:&amp;#39;%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n&amp;#39;&amp;#39;          %C(white)%s%C(reset) %C(bold white)— %an%C(reset)&amp;#39; --abbrev-commit
lg = !&amp;quot;git lg1&amp;quot;
&lt;/pre&gt; 
  &lt;p&gt;git lg&lt;br&gt;git lg2&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/mysql_und_devops</guid>
    <title>MySQL und DevOps</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/mysql_und_devops</link>
    <pubDate>Thu, 20 Dec 2012 20:12:11 +0000</pubDate>
    <category>Tipps</category>
    <category>devops</category>
    <category>manage</category>
    <category>mysql</category>
<description>&lt;div&gt;&lt;a href=&quot;http://www.percona.com/files/presentations/WEBINAR-manage-msyql-like-a-devops-sysadmin.pdf&quot; target=&quot;_blank&quot;&gt;Slides&lt;/a&gt; und &lt;a href=&quot;http://form.percona.com/WebinarDeployMySQLLikeaDevOpsSysAdmin_PreventingDowntimeWebinarRecording.html&quot; target=&quot;_blank&quot;&gt;Webinar&lt;/a&gt; zum Thema &amp;quot;Manage MySQL like a Devops Sysadmin&amp;quot;.&lt;br&gt;&lt;br&gt;&lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/dokumentenscanner_unter_linux_fujitsu_scansnap</guid>
    <title>Dokumentenscanner unter Linux - Fujitsu ScanSnap S1500</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/dokumentenscanner_unter_linux_fujitsu_scansnap</link>
    <pubDate>Wed, 31 Oct 2012 21:06:23 +0000</pubDate>
    <category>Tipps</category>
    <category>linux</category>
    <category>scanner</category>
<description>Im neuen Linux Magazin 12/12 beschreibt Perlmeister Schilli, wie er seine Bücher mit Hilfe von Perl und dem Dokumentenscanner&amp;nbsp;Fujitsu ScanSnap S1500 einliest. Der scheint unter Linux gut zu funktonieren und wird von SANE unterstützt.&amp;nbsp;&lt;a href=&quot;http://www.robinclarke.net/archives/the-paperless-office-with-linux&quot; target=&quot;_blank&quot;&gt;Robin Clarke&lt;/a&gt; hat hier für ein Script geschrieben, das die die Scan&amp;#39;s automatisch einliest und als PDF speichert, sobald man auf den GO Knopf des Scanners drückt.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/einfaches_solr_start_stop_skript</guid>
    <title>Einfaches Solr Start/Stop-Skript</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/einfaches_solr_start_stop_skript</link>
    <pubDate>Wed, 31 Oct 2012 21:06:11 +0000</pubDate>
    <category>Tipps</category>
    <category>script</category>
    <category>solr</category>
<description>&lt;p&gt;Hier ein kleines Start/Stop-Skript für Solr, wenn man den integrierten Jetty verwendet. Unter Ubuntu braucht man das &amp;quot;daemon&amp;quot; Paket, damit das Ganze funkt. Das Verzeichnis &amp;quot;/opt/solr&amp;quot; sollte dann dem User/Gruppe gehören, den man unter &amp;quot;--user&amp;quot; angibt. Ebenso sollte natürlich das Log-Verzeichnis existieren und dem User gehören, unter dem Solr dann läuft.&lt;/p&gt; 
  &lt;div&gt; 
    &lt;p&gt;&lt;br&gt;&lt;b&gt;#!/bin/sh&lt;/b&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;start () {&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; echo -n &amp;quot;Starting solr...&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; # start daemon&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; daemon --chdir=&amp;#39;/opt/solr/example&amp;#39; --pidfiles=&amp;#39;/opt/solr&amp;#39; --user=user:group --command &amp;quot;java -jar start.jar&amp;quot; --respawn --output=/var/log/solr/solr.log --name=solr --verbose&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; RETVAL=$?&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; if [ $RETVAL = 0 ]&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; then&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;done.&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; else&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;failed. See error code for more information.&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; fi&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; return $RETVAL&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;stop () {&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; # stop daemon&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; echo -n &amp;quot;Stopping solr...&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; daemon --stop --pidfiles=&amp;#39;/opt/solr&amp;#39; --name=solr --verbose&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; RETVAL=$?&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; if [ $RETVAL = 0 ]&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; then&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;done.&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; else&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;failed. See error code for more information.&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; fi&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; return $RETVAL&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;restart () {&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; daemon --restart --pidfiles=&amp;#39;/data/solr&amp;#39; --name=solr --verbose&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;status () {&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; # report on the status of the daemon&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; daemon --running --pidfiles=&amp;#39;/opt/solr&amp;#39; --verbose --name=solr&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; return $?&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;case &amp;quot;$1&amp;quot; in&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; start)&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; start&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; ;;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; status)&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; ;;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; stop)&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stop&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; ;;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; restart)&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; restart&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; ;;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; *)&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo $&amp;quot;Usage: solr {start|status|stop|restart}&amp;quot;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exit 3&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; ;;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;esac&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;b&gt;exit $RETVAL&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt; 
  &lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/langsame_mysql_queries_ausfindig_machen</guid>
    <title>Langsame MySQL Queries ausfindig machen</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/langsame_mysql_queries_ausfindig_machen</link>
    <pubDate>Mon, 22 Oct 2012 21:15:42 +0000</pubDate>
    <category>Tipps</category>
    <category>databases</category>
    <category>mysql</category>
    <category>performance</category>
<description>&lt;p&gt;Anstatt eines der MySQL Logs (slowquery.log im Speziellen) zu verwenden, um die langsamen Queries heraus zufinden, kann man das Ganze weit weniger invasiv (in Form von CPU und I/O) und genauer gestalten. Man benötigt dafür &lt;a href=&quot;http://www.tcpdump.org/&quot; target=&quot;_blank&quot;&gt;tcpdump&lt;/a&gt; und das &lt;a href=&quot;http://www.percona.com/doc/percona-toolkit/2.1/installation.html&quot; target=&quot;_blank&quot;&gt;Percona Toolkit&lt;/a&gt;.&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;Als Erstes schneiden wir mit tcpdump mal den Netzverkehr mit, der auf dem Standard MySQL Port 3306 läuft (mal angenommen tcpdump läuft auf dem Rechner, auf dem die MySQL auch ist):&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;tcpdump -s 65535 -x -nn -q -tttt -i any -c 9999999 port 3306 | gzip -c &amp;gt; /tmp/tcpdump.txt.gz&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Das kann man dann solange laufen lassen, wie man will. I.d.R. dürften aber 10 bis max. 30 Min. vollkommen ausreichen. Hängt natürlich auch etwas davon ab, wieviel auf der DB so an Queries/Sek. rein gehen.&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;Dann können wir das Ganze auswerten:&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;gunzip -c /tmp/tcpdump.txt.gz | /pfad/zu/pt-query-digest --type tcpdump &amp;gt; /tmp/digest.txt&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Zu pt-query-digest gibt es unzählige Optionen. Da muss man mal die Doku durchblättern. pg-query-digest kann nebei auch noch PostgreSQL und memcached Queries auswerten. Sehr praktische Sache... :-)&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;Alternativ finde ich das kommerzielle GUI-Tool &lt;a href=&quot;http://www.jetprofiler.com/&quot; target=&quot;_blank&quot;&gt;Jetprofiler&lt;/a&gt; recht schön. Nicht ganz günstig, aber die Daten werden schön aufbereitet (nicht nur Queries, sondern noch viel mehr) und man hat alles im Überblick.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/mysql_index_design_und_tipps</guid>
    <title>MySQL Index Design und Tipps / MySQL Upgrading</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/mysql_index_design_und_tipps</link>
    <pubDate>Wed, 17 Oct 2012 22:48:36 +0000</pubDate>
    <category>Tipps</category>
    <category>database</category>
    <category>mysql</category>
    <category>slides</category>
    <category>upgrade</category>
    <category>webinar</category>
<description>&lt;p&gt;Auf der Percona Seite gibt es zwei sehr interesseante Slides / Webinars zum Thema MySQL (englisch):&lt;/p&gt; 
  &lt;p&gt;&lt;a href=&quot;http://www.percona.com/webinars/tools-and-techniques-index-design&quot; target=&quot;_blank&quot;&gt;Index-Design: Tools und Techniken&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://www.percona.com/webinars/2012-08-15-mysql-indexing-best-practices&quot; target=&quot;_blank&quot;&gt;MySQL Indexing: Best Practices&lt;/a&gt;&lt;/p&gt; 
  &lt;p&gt;Sehr interessant und einfach erklärt, wie man mit Indizes vernünftig in MySQL umgeht und verwaltet. Es werden z.B. div. Tools vorgestellt, mit denen man relativ einfach prüfen kann, ob ein Index überhaupt notwendig ist oder wie man raus findet, auf welche Spalten ein Index sinnvoll ist. Zu viele Indizes sind ja bekanntlich auch nix... ;-)&lt;/p&gt;
  &lt;p&gt;Dann noch ein weiteres Webinar mit Slides zum Thema &lt;a href=&quot;http://www.percona.tv/percona-webinars/upgrading-mysql-best-practices&quot; target=&quot;_blank&quot;&gt;MySQL Updates&lt;/a&gt; und welche Möglichkeiten es gibt, eine MySQL möglichst schnell und problemlos auf eine neue Minor- oder Major-Release zu heben.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/teil_eines_videos_verlustfrei_kopieren</guid>
    <title>Teil eines Videos verlustfrei kopieren bzw. herrausschneiden mit Linux und ffmpeg</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/teil_eines_videos_verlustfrei_kopieren</link>
    <pubDate>Wed, 17 Oct 2012 22:31:39 +0000</pubDate>
    <category>Tipps</category>
    <category>ffmpeg</category>
    <category>linux</category>
    <category>video</category>
<description>ffmpeg -ss &amp;lt;start zeit in hh:mm:ss&amp;gt; -t &amp;lt;dauer in hh:mm:ss&amp;gt; -i originaldatei.mpeg -acodec copy -vcodec copy out.mpeg&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/apache_verzeichnis_freigeben_au%C3%9Fer_einem</guid>
    <title>Apache Verzeichnis freigeben - außer einem...</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/apache_verzeichnis_freigeben_au%C3%9Fer_einem</link>
    <pubDate>Wed, 17 Oct 2012 20:45:44 +0000</pubDate>
    <category>Tipps</category>
    <category>apache</category>
    <category>configuration</category>
    <category>httpd</category>
<description>&lt;p&gt;Manche Dinge kosten einen wirklich die letzten Haare... ;-) Man hat ein DocRoot-Verzeichnis &amp;quot;/&amp;quot;, welches man absperren will, aber einen Ordner &amp;quot;/public&amp;quot; will man für die ganze Welt erreichbar haben. Das kann man sehr schön wie folgt lösen:&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;AuthType Basic&lt;br&gt;AuthName &amp;quot;Restricted Area&amp;quot;&lt;br&gt;AuthUserFile /home/path/.htpasswd&lt;br&gt;AuthGroupFile /dev/null&lt;br&gt;Require valid-user&lt;br&gt;SetEnvIf Request_URI &amp;quot;(path/to/directory/)$&amp;quot; allow&lt;br&gt;SetEnvIf Request_URI &amp;quot;(path/to/file\.php)$&amp;quot; allow&lt;br&gt;Order allow,deny&lt;br&gt;Allow from env=allow&lt;br&gt;Satisfy any&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Also ganz normal die üblichen Auth*-Direktiven rein und Require valid-user, dann setzt man mit SetEnvIf für jeden Pfad bzw. Datei eine allow-Variable und bei &amp;quot;Allow from env=allow&amp;quot; sagen wir dem Apache, das der Zugriff auf Resourcen gestattet ist, wenn sie mit der allow-Variable ausgestattet ist. Ansonsten kommt die Passwortabfrage. Praktische Sache :-)&lt;/p&gt; 
  &lt;p&gt;Im Orginal kann man das hier nachlesen (mit noch etwas mehr Information):&amp;nbsp;Stupid htaccess Trick: &lt;a href=&quot;http://perishablepress.com/enable-file-or-directory-access-to-your-htaccess-password-protected-site/&quot; target=&quot;_blank&quot;&gt;Enable File or Directory Access to Your Password-Protected Site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/pvr_support_jetzt_in_xbmc</guid>
    <title>PVR Support jetzt in XBMC integriert</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/pvr_support_jetzt_in_xbmc</link>
    <pubDate>Tue, 18 Sep 2012 22:38:52 +0000</pubDate>
    <category>Tipps</category>
    <category>pvr</category>
    <category>vdr</category>
    <category>video</category>
    <category>xbmc</category>
<description>&lt;p&gt;Wer hätte das gedacht, das ich das noch erlebe :-) Endlich ist der PVR Support fest im XBMC integriert. Am 5.9.2012 hat Lars Opdenkamp den entsprechenden Commit durchgeführt:&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;https://github.com/xbmc/xbmc/commit/4e9cb43928abbddd5d683cb5d9d66c72b3bbf88e&quot;&gt;&amp;nbsp;[pvr] added PVR support to XBMC (taken from https://github.com/opdenkamp/xbmc/commit/c576c080532a0e4c4ffc7babd57782f80a6951ba) &lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Ich schätze, Lars hat selbst nicht mehr daran geglaubt ;-) Damit dürfte wohl der nächste XBMC Release Frodo endlich auch den PVR Support haben. Um z.B. den VDR einzubinden, braucht man aktuell dann nur noch das &lt;a href=&quot;https://github.com/pipelka/xbmc-addon-xvdr&quot; target=&quot;_blank&quot;&gt;xbmc-addon-xvdr&lt;/a&gt; von Alexander Pipelka.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/advanced_introduction_to_javascript</guid>
    <title>Advanced Introduction to JavaScript Video</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/advanced_introduction_to_javascript</link>
    <pubDate>Mon, 10 Sep 2012 21:13:46 +0000</pubDate>
    <category>Tipps</category>
    <category>javascript</category>
    <category>programming</category>
  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/thunderbird_goes_twitter</guid>
    <title>Thunderbird goes Twitter</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/thunderbird_goes_twitter</link>
    <pubDate>Sun, 9 Sep 2012 21:00:17 +0000</pubDate>
    <category>Tipps</category>
    <category>blog</category>
    <category>mail</category>
    <category>thunderbird</category>
    <category>twitter</category>
<description>Ich wusste gar nicht, das Thunderbird mit Version 15 jetzt auch Twitter kann :-) In meinem englischsprachingen Thunderbird findet man unter Tools/Chat-Status jetzt die Möglichkeit bei Twitter anzumelden. Recht praktisch...&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/java_sdk_mit_wget_herunterladen</guid>
    <title>Java SDK mit wget herunterladen</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/java_sdk_mit_wget_herunterladen</link>
    <pubDate>Thu, 6 Sep 2012 22:38:58 +0000</pubDate>
    <category>Tipps</category>
    <category>download</category>
    <category>java</category>
    <category>wget</category>
<description>&lt;p&gt;&lt;b&gt;Update 20140603:&lt;/b&gt; Wenn man den Download-Link für das Java SDK einfach so an wget übergibt, dann klappt das nicht mit dem Download. Aber wie folgt funktionierts:&lt;/p&gt;
  &lt;p&gt;Java 7:&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;wget --no-check-certificate --no-cookies --header &amp;quot;Cookie: oraclelicense=accept-securebackup-cookie&amp;quot; &amp;nbsp;http://download.oracle.com/otn-pub/java/jdk/7u60-b19/jdk-7u60-linux-x64.tar.gz&amp;quot;&lt;/b&gt;&lt;/p&gt;
  &lt;p&gt;Java 8:&lt;/p&gt;
  &lt;p&gt;&lt;b&gt;wget --no-check-certificate -c --header &amp;quot;Cookie: oraclelicense=accept-securebackup-cookie&amp;quot; http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz&lt;/b&gt; &lt;/p&gt; 
  &lt;p&gt;Die Java-Version muss man natürlich entsprechend ändern, wenn es neuere Releases gibt.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/stop_writing_puppet_modules_that</guid>
    <title>Stop Writing Puppet Modules That Suck</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/stop_writing_puppet_modules_that</link>
    <pubDate>Wed, 5 Sep 2012 21:41:56 +0000</pubDate>
    <category>Tipps</category>
    <category>puppet</category>
<description>Ein netter &lt;a href=&quot;http://bombasticmonkey.com/2011/12/27/stop-writing-puppet-modules-that-suck/&quot; target=&quot;_blank&quot;&gt;Artikel&lt;/a&gt; von Github Sysadmin Tim Sharpe wie man vernünftige Puppet Module schreibt. Es ist i.d.T. so, daß die Module auf github.com oder wo auch immer Module angeboten werden, zum großen Teil wirklich übel sind und überhaupt nicht verwendet werden können, ohne sie massiv anzupassen. Er gibt hier gute Tipps, wie&amp;#39;s besser geht.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/mysqldump_error_2013_lost_connection</guid>
    <title>mysqldump: Error 2013: Lost connection to MySQL server...</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/mysqldump_error_2013_lost_connection</link>
    <pubDate>Tue, 4 Sep 2012 16:26:53 +0000</pubDate>
    <category>Tipps</category>
    <category>databases</category>
    <category>mysql</category>
<description>&lt;p&gt;Falls einem mal der Fehler 2013 bei mysqldump&lt;/p&gt;
  &lt;p&gt;&lt;b&gt;mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `...` at row: ...&lt;/b&gt; &lt;/p&gt;
  &lt;p&gt;über den Weg läuft, dem dürfte das Erhöhen zweier &lt;b&gt;net_*_timeout&lt;/b&gt; Parameter weiterhelfen. Zum Einen in der &lt;b&gt;my.conf&lt;/b&gt;:&lt;/p&gt;
  &lt;p&gt;
    &lt;p&gt;&lt;b&gt;net_read_timeout = 120&lt;br&gt;net_write_timeout = 900&lt;/b&gt;&lt;/p&gt;
    &lt;p&gt;Und wenn man das gleich aktiv haben will noch ohne Neustart:&lt;/p&gt;
    &lt;p&gt;
      &lt;p&gt;&lt;b&gt;set global net_read_timeout = 120;&lt;br&gt;set global net_write_timeout = 900;&lt;/b&gt;&lt;/p&gt;
      &lt;p&gt;Die Werte sind in Sekunden. Ich hatte das Problem, beim Sichern auf einen langsamen NFS-Mount. Die Meldung selber deutet eigentlich auf ein ganz anderes Problem hin und ist ziemlich irreführend. Nun ja, wenn da auf jeden Fall mehrere Backups liefen, wurde das teilweise arg langsam. Die Parameter schufen Abhilfe.&lt;br&gt;&lt;br&gt;&lt;/p&gt;
    &lt;/p&gt;
  &lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/redis_php_session_handler</guid>
    <title>Redis PHP Session Handler</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/redis_php_session_handler</link>
    <pubDate>Tue, 7 Aug 2012 20:46:32 +0000</pubDate>
    <category>Tipps</category>
    <category>nosql</category>
    <category>php</category>
    <category>redis</category>
    <category>session</category>
<description>Anstatt mit Sticky-Sessions am Loadbalancer zu arbeiten oder PHP-Session-Informationen in einer MySQL zu speichern, bietet sich die sehr schnelle &lt;a href=&quot;https://github.com/nicolasff/phpredis&quot; target=&quot;_blank&quot;&gt;Redis-Extension&lt;/a&gt; an&lt;br&gt;&lt;br&gt;&lt;b&gt;extension=redis.so&lt;br&gt;session.save_handler = redis&lt;br&gt;session.save_path = &amp;quot;tcp://localhost:6379&lt;br&gt;&lt;/b&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/linux_und_macbook_pro_retina</guid>
    <title>Linux und MacBook Pro Retina Display (10,1) </title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/linux_und_macbook_pro_retina</link>
    <pubDate>Fri, 3 Aug 2012 23:11:32 +0000</pubDate>
    <category>Tipps</category>
    <category>apple</category>
    <category>installation</category>
    <category>linux</category>
    <category>mac</category>
    <category>retina</category>
<description>&lt;p&gt;Nachdem ich demnächst auf mein MacBook ein vernünftiges Betriebssystem spendieren (&lt;a href=&quot;http://www.funtoo.org/&quot; target=&quot;_blank&quot;&gt;Funtoo&lt;/a&gt;/&lt;a href=&quot;http://www.gentoo.org/&quot; target=&quot;_blank&quot;&gt;Gentoo&lt;/a&gt;) möchte, hier schon mal ein paar Links (mehr oder weniger interessant) für Leute, die das auch vorhaben. Die Links sind erstmal eine Sammlung an Infos, die so existieren. Das MacBook mit Retina ist ja noch relativ neu und das macht die Sache mit Linux oft nicht einfacher. Das ArchLinux Wiki scheint hier mal wieder am Weitesten zu sein, aber es gibt auch ein paar andere interessante Infos. Sobald ich Linux drauf habe bzw. hoffe drauf zu bekommen, schreibe ich wieder was...&lt;/p&gt; 
  &lt;p&gt;Arch Linux Forum: &lt;a href=&quot;https://bbs.archlinux.org/viewtopic.php?id=144255&quot; target=&quot;_blank&quot;&gt;MacBook Pro 2012 Retina&lt;/a&gt;&lt;br&gt;Arch Wiki:&amp;nbsp;&lt;a href=&quot;https://wiki.archlinux.org/index.php/MacBookPro_Retina&quot; target=&quot;_blank&quot;&gt;MacBookPro Retina&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://forums.opensuse.org/english/get-technical-help-here/laptop/476258-howto-2012-retina-display-macbook-pro-opensuse-linux.html&quot; target=&quot;_blank&quot;&gt;2012 Retina Display Macbook Pro and openSUSE Linux&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://help.ubuntu.com/community/MactelSupportTeam/AppleIntelInstallation&quot; target=&quot;_blank&quot;&gt;Ubuntu&amp;nbsp;MactelSupportTeam/AppleIntelInstallation&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://help.ubuntu.com/community/How%20to%20install%20Ubuntu%20on%20MacBook%20using%20USB%20Stick&quot; target=&quot;_blank&quot;&gt;How to install Ubuntu on MacBook using USB Stick&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://rhnh.net/2012/05/27/ubuntu-12-04-dual-boot-on-macbook-pro&quot; target=&quot;_blank&quot;&gt;Ubuntu 12.04 dual boot on Macbook Pro&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://wiki.ubuntuusers.de/Apple_Computer&quot; target=&quot;_blank&quot;&gt;wiki-AT-ubunutuusers-DOT-de&lt;/a&gt;&lt;br&gt;Ubuntu Forums: &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=2006475&quot; target=&quot;_blank&quot;&gt;ubuntu on new retina macbook : any experience&lt;/a&gt;&lt;br&gt;cberner.com:&amp;nbsp;&lt;a href=&quot;http://cberner.com/2012/07/10/installing-ubuntu-12-04-on-macbook-pro-retina/&quot; target=&quot;_blank&quot;&gt;Installing Ubuntu 12.04 on Macbook Pro Retina (10,1)&lt;/a&gt; &amp;lt;- Relativ gute Anleitung&lt;br&gt;Und als Nicht-Mac-Jünger brauch ich das hier: &lt;a href=&quot;http://support.apple.com/kb/HT1533&quot; target=&quot;_blank&quot;&gt;Startup key combinations for Intel-based Macs&lt;/a&gt;&lt;br&gt;Ubuntu: &lt;a href=&quot;http://www.ubuntu.com/download/help/create-a-usb-stick-on-mac-osx&quot; target=&quot;_blank&quot;&gt;How to create a bootable USB stick on OS X&lt;/a&gt; &lt;/p&gt; 
  &lt;p&gt;Kernel Hacker&amp;nbsp;Greg Kroah-Hartman mischt auch mit auf &lt;a href=&quot;https://plus.google.com/111049168280159033135/posts/KnF2AMDMk2J&quot; target=&quot;_blank&quot;&gt;Google+&lt;/a&gt;:&amp;nbsp;Macbook retina booting with gummiboot to Gentoo. Now I can get more work done on this box as it&amp;#39;s easier to install a new kernel.&lt;br&gt;Dann haben wir noch das Gentoo&amp;nbsp;&lt;a href=&quot;https://github.com/BlueDragonX/fm-overlay/tree/master/sys-kernel/retina-sources&quot; target=&quot;_blank&quot;&gt;BlueDragonX / fm-overlay&lt;/a&gt; mit div. Patches für Kernel 3.5 (BTW: Ubuntu 12.10 Alpha3 hat auch Kernel 3.5. Damit könnte man auch Glück haben. Kernel 3.5 scheint im Allgemeinen nicht verkehrt zu sein).&lt;br&gt;&lt;/p&gt; 
  &lt;p&gt;Und dann noch dieser wunderschöne Post von Greg KH: &amp;quot;I booted it (MacBook) the first time on OS-X, saw that the screen and wireless worked (wanted to verify that), and registered for the warranty, then wiped the disk clean. ...&amp;quot; ;-)&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;Update 20120807&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Wenn man Mac OS drauf lassen will, muss man zuerst mal die Partition verkleinern bzw. besser gesagt spalten, damit wir Linux irgendwo drauf bekommen. Ich hab das im Mac Terminal gemacht mit diskutil (ja ich weiß, geht alles viel schöner mit GUI, aber ich lebe halt auf der Konsole ;-) ). Hier die Orginal-Konfiguration:&lt;/p&gt; 
  &lt;p&gt;mbpro:~ user$ diskutil list&lt;/p&gt; 
  &lt;p&gt;/dev/disk0&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp; &amp;nbsp;#: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TYPE NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SIZE &amp;nbsp; &amp;nbsp; &amp;nbsp;IDENTIFIER&lt;/p&gt; 
  &lt;p&gt;0: &amp;nbsp; &amp;nbsp; &amp;nbsp;GUID_partition_scheme &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*251.0 GB &amp;nbsp; disk0&lt;br&gt;1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EFI &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 209.7 MB &amp;nbsp;disk0s1&lt;br&gt;2: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Apple_HFS Macintosh HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;250.1 GB &amp;nbsp;disk0s2&lt;br&gt;3: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Apple_Boot Recovery HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 650.0 MB &amp;nbsp;disk0s3&lt;/p&gt; 
  &lt;p&gt;Interessant hier ist also die Partition &lt;strong&gt;disk0s2&lt;/strong&gt;. Die hat 250 GB und die wollen wir spalten. Dazu müssen wir aber auch erst wissen, wie viel wir für Mac OS übrig lassen müssen, wir brauchen also die Minimale Größe in GB, also die Anzahl an GByte, die wir nicht nutzen können und das geht dann so:&lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;mbpro:~ user$ diskutil resizevolume disk0s2 limits&lt;/p&gt; 
  &lt;p&gt;For device disk0s2 Macintosh HD:&lt;br&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Current size: &amp;nbsp;250.1 GB (250140434432 Bytes)&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Minimum size: &amp;nbsp;48.8 GB (48755404800 Bytes)&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Maximum size: &amp;nbsp;250.1 GB (250140434432 Bytes)&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;Wir haben hier also ca. 50 GB, die Mac OS benötigt und die wir nicht nutzen können. Ich habe mich entschieden, für Mac OS 100 GB zu verwenden und 150 GB für Linux. Dann spalten wir also mal ;-)&lt;/p&gt; 
  &lt;p&gt;mbpro:~ user$ diskutil resizevolume disk0s2 100GB JHFS+ linux&amp;nbsp;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;150GB&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;Started partitioning on disk0s2 Macintosh HD&lt;br&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Verifying the disk&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking file system&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Performing live verification&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking Journaled HFS Plus volume&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking extents overflow file&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking catalog file&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking multi-linked files&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking catalog hierarchy&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking extended attributes file&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking volume bitmap&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Checking volume information&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;The volume Macintosh HD appears to be OK&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Resizing&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Waiting for the disks to reappear&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Formatting disk0s4 as Mac OS Extended (Journaled) with name linux&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Initialized /dev/rdisk0s4 as a 140 GB HFS Plus volume with a 16384k&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;journal&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Mounting disk&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;Finished partitioning on disk0s2 Macintosh HD&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;/dev/disk0&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp; &amp;nbsp;#: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TYPE NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SIZE &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;IDENTIFIER&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp; &amp;nbsp;0: &amp;nbsp; &amp;nbsp; &amp;nbsp;GUID_partition_scheme &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*251.0 GB &amp;nbsp; disk0&lt;br&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EFI &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 209.7 MB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;disk0s1&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;2: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Apple_HFS Macintosh HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;100.0 GB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;disk0s2&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;3: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Apple_Boot Recovery HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 650.0 MB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;disk0s5&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;4: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Apple_HFS linux &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 150.0 GB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt;disk0s4&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;&quot;&gt; &lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;Wir haben hier jetzt also eine Partition disk0s4 bekommen und da soll dann mal Linux drauf...&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;Nachdem ich ja Funtoo (ein Gentoo Derivat) draufspielen möchte und Funtoo/Gentoo man ja nicht &amp;quot;mal so&amp;quot; installiert, brauchen wir als nächstes erstmal eine Distribution, von der wir booten können. Mein erster Versuch ist die neueste Ubuntu 12.10 Quantal Quetzal&amp;nbsp;(noch in der Entwicklung). Die hat Kernel 3.5 dabei, damit sollte man hoffentlich Glück beim Booten haben. Ziel Kernel für mich ist jetzt aktuell dann 3.6 (&lt;strike&gt;Update: Kernel 3.6-rcX funktioniert nicht zusammen mit dem Binary Nvidia Treiber. Der Treiber kompiliert nicht. Deshalb bleibe ich bei Kernel 3.5&lt;/strike&gt;). Genommen habe ich dieses Image hier von&amp;nbsp;&lt;a href=&quot;http://cdimage.ubuntu.com/daily-live/current/&quot; target=&quot;_blank&quot;&gt;Ubuntu 12.10 (Quantal Quetzal) Daily Build&lt;/a&gt; &lt;a href=&quot;http://cdimage.ubuntu.com/daily-live/current/quantal-desktop-amd64+mac.iso&quot; target=&quot;_blank&quot;&gt;64-bit Mac (AMD64) desktop CD&lt;/a&gt; . Das ISO-File kopieren wir dann erstmal auf einen USB-Stick, der größer/gleich 1 GByte sein sollte. Ich hab das mit Linux und dd probiert, aber das mag das MacBook nicht booten, deshalb so, dann geht&amp;#39;s: USB in Mac rein und dann erscheint der bei mir als /dev/disk1:&lt;/p&gt; 
  &lt;p&gt;mbpro:~ user$ diskutil list&lt;/p&gt; 
  &lt;p&gt;/dev/disk0&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp; &amp;nbsp;#: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TYPE NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SIZE &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;IDENTIFIER&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0: &amp;nbsp; &amp;nbsp; &amp;nbsp;GUID_partition_scheme &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*251.0 GB &amp;nbsp; disk0&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EFI &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 209.7 MB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;disk0s1&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;2: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Apple_HFS Macintosh HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;100.0 GB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;disk0s2&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;3: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Apple_Boot Recovery HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 650.0 MB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;disk0s3&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;4: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Apple_HFS linux &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 150.0 GB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;disk0s4&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;/dev/disk1&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp; &amp;nbsp;#: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TYPE NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SIZE &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;IDENTIFIER&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0: &amp;nbsp; &amp;nbsp; FDisk_partition_scheme &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*1.0 GB &amp;nbsp; &amp;nbsp; disk1&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x17 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 797.2 MB &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;disk1s1&lt;/span&gt;&lt;/p&gt; 
  &lt;div&gt; 
    &lt;p&gt;Dann müssen wir das ISO-Image konvertieren:&lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt;mbpro:~ user$ hdiutil convert -format UDRW -o ubuntu.img&amp;nbsp;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;quantal-desktop-amd64+mac.iso&amp;nbsp;&lt;/span&gt;&lt;/p&gt; 
    &lt;p&gt;Master Boot Record (MBR : 0) lesen …&lt;br&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;Ubuntu 12.10 amd64 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (Apple_ISO : 1) lesen …&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;&amp;nbsp;(Windows_NTFS_Hidden : 2) lesen …&lt;/span&gt;&lt;/p&gt; 
    &lt;p&gt;...........................................................&lt;/p&gt; 
    &lt;p&gt;Dauer: &amp;nbsp;5.075s&lt;br&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;Geschwindigkeit: 149.8M Byte/s&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;Ersparnis: 0.0 %&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;created: /Users/d790026/ubuntu.img.dmg&lt;/span&gt;&lt;/p&gt; 
    &lt;p&gt;Und dann können wir mit dd das Image auf den Stick schreiben und wenn das fertig ist, auswerfen:&lt;/p&gt; 
    &lt;p&gt;mbpro:~ user$ sudo dd if=ubuntu.img.dmg of=/dev/disk1 bs=1m&lt;br&gt;&lt;span style=&quot;font-family:&amp;#39;courier new&amp;#39;, courier, monospace;font-size:x-small;&quot;&gt;Password:&lt;/span&gt;&lt;/p&gt; 
    &lt;p&gt;diskutil eject /dev/disk2&lt;/p&gt; 
    &lt;p&gt;Dann spielt man sich erstmal&amp;nbsp;&lt;a href=&quot;http://refit.sourceforge.net/doc/c1s1_install.html&quot; target=&quot;_blank&quot;&gt;rEFIt&lt;/a&gt; drauf (Download &lt;a href=&quot;http://prdownloads.sourceforge.net/refit/rEFIt-0.14.dmg?download&quot; target=&quot;_blank&quot;&gt;rEFIt-0.14.dmg&lt;/a&gt;). Einfach runterladen und Paket unter Mac OS installieren (einfach den Anweisungen folgen). Das macht es die Sache einfacher, später Linux zu starten. Wenn man das MacBook bootet, dann bekommt man gleich zu Beginn ein Menü, mit dem man Linux (jetzt erstmal vom USB-Stick, später taucht auch die Linux Installation auf Platte im Menü auf) starten kann.&amp;nbsp; &lt;/p&gt; 
    &lt;p&gt;Dann starten wir mal das Ubuntu von Stick. Sobald der Bootscreen&lt;/p&gt; 
    &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/bbe30554-a5e8-4ded-ae18-c57ee0ba4c15&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/bbe30554-a5e8-4ded-ae18-c57ee0ba4c15?t=true&quot; alt=&quot;boot_screen_ubuntu.png&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt; 
    &lt;p&gt;erscheint, irgend eine Taste drücken, damit man drei Kernel-Optionen setzen kann:&amp;nbsp;&lt;strong&gt;noapic nomodeset&lt;/strong&gt;. Hierzu drückt man, nachdem man die Sprache ausgewählt hat, auf F6, klickt das Auswahlmenü weg mit den Kerneloptionen und gibt sie unten in der &lt;strong&gt;Boot Options&lt;/strong&gt; Zeile am Besten vor den beiden &amp;quot;--&amp;quot; am Schluss ein. Dann &amp;quot;Try Ubuntu without installing&amp;quot; auswählen, Return drücken und los geht&amp;#39;s. Je nachdem, wie schnell der Stick ist, dauerts mal länger mal weniger lang, bis dann die GUI kommt. Bei mir blieb er vorher ca. 30 Sek. auf dem Prompt stehen, bis die GUI endlich kam.&lt;br&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Hier dann mal der erste Screenshot (1024x768 Auflösung) nach dem ersten Booten von Ubuntu vom USB Stick:&lt;/p&gt; 
  &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/8e6c2790-75a9-4583-93b0-0918790cf32d&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/8e6c2790-75a9-4583-93b0-0918790cf32d?t=true&quot; alt=&quot;mac_retina_ubuntu_001.jpg&quot;&gt;&lt;/a&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Dann kann man jetzt Ubuntu installieren wenn man will. Einfach &amp;quot;Install Ubuntu 12.10&amp;quot; doppelklicken und im Laufe der Installation erkennt Ubuntu selber, das da Mac OS schon drauf ist und installiert selbstständig auf der freien Partition, die wir oben angelegt haben, Ubuntu drauf. Wenn man dann rebootet und von Disk das Ubuntu startet, darf man nicht vergessen, wieder die o.g. Kerneloptionen einzubauen, sonst kommt man nicht weit (&lt;strong&gt;Update 20121017&lt;/strong&gt;: Kernel 3.6 final bootet bei mir inszwischen ganz ohne Kerneloptionen - soweit man nicht den Nvidia Orginal-Treiber installieren möchte. Ansonsten sind folgende Kernel-Optionen sinnvoll: i915.modeset=1 rdblacklist=nouveau nouveau.modeset=0). Irgendwann ist man dann wieder im Ubuntu Desktop mit er 1024x768 Auflösung. Also die Intel-Grafik konnte ich überhaupt nicht aktivieren. Da hilft auch kein Projekt &lt;a href=&quot;https://wiki.ubuntu.com/Bumblebee&quot; target=&quot;_blank&quot;&gt;Bumblebee&lt;/a&gt; aktuell.&lt;/p&gt; 
  &lt;p&gt;Ich dann noch kurz mal die Nvidia-Treiber installiert. Wenn man das tut, sollte man vorher am besten ssh installieren und aktivieren, root ein Passwort verpassen und root-Login erlauben. Wenn nämlich der Bildschirm vom MacBook schwarz bleibt, kann man sich von einem anderen Rechner aus einloggen und noch was reparieren. Ansonsten könnte es für immer schwarz bleiben oder man muss halt wieder vom Stick booten. Man bindet am besten dieses PPA ein:&amp;nbsp;&lt;a href=&quot;https://launchpad.net/%7Eubuntu-x-swat/+archive/x-updates/&quot; target=&quot;_blank&quot;&gt;ppa:ubuntu-x-swat/x-updates&lt;/a&gt;&amp;nbsp;. Ich hatte dann einmal die Auflösung 800x600, dann 640x480 und als ich die Treiber dann einmal deinstalliert und wieder installiert hatte, hatte ich dann irgendwann 1600x1200:&lt;/p&gt; 
  &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/de92fb8d-477f-4c9a-9eed-552e22cf06c4&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/de92fb8d-477f-4c9a-9eed-552e22cf06c4?t=true&quot; alt=&quot;mac_retina_ubuntu_nvidia_1600x1200_1.jpg&quot;&gt;&lt;/a&gt; &lt;/p&gt; 
  &lt;p&gt; Aber das war&amp;#39;s dann auch erstmal. Gut, ich hab jetzt nicht weiter experimentiert, weil ich will ja Funtoo drauf. Wichtig für den Nvidia-Treiber ist, das folgende Option in der xorg.conf gesetzt wird:&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;Option         &amp;quot;UseDPLib&amp;quot; &amp;quot;off&amp;quot;&lt;/strong&gt;&lt;/p&gt; 
  &lt;p&gt;Das Touchpad reagiert auch manchmal recht sensibel, d.h. etwas eigensinnig und ich hatte jetzt auch nicht das Gefühl, das mit 3D viel läuft... Naja, das mal für alle Leute, die mit Ubuntu arbeiten wollen. Vielleicht hilft es was. Ich hab dann das MacBook mal voll aufgeladen und dann einfach mal im Batteriebetrieb laufen lassen (Monitor immer an). Der Akku hielt genau 4 Std. Mit dem Bug in Mac OS X Mountain Lion läuft das MacBook unter Mac OS X aktuell nur ca. 30 Min. länger. Bin mal gespannt, ob das mit dem versprochenen Update von Mac OS X besser wird. 7 Std. sollen das ja angeblich sein. Dann wären 4 Std. vs. 7 Std. natürlich schon ein dramatischer Abstand...&lt;/p&gt; 
  &lt;p&gt;Ich habe übrigends diesen USB 2.0 Ethernet Adapter verwendet, da Thunderbolt über Ethernet in dieser Phase vermutlich noch nicht funktionert:&lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;a href=&quot;http://www.amazon.de/gp/product/B003ZSZ9F0/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1638&amp;amp;creative=19454&amp;amp;creativeASIN=B003ZSZ9F0&amp;amp;linkCode=as2&amp;amp;tag=tauceti&quot;&gt;USB 2.0 Netzwerk Adapter auf 10,100,1000 Gigabit LAN Kabel, RJ45 Fast Ethernet&lt;/a&gt;&lt;img height=&quot;2&quot; border=&quot;0&quot; width=&quot;2&quot; class=&quot;izcbyamdgrbxgjwynbgz&quot; src=&quot;http://www.assoc-amazon.de/e/ir?t=tauceti&amp;amp;l=as2&amp;amp;o=3&amp;amp;a=B003ZSZ9F0&quot; style=&quot;display:none;visibility:hidden;border:medium none !important;margin:0px !important;&quot;&gt;&lt;br&gt;&lt;br&gt;Der Adapter arbeitet einwandfrei und wird sofort erkannt. DHCP klappt auch gleich. Nur GBit über USB2.0 darf man jetzt nicht erwarten. Wie viel letztendlich drüber geht, habe ich noch nicht getestet. (&lt;b&gt;Update 20121018:&lt;/b&gt;&amp;nbsp;Mit Kernel 3.6.2 funktioniert der von Apple angebotene Thunderbolt/Ethernet-Adapter, wenn man ihn schon eingesteckt hat, bevor Linux startet. Ob Hotplug funktioniert und der Adapter nach dem Suspend wieder funktioniert, hab ich noch nicht getestet.)&lt;/p&gt; 
  &lt;p&gt;Und jetzt probieren wir es mal mit Funtoo :-) Mal schauen, wie weit wir damit kommen. Bevor ich Ubuntu wieder gelöscht habe, habe ich mir die Kernel-Config unter /boot von Ubuntu geklaut ;-) Das ist ein 3.5er Kernel. Die .config könnt ihr euch hier runterladen:&amp;nbsp;&lt;a href=&quot;http://www.tauceti.net/config-3.5.0-8-generic.gz&quot;&gt;config-3.5.0-8-generic.gz&lt;/a&gt;&amp;nbsp;. Alternativ: Hier die Kernel 3.5 &lt;a href=&quot;http://git.sabayon.org/linux/kernel/sabayon.git/plain/sabayon/config/sabayon-3.5-amd64.config?h=3.5&quot; target=&quot;_blank&quot;&gt;.config&lt;/a&gt; von Sabayon (auch ein Gentoo Derivat). &lt;strong&gt;Update 20121017&lt;/strong&gt;: Ganz unten findet ihr eine Kernel .config für Kernel 3.6.2. Der sollte komplett ohne Patches und Kernel-Parameter laufen (tut er bei mir zumindest).&lt;/p&gt; 
  &lt;p&gt;Nachdem Ubuntu ja die Partitionen eingerichtet hat im vorhergehenden Schritt, übernehme ich das gleich so. In gparted sieht das dann so aus:&lt;/p&gt; 
  &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/7f115c87-0b15-45ba-ac00-e3976752d078&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/7f115c87-0b15-45ba-ac00-e3976752d078?t=true&quot; alt=&quot;mac_partition_ubuntu_final.jpg&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
  &lt;p&gt;Ich werde jetzt mal die&amp;nbsp;&lt;a href=&quot;http://www.funtoo.org/wiki/Funtoo_Linux_Installation&quot; target=&quot;_blank&quot;&gt;Funtoo Linux Installation Anleitung&lt;/a&gt; wie gewohnt abarbeiten und dann sehen wir schon, ob was bootet nachher. Hier jetzt ohne große Erklärung eine Auflistung der ausgeführten Kommandos:&lt;/p&gt; 
  &lt;p&gt;mkfs.ext4 /dev/sda5&lt;br&gt;mkdir /mnt/funtoo&lt;br&gt;mount /dev/sda5 /mnt/funtoo&lt;br&gt;cd /mnt/funtoo&lt;br&gt;mkdir tmp&lt;br&gt;chmod 1777 /mnt/funtoo/tmp&lt;br&gt;date 080922352012&lt;br&gt;wget&amp;nbsp;http://ftp.osuosl.org/pub/funtoo/funtoo-current/x86-64bit/corei7/stage3-latest.tar.xz&lt;br&gt;tar xJpf funtoo.stage3-latest.tar.xz&lt;br&gt;cd /mnt/funtoo&lt;br&gt;mount --bind /proc proc&lt;br&gt;mount --bind /dev dev&lt;br&gt;cp /etc/resolv.conf etc/&lt;br&gt;env -i; HOME=/root; TERM=$TERM; chroot . bash -l&lt;br&gt;export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br&gt;emerge --sync&lt;br&gt;&lt;br&gt;vi /etc/fstab&lt;br&gt;/dev/sda6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; none &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;swap &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 0&lt;br&gt;/dev/sda5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; / &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ext4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;noatime &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 1&lt;/p&gt; 
  &lt;p&gt;rm /etc/localtime&lt;br&gt;ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime&lt;/p&gt; 
  &lt;p&gt;vi /etc/make.conf&lt;br&gt;MAKEOPTS=&amp;quot;-j9&amp;quot;
    &lt;/p&gt; 
  &lt;div&gt; 
    &lt;p&gt;LINGUAS=&amp;quot;en de&amp;quot;&lt;br&gt;&lt;br&gt;rc-update add dhcpcd default&lt;br&gt;&lt;br&gt;emerge -av genkernel gentoo-sources # Kernel 3.6.x verwenden, 3.7-rc1 tut aktuell auch&lt;br&gt;cd /usr/src/linux&lt;br&gt;wget http://www.tauceti.net/kernel-config-x86_64-3.6.2-gentoo.gz&lt;br&gt;gunzip kernel-config-x86_64-3.6.2-gentoo.gz&lt;br&gt;mv&amp;nbsp;kernel-config-x86_64-3.6.2-gentoo&amp;nbsp;.config&lt;br&gt;genkernel --menuconfig --lvm --oldconfig all&lt;br&gt;passwd # root Passwort setzen nicht vergessen!&lt;br&gt;emerge -av boot-update&lt;/p&gt; 
    &lt;p&gt;vi /etc/boot.conf&lt;br&gt;boot {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; generate grub&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default &amp;quot;Funtoo Linux genkernel&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeout 3&amp;nbsp;&lt;br&gt;}
      &lt;/p&gt; 
    &lt;p&gt;&amp;quot;Funtoo Linux&amp;quot; {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kernel bzImage[-v]&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # params += nomodeset&lt;br&gt;}&lt;/p&gt; 
    &lt;p&gt;&amp;quot;Funtoo Linux genkernel&amp;quot; {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kernel kernel[-v]&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; initrd initramfs[-v]&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; params += real_root=auto&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; params += nomodeset&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; params += noapic&lt;/p&gt; 
    &lt;p&gt;}&amp;nbsp;&lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt;Hier fehlt jetzt noch die Sache mit dem Bootloader. Das hat mich etwas genervt, da der installierte Ubuntu Grub nicht mit den Dateien, die grub-install von Funtoo unter /boot/grub/ installiert hatte, zusammenarbeiten wollte (Ubuntu hat grub2 und Funtoo ist noch auf 1.98... Aber mehr dazu weiter unten, deshalb mit der Installation vom Grub vielleicht noch warten bzw. hier lesen, wie&amp;#39;s richtig geht - nach dieser Anleitung habe ich es gemacht: &lt;a href=&quot;http://www.thinkwiki.org/wiki/Installing_Gentoo_on_a_ThinkPad_X220#Grub_with_EFI_support_installation&quot; target=&quot;_blank&quot;&gt;Grub with EFI support installation&lt;/a&gt;). Aber ich hab das erstmal falsch gemacht, weil man, wenn man nicht gleich den Grub mit EFI-Support installiert, im Bios Kompatibiltätsmodus startet und dann is nix mit der Installation vom Nvidia Orginal-Treiber z.B. ;-) Ich war mir aber zu dem Zeitpunkt nicht ganz sicher, ob ich Grub auf sda4 oder sda5 installieren soll. sda4 ging nicht, aber sda5 schien zu tun:&lt;/p&gt; 
    &lt;p&gt;grub-install --no-floppy --force /dev/sda5&lt;br&gt;boot-update&lt;/p&gt; 
    &lt;p&gt;Der grup-install meckert zwar, das das eine schlechte Idee ist, wenn man den MBR auf eine Partition schreibt, aber das tut wohl nichts zur Sache. Eine ganz schlecht Idee dürfte sein, wenn man Grub auf /dev/sda installiert. Ich vermute, dann bootet Mac OS X auf jeden Fall nicht mehr. Den Grub auf /dev/sda5 erkennt rEFIt aber.&lt;br&gt; &lt;/p&gt; 
    &lt;p&gt;cd /&lt;br&gt;umount /mnt/funtoo/boot /mnt/funtoo/dev /mnt/funtoo/proc /mnt/funtoo&lt;br&gt;reboot&lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt;Jetzt aber:&amp;nbsp;Funtoo&amp;nbsp;First Light!!! :-)&lt;/p&gt; 
    &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/f34f0a72-1e53-4896-8d70-214ae113b750&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/f34f0a72-1e53-4896-8d70-214ae113b750?t=true&quot; alt=&quot;macbook_pro_retina_funtoo_first_light_1.jpg&quot;&gt;&lt;/a&gt; &lt;/p&gt; 
    &lt;p&gt;Und damit man mal eine Grundbasis für das grafische Zeuch hat:&lt;/p&gt; 
    &lt;p&gt;emerge -av xorg-x11&amp;nbsp;&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;Update 20120810&lt;/strong&gt; &lt;/p&gt; 
    &lt;p&gt;Ja spinn ich! Welcher Oberwahnsinnige hat denn (U)EFI erfunden? So etwas Krankes hab ich schon lange nicht mehr gesehen... Also Grafikkarte lief deshalb nicht, weil ich im BIOS Kompatibiltätsmodus gebootet hatte und nicht im neuen (U)EFI Modus. Ich hatte zuerst nicht gecheckt, das man für (U)EFI noch eine ganze Reihe weiterer Schritte notwendig sind, damit das funktioniert. Da braucht man Grub 2.0 (bzw. ich habe einen gepatch&amp;#39;ten Grub 1.99 von flow-Overlay: layman -a flow). Die Installation ist &lt;a href=&quot;http://www.thinkwiki.org/wiki/Installing_Gentoo_on_a_ThinkPad_X220#Grub_with_EFI_support_installation&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt; ganz gut beschrieben.&lt;/p&gt; 
    &lt;p&gt;Derweilen habe ich jetzt twm in 2880er Auflösung am Laufen (aber noch ohne Touchpad, nur die Tasten funken) ;-) Hier die Screens:&lt;/p&gt; 
    &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/b82f095f-076a-4172-bd2b-8302751077e3&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/b82f095f-076a-4172-bd2b-8302751077e3?t=true&quot; alt=&quot;mac_retina_kms_1.jpg&quot;&gt;&lt;/a&gt; &lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/faf9353f-707c-494f-88ef-0cb7a40b885f&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/faf9353f-707c-494f-88ef-0cb7a40b885f?t=true&quot; alt=&quot;mac_retina_twm_1.jpg&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
    &lt;p&gt;KDE 4.9 ist am Kompilieren! :-) Mal morgen wieder guggen... Das kann ja heiter werden, wenn sich die UEFI PC&amp;#39;s mal weiter verkaufen. Da muss man ja fast eine fertige Distribution nehmen, das blickt ja kein normaler Mensch mit dem BIOS-Nachfolger (U)EFI. Einfach krank, mehr fällt mir da nicht ein...&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;Update 20120819&lt;/strong&gt; &lt;br&gt;Also KDE 4.9 läuft wunderbar:&lt;/p&gt; 
    &lt;p&gt;&lt;a href=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/52215496-4d0d-4308-81b3-96731a59dc9e&quot;&gt;&lt;img src=&quot;http://www.tauceti.net/roller/cetixx/mediaresource/52215496-4d0d-4308-81b3-96731a59dc9e?t=true&quot; alt=&quot;kde49_macbook_retina.png&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
    &lt;p&gt;Ich hab noch ein paar kleinere Probleme mit dem Touchpad, den Tastenbelegungen und bei manchen Programmen mit den Fonts (sind einfach zu klein ;-) ). Aber an sich läuft KDE gut. :-) Man muss aber in den System Settings ziemlich spielen, das man die Fonts im Allgemeinen annehmbar hinbekommt. U.a. habe ich folgende Datei erstellt:&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;echo &amp;quot;Xft.dpi 75.0&amp;quot; &amp;gt;&amp;gt; $HOME/.Xdefaults&amp;nbsp;&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;Die Intel-Grafik habe ich noch nicht zum Laufen bekommen. Aktuell benutze ich die Nvidia Binary Driver und damit natürlich auch den Nvidia Chip. Das kostet aber unnötig Strom. Mal weiter schauen...&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;Update 20120826:&lt;/strong&gt;&lt;br&gt;Ich verwende als Treiber für das Touchpad nicht xf86-input-synaptics sondern xf86-input-mtrack. Das funktioniert wesentlich besser. Damit das Ganze nicht zu empfindlich reagiert, hier meine Einstellungen für den Treiber in der xorg.conf:&lt;/p&gt; 
    &lt;p&gt; &lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;Section &amp;quot;InputClass&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; MatchIsTouchpad &amp;quot;true&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;/strong&gt;&lt;/p&gt; 
    &lt;p&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; Identifier &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;Touchpads&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Driver &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;mtrack&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;ThumbSize&amp;quot; &amp;quot;35&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;PalmSize&amp;quot; &amp;quot;55&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;ClickTime&amp;quot; &amp;quot;25&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;ScrollDistance&amp;quot; &amp;quot;300&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;TapButton1&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;Sensitivity&amp;quot; &amp;quot;0.85&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;TapButton2&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;TapButton3&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;ScrollDistance&amp;quot; &amp;quot;175&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;FingerHigh&amp;quot; &amp;quot;10&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;FingerLow&amp;quot; &amp;quot;10&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;quot;IgnorePalm&amp;quot; &amp;quot;true&amp;quot;&lt;br&gt;EndSection&lt;/strong&gt;&lt;/p&gt; 
    &lt;div&gt; 
      &lt;p&gt;&lt;strong&gt;Update 20121017:&lt;/strong&gt; Inzwischen hab ich noch eine bessere Konfiguration gefunden (hat nur einen Hacken: Die rechte Maustaste zu emulieren, ist etwas umständlich):&lt;/p&gt; 
      &lt;p&gt; &lt;/p&gt; 
      &lt;p&gt;&lt;strong&gt;Section &amp;quot;InputClass&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; MatchIsTouchpad &amp;quot;on&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Identifier &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;Touchpads&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Driver &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;mtrack&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;Sensitivity&amp;quot; &amp;quot;0.35&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;IgnoreThumb&amp;quot; &amp;quot;true&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;IgnorePalm&amp;quot; &amp;quot;true&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;TapButton1&amp;quot; &amp;quot;0&amp;quot; &amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;TapButton2&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;TapButton3&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;TapButton4&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ClickFinger1&amp;quot; &amp;quot;0&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ClickFinger2&amp;quot; &amp;quot;3&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ClickFinger3&amp;quot; &amp;quot;2&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ButtonMoveEmulate&amp;quot; &amp;quot;false&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ClickTime&amp;quot; &amp;quot;25&amp;quot;&lt;br&gt;&amp;nbsp; &amp;nbsp; Option &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;BottomEdge&amp;quot; &amp;quot;25&amp;quot;&lt;br&gt;EndSection&lt;/strong&gt;&lt;/p&gt; 
      &lt;div&gt;Damit Suspend to RAM (Sleep) mit dem Nvidia Binary Treiber funktioniert, erstellt man noch eine Datei&lt;strong&gt;&amp;nbsp;/etc/pm/config.d/99local&lt;/strong&gt; mit folgenden Inhalt (&lt;b&gt;Update 20121017&lt;/b&gt;: Soll angeblich nicht mehr notwendig sein mit Kernel &amp;gt;=3.6, noch nicht probiert):&lt;/div&gt; 
      &lt;p&gt; &lt;/p&gt; 
      &lt;p&gt; &lt;/p&gt; 
      &lt;p&gt;&lt;strong&gt;DISPLAY_QUIRK_DPMS_ON=&amp;quot;true&amp;quot;&lt;br&gt;QUIRKOPTS=&amp;quot;true&amp;quot;&lt;/strong&gt;&lt;/p&gt; 
      &lt;p&gt;&lt;strong&gt;Update 20121017:&lt;/strong&gt;&amp;nbsp;Also mit Kernel 3.6 bzw. 3.7-rc1 hab ich den Intel- und Nvidia-Chip im Prinzip jetzt soweit, das es funktionieren sollte, ohne den Nvidia-Binary Treiber. Bevor man hier experimentiert, unbedingt den Orginal Nvidia-Treiber deinstallieren! Dann den Kernel ohne weitere Parameter booten (also den Treiber &amp;quot;nouveau&amp;quot; für den Nvidia-Chip nicht mehr blacklisten). Ich musste dann den &amp;quot;nouveau&amp;quot;-Treiber mit modprobe laden, nachdem der Kernel gestartet ist. Das System wechselt dann auf den Nvidia-Chip. Das funktoniert noch und man sieht mit &amp;quot;dmesg&amp;quot;, das er vgaswitcheroo aktiviert hat (also damit kann man theoretisch dann zwischen Intel- und Nvidia Chip hin- und herschalten). Wenn vgaswitcheroo aktiv ist, sieht man das auch daran, das es jetzt folgenden Eintrag gibt:&lt;/p&gt; 
      &lt;p&gt;&lt;strong&gt;cat /sys/kernel/debug/vgaswitcheroo/switch&lt;/strong&gt;&lt;/p&gt; 
      &lt;p&gt;Und nun sollte eigentlich Folgendes möglich sein:&lt;/p&gt; 
      &lt;p&gt;&lt;strong&gt;# Nvidia Chip aktivieren&lt;/strong&gt;&lt;strong&gt;&lt;br&gt;echo DDIS &amp;gt; /sys/kernel/debug/vgaswitcheroo/switch&lt;br&gt;&lt;/strong&gt;&lt;strong&gt;# Intel Chip aktivieren&lt;/strong&gt;&lt;strong&gt;&lt;br&gt;echo DIGD &amp;gt; /sys/kernel/debug/vgaswitcheroo/switch&lt;br&gt;&lt;/strong&gt;&lt;strong&gt;# Den deaktivierten Chip ausschalten (spart Strom)&lt;/strong&gt;&lt;strong&gt;&lt;br&gt;echo OFF &amp;gt; /sys/kernel/debug/vgaswitcheroo/switch&lt;br&gt;#&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;Den deaktivierten Chip einschalten&lt;/strong&gt;&lt;strong&gt;&lt;br&gt;echo ON &amp;gt; /sys/kernel/debug/vgaswitcheroo/switch&lt;/strong&gt;&lt;/p&gt; 
      &lt;p&gt;Leider verabschiedet sich das System dann mit einem schwarzen Bildschirm... Reboot über Ctrl+Alt+Del is aber noch möglich. Deshalb gehe ich da von aus, das nur der Bildschirm schwarz ist, aber das Betriebssystem noch da ist... Das ist wirklich zum Haare raufen. Falls jemand eine Idee hat, warum das so ist, immer her damit :-)&lt;/p&gt; 
      &lt;p&gt;Falls jemand noch eine Kernel .config braucht, hier ist meine für Kernel 3.6.2 (ist so ziemlich alles aktiviert ;-) ):&amp;nbsp;&lt;a href=&quot;http://www.tauceti.net/kernel-config-x86_64-3.6.2-gentoo.gz&quot;&gt;kernel-config-x86_64-3.6.2-gentoo.gz&lt;/a&gt; &lt;/p&gt; 
      &lt;p&gt;Will man den Nvidia Orginal-Treiber benutzen, nimmt man den nouveau-Treiber am Besten auf die Blacklist. Folgende 3.6er Kernel-Parameter benutze ich zusammen mit den Nvidia Original-Treiber:&lt;/p&gt; 
      &lt;p&gt;&lt;b&gt;i915.modeset=1 rdblacklist=nouveau nouveau.modeset=0&lt;/b&gt;&lt;/p&gt; 
      &lt;p&gt;Wie schon erwähnt, wenn man den Nvidia Orignal-Treiber nicht mehr verwenden möchte und mit vgaswitcheroo spielen will, dann nimmt man diese Kernelparameter alle wieder raus.&lt;br&gt;&lt;br&gt;&lt;/p&gt; 
    &lt;/div&gt; 
    &lt;p&gt; &lt;/p&gt; 
  &lt;/div&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/wie_ssd_disks_architekturen_ver%C3%A4ndern</guid>
    <title>Wie SSD Disks Architekturen verändern</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/wie_ssd_disks_architekturen_ver%C3%A4ndern</link>
    <pubDate>Thu, 26 Jul 2012 21:49:07 +0000</pubDate>
    <category>Tipps</category>
    <category>aws</category>
    <category>cloud</category>
    <category>linux</category>
<description>Ein sehr &lt;a href=&quot;http://highscalability.com/blog/2012/7/25/vertical-scaling-ascendant-how-are-ssds-changing-architectur.html&quot; target=&quot;_blank&quot;&gt;interessanter Artikel&lt;/a&gt; auf High Scalability über die neue Amazon EC2 &lt;a href=&quot;http://aws.typepad.com/aws/2012/07/new-high-io-ec2-instance-type-hi14xlarge.html&quot; target=&quot;_blank&quot;&gt;High I/O 2TB SSD&lt;/a&gt; Instanz und wie div. Firmen wie z.B. Netflix damit umgehen bzw. welche neue Möglichkeiten sich auftun. Ist schon interessant zu erfahren, das z.B. plötzlich nicht mehr die Platte der Flaschenhals ist sondern eventl. der Java Garbage Collector...&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/factory_design_pattern_an_effective</guid>
    <title>Factory Design Pattern - An Effective Approach</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/factory_design_pattern_an_effective</link>
    <pubDate>Wed, 25 Jul 2012 21:50:30 +0000</pubDate>
    <category>Tipps</category>
    <category>java</category>
    <category>pattern</category>
    <category>programming</category>
<description>In diesem &lt;a href=&quot;http://java.sys-con.com/node/2313425&quot; target=&quot;_blank&quot;&gt;JAVA Developer Journal Artikel&lt;/a&gt; von Debadatta Mishra wird gezeigt, wie man das Factory Design Pattern früher und heute implementiert und welche Performance Unterschiede die beiden Methoden haben.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/parallelisierter_s3_multipart_upload_mit</guid>
    <title>Parallelisierter S3 Multipart Upload mit Python-boto</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/parallelisierter_s3_multipart_upload_mit</link>
    <pubDate>Wed, 25 Jul 2012 21:50:18 +0000</pubDate>
    <category>Tipps</category>
    <category>aws</category>
    <category>programming</category>
    <category>python</category>
<description>Wie man mit der Python &lt;a href=&quot;https://github.com/boto/boto&quot; target=&quot;_blank&quot;&gt;boto Lib&lt;/a&gt; eine große Datei parallel in Amazon AWS S3 hochlädt, sieht man hier auf &lt;a href=&quot;https://gist.github.com/1556484&quot; target=&quot;_blank&quot;&gt;github&lt;/a&gt;.&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/gentoo_alle_installierten_pakete_auflisten</guid>
    <title>Gentoo: Alle installierten Pakete auflisten</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/gentoo_alle_installierten_pakete_auflisten</link>
    <pubDate>Tue, 24 Jul 2012 21:41:55 +0000</pubDate>
    <category>Tipps</category>
    <category>gentoo</category>
    <category>linux</category>
<description>&lt;b&gt;equery list &amp;#39;*&amp;#39;&lt;/b&gt;&lt;br&gt;&lt;br&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/cloud_backup_in_amazon_s3</guid>
    <title>Cloud-Backup in Amazon S3 mit Duplicity</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/cloud_backup_in_amazon_s3</link>
    <pubDate>Tue, 3 Jul 2012 16:33:00 +0000</pubDate>
    <category>Tipps</category>
    <category>backup</category>
    <category>cloud</category>
    <category>linux</category>
<description>&lt;div&gt;&lt;div&gt;&lt;p&gt;Mit Hilfe von &lt;a href=&quot;http://duplicity.nongnu.org&quot; target=&quot;_blank&quot;&gt;Duplicity&lt;/a&gt; kann man Backups gepackt und verschlüsselt direkt in Amazon AWS S3 speichern und eignet sich deshalb gut als Offsite-Backupprogramm. Und so richtet man das Ganze unter Ubuntu bzw. Gentoo ein:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Installation&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;apt-get install duplicity bzw emerge -av duplicity&lt;br&gt;apt-get install python-boto bzw. emerge -av boto&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;s3cmd installieren und einrichten&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Das ist nur notwendig, wenn man von einem Rechner aus checken will, ob alles im S3 gelandet ist. s3cmd ist ein sehr praktisches Tool, wenn man von der Kommandozeile aus mit S3 interagieren will.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;apt-get install s3cmd bzw. emerge -av s3cmd&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Weiterhin braucht man eine $HOME/.s3cfg (auch nur, wenn man s3cmd nutzen will, wird nicht für Duplicity benötigt, aber praktisch, wenn man sich die S3 Buckets anguggen will...). Hierzu die s3cmd Anleitung lesen. Dort drin sind der &lt;b&gt;access_key&lt;/b&gt; und der &lt;b&gt;secret_key&lt;/b&gt;, denn man für den Zugriff auf S3 benötigt. Ihn findet man auch, wenn man sich in die AWS Console einloggt und dann auf die Credientials geht.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;GnuPG installieren und einrichten&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;apt-get install gpg bzw. emerge -av gnupg&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;GnuPG einrichten&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;gpg --gen-key&lt;/b&gt; (Und dann den Anweisungen folgen)&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;Key anzeigen mit:&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;gpg --list-keys&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;pub &amp;nbsp; 2048R/xxxxxxxx 2012-06-29&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Key fingerprint = E870 xxxx xxxx xxxxx&lt;/div&gt;&lt;div&gt;uid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BACKUP_$HOST&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;p&gt;sub &amp;nbsp; 2048R/xxxxxxxx 2012-06-29&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Die wichtige Info hier ist in der ersten Zeile der achtstellige Key:&amp;nbsp;2048R/&lt;b&gt;xxxxxxxx.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Ein Verzeichnis bzw. besser gesagt ein Bucket im S3 für das Backup einrichten&lt;/b&gt;&amp;nbsp;(wo Duplicity die gepackten und verschlüsselten Files ablegt):&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;s3cmd mb $HOST s3://backup&lt;/b&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Das eigentliche&amp;nbsp;Backup&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;Damit Duplicity auf S3 zugreifen kann, muss es im Env. bzw. Shell-Umgebung folgende Variabeln finden:&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;export PASSPHRASE=&amp;quot;...&amp;quot; # PW für Zugriff auf das GnuPG PW (bei --key-gen angegeben)&lt;br&gt;export AWS_ACCESS_KEY_ID=&amp;quot;...&amp;quot; # Access Key für S3&lt;br&gt;export AWS_SECRET_ACCESS_KEY=&amp;quot;...&amp;quot; # Secretkey für S3&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;Dann das Backup selbst:&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;duplicity -v5 --volsize 500 --asynchronous-upload --s3-use-multiprocessing --s3-use-new-style /VERZEICHNIS_ZU_SICHERN s3+http://backup/$HOST&lt;/b&gt;&lt;br&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;--s3-use-multiprocessing&lt;/b&gt; kam erst mit Duplicity 0.6.17 rein, aber da ist ein Bug drin. Deshalb lieber 0.6.18 verwenden! Das Multiprocessing (oder besser gesagt bei S3 Multipartupload) braucht man, wenn man eine 100 oder 1 GBit-Leitung voll ausnutzen möchte und man ein paar hundert GigaByte oder TerraByte zu Amazon S3 hochladen möchte. Ansonsten bekommt man nicht mehr als 30-40 MBit/s über die Leitung. &lt;b&gt;--asynchronous-upload&lt;/b&gt; sorgt dafür, das der Upload schon stattfindet, während in eine weitere Datei schon wieder geschrieben wird (ist nicht nicht freigegen, aber funktioniert recht gut). Das bedeutet aber auch, das man den doppelten Platz benötigt! Ich habe hier z.B. &lt;b&gt;--volsize 500&lt;/b&gt; angegeben, was in &lt;b&gt;/tmp&lt;/b&gt; (default) ein 500 MB File erzeugt. Ist das voll, dann wird nochmal ein 500 MB File angelegt, während das Erste hochgeladen wird. Ist auch das zweite File voll und das Erste noch nicht fertig hochgeladen, wartet der Backupprozess. &lt;b&gt;--s3-use-new-style&lt;/b&gt; wird benötigt (in neueren Versionen vielleicht nicht mehr), wenn man nach Amazon Eu (Irland) ins S3 hochladen möchte.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Das Ganze sieht dann so aus, wenn man Files/Verzeichnisse ausschließen möchte:&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;duplicity -v5 --volsize 500 --asynchronous-upload --s3-use-multiprocessing --s3-use-new-style --exclude &amp;quot;DIR1&amp;quot; --exclude &amp;quot;DIR2&amp;quot; / s3+http://backup/$HOST&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Aktuelle Files im Backup anzeigen:&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;duplicity list-current-files --s3-use-new-style s3+http://backup/$HOST&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Restore eines Files&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;duplicity --s3-use-new-style --file-to-restore DATEINAME s3+http://backup/$HOST /RESTORE_PFAD_INKL_DATEINAME&lt;/b&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Restore eines Verzeichnisses&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Zielverzeichnis darf noch nicht existieren!&lt;br&gt;&lt;b&gt;duplicity --s3-use-new-style s3+http://backup/$HOST /VERZEICHNIS&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;UND JETZT KOMMT DAS WICHTIGSTE:&lt;/b&gt;&lt;br&gt;&lt;br&gt;Das Verzeichnis &lt;b&gt;$HOME/.gnupg &lt;/b&gt;ist irgendwo an einem sicheren Platz zu sichern! Wenn der Rechner, der mit Duplicity gesichert wurde, diese Dateien nicht mehr findet, weil er in Rauch aufgegangen ist, dann kommt man nicht mehr an seine Daten ran, weil das Backup mit diesem Schlüssel verschlüsselt wurde!&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/kernel_dmesg_timestamp_umwandeln</guid>
    <title>Kernel dmesg Timestamp umwandeln</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/kernel_dmesg_timestamp_umwandeln</link>
    <pubDate>Wed, 23 May 2012 08:26:47 +0000</pubDate>
    <category>Tipps</category>
    <category>kernel</category>
    <category>linux</category>
<description>&lt;p&gt;Wenn man so einen &lt;b&gt;dmesg&lt;/b&gt;&amp;nbsp;Output hier&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;[120150.785488] nfs: server 10.232.218.3 not responding, timed out&lt;br&gt;[120450.903514] nfs: server 10.232.218.3 not responding, timed out&lt;br&gt;[120452.071783] nfs: server 10.232.218.3 not responding, timed out&lt;br&gt;[120462.577351] nfs: server 10.232.218.3 not responding, timed out&lt;/b&gt;&lt;/p&gt;&lt;p&gt;in ein lesbares Datumsformat umwandeln will&lt;/p&gt;&lt;p&gt;&lt;b&gt;Wed May 23 07:52:55 2012 nfs: server 10.232.218.3 not responding, timed out&lt;br&gt;Wed May 23 07:57:55 2012 nfs: server 10.232.218.3 not responding, timed out&lt;br&gt;Wed May 23 07:57:57 2012 nfs: server 10.232.218.3 not responding, timed out&lt;br&gt;Wed May 23 07:58:07 2012 nfs: server 10.232.218.3 not responding, timed out&lt;/b&gt;&lt;/p&gt;&lt;p&gt;nimmt man das hier:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;alias tmesg=&amp;#39;dmesg|perl -ne &amp;quot;BEGIN{\$a= time()- qx!cat /proc/uptime!};s/\[\s*(\d+)\.\d+\]/localtime(\$1 + \$a)/e; print \$_;&amp;quot;&amp;#39;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/oracle_statements_ohne_bindungsvariablen</guid>
    <title>Oracle - Statements ohne Bindungsvariablen</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/oracle_statements_ohne_bindungsvariablen</link>
    <pubDate>Fri, 3 Feb 2012 11:33:19 +0000</pubDate>
    <category>Tipps</category>
    <category>database</category>
    <category>oracle</category>
    <category>performance</category>
<description>&lt;p&gt;Größere Performanceprobleme bei Oracle können sich ergeben, wenn man nicht konsequent Queries mit Bindungsvariablen einsetzt. Um mal schnell rauszufinden, welche davon so laufen, kann man folgende Statements nutzen:&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div lang=&quot;x-western&quot; style=&quot;font-family:-moz-fixed;font-size:12px;&quot; class=&quot;moz-text-flowed&quot;&gt;&lt;b&gt;create table t1 as select sql_text from v$sqlarea;
&lt;br&gt;&lt;br&gt;alter table t1 add sql_text_wo_constants varchar2(1000);
&lt;/b&gt;
&lt;b&gt;&lt;br&gt;&lt;br&gt;create or replace function
&lt;/b&gt;
&lt;b&gt;&lt;br&gt;remove_constants( p_query in varchar2 ) return varchar2
&lt;br&gt;as
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_query long;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_char&amp;nbsp; varchar2(1);
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_in_quotes boolean default FALSE;
&lt;br&gt;begin
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in 1 .. length( p_query )
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; loop
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_char := substr(p_query,i,1);
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( l_char = &amp;#39;&amp;#39;&amp;#39;&amp;#39; and l_in_quotes )
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_in_quotes := FALSE;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif ( l_char = &amp;#39;&amp;#39;&amp;#39;&amp;#39; and NOT l_in_quotes )
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_in_quotes := TRUE;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_query := l_query || &amp;#39;&amp;#39;&amp;#39;#&amp;#39;;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( NOT l_in_quotes ) then
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_query := l_query || l_char;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_query := translate( l_query, &amp;#39;0123456789&amp;#39;, &amp;#39;@@@@@@@@@@&amp;#39; );
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in 0 .. 8 loop
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_query := replace( l_query, lpad(&amp;#39;@&amp;#39;,10-i,&amp;#39;@&amp;#39;), &amp;#39;@&amp;#39; );
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_query := replace( l_query, lpad(&amp;#39; &amp;#39;,10-i,&amp;#39; &amp;#39;), &amp;#39; &amp;#39; );
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return upper(l_query);
&lt;br&gt;end;
&lt;br&gt;/
&lt;br&gt;update t1 set sql_text_wo_constants = remove_constants(sql_text);
&lt;br&gt;&lt;br&gt;select sql_text_wo_constants, count(*)
&lt;/b&gt;
&lt;b&gt;&lt;br&gt;&amp;nbsp; from t1
&lt;br&gt;&amp;nbsp;group by sql_text_wo_constants
&lt;br&gt;having count(*) &amp;gt; 100
&lt;br&gt;&amp;nbsp;order by 2
&lt;br&gt;/
&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/tar_i_o_limitieren_mit</guid>
    <title>tar I/O limitieren mit dem Pipe Viewer</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/tar_i_o_limitieren_mit</link>
    <pubDate>Tue, 25 Jan 2011 13:47:20 +0000</pubDate>
    <category>Tipps</category>
    <category>io</category>
    <category>linux</category>
<description>&lt;p&gt;Wenn man &lt;b&gt;tar&lt;/b&gt; etwas einbremsen möchte, damit es nicht die Platte blockiert, dann kann man das u.a. mit dem &lt;a href=&quot;http://www.ivarch.com/programs/pv.shtml&quot; target=&quot;_blank&quot;&gt;Pipe Viewer&lt;/a&gt; (Gentoo: emerge -av pv) machen:&lt;/p&gt;&lt;p&gt;&lt;b&gt;tar pcf - &amp;lt;verzeichnis_zum_packen&amp;gt; | pv -s $(du -sb home | awk &amp;#39;{print $1}&amp;#39;) --rate-limit 500k | gzip &amp;gt; datei.tar.gz&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Ich nehm für sowas auch immer ganz gerne rsync her. Da ruft man das Ganze einfach mit der Option --bwlimit auf z.B. folgender Befehl reduziert die Übertragungsgeschwindigkeit auf ~10MB/sec.:&lt;/p&gt;&lt;p&gt;&lt;b&gt;rsync -av --bwlimit=10000 ...&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/welche_ip_kommt_am_haeufigsten</guid>
    <title>Welche IP kommt am haeufigsten im Accesslog vor</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/welche_ip_kommt_am_haeufigsten</link>
    <pubDate>Fri, 14 Jan 2011 22:00:39 +0000</pubDate>
    <category>Tipps</category>
    <category>apache</category>
    <category>linux</category>
<description>&lt;p&gt;Wenn man rausfinden möchte, welche IPs am häufigsten auf eine Website zugreifen, hilft folgender Bash Einzeiler um das Apache Access-Log durchzugrasen:&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;cat apache.access_log |awk &amp;#39;{print $1}&amp;#39; | sort | uniq -c | sort -n | tail -20&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/32bit_anwendung_auf_64bit_linux</guid>
    <title>32bit Anwendung auf 64bit Linux mit GCC kompilieren</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/32bit_anwendung_auf_64bit_linux</link>
    <pubDate>Fri, 15 Jan 2010 11:44:35 +0000</pubDate>
    <category>Tipps</category>
    <category>linux</category>
<description>&lt;p&gt;Wenn man mal in die Verlegenheit kommt, auf einem 64bit Linux OS ein 32bit Programm kompilieren zu müssen, dann ist das unter Gentoo mit multilib USE-Flag (also installierter 32bit und 64bit Unterstützung) kein Problem. Bevor man einen configure aufruft, exportiert man einfach zwei Variablen:&lt;/p&gt;&lt;p&gt;&lt;b&gt;export CFLAGS=&amp;quot;-m32&amp;quot;&lt;br&gt;export LDFLAGS=&amp;quot;-m32&amp;quot;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Unter Ubuntu/Debian sollten folgende Pakete installiert sein, damit das tut:&lt;/p&gt;&lt;p&gt;&lt;b&gt;libstdc++.i386&lt;br&gt;
libgcc.i386&lt;br&gt;
glibc.i386&lt;br&gt;
glibc-devel.i386&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Unter SuSE haben die Pakete immer 32bit im Paketnamen also z.B.:&lt;/p&gt;&lt;p&gt;&lt;b&gt;glibc-32bit&lt;br&gt;glibc-devel-32bit&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I.d.R. wird man bei einem größeren Projekt wie den Apache Webserver u.U. aber noch weitere andere 32bit Pakete nachinstallieren müssen.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/hp_officejet_6500_und_linux</guid>
    <title>HP Officejet 6500 und Linux</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/hp_officejet_6500_und_linux</link>
    <pubDate>Thu, 7 Jan 2010 21:25:20 +0000</pubDate>
    <category>Tipps</category>
    <category>fax</category>
    <category>linux</category>
    <category>printer</category>
    <category>scanner</category>
<description>&lt;p&gt;Drucker hinüber, Neuer dringend benötigt... Also schnell zum Mediamarkt. Klar war, das es ein HP sein sollte. Die funzen i.d.R. ohne Probleme unter Linux. Ohne genau zu wissen, welchen ich eigentlich kaufen soll, hab ich mir dir 5-6 Typen angeschaut, die da so rumstehen. Gelandet bin ich dann beim 119 Euro teuren Officejet 6500 mit Ethernet-Anschluss, Fax, Scanner und Kopierer. Vorallem der Ethernet-Anschluss hat es mir angetan. Damit ließ sich dann der iMac auch noch anschließen und man hat nicht das Problem, das man das USB-Kabel ständig umstecken muss zwischen zwei Rechnern.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Also daheim IP-Adresse, Netzmaske und Default-Gateway eingestellt (DHCP hätte es auch getan, hab ich aber nicht eingerichtet). Anpingen ging dann schon mal. Dann die Treiber des &lt;a href=&quot;http://hplipopensource.com/hplip-web/index.html&quot; target=&quot;_blank&quot;&gt;HP Linux Imaging and Printing System&lt;/a&gt; installiert. Die hplip-Treiber laufen mit fast 2000 HP-Druckern und fast jedem Linux-System. Unter Gentoo/Funtoo muss man einfach ein&lt;/p&gt;&lt;p&gt;&lt;b&gt;emerge -av hplip&lt;/b&gt;&lt;/p&gt;&lt;p&gt;starten. Ausserdem habe ich in der Datei /etc/portage/package.use noch folgende USE-Flags gesetzt:&lt;/p&gt;&lt;p&gt;&lt;b&gt;net-print/hplip ppds fax qt4&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Dann kann man mit CUPS den Druckertreiber einrichten. Dazu ruft man im Webbrowser einfach die Admin-Oberfläche von CUPS unter &lt;b&gt;http://localhost:631&lt;/b&gt; auf. Dort kann man dann nach dem Drucker einfach suchen lassen. Die Testseite kam ohne Probleme raus. &lt;/p&gt;&lt;p&gt;Für die Inbetriebnahme des Scanners habe ich nicht lange experimentiert und den Drucker/Scanner gleich per USB angeschlossen. Soweit Sane/XSane installiert ist, kann man dann gleich mit &lt;b&gt;sane-find-scanner&lt;/b&gt; checken, ob der Scanner gefunden wird (hierzu muss man unter Gentoo in der Gruppe lp sein). Wird der Scanner gefunden (sicherheitshalber auch als User root probieren, wenn es als normaler User nicht funktioniert), kann man &lt;b&gt;xsane&lt;/b&gt; starten und loslegen mit dem Scannen.&lt;/p&gt;&lt;p&gt;Summasummarum: Der Officejet 6500 läuft wunderbar unter Linux. Und für etwas über 100 Euro bekommt man 4 Geräte in Einem. Feine Sache :-)&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/verzeichnisse_ohne_dateien_kopieren_mit</guid>
    <title>Verzeichnisse ohne Dateien kopieren mit rsync</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/verzeichnisse_ohne_dateien_kopieren_mit</link>
    <pubDate>Thu, 29 Oct 2009 15:17:10 +0000</pubDate>
    <category>Tipps</category>
    <category>linux</category>
    <category>rsync</category>
<description>&lt;p&gt;Mit Version 3 von rsync lassen sich relativ einfach ganze Verzeichnisbäume inkl. Rechte und User-/Gruppen-IDs ohne Inhalt sprich ohne Dateien kopieren:&lt;/p&gt;&lt;p&gt;&lt;b&gt;rsync -a -f&amp;quot;+ */&amp;quot; -f&amp;quot;- *&amp;quot; source/ destination/&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Soweit ich weiß, gibt es die Option &lt;b&gt;-f&lt;/b&gt; in Version 2 von rsync noch nicht. Drum wird das in div. Enterprise Linux Versionen nicht funktionieren.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/3d_support_radeon_hd_2000</guid>
    <title>3D Support Radeon HD 2000 - HD 4000 bzw. R6xx - R7xx</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/3d_support_radeon_hd_2000</link>
    <pubDate>Wed, 7 Oct 2009 21:25:10 +0000</pubDate>
    <category>Tipps</category>
    <category>driver</category>
    <category>linux</category>
    <category>mesa</category>
    <category>opengl</category>
    <category>radeon</category>
<description>&lt;p&gt;Endlich ist es soweit! Nachdem ich die ATI Radeon Grafikkarte (Radeon HD 3650 - RV635) in meinem Laptop (siehe auch: &lt;a href=&quot;http://www.tauceti.net/roller/cetixx/entry/elitebook_8530p_gentoo_sabayon_kubuntu&quot; target=&quot;_blank&quot;&gt;Elitebook 8530p, Gentoo, Sabayon, Kubuntu - Teil 1&lt;/a&gt; / &lt;a href=&quot;http://www.tauceti.net/roller/cetixx/entry/elitebook_8530p_gentoo_funtoo_teil&quot; target=&quot;_blank&quot;&gt;Elitebook 8530p, Gentoo, Funtoo - Teil 2&lt;/a&gt;) am Anfang am liebsten an die Wand geklatscht hätte, weil die propritären ATI einfach nur übel sind und mit neueren sowie (teilweise) selbstkompilierten Kernel überhaupt nicht tun (im Gegensatz zu Nvidia), hab ich das Teil dann doch noch zum &lt;a href=&quot;http://www.tauceti.net/roller/cetixx/entry/elitebook_8530p_gentoo_funtoo_teil&quot; target=&quot;_blank&quot;&gt;Laufen bekommen&lt;/a&gt; mit den OpenSource Treibern (radeonhd). Die laufen wirklich gut und die 2D Performance ist inzwischen super. Nur mit 3D war halt nix. Das ist mir prinzipiell egal, aber sowas wie die Desktopeffekte von KDE 4 oder Compiz Fusion is halt dann nicht so richtig (schnell) - und ich mag die Dinger echt gerne, da sie wirklich auch produktiv sind.&lt;br&gt;&lt;br&gt;Wer Funtoo/Gentoo als Linux-Distribution nutzt und sich rantraut, kann die nötigen Treiber für 3D Unterstützung aber jetzt nutzen. Ich wollte zunächst wie &lt;a href=&quot;http://wiki.x.org/wiki/radeonhd%3Aexperimental_3D&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt; beschrieben vorgehen, aber das Ganze kompilierte leider nicht ganz fertig.&lt;br&gt;&lt;br&gt;Aber Gentoo &amp;quot;to the rescue&amp;quot;! Zunächst habe ich mir mal einen Kernel 2.6.32 (git-sources-2.6.32_rc3-r1) installiert und kompiliert. Verwendet habe ich eine Kernel-Config von Sabayon 5.0, das auf Gentoo aufsetzt, für Desktop-Systeme ist und Kernel 2.6.31 verwendet. Die .config (&lt;a href=&quot;http://gitweb.sabayon.org/?p=overlay.git;a=blob;f=sys-kernel/linux-sabayon/files/linux-sabayon-2.6.31-amd64.config;hb=HEAD&quot; target=&quot;_blank&quot;&gt;x86_64&lt;/a&gt; / &lt;a href=&quot;http://gitweb.sabayon.org/?p=overlay.git;a=blob;f=sys-kernel/linux-sabayon/files/linux-sabayon-2.6.31-x86.config;hb=HEAD&quot; target=&quot;_blank&quot;&gt;x86&lt;/a&gt;) habe ich fast unverändert übernommen - nur die KMS (Kernel Mode Settings) im Staging-Bereich habe ich aktiviert und alles andere im Staging-Bereich ausgeschaltet, da die Android-Treiber bei mir das Kompilieren des Kernel verhindern (bricht mit Error ... ab).&lt;/p&gt;&lt;p&gt;Das ist prinzipiell eine feine Sache. Man hat hiermit praktisch auf der Console schon die volle Auflösung - in meinem Fall 1600x1050 - und wenn man zwischen X-Server und Konsole mit &lt;b&gt;CTRL+ALT+F1&lt;/b&gt; oder &lt;b&gt;CTRL+ALT+F7&lt;/b&gt; hin und her wechselt, flackert nix, da nicht mehr zwischen den Auflösungen umgeschaltet werden muss. Das Ganze funkt auch wunderbar - prinzipiell. Nur leider sieht der X-Server nach dem Start recht bunt aus und der Cursor ist ziemlich viereckig ;-) Aber gut, das ist ja auch alles noch ziemlich experimentell. Man kann KMS über einen Kernel-Bootparameter wieder ausschalten. Dazu fügt man in der &lt;b&gt;/boot/grub/grub.conf&lt;/b&gt; den Parameter &lt;b&gt;radeon.modeset=0&lt;/b&gt; hinten an. Wenn es dann doch mal tut, kann man ja den Parameter wieder weglassen.&lt;br&gt;&lt;br&gt;Nun aber zur 3D Unterstützung: Zunächst habe ich das &lt;b&gt;X11-Overlay&lt;/b&gt; hinzugefügt:&lt;br&gt;&lt;b&gt;&lt;br&gt;layman -a x11&lt;br&gt;layman -S&lt;/b&gt;&lt;br&gt;&lt;br&gt;Da man Mesa und die Xorg-Treiber in den neuesten Versionen braucht, habe ich die Pakete unmasked (mit Hilfe des Tools &lt;a href=&quot;http://www.gentoo-portage.com/app-portage/autounmask&quot; target=&quot;_blank&quot;&gt;autounmask&lt;/a&gt;):&lt;br&gt;&lt;br&gt;&lt;b&gt;autounmask x11-base/xorg-drivers-9999&lt;br&gt;autounmask media-libs/mesa-9999&lt;/b&gt;&lt;br&gt;&lt;br&gt;Dann installiert man Folgendes:&lt;br&gt;&lt;b&gt;&lt;br&gt;emerge -av xorg-server xorg-drivers mesa libdrm&lt;/b&gt;&lt;br&gt;&lt;br&gt;Und schließlich sollte man noch einen &lt;br&gt;&lt;br&gt;&lt;b&gt;revdep-rebuild&lt;/b&gt;&lt;br&gt;&lt;br&gt;hinterherschicken. Dann muss man eigentlich nur noch Durchstarten und in den System Settings die Desktop Effekte einschalten (soweit nicht schon passiert [waren bei mir bisher auf XRender eingestellt]) und auf OpenGL umstellen. Das war&amp;#39;s eigentlich :-) Bei mir laufen fast alle Effekte sehr schnell.&lt;br&gt;&lt;br&gt;Und fall es jemanden interessiert: glxgears läuft bei mir jetzt mit 2123 FPS ;-)&lt;br&gt;&lt;br&gt;
&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/kvm_benchmark_apachebench_iozone_graphics</guid>
    <title>KVM Benchmark: Apachebench, IOzone, Graphics Magick</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/kvm_benchmark_apachebench_iozone_graphics</link>
    <pubDate>Tue, 6 Oct 2009 21:32:37 +0000</pubDate>
    <category>Tipps</category>
    <category>kvm</category>
    <category>linux</category>
<description>&lt;p&gt;&lt;b&gt;Update 20100115:&lt;/b&gt; Bezügl. I/O-Performance und dem qcow2-Format, sollte man das hier noch lesen: &lt;a href=&quot;http://fedoraproject.org/wiki/Features/KVM_qcow2_Performance%20&quot; target=&quot;_blank&quot;&gt;Features/KVM qcow2 Performance&lt;/a&gt; . Seit Qemu/KVM 0.11.0 hat sich da einiges getan. Vorraussetzung für die bessere Performance ist aber, das man das qcow2-Image mit Qemu &amp;gt;= Version 0.11.0 erzeugt hat. Es kann also durchaus Sinn machen, ein altes Image in ein Neues zu konvertieren.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Ich habe in den letzten Tagen auf einem HP DL 380 G6 Server ein paar Benchmarks mit der Linux Kernel Virtual Maschine (KVM) gemacht. Ich persönlich nutze die KVM schon seit fast zwei Jahren und produktiv laufen aktuell über 40 VMs. Die Stabilität und die Performance hat sich in den letzten Releases sehr gut entwickelt und die Entwicklung geht sehr schnell voran.&lt;/p&gt;&lt;p&gt;Der Host und der Gast liefen mit Gentoo und Kernel 2.6.31.1. Der Host hat folgende Komponeten eingebaut:&lt;br&gt;&lt;br&gt;2 x Intel Xeon CPU L5520 - 2 Quad-Processors (static performance, VT-d, Hyperthreading eingeschaltet in BIOS)&lt;br&gt;8 x 300 GB SAS 10k Festplatten (RAID 10)&lt;br&gt;24 GB RAM&lt;br&gt;&lt;b&gt;&lt;br&gt;(Einige) Host (kernel) Einstellungen:&lt;/b&gt;&lt;br&gt;I/O scheduler: deadline&lt;br&gt;Filesystem: xfs&lt;br&gt;CONFIG_HAVE_KVM=y&lt;br&gt;CONFIG_HAVE_KVM_IRQCHIP=y&lt;br&gt;CONFIG_KVM=m&lt;br&gt;CONFIG_KVM_INTEL=m&lt;br&gt;CONFIG_VIRTIO_BLK=m&lt;br&gt;CONFIG_VIRTIO_NET=m&lt;br&gt;CONFIG_VIRTIO_CONSOLE=m&lt;br&gt;CONFIG_HW_RANDOM_VIRTIO=m&lt;br&gt;CONFIG_VIRTIO=m&lt;br&gt;CONFIG_VIRTIO_RING=m&lt;br&gt;CONFIG_VIRTIO_PCI=m&lt;br&gt;CONFIG_VIRTIO_BALLOON=m&lt;/p&gt;&lt;p&gt;&lt;b&gt;(Einige) Gast (Kernel) Einstellungen:&lt;/b&gt;&lt;br&gt;I/O scheduler: deadline/cfq (siehe unten)&lt;br&gt;Filesystem: ext3 (datamode=ordered/writeback [siehe unten])&lt;br&gt;VIRTIO Network (VIRTIO_NET) und Block (VIRTIO_BLK) Treiber verwendet.&lt;br&gt;Der Gast ist ein qcow2-Image, welches ich vorher mit &amp;quot;dd&amp;quot; erweitert habe, damit es für den IO Test groß genug ist und nicht erst während des Tests erweitert wird (was die Werte total verfälscht hätte).&lt;br&gt;CONFIG_KVM_CLOCK=y&lt;br&gt;CONFIG_KVM_GUEST=y&lt;br&gt;CONFIG_HAVE_KVM=y&lt;br&gt;CONFIG_HAVE_KVM_IRQCHIP=y&lt;br&gt;CONFIG_VIRTIO_BLK=y&lt;br&gt;CONFIG_VIRTIO_NET=m&lt;br&gt;CONFIG_VIRTIO_CONSOLE=y&lt;br&gt;CONFIG_HW_RANDOM_VIRTIO=y&lt;br&gt;CONFIG_VIRTIO=y&lt;br&gt;CONFIG_VIRTIO_RING=y&lt;br&gt;CONFIG_VIRTIO_PCI=y&lt;br&gt;CONFIG_VIRTIO_BALLOON=y&lt;br&gt;CONFIG_PARAVIRT_SPINLOCKS=y&lt;br&gt;&lt;br&gt;&lt;b&gt;KVM Startup Optionen (die Wichtigsten):&lt;/b&gt;&lt;br&gt;-m &amp;quot;variabel-siehe unten&amp;quot;&lt;br&gt;-smp &amp;quot;variabel-siehe unten&amp;quot;&lt;br&gt;-cpu host&lt;br&gt;-daemonize&lt;br&gt;-drive file=/data/kvm/kvmimages/gfs1.qcow2,if=virtio,boot=on&lt;br&gt;-net nic,vlan=104,model=virtio,macaddr=00:ff:48:23:45:4b&lt;br&gt;-net tap,vlan=104,ifname=tap.b.gfs1,script=no&lt;br&gt;-net nic,vlan=96,model=virtio,macaddr=00:ff:48:23:45:4d&lt;br&gt;-net tap,vlan=96,ifname=tap.f.gfs1,script=no&lt;br&gt;&lt;/p&gt;&lt;p&gt;Da wir KVM hauptsächlich für Webserver benötigen, habe ich Benchmarks mit Apachebench, Graphics Magick und IOzone erstellt:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Apachebench mit 4 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host &lt;/b&gt;(der hp380g6 Graph):&lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-3428/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-3428/&lt;/a&gt;&lt;br&gt;&lt;b&gt;Apachebench mit 2 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host&lt;/b&gt;:&lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-6053/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-6053/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mich hat hier u.a. interessiert, ob mehr RAM mehr Durchsatz bringt und ob mehrere virtuelle Prozessoren skalieren. Wenn man die 2xQuadCore + Hyperthreading mit den 8 virtuellen Prozessoren (vProcs) vergleicht, dann kann die KVM hier mithalten. Die Speichergröße spielt keine Rolle.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Graphics Magick resize mit 4 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host&lt;/b&gt; (der hp380g6 Graph):&lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-5214/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-5214/&lt;/a&gt;&lt;br&gt;&lt;b&gt;Graphics Magick resize mit 2 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host&lt;/b&gt; (the hp380g6 graph):&lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-7186/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-7186/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mit 8 vProcs ist die KVM ungefähr 10% langsamer. Mehr Speicher scheint auch hier nicht zu helfen.&lt;/p&gt;&lt;p&gt;Der folgende IOzone Test lief mit der KVM-Option &lt;b&gt;cache=none&lt;/b&gt;. In diesem Fall ist alleine der Host für&amp;#39;s Wegschreiben der Daten verantwortlich. Das erscheint mir aktuell immer noch die sicherste Option zu sein, um die Datenintegrität des KVM-Images und der Filesysteme in der KVM sicher zu stellen. Allerdings bremst das die Performance:&lt;/p&gt;&lt;p&gt;&lt;b&gt;IOzone Schreibtest (write) mit 2 GB RAM, CFQ scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs verglichen mit dem Host&lt;/b&gt; (der hp380g6 Graph):&lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-3564/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-3564/&lt;/a&gt;&lt;br&gt;&lt;b&gt;IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs:&lt;/b&gt;&lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-4533/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-4533/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Wie man sieht, bringt das Austauschen des Schedulers ungefähr 10-15 MByte/s mehr an Durchsatz. Die CPU-Auslastung habe ich aber nicht überprüft während des Tests. &lt;/p&gt;&lt;p&gt;Die folgenden IOzone Tests liefen ohne &lt;b&gt;cache&lt;/b&gt;-Option und somit mit dem Defaultwert &lt;b&gt;writethrough&lt;/b&gt;:&lt;/p&gt;&lt;p&gt;&lt;b&gt;IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3-Filesystem und writeback (siehe Testseite), 8 vProcs verglichen mit dem Host&lt;/b&gt; (der hp380g6 Graph): &lt;br&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.tauceti.net/kvm-benchmarks/merge-7526/&quot;&gt;http://www.tauceti.net/kvm-benchmarks/merge-7526/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Die Zahlen sind relativ beeindruckend. Die KVM kann eigentlich fast immer - mit den entsprechenden Einstellungen - mit dem &amp;quot;echten&amp;quot; Host mithalten in diesen Tests. Den Netzdurchsatz müsste man jetzt noch messen, dann wäre der gesamte Benchmark schon fast vollständig.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/firefox_und_thunderbird_unter_kde</guid>
    <title>Firefox und Thunderbird unter KDE 4</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/firefox_und_thunderbird_unter_kde</link>
    <pubDate>Tue, 28 Jul 2009 02:03:17 +0000</pubDate>
    <category>Tipps</category>
    <category>firefox</category>
    <category>gtk</category>
    <category>kde</category>
    <category>thunderbird</category>
<description>&lt;p&gt;Wer sich schon öfter mal darüber geärgert hat, das Firefox und Thunderbird nicht so wahnsinnig toll aussehen, wenn sie unter KDE laufen, dem kann geholfen werden. Grundsätzlich liegt das daran, das die beiden Apps GTK-Anwendungen sind und damit GUI-Elemente haben, die eben etwas anders aussehen, wie man das von einer KDE-Anwendung gewohnt ist.&lt;/p&gt;&lt;p&gt;Unter Gentoo installiert man das Paket &lt;b&gt;gtk-engines-qt&lt;/b&gt; (heisst bei anderen Distributionen ähnlich). Dann KDE durchstarten. Anschließend kann man in KDE die &lt;b&gt;System Setting&lt;/b&gt;s aufrufen und dort dann den Button &lt;b&gt;Apearance&lt;/b&gt; auswählen (sorry, kenne nur die englischen Bezeichnungen dafür...). In der linken Spalte sieht man dann jetzt &lt;b&gt;GTK Styles and Fonts&lt;/b&gt;. Wenn man dort&lt;b&gt; Use my KDE style in GTK applications&lt;/b&gt; auswählt, hat man das, was man braucht :-)&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/postgresql_replikation_mit_londiste_und</guid>
    <title>PostgreSQL-Replikation mit Londiste und SkyTools - Teil 1</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/postgresql_replikation_mit_londiste_und</link>
    <pubDate>Mon, 6 Jul 2009 15:22:17 +0000</pubDate>
    <category>Tipps</category>
    <category>londiste</category>
    <category>postgresql</category>
    <category>replication</category>
    <category>skytools</category>
<description>&lt;p&gt;&lt;b&gt;Warum SkyTools / Londiste?&lt;/b&gt; Ich war auf der Suche nach einer Replikationslösung, die mir einfach die Daten von einer Master-DB auf eine Slave-DB kopiert. Die Slave-DB ist read-only. Man muss grundsätzlich vorwegnehmen, das es unter Postgres leider keinen Replikationsmechanismus gibt, wie ihn die MySQL hat. Dort werden die Transaktionslogs auf dem Slave nachgefahren. D.h. das wirklich alle Statements auch auf dem Slave ausgeführt werden inkl. aller DDL-Statements (also sowas wie CREATE TABLE). Das ist bei (fast) keiner Replikationslösung, die es unter Postgres gibt, der Fall. Ich vermute mal, das das &lt;a href=&quot;http://pgfoundry.org/projects/pgcluster/&quot;&gt;PGCluster&lt;/a&gt; macht, welcher auch Multimaster-Replikation unterstützt. Zu dieser Lösung habe ich aber kein Vertrauen, da im Supportforum keiner der Entwickler antwortet. Ausserdem ist der PGCluster oder auch PGCluster-II (wird wohl eh nie erscheinen) immer eine speziell angepasste Version von Postgres und hängt der Entwicklung immer hinterher (und aktuell schon ziemlich...). Ich mag keine so &lt;i&gt;reingeschusterten&lt;/i&gt; Sachen. Dann gibt es noch den &lt;a href=&quot;http://www.postgresql.at/pr_cybercluster.html&quot; target=&quot;_blank&quot;&gt;CyberCluster&lt;/a&gt;, der in eine ähnliche Kategorie fällt und auf PGCluster aufbaut, aber auch so seine Probleme hat, wie ich mal auf der Postgres-Mailingliste erfahren habe.&lt;br&gt;&lt;br&gt;Dann gibt es noch Tools, die soz. Statements replizieren auf zwei oder mehrere Datenbanken und wie ein vorgeschalteter Proxy arbeiten, mit dem sich die Clients verbinden. &lt;a href=&quot;http://pgpool.projects.postgresql.org/&quot; target=&quot;_blank&quot;&gt;pgpool-II&lt;/a&gt; gehört da dazu. Aber was mach ich, wenn eine Node ausfällt? Die Daten bei dieser Art Replikation müssen zwangsläufig auseinander laufen, wenn eine DB ausfällt. Eine Antwort darauf gibt Gerd Koenig in &lt;a href=&quot;http://pgpool.projects.postgresql.org/contrib_docs/pgpool-II_for_beginners.pdf&quot; target=&quot;_blank&quot;&gt;pgpool-II for beginners&lt;/a&gt; (PDF). Das ist an sich schon mal nicht schlecht, aber diese Methode benötigt eigentlich fast schon ein komplettes Recovery der DB, damit die Datenbanken wieder konistent werden.&lt;br&gt;&lt;br&gt;Dann gibt&amp;#39;s noch &lt;a href=&quot;http://bucardo.org&quot; target=&quot;_blank&quot;&gt;Bucardo&lt;/a&gt;. Da ist zwar der Entwickler sehr aktiv, aber mir gefällt das dahinterliegende Konzept gar nicht, mit rsync irgendwelche Daten durch die Gegend zu kopieren. Prinzipiell handelt es sich hierbei um eine Multi-Master-Replikation.&lt;br&gt;&lt;br&gt;Weiterhin hätten wir noch den &lt;a href=&quot;http://www.commandprompt.com/products/mammothreplicator&quot; target=&quot;_blank&quot;&gt;Mammoth Replicator&lt;/a&gt;. Der war mal kommerziell und ist jetzt OpenSource. Hier kann man auch Support von Enterprise DB kaufen. Bin ich aber auch nicht so wirklich überzeugt von dem Konzept.&lt;br&gt;&lt;br&gt;Bleiben grob noch zwei Tools: Slony-I und Londiste.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.slony.info&quot; target=&quot;_blank&quot;&gt;Slony-I&lt;/a&gt; ist schon irgendwie das Schweizer Taschenmesser und Urgestein unter den Replikationslösungen - nur ungleich komplizierter zu bedienen. Und das war für mich dann auch der Grund, es mit &lt;a href=&quot;http://pgfoundry.org/projects/skytools/&quot; target=&quot;_blank&quot;&gt;Londiste/SkyTools&lt;/a&gt; zu versuchen, welches die Skype-Entwickler als OpenSource veröffentlich haben und das teilweise in Python geschrieben ist - was gleich noch viel mehr für die Lösung spricht ;-) &lt;br&gt;&lt;br&gt;Hier mal eine Übersicht über die wichtigsten Links bezügl. Londiste/SkyTools:&lt;br&gt;&lt;br&gt;SkyTools Download: &lt;br&gt;Londiste ist ein Teil der SkyTools. Version 2.1.9 ist gerade aktuell. Diese Version kann man sich auf &lt;a href=&quot;http://pgfoundry.org/projects/skytools/&quot; target=&quot;_blank&quot;&gt;pgFoundry&lt;/a&gt; downloaden. Da ich aber einen Teil der Funktionalität von Version 3 brauche, lade ich mir das Source-Paket (&lt;a href=&quot;http://pgfoundry.org/pipermail/skytools-users/2009-April/001029.html&quot; target=&quot;_blank&quot;&gt;http://pgfoundry.org/pipermail/skytools-users/2009-April/001029.html&lt;/a&gt;) runter, welches Marko Kreen in einem Posting der SkyTools-Mailingliste erwähnt hat. Version 3 ist aktuell noch Alpha - wobei ich mir ziemlich sicher bin, das das Skye intern schon länger im Einsatz ist und sicherlich weit weniger Alpha ist, als so manches andere Prgramm ;-) Bei mir läuft das jetzt auf jeden Fall schon mal seit 3 Monaten ganz gut durch.&lt;br&gt;&lt;br&gt;SkyTools @ PostgreSQL Wiki&lt;br&gt;&lt;a href=&quot;http://wiki.postgresql.org/wiki/SkyTools&quot; target=&quot;_blank&quot;&gt;http://wiki.postgresql.org/wiki/SkyTools&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pgsql.tapoueh.org/site/html/londiste/londiste.html&quot; target=&quot;_blank&quot;&gt;Londiste Tutorial (Version 2)&lt;/a&gt;&lt;br&gt;http://pgsql.tapoueh.org/site/html/londiste/londiste.html&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/pipermail/skytools-users/&quot; target=&quot;_blank&quot;&gt;SkyTools Users Archives Mailingliste&lt;/a&gt;&lt;br&gt;http://pgfoundry.org/pipermail/skytools-users/&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://manpages.ubuntu.com/manpages/jaunty/man1/londiste.1.html&quot; target=&quot;_blank&quot;&gt;Manpage für londiste (Version 2)&lt;/a&gt;&lt;br&gt;http://manpages.ubuntu.com/manpages/jaunty/man1/londiste.1.html&lt;br&gt;&lt;br&gt;Whats you favourite PostgreSQL Replication Tool:&lt;br&gt;1. Slony-I&lt;br&gt;2. pgpool2&lt;br&gt;3. londiste&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/community/survey.61&quot; target=&quot;_blank&quot;&gt;http://www.postgresql.org/community/survey.61&lt;/a&gt;&lt;br&gt;&lt;br&gt;PostgreSQL Replication using Slony-I&lt;br&gt;&lt;a href=&quot;http://jayant7k.blogspot.com/2008/11/postgresql-replication-using-slony-i.html&quot; target=&quot;_blank&quot;&gt;http://jayant7k.blogspot.com/2008/11/postgresql-replication-using-slony-i.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Database management tools from Skype: WAL shipping, queueing, replication. The tools are named walmgr, PgQ and Londiste, respectively&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/projects/skytools/&quot; target=&quot;_blank&quot;&gt;http://pgfoundry.org/projects/skytools/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Und in Teil 2 erklär ich dann, wie ich es eingerichtet habe...&lt;br&gt; &lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/amiga_mod_files_per_fuse</guid>
    <title>Amiga MOD-Files per FUSE-FS abspielen mit uadefs</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/amiga_mod_files_per_fuse</link>
    <pubDate>Thu, 28 May 2009 22:00:00 +0000</pubDate>
    <category>Tipps</category>
    <category>amiga</category>
    <category>fi</category>
    <category>retro</category>
    <category>sound</category>
    <category>tracker</category>
<description>&lt;p&gt;Schon witzig, was es alles heutzutage als Filesystem gibt ;-) So kann man mit &lt;a target=&quot;_blank&quot; href=&quot;http://zakalwe.fi/uade&quot;&gt;uadefs&lt;/a&gt; ein Verzeichnis mit Tracker-Dateien mounten und dann auf dieses Verzeichnis mit jedem beliebigen Player, der WAV-Dateien abspielen kann, diese Dateien abspielen. Das funktioniert ähnlich wie bei &lt;a target=&quot;_blank&quot; href=&quot;http://fuse.sourceforge.net/sshfs.html&quot;&gt;sshfs&lt;/a&gt; (ermöglicht ein Filesystem eines entfernten Rechners per SSH zu mounten):&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. mkdir -p ~/mnt/uadefs&lt;br&gt;2. uadefs /amiga/songs ~/mnt/uadefs&lt;br&gt;3. vlc ~/mnt/uadefs/mod.foo&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Voraussetzung ist natürlich, das man das FuSE-Paket installiert hat. uadefs ist bei Gentoo ein Teil des &lt;a target=&quot;_blank&quot; href=&quot;http://www.gentoo-portage.com/app-emulation/uade&quot;&gt;uade-Pakets&lt;/a&gt; (&lt;a target=&quot;_blank&quot; href=&quot;http://zakalwe.fi/uade&quot;&gt;Unix Amiga Delitracker Emulator&lt;/a&gt;).&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://www.tauceti.net/roller/cetixx/entry/mysql_performance_und_diagnose_tool</guid>
    <title>MySQL Performance- und Diagnose-Tool Jet Profiler</title>
    <dc:creator>cetixx</dc:creator>
    <link>https://www.tauceti.net/roller/cetixx/entry/mysql_performance_und_diagnose_tool</link>
    <pubDate>Wed, 6 May 2009 21:30:52 +0000</pubDate>
    <category>Tipps</category>
    <category>mysql</category>
    <category>performance</category>
    <category>profiler</category>
<description>&lt;p&gt;Normalerweise bin ich ja kein Fan von ClosedSource Programmen insbesondere im OpenSource Umfeld. Aber dieses Tool hier ist wirklich praktisch und ich habe bisher auch noch nicht wirklich was Besseres gefunden, wenn es um die Performanceanalyse einer MySQL-DB geht, insbesondere wenn man auf der Suche nach langsamen Queries, Locks, Cache-Hit-Ratio&amp;#39;s, usw. geht. Man bekommt diese Infos zwar auch teilweise anderweitig, aber kaum so gut und übersichtlich aufbereitet, was letztendlich viel Arbeit spart.&lt;br&gt;&lt;/p&gt;
  &lt;p&gt;Vom &lt;a href=&quot;http://www.jetprofiler.com&quot; target=&quot;_blank&quot;&gt;Jet Profiler&lt;/a&gt; kann man sich eine soweit ganz funktionale, freie Version downloaden, aber leider wird man relativ schnell feststellen, das man ohne die 499 Dollar teure Version nicht so arg weit kommt. Nicht ganz billig, aber das ist Oracle auch nicht ;-) Wenn man täglich hört &amp;quot;die Datenbank ist langsam...&amp;quot;, dann ist dieses Programm die Antwort. Das Programm ist in Java geschrieben und ist allen Unkenrufen zum Trotz (was man immer noch von Java-Programmen hört) schnell und gut bedienbar. Es läuft unter Linux, Mac OS X und Windows. &lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>  </item>
</channel>
</rss>