<?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>Tobi&#039;s Blog &#187; Programmierung</title>
	<atom:link href="http://www.fukurama.org/wordpress/category/technik/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fukurama.org/wordpress</link>
	<description></description>
	<lastBuildDate>Tue, 17 Jan 2012 20:23:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Die CSS-Alternative zu Float &#8211; display:inline-block</title>
		<link>http://www.fukurama.org/wordpress/2009/10/22/die-css-alternative-zu-float-displayinline-block/</link>
		<comments>http://www.fukurama.org/wordpress/2009/10/22/die-css-alternative-zu-float-displayinline-block/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 21:34:43 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[alternative]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[ff2]]></category>
		<category><![CDATA[ff3]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[inline-block]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=354</guid>
		<description><![CDATA[Als ich mal seit langem mal wieder ein Layout per CSS gestalten musste, kam die Frage auf, ob es nicht eine Alternative für die float-Angabe im CSS gibt, um Elemente dynamisch nebeneinander platzieren zu können. Denn mit folgenden Problemen hab ich bisher jedes mal zu kämpfen, wenn float im Spiel ist: Ein ein mal gesetztes [...]]]></description>
			<content:encoded><![CDATA[<p>Als ich mal seit langem mal wieder ein Layout per CSS gestalten musste, kam die Frage auf, ob es nicht eine Alternative für die float-Angabe im CSS gibt, um Elemente dynamisch nebeneinander platzieren zu können. Denn mit folgenden Problemen hab ich bisher jedes mal zu kämpfen, wenn float im Spiel ist:</p>
<ul>
<li>Ein ein mal gesetztes Float kann nur durch ein Clear aufgehoben werden (oder mit hässlichen Hacks, die aber in verschiedenen Browsern verschiedene Probleme machen)</li>
<li>Man kann immer nur ALLE floats (einer Richtung) aufheben. Also nicht nur das eine bestmmte, sondern im Zweiffel auch alle anderen, die man nicht erwischen wollte.</li>
<li>In so ziemlich jeder unterschiedlichen IE-Version gibt es damit unterschiedliche Fehler.</li>
<li>In allen Browsern brechen die &#8220;gefloeteten&#8221; Elemente aus ihrem umgebenden Container aus. Das muss man dann auch wieder mit Hacks irgendwie umgehen (und das ist, finde ich, das schlimmste Problem, weil am nervigsten)</li>
</ul>
<p>Und wenn man es sich mal genau überlegt, wofür float eigentlich gedacht ist, ist es eigentlich klar, dass es so viele Probleme damit gibt. Ich denke es ist eben für Dinge wie ein Bild, was von Textblöckem umflossen wird und nicht um z.B. Navigationspunkte horizontal in einer Reihe anzuordnen oder ein 3-Spalten-Layout zu erstellen.</p>
<p>Und genau die zwei letztgenannten Anforderungen trieben mich dazu, mal in der Liste der CSS-Angaben zu suchen. Gefunden hab ich dort <strong>display: inline-block</strong>, was zwar auch nicht ohne Probleme ist, aber die sind örtlich begrenzt und eher handhabbar als ein außer Kontrolle geratenes Float.</p>
<p>Man definert mit dieser Angabe, dass sich das aktuelle Element nach &#8220;außen&#8221; wie ein inline-Element verhält, also keinen Umbruch hat und die Breite ggf. automatisch wählt, &#8220;innen&#8221; aber alles wie beim Block möglich ist. Also fixe Breitenangaben, wenn man denn will, margin und padding etc. Außerdem ist es extrem stressfrei, da es eben nur für genau dieses eine Element gilt und in dem umgebenden Block quasi eingesperrt bleibt. Also keine Nebenwirkungen außerhalb haben kann. Und will man den Elementfluss unterbrechen, um z.B. mehrere Zeilen zu haben, reicht ein einfaches &lt;br/&gt;.</p>
<p>Da das aber zu schön ist, gibts dann doch noch ein paar Probleme, nämlich folgende:</p>
<dl>
<dt>Whitespaces</dt>
<dd>Gibt es Zeichen zwischen den Elementen, z.B. Whitespaces, dann werden die, wie bei Fließtext auch, zwischen den Elementen dargestellt und erzeugen einen Abstand. Das kann man verhindern, in dem umgebeenden Block die Schriftgröße 0 zuteilt. Dazu muss es aber eben immer einen Umgebenden Block geben. Wenn man dann nicht für jedes enthaltene Element wieder definieren will, wie groß die Schrift dort wieder sein soll, muss man global eine absolute Schriftgröße angeben (<strong>* { font-size; 10pt; }</strong>). Alternativ kann man auch einfach keine Zeichen zwischen die Elemente setzen, auch keinen Zeilenumbruch, und braucht dann nicht mit den Schriftgrößen hantieren (der  Quellcode ist dann aber unleserlich).</dd>
<dt>FireFox vor Version 2</dt>
<dd>Alle Versionen des FireFox vor Version 3 kennen die Angabe nicht. Allerdings gibt es dafür dort eine properitäre Angabe die genau das gleiche macht. Und die inline-block Angabe wird komplett ignoriert. Also kann man einfach VOR display:inline-block; die Angabe <strong>display:-moz-inline-box;</strong> setzen und alle FF sind glücklich</dd>
<dt>IE vor Version 8</dt>
<dd>Alle IE vor der Version 8 kennen die Angabe nicht. Allerdings ist display:inline; dort so fehlerhaft umgesetzt dass es sich <strong>exakt so wie display:inline-block</strong> verhält <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Dumm ist nur, dass man nicht so einfach vorgehen kann wie beim FF kleiner v3 da die unbekannten Angaben trotzdem verwendet werden (was auch immer er dann macht, aber es ist falsch). Hier kann man entweder ConditionalComments benutzen, worurch die Angaben aber voneinander getrennt abgelegt werden, oder folgende Hacks:</p>
<dl>
<dt>Für IE 6</dt>
<dd><strong>* html MEINELEMENT { display: inline; }</strong></dd>
<dt>Für IE 7</dt>
<dd><strong>*+ html MEINELEMENT { display: inline; }</strong></dd>
</dl>
<p>Leider muss man BEIDE Angaben einzeln machen, da der eine Hack für den IE7 den für den IE6 unbrauchbar macht.</dd>
<dt>Unterschiedliche Höhen</dt>
<dd>Die Elemente, die man nebeneinander platzieren möchte, sind ja nicht immer alle gleich groß. Der Trick, das am einfachsten und effektivsten ist, ist einfach alle per <strong>vertical-align:top</strong> an der oberen Kante ausrichten.</dd>
</dl>
<p>Damit lassen sich für folgende Browser alle Unzulänglichkeiten ausbügeln, die mir bisher aufgefallen sind und es sieht dort überall gleich aus:</p>
<ul>
<li>Opera seit mindestens v9.5</li>
<li>IE seit v6</li>
<li>FF seit mindestens v0.9</li>
</ul>
<p>Hier mal ein Beispiel und der Code für eine Liste, deren Elemente nebeneinander stehen sollen und nach deren dritten Element eine zweite Zeile beginnen soll. Natürlich ist das für so ein einfaches beispiel viel einfacher per float umsetzbar, aber ich will gar nicht wissen, wie viele Zeilen CSS-Hacks ich schon geschrieben habe, um genau so einfache Sachen in größeren Layouts für den IE wieder gangbar zu machen.</p>
<p>Bsp: Display:inline-block <a href='http://www.fukurama.org/wordpress/wp-content/uploads/2009/10/codeexdid.htm'>in Aktion.</a></p>
<p><code><br />
&lt;style type="text/css"&gt;<br />
/* solve whitespace-problem, part 1 */<br />
* {<br />
	font-size: 12pt;<br />
}<br />
div#codeexdib {<br />
	/* solve whitespace-problem, part 2 */<br />
	font-size: 0;<br />
	/* only to show... */<br />
	border: solid 2px blue;<br />
	margin: 0;<br />
	padding: 0;<br />
	list-style: none;<br />
}<br />
div#codeexdib div {<br />
	/* FF before v3 solved */<br />
	display: -moz-inline-box;<br />
	display: inline-block;<br />
	/* force alignment */<br />
	vertical-align: top;<br />
	/* only to show... */<br />
	border: solid 2px red;<br />
	margin: 0;<br />
	padding: 1em;<br />
}<br />
/* IE6 solved */<br />
* html div#codeexdib div {<br />
	display: inline;<br />
}<br />
/* IE7 solved */<br />
*+ html div#codeexdib div {<br />
	display: inline;<br />
}<br />
&lt;/style&gt;<br />
&lt;div id="codeexdib"&gt;<br />
	&lt;div style="height:8em"&gt;Eins:1&lt;/div&gt;<br />
	&lt;div&gt;Zwei:1&lt;/div&gt;<br />
	&lt;div style="width:4em"&gt;Drei:1&lt;/div&gt;<br />
	&lt;br/&gt;<br />
	&lt;div&gt;Eins:2&lt;/div&gt;<br />
	&lt;div&gt;Zwei:2&lt;/div&gt;<br />
&lt;/div&gt;<br />
</code></p>
<p><ins datetime="2009-10-23T06:31:59+00:00">Nachtrag: Ich hatte im Beispiel vormals UL und LI verwenden und darin ein BR, das funktioniert natürlich nicht weils nicht valide ist. Interessanterweise &#8220;mekern&#8221; nur alle IE (6 bis <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> und verschieben das BR in das davor liegende LI um wieder validen Code zu haben.</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/10/22/die-css-alternative-zu-float-displayinline-block/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress-Mythen: Beschleunigung mit Themenoptimierung</title>
		<link>http://www.fukurama.org/wordpress/2009/02/09/wordpress-mythen-beschleunigung-mit-themenoptimierung/</link>
		<comments>http://www.fukurama.org/wordpress/2009/02/09/wordpress-mythen-beschleunigung-mit-themenoptimierung/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:20:52 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[myth]]></category>
		<category><![CDATA[optimize]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=328</guid>
		<description><![CDATA[Bei meinen Recherchen wie ich meinem etwas leistungsschwachen Server noch etwas von der Last mit WordPress abnehmen kann, bin ich über diesen Artikel bzw. dessen englische Quelle gestolpert, die sich merkwürdig anhörten. Die Artikel sind zwar von Anfang 2008, womit das Verhalten ggf. nur bei alten WP-Versionen autritt, die Kommentare reichen aber bis Dezember 2008 [...]]]></description>
			<content:encoded><![CDATA[<p>Bei meinen Recherchen wie ich meinem etwas <a href="/wordpress/2009/01/12/thinclient-pc-als-server-anschaffung-und-einrichtung/">leistungsschwachen Server</a> noch etwas von der Last mit WordPress abnehmen kann, bin ich über <a href="http://www.kostenlose-javascripts.de/blog/70-wordpress-beschleunigen">diesen Artikel</a> bzw. dessen <a href="http://yoast.com/speed-up-and-clean-up-your-wordpress/">englische Quelle</a> gestolpert, die sich merkwürdig anhörten. Die Artikel sind zwar von Anfang 2008, womit das Verhalten ggf. nur bei alten WP-Versionen autritt, die Kommentare reichen aber bis Dezember 2008 wo schon die aktuelle Version im Umlauf war.</p>
<p>Es geht darum, dass man WordPress bzw. die Themen damit schneller machen kann wenn man die Config-Angaben in den Templates statisch hinterlegt. Es wird behauptet dass damit <cite>[...]you can remove 11 queries to the database, and this can highly speed up your theme[...]</cite>.</p>
<p>Ein kurzer Test am eigenen Blog belegt, dass das nicht stimmt. Die Config-Werte werden, so wie sich das auch gehört, am Stück eingelesen und Programmintern gecacht. Das macht den Optimierungseffekt der vorgeschlagenen Maßnahmen zunichte. Außer man gehört der <a href="http://www.daniel-zohm.de/2007/11/27/40-tips-for-optimizing-your-php-code/">Erbsenzähler-PHP-Echo-Statt-Print-Benutzen Fraktion</a> an, dann sollte man das trotzdem unbedingt machen ( sorry Daniel, aber in dieser Disskusion ist noch nicht das letzte Wort gefallen <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Und so kann man&#8217;s selber testen:</p>
<dl>
<dt>MySQL Query-Log einschalten</dt>
<dd><strong>vi /etc/mysql/my.cnf</strong> die Zeile <strong>#log = /var/log/mysql/mysql.log</strong> auskommentieren</dd>
<dt>MySQL neu starten (reload reicht nicht!)</dt>
<dd>sudo /etc/init.d/mysql restart</dd>
<dt>Abfrage starten</dt>
<dd>Den Blog ein mal im Browser aufrufen</dd>
</dl>
<p>Die Abfragen werden in der Datei <strong>/var/log/mysql/mysql.log</strong> geloggt. Danach sollte man, wenn der Blog live im Netz steht, das Logging schleunigst wieder abschalten. Erstens bremst es MySQL stark aus und zweitens wird die Datei sonst schnell sehr groß.</p>
<p>Bei mir ergeben sich ganze 23 Abfragen plus Connect und Disconnect. Die Config-Tabelle selbst wird nur zwei mal abgefragt und keines der angeblich wegoptimierten Abfragen ist dabei (siehe Liste weiter unten). Und in meinem Thema stehen die Config-Angaben nicht statisch drin. Alle anderen Abfragen betreffen den Inhalt. Alles in allem wenig Optimierungsbedürftig.</p>
<h3>Fazit</h3>
<p>Auch wenn man oft den Glauben schon verloren hat, manchmal arbeiten Programme auch mal so wie es sich gehört. Selbst in PHP geschriebene *duckUndWegrenn*</p>
<p>Hier mal meine komplette Liste das SQL-Abfragen beim Aufruf der Startseite (die IDs sind anonymisiert). Bei Unterseiten ist das ähnlich, nur kommen da noch Abfragen über die Kategorien dazu:</p>
<p><code>Connect     wp@localhost on<br />
Init DB     wp<br />
SELECT option_value FROM wp_options WHERE option_name = 'siteurl'<br />
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'<br />
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag') AND tr.object_id IN (301, 302, 303, 304, 305) ORDER BY t.name ASC<br />
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (301, 302, 303, 304, 305)<br />
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category')  ORDER BY t.name ASC<br />
SELECT object_id, term_taxonomy_id FROM wp_term_relationships INNER JOIN wp_posts ON object_id = ID WHERE term_taxonomy_id IN (1,2,3,4,5,6,7,8,9) AND post_type = 'post' AND post_status = 'publish'<br />
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('link_category')  AND tt.count &gt; 0 ORDER BY t.name ASC<br />
SELECT *  , IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) &gt;= NOW(), 1,0) as recently_updated   FROM wp_links  INNER JOIN wp_term_relationships AS tr ON (wp_links.link_id = tr.object_id) INNER JOIN wp_term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id WHERE 1=1 AND link_visible = 'Y'  AND ( tt.term_id = 16 ) AND taxonomy = 'link_category'    ORDER BY link_name ASC<br />
SELECT *  , IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) &gt;= NOW(), 1,0) as recently_updated   FROM wp_links  INNER JOIN wp_term_relationships AS tr ON (wp_links.link_id = tr.object_id) INNER JOIN wp_term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id WHERE 1=1 AND link_visible = 'Y'  AND ( tt.term_id = 15 ) AND taxonomy = 'link_category'    ORDER BY link_name ASC<br />
SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts  WHERE post_type = 'post' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC<br />
SELECT * FROM wp_posts  WHERE (post_type = 'page' AND post_status = 'publish')     ORDER BY post_title ASC<br />
SELECT * FROM wp_posts  WHERE post_type = 'post' AND post_status = 'publish' ORDER BY post_date DESC   LIMIT 10<br />
SELECT * FROM wp_comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 5<br />
SELECT COUNT(comment_ID) FROM wp_comments WHERE comment_post_ID = 11 AND comment_parent = 0 AND comment_date_gmt &lt; '2009-02-05 22:13:29'<br />
SELECT * FROM wp_posts WHERE ID = 11 LIMIT 1<br />
SELECT COUNT(comment_ID) FROM wp_comments WHERE comment_post_ID = 12 AND comment_parent = 0 AND comment_date_gmt &lt; '2009-01-19 23:15:53'<br />
SELECT COUNT(comment_ID) FROM wp_comments WHERE comment_post_ID = 13 AND comment_parent = 0 AND comment_date_gmt &lt; '2009-01-19 23:09:05'<br />
SELECT * FROM wp_posts WHERE ID = 13 LIMIT 1<br />
SELECT COUNT(comment_ID) FROM wp_comments WHERE comment_post_ID = 14 AND comment_parent = 0 AND comment_date_gmt &lt; '2009-01-19 14:35:26'<br />
SELECT * FROM wp_posts WHERE ID = 14 LIMIT 1<br />
SELECT COUNT(comment_ID) FROM wp_comments WHERE comment_post_ID = 15 AND comment_parent = 0 AND comment_date_gmt &lt; '2009-01-05 10:24:01'<br />
SELECT * FROM wp_users WHERE ID = 7 LIMIT 1<br />
SELECT meta_key, meta_value FROM wp_usermeta WHERE user_id = 7<br />
Quit<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/02/09/wordpress-mythen-beschleunigung-mit-themenoptimierung/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RFC konforme E-Mail-Header</title>
		<link>http://www.fukurama.org/wordpress/2008/11/13/rfc-konforme-e-mail-header/</link>
		<comments>http://www.fukurama.org/wordpress/2008/11/13/rfc-konforme-e-mail-header/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 16:23:36 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[1522]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[internationalisierung]]></category>
		<category><![CDATA[quote]]></category>
		<category><![CDATA[rfc]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=282</guid>
		<description><![CDATA[Wie schon bei den Problemen mit UTF-8 E-Mails berichtet, gibt es eine Spezifikation, wie ein Mail-Header zu kodieren ist. Und als Header zählt auch der Betreff. Laut dieser Vorgabe (RFC 1522) dürfen in E-Mail-Headern nur die ersten 127 Zeichen des ASCII-Zeichensatzes benutzt werden. Quasi nur alphanumerische Zeichen und eine Hand voll Sonderzeichen. Also auf keinen [...]]]></description>
			<content:encoded><![CDATA[<p>Wie schon bei den <a href="/wordpress/2005/11/14/utf-8-e-mails/">Problemen mit UTF-8 E-Mails</a> berichtet, gibt es eine Spezifikation, wie ein Mail-Header zu kodieren ist. Und als Header zählt auch der Betreff.</p>
<p>Laut dieser Vorgabe (RFC 1522) dürfen in E-Mail-Headern nur die ersten 127 Zeichen des ASCII-Zeichensatzes benutzt werden. Quasi nur alphanumerische Zeichen und eine Hand voll Sonderzeichen. Also auf keinen Fall Umlaute oder ähnliches.</p>
<p>Wenn man zum Versenden z.B. das Perl-CPAN-Modul <a href="http://search.cpan.org/~rjbs/MIME-Lite/lib/MIME/Lite.pm">MIME::Lite</a> benutzt, werden die nicht erlaubten Zeichen nicht automatisch konvertiert. Da muss man sich selber kümmern.</p>
<p>Am leichtesten geht es mit dem Perl-CPAN-Modul <a href="http://search.cpan.org/~nezumi/MIME-EncWords/EncWords.pm">MIME::EncWords</a>. Die Funktion <strong>MIME::EncWords::encode_mimewords(STRING) : QUOTED_STRING</strong> macht eben genau diese Konvertierung, wobei es interessanter weise den aktuellen Zeichensatz erraten kann. Diesen Teil werde ich noch mal genauer unter die Lupe nehmen, da es schon <a href="/wordpress/2005/11/14/zeichensatzdetektor/">länger auf meiner Liste steht</a>.</p>
<p>Wie oben schon erwähnt, kann und sollte man alle E-Mail-Header quoten. Die Funktion ändert im übrigen den übergebenen String nur, wenn es wirklich nötig ist. Reine Ascii-Inhalte, die unterhalb der 127 Zeichens liegen, werden so belassen wie sie sind. Den E-Mail-Inhalt sollte man aber nicht damit übersetzen lassen. Das funktioniert zwar auch soweit, aber die Zeilenumbrüche sind bei mir dabei verloren gegangen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2008/11/13/rfc-konforme-e-mail-header/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme beim Dokumentendownload im IE</title>
		<link>http://www.fukurama.org/wordpress/2008/07/05/probleme-beim-dokumentendownload-im-ie/</link>
		<comments>http://www.fukurama.org/wordpress/2008/07/05/probleme-beim-dokumentendownload-im-ie/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 22:39:24 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=200</guid>
		<description><![CDATA[Für ein altbekanntes Problem habe ich jetzt die offizielle Fehlermeldung mit einem interessanten Kommentar gefunden. Um folgendes Problem geht es: Wenn im IE ein z.B. PDF-Dokument geöffnet wird, z.B. mit dem InlineViewer, und der Server das cachen per Header verbietet, kommt beim ersten Aufruf des Dokumentes ein &#8220;Datei ist ungültig/nicht vorhanden&#8221;. Um das Problem zu [...]]]></description>
			<content:encoded><![CDATA[<p>Für ein altbekanntes Problem habe ich jetzt die offizielle Fehlermeldung mit einem interessanten Kommentar gefunden. Um folgendes Problem geht es:</p>
<p>Wenn im IE ein z.B. PDF-Dokument geöffnet wird, z.B. mit dem InlineViewer, und der Server das cachen per Header verbietet, kommt beim ersten Aufruf des Dokumentes ein &#8220;Datei ist ungültig/nicht vorhanden&#8221;.</p>
<p>Um das Problem zu umgehen muss die no-cache Angabe entfernt werden. Herausgefunden wurde das nur in mühsamer Kleinarbeit.</p>
<p>Bei Microsoft selbst ist das Verhalten ebenfalls dokumentiert unter <a href="http://support.microsoft.com/?id=316431">http://support.microsoft.com/?id=316431</a>. Dort kann man folgendes lesen:</p>
<p><cite>Status: Es handelt sich hierbei um ein beabsichtigtes Verhalten.</cite></p>
<p>Ich will ja nix sagen, aber wenigstens ein wenig einfallsreicher hätte die Ausrede schon sein können. Das schnöde &#8220;It&#8217;s not a bug, it&#8217;s a feature&#8221; ist schon so dermaßen abgelatscht&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2008/07/05/probleme-beim-dokumentendownload-im-ie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Schlechte CPAN-Module</title>
		<link>http://www.fukurama.org/wordpress/2008/03/12/schlechte-cpan-module/</link>
		<comments>http://www.fukurama.org/wordpress/2008/03/12/schlechte-cpan-module/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 21:09:01 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[encoding]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=175</guid>
		<description><![CDATA[Heute ist mir mal wieder (schmerzhaft) klar gemacht worden, dass es viel Mist im CPAN gibt. Man tendiert halt auch sehr leicht dazu, ein fertiges Modul einfach zu benutzen. Wenig Arbeit, schnelle Ergebnisse. Aber das geht eigentlich immer schief. Die Frage ist nur, wie schlimm die Fehler sind. Mein konkretes Beispiel: das Modul HTML::Tidy, was [...]]]></description>
			<content:encoded><![CDATA[<p>Heute ist mir mal wieder (schmerzhaft) klar gemacht worden, dass es viel Mist im CPAN gibt. Man tendiert halt auch sehr leicht dazu, ein fertiges Modul einfach zu benutzen. Wenig Arbeit, schnelle Ergebnisse. Aber das geht eigentlich immer schief. Die Frage ist nur, wie schlimm die Fehler sind.</p>
<p>Mein konkretes Beispiel: das Modul HTML::Tidy, was auch in anderen Modulen öfter verwendet wird, ist ein wenig Bug-verseucht. Das ist mir leider erst NACH dem Produktiveinsatz aufgefallen. Das Encoding wird von ISO nach UTF oder anders herum durchgeführt, ohne dass man das mitgeteilt bekommt. Am Ende hatte ich hunderte schadhafte Datenbankeintragungen <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Fazit: wenn man ein CPAN-Modul benutzen will, sollte man die Bugs, die Anzahl der durchgefallenen Tests, die Bewertung und den Quellcode ganz genau betrachten. Dumm ist nur, dass einige Module so viele Abhängigkeiten haben. Da ist eine komplette Prüfung &#8216;ne ziemliche Sysiphos-Arbeit. Aber man sonnte sich die Arbeit machen. Immer!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2008/03/12/schlechte-cpan-module/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Perl-OO-Entwicklerhilfe: Nachtrag</title>
		<link>http://www.fukurama.org/wordpress/2007/12/18/perl-oo-entwicklerhilfe-nachtrag/</link>
		<comments>http://www.fukurama.org/wordpress/2007/12/18/perl-oo-entwicklerhilfe-nachtrag/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 19:56:22 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Fukurama]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=119</guid>
		<description><![CDATA[Nachdem mich Micha heute darauf aufmerksam gemacht hab, hab ich jetzt das Modul nochmal komplett geprüft und einen Fehler im &#8220;Manifest&#8221; korrigiert. Die Datei enthält jetzt ALLE benötigten Modulklassen und lässt sich somit auch Installieren und benutzen. Download Fukurama::Class 0.01a PS: wenn die Datei kleiner als 35KB ist, müsst Ihr ggf euren Browsercache mal leeren [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem mich Micha heute darauf aufmerksam gemacht hab, hab ich jetzt das Modul nochmal komplett geprüft und einen Fehler im &#8220;Manifest&#8221; korrigiert. Die Datei enthält jetzt ALLE benötigten Modulklassen und lässt sich somit auch Installieren und benutzen.</p>
<p><del datetime="2008-01-05T17:19:23+00:00"><a href='http://www.fukurama.org/wordpress/wp-content/uploads/2007/12/fukurama-class-001tar1.gz' title='Fukurama::Class 0.01a'>Download Fukurama::Class 0.01a</a></del></p>
<p><del datetime="2008-01-05T17:20:29+00:00">PS: wenn die Datei kleiner als 35KB ist, müsst Ihr ggf euren Browsercache mal leeren <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </del></p>
<p><ins datetime="2008-01-05T17:18:14+00:00">Das Modul ist <a href="http://search.cpan.org/dist/Fukurama-Class/lib/Fukurama/Class.pm">hier im CPAN</a> zu finden.</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2007/12/18/perl-oo-entwicklerhilfe-nachtrag/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Perl-OO-Entwicklerhilfe endlich fertig</title>
		<link>http://www.fukurama.org/wordpress/2007/12/18/perl-oo-entwicklerhilfe-endlich-fertig/</link>
		<comments>http://www.fukurama.org/wordpress/2007/12/18/perl-oo-entwicklerhilfe-endlich-fertig/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 23:48:51 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Fukurama]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=111</guid>
		<description><![CDATA[Nach immerhin 9 Monaten und 16 Tagen ist die Entwicklerhilfe &#8220;Fukurama::Class&#8221; endlich fertig. Es ist derzeit noch im Alpha-Stadium da es einige Herausforderungen bei größeren Anwendungen z.B. in Sachen Geschwindigkeit gibt. Eine größere, bereits bekannte Aufgabe ist auch, die Fehlermeldungen mit dem korrekten Caller zu versehen. Die Caller sind zur Compielzeit schwer nachvollziehbar, da der [...]]]></description>
			<content:encoded><![CDATA[<p>Nach immerhin 9 Monaten und 16 Tagen ist die Entwicklerhilfe &#8220;Fukurama::Class&#8221; endlich fertig. Es ist derzeit noch im Alpha-Stadium da es einige Herausforderungen bei größeren Anwendungen z.B. in Sachen Geschwindigkeit gibt. Eine größere, bereits bekannte Aufgabe ist auch, die Fehlermeldungen mit dem korrekten Caller zu versehen. Die Caller sind zur Compielzeit schwer nachvollziehbar, da der Debugger hier leider nicht weiter hilft.</p>
<p><del datetime="2008-01-05T17:18:14+00:00">Hier schon mal zum ausprobieren: Fukurama::Class 0.01a. Im CPAN ist es noch nicht hochgeladen, das wird aber noch kommen.</del></p>
<p><del datetime="2008-01-05T17:21:53+00:00"><ins datetime="2007-12-18T02:47:58+00:00">Nachtrag: der Link ist jetzt korrigiert. Die Datei enthielt nicht alle Klassen weil ich vergessen hatte das &#8220;Manifest&#8221; korrekt zu füllen.</ins></del></p>
<p><ins datetime="2008-01-05T17:18:14+00:00">Das Modul ist <a href="http://search.cpan.org/dist/Fukurama-Class/lib/Fukurama/Class.pm">hier im CPAN</a> zu finden.</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2007/12/18/perl-oo-entwicklerhilfe-endlich-fertig/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>UML-Editoren</title>
		<link>http://www.fukurama.org/wordpress/2007/12/08/uml-editoren/</link>
		<comments>http://www.fukurama.org/wordpress/2007/12/08/uml-editoren/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 00:04:18 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=114</guid>
		<description><![CDATA[Ich war gerade auf der Suche nach brauchbaren UML-Editoren und bin über ein Programm namens autodia gestolpert. Damit lassen sich Klassendiagramme von Perl-Klassen automatisch erstellen und per dia, einem einfachen Diagrammedior, der auch für UML genutzt weden kann, anzeigen. Leider funktioniert das öffnen der Dateien im dia bei mir nicht, aber in die Richtung werde [...]]]></description>
			<content:encoded><![CDATA[<p>Ich war gerade auf der Suche nach brauchbaren UML-Editoren und bin über ein Programm namens <b>autodia</b> gestolpert. Damit lassen sich Klassendiagramme von Perl-Klassen automatisch erstellen und per <b>dia</b>, einem einfachen Diagrammedior, der auch für UML genutzt weden kann, anzeigen. Leider funktioniert das öffnen der Dateien im dia bei mir nicht, aber in die Richtung werde ich mal weiter forschen&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2007/12/08/uml-editoren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse-3.3-Bug korrigiert [update]</title>
		<link>http://www.fukurama.org/wordpress/2007/10/22/eclipse-33-bug-korrigiert/</link>
		<comments>http://www.fukurama.org/wordpress/2007/10/22/eclipse-33-bug-korrigiert/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 07:18:36 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=103</guid>
		<description><![CDATA[Der Bug Zickiges/Gefährliches Eclipse-Undo ist korrigiert. Hierzu ist die Installation des Bugfixes 3.3.1 und ein Update von Epic nötig. Zu finden ist beides direkt in den Eclipse-internen Updates, wenn man neue Features installiert. Damit haben die Tage des Zitterns, dass auch kein neuer Code verloren geht, endlich vorbei. Ich hatte mich an den Nervenkitzel schon [...]]]></description>
			<content:encoded><![CDATA[<p>Der Bug <a href="?p=98">Zickiges/Gefährliches Eclipse-Undo</a> ist korrigiert. Hierzu ist die Installation des Bugfixes 3.3.1 und ein Update von Epic nötig. Zu finden ist beides direkt in den Eclipse-internen Updates, wenn man neue Features installiert.</p>
<p>Damit haben die Tage des Zitterns, dass auch kein neuer Code verloren geht, endlich vorbei. Ich hatte mich an den Nervenkitzel schon fast ein bisschen gewöhnt <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><ins datetime="2007-10-28T13:23:02+00:00">Nachtrag: Das entfernen neu erstellter Dateien geht nur nicht mehr versehentlich im Editor-Kontext. Im Navigator-Kontext geht es nach wie vor. Wenn man aber das CTRL+Z nicht im &#8220;Windows&#8221; Kontext, sondern nur in den Editor-Kentexten zulässt, gibt es kene Probleme.</ins></p>
<p><ins datetime="2008-02-18T09:15:45+00:00">Update: es gab bisher noch ein paar wenige Stellen, an denen der Fehler immer noch auftrat. Es kam selten vor, aber in den letzten vier Monaten habe ich auch noch mal zwei Dateien auf die Art verloren. Heute habe ich ein Epic-Update eingespielt und nochmal ausgiebig getestet. Jetzt tritt der Fehler nicht mehr auf. Es gibt noch die &#8220;undo new file&#8221; Option, allerdings nur dann, wenn die Datei gerade neu angelegt und noch kein Inhalt hineingeschrieben wurde. So ists ok. Die aktuelle Epic-Version ist 0.5.43.</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2007/10/22/eclipse-33-bug-korrigiert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zickiges/Gefährliches Eclipse-Undo</title>
		<link>http://www.fukurama.org/wordpress/2007/09/12/zickigesgefahrliches-eclipse-undo/</link>
		<comments>http://www.fukurama.org/wordpress/2007/09/12/zickigesgefahrliches-eclipse-undo/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 20:35:21 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=98</guid>
		<description><![CDATA[Heute habe ich eine schmerzliche Lernerfahrung über die Undo-Funktion von Eclipse hinter mir. Ich hatte eine neue Datei angelegt und regelmäßig gespeichert. In einer anderen Datei, die schon offen war, habe ich dann etwas rückgängig machen wollen. Und bam!, da war meine &#8220;neue&#8221; Datei weg. Ungefragt, versteht sich. Man kann das folgendermaßen nachvollziehen: Mache eine [...]]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich eine schmerzliche Lernerfahrung über die Undo-Funktion von Eclipse hinter mir. Ich hatte eine neue Datei angelegt und regelmäßig gespeichert. In einer anderen Datei, die schon offen war, habe ich dann etwas rückgängig machen wollen. Und bam!, da war meine &#8220;neue&#8221; Datei weg. Ungefragt, versteht sich.</p>
<p>Man kann das folgendermaßen nachvollziehen:</p>
<ul>
<li>Mache eine beliebige Perl-Datei mit dem Epic-Editor auf.</li>
<li>Lege eine neue Datei an. z.B. eine normale Textdatei</li>
<li>Schau in die Undo-Liste. Dort steht jetzt &#8220;undo new file&#8221;</li>
<li>Schreib was und speichere</li>
<li>Schau in die Undo-Liste. Dort steht jetzt &#8220;undo typing&#8221;</li>
<li>Mach es rückgängig und die Undo-Liste ist jetzt leer</li>
</ul>
<p>So weit so gut. Aber jetzt:</p>
<ul>
<li>Gehe in den Reiter der Perl-Datei</li>
<li>In der Undo-Liste steht dort immer noch &#8220;undo new file&#8221;</li>
<li>Ein mal undo ausführen und staunen.</li>
</ul>
<p>Ist die &#8220;neue&#8221; Datei aktuell gespeichert, sind also keine weiteren Änderungen vorhanden, verschwindet der Reiter einfach samt der Datei auf der Platte. Ist die Datei geändert und nicht gespeichert, bleibt immerhin das Fenster bestehen.</p>
<p>Hart ist, dass das sogar dann Funktioniert, wenn die Datei geschlossen wurde. Das undo bleibt in der Epic-Undo-Historie. Man muss also alle Epic-Editoren schließen, wenn man das verhindern will. Oder man legt die Dateien nicht mehr direkt in Eclipse, sondern in der Shell an <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
<p>Das ganze funktioniert bei mir unter Linux in der Perl-View mit Epic v0.5.39 in Eclipse v3.3.</p>
<p>Also: Vorsicht mit Undo! Ich hab noch nicht groß gesucht, ob der Fehler bekannt ist. Mach ich demnächst mal, wenn ich wieder Zeit für so was hab.</p>
<p>Fazit: Hoch leben die einfachen Editoren. Mit vi, gedit und Konsorten ist mir sowas noch nicht passiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2007/09/12/zickigesgefahrliches-eclipse-undo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

