<?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>Briefe an die Unendlichkeit &#187; Programmieren</title>
	<atom:link href="http://badu.gritsch.at/tag/programmieren/feed/" rel="self" type="application/rss+xml" />
	<link>http://badu.gritsch.at</link>
	<description>Ein Weblog von Thomas Gritsch</description>
	<lastBuildDate>Thu, 15 Apr 2010 11:36:53 +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>PHP ist toll, aber&#8230;</title>
		<link>http://badu.gritsch.at/2007/10/15/php-ist-toll-aber/</link>
		<comments>http://badu.gritsch.at/2007/10/15/php-ist-toll-aber/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 09:22:45 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/badu/php-ist-toll-aber</guid>
		<description><![CDATA[PHP ist toll. Die Sprache ist schnell gelernt. Keine lästigen Deklarationen von Variablen. Keine mühsame Konvertierung zwischen verschiedenen Typen. Seit Version 5 ist auch eine &#8220;vernünftige&#8221; objektorientierte Programmierung möglich. Sehr praktisch.
Aber es fehlen unter anderem Namensräume und eine umfassende Unicode-Unterstützung. Außerdem machen einige APIs einen sehr unaufgeräumten Eindruck. Das soll sich mit der im 1. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.php.net">PHP</a> ist toll. Die Sprache ist schnell gelernt. Keine lästigen Deklarationen von Variablen. Keine mühsame Konvertierung zwischen verschiedenen Typen. Seit Version 5 ist auch eine &#8220;vernünftige&#8221; objektorientierte Programmierung möglich. Sehr praktisch.</p>
<p>Aber es fehlen unter anderem Namensräume und eine umfassende Unicode-Unterstützung. Außerdem machen einige APIs einen sehr unaufgeräumten Eindruck. Das soll sich mit der im 1. Quartal 2008 erscheinenden Version 6 ändern. </p>
<p>Interessante Beiträge zum Thema PHP6 finden sich unter:</p>
<ul>
<li><a href="http://www.php.net/~derick/meeting-notes.html">php.net &#8211; Minutes PHP Developers Meeting</a></li>
<li><a href="http://visualhype.de/programmierung/aenderungen-in-php-6/371/">Visualhype &#8211; Änderungen in PHP6</a></li>
<li><a href="http://entwickler.com/itr/news/psecom,id,26027,nodeid,82.html">entwickler.com &#8211; PHP6: Was uns erwartet</a></li>
<li><a href="http://jero.net/articles/php6">Jero &#8211; Taking a look at PHP 6</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/10/15/php-ist-toll-aber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shakespeare einmal anders</title>
		<link>http://badu.gritsch.at/2007/06/21/shakespeare-einmal-anders/</link>
		<comments>http://badu.gritsch.at/2007/06/21/shakespeare-einmal-anders/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 17:07:32 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/badu/shakespeare-einmal-anders</guid>
		<description><![CDATA[
Romeo, a lover with an accumulative memory.
Juliet, a beautiful but domineering woman.
Ulysses, a spaceman.

    Act I: A Minimalistic Play.

    Scene I: Juliet Sets Things Straight.

[Enter Romeo and Juliet]

Juliet:
 You are nothing. Remember yourself.
 You are the difference between nothing and a pig.
 Open your heart!

[Exit Romeo]

[Enter Ulysses]

Juliet:
 You are [...]]]></description>
			<content:encoded><![CDATA[<pre>
Romeo, a lover with an accumulative memory.
Juliet, a beautiful but domineering woman.
Ulysses, a spaceman.

    Act I: A Minimalistic Play.

    Scene I: Juliet Sets Things Straight.

[Enter Romeo and Juliet]

Juliet:
 You are nothing. Remember yourself.
 You are the difference between nothing and a pig.
 Open your heart!

[Exit Romeo]

[Enter Ulysses]

Juliet:
 You are the twice the square of the product of an stinking
 goat and a fat pig. Speak your mind!

    Scene II: Accumulative Juggling

[Exit Ulysses]

[Enter Romeo]

Romeo:
 You are me.

Juliet:
 Recall your inner most fears. You are the sum of me and thyself.
 Are you better than nothing?

Romeo:
 If not, we shall proceed to scene IV.

Juliet:
 Open your heart! Remember me.

[Exit Romeo]

    Scene III: A Spaceman Interferes.

[Enter Ulysses]

Juliet:
 Speak thy mind! 

Ulysses:
 We must return to Scene II.

    Scene IV: Romeo's head overflows.

[Exeunt]
</pre>
<p>Dieses &#8220;Stück&#8221; ist natürlich nicht von <a href="http://de.wikipedia.org/wiki/William_Shakespeare">William Shakespeare</a>. Tatsächlich stammt der Text aus der Feder Peter Nillius&#8217;. Geschrieben in der <a href="http://shakespearelang.sourceforge.net/">Programmiersprache Shakespeare</a>. Diese gehört zu den sogenannten <a href="http://de.wikipedia.org/wiki/Esoterische_Programmiersprache">esoterischen Programmiersprachen</a>. Meistens handelt es sich um Programmiersprachen mit möglichst unverständlicher Syntax. Im Fall von Shakespeare geht es darum das Programm wie ein  Shakespeare-Stück aussehen zu lassen. Beispielsweise übernehmen die Figuren aus unserem Stück die Rolle der Variablen. </p>
<p>Wer sich etwas näher mit der Shakespeare Programming Language auseinandersetzen will sollte einen Blick auf die <a href="http://shakespearelang.sourceforge.net/">Homepage</a> werfen. Es lohnt sich. Zumindest für Programmierer.</p>
<p>Das Programm berechnet übrigens die ersten n Glieder der Fibonacci-Folge.</p>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/06/21/shakespeare-einmal-anders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unerwartete Ergebnisse mit Javas DateFormat</title>
		<link>http://badu.gritsch.at/2007/06/16/unerwunschte-ergebnisse-mit-javas-datumsparser/</link>
		<comments>http://badu.gritsch.at/2007/06/16/unerwunschte-ergebnisse-mit-javas-datumsparser/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 12:10:55 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/thomas/archives/17</guid>
		<description><![CDATA[Java stellt für das Parsen und Formatieren von Datumseingaben die Klasse java.text.DateFormat bereit. 
Diese Klasse verwendet man in etwa so:

01  String date = "41.01.2007";
02  DateFormat df = DateFormat.getDateInstance(
         DateFormat.MEDIUM,
         Locale.GERMANY);
03  try {
04    Date [...]]]></description>
			<content:encoded><![CDATA[<p>Java stellt für das Parsen und Formatieren von Datumseingaben die Klasse <code><a href="http://java.sun.com/javase/6/docs/api/java/text/DateFormat.html">java.text.DateFormat</a></code> bereit. </p>
<p>Diese Klasse verwendet man in etwa so:</p>
<pre>
01  String date = "41.01.2007";
02  DateFormat df = DateFormat.getDateInstance(
         DateFormat.MEDIUM,
         Locale.GERMANY);
03  try {
04    Date d = df.parse(date);
05    System.out.println(df.format(d));
06  }
07  catch (ParseException ex) {
08    System.out.println("ungültiges Datum");
09  }
</pre>
<p>Jeder kann auf den ersten Blick sehen, dass der 41.01.2007 ein ungültiges Datum ist. Man möchte meinen, dass der Aufruf in Zeile 04 zu einer Exception führen muss. Falsch gedacht. Tatsächlich werden die &#8220;Ãœberschüssigen&#8221; Tage und Monate einfach zum Datum dazuaddiert. Aus dem 41.01.2007 wird so der 10.02.2007 und aus dem 4235.18.1900 wird folgerichtig der 03.01.1913.</p>
<p>Dieses Verhalten mag zwar in manchen Situationen recht praktisch sein, spätestens bei der Validierung von Benutzereingaben sieht die Sache anders aus. Wenn ein Benutzer ein solches ungültiges Datum eingibt, war es wahrscheinlich ein Tippfehler.</p>
<p>Schuld an dem Schlamassel ist der nachsichtige (engl.: lenient) Parser in <code>DateFormat</code>. Diese Nachsichtigkeit kann man dem Parser glücklicherweise austreiben, indem man die Methode <code><a href="http://java.sun.com/javase/6/docs/api/java/text/DateFormat.html#setLenient(boolean)">setLenient(boolean lenient)</a></code> mit dem Paramter <code>false</code> aufruft.</p>
<p>Und so funktioniert das Programm, wie erwartet:</p>
<pre>
01  String date = "41.01.2007";
02  DateFormat df = DateFormat.getDateInstance(
         DateFormat.MEDIUM,
         Locale.GERMANY);
03  df.setLenient(false);
04  try {
05    Date d = df.parse(date);
06    System.out.println(df.format(d));
07  }
08  catch (ParseException ex) {
09    System.out.println("ungültiges Datum");
10  }
</pre>
<p>Warum der Parser standardmäßig den nachsichtiges Parser verwendet bleibt offen.</p>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/06/16/unerwunschte-ergebnisse-mit-javas-datumsparser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysteriöse Zeichen bei Wordpress-Blogs</title>
		<link>http://badu.gritsch.at/2007/04/18/mysteriose-zeichen-bei-wordpress-blogs/</link>
		<comments>http://badu.gritsch.at/2007/04/18/mysteriose-zeichen-bei-wordpress-blogs/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 15:20:00 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/thomas/archives/10</guid>
		<description><![CDATA[Der Kenner wird es sofort erkannt haben. Dieses Weblog wird mit Wordpress betrieben. Wie ich inzwischen aus eigener Erfahrung weiß, kann es im Zusammenspiel mit PHP in Version 5.2.1 zu seltsamen Verhalten kommen. Wer sich schon über Zeichen gewundert hat, die Wordpress scheinbar spontan produziert, sollte einen Blick auf adminblog.de werfen.
]]></description>
			<content:encoded><![CDATA[<p>Der Kenner wird es sofort erkannt haben. Dieses Weblog wird mit <a href="http://www.wordpress.org">Wordpress</a> betrieben. Wie ich inzwischen aus eigener Erfahrung weiß, kann es im Zusammenspiel mit PHP in Version 5.2.1 zu seltsamen Verhalten kommen. Wer sich schon über Zeichen gewundert hat, die Wordpress scheinbar spontan produziert, sollte einen Blick auf <a href="http://www.adminblogger.de/blog/2007/03/12/seltsame-zeichen-vor-dem-html-tag-in-wordpress-mit-php-521/">adminblog.de</a> werfen.</p>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/04/18/mysteriose-zeichen-bei-wordpress-blogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java 6 und die Desktop Integration</title>
		<link>http://badu.gritsch.at/2007/04/16/java-6-und-die-desktop-integration/</link>
		<comments>http://badu.gritsch.at/2007/04/16/java-6-und-die-desktop-integration/#comments</comments>
		<pubDate>Mon, 16 Apr 2007 11:05:08 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.gritsch.at/thomas/archives/8</guid>
		<description><![CDATA[Der Desktop ist, auch wenn es viele sicher anders sehen, noch lange nicht tot. Auch Sun hat den Glauben an den Desktop nicht verloren. Im aktuellen Java-Release finden sich einige Klassen zur Integration einiger Desktop-Funktionen in Java.
So ist es mit der Klasse java.awt.Desktop beispielsweise möglich den Standardbrowser des Betriebssystems zu starten und eine URL anzeigen [...]]]></description>
			<content:encoded><![CDATA[<p>Der Desktop ist, auch wenn es viele sicher anders sehen, noch lange nicht tot. Auch <a href="http://www.sun.com">Sun</a> hat den Glauben an den Desktop nicht verloren. Im aktuellen Java-Release finden sich einige Klassen zur Integration einiger Desktop-Funktionen in Java.</p>
<p>So ist es mit der Klasse <a href="http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html"><code>java.awt.Desktop</code></a> beispielsweise möglich den Standardbrowser des Betriebssystems zu starten und eine URL anzeigen zu lassen.</p>
<p>Puristen werden zurecht aufschreien. Was hat eine Desktop-Integration in einer (pseudo)plattformunabhängigen Programmiersprache zu suchen? Die Antwort: Es ist eine sinnvolle Ergänzung. Trotzdem stellt sich die Frage ob es wirklich notwendig ist mit Desktop-Komponenten die ohnehin schon mit unzähligen APIs überladene Java Distributionen noch weiter aufzublähen.</p>
]]></content:encoded>
			<wfw:commentRss>http://badu.gritsch.at/2007/04/16/java-6-und-die-desktop-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

