<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-19952235</atom:id><lastBuildDate>Wed, 25 Mar 2009 07:58:43 +0000</lastBuildDate><title>sprachrohr</title><description>der Blog der rokt...;-)</description><link>http://blog.robert-kummer.de/</link><managingEditor>noreply@blogger.com (rok)</managingEditor><generator>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-321534331408899703</guid><pubDate>Sun, 14 Sep 2008 22:09:00 +0000</pubDate><atom:updated>2008-09-15T00:22:18.547+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>fun</category><category domain='http://www.blogger.com/atom/ns#'>essen</category><category domain='http://www.blogger.com/atom/ns#'>berlin</category><title>Essen im Dunkeln...</title><description>&lt;p&gt;Hast Du schon einmal das Erlebnis genießen können endlose Grimassen ziehen zu können beim Essen? Noch nicht? Oder die Sinne komplett auf den Geschmack zu schärfen?
Dann versuch mal die &lt;a href="http://www.unsicht-bar-berlin.de"&gt;Unsicht-Bar&lt;/a&gt; in Berlin (Gormannstr. 8, Berlin-Mitte).&lt;/p&gt;
&lt;p&gt;Man bekommt zu Beginn im hellen Barbereich eine Karte mit Umschreibungen der möglichen Speisen. Jeweils 4-Gänge-Menüs (Vegetarisch, Huhn, Lamm, Rind oder Fisch) und eine Getränkekarte. Nachdem man gewählt hat bekommt man einen blinden Kelner zugewiesen, der einen an den Tisch führt und eine kleine Einweisung gibt (keine Handys, keine leuchtenden Uhren, absolute Dunkelheit).&lt;/p&gt;
&lt;p&gt;Danach geht es irrgangsmäßig durch das "Gelände" und mit sicherer Führung wird man an den Tisch gebracht.&lt;/p&gt;
&lt;p&gt;Dort angekommen wird man platziert und man sieht einfach nix. Nur absolute Dunkelheit. Schon das Trinken wird zum Abenteuer. Geschweige denn der Salat zu Beginn. Denn dieser ist mit Dressing...was sich mit den Fingern ganz blöd macht ;) Man hat natürlich auch scharfe Waffen zur Essensbewältigung an der Hand.&lt;/p&gt;
&lt;p&gt;Zwischen jedem Gang hat man ausreichend Zeit sich zu unterhalten oder über das Erlebte zu philosophieren. Es ist einfach ein Abenteuer durch und durch.&lt;/p&gt;
&lt;p&gt;Das Essen schmeckt vorzüglich...man versucht zu erraten was man da Bissen für Bissen genießt, manchmal jedoch chancenlos. Wen es detailliert interessiert, der kann am Ende einen Blick in die Auflösungskarte werfen.&lt;/p&gt;
&lt;p&gt;Als Resümee muss ich sagen, es war die beste Möglichkeit 100 &amp;euro; anzulegen und mit Claudia dreieinhalb Stunden voller Lachen und Abenteuer zu verbringen. Man vergißt absolut jegliches Zeitgefühl und der Gang in die leuchtende Welt ist wie eine Art Erlösung nachdem man Stunden voll Abwechslung und Abenteuer erlebt hat. Ich kann es nur jedem empfehlen.&lt;/p&gt;
&lt;p&gt;Als Alternative kann man in Berlin auch ins &lt;a href="http://www.noctivagus.com"&gt;Nocti Vagus&lt;/a&gt;, ebenfalls in Berlin-Mitte. Dort gibt es noch Programm und Live-Events oben drauf.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-321534331408899703?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2008/09/essen-im-dunkeln.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-2322590928762209316</guid><pubDate>Tue, 15 Jul 2008 17:59:00 +0000</pubDate><atom:updated>2008-07-15T20:10:13.871+02:00</atom:updated><title>diffr.org - und du kennst alle Änderungen</title><description>Es geht mir häufig so, dass ich eine Internetseite gefunden habe, wo noch kein Inhalt vorhanden ist, sondern nur der coole Spruch "...coming soon..." oder so ähnlich.

Da man natürlich kaum noch Zeit hat in der heutigen Welt, ist es blöd, wenn man doch etwas sinnvolles vermutet, nur nicht weiß, wann man es auch sehen kann.

Dafür kommt jetzt die Abhilfe: &lt;a href="http://diffr.org"&gt;diffr.org - the web diff notifier&lt;/a&gt; . Dieser Dienst ermöglicht es verschiedene URLs zu hinterlegen, die einmal täglich auf Veränderung hin überprüft werden. Das ist für die verschiedensten Zwecke sehr hilfreich.

Als kleines Gimmick gibt es sogar eine Firefox-Erweiterung (diffr.xpi). Diese ermöglicht einem nach kurzer Konfiguration die Nutzung per Rechtsklick auf jeder Internetseite. Dadurch wird diese ad hoc dem Service übergeben und man hat sie auch sogleich abonniert.

Der Service ist komplett werbefinanziert. Probiert es doch einfach mal aus. Vielleicht findet ihr das genauso toll wie ich ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-2322590928762209316?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2008/07/diffrorg-und-du-kennst-alle-nderungen.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-6511522707722000747</guid><pubDate>Sun, 24 Feb 2008 13:27:00 +0000</pubDate><atom:updated>2008-02-24T14:33:54.494+01:00</atom:updated><title>Hilfe, die Handbuchübersetzer machen jetzt auch Internetseiten...</title><description>Klicke ich doch heute auf einen Link von Ciao Surveys um eine Umfrage &lt;br&gt;mitzumachen. Cool, dass ich daraufhin zu einem anderen Umfrageinstitut &lt;br&gt;&amp;quot;Greenfield&amp;quot; weitergeleitet werde und folgende Meldung zu sehen bekomme:&lt;br&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.robert-kummer.de/uploaded_images/screenshot-786429.png"&gt;&lt;img style="margin:20px 0;cursor:pointer; cursor:hand;" src="http://blog.robert-kummer.de/uploaded_images/screenshot-786425.png" border="0" alt="" /&gt;&lt;/a&gt;
&lt;p&gt;Traurig, dass ein Umfrageinstitut sich mit solchen &lt;br&gt;&amp;#220;bersetzungskenntnissen outen muss. Schade, dass diese witzigen &lt;br&gt;&amp;#220;bersetzer nicht bei den guten Aufbauanleitungen und Handb&amp;#252;chern &lt;br&gt;geblieben sind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-6511522707722000747?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2008/02/hilfe-die-handbuchbersetzer-machen.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-8141522143891132874</guid><pubDate>Sat, 02 Feb 2008 20:11:00 +0000</pubDate><atom:updated>2008-02-02T21:16:50.636+01:00</atom:updated><title>Jetzt schlägt's 13</title><description>Was tun, wenn die Zeit auf einem Server falsch läuft?

Nun ja, es gibt das NTP (&lt;a href="http://de.wikipedia.org/wiki/Network_Time_Protocol"&gt;Network Time Protocol&lt;/a&gt;) um soetwas zu verhindern. Leider hat das bei mir nicht so recht funktioniert. Also hab ich den NTP gestoppt mit &lt;span style="font-family:courier new;"&gt;/etc/init.d/ntp stop&lt;/span&gt; und dann rdate benutzt:
&lt;pre&gt;$&amp;gt; apt-get install rdate&lt;/pre&gt;
&lt;p&gt;Nach dem installieren mit apt-get kann man es nutzen:&lt;/p&gt;
&lt;pre&gt;$&amp;gt; echo rdate -s ptbtime1.ptb.de &amp;gt; /etc/cron.daily/update-time
$&amp;gt; chmod a+x /etc/cron.daily/update-time&lt;/pre&gt;
&lt;p&gt;Mit diesen Kommandos legt man einen Cronjob mit täglicher Ausführung an,
der die Zeit von ptbtime1.ptb.de holt. Alternativ gibt es auch noch
ptbtime2.ptb.de oder andere Public NTP Server.&lt;/p&gt;&lt;p&gt;Mit der Option -s (set) von rdate setzt man die entfernte Zeit gleich auf dem eigenen System. Will man lediglich die fremde Zeit wissen, dann reicht die Option -p (print), um sie auf der Konsole auszugeben.&lt;/p&gt;&lt;p&gt;Achtung: Zu häufige Anfrageversuche nach der aktuellen Zeit resultierten in einer kurzen Antwortverweigerung des Servers.&lt;/p&gt;&lt;p&gt;Wer noch andere Lösungen hat oder Detailverbesserungen findet, kann ja mal einen Kommentar hinterlassen.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-8141522143891132874?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2008/02/jetzt-schlgts-13.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-7593859304431220162</guid><pubDate>Tue, 24 Jul 2007 09:08:00 +0000</pubDate><atom:updated>2007-07-24T11:39:10.139+02:00</atom:updated><title>Gantt Charts mit PHP erstellen</title><description>Mit &lt;a href="http://www.phpgantt.de/"&gt;phpGantt&lt;/a&gt; erblickt ein neues Tool das Licht der Welt, um PHP-Entwickler im Bereich Projektmanagement, Statistik, Reporting zu unterstützen, was die Visualisierung als Gantt-Diagramm betrifft.

Die ersten Features dieses Tools sind:
&lt;ul&gt;&lt;li&gt;Erfassung von Arbeitspaketen&lt;/li&gt;&lt;li&gt;Erfassung von Sammelpaketen&lt;/li&gt;&lt;li&gt;Verknüpfung von Arbeitspaketen zu einer Timeline&lt;/li&gt;&lt;li&gt;Timeline wird als PNG exportiert&lt;/li&gt;&lt;li&gt;Arbeitspakete können auch als voneinander abhängig deklariert werden&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Startzeitpunkte verändern sich automatisch&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Wochenenden können als freie Arbeitszeit gebucht werden&lt;/li&gt;&lt;/ul&gt;Der Clou dieses kleinen Tools ist die kostenfreie Nutzung für freie und kommerzielle Projekte.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-7593859304431220162?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2007/07/gantt-charts-mit-php-erstellen.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-117502858572086734</guid><pubDate>Tue, 27 Mar 2007 21:49:00 +0000</pubDate><atom:updated>2007-03-27T23:58:11.886+02:00</atom:updated><title>CASCADE DELETE für Mysql mit dem ZendFramework</title><description>&lt;p class="mobile-post"&gt;Laut &lt;a href="http://framework.zend.com/manual/en/zend.db.table.relationships.html"&gt;Manual des ZendFrameworks&lt;/a&gt; ist es nicht möglich ein CASCADE DELETE 
zu implementieren für einen Mysql-Datenbankserver mit MyISAM Format.&lt;/p&gt;&lt;p class="mobile-post"&gt;Nun denn, hier ist die php-Lösung, um genau dieses doch zu ermöglichen 
außerhalb der DB-Server Möglichkeiten:&lt;/p&gt;&lt;pre&gt;[Project extends Zend_Db_Table]
[...]
 protected $_dependentTables = array(
  'Task'
 );
 protected $_referenceMap = array(
  'Customer' =&amp;gt; array(
   'columns' =&amp;gt; array('customer_id'),
   'refTableClass' =&amp;gt; 'Customer',
   'refColumns' =&amp;gt; array('id')
  ),
  'Contact' =&amp;gt; array(
   'columns' =&amp;gt; array('contact_id'),
   'refTableClass' =&amp;gt; 'Contact',
   'refColumns' =&amp;gt; array('id')
  )
 );&lt;/pre&gt;
&lt;pre&gt;[...]
 public function delete($where)
 {
  $objRowset = $this-&amp;gt;fetchAll($where);&lt;/p&gt;&lt;p class="mobile-post"&gt;  foreach ($objRowset as $objRow)
  {
   foreach ($this-&amp;gt;getDependentTables() as $depObject)
   {
    $objModel = new $depObject();
    $reference = $objModel-&amp;gt;getReference(__CLASS__);&lt;/p&gt;&lt;p class="mobile-post"&gt;    foreach ($reference[Zend_Db_Table_Abstract::COLUMNS] as $column)
    {
     $depWhere = $objModel-&amp;gt;getAdapter()-&amp;gt;quoteInto($column . ' = ?', 
$objRow-&amp;gt;id);
     $objModel-&amp;gt;delete($depWhere);
    }
   }
  }
  parent::delete($where);
 }
[...]&lt;/pre&gt;&lt;p class="mobile-post"&gt;Wer also eine Mysql-Datenbank benutzt kann somit ohne Probleme ein 
kaskadierendes Löschen implementieren.
Einfach dazu die $_referenceMap und die $_dependentTables korrekt führen 
und die &lt;a href="http://framework.zend.com/manual/en/zend.db.table.html#zend.db.table.delete"&gt;Zend_Db_Table_Abstract::delete($where)&lt;/a&gt; wird mit der 
entsprechenden Domänenlogik ein kaskadierendes Löschen auf alle 
Objektbeziehungen durchführen.&lt;/p&gt;&lt;p class="mobile-post"&gt;Wer dazu mehr Fehlerprüfung oder einen anderen Ansatz dazu verfolgt, 
bitte mal im Kommentar schreiben. Oder wer das so verwenden konnte bitte 
auch mal kommentieren. Wäre doch cool, wenn ich das nicht nur so für 
mich mache.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Zur Verwendung kommt derzeit das &lt;a href="http://framework.zend.com/download"&gt;ZendFramework 0.9.1&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-117502858572086734?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2007/03/cascade-delete-fr-mysql-mit-dem.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-116861064071259930</guid><pubDate>Fri, 12 Jan 2007 14:04:00 +0000</pubDate><atom:updated>2007-03-27T23:51:33.130+02:00</atom:updated><title>Rewrite - Exemplar</title><description>&lt;p class="mobile-post"&gt;Hier mal wieder ein Exemplar, welches echt supi funzt...&lt;/p&gt;&lt;p class="mobile-post"&gt;Ich möchte in HTML Dateien immer eine .css Datei angeben, auch wenn 
diese dynamisch generiert wird. Dazu habe ich einen CSS Generator, der 
die .css Dateien erstellt und auch die Ausgabe übernehmen kann.&lt;/p&gt;&lt;p class="mobile-post"&gt;RewriteEngine On&lt;/p&gt;&lt;p class="mobile-post"&gt;# wenn Datei nicht gefunden
RewriteCond %{REQUEST_FILENAME} !-f&lt;/p&gt;&lt;p class="mobile-post"&gt;# dann wirf den Generator an
RewriteRule stylesheet_([\d]*)\.css$ ../php/stylesheet.php?pid=$1 [L]
# für Startseite diese Regel
RewriteRule stylesheet(_?)\.css$ ../php/stylesheet.php [L]&lt;/p&gt;&lt;p class="mobile-post"&gt;Für die, die es besser können, bitte kommentieren. Ich bin absoluter 
Newbie mit diesen Dingern.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-116861064071259930?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2007/01/rewrite-exemplar.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-116427347310210341</guid><pubDate>Thu, 23 Nov 2006 09:17:00 +0000</pubDate><atom:updated>2006-11-23T11:27:33.923+01:00</atom:updated><title>SMARTY und SESSION verträgt sich nicht immer</title><description>&lt;p class="mobile-post"&gt;Nachdem wir in einem Projekt ständig Session-Werte verloren haben 
konnten wir dieses Problem lösen:&lt;/p&gt;&lt;p class="mobile-post"&gt;SMARTY darf man nicht die $_SESSION Variable als "_SESSION" Assignment 
zuweisen. Dies ist ja auch nicht unbedingt nötig, da Smarty auf die 
Session per $smarty.session zugreifen kann.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-116427347310210341?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/11/smarty-und-session-vertrgt-sich-nicht.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-116220116897359993</guid><pubDate>Mon, 30 Oct 2006 09:39:00 +0000</pubDate><atom:updated>2006-10-30T14:02:20.633+01:00</atom:updated><title>Einzug in die Playboy-Ville ;)</title><description>&lt;p class="mobile-post"&gt;Hier wohne ich jetzt mit ein paar anderen Raumis zusammen: 
&lt;a href="http://www.robert-kummer.de/album.html?album=2006-10-28"&gt;http://www.robert-kummer.de/album.html?album=2006-10-28&lt;/a&gt; (16 Bilder)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-116220116897359993?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/10/einzug-in-die-playboy-ville.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-116081717461296632</guid><pubDate>Sat, 14 Oct 2006 09:12:00 +0000</pubDate><atom:updated>2006-10-14T11:19:16.903+02:00</atom:updated><title>.mobi ist am Start</title><description>&lt;p class="mobile-post"&gt;Seit kurzem sind die .mobi Domains verfügbar. Ich konnte mir auch gleich 
zwei davon sichern:
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://kummer.mobi"&gt;kummer.mobi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://robert-kummer.mobi"&gt;robert-kummer.mobi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;Für die Domains gibt es einige Auflagen, die man 
&lt;a href="http://pc.mtld.mobi/switched/reg_compliancepolicy.html"&gt;hier&lt;/a&gt; einsehen 
kann. So kann es bspw. passieren, dass die Domains gelöscht werden, wenn 
man sich nicht an die Regularien zur Darstellung auf mobilen Endgeräten 
hält.&lt;/p&gt;&lt;p class="mobile-post"&gt;Beispiele für mobile Domains sind &lt;a href="http://demo.mtld.mobi/"&gt;hier&lt;/a&gt; zu finden.&lt;/p&gt;&lt;p class="mobile-post"&gt;Wer selbst einmal eine .mobi Adresse testen möchte, der kann folgenden 
Service der &lt;a href="http://pc.mtld.mobi/"&gt;MTLD.mobi&lt;/a&gt; benutzen: &lt;form action="http://emulator.mtld.mobi/emulator.php" method="get"&gt;&lt;input type="hidden" name="emulator" value="sonyK750" /&gt;&lt;input type="text" name="webaddress" value="kummer.mobi" /&gt;&lt;input type="submit" /&gt;&lt;/form&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;Schickt mir doch eure besten .mobi Domains.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-116081717461296632?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/10/mobi-ist-am-start.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-116041853753551308</guid><pubDate>Mon, 09 Oct 2006 18:28:00 +0000</pubDate><atom:updated>2006-10-09T20:30:11.876+02:00</atom:updated><title>Internet Explorer Developer Toolbar</title><description>&lt;p class="mobile-post"&gt;Bevor man wieder lange suchen muss, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en#QuickInfoContainer"&gt;hier&lt;/a&gt; die Developer Toolbar für den 
"grottigen" IE.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-116041853753551308?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/10/internet-explorer-developer-toolbar.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-116033611754584253</guid><pubDate>Sun, 08 Oct 2006 19:35:00 +0000</pubDate><atom:updated>2006-10-08T21:41:03.243+02:00</atom:updated><title>mein Arbeitsplatz...</title><description>&lt;p class="mobile-post"&gt;So, damit ihr auch mal meinen Arbeitsplatz in Augenschein nehmen könnt, 
hier mal ein Foto davon.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.robert-kummer.de/gallery/photo/2006-10-05/dscn2660.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px;" src="http://www.robert-kummer.de/gallery/photo/2006-10-05/dscn2660.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;&lt;a href="http://www.robert-kummer.de/album.html?album=2006-10-05"&gt;Hier&lt;/a&gt; gibt es noch ein paar mehr...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-116033611754584253?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/10/mein-arbeitsplatz.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-115806989491342657</guid><pubDate>Tue, 12 Sep 2006 14:04:00 +0000</pubDate><atom:updated>2006-09-12T16:18:52.406+02:00</atom:updated><title>Regex-Pattern...</title><description>&lt;p class="mobile-post"&gt;Für verschiedenste Formularfeldinhaltsprüfungen kann man kompliziert vorgehen oder aber Regular Expression verwenden. Da diese wiederum nicht 
ganz trivial sind, hier eine kleine Auswahl von sinnvollen Patterns für 
den Alltagsgebrauch eines Programmierers&lt;/p&gt;
&lt;p class="mobile-post"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;Freitext&lt;/tt&gt; - ~^(.*)$~msi&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Zahl&lt;/tt&gt; - ~^\d+$~msi&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Buchstaben und Leerzeichen&lt;/tt&gt; - ~^[a-zA-Z\ ]+$~msi&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;eMail&lt;/tt&gt; - ~^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$~msi&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Datum (D.M.JJ, DD.MM.JJJJ, ...)&lt;/tt&gt; - ~^(\d?\d\.){2}(\d{4}|\d{2})$~msi&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Datum mit Prüfung auf Tagesanzahl&lt;/tt&gt; - ~^\b(((0?[1-9]|[12][0-9])\.(0?[1-9]|1[0-2])\.)| (30\.((0?[13-9])|(1[0-2]))\.)| (31\.(0?[13578]|1[02])\.))(\d{2}|\d{4})\b$~msi&lt;br/&gt;&lt;small&gt;(ohne Leerzeichen)&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Zeit&lt;/tt&gt; - ~^\b([01][0-9]|2[0-3])(:[0-5][0-9]){1,2}\b$~msi&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;Preis (1234,00; -1.234,56; ...)&lt;/tt&gt; - ~^(-?)(?(?=.*\d{2}\$)([\d,]+)\.\d{2}\$|([\d\.]+),\d{2})$~msi&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;Gefunden und teilweise verändert bei &lt;a href="http://www.regenechsen.de/"&gt;http://www.regenechsen.de/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-115806989491342657?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/09/regex-pattern.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-115795404685246954</guid><pubDate>Mon, 11 Sep 2006 05:54:00 +0000</pubDate><atom:updated>2006-09-11T08:07:26.120+02:00</atom:updated><title>CSS: Fonttester</title><description>&lt;p class="mobile-post"&gt;Der Fonttester ist eine sehr nützliche Applikation für Web-Designer. Damit lassen sich spontan verschieden CSS-Text-Einstellungen on-the-fly testen. Einfach mal ausprobieren!&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;a href="http://www.fonttester.com/"&gt;http://www.fonttester.com/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-115795404685246954?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/09/css-fonttester.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-115795399849627958</guid><pubDate>Mon, 11 Sep 2006 05:53:00 +0000</pubDate><atom:updated>2006-09-11T08:08:01.413+02:00</atom:updated><title>JS-Framework: MOOTOOLS</title><description>&lt;p class="mobile-post"&gt;Das MooTools Framework ist ein objektorientiertes Framework, welches crossbrowser diverse Möglichkeiten bietet:&lt;blockquote&gt;It comes with a choice of more than fifteen scripts, plugins and addons, including Effects (moo.fx) Ajax (moo.ajax), Dom Navigator (moo.dom), Drag and Drop, Sortable lists, Cookies Manager and many more.&lt;/blockquote&gt;
&lt;/p&gt;
&lt;p class="mobile-post"&gt;Der große Vorteil dabei ist die modulare Verwendung. Auf der &lt;a href="http://mootools.net/download/release"&gt;Download-Seite&lt;/a&gt; kann man die Plugins und AddOns auswählen, die man wirklich braucht und sich die Skripte gleich in komprimierter Form zukommen lassen.&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;a href="http://mootools.net/"&gt;http://mootools.net/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-115795399849627958?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/09/js-framework-mootools.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-115322306358410622</guid><pubDate>Tue, 18 Jul 2006 11:44:00 +0000</pubDate><atom:updated>2006-07-18T13:47:10.713+02:00</atom:updated><title>FCKeditor dynamisch anzeigen...</title><description>&lt;p class="mobile-post"&gt;Bei Verwendung von "display:none" zum Verstecken eines FCKeditor Panels 
kann es passieren, dass man keinen Text editieren kann, nachdem man das 
Panel wieder per Javascript anzeigen läßt.&lt;/p&gt;&lt;p class="mobile-post"&gt;Umgebung: Der Text war leer und dann mit einem "&amp;amp;nbsp;" gefüllt.&lt;/p&gt;&lt;p class="mobile-post"&gt;Workaround: Quelltext eingeben und nach Klick auf okay geht es wieder.&lt;/p&gt;&lt;p class="mobile-post"&gt;Lösung: "z-index" so setzen, dass zum Verstecken lediglich ein Bereich 
vor dem FCK liegen kann.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-115322306358410622?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/07/fckeditor-dynamisch-anzeigen.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114959745417492111</guid><pubDate>Tue, 06 Jun 2006 12:37:00 +0000</pubDate><atom:updated>2006-06-06T14:37:34.316+02:00</atom:updated><title>trnd.com . the real network-dialogue . Mundpropaganda für gute Produkte</title><description>&lt;p&gt;Einfach mal ausprobieren:
&lt;a href="http://www.trnd.com/tunes/"&gt;trnd.com . the real network-dialogue . Mundpropaganda für gute Produkte&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;Ist eine gute Alternative zu Mercedes &lt;a href="http://www.mixed-tape.com/"&gt;MixedTape&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114959745417492111?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/06/trndcom-real-network-dialogue.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114884132305060245</guid><pubDate>Sun, 28 May 2006 18:35:00 +0000</pubDate><atom:updated>2006-05-28T20:42:59.266+02:00</atom:updated><title>Der Frauenversteher und ne heiße Versuchung...</title><description>&lt;p class="mobile-post"&gt;...sind zu meiner Blogroll hinzugekommen. Also bei Gelegenheit mal 
reinschauen.&lt;/p&gt;&lt;p class="mobile-post"&gt;&lt;a href="http://www.bastiportal.de/loudblog/" target="_blank"&gt;Bastis Tagebuch&lt;/a&gt; ist ein super witziges Hörtagebuch von einem echten 
Frauenversteher - so wie ich einer bin ;-)&lt;/p&gt;&lt;p class="mobile-post"&gt;Und den Blog von &lt;a href="http://www.planet-sabi.rewur.de/" target="_blank"&gt;Sabi&lt;/a&gt; hab ich durch Zufall und Lesen des &lt;a href="http://www.rewur.de/" target="_blank"&gt;Tschaba&lt;/a&gt; Blogs 
mitbekommen. Ich glaube ich brauche dazu nichts zu sagen - &lt;a href="http://www.planet-sabi.rewur.de/?p=17"&gt;seht&lt;/a&gt; einfach selbst, was ich meine!&lt;/p&gt;&lt;p class="mobile-post"&gt;Alle sind natürlich auch in meinem &lt;a href="http://www.google.com/reader/view/" target="_blank"&gt;Google Reader&lt;/a&gt; 
gespeichert - der mit Abstand beste FeedReader, den ich kenne.&lt;/p&gt;&lt;p class="mobile-post"&gt;so long, have nice day.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114884132305060245?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/05/der-frauenversteher-und-ne-heie.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114884035396778337</guid><pubDate>Sun, 28 May 2006 18:19:00 +0000</pubDate><atom:updated>2006-05-28T20:22:34.333+02:00</atom:updated><title>Gute Begleiter...</title><description>&lt;p class="mobile-post"&gt;Während der letzten Woche habe ich im Angesicht des Todes...naja, eher im Angesicht des Schweißes meine Diplomarbeit in einer 
Nacht-und-Nebel-Aktion verfaßt.&lt;/p&gt;&lt;p class="mobile-post"&gt;Dazu wollte ich mal meine immerwährenden Begleiter benennen:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.duden.de/neue_rechtschreibung/neuregelung/neuregelung.html"&gt;Neuregelungen von A-Z (Duden)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.openthesaurus.de/"&gt;OpenThesaurus&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;Vielleicht helfen sie einem von Euch ja mal in einer ähnlichen Situation weiter.&lt;/p&gt;&lt;p class="mobile-post"&gt;der rok, der jetzt endlich fertig zu sein glaubt ;-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114884035396778337?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/05/gute-begleiter.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114733055778026374</guid><pubDate>Thu, 11 May 2006 06:55:00 +0000</pubDate><atom:updated>2006-05-11T10:14:27.860+02:00</atom:updated><title>nüzliche Links zu LaTeX...</title><description>&lt;p class="mobile-post"&gt;Hier mal wieder ein paar nützliche Links, damit ich sie nicht vergesse ;-)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.physicsnet.org/html/content-108-3.html" target="_blank"&gt;Die LaTeX 2e Kurzreferenz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.stdout.org/~winston/latex/latexsheet.pdf" target="_blank"&gt;Das LaTeX 2e Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.din1505.informationskompetenz.net/" target="_blank"&gt;BibTex Styles für Literaturverzeichnisse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wh10.tu-dresden.de/~lego/tex_material.php" target="_blank"&gt;Carsten Vogel - TeX-Treff Dresden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://141.76.121.6/~lego/material/Otto_Brueck_BibTeX.pdf" target="_blank"&gt;BibTex, oder wie erstellt man ein Literaturverzeichnis&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114733055778026374?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/05/nzliche-links-zu-latex.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114537478914720295</guid><pubDate>Tue, 18 Apr 2006 15:39:00 +0000</pubDate><atom:updated>2006-05-11T08:07:00.480+02:00</atom:updated><title>LaTeX: Quellcode-Listing</title><description>&lt;p class="mobile-post"&gt;Es gibt mehrere Möglichkeiten mit LaTeX Quellcode einzubinden. Von Haus aus gibt es da die Verbatim-Umgebung. Sie wird folgendermaßen benutzt:
&lt;pre&gt;
\begin{verbatim}
hier kommt dann der Quellcode...
\end{verbatim}
&lt;/pre&gt;
Dieser Text wird dann in einer Festbreitenschrift dargestellt.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Eine sehr viel bessere Möglichkeit bietet das Paket &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings-1.3.pdf" target="_blank"&gt;listings&lt;/a&gt;&lt;/span&gt;. Dazu in der Präambel einfach das Paket laden mit &lt;code&gt;\usepackage{listings}&lt;/code&gt;.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Es gibt nun mehrere Möglichkeiten Quellcode darstellen zu lassen.
&lt;ul&gt;&lt;li&gt;Kurze Quelltexte einfach direkt reinschreiben:
&lt;pre&gt;
\lstset{language=&amp;lt;Sprache&amp;gt;}
\begin{lstlisting}[&amp;lt;Optionen&amp;gt;]
hier kommt dann der Quellcode...
\end{lstlisting}
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Längere Quelltexte kann man auch aus Dateien direkt einbinden mit:
&lt;pre&gt;
\lstset{language=&amp;lt;Sprache&amp;gt;}
\lstinputlisting[&amp;lt;Optionen&amp;gt;]{pfad/zur/datei.php}
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Innerhalb von Fließtext kann man auch Quellcode darstellen mit:
&lt;pre&gt;\lstinline[&amp;lt;Optionen&amp;gt;]{hier kommt der Quellcode...}&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
&lt;p class="mobile-post"&gt;Die gängigsten Programmiersprachen werden unterstützt und man kann unter anderem folgende Werte als &lt;span style="font-style:italic;"&gt;&amp;lt;Sprache&amp;gt;&lt;/span&gt; einsetzen:&lt;br/&gt;C, C++, HTML, Ant, Basic, Delphi, Java, Lisp, make, Pascal, PHP, Python, Ruby, tcl, TeX, LaTeX, VRML, Perl, Prolog, SQL, VBScript, XML, XSLT und viele weitere.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Als &lt;span style="font-style:italic;"&gt;&amp;lt;Optionen&amp;gt;&lt;/span&gt; kann man folgende verwenden:
&lt;dl&gt;
&lt;dt&gt;emph&lt;/dt&gt;&lt;dd&gt;Liste hervorzuhebender Schlüsselwörter, &lt;span style="font-style:italic;"&gt;emph={a,b,c}&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;emphstyle&lt;/dt&gt;&lt;dd&gt;Art der Hervorhebung, &lt;span style="font-style:italic;"&gt;emphstyle=\underbar&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;breaklines&lt;/dt&gt;&lt;dd&gt;bricht überlange Zeilen um, &lt;span style="font-style:italic;"&gt;breaklines=true&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;showstringspaces&lt;/dt&gt;&lt;dd&gt;Anzeige von Leerzeichen im Quellcode, &lt;span style="font-style:italic;"&gt;showstringspaces=false&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;showspaces&lt;/dt&gt;&lt;dd&gt;vgl. showstringspaces&lt;/dd&gt;
&lt;/dl&gt;
Beim &lt;span style="font-style:italic;"&gt;\lstinputlisting&lt;/span&gt; kommen zusätzliche Optionen hinzu:
&lt;dl&gt;
&lt;dt&gt;firstline&lt;/dt&gt;&lt;dd&gt;Ausschnittsbeginn festlegen, &lt;span style="font-style:italic;"&gt;firstline=2&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;lastline&lt;/dt&gt;&lt;dd&gt;Asschnittsende festlegen, &lt;span style="font-style:italic;"&gt;lastline=5&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;numbers&lt;/dt&gt;&lt;dd&gt;Zeilennummern, &lt;span style="font-style:italic;"&gt;numbers=left&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;numberstyle&lt;/dt&gt;&lt;dd&gt;Stil der Nummerierung, &lt;span style="font-style:italic;"&gt;numberstyle=\tiny&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;stepnumber&lt;/dt&gt;&lt;dd&gt;Schrittweite der Nummerierung, &lt;span style="font-style:italic;"&gt;stepnumber=5&lt;/span&gt;&lt;/dd&gt;
&lt;/dl&gt;
Für große Dokumente sind folgende Optionen sehr sinnvoll:
&lt;dl&gt;
&lt;dt&gt;caption&lt;/dt&gt;&lt;dd&gt;setzt eine Überschrift, &lt;span style="font-style:italic;"&gt;caption={Titel oder so}&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;label&lt;/dt&gt;&lt;dd&gt;Bereichsmarkierung um mit \ref{} daraufzuzugreifen, &lt;span style="font-style:italic;"&gt;label=code:Sourcecode&lt;/span&gt;&lt;/dd&gt;
&lt;dt&gt;frame&lt;/dt&gt;&lt;dd&gt;setzt einen Rahmen (Großbuchstaben bedeuten eine Doppellinie), &lt;span style="font-style:italic;"&gt;frame=tlRB&lt;/span&gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/p&gt;
&lt;p class="mobile-post"&gt;Für ein Verzeichnis der enthaltenen Listings benutzt man &lt;code&gt;\lstlistoflistings&lt;/code&gt;.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Als nicht-freie Alternative gibt es noch das &lt;span style="font-weight:bold;"&gt;lgrind&lt;/span&gt; Paket. Auf dieses wird hier aber nicht weiter eingegangen.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114537478914720295?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/04/latex-quellcode-listing.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114500836279209752</guid><pubDate>Fri, 14 Apr 2006 09:52:00 +0000</pubDate><atom:updated>2006-04-14T11:55:46.333+02:00</atom:updated><title>Links to remember...</title><description>&lt;p class="mobile-post"&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://bennolan.com/behaviour/"&gt;Behaviour : Using CSS selectors to 
apply Javascript behaviours&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://agachi.name/weblog/archives/2005/01/30/rewriting-dynamic-urls-into-friendly-urls.htm"&gt;Rewriting dynamic URLs into friendly URLs - Valentin Agachi: web developer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sourcelabs.com/blogs/ajb/2005/12/10_places_you_must_use_ajax.html"&gt;Alex Bosworth's Weblog: 10 Places You Must Use Ajax&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.456bereastreet.com/archive/200604/a_showcase_for_attractive_and_accessible_websites/"&gt;A showcase for attractive and accessible websites | 456 Berea Street&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114500836279209752?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/04/links-to-remember.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114415783083900612</guid><pubDate>Tue, 04 Apr 2006 13:37:00 +0000</pubDate><atom:updated>2006-04-04T16:24:37.023+02:00</atom:updated><title>Die kleine Ameise mit dem "S" auf dem Rücken</title><description>&lt;p class="mobile-post"&gt;Ja, das hat sie wirklich...das wohl tollste 
Entwicklungsunterstützungssystem seit langem ist für mich seit heute 
&lt;a href="http://ant.apache.org/"&gt;ANT&lt;/a&gt;. Diese "Batchverarbeitung" in Java ist wirklich ein außerordentlich nützliches Werkzeug für die alltägliche Arbeit eines Entwicklers.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Ich werde im folgenden mal meine Wünsche und meine Lösungen dazu vorstellen. Vielleicht hilft es ja jemandem, der auch an der Stelle 
stand, als er das erste Mal mit der neuen &lt;a href="http://www.zend.com/de/phpide"&gt;PHPIDE&lt;/a&gt; in Kontakt kam.&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;span style="font-weight:bold;"&gt;0. Kurze Vorbetrachtung&lt;/span&gt;&lt;br /&gt;
Für jede Aktion gibt es sogenannte Targets &lt;tt&gt;&amp;lt;target/&amp;gt;&lt;/tt&gt;. Jeder Target hat 
dabei einen Namen &lt;span style="font-style:italic;"&gt;@name&lt;/span&gt;. Für eventuelle Abhängigkeiten gibt es noch die Abhängigkeiten &lt;span style="font-style:italic;"&gt;@depends&lt;/span&gt;, die vorher erst abgearbeitet werden. Mit 
&lt;span style="font-style:italic;"&gt;@description&lt;/span&gt; kann man noch eine Beschreibung zu dem Target vornehmen.&lt;/p&gt;
&lt;p class="mobile-post"&gt;In jedem &lt;tt&gt;&amp;lt;target/&amp;gt;&lt;/tt&gt; muss man dann mindestens einen Task angeben. Diese Tasks sind dann die Kommandos, die etwas ausführen.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Wenn man bestimmte Werte immer wieder verwenden muss oder diese recht schnell an das jeweilige System anpassen möchte, kann man Properties 
&lt;tt&gt;&amp;lt;property/&amp;gt;&lt;/tt&gt; setzen. Jedes Property hat einen Namen &lt;span style="font-style:italic;"&gt;@name&lt;/span&gt; und kann entweder einen Wert &lt;span style="font-style:italic;"&gt;@value&lt;/span&gt; oder einen Pfad &lt;span style="font-style:italic;"&gt;@location&lt;/span&gt; haben. Der Unterschied ist nur, dass ein als &lt;span style="font-style:italic;"&gt;@location&lt;/span&gt; übergebener Wert keinen abschließenden Slash hat.&lt;/p&gt;
&lt;p class="mobile-post"&gt;Nun zu meinen Problemen und Lösungen:&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-weight:bold;"&gt;1. Einfaches Kopieren als Quasi-Backup-Lösung&lt;/span&gt;&lt;br/&gt;
Dazu gibt es den Kopier-Task &lt;tt&gt;&amp;lt;&lt;a href="http://ant.apache.org/manual/CoreTasks/copy.html"&gt;copy&lt;/a&gt;/&amp;gt;&lt;/tt&gt;, welcher mit Hilfe eines FileSets &lt;tt&gt;&amp;lt;fileset/&amp;gt;&lt;/tt&gt; die nötigen Dateien übergeben bekommt.
&lt;pre&gt;
&amp;lt;target name="backupFiles" description="copies all files"&amp;gt;
  &amp;lt;copy todir="${backup.dir}"&amp;gt;
    &amp;lt;fileset refid="fullproject"&amp;gt;&amp;lt;/fileset&amp;gt;
  &amp;lt;/copy&amp;gt;
&amp;lt;/target&amp;gt;
&lt;/pre&gt;
Das referenzierte FileSet ist auf der selben Ebene wie die Properties und die Targets abgelegt:
&lt;pre&gt;
&amp;lt;fileset dir="${src.dir}" id="fullproject"&amp;gt;
  &amp;lt;exclude name=".project*"/&amp;gt;
  &amp;lt;exclude name="build.xml"/&amp;gt;
  &amp;lt;exclude name="${zip.file}"/&amp;gt;
  &amp;lt;exclude name="resources/objects/*.xsd"/&amp;gt;
  &amp;lt;exclude name="buildscripts/**"/&amp;gt;
  &amp;lt;exclude name="demos/**"/&amp;gt;
  &amp;lt;exclude name="COPYRIGHT"/&amp;gt;
&amp;lt;/fileset&amp;gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;span style="font-weight:bold;"&gt;2. Anlegen des Backup-Verzeichnisses&lt;/span&gt;&lt;br/&gt;
Zum Anlegen eines Verzeichnisses gibt es &lt;tt&gt;&amp;lt;&lt;a href="http://ant.apache.org/manual/CoreTasks/mkdir.html"&gt;mkdir&lt;/a&gt;/&amp;gt;&lt;/tt&gt;.
&lt;pre&gt;
&amp;lt;target name="makeTargetDir" description="makes backup directory"&amp;gt;
  &amp;lt;mkdir dir="${backup.dir}"/&amp;gt;
&amp;lt;/target&amp;gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;span style="font-weight:bold;"&gt;3. Löschen eines alten Backups&lt;/span&gt;&lt;br/&gt;
Für das Löschen benötigt man &lt;tt&gt;&amp;lt;&lt;a href="http://ant.apache.org/manual/CoreTasks/delete.html"&gt;delete&lt;/a&gt;/&amp;gt;&lt;/tt&gt;.
&lt;pre&gt;
&amp;lt;target name="cleanUp" description="cleans up build dir"&amp;gt;
  &amp;lt;delete failonerror="false" verbose="false"&amp;gt;
    &amp;lt;fileset dir="${backup.dir}"/&amp;gt;
  &amp;lt;/delete&amp;gt;
&amp;lt;/target&amp;gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;span style="font-weight:bold;"&gt;5. Packen einer Release Datei&lt;/span&gt;&lt;br/&gt;
Der Einfachheit halber erkläre ich hier nur den &lt;tt&gt;&amp;lt;&lt;a href="http://ant.apache.org/manual/CoreTasks/zip.html"&gt;zip&lt;/a&gt;/&amp;gt;&lt;/tt&gt; Task.
&lt;pre&gt;
&amp;lt;target name="makeZip" description="makes a zip"&amp;gt;
  &amp;lt;zip destfile="${deploy.dir}${file.separator}${zip.file}"&amp;gt;
    &amp;lt;fileset refid="fullproject"&amp;gt;&amp;lt;/fileset&amp;gt;
  &amp;lt;/zip&amp;gt;
&amp;lt;/target&amp;gt;
&lt;/pre&gt;
Das ganze habe ich auch als TarGZ und BZip2 Archiv veröffentlicht. Dazu verweise ich mal lieber auf die komplette build.xml Datei, auf die ich am Ende verweisen werde.&lt;/p&gt;
&lt;p class="mobile-post"&gt;&lt;span style="font-weight:bold;"&gt;6. Erzeugen der kompletten API-Dokumentation&lt;/span&gt;&lt;br/&gt;
Zum Erzeugen der Dokumentation benutze ich &lt;a href="http://www.phpdoc.org/"&gt;phpDocumentor&lt;/a&gt;. Dieser bietet eine Konsolenanwendung, um komfortabel die Generierung anstoßen zu können. Damit man auf Kommandozeilen arbeiten kann braucht man den &lt;tt&gt;&amp;lt;&lt;a href="http://ant.apache.org/manual/CoreTasks/exec.html"&gt;exec&lt;/a&gt;/&amp;gt;&lt;/tt&gt; Task.
&lt;pre&gt;
&amp;lt;target name="apidoc" description="generate api documentation"&amp;gt;
  &amp;lt;exec dir="${php.documentor.dir}" executable="cmd.exe"&amp;gt;
    &amp;lt;arg line="/c ${php.documentor.command}"/&amp;gt;
  &amp;lt;/exec&amp;gt;
&amp;lt;/target&amp;gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;p class="mobile-post"&gt;So viel erstmal zu meinen Einstiegserfahrungen. Weitere Möglichkeiten finden sich in der &lt;a href="http://blog.robert-kummer.de/build.xml"&gt;build.xml&lt;/a&gt; Datei zu meinem PHP Projekt.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114415783083900612?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/04/die-kleine-ameise-mit-dem-s-auf-dem.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114413842976467533</guid><pubDate>Tue, 04 Apr 2006 08:10:00 +0000</pubDate><atom:updated>2006-04-04T10:13:49.796+02:00</atom:updated><title>Access Control List - Rechte [ENH]</title><description>&lt;p class="mobile-post"&gt;Also irgendwie habe ich &lt;a href="http://blog.robert-kummer.de/2006/03/access-control-list-rechte.html"&gt;hier&lt;/a&gt; noch 2 wichtige Rechte vergessen:&lt;ul&gt;&lt;li&gt;&lt;tt&gt;X&lt;/tt&gt; - eXecute&lt;/li&gt;&lt;li&gt;&lt;tt&gt;V&lt;/tt&gt; - reVoke&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;Jetzt müßte es aber vollständig sein. Nur hat es jetzt nen ganz blöden Namen - &lt;span style="font-weight:bold;"&gt;CRUDXGV&lt;/span&gt;. Aber man kann halt nicht alles haben ;-)&lt;/p&gt;&lt;p class="mobile-post"&gt;Wer noch ein wichtiges Recht sieht, der kommentiert einfach mal kurz den Artikel. Danke.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114413842976467533?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/04/access-control-list-rechte-enh.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19952235.post-114370414540613808</guid><pubDate>Thu, 30 Mar 2006 07:35:00 +0000</pubDate><atom:updated>2006-03-30T09:39:48.926+02:00</atom:updated><title>Tötet Kenny...</title><description>&lt;p class="mobile-post"&gt;...Gott, sieht der heute wieder mal fertig aus:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.robert-kummer.de/uploaded_images/southpark-720160.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://blog.robert-kummer.de/uploaded_images/southpark-716806.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-post"&gt;Aber zum Glück kann ja jetzt jeder seinen eigenen haben: &lt;a href="http://spstudio.linda.hosting-friends.de/spstudio4.html"&gt;Southpark Studios&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/19952235-114370414540613808?l=blog.robert-kummer.de%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://blog.robert-kummer.de/2006/03/ttet-kenny.html</link><author>noreply@blogger.com (rok)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>
