<?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>PINC-Blog &#187; Genshi</title>
	<atom:link href="http://www.pincservices.de/wordpress/tag/genshi/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pincservices.de/wordpress</link>
	<description>yet another developer blog</description>
	<lastBuildDate>Sat, 10 Sep 2011 07:53:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Und plötzlich war alles dunkel &#8230;</title>
		<link>http://www.pincservices.de/wordpress/und-plotzlich-war-alles-dunkel</link>
		<comments>http://www.pincservices.de/wordpress/und-plotzlich-war-alles-dunkel#comments</comments>
		<pubDate>Sat, 14 Nov 2009 09:40:03 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Projektverwaltung]]></category>
		<category><![CDATA[Werkzeuge]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Genshi]]></category>
		<category><![CDATA[gtk+]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=343</guid>
		<description><![CDATA[Ich weiss nicht, was passiert ist, aber nach dem Upgrade von Ubuntu auf 9.10 wurden diverse Entwickler-Tools unbenutzbar. Dabei handelt es sich insbesondere um Anwendungen, die nicht direkt aus dem Ubuntu-Repository stammen. Im Folgenden will ich auf Eclipse und Trac eingehen. Eclipse 3.5 Nachdem auf GTK+ 2.18 aktualisiert wurde, funktionieren diverse Buttons in Eclipse nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Ich weiss nicht, was passiert ist, aber nach dem Upgrade von Ubuntu auf 9.10 wurden diverse Entwickler-Tools unbenutzbar. Dabei handelt es sich insbesondere um Anwendungen, die nicht direkt aus dem Ubuntu-Repository stammen. Im Folgenden will ich auf Eclipse und Trac eingehen.</p>
<h3>Eclipse 3.5</h3>
<p>Nachdem auf GTK+ 2.18 aktualisiert wurde, funktionieren diverse Buttons in Eclipse nicht mehr. Schnell wird man dank Google auf der Suche nach einem Fix bzw. Workaround fündig (<a href="http://library.gnome.org/devel/gtk/2.18/gtk-migrating-ClientSideWindows.html">Migrating to client-side windows</a>). Offensichtlich ist die Umgebungsvariable <code>GDK_NATIVE_WINDOWS</code> für das Problem verantwortlich. Diese muss auf den Wert <code>true</code> gesetzt werden, damit SWT-basierte Java-Oberflächen (Anmerkung: auch andere Java-Applikationen mit SWT haben das Problem) wieder in altem Glanz erstrahlen.</p>
<pre class="brush: bash;">
#!/bin/bash
env GDK_NATIVE_WINDOWS=true &lt;your/eclipse/path&gt;/eclipse
</pre>
<p><em>(Den Pfad <code>&lt;your/eclipse/path&gt;</code> bitte an das jeweilige Installationsverzeichnis von Eclipse anpassen.)</em></p>
<p>Leider ist dies nur ein bescheidener Workaround, denn sobald man Eclipse aus sich heraus neu startet (z.B. nach Upgrades oder Plugin-Installationen) existiert das alte Problem wieder. Genauso, wenn man den Workspace versucht zu wechseln, da sich Eclipse auch hier herunterfährt und neu startet.</p>
<p>Ein richtiger Fix ist für die Version 3.5.2 angedacht bzw. soll in der 3.6 schon integriert sein, welche für die SDK-Variante bereits existiert. Nur für JEE-Developer wird es wohl noch etwas dauern.</p>
<p>Von einem globalen Umsetzen der Variable <code>GDK_NATIVE_WINDOWS</code> wird an diversen Stellen explizit abgeraten. Hier sei aber anzumerken, dass die Eclipse-Installation aus den Ubuntu-Repositories genau das macht. Für alle, die etwas &#8220;wagemutiger&#8221; sind hier das Startskript mit <code>export</code>.</p>
<pre class="brush: bash;">
#!/bin/sh

# work around e#290395 / LP: #458703
export GDK_NATIVE_WINDOWS=true

xuldir=/usr/lib/xulrunner-$(/usr/bin/xulrunner-1.9.1 --gre-version)
LD_LIBRARY_PATH=$xuldir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} &lt;your/eclipse/path&gt;/eclipse
 &quot;$@&quot;
</pre>
<p><em>(Den Pfad <code>&lt;your/eclipse/path&gt;</code> bitte an das jeweilige Installationsverzeichnis von Eclipse anpassen.)</em></p>
<p>Dieses Skript am besten unter <code>/usr/local/bin</code> als <code>eclipse</code> ablegen und alle Links, die vorher direkt auf die Eclipse-Startdatei gegangen sind auf dieses Skript umbiegen.</p>
<h3>Trac</h3>
<p>Interessanterweise &#8211; was die primäre Motivation für diesen Kurzkommentar war &#8211; hat es auch das Bugtracking-Tool Trac erwischt. Zum Glück nicht so &#8220;heftig&#8221; wie Eclipse, aber dafür umso unverständlicher. </p>
<p>Ich habe lokal Trac mittels <code>easy_install</code> installiert gehabt. Nach dem Upgrade auf Ubuntu 9.10 erhielt ich plötzlich auf allen Trac-Seiten einen 500-Fehler. Nach kurzem Suchen fand ich in der <code>error.log</code>-Datei von Apache (Pfad unter Ubuntu: <code>/var/log/apache2/error.log</code>) folgenden Eintrag:</p>
<pre class="brush: plain; light: true;">
... [error] [client 127.0.0.1] ImportError: No module named genshi, ...
</pre>
<p>Warum das Modul plötzlich nicht mehr vorhanden war kann ich zum aktuellen Zeitpunkt nicht erklären, aber das war noch nicht das Ende.</p>
<p>Just in dem Moment wo ich mit </p>
<pre class="brush: plain; light: true;">
sudo easy_install Genshi
</pre>
<p>das entsprechende Modul installieren wollte, quittierte mir Ubuntu die Nachricht, dass <code>easy_install</code> nicht existiert. Ein kurzer Blick in Synaptic unter <code>python-setuptools</code> bestätigte die Vermutung, dass das Paket nicht installiert war. Ich möchte an dieser Stelle nicht ausschließen, dass es beim Upgrade in der Liste der zu deinstallierenden Pakete dabei war, aber dennoch ärgerlich. Also war auch hier nachinstallieren angesagt. </p>
<p>Zum Glück fügte sich dann alles sehr schnell. Das Genshi-Modul installierte sich ohne Probleme.</p>
<p>Abschließend musste noch der Workaround für einen Bug (<a href="http://trac.edgewall.org/ticket/7526">http://trac.edgewall.org/ticket/7526</a>)  eingebaut werden. Einfach die <code>compat.py</code> im <code>functional/tests</code>-Ordner in <code>testcompat.py</code><br />
umbenennen und die <code>compat.pyc</code> in <code>compat.pyc.old</code> umbenennen oder gleich löschen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/und-plotzlich-war-alles-dunkel/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eigene Templates in Trac</title>
		<link>http://www.pincservices.de/wordpress/eigene-templates-in-trac</link>
		<comments>http://www.pincservices.de/wordpress/eigene-templates-in-trac#comments</comments>
		<pubDate>Sun, 16 Mar 2008 13:23:03 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Projektverwaltung]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Genshi]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=17</guid>
		<description><![CDATA[Tipps bei der Erstellung von individuellen Templates fÃ¼r Trac. ]]></description>
			<content:encoded><![CDATA[<p>Wer bereits ein größeres Programmierprojekt durchgeführt hat, wird die Erfahrung gemacht haben, dass man auf ein Bugtrackingsystem nicht wirklich verzichten kann.<br />
Im Beitrag <a href="http://www.pincservices.de/wordpress/10-im-kampf-jira-vs-trac">1:0 im Kampf JIRA vs. Trac</a> habe ich schon zwei solche Systeme angesprochen JIRA und Trac, wobei ich hier auf letzteres eingehen möchte.</p>
<p>Nachdem man sich mit diversen Funktionen und Plugins in Trac &#8220;angefreundet&#8221; hat, stellt sich meistens die grundlegende Frage: &#8220;Wie kann ich das Design von Trac so ändern, dass es zu meinem Projekt passt&#8221;. Das fängt beim Logo an und hört bei der Anzeige der Projektliste auf &#8211; insofern man mehrere Projekte hat.</p>
<p>Trac bietet hierfür auf der eigenen Projektseite auch ein <a href="http://trac.edgewall.org/wiki/TracInterfaceCustomization" target="_blank">Tutorial</a>, deshalb möchte ich hier nur eine kurze Einführung geben und dann auf ein paar Fallstricke bei der Individualiserung des Layouts eingehen, die in dem Tutorial nicht auftauchen. Auf das Ein- bzw. Ausblenden von Navigationspunkten oder die entsprechenden Verlinkungen wird hier nicht eingegangen.</p>
<p>Das Templatingsystem von Trac basiert auf <a href="http://genshi.edgewall.org/" target="_blank">Genshi</a>, einer Pythonbibliothek, die es erlaubt Text aus diversen Quellen für das Web aufzubereiten. Trac bedient sich hierbei vor allem des HTML-Parsers.</p>
<p>In dem Verzeichnis <em>trac/templates </em>unterhalb des Trac-Installationsverzeichnisses befinden sich alle html-Dateien für das Default-Template. Insbesondere die <em>layout.html</em> und die <em>index.html </em>sind hier relevant. Die layout.html bestimmt das Aussehen der projektspezifischen Seiten und die index.html die Seite für die Projektliste. Unter <em>trac/htdocs</em> befinden sich  die Bilder,  Javascript-Dateien und die CSS-Dateien.</p>
<p>Trac bietet pro Projekt diverse Stellen zur Individualisierung des Designs an. Eine eigene <em>site.html</em> im Verzeichnis <em>templates</em> und ein eigenes Verzeichnis <em>htdocs</em>, in der eine <em>style.css</em> angelegt werden kann.</p>
<p>Um das Layout der Projektliste anzupassen sollte man folgende Zeile in die Konfigurationsdatei vom Webserver (z.B. die <em>default</em> von Apache) schreiben</p>
<pre class="brush: python; light: true;">
SetEnv TRAC_ENV_INDEX_TEMPLATE &quot;/home/testUser/trac/templates/index.html&quot;
</pre>
<p>beim Setzen der Variable TRAC_ENV_INDEX_TEMPLATE muss darauf geachtet werden, dass sich das Verzeichnis <em>templates</em> nicht unterhalb des Elternverzeichnisses der Umgebungen (Environments) liegt. Wenn z.B. folgendes definiert ist</p>
<pre class="brush: python; light: true;">SetEnv TRAC_ENV_PARENT_DIR &quot;/home/testUser/trac/&quot;</pre>
<p> kommt es auf der Seite für die Projektliste (definiert durch die <em>index.html</em>) zu einer Fehlermeldung, dass die Datei <em>VERSION</em> für das Projekt templates fehlt. Aus diesem Grund sollte die Variable TRAC_ENV_PARENT_DIR auf ein anderes Verzeichnis zeigen. Z.B.</p>
<pre class="brush: python; light: true;">SetEnv TRAC_ENV_PARENT_DIR &quot;/home/testUser/trac/projects&quot;</pre>
<p>Nachdem diese Vorbereitungen getroffen sind, kann man daran gehen, die eigenen Templates zu entwerfen und umzusetzen.</p>
<p>Für projektspezifische Templates kann, wie bereits gesagt, die <em>site.html</em> verwendet werden. In dieser Datei ist vor allem der Ausdruck</p>
<pre class="brush: plain; light: true;">${select('*|text()')}</pre>
<p>relevant. Dieser wird in Verbindung mit</p>
<pre class="brush: python; light: true;">py:match=&quot;body&quot;</pre>
<p>verwendet und bedeutet soviel wie: &#8220;Nimm alle Subtags und jeden Text unterhalb vom Body-Tag&#8221;. Wenn man jetzt aber auf einzelne Elemente zugreifen möchte, z.B. nur den Content- oder den Main-Bereich, dann kann man folgenden Ausdruck verwenden:</p>
<pre class="brush: python; light: true;">${select('div[@id=&quot;main&quot;]|text()')}</pre>
<p>bzw.</p>
<pre class="brush: python; light: true;">${select('div/div[@id=&quot;content&quot;]|text()')}</pre>
<p>Der Ausdruck in der Select-Anweisung ist eine Untermenge von XPath (siehe hierzu <a href="http://genshi.edgewall.org/wiki/Documentation/0.4.x/xpath.html" target="_blank">Genshi XPath</a>).</p>
<p><strike>Leider bietet Trac scheinbar noch kein projektübergreifendes Templating an.</strike></p>
<p>[Update]</p>
<p>Es gibt doch eine Möglichkeit. Siehe hierzu <a href="http://www.pincservices.de/wordpress/projektubergreifende-templates-in-trac">diesen Beitrag</a>.</p>
<p>Weitere Informationen zum dem Thema befinden sich auf der Seite <a href="http://trac.edgewall.org/wiki/TracInterfaceCustomization" target="_blank">http://trac.edgewall.org/wiki/TracInterfaceCustomization</a>, sowie ein Beispiel auf <strike><a href="http://querdenker.kicks-ass.org/trac/querdenker/wiki/TracTemplating" target="_blank">http://querdenker.kicks-ass.org/trac/querdenker/wiki/TracTemplating</a></strike>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/eigene-templates-in-trac/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

