<?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; Allgemein</title>
	<atom:link href="http://www.pincservices.de/wordpress/category/allgemein/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pincservices.de/wordpress</link>
	<description></description>
	<lastBuildDate>Thu, 04 Mar 2010 19:21:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Griffon: Mit einem &#8220;Flügelschlag&#8221; außer Gefecht gesetzt</title>
		<link>http://www.pincservices.de/wordpress/griffon-mit-einem-flugelschlag-auser-gefecht-gesetzt</link>
		<comments>http://www.pincservices.de/wordpress/griffon-mit-einem-flugelschlag-auser-gefecht-gesetzt#comments</comments>
		<pubDate>Thu, 04 Mar 2010 19:20:28 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=438</guid>
		<description><![CDATA[Es gibt ein Sprichwort: &#8220;Kleinchen heb die Beinchen jetzt kommen Steinchen&#8221;. So geschehen bei mir, als ich das erste Mal Griffon unter Windows ausprobieren wollte.
Es ließ sich Partout nicht starten und belegte mich mit der Meldung, dass meine &#8220;JAVA_HOME&#8221;-Variable auf ein invalides Verzeichnis verweisen würde. Leider konnte ich auf dem System nicht die JAVA_HOME direkt [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt ein Sprichwort: &#8220;Kleinchen heb die Beinchen jetzt kommen Steinchen&#8221;. So geschehen bei mir, als ich das erste Mal Griffon unter Windows ausprobieren wollte.</p>
<p>Es ließ sich Partout nicht starten und belegte mich mit der Meldung, dass meine &#8220;JAVA_HOME&#8221;-Variable auf ein invalides Verzeichnis verweisen würde. Leider konnte ich auf dem System nicht die JAVA_HOME direkt ändern, sondern musste diese in den Umgebungsvariablen des Benutzers &#8220;überschreiben&#8221;. Ist dann schon etwas unschön, aber gut &#8211; es ging erstmal ans Werk.</p>
<p>Nun ist man ja als alteingesessener Java-Entwickler daran gewöhnt, dass Pfade mit Leerzeichen nie gut ankommen. Also 1. Versuch: Leerzeichen entfernen &#8211; Kein Erfolg. Einmal ist keinmal, also nächster Versuch: Suchmaschine bemühen &#8211; wenig Erfolg. </p>
<p>Die Suche gab zwar nicht die vollständige Antwort, aber zumindest einen Anhaltspunkt. Der abschließende Backslash im Pfad könnte ein Problem sein. Zwar führte dieser Ansatz erstmal zu einem gewissen Erfolg, aber einfach mal eine Systemvariable überschreiben &#8211; auch wenn es nicht so große Unterschiede gab &#8211; fand ich nicht so &#8220;prickelnd&#8221;. Darum kam am Ende der Texteditor zum Einsatz, denn mir war aufgefallen, dass Groovy selbst z.B. keine Probleme mit dem Pfad hatte.</p>
<p>Und da war sie &#8211; die Lösung, die ich gesucht hatte:</p>
<pre class="brush: plain;">
@rem Remove trailing slash from JAVA_HOME if found
if &quot;%JAVA_HOME:~-1%&quot;==&quot;\&quot; SET JAVA_HOME=%JAVA_HOME:~0,-1%
</pre>
<p>Mit dieser Zeile wird einfach das abschließende Backslash entfernt. Diese Zeile in die <code>startGriffon.bat</code> unter <code>:have_JAVA_HOME</code> geschrieben und plötzlich funktioniert es auch mit dem Greif.</p>
<pre class="brush: plain;">
:have_JAVA_HOME
if &quot;%JAVA_HOME:~-1%&quot;==&quot;\&quot; SET JAVA_HOME=%JAVA_HOME:~0,-1%
@rem Validate JAVA_HOME
%COMMAND_COM% /C DIR &quot;%JAVA_HOME%&quot; 2&gt;&amp;1 | %FIND_EXE% /I /C &quot;%JAVA_HOME%&quot; &gt;nul
</pre>
<p>Leider wurde das Problem auch in der aktuellen Version 0.3 nicht gefixt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/griffon-mit-einem-flugelschlag-auser-gefecht-gesetzt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recipe: Apache 2 mit Tomcat 6 auf Ubuntu 9.10 für &#8220;Gourmets&#8221;</title>
		<link>http://www.pincservices.de/wordpress/recipe-apache-2-mit-tomcat-6-auf-ubuntu-9-10-fur-gourmets</link>
		<comments>http://www.pincservices.de/wordpress/recipe-apache-2-mit-tomcat-6-auf-ubuntu-9-10-fur-gourmets#comments</comments>
		<pubDate>Sat, 23 Jan 2010 10:43:11 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_jk]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=395</guid>
		<description><![CDATA[Das folgende Thema wurde schon an diversen Stellen mehr oder minder explizit beschrieben. Allerdings noch nicht aus meiner Sicht.
Was mir bei den meisten Howtos aufgefallen ist, dass sie schlechte Wartbarkeit hervorrufen und/oder irgendwas vergessen. Darum jetzt mein Versuch die Konfigurationsdateien der Welt unlesbar zu machen.
Die &#8220;Speisekarte&#8221; oder &#8220;Was will ich eigentlich&#8221;?
Tja. Für den einen oder anderen [...]]]></description>
			<content:encoded><![CDATA[<p>Das folgende Thema wurde schon an diversen Stellen mehr oder minder explizit beschrieben. Allerdings noch nicht aus meiner Sicht.</p>
<p>Was mir bei den meisten Howtos aufgefallen ist, dass sie schlechte Wartbarkeit hervorrufen und/oder irgendwas vergessen. Darum jetzt mein Versuch die Konfigurationsdateien der Welt unlesbar zu machen.</p>
<h2>Die &#8220;Speisekarte&#8221; oder &#8220;Was will ich eigentlich&#8221;?</h2>
<p>Tja. Für den einen oder anderen gezielten Sucher ist das schon klar, aber nochmal kurz für jene, die nur zufällig hier sind. Ich möchte in meiner URL nicht mehr <em>http://localhost:8080</em> eingeben müssen um auf meinen Tomcat zu gelangen, sondern nur noch sowas wie <em>http://tomcat.localhost</em>. Ich hätte jetzt auch sagen können <em>http://localhost</em>, aber das wäre gelogen.</p>
<h2>Installation der einzelnen Komponenten</h2>
<p>Für die Installation nehme man eine Maus, Synaptic Paketverwaltung und zwei aussagekräftige Suchbegriffe wie tomcat6 und apache2. Für die Verknüpfung der beiden ist dann noch das Paket <code>libapache2-mod-jk</code> notwendig. Man würze das ganze mit einer Prise &#8220;Anwenden&#8221; und violá Apache 2 und Tomcat 6 sind installiert. Auf zu Schritt 2: die Dateien.</p>
<h2>Die Dateien</h2>
<p>Nichts läuft ohne eine anständige Konfiguration. Zur Vorbereitung lege man sich im Editor seiner Wahl folgende Dateien zurecht. Am besten mit <strong>sudo</strong> öffnen um darauf auch Schreibrechte zu haben.</p>
<ul>
<li>/etc/apache2/sites-available/default</li>
<li>/etc/apache2/sites-available/mod_jk_vhosts</li>
<li>/etc/apache2/mods-available/jk.conf</li>
<li>/etc/apache2/workers.properties</li>
<li>/etc/tomcat6/server.xml</li>
<li>/etc/hosts</li>
</ul>
<p>Die Dateien <code>mod_jk_vhosts</code>, <code>jk.conf</code> und <code>workers.properties</code> existieren höchstwahrscheinlich noch nicht. Darum diese bitte selbst anlegen.</p>
<p>Soweit diese &#8220;Vorspeise&#8221; abgeschlossen ist, wollen wir uns dem &#8220;Hauptgang&#8221; widmen: der Konfiguration</p>
<h2>Die Konfiguration</h2>
<p>Für die Konfiguration gehe ich jede der oben genannten Dateien einzeln durch und stelle eine mögliche Konfiguration vor. Diese Konfigurationen sind nur auf das notwendigste beschränkt. Falls weitere Optionen oder Alternativen notwendig sind, verweise ich gerne auf die entsprechenden Fachseiten.</p>
<h3>mod_jk_vhost</h3>
<p>Beginnen möchte ich mit der <code>mod_jk_vhosts</code>, da diese am umfangreichsten ist. Ich präsentiere &#8230; den Inhalt:</p>
<pre class="brush: plain;">
ServerName localhost
# NameVirtualHost *:80
&lt;VirtualHost *:80&gt;
	ServerName 127.0.0.2
	ServerAlias tomcat.localhost
	ServerAlias www.tomcat.localhost
	ServerAdmin webmaster@tomcat.localhost
	#Take note of the jsp content directory placement
	DocumentRoot /var/lib/tomcat6/webapps/
	&lt;Directory &quot;/var/lib/tomcat6/webapps/&quot;&gt;
		Options Indexes FollowSymLinks +Includes
		AllowOverride All
		# DirectoryIndex index.jsp
	&lt;/Directory&gt;
	#Mount the folders with jsp pages
	JkMount /* worker1
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
	ServerName 127.0.0.3
	ServerAlias apache.localhost
	ServerAlias www.apache.localhost
	ServerAdmin webmaster@apache.localhost

	DocumentRoot /var/www
	&lt;Directory /&gt;
		Options FollowSymLinks
		AllowOverride None
	&lt;/Directory&gt;
	&lt;Directory /var/www/&gt;
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	&lt;/Directory&gt;

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	&lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt;
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	&lt;/Directory&gt;

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    Alias /doc/ &quot;/usr/share/doc/&quot;
    &lt;Directory &quot;/usr/share/doc/&quot;&gt;
	Options Indexes MultiViews FollowSymLinks
	AllowOverride None
	Order deny,allow
	Deny from all
	Allow from 127.0.0.0/255.0.0.0 ::1/128
    &lt;/Directory&gt;
&lt;/VirtualHost&gt;
</pre>
<p>Diese Datei wird anstelle der <code>/etc/apache2/sites-available/default</code> zukünftig für die Konfiguration des Apaches verwendet. Darum enthält sie auch große Teile der Original-Datei. Wenn der Inhalt der <code>default</code>-Datei anders aussieht, einfach den unteren Teil der <code>mod_jk_vhosts</code>-Datei mit dem Inhalt der <code>default</code>-Konfiguration abgleichen.</p>
<p>Zur Aktivierung der alternativen Konfiguration in der Konsole folgende Zeile ausführen:</p>
<pre class="brush: plain; gutter: false;">
sudo a2ensite mod_jk_vhosts
</pre>
<h3>jk.conf</h3>
<p>Die zweite Datei der ich mich widmen will, ist die <code>jk.conf</code>. Wie bereits erwähnt: sollte diese Datei noch nicht existieren, einfach unter dem oben genannten Pfad mit folgendem Inhalt speichern.</p>
<pre class="brush: plain;">
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
</pre>
<p>Die Konfiguration ist sehr minimalistisch. Mehr wird auch erstmal nicht benötigt. Es wird nur die Stelle für die Konfigurationsdatei angegeben, die Apache braucht um mit dem Tomcat zu sprechen und die Logging-Konfiguration, für den Fall, dass etwas schief läuft.<br />
Damit diese Konfiguration auch berücksichtigt wird muss sie mit
<pre class="brush: plain; gutter: false;">sudo ln -s /etc/apache2/mods-available/jk.conf /etc/apache2/mods-enabled/</pre>
<p> verlinkt werden.</p>
<h3>workers.properties</h3>
<p>Die <code>workers.properties</code> kann man als das Herzstück der Konfiguration bezeichnen, da sie die eigentliche Kommunikation zwischen Apache und Tomcat ermöglicht.</p>
<pre class="brush: plain;">
workers.tomcat_home=/usr/share/tomcat6
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
</pre>
<p>Der Kürze halber will ich an dieser Stelle nicht die einzelnen Parameter erklären, sondern nur auf die <a href="http://tomcat.apache.org/connectors-doc/reference/workers.html" onclick="return TrackClick('http%3A%2F%2Ftomcat.apache.org%2Fconnectors-doc%2Freference%2Fworkers.html','offizielle+Dokumentation')">offizielle Dokumentation</a> verweisen.</p>
<h3>server.xml</h3>
<p>Als dritte Datei kommen wir zur <code>/etc/tomcat6/server.xml</code>. Diese enthält die allgemeine Server-Konfiguration für den integrierten Tomcat von Ubuntu. An dieser Datei müssen zwei Änderungen durchgeführt werden:</p>
<ol>
<li>Aktivierung von Port 8009 und</li>
<li>Server-Aliase für unseren VirtualHost setzen.</li>
</ol>
<p>Für 1. einfach nach <code>port="8009"</code> suchen und die Zeile auskommentieren, sodass es in etwa so aussieht</p>
<pre class="brush: plain;">
...
&lt;!-- Define an AJP 1.3 Connector on port 8009 --&gt;
&lt;Connector port=&quot;8009&quot; protocol=&quot;AJP/1.3&quot; redirectPort=&quot;8443&quot; /&gt;
...
</pre>
<p>Die Server-Aliase werden im Abschnitt <code>Host</code> eingetragen.</p>
<pre class="brush: plain;">
...
&lt;Host name=&quot;localhost&quot; appBase=&quot;webapps&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;&gt;
  ...
  &lt;Alias&gt;www.tomcat.localhost&lt;/Alias&gt;
  &lt;Alias&gt;tomcat.localhost&lt;/Alias&gt;
  &lt;Alias&gt;127.0.0.2&lt;/Alias&gt;
  &lt;Alias&gt;tomcat.localhost&lt;/Alias&gt;
&lt;/Host&gt;
...
</pre>
<h3><code>/etc/hosts</code></h3>
<p>Als letzten Schritt soll auch Ubuntu erfahren zu welchem Servernamen welche IP gehört. Darum in die <code>/etc/hosts</code> folgende Zeilen hinzufügen:</p>
<pre class="brush: plain;">
127.0.0.2 tomcat.localhost www.tomcat.localhost
127.0.0.3 apache.localhost www.apache.localhost
</pre>
<h2>Das &#8220;Dessert&#8221;</h2>
<p>Auf das Dessert freut man sich ja eigentlich am meisten. So auch hier. Nachdem alles konfiguriert wurde, einfach den Tomcat und den Apache neustarten:</p>
<pre class="brush: plain; gutter: false;">
sudo /etc/init.d/tomcat6 restart
sudo /etc/init.d/apache2 restart
</pre>
<p>Violá, wir sind finis &#8230; zumindest was meinen Versuchsaufbau angeht. Falls noch alles läuft, habe ich was falsch gemacht. Im Ernst: Falls Kommentare sind, weil etwas nicht funktioniert bitte ich um User-generierten Content <img src='http://www.pincservices.de/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/recipe-apache-2-mit-tomcat-6-auf-ubuntu-9-10-fur-gourmets/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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 mehr. Schnell [...]]]></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" onclick="return TrackClick('http%3A%2F%2Flibrary.gnome.org%2Fdevel%2Fgtk%2F2.18%2Fgtk-migrating-ClientSideWindows.html','Migrating+to+client-side+windows')">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" onclick="return TrackClick('http%3A%2F%2Ftrac.edgewall.org%2Fticket%2F7526','http%3A%2F%2Ftrac.edgewall.org%2Fticket%2F7526')">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>Blog redesigned &#8230; to be continued</title>
		<link>http://www.pincservices.de/wordpress/blog-redesigned-to-be-continued</link>
		<comments>http://www.pincservices.de/wordpress/blog-redesigned-to-be-continued#comments</comments>
		<pubDate>Sun, 08 Nov 2009 07:04:36 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=262</guid>
		<description><![CDATA[Wartungsarbeiten sind Arbeiten, die ungnädig und ewig warten, bis man sie macht. So geschehen mit diesem Blog und demnächst auch mit der Webseite http://www.pincservices.de.
Da der Blog seit einiger Zeit Brach lag, musste eine Runderneuerung her. Nachdem die Software auf den aktuellen Stand gebracht wurde, fiel mein Augenmerk auf das Frontend. Ich weiss gar nicht mehr [...]]]></description>
			<content:encoded><![CDATA[<p>Wartungsarbeiten sind Arbeiten, die ungnädig und ewig warten, bis man sie macht. So geschehen mit diesem Blog und demnächst auch mit der Webseite <a href="http://www.pincservices.de" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','http%3A%2F%2Fwww.pincservices.de')">http://www.pincservices.de</a>.</p>
<p>Da der Blog seit einiger Zeit Brach lag, musste eine Runderneuerung her. Nachdem die Software auf den aktuellen Stand gebracht wurde, fiel mein Augenmerk auf das Frontend. Ich weiss gar nicht mehr wie viele Jahre das alte Frontend ausgehalten hat, aber ich entschuldige mich hiermit nachdrücklich bei allen, die darunter leiden mussten.<br />
Seit heute morgen erstrahlt der Blog in neuem Gewand und auch die Nutzbarkeit ist &#8211; nach eigenen Erfahrungen &#8211; erheblich gestiegen. Nebenbei sind diverse &#8220;Gimmicks&#8221; ins Template geflossen, wobei ich nicht verrate welche.</p>
<p>Dennoch stehen &#8211; jetzt, wo man alles lesen kann &#8211; die nächsten Umbauten an. Mit der Aktualisierung sind einige Probleme beim Encoding aufgetreten und einige Artikel müssen nochmal visuell nachgebessert werden. Ausserdem fehlen noch einige Zutaten zum &#8220;perfekten Glück&#8221;.</p>
<p>Ich werd mich dann mal weiter darum kümmern &#8211; Also viel Spaß beim stöbern.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/blog-redesigned-to-be-continued/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GIT geht nicht gern mit Fremden: *** Please tell me who you are.</title>
		<link>http://www.pincservices.de/wordpress/git-geht-nicht-gern-mit-fremden-please-tell-me-who-you-are</link>
		<comments>http://www.pincservices.de/wordpress/git-geht-nicht-gern-mit-fremden-please-tell-me-who-you-are#comments</comments>
		<pubDate>Sat, 15 Aug 2009 18:18:50 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Werkzeuge]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hudson]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=224</guid>
		<description><![CDATA[Für alle, die es leid waren, sich mit Subversion herumzuschlagen &#8211; oder einfach mal neugierig auf ein anderes Versionssystem sind, haben bestimmt schonmal etwas von GIT gehört.
Ich will an dieser Stelle weder die üblichen Lobeshymnen, noch die allseitsbeliebten Hasstiraden anstimmen, sondern nur eine kleine Hilfestellung geben, wenn man sich dazu entschließen will das GIT-Plugin von [...]]]></description>
			<content:encoded><![CDATA[<p>Für alle, die es leid waren, sich mit Subversion herumzuschlagen &#8211; oder einfach mal neugierig auf ein anderes Versionssystem sind, haben bestimmt schonmal etwas von <a href="http://git-scm.com/" onclick="return TrackClick('http%3A%2F%2Fgit-scm.com%2F','GIT')">GIT</a> gehört.</p>
<p>Ich will an dieser Stelle weder die üblichen Lobeshymnen, noch die allseitsbeliebten Hasstiraden anstimmen, sondern nur eine kleine Hilfestellung geben, wenn man sich dazu entschließen will das GIT-Plugin von Hudson zu nutzen.</p>
<p>Die Installation ist zwar &#8211; wie immer &#8211; simpel, aber leider mag Hudson evtl. nicht gleich mit GIT &#8220;spielen&#8221;. Will man den Job starten kommt relativ schnell folgende Ausgabe in der Konsolenansicht.</p>
<blockquote><p>Gestartet durch Benutzer anonymous<br />
Checkout:workspace / /usr/local/apps/hudson_home/jobs/gitTest/workspace &#8211; hudson.remoting.LocalChannel@1063971<br />
Last Build : #2<br />
Checkout:workspace / /usr/local/apps/hudson_home/jobs/gitTest/workspace &#8211; hudson.remoting.LocalChannel@1063971<br />
Fetching changes from the remote Git repository<br />
Fetching upstream changes from file:///var/local/workspaces/experiments/sampleProject<br />
[workspace] $ git fetch file:///var/local/workspaces/experiments/sampleProject +refs/heads/*:refs/remotes/origin/*<br />
[workspace] $ git ls-tree HEAD<br />
Seen branch in repository origin/master<br />
Commencing build of Revision f7dc0e95f48a084d5192c3712f14b3353a98a876 (origin/master )<br />
Checking out Revision f7dc0e95f48a084d5192c3712f14b3353a98a876 (origin/master )<br />
[workspace] $ git checkout -f f7dc0e95f48a084d5192c3712f14b3353a98a876<br />
[workspace] $ git tag -a -f -m &#8220;Hudson Build #3&#8243; hudson-gitTest-3<br />
FATAL: Could not apply tag hudson-gitTest-3<br />
hudson.plugins.git.GitException: Could not apply tag hudson-gitTest-3<br />
at hudson.plugins.git.GitAPI.tag(GitAPI.java:265)</p>
<p>[haufenweise stacktrace]</p>
<p>&#8230; 12 more<br />
Caused by: hudson.plugins.git.GitException: Command returned status code 128:<br />
*** Please tell me who you are.</p>
<p>Run</p>
<p>git config &#8211;global user.email &#8220;you@example.com&#8221;<br />
git config &#8211;global user.name &#8220;Your Name&#8221;</p>
<p>to set your account&#8217;s default identity.<br />
Omit &#8211;global to set the identity only in this repository.</p>
<p>fatal: empty ident &lt;tomcat6@yourhost&gt; not allowed</p>
<p>at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:297)<br />
&#8230; 14 more
</p></blockquote>
<p>Offensichtlich ist GIT ein wenig schüchtern und mag nicht jeden an die digitale Wäsche ranlassen.</p>
<p>Leider findet man nicht wirklich eine Möglichkeit Hudson eine eigene Identität via Webfrontend zu geben. Der Trick liegt genau dahinter &#8211; und zwar im Dateisystem.</p>
<p>Genauer gesagt in der <code>/etc/passwd</code>. Aus irgendwelchen Gründen brauch GIT hier einen Eintrag im Feld für den fullName. Unter Ubuntu hat der Tomcat-User dort standardmäßig nichts gesetzt. Fügt man jetzt dort einfach &#8216;Tomcat 6,,,&#8217; ein, läuft es auch mit dem CI-Nachbarn.</p>
<p>Alle, die sich über die Gründe Gedanken machen, seien auf die <a href="http://git.or.cz/gitwiki/GitFaq#Gitcommitisdyingtellingme.22fatal.3Aemptyident.3Cuser.40myhost.3Enotallowed.22.2Cwhat.27swrong.3F" onclick="return TrackClick('http%3A%2F%2Fgit.or.cz%2Fgitwiki%2FGitFaq%23Gitcommitisdyingtellingme.22fatal.3Aemptyident.3Cuser.40myhost.3Enotallowed.22.2Cwhat.27swrong.3F','Git+FAQs')">Git FAQs</a> verwiesen.</p>
<p>So dann &#8211; viel Spaß beim Bauen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/git-geht-nicht-gern-mit-fremden-please-tell-me-who-you-are/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trac: So schnell legt man sich ein (Python-)Ei &#8230;</title>
		<link>http://www.pincservices.de/wordpress/trac-so-schnell-legt-man-sich-ein-python-ei</link>
		<comments>http://www.pincservices.de/wordpress/trac-so-schnell-legt-man-sich-ein-python-ei#comments</comments>
		<pubDate>Sun, 21 Jun 2009 15:29:54 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=178</guid>
		<description><![CDATA[Nachdem ich mir vor einiger Zeit ein Upgrade von Ubuntu gegönnt hatte, habe ich mir Trac nicht weiter angeschaut &#8211; bis heute. Ahnungslos fing ich an Wiki-Seiten zu erstellen, mir zu überlegen wie ich die Tickets konfigurieren will, etc. Ich wägte mich auf der sicheren Seite bis ich anfing meine Notizen als Attachments hochladen zu [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich mir vor einiger Zeit ein Upgrade von Ubuntu gegönnt hatte, habe ich mir Trac nicht weiter angeschaut &#8211; bis heute. Ahnungslos fing ich an Wiki-Seiten zu erstellen, mir zu überlegen wie ich die Tickets konfigurieren will, etc. Ich wägte mich auf der sicheren Seite bis ich anfing meine Notizen als Attachments hochladen zu wollen. Und plötzlich schallerte ein digitales &#8220;HAHA&#8221; durch das System, denn nach mehreren Versuchen tat sich nichts. Weder auf der Seite noch in der Log-Datei.</p>
<p>Ohne jetzt auf die darauf folgende Odyssee mittels Googles ach so effektivem Suchalgorithmus eingehen zu wollen, fand sich die Lösung dann nach dem Ausschalten aller Trac-User-Heulattacken, die sich so durch die Bug- und Mailing-Listen ziehen.</p>
<h3>DAS Problem</h3>
<p>Wie so oft liegt das Problem nicht an der Stelle, die man sieht, sondern dahinter &#8211; weit dahinter in diesem Fall. Nämlich bei Ubuntu selbst. Es ist ja lieb gemeint, dass man immer die aktuelle Python-Version über Synaptic einbaut, aber dann sollte man das auch bei allen anderen Packages versuchen, die man so anbietet. In diesem Fall Trac. Denn was ist passiert? Leider sind die Versionen Trac 0.11.1 (Ubuntu Repository) und Python 2.6 (ebenfalls Ubuntu Repository) nicht kompatibel, was wohl auch schon eine Weile bekannt ist und selbst in Ubuntu-Foren ausgiebig &#8220;angeheult&#8221; wurde.</p>
<h3>DIE Lösung</h3>
<p>Man deinstalliere Trac über Synaptic und führe folgende Zeile aus:</p>
<blockquote>
<pre>sudo easy_install <a rel="nofollow" href="http://svn.edgewall.org/repos/trac/tags/trac-0.11.4" onclick="return TrackClick('http%3A%2F%2Fsvn.edgewall.org%2Frepos%2Ftrac%2Ftags%2Ftrac-0.11.4','http%3A%2F%2Fsvn.edgewall.org%2Frepos%2Ftrac%2Ftags%2Ftrac-0.11.4')" target="_blank">http://svn.edgewall.org/repos/trac/tags/trac-0.11.4</a></pre>
</blockquote>
<p>Danach erhält man u.a. eine nette Nachricht:</p>
<blockquote>
<pre>Installed /usr/local/lib/python2.6/dist-packages/Trac-0.11.4-py2.6.egg</pre>
</blockquote>
<p>Mit dem Enthusiasmus des aufgekommenen, osterlichen Eier-Such-und-Finde-Gefühls den Apache neustarten, evtl. das Environment upgraden und Tada: <span style="text-decoration: underline;"><strong>Alles schick!</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/trac-so-schnell-legt-man-sich-ein-python-ei/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>if (Web 3.0 == Social Semantic Web)</title>
		<link>http://www.pincservices.de/wordpress/if-web-30-social-semantic-web</link>
		<comments>http://www.pincservices.de/wordpress/if-web-30-social-semantic-web#comments</comments>
		<pubDate>Sun, 22 Mar 2009 15:30:25 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[business models]]></category>
		<category><![CDATA[data management]]></category>
		<category><![CDATA[licencing]]></category>
		<category><![CDATA[social semantic web]]></category>
		<category><![CDATA[web 3.0]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=162</guid>
		<description><![CDATA[Seit dem Erfolg von Web 2.0 und der damit verbundenen Sozialisierung des Webs steht die Frage nach dem nÃ¤chsten Schritt im Raum. Wenn man sich die Blogs so durchliest wird meistens auf die technische Linie geschaut. Das semantische Netz -Â  ein Wunsch(-traum?), der schon einige Jahre anhÃ¤lt und immer noch nicht unmittelbar greifbare NÃ¤he gerÃ¼ckt [...]]]></description>
			<content:encoded><![CDATA[<p>Seit dem Erfolg von Web 2.0 und der damit verbundenen Sozialisierung des Webs steht die Frage nach dem nÃ¤chsten Schritt im Raum. Wenn man sich die Blogs so durchliest wird meistens auf die technische Linie geschaut. Das semantische Netz -Â  ein Wunsch(-traum?), der schon einige Jahre anhÃ¤lt und immer noch nicht unmittelbar greifbare NÃ¤he gerÃ¼ckt ist. Auf <a href="http://www.foerderland.de/419+M50370de811a.0.html" onclick="return TrackClick('http%3A%2F%2Fwww.foerderland.de%2F419%2BM50370de811a.0.html','http%3A%2F%2Fwww.foerderland.de')" target="_blank">http://www.foerderland.de</a> findet man zumindest einige staatliche Forschungsprojekte, aber dabei ist es auch bis jetzt mehr oder minder geblieben.</p>
<p>Die Frage ist also: &#8220;Was bringt Web 3.0?&#8221; &#8211; wenn es so etwas Ã¼berhaupt noch geben wird. Eine <a href="http://tw.rpi.edu/portal/AAAI-SSS-09:_Social_Semantic_Web:_Where_Web_2.0_Meets_Web_3.0" onclick="return TrackClick('http%3A%2F%2Ftw.rpi.edu%2Fportal%2FAAAI-SSS-09%3A_Social_Semantic_Web%3A_Where_Web_2.0_Meets_Web_3.0','Konferenz')" target="_blank">Konferenz</a>, die aktuell stattfindet befasst sich genau mit dieser Frage. Wird das Web 3.0 das Social Semantic Web?</p>
<p>Nehmen wir mal an, das es so kommen wird. Welche GeschÃ¤ftsmodelle bringt Web 3.0? Nachdem bereits im Web 2.0-Sumpf die eine oder andere Million versackt ist, frage ich mich, was soll etwas so &#8220;schwammiges&#8221; wie die Kombination aus Social Communities und Semantic Web an planungssicheren und vor allem nachhaltigen Modellen oder Ideen liefern?<br />
Wird es abseits aller &#8220;technischen Spielereien&#8221; durch die EinfÃ¼hrung semantik-basierender Algorithmen Ã¼berhaupt eine Neuerung geben?Â  Stehen wir schon im Web 3.0 und hat es die Marketingabteilung noch nicht gemerkt?</p>
<p>Es bleiben also 3 groÃŸe Fragen, abseits der Technik:</p>
<ol>
<li>Welche inhaltliche Entwicklung bringt uns die nÃ¤chste Stufe des Webs?</li>
<li>Welche GeschÃ¤ftsmodelle sind fÃ¼r ein Social Semantic Web sinnvoll?</li>
<li>Wie gewÃ¤hrleistet man freien Zugang zu verwertbaren Inhalten?</li>
</ol>
<p>Eine Entwicklung, die sich bereits abzeichnet ist die Entstehung von &#8220;gemeinnÃ¼tzigen&#8221; Seiten. D.h. neben dem &#8220;wir sind alle freunde&#8221;-Prinzip von Plattformen wie Facebook, Lokalisten oder MeinVZ steht soziales Engagement Ã  la <a href="http://de.betterplace.org/" onclick="return TrackClick('http%3A%2F%2Fde.betterplace.org%2F','http%3A%2F%2Fwww.betterplace.org')" target="_blank">http://www.betterplace.org</a> im Vordergrund.<br />
Doch kÃ¶nnen sich solche Plattformen selbst tragen, ohne sich &#8220;zu verkaufen&#8221;, wie es so schÃ¶n heisst. Welche MÃ¶glichkeiten stehen zur VerfÃ¼gung, wenn Werbe-, Abonnement- und Premiummodelle nicht mehr greifen? Will ich mein eigenes Engagement teuer erkaufen?</p>
<p>Ein anderer Aspekt, der Grundlage der Entwicklung von Web 3.0 ist, ist die wachsende Datenflut. Insbesondere durch Web 2.0 hat sich der Datenumfang drastisch erhÃ¶ht. Dadurch ist die zentrale Verwaltung von Daten nicht mehr sinnvoll umsetzbar. Es wird nÃ¶tig dezentrale Daten Ã¼ber ein ausgeklÃ¼geltes Mapping von Metadaten zu Orten im Netz auffindbar zu machen.</p>
<p>Doch hier bleibt die Frage nach der VerfÃ¼gbarkeit eines solchen Dienstes, wobei vor allem zwei verschiedene AnsÃ¤tze ins Spiel kommen. Einerseits werden spezifische Inhalte hinter digitale PanzertÃ¼ren gelegt, so dass nur noch zahlende Kunden an diese Informationen herankommen. Andererseits werden die Dienste, die auf eigentlich freie Daten zugreifen kÃ¶nnen ebenfalls kostenpflichtig angeboten (Premiumdienste) um verwertbare Ergebnisse zu erhalten.<br />
Hier muss, meiner Meinung nach, ein gewisses Umdenken bei bestimmten Stellen einsetzen. QualitÃ¤t hat seinen Preis, aber qualitatives Wissen sollte nicht einer Elite vorbehalten sein.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/if-web-30-social-semantic-web/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Craptecs: ICQ 4 MINA</title>
		<link>http://www.pincservices.de/wordpress/craptecs-icq-4-mina</link>
		<comments>http://www.pincservices.de/wordpress/craptecs-icq-4-mina#comments</comments>
		<pubDate>Thu, 12 Mar 2009 06:19:37 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[crapchat]]></category>
		<category><![CDATA[craptecs]]></category>
		<category><![CDATA[ICQ]]></category>
		<category><![CDATA[MINA]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=159</guid>
		<description><![CDATA[Apache MINA ist ein Framework für die Erstellung performanter und skalierbarer Netzwerkapplikationen. Eine Besonderheit dieses Frameworks ist, dass die API asynchron ist und weitestgehend unabhängig von spezifischen Protokollen.
Im Rahmen eines Craptecs-Projektes soll im Laufe der nächsten Wochen eine Implementierung für das ICQ-Protokoll erstellt werden (siehe http://craptecs.blogspot.com/2009/03/proof-of-concept-icq-via-mina.html).
Wer Interesse daran hat, kann sich gern bei mir persönlich [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mina.apache.org/" onclick="return TrackClick('http%3A%2F%2Fmina.apache.org%2F','Apache+MINA')" target="_blank">Apache MINA</a> ist ein Framework für die Erstellung performanter und skalierbarer Netzwerkapplikationen. Eine Besonderheit dieses Frameworks ist, dass die API asynchron ist und weitestgehend unabhängig von spezifischen Protokollen.</p>
<p>Im Rahmen eines Craptecs-Projektes soll im Laufe der nächsten Wochen eine Implementierung für das ICQ-Protokoll erstellt werden (siehe <a href="http://craptecs.blogspot.com/2009/03/proof-of-concept-icq-via-mina.html" onclick="return TrackClick('http%3A%2F%2Fcraptecs.blogspot.com%2F2009%2F03%2Fproof-of-concept-icq-via-mina.html','http%3A%2F%2Fcraptecs.blogspot.com%2F2009%2F03%2Fproof-of-concept-icq-via-mina.html')" target="_blank">http://craptecs.blogspot.com/2009/03/proof-of-concept-icq-via-mina.html</a>).</p>
<p>Wer Interesse daran hat, kann sich gern bei mir <a href="http://www.pincservices.de/contact.php" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de%2Fcontact.php','pers%C3%B6nlich')">persönlich</a> melden oder das craptecs-Team per IRC auf irc.freenode.org Kanal #craptecs aufsuchen. Wir würden uns freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/craptecs-icq-4-mina/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PINC-SOOW published</title>
		<link>http://www.pincservices.de/wordpress/pinc-soow-published</link>
		<comments>http://www.pincservices.de/wordpress/pinc-soow-published#comments</comments>
		<pubDate>Sun, 22 Feb 2009 21:41:24 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Werkzeuge]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=153</guid>
		<description><![CDATA[PINC-SOOW ist ein kleiner Wrapper für Savant3, einer PHP-Templating-Engine. Da ich bereits einige Seiten mit Savant erstellt habe &#8211; inklusive pincservices.de &#8211; dachte ich, es wäre interessant einen Aufsatz dafür zu schreiben. SOOW steht dabei für Savant-Object-Oriented-Wrapper. Die Idee dahinter ist, die Erstellung für Laien etwas intuitiver zu gestalten und leichter erweiterbar.
Der Wrapper basiert auf [...]]]></description>
			<content:encoded><![CDATA[<p>PINC-SOOW ist ein kleiner Wrapper für <a href="http://www.phpsavant.com" onclick="return TrackClick('http%3A%2F%2Fwww.phpsavant.com','Savant3')" target="_blank">Savant3</a>, einer PHP-Templating-Engine. Da ich bereits einige Seiten mit Savant erstellt habe &#8211; inklusive <a href="http://www.pincservices.de" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','pincservices.de')">pincservices.de</a> &#8211; dachte ich, es wäre interessant einen Aufsatz dafür zu schreiben. SOOW steht dabei für Savant-Object-Oriented-Wrapper. Die Idee dahinter ist, die Erstellung für Laien etwas intuitiver zu gestalten und leichter erweiterbar.</p>
<p>Der Wrapper basiert auf dem Widget-Prinzip. D.h. alles ist ein Widget. Von der Seite bis zum Formular. Aktuell stehen folgende Widgets zur Verfügung:</p>
<ul>
<li>Page: Eine normale Seite</li>
<li>Section: Seitenbereich, kann auch eine komplette Unterseite darstellen</li>
<li>Form: normales Formular</li>
<li>Menu: diverse Ausprägungen eines Menüs</li>
</ul>
<p>Jedes Widget kann mit einem Template individualisiert werden. Diese können unter <em>custom/templates</em> erstellt werden, da sich unter <em>widgets</em> die Standardtemplates befinden und diese auch nicht geändert werden sollten. Beispiele befinden sich in dem Verzeichnis <em>samples</em>.</p>
<p>Download: <a href="http://www.pincservices.de/downloads/pinc-soow.zip" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de%2Fdownloads%2Fpinc-soow.zip','pinc-soow.zip')">pinc-soow.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/pinc-soow-published/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notelib 0.2.5 release + PINCServices.de revised</title>
		<link>http://www.pincservices.de/wordpress/notelib-025-release-pincservicesde-revised</link>
		<comments>http://www.pincservices.de/wordpress/notelib-025-release-pincservicesde-revised#comments</comments>
		<pubDate>Sun, 15 Feb 2009 09:08:55 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[Notelib 0.2.5]]></category>
		<category><![CDATA[PINC-Apps]]></category>
		<category><![CDATA[Savant3]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=150</guid>
		<description><![CDATA[Zwei Neuerungen stehen heute ins Haus. Einerseits der Release von PINC-Notelib und andererseits die Ãœberarbeitung der PINCServices.de-Homepage. Auch wenn extern mehr der Blog referenziert wird, gibt es auch eine klassische Einstiegsseite.
Notelib Release
Es ist soweit, die neue Version von PINC-Notelib ist online. Unter PINC-Apps finden sich die Downloadlinks fÃ¼r die BinÃ¤r- und die Sourcecodeversion. AuÃŸerdem gibt [...]]]></description>
			<content:encoded><![CDATA[<p>Zwei Neuerungen stehen heute ins Haus. Einerseits der Release von PINC-Notelib und andererseits die Ãœberarbeitung der <a href="http://www.pincservices.de" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','pincservices.de')" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','PINCServices.de')">PINCServices.de</a>-Homepage. Auch wenn extern mehr der Blog referenziert wird, gibt es auch eine klassische Einstiegsseite.</p>
<h4>Notelib Release</h4>
<p>Es ist soweit, die neue Version von PINC-Notelib ist online. Unter <a href="http://www.pincservices.de/wordpress/pinc-apps" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de%2Fwordpress%2Fpinc-apps','PINC-Apps')">PINC-Apps</a> finden sich die Downloadlinks fÃ¼r die BinÃ¤r- und die Sourcecodeversion. AuÃŸerdem gibt die Featureliste einen groben Ãœberblick Ã¼ber die enthaltenen Funktionen, die die Applikation bereithÃ¤lt.<br />
Ich will darauf hinweisen, dass es sich dabei um eine Webapplikation handelt und einen Servletcontainer (z.B. Tomcat) zum laufen benÃ¶tigt.</p>
<h4>PINCservices.de in &#8220;neuem&#8221; Gewand</h4>
<p>Nach einiger Ãœberlegung habe ich mich dazu entschieden die Ausrichtung von PINCServices zu Ã¤ndern. Es wird von einem reinen AuftragsgeschÃ¤ft zurÃ¼cktreten und sich auf die Erstellung von Webapplikationen auf <a href="http://www.grails.org" onclick="return TrackClick('http%3A%2F%2Fwww.grails.org','Grails')">Grails</a>- und Java-Basis konzentrieren.</p>
<p>Mit den inhaltlichen Ã„nderungen kommen auch ein paar technische Neuerungen einher. So wurde der Unterbau der Homepage von <a href="http://www.pincservices.de" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','pincservices.de')" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','PINCServices.de')">pincservices.de</a> ein wenig aufpoliert. Mit Savant3 (<a href="http://www.phpsavant.com" onclick="return TrackClick('http%3A%2F%2Fwww.phpsavant.com','http%3A%2F%2Fwww.phpsavant.com')">http://www.phpsavant.com</a>) steht dafÃ¼r eine sehr angenehme Templating-Engine zur VerfÃ¼gung.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/notelib-025-release-pincservicesde-revised/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
