<?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>macx - Das Blog von David Maciejewski</title>
	<atom:link href="http://macx.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://macx.de</link>
	<description>Webstandards im Fokus</description>
	<lastBuildDate>Wed, 10 Mar 2010 10:52:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>de-de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Quicktime-Filme im Safari speichern</title>
		<link>http://macx.de/journal/quicktime-filme-im-safari-speichern/</link>
		<comments>http://macx.de/journal/quicktime-filme-im-safari-speichern/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 10:52:00 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/quicktime-filme-im-safari-speichern/</guid>
		<description><![CDATA[Screencasts sind eine feine Sache. Damit man sich die Videos später noch einmal in Ruhe ansehen kann, ohne sie jedes Mal im Browser aufzurufen und runterzuladen, sollte man sie abspeichern. Was mit QuickTime Pro damals recht einfach möglich ist, ermöglicht auf ähnlichem Wege auch QuickTime X in Snow Leopard. Ich zeige euch im Screencast wie. [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>Screencasts sind eine feine Sache. Damit man sich die Videos später noch einmal in Ruhe ansehen kann, ohne sie jedes Mal im Browser aufzurufen und runterzuladen, sollte man sie abspeichern. Was mit QuickTime Pro damals recht einfach möglich ist, ermöglicht auf ähnlichem Wege auch QuickTime X in Snow Leopard. Ich zeige euch im Screencast wie. <p /> <object height="253" width="500"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9976061&#38;server=vimeo.com&#38;show_title=1&#38;show_byline=1&#38;show_portrait=1&#38;color=00ADEF&#38;fullscreen=1" /><embed allowfullscreen="true" src="http://vimeo.com/moogaloop.swf?clip_id=9976061&#38;server=vimeo.com&#38;show_title=1&#38;show_byline=1&#38;show_portrait=1&#38;color=00ADEF&#38;fullscreen=1" allowscriptaccess="always" type="application/x-shockwave-flash" height="253" width="500"></embed></object><p /> Wenn ihr bestimmte Dinge wissen möchtet, lasst es mich wissen. Dann erstelle ich auch davon einen Screencast.<p><a href="http://posterous.com">Posted via email</a> from <a hef="http://macx.posterous.com/quicktime-filme-im-safari-speichern">macx&#8217;s posterous</a></p>  </div>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/quicktime-filme-im-safari-speichern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac-Tipp: Programme automatisch schließen und runterfahren</title>
		<link>http://macx.de/journal/mac-tipp-programme-automatisch-schliesen-und-runterfahren/</link>
		<comments>http://macx.de/journal/mac-tipp-programme-automatisch-schliesen-und-runterfahren/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 09:56:09 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/mac-tipp-programme-automatisch-schliesen-und-runterfahren/</guid>
		<description><![CDATA[ Wer seinen Mac nicht wochenlang laufen lässt, sondern diesen morgens artig an und abends wieder ausschaltet, kennt das Problem: Jedes Mal müssen sämtliche Programme geöffnet bzw. geschlossen werden. Und je nach Aufgabenbereich kann das auf Grund der Fülle zu benutzender Programme mühsam sein.    Mit Mac-eigenen Bordmitteln könnt ihr euch einen Dienst [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'><div class="posterous_bookmarklet_entry"> Wer seinen Mac nicht wochenlang laufen lässt, sondern diesen morgens artig an und abends wieder ausschaltet, kennt das Problem: Jedes Mal müssen sämtliche Programme geöffnet <abbr title="beziehungsweise">bzw. </abbr>geschlossen werden. Und je nach Aufgabenbereich kann das auf Grund der Fülle zu benutzender Programme mühsam sein.<p />    Mit Mac-eigenen Bordmitteln könnt ihr euch einen Dienst zusammenklicken, der alle Programme automatisch schließt und den Mac runterfährt. Ich zeige euch, wie ihr das mit Automator macht.<p />    <object height="318" width="500"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9356409&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=1&#038;color=00ADEF&#038;fullscreen=1" /><embed type="application/x-shockwave-flash" src="http://vimeo.com/moogaloop.swf?clip_id=9356409&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=1&#038;color=00ADEF&#038;fullscreen=1" allowfullscreen="true" allowscriptaccess="always" height="318" width="500" /></object><div class="posterous_quote_citation">via <a href="http://vimeo.com/9356409">vimeo.com</a></div> <p></p></div><p><a href="http://posterous.com">Posted via web</a> from <a hef="http://macx.posterous.com/mac-tipp-programme-automatisch-schlieen-und-r">macx&#8217;s posterous</a></p>  </div>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/mac-tipp-programme-automatisch-schliesen-und-runterfahren/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Einheitliche Scrollbars in OS X</title>
		<link>http://macx.de/journal/einheitliche-scrollbars-in-os-x-tagsos-xappleui/</link>
		<comments>http://macx.de/journal/einheitliche-scrollbars-in-os-x-tagsos-xappleui/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 08:00:05 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/einheitliche-scrollbars-in-os-x-tagsos-xappleui/</guid>
		<description><![CDATA[Dass ich absolut überzeugter OS X-User bin, sollte sich inzwischen rumgesprochen haben. Wovon ich allerdings weniger überzeugt bin, ist Apples Tradition, verschiedene Styles in Betriebssystemen zu implementieren. Mit irgend einer neuen iTunes-Version kommen so neue Buttonelemente oder Scrollleisten hinzu, die &#8211; wenn überhaupt &#8211; erst sehr spät durch Updates in das übrige System von OS [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>Dass ich absolut überzeugter OS X-User bin, sollte sich inzwischen rumgesprochen haben. Wovon ich allerdings weniger überzeugt bin, ist Apples Tradition, verschiedene Styles in Betriebssystemen zu implementieren. Mit irgend einer neuen iTunes-Version kommen so neue Buttonelemente oder Scrollleisten hinzu, die &#8211; wenn überhaupt &#8211; erst sehr spät durch Updates in das übrige System von OS X implementiert werden. Das Result ist bekannt: Die Scrolleisten in iTunes sind modern und chick, die Scrolleisten im Finder und Mail stammen noch aus der Aqua-Zeit:<p><a href='http://posterous.com/getfile/files.posterous.com/macx/ycPcAkLY3IOzGlH7o1zDnkICcwIGSuhv8nj4WSPcucnJcKmypDyGCiZDH8Oe/finder_spaltenbreite.png'><img src="http://posterous.com/getfile/files.posterous.com/macx/nMnd1ibRoTaFjBGTtJ2uHygvQEQFGwCxzL4rONtGkBCQ5AikXLzbUDgAKmyd/finder_spaltenbreite.png.scaled.500.jpg" width="500" height="330"/></a> </p><p>Ich möchte aber bitteschön einheitliche Scrollleisten haben. Die Rettung naht in Form einer Systemeinstellung: iLeopard.</p><p><img src="http://posterous.com/getfile/files.posterous.com/macx/xlalAx4j6UiB0yO4kWzOBPKFcP2mloH6z1cSF3O20GcO5KZAXrkv7aLTCHXX/Adobe_Photoshop_CS4.png" width="485" height="480"/> </p><p>Die aktuelle Version kann man sich hier direkt runterladen: <a href="http://bit.ly/nAZdA">http://bit.ly/nAZdA</a>. Eine Webseite dazu gibt zwar schon, allerdings ohne erkennbare Downloadinhalte. Das hat auch wohl damit was zu tun, dass der Entwickler verhindern wollte, dass Leute wie ich hier darauf hinweisen: <a href="http://twitter.com/gcamp/statuses/4570418390">http://twitter.com/gcamp/statuses/4570418390</a></p><p><a href="http://posterous.com">Posted via email</a> from <a hef="http://macx.posterous.com/einheitliche-scrollbars-in-os-x-tagsos-xapple">macx&#8217;s posterous</a></p>  </div>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/einheitliche-scrollbars-in-os-x-tagsos-xappleui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unboxing iMac 27&#8243; i7</title>
		<link>http://macx.de/journal/unboxing-imac-27-i7/</link>
		<comments>http://macx.de/journal/unboxing-imac-27-i7/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 23:35:41 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/unboxing-imac-27-i7/</guid>
		<description><![CDATA[Das Unboxing der neuen iMacs habt ihr sicher schon dutzendfach gesehen. Doch jetzt endlich nach 2,5 Monaten Wartezeit habe ich auch ich mein Exemplar erhalten: iMac 27&#8221; mit i7-Prozessor und 8 GB Ram. Das sollte zunächst reichen.  Hier sind die Fotos:              [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>Das Unboxing der neuen iMacs habt ihr sicher schon dutzendfach gesehen. Doch jetzt endlich nach 2,5 Monaten Wartezeit habe ich auch ich mein Exemplar erhalten: iMac 27&#8221; mit i7-Prozessor und 8 <acronym title="Gigabyte">GB</acronym> Ram. Das sollte zunächst reichen. <p /> Hier sind die Fotos:<p><a href='http://posterous.com/getfile/files.posterous.com/macx/nolsVqfY3GhKRtBXRKoU9JxAk6dXlkmunY1pgIWGxtHO3FbfBSmv540zounA/DSC01725.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/zEanqqF8OyTygzft14CTcMUZuR3D7LJ1Gfjt6lc2X4bU4SELThiV9ZjHzApF/DSC01725.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/Umi28fsvwlstwUqpCgJpj0uboEO3bX7zK7ntaUHNWK5lsLMGQzhGa8DR8QJT/DSC01726.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/Fmmlu8zJWdHNuoSP8A0iE71WU7yPd84PCIVndcGIfGFDk38pqu6xyHAVH2AF/DSC01726.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/asfdYybcw47G1MMfG0ZvcCemwCsF2TjYzwkkXpABoxlReJUtXNbAvRrSLqgO/DSC01727.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/BjlMH0yVSijPMvsCEYIkGC6s7jmmAiLzB4lPz1lAkuinnmul0ILhStVbeuNM/DSC01727.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/WjGUIrQdRMisoNAEgN3lWdfahUZTcUbXttUd3hHz9HLvY7RmBoqcHhN4nnBj/DSC01728.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/ipvout46q1q2oz4Kf3ncPWtxEGxzoUs6EmbPcR8IqgXm4kCGEaaAFuv5VFEL/DSC01728.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/FOomAG6T0jkD8I3ZWCzw2LnGtFdlcfbU6EiZZu3Ayd7hW7tVN8gPnrTqgHiz/DSC01729.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/RXj1dkCnGQVP4v3dW4Yq3mjsAfHWiQVQ5m0ugD01I5Zp1cOpFKtdoozsoqKL/DSC01729.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/4RYWJY2mnGs8i9duJD6176os7GkSGF3VjGHTrRcqH6IAHPiR11VYd38SNZi8/DSC01730.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/cam8UY1JNwmOmGomnkKRjmIbCtiWRMAUwDMO3B8uYalzGgDUViJdhEvMAhIY/DSC01730.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/tfdZkTB2NVpFdRhPDqWekjIL0XBNnuvKcHxmWsnlIbhY3BSjMGcAWDyMtcs3/DSC01731.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/2JfDj07ahiSbSOgS3khMPNOlI23FZ0IW7GqfkvBkM96sQB4ahIBYRcLDMRdO/DSC01731.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/BuocxQSC0ypeRO3vYQ0bsqNpivaN9F40E7XK37LVLHlqTSF5l022x4b6mTIE/DSC01732.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/AVA00mfGNAom3NXKFfAVhjfK3Y1kSZlx7JKB9FFSA4r7KfqtYsACJhgEGLO9/DSC01732.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/T1B8dwWqa6FkeLW3oh4NBfX1dq78exdKBRnHF0PYEaD3zUb45Uh1dEtMLbFd/DSC01733.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/5f8iKhcH5Nlw9ZpO53nDYTgEMOIhg5GA3Ys5aJaOqgn3xarBV7J6PFnRs1cb/DSC01733.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/JwKkGbiLESXZa6HJnfPK89gxoHEFu2R7aCuv9gm696HVS6cDnrn9umrOfKBe/DSC01734.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/XBOKiAKx1pH7ven7yBGDeoCbFWYkZAO26XijHMAqN7iRbrgvJ1yGlcBhFUUt/DSC01734.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/iHa2iFW0OWYm4hfsFEx7f5ZbquyhMNV6CcBFrKpod08MQ96CO07zYVDSLGiX/DSC01735.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/NkmhFUlTJBLCZjIpZr8RnhjyYr8OJCzrTDZ5hdiu3EY1KTZFbeQBnqmW3jJy/DSC01735.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/MyOo7bRmX31L6dfqtuyvhd1YKORIFloZzSNzV2zw7v14fGjvESBX3NmKRCuk/DSC01736.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/FutRFPrHvDswODc8LVksWkCb9iDFjA1bossHA2WH7yH9d3n4NBlPgpBn7A26/DSC01736.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/kpEyjR0gvgiFHETK9QGQJ95YXf8BVnSJG0bUgvtOIKWACA4fHh0SQVpe7JMX/DSC01737.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/NpMNFRMCaJWzkXuLsX4WqBuYFpaEDbaXljPvqALYAGIYAE6eI3BP5SotjB8n/DSC01737.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/FgJaI1aHg5guLbAiEgb1F8MXdlA7PEqbjGnDPmY7ZdrfCpmjIQL2mJpismAQ/DSC01738.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/4WuRv24qH9pjsjBvF1oyanUW2lpQwjxFXh2rz2LWxMSpCMOmvWOczBscRLRC/DSC01738.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/jCYUQZBrNA4QOnsjesFczmjR12QjECEicz3VfRnhYnDUTpYRK9N9MmLj6teF/DSC01739.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/pndpg0cHW3WfyqFiy8apsUlyVIp6gdGZY7KJj5qiw9JM2ceZGuYXY8J2Bgam/DSC01739.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/VylVfiXvbKlFjFIbAsILWypkAbUkzC9xX4ffs9Jji4WU8rquZm3Ax2Q1g5Fl/DSC01740.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/ZRweK0BhinnBSXghDk1V2eBz6UMWQ9EpYpJ4vyirBMRAIGl72wNoMCR0KZyr/DSC01740.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/EDVWGXt27ZOv8lPsr487VcWGRJY8Nhto65sMmPQoOIo1vPZXeaSgpE66dzPp/DSC01741.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/ViiUFSPvIbjYjFvEjuGMyVHqBpYXPEJWNqoBlZSKC1LQh3O3HfvXQ1kA3O0v/DSC01741.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/j86wFfAJP8vNcygU4YFVlgiWg0lB29Qf5LjV6lSUIgXINdKDJYRRf7G47hdj/DSC01742.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/Z5Abq4siIBPhSfJ8GyCAroE9m604j5yORnm0EljcT85MWzI2rTVaqv1r02gF/DSC01742.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/YnqSVWvWfh4kvu4knHsuqatImXOQFTh0R7M6JtRFP4W8XXuo754dOdNJdoMG/DSC01746.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/QPxT2N9DoowR6RfFYWaHKUeiPXRZeQa0sC8JyZE9fe2g5p44TOlVtxAZ3S7f/DSC01746.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/cky79whCbBp9S313uZmMMXHov5tHOfw3F829f3m7v7ujQnDveV0x00FVZUxt/DSC01747.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/iQjXEizWsJ4qi0i72AGyS6pmJBbeB6Hq6RpLTPwZbpNSwLIqI2dUGaXzpRGL/DSC01747.jpg.scaled.500.jpg" width="500" height="281"/></a> <a href='http://posterous.com/getfile/files.posterous.com/macx/M8CYmayG9m4q4KBcW7XLYNsTwR22wBdrwGOQUFZDcO1pdxnQzemjLmFcICmf/DSC01748.jpg.scaled.1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/oWgexDOBXrxV2UPIZUheq8rpJwmlKk2esix8EZI1iag0qv5CEqnrgpM0WUK0/DSC01748.jpg.scaled.500.jpg" width="500" height="281"/></a> <div><a href='http://macx.posterous.com/unboxing-imac-27-i7'>See and download the full gallery on posterous</a></div></p><p><a href="http://posterous.com">Posted via email</a> from <a hef="http://macx.posterous.com/unboxing-imac-27-i7">macx&#8217;s posterous</a></p>  </div>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/unboxing-imac-27-i7/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Schluss mit diesen HTML-E-Mails</title>
		<link>http://macx.de/journal/schluss-mit-diesen-html-e-mails/</link>
		<comments>http://macx.de/journal/schluss-mit-diesen-html-e-mails/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 13:52:21 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/schluss-mit-diesen-html-e-mails/</guid>
		<description><![CDATA[Ich bin seit vielen Jahren ein Verfechter von Rein-Text-E-Mails, also Mails ohne bunte Schriften und Bannern. Was mich hingegen weiterhin ziemlich nervt sind ankommende E-Mails, dessen Inhalt ich nicht beeinflussen kann.  Dank des Terminals lässt sich Mail.app, mein Lieblings-Mailprogramm, aber so einstellen, dass es ankommende E-Mails grundsätzlich immer in einer Reintextversion dargestellt werdeb. So [...]]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>Ich bin seit vielen Jahren ein Verfechter von Rein-Text-E-Mails, also Mails ohne bunte Schriften und Bannern. Was mich hingegen weiterhin ziemlich nervt sind ankommende E-Mails, dessen Inhalt ich nicht beeinflussen kann. <p /> Dank des Terminals lässt sich Mail.app, mein Lieblings-Mailprogramm, aber so einstellen, dass es ankommende E-Mails grundsätzlich immer in einer Reintextversion dargestellt werdeb. So passen diese Mails perfekt in meinen Workflow, weil der optische Fokus in der Mitteilung liegt und nicht bei der Kreativität des Verfassers. Schreibt dazu ins Terminal folgendes: <p /><pre>defaults write com.apple.mail PreferPlainText -bool TRUE<br />
defaults write com.apple.mail MinimumHTMLFontSize 14</pre> <p /> Startet danach Mail einfach neu. Das Schöne: Mail.app gestattet es weiterhin, die E-Mail im Original zu lesen (nicht unwichtig bei Newslettern). Dazu wählst du einfach E-Mail aus und drückst die Tastenkombi CTRL + CMD + Ä. Im Menü versteckt sich das unter Darstellung > E-Mail > Nächste Alternative.<p><a href="http://posterous.com">Posted via email</a> from <a hef="http://macx.posterous.com/schluss-mit-diesen-html-e-mails">macx&#8217;s posterous</a></p>  </div>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/schluss-mit-diesen-html-e-mails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Video- und Audiointerview mit Stowe Boyd</title>
		<link>http://macx.de/journal/video-und-audiointerview-mit-stowe-boyd/</link>
		<comments>http://macx.de/journal/video-und-audiointerview-mit-stowe-boyd/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 15:18:55 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/video-und-audiointerview-mit-stowe-boyd/</guid>
		<description><![CDATA[Auf dem ConventionCamp Hannover 2009 hielten wir von Technikwürze zusammen mit meinen zukünftigen Kollegen vom t3 Magazin mit Stowe Boyd, US-Blogger seit über 20 Jahren und Medienexperte aus den USA.        Den Artikel dazu findet ihr im Magazin (http://t3n.de/news/conventioncamp-video-interview-stowe-boyd-open-source-262122/) und demnächst in der Technikwürze als Audiospur.Posted via email from [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem ConventionCamp Hannover 2009 hielten wir von Technikwürze zusammen mit meinen zukünftigen Kollegen vom t3 Magazin mit Stowe Boyd, US-Blogger seit über 20 Jahren und Medienexperte aus den USA. <p /> <object type="application/x-shockwave-flash" height="281" data="http://vimeo.com/moogaloop.swf?clip_id=7848226&#038;server=vimeo.com&#038;fullscreen=1&#038;show_title=1&#038;show_byline=1&#038;show_portrait=1&#038;color=00ADEF" width="500"> <param name="quality" value="best" /> <param name="allowfullscreen" value="true" /> <param name="scale" value="showAll" /> <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7848226&#038;server=vimeo.com&#038;fullscreen=1&#038;show_title=1&#038;show_byline=1&#038;show_portrait=1&#038;color=00ADEF" /> </object><p /> Den Artikel dazu findet ihr im Magazin (<a href="http://t3n.de/news/conventioncamp-video-interview-stowe-boyd-open-source-262122/)">http://t3n.de/news/conventioncamp-video-interview-stowe-boyd-open-source-262122/)</a> und demnächst in der Technikwürze als Audiospur.<p><a href="http://posterous.com">Posted via email</a> from <a hef="http://macx.posterous.com/video-und-audiointerview-mit-stowe-boyd">macx&#8217;s posterous</a></p>  </p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/video-und-audiointerview-mit-stowe-boyd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mauszeiger mit Hervorhebung im Mac-Dock-Stapel</title>
		<link>http://macx.de/journal/mauszeiger-mit-hervorhebung-im-mac-dock-stapel/</link>
		<comments>http://macx.de/journal/mauszeiger-mit-hervorhebung-im-mac-dock-stapel/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 11:29:55 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/journal/mauszeiger-mit-hervorhebung-im-mac-dock-stapel/</guid>
		<description><![CDATA[Ich benutze liebend gern die Stapelfunktion beim Mac. Wenn ich mit der Maus über ein Icon gehe, hätte ich nur gern ein visuelles Feedback, welches Icon ich gerade mit der Maus überfahre. Seit Mac OS X 10.6 ist das im Gegensatz zur Vorgängerversion nicht mehr der Fall. Mit den folgenden zwei Terminal-Befehlem kann man die [...]]]></description>
			<content:encoded><![CDATA[<p>Ich benutze liebend gern die Stapelfunktion beim Mac. Wenn ich mit der Maus über ein Icon gehe, hätte ich nur gern ein visuelles Feedback, welches Icon ich gerade mit der Maus überfahre. Seit Mac OS X 10.6 ist das im Gegensatz zur Vorgängerversion nicht mehr der Fall.<p><a href='http://posterous.com/getfile/files.posterous.com/macx/JNXTIxw65tKoC02YaG7upRoCStSilD8koxyB5D7XwotKqmKhZhsSBWB2DVzu/Stapel.jpg'><img src="http://posterous.com/getfile/files.posterous.com/macx/wcgw737VvEWN0eyFPMDQRJe6ZzVyZa7QYw2gDovnR4JpIV5SQpsk9JziQpCK/Stapel.jpg.scaled.500.jpg" width="500" height="454"/></a> </p><p>Mit den folgenden zwei Terminal-Befehlem kann man die Hintergrundhervorhebung wieder aktivieren: <br />
&nbsp;<br />
Defaults write com.apple.dock mouse-over-hilite-stack -boolean yes<br />
killall Dock</p><p><a href="http://posterous.com">Posted via email</a> from <a hef="http://macx.posterous.com/mauszeiger-mit-hervorhebung-im-mac-dock-stape">macx&#8217;s posterous</a></p>  </p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/mauszeiger-mit-hervorhebung-im-mac-dock-stapel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Der Rückkanal im Print</title>
		<link>http://macx.de/journal/der-ruckkanal-im-print/</link>
		<comments>http://macx.de/journal/der-ruckkanal-im-print/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 15:52:19 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://macx.de/?p=214</guid>
		<description><![CDATA[Der Leser kann Artikel im Internet beispielsweise durch eine Blogfunktionalität direkt kommentieren. So kann er seine Meinung hinterlassen und der Autor erhält direktes Feedback. Printmagazine jammern, dass es einen Rückkanal (zum Autor) erst gar nicht gibt. Mit dem Internet können wir aber genau diesen herstellen.]]></description>
			<content:encoded><![CDATA[<h2>Die Idee</h2>
	<p>Stellen wir uns mal, wir drucken neben jedem Artikel eine Nummer oder ein Stichwort ab und betrachten diese Angabe als Referenz. Wenn ich nun im Internet diese Referenz angebe und meinen Kommentar dazu hinterlasse, könnte man einen Rückkanal schaffen. Viele Printpublikationen machen dies in ähnlicher Form ja schon mit Nummern, unter denen ich den Artikel online nachlesen kann. Wenn der geneigte Leser nun etwas kommentieren möchte, müsste jeder Autor Blogfunktionalitäten nachbauen, um den Rückkanal herzustellen. Die Tools dafür haben wir aber bereits „in der Hosentasche“: Das Internet auf dem Handy und Twitter.</p>
	<h2>hashTag und Twitter</h2>
	<p>In der dritten Ausgabe des Webstandardsmagazines wird jedem Artikel ein hashTag zugewiesen und abgedruckt. So könnte der hashTag in etwas so aussehen: „wsm3/25“, also „WebStandardsMagazin Ausgabe 3, Artikel 25”. Wenn ich meinen Kommentar über Twitter sende und am Ende den hashTag als Referenz angebe, kann ich direkt danach im Internet suchen und einen Zusammenhang herstellen. Beispiel:</p>
	<p>„Ich finde nicht, dass der Autor mit seiner Meinung recht hat. #wsm3/25“.</p>
	<p>Suche ich auf der Webseite hashTag nach eben „wsm3/25”, in der Twitter-Suche oder mit jedem x-beliebigen Twitter-Tool mit Suchfunktion, dann erhalte ich chronologisch alle Kommentare zu diesem Artikel &#8211; live!<br />
Mit ein paar Zeilen JavaScript und ein bisschen <acronym title="Hypertext PreProcessing">PHP</acronym> könnte man so auf seiner Webseite zum Printmagazin alle Kommentare abbilden und die Twitter-Community über neue Einträge per Tweet informieren.</p>
	<p>Der interessierte Leser sucht aktiv nach den Kommentaren oder benutzt die oben angesprochenen Kolloberationstools durch die hashTag-Suche. Mit Hilfe von Twitter entsteht so nicht nur ein echter Dialog und die Diskussionsmöglichkeit, sondern eben auch ein echter Rückkanal zum Autor.</p>
	<p>Ich bin gespannt, wie die Webaffinen Leser des Webstandardsmagazines diesen Ansatz aufnehmen.</p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/der-ruckkanal-im-print/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Warum CSS-Frameworks (für mich) keinen Sinn machen</title>
		<link>http://macx.de/journal/warum-css-frameworks-fur-mich-keinen-sinn-machen/</link>
		<comments>http://macx.de/journal/warum-css-frameworks-fur-mich-keinen-sinn-machen/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 15:07:13 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/?p=187</guid>
		<description><![CDATA[Die Diskussion über den Einsatz von CSS-Frameworks im Allgemeinen ist gefühlt sehr alt. Die einen loben die Arbeitserleichtung bei der Nutzung wie YAML, die anderen befassen sich erst gar nicht damit. Die hier aufgeführten Gründe, die gegen den Einsatz von CSS-Frameworks sprechen sollen, sind so unterschiedlich wie die Designs des CSS-Zen-Gardens.]]></description>
			<content:encoded><![CDATA[<p>Dirk Jesse fasst in seinem Artikel <a href="http://www.highresolution.info/spotlight/entry/was_sie_ueber_css-frameworks_wissen_sollten/">Was Sie über <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks wissen sollten!</a> schön zusammen, wie die Pro- und Kontraargumente lauten. Auch erfährt der geneigte Leser hier, was er unter einem <acronym title="Cascading Style Sheets">CSS</acronym>-Framework zu verstehen hat. <strong>Lesebefehl!</strong></p>
	<p>Die einen setzen <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks wie <a href="http://www.yaml.de/">YAML</a> gern ein, weil sie schneller durchstarten wollen, effektiver arbeiten möchten, sich nicht um IE6-Bugs kümmern möchten. Die anderen sprechen von aufgeblähten <acronym title="Cascading Style Sheets">CSS</acronym>-Code, ein (nicht vorhandenes) Korsett des Frameworks und und und. Einige Argumente sind plausibel, viele einfach falsch.</p>
<blockquote>Die Argumentation &#8220;Ich will nicht&#8221; wäre deshalb eine ehrliche und völlig legitime Aussage, mit der ich als Entwickler von YAML gut leben kann. Eine solche, zutiefst persönliche Entscheidung für eine individuelle Arbeitsweise, bedeutet im Umkehrschluss jedoch nicht, dass <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks obsolet sind oder mit der eigenen Codequalität nicht konkurrieren könnten. <cite>Dirk Jesse und Nils Pooker</cite></blockquote>
	<h2>Warum ich <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks toll finde</h2>
	<p>Ich <a href="http://technikwuerze.de/podcast/technikwuerze123/">fördere gern</a> den Einsatz von <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks, besonders wenn oben drüber YAML steht. Dirk hat wirklich eine beeindruckende Arbeit geleistet und es scheint, dass jede Zeile <acronym title="Cascading Style Sheets">CSS</acronym> wirklich Sinn macht. Auch habe ich viele Kollegen während meiner Laufbahn kennengelernt, die ein wenig Unterstützung in <acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> gebrauchen konnten. Für sie ist ein solches Framework eine willkommene Arbeitserleichterung. Besonders, weil sie sich dank YAML und Co. nicht mit immer wiederkehrende Elemente einer modernen Webseite beschäftigen müssen. Dazu <abbr title="gehoben">geh</abbr>ört <abbr title="und andere">u.a. </abbr>ein <acronym title="Cascading Style Sheets">CSS</acronym>-Reset, der eigentlich immer gleiche Grundaufbau der Seite und Browserbugfixes. Aber auch echte Webprofis – für die zumindest YAML gedacht ist – sollen mit dem Framework ein Werkzeug erhalten, mit dem sie effektiv saubere Webseiten aufbauen können.</p>
	<p>Wer <acronym title="Cascading Style Sheets">CSS</acronym> nicht aus dem <a href="http://de.wikipedia.org/wiki/Effeff">EffEff</a> beherrscht, findet mit den <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks eine sehr feine Arbeitsgrundlage. Und wer sich mit der umfangreichen <a href="http://www.yaml.de/de/dokumentation.html">Doku von YAML</a> beschäftigt, kann sogar sehr viel mehr dazu lernen. Für die meisten kann die Arbeit nach einer kurzen Eingewöhnugsphase wirklich schneller von statten gehen. Warum sollte ich daher etwas gegen <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks haben? Faktisch könnte ich alle Pro- und Contro-Argumente gegeneinander aufwiegen, sodass am Ende eigentlich nur der Einsatz empfohlen werden kann.</p>
	<h2>Warum ich niemals ein <acronym title="Cascading Style Sheets">CSS</acronym>-Framework einsetzen werde</h2>
	<p>Wer sich mit mir persönlich über <acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> unterhält, oder ab und zu auch mal <a href="http://technikwuerze.de">Technikwürze</a> hört, weiß genau, wie ich ticke. Ich habe eine ziemlich starre Meinung zum Einsatz von <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks: „Nein!“. Trotzdem folge ich nicht den beliebten Argumenten, dass ein Framework die Webseite ziemlich übel aufbläht, mir keine Flexibilität bietet oder strikt überflüssig ist.</p>
	<p>Für mich ist das Schreiben von <acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> ein Handwerk, mein Handwerk, mein Job. Ich liebe es außerordentlich, auf „Datei neu“ zu klicken und jedes verdammte Projekt mit einer leeren Datei zu beginnen. Ich schreibe <acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> liebend gern so schnell runter wie Journalisten ihre Artikel. Aber es geht mir nicht darum, erster zu sein.<br />
<acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> zu schreiben macht mir schlicht und einfach gesagt absolut Spaß. Ich möchte alles selbst schreiben, weil es mir Freude bereitet. Ich bin lieber der Entwickler wie Dirk, der ein Framework wie YAML zusammenschreibt, als ein Webentwickler, der das fertige YAML effektiv benutzt. Als <acronym title="Hypertext PreProcessing">PHP</acronym>-Entwickler nutze ich für einige Projekte sogar mal <acronym title="Hypertext PreProcessing">PHP</acronym>-Frameworks wie <a href="http://framework.zend.com/">Zend</a>, für <acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> brauche ich das eher nicht.</p>
	<p><acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks unterstützen mich bei meiner Arbeit nicht, sondern rauben mir den Spaß. Ich müsste im Detail (!) viel weniger denken, viel weniger aus dem Wissen schöpfen, viel weniger leisten. Ich beantworte gern die Fragen meiner Kollegen und Hörer, wie man dies und das genau macht, und warum genau so. Es hat schon ein paar Jahre gedauert, bis ich in der Lage war, Fragen über <acronym title="Cascading Style Sheets">CSS</acronym> direkt wie aus der Pistole zu beantworten. Ich mag mich nicht mit dem Gedanken beschäftigen, dieses Basiswissen verblassen zu lassen. Auch wenn mich die eine oder andere Lösung mal viele Stunden oder im Extremfall gar ein paar Tage kostet, weil bisher noch niemand auf die Idee gekommen ist das Problem richtig gut zu lösen, erinnere mich gern an die „Entwicklungszeit“. Das Erreichte macht mich stolz und bildet die Basis, das Fundament meiner Arbeit.</p>
	<p>Für mich ist Webentwicklung kein Beruf, sondern eine Berufung. Ich mache das alles echt gern. Wenn es sein muss dann auch jeden Tag wieder aufs Neue, mit einer neuen Datei. „Alles zurück auf Anfang“.</p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/warum-css-frameworks-fur-mich-keinen-sinn-machen/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Der erste Award für meine Arbeit</title>
		<link>http://macx.de/journal/der-erste-award-fur-meine-arbeit/</link>
		<comments>http://macx.de/journal/der-erste-award-fur-meine-arbeit/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 10:29:10 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[award]]></category>

		<guid isPermaLink="false">http://macx.de/?p=171</guid>
		<description><![CDATA[Das Videoportal BMW-web.tv hat Silber bei den AME Awards gewonnen. Das Frontend hatte ich während meiner sevenload-Zeit maßgeblich beeinflusst.]]></description>
			<content:encoded><![CDATA[<p><a href="http://bmw-web.tv/de/channel/new">BMW-web.tv</a> gewann Silber bei den <a href="http://www.ameawards.com/main.taf?p=3,3,11">AME Awards</a> der New York Festivals. </p>
	<p><blockquote>It is with great pleasure that I announce the final awards for the 2008 AME Awards. Below you will find the final award status for your work. Congratulations on this honor.</p>
	<p>The 2008 work entered into the AME Awards scored exceptionally well, and our 2008 Grand Jury had remarkable comments for a majority of the work this year.</p>
	<p>ItemID: 354287<br />
Title: BMW-web.tv<br />
Category: Autos / Automotive Products<br />
Award: AME Silver Medallion</blockquote></p>
	<p><a href="http://www.flickr.com/photos/macximal/3047125023/" title="BMW-web.tv - The International Entertainment Magazine von macximal bei Flickr"><img src="http://farm4.static.flickr.com/3049/3047125023_3ea2b10f53_m.jpg" width="240" height="187" alt="BMW-web.tv - The International Entertainment Magazine" /></a> <a href="http://bmw-web.tv/de/channel/new">BMW-web.tv</a> ist eine Gemeinschaftsarbeit von <a href="http://bmw.de">BMW</a>, <a href="http://www.denkwerk.com/de/">Denkwerk</a> und <a href="http://de.sevenload.com/">sevenload</a>. Während meiner Zeit bei sevenload war ich Teil des Team, die diese Seite aufgebaut hatten.<br />
Aus meiner Feder dort stammte das Designfinish (Designvorlagen kamen von Denkwerk), das <acronym title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</acronym>, <acronym title="Cascading Style Sheets">CSS</acronym> und das Javascript. Alle dynamischen Elemente hatten wir mit jQuery umgesetzt. Mit AJAX-Funktionalitäten waren wir nicht zimperlich.</p>
	<p>Die Seite ist in Sachen Präsentation etwas ganz Besonderes, die Funktionen mit jQuery zum Leben zu erwecken hat echt Spaß gemacht. Auch die Zusammenarbeit mit den Teamkollegen bei sevenload, die die App selbst mit dem AGAVI-Framework aufgebaut haben und mit Denkwerk natürlich, die das Konzept auf die Beine gestellt haben, war atemberaubend. An der Realisierung haben wirklich viele Leute gearbeitet, auf allen Seiten. Ich bin stolz, dass dies nun auch Früchte trägt.</p>
	<p>Auch wenn ich heute nicht mehr bei sevenload arbeite, ist dies doch eine späte, aber schöne Ehrung für meine Arbeit. Danke nach Köln an Ibo und Tom, und natürlich an AME.</p>
	<p>Hier ist übrigens noch ein <a href="http://www.pressebox.de/pressemeldungen/denkwerk-gmbh/boxid-150353.html">Award</a> für BMW-web.tv</p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/der-erste-award-fur-meine-arbeit/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Testcase der neuesten PNG-Fix-Methoden [update]</title>
		<link>http://macx.de/journal/testcase-der-neuesten-png-fix-methoden/</link>
		<comments>http://macx.de/journal/testcase-der-neuesten-png-fix-methoden/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 08:47:56 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[transparent]]></category>
		<category><![CDATA[unit]]></category>

		<guid isPermaLink="false">http://macx.de/?p=161</guid>
		<description><![CDATA[Unser geliebter Internet Explorer 6 konnte bisher keine transparenten PNG-Grafiken darstellen. Mit diversen PNG-Fix-Methoden (JavaScript-Lösungen) konnte dies teilweise behoben werden. Ich habe ein Testcase mit den neuesten Methoden online gestellt.]]></description>
			<content:encoded><![CDATA[<p>Die <acronym title="Portable Network Graphics">PNG</acronym>-Fix-Methoden haben bisher eher recht als schlecht funktioniert. In der Performance sind sie langsam, zumindest wenn man alle Bilder und DIVs fetched. Aber sie haben durch die Anwendung der <a href="http://msdn.microsoft.com/en-us/library/ms532969.aspx">filter-Methode von Microsoft</a> die <acronym title="Portable Network Graphics">PNG</acronym>-Grafiken im IE6 transparent dargestellt. Doch zwei Probleme blieben, egal bei welcher Methode / Fix: background-position und background-repeat hatte nie funktioniert. Während also &#8220;richtige&#8221; Browser das Hintergrundbild schön gekachelt oder positioniert angezeigt hatten, wurde das Bild im IE6 mit den Fixes zwar transparent angezeigt, aber eben nicht so, wie wir uns das gewünscht hatten. Das Problem: Die filter-Methode lässt die Attribute position und repeat schlicht nicht zu.</p>
	<h2>Neue Lösungen und Updates</h2>
	<p>Vor ein paar Tagen erblickte eine neue JavaScript-Lösung das Licht der Welt: <a href="http://labs.unitinteractive.com/unitpngfix.php">Unit <acronym title="Portable Network Graphics">PNG</acronym> Fix</a>. Diese 1 kb kleine Lösung ist schmal, behebt aber die o.g. Probleme nicht. Viel schlimmer: Statt das Hintergrundbild zu kacheln, hat es dieses auf die volle Breite und Höhe gestreckt. Was vom Entwickler nett gemeint ist, ist in keinem Fall das, was wir sehen wollen.</p>
	<p>Gerade gestern gab es ein Update des bekannten <a href="http://www.twinhelix.com/css/iepngfix/"><acronym title="Internet Explorer">IE</acronym> <acronym title="Portable Network Graphics">PNG</acronym> Fix</a>. In seinem Forum hatte Angus Turnbull die Version 2.0 Alpha 2 <a href="http://www.twinhelix.com/cgi-bin/forum.pl/iepngfix/299/">angekündigt</a>, die nun endlich auch background-position und background-repeat unterstützen soll.</p>
	<p><img src="http://farm4.static.flickr.com/3263/2678805149_2437bae75c.jpg" class="block" alt="" width="500" height="266" /></p>
	<h2>Der Testcase</h2>
	<p>Ich baute flink ein <a href="http://dev.macxonline.net/pngfix/">Testcase</a>, der beide Methoden demonstrieren sollte. Bei dieser Seite zeige ich beide aktuellen Methoden im direkt Vergleich. Per Link kann man zwischen den beiden Varianten umstellen. Ich zeige ein inline-Element, und die beiden Problemfälle – jeweils mit einer Musterdarstellung aus dem Safari.</p>
	<p>Dabei stellte ich eben fest, dass Angus eben lediglich die Alpha 1 zum download angeboten hatte, nicht aber die erwartete Alpha 2. Denn die erste Variante, so zeigte mein Testcase, hat die Bilder transparent dargestellt im IE6, sonst ging aber wieder nichts. Angus hat fix reagiert und die Alpha 2 online gestellt. Nun habe ich mein Testcase geupdatet, mit folgendem Resultat:</p>
	<ul>
		<li>Unit <acronym title="Portable Network Graphics">PNG</acronym> Fix zeigt <acronym title="Portable Network Graphics">PNG</acronym>-Bilder ohne Extra-<acronym title="Cascading Style Sheets">CSS</acronym>-Klasse transparent da, kann aber weder background-position, noch background-repeat.</li>
	</ul>
	<ul>
		<li><acronym title="Internet Explorer">IE</acronym> <acronym title="Portable Network Graphics">PNG</acronym> Fix Alpha 2 zeigt transparente <acronym title="Portable Network Graphics">PNG</acronym>, und beherrscht auch die Kachelung. Der Trick: Das JavaScript wiederholt die Darstellung des Hintergrundbildes von sich aus. Das geht natürlich auf die Performance. Wer stark frequentierte Webseiten mit vielen IE6-Usern administriert, sollte sich den Einsatz gut überlgen. Was weiterhin nicht geht, ist die Positionierung des Hintergrundbildes. Vielleicht kommt ja bald diesbezüglich auch noch ein Update.
	<p><a href="http://dev.macxonline.net/pngfix/">Link zum Testcase</a></p>
	<h2>Update</h2>
	<p>Nach Rücksprache mit Angus funktioniert <acronym title="Internet Explorer">IE</acronym> <acronym title="Portable Network Graphics">PNG</acronym> Fix sehr wohl mit background-postion, allerdings nur dann, wenn man die Positionierung in Pixel, Prozent usw. angibt:</p>
	<blockquote>
		<p>Ah, I see! Currently background-position supports the units &#8216;px&#8217;, &#8217;%&#8217; and values like &#8216;left&#8217;, &#8216;center&#8217; etc. Try them, they should all work! I have yet to implement &#8216;em&#8217;, &#8216;pt&#8217; etc. etc. as they&#8217;re hard to calculate in the space of a couple of kilobytes and the whole script has to work in pixels to correctly tile a background <img src='http://macx.de/blogmin/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . -Angus.</p>
	</blockquote>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/testcase-der-neuesten-png-fix-methoden/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Mit jQuery ein Element verändern</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/</link>
		<comments>http://macx.de/journal/mit-jquery-ein-element-verandern/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:12:03 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>

		<guid isPermaLink="false">http://macx.de/?p=158</guid>
		<description><![CDATA[Wenn im DOM ein Element exisitert, möchte ich damit gewisse Dinge anstellen. Zum Beispiel die Breite anpassen, es animieren, oder was auch immer. Doch wie spreche ich das Element mit jQuery eigentlich an, sofern ich nicht draufklicke oder irgendeine Aktion ausführe? Die Lösung anbei.]]></description>
			<content:encoded><![CDATA[<p>Szenario: Ich möchte einem DIV eine Breite geben, und zwar die Summe der Breite seiner Kinderelemente. Also unser DIV hat fünf DIVs, die gefloatet sind. Dessen Breite in Summe möchte ich dem Elternelement mitgeben. Doch wie spreche ich nun mein DIV in jQuery an? Bisher habe ich das so gemacht:</p>
	<div class="code javascript" style="font-family: monospace;"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'#meinDiv'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">each</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'Ja, mich gibt es, stell was mit mir an.'</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></div>
	<p>Wie oben bereits erwähnt, möchte ich, dass das Element sich beim Aufbau der Seite schon verändert, nicht erst, wenn ich darauf rumdrücke (event &#8220;click&#8221;). Mit der Methode &#8220;each&#8221; konnte ich es ansprechen. Doch mein DIV gibt es auf der Seite nur einmal, also fand ich die Anwendung von &#8220;each&#8221; (gehe jedes Element durch) etwas zu viel des guten &#8211; unpassend.</p>
	<p>Dank <a href="http://highresolution.info/">Dirk Jesse</a>, der mir ein paar Tipps gab, habe ich ein jQuery-Plugin geschrieben, was mir analog zu &#8220;each&#8221; eine Funktion zur Verfügung stellt, mit dem ich mein Element, sofern es im <acronym title="Document Object Model">DOM</acronym> auftaucht, ansprechen kann &#8211; ohne Interaktion.</p>
	<p>Packt dazu außerhalb von <code>$(document).ready();</code> folgenden Code in eure Javascript-Datei:</p>
	<div class="code javascript" style="font-family: monospace;"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>$<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;$.<span style="color: #006600;">fn</span>.<span style="color: #006600;">found</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>myFunction<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;myFunction.<span style="color: #006600;">call</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>jQuery<span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;font-size: .9em;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></div>
	<p>Mit meiner neuen Funktion &#8220;found&#8221; kann ich nun das Element ansprechen. Und die Funktion, die ich ihm dabei mit auf dem Weg gebe, führt meine &#8220;found&#8221;-Funktion aus.</p>
	<div class="code javascript" style="font-family: monospace;">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'#meinDIv'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">found</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'Ja, mich gibt es, stell was mit mir an.'</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp;</div>
	<p><ins datetime="2008-06-03T10:07:22+00:00">In der neuesten <a href="http://docs.jquery.com/Release:jQuery_1.2.6">jQuery-Version 1.2.6</a> gibt es nun die Funktion, die ich hier konstruiert habe: <code>.index()</code>. Somit ist mein Add-On quasi hinfällig.</ins></p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/mit-jquery-ein-element-verandern/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Abmahnwelle in Sicht: CSS-Hacks strafbar?</title>
		<link>http://macx.de/journal/abmahnwelle-in-sicht-css-hacks-strafbar/</link>
		<comments>http://macx.de/journal/abmahnwelle-in-sicht-css-hacks-strafbar/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 07:16:25 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[abmahnwelle]]></category>
		<category><![CDATA[css-hacks]]></category>

		<guid isPermaLink="false">http://macx.de/?p=150</guid>
		<description><![CDATA[Wer hätte das Gedacht? Auf meiner Nachfrage bei einem befreundeten Webentwickler und Anwalt stellte sich heraus, dass uns unsere lieben CSS-Hacks mit einem Bein ins Gefängnis stellen können. Droht eine neue Abmahnwelle, weil wir CSS-Hacks einsetzen?]]></description>
			<content:encoded><![CDATA[<p>Was haben wir uns nicht im Vorfeld schon aufgeregt, über den in Nachrichten bekannten Hackerparagraphen. In diesem hat der Gesetzgeber verankert, dass man keine Schadsoftware mehr einsetzen darf. Auch dann nicht, wenn man seine eigene Software auf Sicherheitslücken überprüfen möchte. Wie konfus! Nun setzt der Fiskus noch einen drauf und verbietet uns unsere <abbr title="Cascading Style Sheets"><acronym title="Cascading Style Sheets">CSS</acronym></abbr>-Hacks.</p>
	<p>Mit den <abbr><acronym title="Cascading Style Sheets">CSS</acronym></abbr>-Hacks haben wir bisher das Renderverhalten von Nicht-Standardkonformen Browsern, wie Microsoft Internet Explorer 6 beeinflussen, damit die Webseite unter jedem Browser gleicht gut aussieht. Da ich befürchtete, dass der Hackerparagraph uns auch hier einen Strich durch die Rechnung macht, habe ich einmal <a href="http://www.advisign.de/ueber-uns">Thomas Schwenke</a>, seines Zeichenens Webentwickler und Anwalt, gebeten, sich der Sache anzunehmen.</p>
	<p>In seinem <a href="http://www.advisign.de/allgemein/2008-04/css-hacks-abmahnungen-und-strafen-fuer-webdesigner">Artikel</a> geht Thomas genauer auf den Sachverhalt ein und stellt fest, dass die Verwendung von <abbr><acronym title="Cascading Style Sheets">CSS</acronym></abbr>-Hacks strafbar sind. Diese beeinflussen nämlich den Programmcode der Software, die Webseite anders darzustellen, als vorgesehen. Genau das sei ein unrechtmäßiger Eingriff in den Programmcode der Software und damit laut Strafgesetzbuch strafbar.</p>
<blockquote>Wer unbefugt sich oder einem anderen Zugang zu Daten, die nicht für ihn bestimmt und die gegen unberechtigten Zugang besonders gesichert sind, unter Überwindung der Zugangssicherung verschafft, wird mit Freiheitsstrafe bis zu drei Jahren oder mit Geldstrafe bestraft. Daten im Sinne des Absatzes 1 sind nur solche, die elektronisch, magnetisch oder sonst nicht unmittelbar wahrnehmbar gespeichert sind oder übermittelt werden.<cite>(§ 202a Stafgesetzbuch)</cite></blockquote>
	<p>„Mit Zugriff ist die Penetration der Daten gemeint.“, so Thomas Schwenke. Mit Hilfe von <abbr><acronym title="Cascading Style Sheets">CSS</acronym></abbr>-Hacks „schafft es der Webdesigner, dass die Ausführung des Browserprogrammcodes verändert wird. Der <abbr><acronym title="Cascading Style Sheets">CSS</acronym></abbr>-Code wird plötzlich nicht mehr wie ursprünglich von Programmierern gedacht interpretiert.“. Da der Programmcode bei Browsern wie dem <abbr><acronym title="Internet Explorer">IE</acronym></abbr> nicht verändert werden darf, soll hier eine Straftat nach <a href="http://dejure.org/gesetze/StGB/202b.html">§ 202 b StGB l</a> vorliegen. Schwenke weiter: „Auch das Urheberrecht wird durch <acronym title="Cascading Style Sheets">CSS</acronym>-Hacks verletzt. Computerprogramme, das heißt auch Internetbrowser, sind gem. <a href="http://www.gesetze-im-internet.de/urhg/__69a.html">§ 69a Abs.1 UrhG</a> urheberrechtlich geschützt, und deren Veränderung ist nach <a href="http://www.gesetze-im-internet.de/urhg/__106.html">§§ 106 Abs.1, 69c Nr.2 UrhG</a> strafbar“.</p>
	<p>Unglaublich, oder? Sollten wir die <acronym title="Cascading Style Sheets">CSS</acronym>-Hacks sofort aus unseren Webseiten entfernen? Droht eine neue Abmahnwelle durch findige Anwälte, die eine Unterlassungserklärung verlangen? Oder bekommen unsere Kunden solche Schreiben und leiten sie direkt an uns weiter? Es dürfte unbestreitbar sein, dass der <acronym title="HyperText Markup Language">HTML</acronym> und <acronym title="Cascading Style Sheets">CSS</acronym> von uns gemacht worden sind. Ich bin gespannt, wann wir für unseren ersten Kollegen sammeln dürfen.</p>
	<p>Als Vorsichtsmaßnahme empfiehlt Thomas übrigens Conditional Comments, mit denen sich alternative <abbr><acronym title="Cascading Style Sheets">CSS</acronym></abbr>-Dateien laden lassen. Ich weiß nicht wirklich, wie die Rechtslage aussieht, und kann euch sicher keine Rechtsberatung hier geben. Aber es zeigt mir, dass wir immer öfter überprüfen sollten, was wir tun.</p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/abmahnwelle-in-sicht-css-hacks-strafbar/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Die ersten Browser schaffen schon jetzt den ACID3-Test</title>
		<link>http://macx.de/journal/die-ersten-browser-schaffen-schon-jetzt-den-acid3-test/</link>
		<comments>http://macx.de/journal/die-ersten-browser-schaffen-schon-jetzt-den-acid3-test/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 08:27:11 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[acid3.webstandards]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://macx.de/journal/die-ersten-browser-schaffen-schon-jetzt-den-acid3-test/</guid>
		<description><![CDATA[Das wundert mich: Die Browserhersteller um Webkit und Opera haben die letzten Tage hart gearbeitet, um mit ihren Browsern 100 Punkte von 100 möglichen Punkten zu erreichen. Das freut mich insbesondere deswegen, weil hier offensiv Webstandards gefördert werden.]]></description>
			<content:encoded><![CDATA[<p>Der <a href="http://acid3.acidtests.org/">ACID3-Test</a> ist eigentlich noch recht frisch. Er dient auch in der vorliegenden dritten Version der Überprüfung, ob ein Browser die Webstandards einhält und viele Techniken beherrscht. Der ACID-Test im Allgemeinen ist wenig transparent und schlüssig. Doch ein erfolgreicher Test macht schnell die Runde unter fortschrittlichen Webentwicklern. Warum ist klar: Wir machen uns Gedanken um unsere Zukunft und wollen sehen, wohin die Reise geht.</p>
	<p><img src="http://macx.de/pub/images/blog//webkit_acid3-20080327-093949.jpg" class="box floatR" alt="" width="494" height="398" /></p>
	<p>Als ich heute morgen meinen <acronym title="Really Simple Syndication">RSS</acronym>-Reader öffnete, las ich zuerst von Opera, die die <a href="http://my.opera.com/desktopteam/blog/2008/03/26/opera-and-the-acid3-test">100 Prozent schafften</a>. Die erwähnte Opera-Version soll demnächst unter labs.opera.com zum Download bereit stehen. Damit scheint Opera der erste Hersteller zu sein. Doch noch ist der Browser nicht verfügbar. Ein paar Meldungen weiter im <acronym title="Really Simple Syndication">RSS</acronym>-Reader las ich, dass Webkit in einer <a href="http://nightly.webkit.org/">downloadbaren Version</a> ebenfalls die <a href="http://webkit.org/blog/173/webkit-achieves-acid3-100100-in-public-build/">100 Punkte erreicht</a>.</p>
	<p>Ich habe mir Webkit runtergeladen (gibt es übrigens auch für Windows) und getestet. Und tatsächlich: Die Safari-Basis schafft die volle Punktzahl und ist damit der erste Browser, der den Test schafft. Bravo! Bleibt zu hoffen, dass Apple bald Safari updatet und den neuen Webkit-Build integriert.</p>
	<p>Übrigens, und das sei am Rande erwähnt, habe ich Safari 3.1 unter Windows getestet. Ich muss feststellen, dass der Safari 3.1 unter Windows der OS X-Version kaum nachsteht. Vor allem aber ist Safari faktisch der schnellste Browser unter Windows. Webentwickler sollten einen Wechsel ernsthaft in Erwägung ziehen, zumal im Safari von Haus auch Webentwicklungstools integriert sind, die sich in den Einstellungen aktivieren lassen. Wer einmal eine Seite unter Firefox (ohne Plugins) und Safari öffnet, wir den Geschwindigkeitszuwachs sofort merken.</p>
	<p>Bleibt festzuhalten: Ich freue mich auf die neuen Browser. Eröffnen sie uns doch neue Möglichkeiten. Und ich freue mich als <a href="http://webkrauts.de">Webkraut</a> auf die breite Unterstützung der Webstandards.</p>
	<p><ins datetime="2008-03-27T09:22:54+00:00">Eine Übersicht, welcher Browser wieviele Punkte schafft, gibt es bei &#8220;anomalousanomaly.com&#8221;:http://www.anomalousanomaly.com/2008/03/06/acid-3/.</ins></p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/die-ersten-browser-schaffen-schon-jetzt-den-acid3-test/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>php: Text-E-Mails schön formatieren</title>
		<link>http://macx.de/journal/text-emails-formatieren/</link>
		<comments>http://macx.de/journal/text-emails-formatieren/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 06:00:59 +0000</pubDate>
		<dc:creator>macx</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://macx.de/journal/text-emails-formatieren/</guid>
		<description><![CDATA[Wer zu versendene E-Mails seiner Onlineapplikation "schön" formatieren möchte, muss diese entweder als HTML anlegen und CSS einbinden, oder er / sie benutzt reine Text-E-Mails und liest diesen Beitrag.]]></description>
			<content:encoded><![CDATA[<p>Nehmen wir an, wir möchten all die Daten aus einem Formular mit php entgegennehmen, aufbereiten und als E-Mail versenden. Ganz einfach geht das, in dem man das Array <code>$_POST</code> durchgeht und den Schlüssel (den Namen des Formularfeldes) nebst seines Wertes (das, was der Benutzer ins Formularfeld eingetragen hat) Zeile für Zeile ausgibt.</p>
	<p>Die Lesbarkeit könnten wir steigern, in dem wir eine <acronym title="HyperText Markup Language">HTML</acronym>-E-Mail verwenden und die diversen Schlüssel und Werte in einer Tabelle auflisten. Da ich persönlich eine starke Abneigung gegen <acronym title="HyperText Markup Language">HTML</acronym>-E-Mails habe, setze ich auf reine Text-E-Mails ohne Formatierung. Aber genau hier liegt der Hase begraben: Was kann ich denn tun, um die E-Mail leserlicher zu gestalten? Die Lösung heisst: automatisiert gesetzte Tabs!</p>
	<h3>Die Lösung</h3>
	<p>Folgendes php-Script liest das Array <code>$_POST</code> Zeile für Zeile aus, berechnet die Anzahl der Buchstaben des Schlüssels, setzt einen Doppelpunkt und so viele Tabulatoren (acht Leerzeichen hat hier im Beispiel ein Tab), wie nötig, damit die dahinter folgenden Werte in der gesamten E-Mail immer auf gleicher Höhe stehen.</p>
	<div class="code php" style="font-family: monospace;"><span style="color: #0000ff;">$mailTo</span>&nbsp; &nbsp; &nbsp; &nbsp; = <span style="color: #ff0000;">'your-email@adress.tld'</span>;<br />
<span style="color: #0000ff;">$mailFrom</span>&nbsp; &nbsp; &nbsp; = <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Email'</span><span style="color: #66cc66;">&#93;</span>;<br />
<span style="color: #0000ff;">$subject</span>&nbsp; &nbsp; &nbsp; &nbsp;= <span style="color: #ff0000;">'[mySite] Anfrage vom '</span>.<a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'d.m.Y (H:i'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">' Uhr)'</span>;<br />
<br />
<span style="color: #0000ff;">$tab</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= <span style="color: #cc66cc;">8</span>;<br />
<span style="color: #0000ff;">$tabLimit</span>&nbsp; &nbsp; &nbsp; = <span style="color: #cc66cc;">3</span>;<br />
<span style="color: #0000ff;">$limitChars</span>&nbsp; &nbsp; = <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$tab</span> * <span style="color: #0000ff;">$tabLimit</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
<span style="color: #0000ff;">$message</span>&nbsp; &nbsp; &nbsp; &nbsp;= <span style="color: #ff0000;">''</span>;<br />
<span style="color: #b1b100;">foreach</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span> <span style="color: #b1b100;">AS</span> <span style="color: #0000ff;">$key</span> =&gt; <span style="color: #0000ff;">$value</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$strlen</span>&nbsp; &nbsp; &nbsp;= <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$key</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #0000ff;">$whiteSpace</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$limitChars</span> - <span style="color: #0000ff;">$strlen</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #0000ff;">$tabsNum</span>&nbsp; &nbsp; = <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$strlen</span> == <span style="color: #0000ff;">$tab</span><span style="color: #66cc66;">&#41;</span> ? <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$tabLimit</span> - <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>: <a href="http://www.php.net/floor"><span style="color: #000066;">floor</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$whiteSpace</span> / <span style="color: #0000ff;">$tab</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #0000ff;">$tabs</span>&nbsp; &nbsp; &nbsp; &nbsp;= <a href="http://www.php.net/str_repeat"><span style="color: #000066;">str_repeat</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>, <span style="color: #0000ff;">$tabsNum</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #0000ff;">$message</span>&nbsp; &nbsp;.= <span style="color: #0000ff;">$key</span>.<span style="color: #ff0000;">&quot;:&quot;</span>.<span style="color: #0000ff;">$tabs</span>.<a href="http://www.php.net/trim"><span style="color: #000066;">trim</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$value</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #0000ff;">$message</span>&nbsp; .= <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>-- <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .&nbsp; <span style="color: #ff0000;">'URL:&nbsp; &nbsp;'</span>.<span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'HTTP_HOST'</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .&nbsp; <span style="color: #ff0000;">'IP:&nbsp; &nbsp; '</span>.<span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'REMOTE_ADDR'</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .&nbsp; <span style="color: #ff0000;">'Host:&nbsp; '</span>.<a href="http://www.php.net/gethostbyaddr"><span style="color: #000066;">gethostbyaddr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'REMOTE_ADDR'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .&nbsp; <span style="color: #ff0000;">'Agent: '</span>.<span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'HTTP_USER_AGENT'</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;<br />
&nbsp;</div>
	<p>Wenn ihr dieses Beispiel in eure Applikation übernehmen wollt, solltet ihr unbedingt die Eingaben der Benutzer validieren und eventuell sogar auf SPAM überprüfen. Viel Spaß beim ausprobieren!</p>]]></content:encoded>
			<wfw:commentRss>http://macx.de/journal/text-emails-formatieren/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
