<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christophs Blog</title>
	<atom:link href="http://blog.cgiesel.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cgiesel.de</link>
	<description>/home/christoph</description>
	<lastBuildDate>Thu, 25 Aug 2011 13:23:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Demokratie &#8211; Teil 2 (Piratenpartei Sachsen-Anhalt Blog)</title>
		<link>http://blog.cgiesel.de/2011/07/demokratie-teil-2-piratenpartei-sachsen-anhalt-blog/</link>
		<comments>http://blog.cgiesel.de/2011/07/demokratie-teil-2-piratenpartei-sachsen-anhalt-blog/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 21:42:06 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false">http://blog.cgiesel.de/?p=232</guid>
		<description><![CDATA[Ich habe es wieder getan und ein Artikel im Blog der Piratenpartei Sachsen-Anhalt zur Demokratie geschrieben. Dieser knüpft ein wenig an meinen ersten Artikel an: Demokratie mit Füßen getreten (Backup)]]></description>
			<content:encoded><![CDATA[<p>Ich habe es wieder getan und ein Artikel im Blog der Piratenpartei Sachsen-Anhalt zur Demokratie geschrieben. Dieser knüpft ein wenig an meinen <a href="/2011/06/negatives-stimmengewicht/" title="Negatives Stimmengewicht (Piratenpartei Sachsen-Anhalt Blog)">ersten Artikel</a> an:</p>
<p><a href="http://blog.piraten-lsa.de/2011-07-07/demokratie-mit-fuessen-getreten">Demokratie mit Füßen getreten</a> (<a href="/wp-content/uploads/2011/07/DemokratieMitFuessenGetreten-ChristophGiesel.txt">Backup</a>)<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/07/demokratie-teil-2-piratenpartei-sachsen-anhalt-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Negatives Stimmengewicht (Piratenpartei Sachsen-Anhalt Blog)</title>
		<link>http://blog.cgiesel.de/2011/06/negatives-stimmengewicht/</link>
		<comments>http://blog.cgiesel.de/2011/06/negatives-stimmengewicht/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 10:12:40 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false">http://blog.cgiesel.de/?p=227</guid>
		<description><![CDATA[Letztes Wochenende habe ich in dem Blog der Piratenpartei Sachsen-Anhalt etwas zum Negativen Stimmengewicht geschrieben: Der Untergang der Demokratie: das negative Stimmengewicht (Backup)]]></description>
			<content:encoded><![CDATA[<p>Letztes Wochenende habe ich in dem Blog der Piratenpartei Sachsen-Anhalt etwas zum Negativen Stimmengewicht geschrieben:</p>
<p><a href=" http://blog.piraten-lsa.de/2011-06-19/der-untergang-der-demokratie-das-negative-stimmengewicht">Der Untergang der Demokratie: das negative Stimmengewicht</a> (<a href="/wp-content/uploads/2011/06/NegativesStimmengewicht-ChristophGiesel.txt">Backup</a>)<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/06/negatives-stimmengewicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Web Service: Übertragung von großen Dateien</title>
		<link>http://blog.cgiesel.de/2011/06/net-webservice-grosse-dateien/</link>
		<comments>http://blog.cgiesel.de/2011/06/net-webservice-grosse-dateien/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 09:51:09 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
				<category><![CDATA[große Datei]]></category>
		<category><![CDATA[maxReceivedMessageSize]]></category>
		<category><![CDATA[NET]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[Web.config]]></category>

		<guid isPermaLink="false">http://blog.cgiesel.de/?p=207</guid>
		<description><![CDATA[Bei meinen Experimenten bzgl. .NET Web Services habe ich mit der Übertragung von Byte Arrays herum gespielt. Dabei bekam ich immer die HTTP Fehlermeldung &#8220;Bad Request&#8221; (400) zurück. Theoretisch könnte dieser Fehler alles sein (z.B. falsches Encoding), aber die Suchmaschine meines Vertrauens brachte mich zu der Ursache: Standardmäßig sind nur 64 kB erlaubt. Um dies [...]]]></description>
			<content:encoded><![CDATA[<p>Bei meinen Experimenten bzgl. .NET Web Services habe ich mit der Übertragung von Byte Arrays herum gespielt. Dabei bekam ich immer die HTTP Fehlermeldung &#8220;Bad Request&#8221; (400) zurück. Theoretisch könnte dieser Fehler alles sein (z.B. falsches Encoding), aber die Suchmaschine meines Vertrauens brachte mich zu der Ursache: Standardmäßig sind nur 64 kB erlaubt. Um dies zu erhöhen, ist es notwendig, die <em>Web.config</em> anzupassen.<br />
<span id="more-207"></span><br />
Man öffne also die <em>Web.config</em> Datei und füge unter</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  [...]
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;system.serviceModel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>folgende Zeilen ein:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bindings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;basicHttpBinding<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;binding</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;basicHttpBinding&quot;</span> <span style="color: #000066;">maxBufferSize</span>=<span style="color: #ff0000;">&quot;2147483647&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">maxBufferPoolSize</span>=<span style="color: #ff0000;">&quot;2147483647&quot;</span> <span style="color: #000066;">maxReceivedMessageSize</span>=<span style="color: #ff0000;">&quot;2147483647&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;readerQuotas</span></span>
<span style="color: #009900;">            <span style="color: #000066;">maxDepth</span>=<span style="color: #ff0000;">&quot;64&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">maxStringContentLength</span>=<span style="color: #ff0000;">&quot;2147483647&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">maxArrayLength</span>=<span style="color: #ff0000;">&quot;2147483647&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">maxBytesPerRead</span>=<span style="color: #ff0000;">&quot;4096&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">maxNameTableCharCount</span>=<span style="color: #ff0000;">&quot;16384&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/binding<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/basicHttpBinding<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/bindings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;services<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service</span> <span style="color: #000066;">behaviorConfiguration</span>=<span style="color: #ff0000;">&quot;CustomServiceBehavior&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Namespace.ClassOfService&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;endpoint</span> <span style="color: #000066;">address</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">binding</span>=<span style="color: #ff0000;">&quot;basicHttpBinding&quot;</span> <span style="color: #000066;">bindingConfiguration</span>=<span style="color: #ff0000;">&quot;basicHttpBinding&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">contract</span>=<span style="color: #ff0000;">&quot;Namespace.IClassOfContract&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/services<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Dabei ist es wichtig folgende Sachen anzupassen:</p>
<p><strong>1. &#8220;CustomServiceBehavior&#8221;:</strong><br />
Dieser Name ist eigentlich egal. Wenn man diesen ändert, muss man den nachher auch anpassen.</p>
<p><strong>2. &#8220;Namespace.ClassOfService&#8221;:</strong><br />
Hier schreibt man den Namen der Klasse von dem eigenen Service rein. Davor muss unbedingt noch der Namespace der Klasse.</p>
<p><strong>3. &#8220;Namespace.IClassOfContract&#8221;:</strong><br />
Dort muss der Name der Contract Klasse wie in Punkt 2 angepasst werden (normalerweise heißt diese IService1 oder ähnlich).</p>
<p>Wie man vielleicht gesehen hat, habe ich noch andere Werte angepasst. Da ja die ganzen Daten in XML serialisiert werden, müssen auch Werte wie die Textlänge angepasst werden. Die meisten Werte wurden also auf 2 GB gesetzt.</p>
<p>Anschließend muss man noch auf der selben Ebene unter dem bereits vorhandenen Element &#8220;&lt;behavior&gt;&#8221; den Namen aus Punkt 1 einfügen, also in etwa so:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;behaviors<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;serviceBehaviors<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;behavior</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;CustomServiceBehavior&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></td></tr></table></div>

<p>Das war es auch schon. Leider war das im Internet oft nicht so gut erklärt.<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/06/net-webservice-grosse-dateien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ideen für ein besseres CMS (WordPress + Drupal)</title>
		<link>http://blog.cgiesel.de/2011/04/ideen-fuer-ein-besseres-cms-wordpress-drupal/</link>
		<comments>http://blog.cgiesel.de/2011/04/ideen-fuer-ein-besseres-cms-wordpress-drupal/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 17:00:47 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false">http://blog.cgiesel.de/?p=187</guid>
		<description><![CDATA[Bisher habe ich Drupal und WordPress verwendet. Beide haben ihre Vorteile, aber auch Nachteile. Ich überlege mir schon länger, wie ein besseres CMS aussehen würde. Am besten fände ich ja, wenn man WordPress nimmt und dann ein paar Sachen von Drupal einbaut. Ich würde so vorgehen: 1. WordPress forken Als erstes nimmt man sich WordPress, [...]]]></description>
			<content:encoded><![CDATA[<p>Bisher habe ich Drupal und WordPress verwendet. Beide haben ihre Vorteile, aber auch Nachteile. Ich überlege mir schon länger, wie ein besseres CMS aussehen würde. Am besten fände ich ja, wenn man WordPress nimmt und dann ein paar Sachen von Drupal einbaut. Ich würde so vorgehen:<span id="more-187"></span></p>
<p><strong>1. WordPress forken</strong></p>
<p>Als erstes nimmt man sich WordPress, nennt es um und entfernt alle Bindungen zu WordPress. Also müssten temporär erstmal die Plugins Sektion deaktiviert werden. Außerdem würde ich dann erstmal Altlasten entfernen, die obsolete sind &#8211; also Funktionen bzw. Parameter, die eh nicht mehr angenommen werden.</p>
<p><strong>2. Artikel &#038; Seiten zu Inhaltstypen umbauen</strong></p>
<p>Wenn man Drupal kennt und ggf. auch mal von Drupal nach WordPress migriert ist, findet man die feste Unterteilung zwischen Artikel und Seiten nicht toll. Daher würde das in flexible Inhaltstypen umbauen, wo man dann noch zusätzliche definieren kann. Natürlich sollte man &#8220;Artikel&#8221; und &#8220;Seiten&#8221; als Inhaltstypen vordefinieren. Damit es noch richtig flexibler wird, sollte man in den Einstellungen einstellen können, welche Beiträge bei dem Main Loop angezeigt werden &#8211; also welche Inhaltstypen, Tags, Kategorien, &#8230;.</p>
<p><strong>3. CCK bzw. bessere Field-Unterstützung einbauen</strong></p>
<p>&#8220;Benutzerdefinierte &#8220;Felder&#8221; gibt es in WordPress ja schon, aber die sind ja nur rudimentär. Besser wäre, wenn man schon welche für bestimmte Inhaltstypen vorbestimmen könnte und diese noch anpassbarer werden. Also ich meine, dass man die Größe oder auch Art bestimmen kann (z.B. eine Textbox wie bei der Contentbox mit Buttons oder Felder zum Datum auswählen). So sollte man auch die normale Textbox ausblenden/entfernen können.</p>
<p>Das gleich dann mit den Profilfeldern. Dort gibt es z.B. gar keine Benutzerdefinierten Felder &#8211; diese sollte man ähnlich ergänzen.</p>
<p><strong>4. Views einbauen</strong></p>
<p>Bei Drupal gibt es das genial Module &#8220;Views&#8221;. Damit kann man Seiten aus mehreren Beiträgen erzeugen, indem man Filter etc. einstellt. Für den Anfang würde es reichen, wenn das erst einmal rudimentär wäre &#8211; also wie unter Punkt 2 bei dem &#8220;Standard Loop&#8221; beschrieben.</p>
<p><strong>5. Anti-Spam Modul einbauen</strong></p>
<p>Ich hatte erst gedacht, dass man am besten die WordPress Erweiterung &#8220;Anti-Spam Bee&#8221; fest einbaut, aber dann doch eher in eine mitgelieferte Erweiterung, die an diesen Fork anpasst ist, umbaut. Lieber als Erweiterung, weil manche Leute andere Methoden wie Akismet bevorzugen.</p>
<p><strong>6. besseres Caching einbauen</strong></p>
<p>In Drupal gibt es schon Caching, aber &#8220;WP Super Cache&#8221; ist da fiel besser. Die Funktionen dieser Erweiterung sollten fest eingebaut werden, die Erweiterungen z.B. bei CDN unterstützt.</p>
<p><strong>7. bessere Plugin Entwicklung</strong></p>
<p>Wie in Drupal würde ich gerne bei der Webseite des Projekts eine bessere Plugin Entwicklung ermöglichen. Das tolle bei Drupal ist, dass es dort Bug Tracker, Forum (beides fast das selbe) und GIT Repository (vorher CVS) gibt. So wären auch mehrere Version einer Erweiterung möglich (stable, dev, daily build, &#8230;). Ab hier könnte man den Plugin Bereich wieder aktivieren, der aber vorher angepasst werden müsste.</p>
<p><strong>8. Sprachentwicklung</strong></p>
<p>Komischer Titel. Das habe ich mir jetzt halb von Drupal und halb von Android abgeguckt. Bei Android wird man fast gezwungen die verwendeten Strings in eine extra Datei abzulegen (nicht unbedingt gezwungen, aber in so gut wie jeder Anleitung wird das so gemacht). Dies würde ich hier bei den Plugins (sowie im Core) auch vorschreiben (natürlich müsste die Hauptsprache Englisch sein). Dann gibt es bei Drupal noch eine tolle Seite, bei der man sich in eine Lokalisierungsgruppe einschreiben und an den Übersetzungen von Sprachdateien (von den Modulen und auch dem Core) arbeiten kann. Dort ist es möglich selber Übersetzungen einzustellen bzw. Alternativen zu ergänzen. Wie das ganze genau läuft, weiß ich nun auch nicht. Zumindest gibt es bei Drupal ein Modul, dass diese Übersetzungen automatisch holt und updatet. So etwas sollte es bei diesem System auch geben.</p>
<p>&#8211;</p>
<p>Das waren erst einmal meine Vorschläge. Natürlich gibt es noch genügend andere Sachen, die man verbessern könnte, aber das waren meine wichtigsten Punkte.<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/04/ideen-fuer-ein-besseres-cms-wordpress-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tipps für die Neuinstallation (ArchLinux)</title>
		<link>http://blog.cgiesel.de/2011/03/tipps-fuer-die-neuinstallation-archlinux/</link>
		<comments>http://blog.cgiesel.de/2011/03/tipps-fuer-die-neuinstallation-archlinux/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 13:25:27 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false">http://blog.cgiesel.de/?p=171</guid>
		<description><![CDATA[Dies hier schreibe ich eigentlich nur, damit ich für das nächste mal besser vorbereitet bin. Gestern habe ich mal seit langen wieder mein Linux System auf dem Laptop komplett neu installiert. Dies ist eigentlich bei ArchLinux nicht notwendig, da man eh fast alles selber konfiguriert und es ja ein Rolling Release ist. Trotzdem gab es [...]]]></description>
			<content:encoded><![CDATA[<p><em>Dies hier schreibe ich eigentlich nur, damit ich für das nächste mal besser vorbereitet bin.</em></p>
<p>Gestern habe ich mal seit langen wieder mein Linux System auf dem Laptop komplett neu installiert. Dies ist eigentlich bei ArchLinux nicht notwendig, da man eh fast alles selber konfiguriert und es ja ein Rolling Release ist. Trotzdem gab es Probleme, die ich irgendwie nicht wegbekommen hatte. Auf jeden Fall:<br />
<span id="more-171"></span><br />
<strong>1. Backup:</strong></p>
<p>Wenn man Backups macht, dann auch vergewissern, dass sie funktioniert haben&#8230;</p>
<p><strong>2. Datenrettung (zu 1.):</strong></p>
<p>Wenn man noch ein paar Bilder retten will, die mal auf einer SD Karte waren: Das Programm <a href="http://www.cgsecurity.org/wiki/TestDisk">PhotoRec</a> ist ganz gut. Bei mir hatte nur die Beta funktioniert.</p>
<p><strong>3. Wenn man eine aktuelle ArchLinux ISO für die Installation haben möchte:</strong></p>
<p>Unbedingt <a href="https://wiki.archlinux.org/index.php/Archiso">archiso</a> nehmen (<a href="http://aur.archlinux.org/packages.php?ID=25996">archiso-git</a> gibt es im AUR). Falls man die Version aus dem AUR genommen hat, einfach den Ordner &#8220;<strong>/usr/share/archiso/configs/syslinux-iso</strong>&#8221; irgendwo hinkopieren, in das Verzeichnis gehen und dort</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> core-iso</pre></div></div>

<p>oder</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> net-iso</pre></div></div>

<p>ausführen. Gerne kann man vorher noch Anpassungen machen &#8211; genaueres auf der bereits verlinkten Wiki Seite.</p>
<p><strong>4. Liste der installierten Pakate erstellen:</strong></p>
<p>Wenn man auf alles vorbereitet sein will, kann man sich eine Liste der installierten Pakete erstellen. Hier sind zwei interessante Befehle, bei denen man die Ausgabe per &#8220;> filename&#8221; umleiten und in eine Datei speichern kann. Diese Datei entweder ausdrucken oder in das Backup mit einbeziehen.</p>
<p>Pakete, die aus keinem Repository sind:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pacman <span style="color: #660033;">-Qm</span></pre></div></div>

<p>Pakate, die keine Abhängigkeiten sind und explizit installiert wurden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pacman <span style="color: #660033;">-Qet</span></pre></div></div>

<p><strong>5. Compositing von Metacity aktivien (oder wie gnome-terminal richtig transparent wird):</strong></p>
<p>Wenn man GNOME (bzw. Metacity) benutzt und den Hintergrund vom gnome-terminal auf transparent stellt, dann ist das keine richtige Transparenz, da nur der Desktop Hintergrund dort dargestellt wird. Will man, dass hinterliegende Fenster etc. auch durchscheinen, dann muss man <a href="http://wiki.ubuntuusers.de/Metacity#Effekte">Compositing von metacity aktivieren</a> (als User ausführen):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gconftool-<span style="color: #000000;">2</span> <span style="color: #660033;">-s</span> <span style="color: #660033;">--type</span> bool <span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>metacity<span style="color: #000000; font-weight: bold;">/</span>general<span style="color: #000000; font-weight: bold;">/</span>compositing_manager <span style="color: #c20cb9; font-weight: bold;">true</span></pre></div></div>

<p><a href="http://blog.cgiesel.de/wp-content/uploads/2011/03/Arbeitsfläche-1_001.png" rel="lightbox[171]" title="Screenshot gnome-terminal transparent"><img src="http://blog.cgiesel.de/wp-content/uploads/2011/03/Arbeitsfläche-1_001.png" alt="" title="Screenshot gnome-terminal transparent" width="300" height="188" class="aligncenter size-full wp-image-182" /></a></p>
<p><em>Gegebenenfalls ergänze ich noch ein paar Sachen.</em><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/03/tipps-fuer-die-neuinstallation-archlinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio &amp; Video Tag (HTML5)</title>
		<link>http://blog.cgiesel.de/2011/02/audio-video-tag-html5/</link>
		<comments>http://blog.cgiesel.de/2011/02/audio-video-tag-html5/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 23:50:55 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false">http://blog.cgiesel.de/?p=157</guid>
		<description><![CDATA[Eigentlich bin ich ja begeistert von den neuen HTML5 Tags, die es erlauben Video und Audio Dateien ohne Flash oder ähnliches Plugins in der Webseite einzubinden. Diese konnte ich letzten schon einmal auf der Seite der Piratenpartei Sachsen-Anhalt ausprobieren. So sieht zum Beispiel der Audio-Code aus: &#60;audio controls&#62; &#60;source src=&#34;/medien/stoppschilder.ogg&#34; type=&#34;audio/ogg&#34; /&#62; &#60;source src=&#34;/medien/stoppschilder.mp3&#34; type=&#34;audio/mpeg&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Eigentlich bin ich ja begeistert von den neuen <em>HTML5</em> Tags, die es erlauben Video und Audio Dateien ohne Flash oder ähnliches Plugins in der Webseite einzubinden. Diese konnte ich letzten schon einmal auf der <a href="">Seite der Piratenpartei Sachsen-Anhalt</a> ausprobieren.<span id="more-157"></span></p>
<p>So sieht zum Beispiel der <strong>Audio-Code</strong> aus:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;audio controls&gt;</span>
  <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/medien/stoppschilder.ogg&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;audio/ogg&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/medien/stoppschilder.mp3&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;audio/mpeg&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">iframe</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;YouTube video player&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;youtube-player&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;500&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;405&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.youtube.com/embed/YdRUHJfBiz0&quot;</span> <span style="color: #000066;">frameborder</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> allowFullScreen&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">iframe</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>audio&gt;</span></pre></div></div>

<p>Der Parameter &#8220;controls&#8221; gibt an, dass der Player Bedienschalter haben soll. Weitere mögliche Optionen sind &#8220;autoplay&#8221;, &#8220;loop&#8221; und &#8220;preload&#8221;. Die &#8220;source&#8221; Tags zeigen auf die Audio Files. Mehrere von diesen sind auch notwendig, da jeder Browser seine eigenen Vorstellungen von den zu unterstützenden Codecs hat. Wenn man die Codecs <em>OGG Vorbis</em> und <em>MP3</em> benutzt, sollte das normalerweise reichen. Wie man bei diesem Beispiel hier sieht, habe ich noch ein Youtube Video eingebettet &#8211; falls ein Browser keiner dieser Codecs mag bzw. noch nicht den HTML5 Audio Tag versteht, wird auf den Flash Player zurückgegriffen. Man kann natürlich auch einfach einen Text oder Download Link anzeigen lassen.</p>
<p>Bei dem <strong>Video-Tag</strong> sieht es ähnlich aus:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;video <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;500&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;282&quot;</span> poster<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/medien/piratenspot.jpg&quot;</span> controls&gt;</span>
  <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/medien/piratenspot.webm&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;video/webm&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/medien/piratenspot.ogv&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;video/ogg&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/medien/piratenspot.mp4&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;video/mp4&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">iframe</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;YouTube video player&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;youtube-player&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;500&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;311&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.youtube.com/embed/SeVhqNEPt1U&quot;</span> <span style="color: #000066;">frameborder</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> allowFullScreen&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">iframe</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>video&gt;</span></pre></div></div>

<p>Hier habe ich dem Video eine Anzeigegröße (&#8220;width&#8221; und &#8220;height&#8221;), ein Vorschaubild (&#8220;poster&#8221;) und wieder die Bedienelemente (&#8220;controls&#8221;) vorgeschrieben. Noch weitere Optionen sind möglich. Dann werden wieder per &#8220;source&#8221; die Dateien angegeben. Hier ist es fast noch schlimmer als beim Audio Tag. Ich würde hier empfehlen die Codes <em>WebM</em>, <em>OGG Theora</em> und <em>H264</em> zu nutzen. Wahrscheinlich wird sich WebM durchsetzen &#8211; bisher kann dies aber erst <em>Chrome</em> und die <em>Firefox 4 Beta</em>. Ebenfalls habe ich hier wieder ein <em>Youtube</em> Video als Fallback drin.</p>
<p>Das ganze sieht schon ganz nett aus. Wie ich gesehen hatte, kann man mit <em>CSS</em> und <em>Java Script</em> die Player anpassen. Probiert habe ich es aber noch nicht. Als Beispiel kann man hier <em>Youtube</em> nennen. Deren HTML5 Player wurden angepasst (sofern man die <a href="http://www.youtube.com/html5">HTML5 Beta</a> aktiviert hat).</p>
<p>Nun möchte ich aber auch mal zu den <strong>Problemen</strong> kommen.</p>
<p>Ein Problem hatte ich ja schon angesprochen: Man muss derzeit mehrere Dateien in verschiedenen Codecs anbieten, wenn man alle möglichen Browser bedienen möchte. Das nächste große Problem sehe ich derzeit bei <em>Chrome</em>. Dieser lädt die Dateien immer vor, auch wenn man dies nicht in den Optionen aktiviert hatte. Dies kann man auch nicht ausstellen. Wenn man nur ein Video bzw. nur eine Audio Datei auf einer Seite hat, stört das ja nicht so. Aber wenn man wie bei dem Beispiel auf der Seite der <em>Piratenpartei Sachsen-Anhalt</em> gleich mehrere solche Dateien einbinden, stört das schon. Zum einen hat der Webseiten Betreiber mehr Traffic (nicht jeder guckt/hört sich alles an) &#8211; zum anderen wird die Leitung des Besuchers unnötig belastet.</p>
<p>Und wenn man schon dabei ist, mehrere Dateien einzubinden, ist das ein lästiges rumgehüpfe im <em>Firefox</em> (weiß nicht wie es bei den anderen ist) &#8211; zumindest, wenn man Audio Tags benutzt. Erst lädt der Browser anscheinend Informationen zu den Dateien und dann lässt er den Player wieder verkleinern. Das ist schon bisschen nervig.</p>
<p>Dann kommt noch hinzu, dass diese Tags keine Playlists unterstützen. Dies lässt sich nur per <em>Java Script</em> machen, was ich aber nicht so schön finde. Mehrere Leute (vor allem Piraten) benutzen die <em>Firefox</em> Erweiterung &#8220;<em>NoScript</em>&#8221; oder manche haben erst gar kein Java Script an.</p>
<p>Aus diesen Gründen habe ich bei dem <em>Wahlportal der Piratenpartei Sachsen-Anhalt</em> (noch nicht offiziell gestartet) nun doch wieder auf einen Flash Player zurückgegriffen. Hoffe mal, dass sich das bald bessert.<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/02/audio-video-tag-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>auf WordPress migriert</title>
		<link>http://blog.cgiesel.de/2011/02/auf-wordpress-migriert/</link>
		<comments>http://blog.cgiesel.de/2011/02/auf-wordpress-migriert/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 22:24:47 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false">http://blog.cgiesel.de/?p=140</guid>
		<description><![CDATA[Ich habe es nun gewagt und bin von Drupal auf WordPress umgestiegen. Dies hat ein paar Gründe, worauf ich aber in einem separaten Artikel eingehen möchte. Geholfen hat mir die Anleitung von Social CMS Buzz. Das Problem dabei war nur, dass mein Drupal schon die Version 7 war und ich somit die SQL Befehle anpassen [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe es nun gewagt und bin von Drupal auf WordPress umgestiegen. Dies hat ein paar Gründe, worauf ich aber in einem separaten Artikel eingehen möchte.</p>
<p>Geholfen hat mir die Anleitung von <a href="http://socialcmsbuzz.com/convert-import-a-drupal-6-based-website-to-wordpress-v27-20052009/">Social CMS Buzz</a>. Das Problem dabei war nur, dass mein Drupal schon die Version 7 war und ich somit die SQL Befehle anpassen musste.<span id="more-140"></span></p>
<p>Da ich bei meinem alten Blog keine Tags benutzt hatte, habe ich einfach die Abschnitte &#8220;Taxonomy Terms&#8221; und &#8220;Post and Category Relations Query&#8221; übersprungen. Diese müssten bei Bedarf aber auch angepasst werden, da sich die Tabellen geändert haben.</p>
<p>Hier die Anpassungen für den Abschnitt &#8220;Post Content&#8221;:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span>
    wp_posts <span style="color: #66cc66;">&#40;</span>id<span style="color: #66cc66;">,</span> post_date<span style="color: #66cc66;">,</span> post_content<span style="color: #66cc66;">,</span> post_title<span style="color: #66cc66;">,</span>
    post_excerpt<span style="color: #66cc66;">,</span> post_name<span style="color: #66cc66;">,</span> post_modified<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">DISTINCT</span>
    n<span style="color: #66cc66;">.</span>nid<span style="color: #66cc66;">,</span> FROM_UNIXTIME<span style="color: #66cc66;">&#40;</span>created<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> body_value<span style="color: #66cc66;">,</span> n<span style="color: #66cc66;">.</span>title<span style="color: #66cc66;">,</span>
    body_summary<span style="color: #66cc66;">,</span>
    <span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">LOWER</span><span style="color: #66cc66;">&#40;</span>n<span style="color: #66cc66;">.</span>title<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">' '</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'-'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'.'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'-'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">','</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'-'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'+'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'-'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
    FROM_UNIXTIME<span style="color: #66cc66;">&#40;</span>changed<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">FROM</span> drupal_node n<span style="color: #66cc66;">,</span> drupal_node_revision r<span style="color: #66cc66;">,</span> drupal_field_revision_body f
<span style="color: #993333; font-weight: bold;">WHERE</span> n<span style="color: #66cc66;">.</span>vid <span style="color: #66cc66;">=</span> r<span style="color: #66cc66;">.</span>vid <span style="color: #993333; font-weight: bold;">AND</span> f<span style="color: #66cc66;">.</span>revision_id <span style="color: #66cc66;">=</span> r<span style="color: #66cc66;">.</span>vid;</pre></td></tr></table></div>

<p>und hier die für die Kommentare:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> wp_comments <span style="color: #66cc66;">&#40;</span>comment_post_ID<span style="color: #66cc66;">,</span> comment_date<span style="color: #66cc66;">,</span> comment_content<span style="color: #66cc66;">,</span> comment_parent<span style="color: #66cc66;">,</span> comment_author<span style="color: #66cc66;">,</span> comment_author_email<span style="color: #66cc66;">,</span> comment_author_url<span style="color: #66cc66;">,</span> comment_approved<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> nid<span style="color: #66cc66;">,</span> FROM_UNIXTIME<span style="color: #66cc66;">&#40;</span>created<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> comment_body_value<span style="color: #66cc66;">,</span> thread<span style="color: #66cc66;">,</span> name<span style="color: #66cc66;">,</span> mail<span style="color: #66cc66;">,</span> homepage<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">STATUS</span> <span style="color: #993333; font-weight: bold;">FROM</span> drupal_comment c<span style="color: #66cc66;">,</span> drupal_field_data_comment_body f
<span style="color: #993333; font-weight: bold;">WHERE</span> c<span style="color: #66cc66;">.</span>cid <span style="color: #66cc66;">=</span> f<span style="color: #66cc66;">.</span>entity_id;</pre></td></tr></table></div>

<p>Den Rest kann man wiederverwenden.</p>
<p>Sollte man mal ein Skript oder ähnliches zur &#8220;Drupal -> WordPress&#8221; Migration erstellen wollen, dann wäre es ratsam die Querys ein wenig zu erweitern &#8211; so z.B. die Autoren eintragen oder zwischen Artikel und Seite unterscheiden. Außerdem bin ich mir mit &#8220;drupal_field_revision_body&#8221; und dem JOIN nicht ganz so sicher &#8211; hat zumindest bei meinen wenigen Artikeln funktioniert.</p>
<p>Achja: Ein neues Design habe ich auch. Dieses habe ich mit freundlicher Genehmigung von der <a href="http://www.piratenpartei-stuttgart.de">Piratenpartei Stuttgart</a> kopiert und als WordPress Theme umgesetzt. Diese Umsetzung hat noch ein paar kleine Bugs. Der Hintergrund ist eine Panorama Ansicht von Stuttgart &#8211; dieses muss ich auch noch ändern. ^^<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/02/auf-wordpress-migriert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xorg X server und der fade-out Bug (Update: 02. März 2011)</title>
		<link>http://blog.cgiesel.de/2011/02/xorg-x-server-und-der-der-fade-out-bug/</link>
		<comments>http://blog.cgiesel.de/2011/02/xorg-x-server-und-der-der-fade-out-bug/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 17:23:11 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Seit nun mindestens einem halben Jahr bin ich nun von Ubuntu weg und benutze Arch Linux auf drei PCs. Man mag es kaum glauben: Trotz Rolling Release und Eigenkonfiguration des Systems, habe ich weniger Probleme bzw. Bugs als bei Ubuntu. Das liegt vor allem daran, dass man bei Arch nicht auf die Patches des Distributors [...]]]></description>
			<content:encoded><![CDATA[<p>Seit nun mindestens einem halben Jahr bin ich nun von Ubuntu weg und benutze <a href="http://www.archlinux.org">Arch Linux</a> auf drei PCs. Man mag es kaum glauben: Trotz <a href="http://de.wikipedia.org/wiki/Rolling_Release">Rolling Release</a> und Eigenkonfiguration des Systems, habe ich weniger Probleme bzw. Bugs als bei Ubuntu. Das liegt vor allem daran, dass man bei Arch nicht auf die Patches des Distributors angewiesen ist. So sind sehr schnell die aktuellen Versionen der Pakete im Repository.<span id="more-112"></span></p>
<p>Problem bei der Sache ist aber, dass Arch selten eigene Patches in den Paketen einfügt. So kam es nun, dass der X Server schon ziemlich lange den Bug hat, dass man das &#8220;langsame schwarz werden des Monitors&#8221; nicht durch Maus oder Tastatur unterbrechen kann. Aufgefallen ist mir das auch nie, da Ubuntu und Fedora diesen Patch in ihrem Paket vom X Server drin haben.</p>
<p>Glücklicherweise wurde ich in einem Blogpost auf <a href="http://suckup.de/blog/2011/01/25/arch-linux-installation/">suckup.de</a> auf ein <a href="https://bugzilla.redhat.com/show_bug.cgi?id=612620">Ticket im Bug Tracker von Red Hat</a> hingewiesen. Dort ist ein Patch enthalten.</p>
<p>Da habe ich mir einfach mal die <a href="http://projects.archlinux.org/svntogit/packages.git/tree/xorg-server/trunk/">PKGBUILD Datei</a> vom <a href="http://www.archlinux.org/packages/?q=xorg-server">xorg-server Paket</a> genommen und den Patch eingebaut. Alle Dateien findet ihr im Anhang. Wenn ihr das Paket ebenfalls bauen wollt, dann ladet euch dar Archiv einfach runter, entpackt es, führt &#8220;makepkg -s&#8221; aus und wartet bis es fertig kompiliert ist. Dann schaut man am besten nach, welche Pakete man installiert hat: &#8220;pacman -Qm xorg-server&#8221; und installiert die neuen. Eventuell bau ich mal ein kleines Repository &#8211; mal schauen.</p>
<p>So, nun wollte ich die PKGBUILD (+ zusätzliche Dateien) beim <a href="http://aur.archlinux.org">AUR</a> hochladen. Dabei bekam ich aber die Fehlermeldung, dass der Paketname nur aus kleinen Buchstaben bestehen durfte &#8211; waren sie aber alle. Im <a href="https://bugs.archlinux.org/task/16394?project=2">Bug Tracker vom AUR </a> konnte ich dann nachlesen, dass Split Packages nicht funktionieren. Diese ermöglichen es mit einem einzigen PKGBUILD mehrere Pakete zu erstellen &#8211; wie hier beim xorg-server. Naja, theoretisch könnte man das zu einem Paket umbauen, aber das gefällt mir nicht so. Daher habe ich einfach hier mal von berichtet und hoffe, dass man das über die Suchmaschinen findet.</p>
<p><strong>Update (1. März 2011):</strong> Es wurde vor ein paar Tagen die Version 1.10.0 des X Servers released. Das &#8220;x-org-server&#8221; Paket wurde bei Arch Linux noch nicht aktualisiert. Außerdem wird ab Version 1.10.0 nun &#8220;xextproto&#8221; ab Version 7.2.0 benötigt (am 27. Februar 2011 released). Dieses Paket ist auch noch nicht bei Arch Linux aktuell, weshalb ich hier ebenfalls ein Source Package hochgeladen und verlinkt habe.</p>
<p><strong>Update (2. März 2011):</strong> Beim Booten habe ich bemerkt, dass der X Server bei der Version 1.10.0 nicht starten will. Daher rate ich von der Installation ab bzw. rate zur Version 1.9.4.</p>
<p><strong>Download Source Package (1.9.4-1):</strong> <a href="/wp-content/uploads/xorg-server-fadeoutfix-1.9.4-1.src.tar.gz">xorg-server-fadeoutfix</a> (aktuelle Version in Arch Linux)<br />
<del datetime="2011-03-02T08:36:56+00:00"><strong>Download Source Package (1.10.0-1):</strong> <a href="/wp-content/uploads/2011/02/xorg-server-fadeoutfix-1.10.0-1.src.tar.gz">xorg-server-fadeoutfix</a> (benötigt <a href="/wp-content/uploads/2011/02/xextproto-7.2.0-1.src.tar.gz">xextproto 7.2.0</a> und eins von den folgenden Paketen: lynx, w3m oder links)</del><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/02/xorg-x-server-und-der-der-fade-out-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>marego, die Bahn und die ermäßigte Monatskarte</title>
		<link>http://blog.cgiesel.de/2011/02/marego-die-bahn-und-die-ermasigte-monatskarte/</link>
		<comments>http://blog.cgiesel.de/2011/02/marego-die-bahn-und-die-ermasigte-monatskarte/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 12:21:38 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Seit dem 12. Dezember 2010 gibt es nun in Magdeburg und Umgebung den Verkehrsverbund marego. Dieser löste den Verkehrsverbund Magdeburg Umland (MUM) ab. Zu deren Verbundgebiet zählt unter anderem das Jerichower Land mit der Nahverkehrsgesellschaft Jerichower Land mbH. Da ich Student bin und noch bei meinen Eltern wohne, fahre ich jeden Tag mit der Bahn [...]]]></description>
			<content:encoded><![CDATA[<p>Seit dem 12. Dezember 2010 gibt es nun in Magdeburg und Umgebung den <a href="http://www.marego-verbund.de">Verkehrsverbund marego</a>. Dieser löste den Verkehrsverbund Magdeburg Umland (MUM) ab. Zu deren Verbundgebiet zählt unter anderem das Jerichower Land mit der <a href="http://www.njl-burg.de">Nahverkehrsgesellschaft Jerichower Land mbH</a>.</p>
<p>Da ich Student bin und noch bei meinen Eltern wohne, fahre ich jeden Tag mit der Bahn von Möckern nach Magdeburg und zurück. Da lohnt sich auf jeden Fall ein Monatsticket. Als Student ist dies sogar ermäßigt.</p>
<p>Bevor es marego gab, habe ich dafür ungefähr 79€ bezahlt. Das ist billiger als wenn ich mir ein Auto kaufe und dieses benutze. Ein MUM Ticket lohnte sich nicht, da es deutlich teurer war. Seit es marego gibt, bezahle ich <a href="http://www.marego-verbund.de/index.php/tarif/fahrpreis.html">nur noch 71,50€</a>.<span id="more-111"></span></p>
<p>Um eine ermäßigte Karte benutzen zu können, brauchte ich bei der Bahn immer eine Berechtigungskarte. Dort war mein Name, Start, Ziel, Gültigkeitszeitraum, Unterschrift und normalerweise ein Stempel der Bildungseinrichtung drauf. Diese musste ich mir jedes Semester neu im DB Reisezentrum holen (also Nummer ziehen, warten, ausfüllen, abstempeln lassen). Schon dort gab es Probleme. Mehrere Mitarbeiter sagten mir, dass meine Universität kein Stempel mehr drauf setzt. Deshalb soll man immer die Immatrikulationsbescheinigung dabei haben. Also hatte ich jedes mal drei Dokumente zum zeigen in der Bahn (Monatsticket, Berechtigungsschein und Imma Bescheinigung). Das ging oft gut, aber manchmal meinten irgendwelche Zugbegleiter, dass da trotzdem ein Stempel drauf muss.</p>
<p>Als nun marego für mich in Frage kam, schaute ich mir die <a href="http://www.marego-verbund.de/index.php/tarif/befoerderungsbedingungen-und-tarifbestimmungen.html">Beförderungsbedingungen</a> an. Auf Seite 28 im zweiten Absatz des Paragraphen 5.2 steht hierzu:</p>
<blockquote><p>Wochen- und Monatskarten zum ermäßigten Fahrpreis sind personengebunden und damit nicht übertragbar. Sie gelten nur in Verbindung mit einem gültigen Schülerausweis, einem <strong>gültigen Studentenausweis</strong> oder einer gültigen Berechtigungskarte. Diese müssen mit vollständigen Personaldaten, einem auf der Karte nicht ablösbar, fest aufgeklebten Lichtbild und der Bestätigung der Bildungseinrichtung je Schul- und Ausbildungsjahr versehen sein.</p></blockquote>
<p>Dies freute mich natürlich. Ich brauchte ab sofort nur noch meinen Studentenausweis zeigen. Die Kriterien erfüllt dieser auch: Mein Name, ein Bild, welches ich nicht ablösen kann, und der Gültigkeitszeitraum sind drauf.</p>
<p>Nun, aber die Bahn wäre ja nicht die Bahn, wenn sie geschultes Personal auf die Fahrgäste loslassen. Es ist ja so, dass fast immer unterschiedliche Kontrolleure mitfahren. Irgendwann sieht man sie natürlich  alle wieder, aber das kann schon ein paar Wochen dauern. Mehre gucken nur ein wenig komisch zum Studentenausweis, aber sind damit zufrieden. Jetzt hatte ich aber schon drei Erlebnisse, wo die Zugbegleiter meinten es besser zu wissen.</p>
<p>Beim ersten Mal sagte mir eine fast zu freundliche Frau, dass ich eine Berechtigungskarte brauche. Ihr hatte ich dann gesagt, dass es nach den Beförderungsbedingungen auch ein Studentenausweis reicht. Sie wollte mir irgendwie erklären, wieso das da wohl eher nicht steht. Jedenfalls hat sie dann nachgeschaut, aber erst nichts finden können. In ihrem Hefter (der viel besser aufgebaut ist als die Beförderungsbedingungen, die man im Internet findet) hatte sie es dann doch gefunden und bedankte sich sogar bei mir, dass sie was neues gelernt hatte.</p>
<p>Ich dachte mir also, dass ich mir die Bedingungen einfach mal ausdrucke, so dass ich meine Aussage auch belegen kann. Letztens hatte ich die Zettel aber ausgepackt, weil ich ein wenig Platz im Rucksack brauchte. Aber das war mein Fehler. Denn genau an dem Tag meinte wieder eine Frau (die aber nicht so nett wirkte wie die erste), dass ich eine Berechtigungskarte brauche. Ihr sagte ich das dann auch, aber sie war sich auch sehr sicher, dass es so nicht drin stand &#8211; wollte aber selber nachgucken. Da ich mein Netbook eh gerade an hatte, rief ich schon die PDF Datei auf, aber sie kam nie wieder zurück bzw. ging bei mir nur vorbei. Entweder hatte sie es vergessen oder ihr war es peinlich.</p>
<p>Gestern war nun das dritte Mal &#8211; wieder eine Frau. Sie war schon weiter als ihre Vorgänger. Sie wusste irgendwie, dass da was wegen Studentenausweis drin steht. Aber sie meinte dann gleich, dass ich mir doch so eine Berechtigungskarte holen soll, weil das eigentlich in den Bedingungen so komisch drin steht. Keine Ahnung wie sie auf die Idee kommt. Ich hatte mir jetzt den obigen Absatz noch einmal durchgelesen und sehe nicht, wieso ich so eine Karte zusätzlich brauche.</p>
<p>Auf jeden Fall werde ich so lange wie es geht versuchen zu vermeiden eine Berechtigungskarte zu holen. Wieso auch? In den Bedingungen steht es richtig verständlich drin. Und ich sehe diese als Art Vertrag, die ich mit dem Unternehmen abgeschlossen habe. Wenn sie diesen brechen, werden sie Probleme bekommen. Lieber sollte die Bahn ihre Mitarbeiter schulen.</p>
<p>Generell finde ich die marego ziemlich überstürzt. Bei unserem Bahnautomaten bekommt man fast nur noch deren Tickets. Diese müssen bei Fahrtantritt in so einem grünen Kasten &#8211; wie bei der Straßenbahn &#8211; abgestempelt werden. Nur gibt es noch nicht über all welche. Selbst auf dem Magdeburger Hauptbahnhof nur auf wenigen Gleisen. Hier in Möckern gibt es das Ding erst seit kurzer Zeit. Seit letzter Woche steckt dort nun ein dickes Papier oder ähnliches drin, so dass dieser nicht funktionsfähig ist. Die Busse haben seit Beginn auch diese Tickets. Ein Busfahrer beschwerte sich nur über das Ganze. Bei jedem Ticketkauf holen die ein Zettel raus &#8211; entweder steht dort irgend eine Nummer drauf, die sie eingeben müssen oder gucken, wie viel Zonen durchgefahren werden. Außerdem gibt es keine Gruppenkarten mehr. Meine ehemalige Lehrerin meinte schon, dass es sich jetzt nicht mehr lohnt, vorher diese zu kaufen (die Bahn bzw. die Busunternehmen können sich also nicht mehr drauf einstellen). Zur Umstellung gab es wohl auch Probleme mit dem Ticketverkauf &#8211; so konnte sie nicht im vornherein die Karten kaufen.</p>
<p>Auch so glänzt die Bahn nicht mit Kundenfreundlichkeit. Die Automaten im Zug funktionieren sehr oft nicht. Letztens hing der eine noch im Bootscreen fest. Am nächsten morgen sah dies genau so aus, wie am Vortag. Das Menü der Bahnautomaten sieht auch katastrophal aus. Hier in Sachsen-Anhalt (glaube auch in den anderen Neuen Bundesländern) gibt es das Hopperticket, womit man 50km hin und zurück für glaube ungefähr 6,50€ fahren kann. Dieses ist seit der Automatenumstellung im letzten Jahr nun völlig versteckt &#8211; ich musste anderen Fahrgästen das schon mehrfach zeigen. Seit dem marego Tarif sieht das Menü noch schlimmer aus. Seit dem jährlichen Fahrplanumstellung fährt die Bahn nur noch alle zwei Stunden (für die weggefallenen Zeiten gibt es aber Schienenersatzverkehr), aber dafür noch langsamer (bei manchen Abschnitten nur 30km/h). Begründet wird dies mit dem schlechten Zustand der Strecke und der geringen Nachfrage.</p>
<p>Wie man jetzt beim Bahnunglück nähe Oschersleben sah und auch den Problem mit den ICEs, war es wohl ein Fehler, dass die Bahn eine Aktiengesellschaft wurde. Diese ist wohl nur noch auf Profit aus und vernachlässigt den notwendigen Ausbau. Ich bin gespannt, wie lange dies noch gut geht.<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2011/02/marego-die-bahn-und-die-ermasigte-monatskarte/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bottloader GRUB auf USB Stick installieren (oostubs)</title>
		<link>http://blog.cgiesel.de/2010/11/bottloader-grub-auf-usb-stick-installieren-oostubs/</link>
		<comments>http://blog.cgiesel.de/2010/11/bottloader-grub-auf-usb-stick-installieren-oostubs/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 22:22:53 +0000</pubDate>
		<dc:creator>Christoph</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Da ich zur Zeit in dem Fach Betriebssysteme an der Uni selber ein Betriebssystem (oostubs) programmiere und dieses auch mal auf realer Hardware testen wollte, habe ich mir auf einem USB Stick den Bootloader GRUB installiert. Da viele Kommilitonen das auch machen wollen, erkläre ich es einfach mal.]]></description>
			<content:encoded><![CDATA[<p>Da ich zur Zeit in dem Fach Betriebssysteme an der Uni selber ein Betriebssystem (oostubs) programmiere und dieses auch mal auf realer Hardware testen wollte, habe ich mir auf einem USB Stick den Bootloader GRUB installiert. Da viele Kommilitonen das auch machen wollen, erkläre ich es einfach mal.<span id="more-110"></span></p>
<p>Also als aller erstes braucht ihr ein Linux und müsst es gebootet haben (geht auch ohne, aber ich möchte diesen Weg erklären).</p>
<p>Als erstes wäre es interessant zu wissen, welche grub Version ihr installiert habt. Dafür gibt man in der Konsole einfach mal folgendes ein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">grub <span style="color: #660033;">--version</span></pre></div></div>

<p>Wenn dort irgend etwas von <strong>0.9</strong> steht, dann ist es <strong>GRUB Legacy</strong> und wenn dort etwas ähnliches wie <strong>1.9</strong> steht, dann ist es <strong>GRUB2</strong>. Dies ist zumindest wichtig für die spätere Erstellung der Booteinträge.</p>
<p>Nun fangen wird mit dem formatieren des USB Sticks an. <strong>Grub Legacy</strong> unterstützt in der aktuellsten Version folgende Dateisysteme:</p>
<blockquote><p>ext2, ext3, UFS, UFS2, ReiserFS, FAT, NTFS, ISO9660, JFS, Minix, FFS, XFS </p></blockquote>
<p><strong>GRUB2</strong> unterstützt zusätzlich noch ext4.</p>
<p>Da ich annehme, dass hier ein Windows User dies durchführen möchte, würde ich einfach mal FAT32 empfehlen.</p>
<p>Unter Linux rate ich dazu <strong>GParted</strong> für die Formatierung zu nutzen. Falls es nicht installiert ist, einfach im Paketmanager nachinstallieren. Um die Partitionen z.B. mit FAT formatieren zu können, wird meistens noch das Paket <strong>dosfstools</strong> benötigt. Danach einfach GParted starten, oben rechts den USB Stick auswählen und dann einfach weiter machen. Das Programm ist eigentlich recht leicht zu bedienen (bitte aufpassen, dass die richtige Festplatte ausgewählt ist und dran denken, dass beim Formatieren alle Daten verloren gehen). Das <strong>Boot Flag</strong> ist <ins>nicht</ins> nötig.</p>
<p>Dann bitte die formatierte Partition mounten (z.B. im Dateibrowser). Jetzt brauchen wir einmal die Adresse des USB Sticks. Dies steht z.B. bei GParted oben rechts (z.B. /dev/sdb). Ebenso wird der Mountpoint des USB Sticks benötigt. Dies sollte im Dateibrowser stehen &#8211; den Pfad kann man dort leicht über <strong>Strg+L</strong> anzeigen lassen. Alternativ gibt man in der Konsole</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mount</span></pre></div></div>

<p>ohne Optionen ein. Dort werden alle gemounteten Devices angezeigt. Dort guckt man bei dem USB Stick Device nach (also /dev/sdb oder was es bei euch ist). Es sollte meistens ein Unterordner von &#8216;<strong>/media/</strong>&#8216; sein z.B. &#8216;<strong>/media/usbstick</strong>&#8216;.</p>
<p>Nun fahren wir fort und können gleich in der Konsole loslegen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">grub-install <span style="color: #660033;">--no-floppy</span> <span style="color: #660033;">--root-directory</span>=<span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>usbstick <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sdb</pre></div></div>

<p>Die Pfade sollte man natürlich anpassen. Bitte pass auf, dass es wirklich die richtigen Pfade/Geräte sind. Sonst überschreibst du evtl. noch irgendwas auf deiner Festplatte.</p>
<p>Bei diesem Befehl haben wir nun GRUB im <strong>Master Boot Record</strong> (MBR) und auf dem Dateisystem (unter /media/usbstick/boot/) des USB Sticks installiert. Wie das mit dem Bootloader funktioniert, kann man z.B. bei <a href="http://de.wikipedia.org/wiki/Bootloader">Wikipedia</a> nachlesen.</p>
<p>Als nächstes müssen wir die Booteinträge anlegen. Dazu zeige ich, wie es funktioniert, wenn man <strong>oostubs</strong> starten will. Ich werde in den Beispieldateien mehrere Einträge angeben, da die Reihenfolge und Anzahl der Festplatten unterschiedlich ist. Solltest du noch mehr Festplatten haben, erstelle analog noch mehr Einträge. Bitte beachte, dass ich davon ausgehe, dass auf dem USB Stick nur eine Partition ist. Gegebenenfalls muss bei z.B. &#8220;(hd0,0)&#8221; die zweite Zahl erhöht werden (halt die wievielte Partition).</p>
<p>Ab jetzt wird es wichtig, welche GRUB Version installiert ist:</p>
<p><strong><u>GRUB Legacy</u></strong></p>
<p>Erstelle auf dem Dateisystem des USB Sticks unter &#8220;boot/grub/&#8221; die Datei &#8220;menu.lst&#8221; und trage folgendes ein:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">title oostubs <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
root <span style="color: #7a0874; font-weight: bold;">&#40;</span>hd0,<span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
kernel <span style="color: #000000; font-weight: bold;">/</span>oostubs
&nbsp;
title oostubs <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
root <span style="color: #7a0874; font-weight: bold;">&#40;</span>hd1,<span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
kernel <span style="color: #000000; font-weight: bold;">/</span>oostubs</pre></td></tr></table></div>

<p>Bitte ersetze &#8220;oostubs&#8221; mit dem Namen deiner Betriebssystemdatei. Hier ist es wichtig, dass alles klein geschrieben wird (also z.B. anstatt &#8220;DO9-23&#8243; schreibst du &#8220;do9-23&#8243;, auch wenn deine Datei groß geschrieben ist).</p>
<p><strong><u>GRUB2</u></strong></p>
<p>Erstelle auf dem Dateisystem des USB Sticks unter &#8220;boot/grub/&#8221; die Datei &#8220;grub.cfg&#8221; und trage folgendes ein:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">menuentry <span style="color: #ff0000;">&quot;oostubs (1)&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">root</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span>hd0,<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
linux <span style="color: #000000; font-weight: bold;">/</span>oostubs
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
menuentry <span style="color: #ff0000;">&quot;oostubs (2)&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">root</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span>hd1,<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
linux <span style="color: #000000; font-weight: bold;">/</span>oostubs
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

<p>Wie man hier sieht, hat sich die Datei und die Syntax geändert. Beachte bitte auch, dass die Partitionen nun ab &#8220;1&#8243; anstatt &#8220;0&#8243; gezählt werden.</p>
<p>Bitte hier wieder &#8220;oostubs&#8221; mit dem passenden Namen ersetzen.</p>
<hr style="margin: 15px" />
<p>Nun muss man nur noch die Betriebssystemdatei in das Rootverzeichnis des USB Sticks kopieren und fertig ist es. Probiere es doch einfach mal aus. Denke dran, dass der USB Stick im BIOS (meist über F2 oder &#8220;Entfernen&#8221; beim Booten zu erreichen) in der Boot Reihenfolge berücksichtigt wird (also vor allen anderen). Bei manchen BIOS Versionen ist es so, dass USB Sticks als Festplatten erkannt werden und nicht zu &#8220;Removable Devices&#8221; zählen.</p>
<p>Sollte dort das Booten mit dem ersten Booteintrag nicht funktionen einfach auf &#8220;Esc&#8221; drücken und nächsten auswählen. Falls mehr Festplatten installiert sind, kann man z.B. über &#8220;E&#8221; die Einträge (temporär) ändern.<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cgiesel.de/2010/11/bottloader-grub-auf-usb-stick-installieren-oostubs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.650 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2011-12-21 06:54:56 -->
<!-- Compression = gzip -->
