<?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>Learning the World &#187; microformats</title>
	<atom:link href="http://learningtheworld.eu/tag/microformats/feed/" rel="self" type="application/rss+xml" />
	<link>http://learningtheworld.eu</link>
	<description></description>
	<lastBuildDate>Tue, 06 Nov 2012 00:17:33 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>Enhanced Keyboard-accessible Google Maps</title>
		<link>http://learningtheworld.eu/2009/keyboard-accessible-google-maps/</link>
		<comments>http://learningtheworld.eu/2009/keyboard-accessible-google-maps/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 19:00:28 +0000</pubDate>
		<dc:creator><![CDATA[Martin Kliehm]]></dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[hCard]]></category>
		<category><![CDATA[keyboard access]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[Patrick H. Lauke]]></category>
		<category><![CDATA[vcard]]></category>

		<guid isPermaLink="false">http://learningtheworld.eu/?p=517</guid>
		<description><![CDATA[<strong>Patrick H. Lauke</strong> wrote an excellent article about <strong>keyboard-accessible Google Maps</strong> on the Opera Developer website. Still I was able to improve it slightly when I implemented an accessible map myself. I would like to share these modifications with you.]]></description>
				<content:encoded><![CDATA[<p><a href="http://twitter.com/patrick_h_lauke">Patrick H. Lauke</a> wrote an excellent article about <a href="http://dev.opera.com/articles/view/keyboard-accessible-google-maps/">keyboard-accessible Google Maps</a> on the Opera Developer website. Still I was able to improve it slightly when I implemented an <a href="http://eafra.eu/2009/venue/">accessible map</a> myself. I would like to share these modifications with you:</p>

<ul>
<li>A <strong>link to Google Maps</strong> when JavaScript is disabled.</li>
<li>Support for the <strong><a href="http://code.google.com/apis/ajax/documentation/">Google <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> <acronym title="Application Programming Interface">API</acronym> Loader</a></strong>.</li><li>Using the <strong>small map control</strong>.</li>
<li>Keyboard accessibility for <strong><em>all</em> control elements</strong> within the map.</li>
</ul>

<p>As a fallback without JavaScript&nbsp;&mdash; because people disable it, because their mobile device doesn&rsquo;t support it, or because it gets filtered by corporate proxies&nbsp;&mdash; Patrick used the little known <a href="http://code.google.com/intl/en-US/apis/maps/documentation/staticmaps/">Google Static Maps <acronym>API</acronym></a>, but for some reason he missed adding the link to Google. Here is the fix:</p>

<ol class="code" title="HTML code">
<li><code>&lt;div id=&quot;map&quot;&gt;</code></li>
<li class="indent"><code><strong>&lt;a href=&quot;http://maps.google.com/maps<span class="codeSpace">&nbsp;</span><span class="nowrap">?f=q&amp;amp;output=html</span><span class="codeSpace">&nbsp;</span><span class="nowrap">&amp;amp;q=50.110950+8.684666&quot;</span> title=&quot;Google Maps&quot;&gt;</strong></code></li>
<li class="double">&lt;img src=&quot;http://maps.google.com/staticmap?hl=en<span class="codeSpace">&nbsp;</span><span class="nowrap">&amp;amp;center=50.112267,8.678384</span><span class="codeSpace">&nbsp;</span><span class="nowrap">&amp;amp;markers=50.110950,8.684666,red</span><span class="codeSpace">&nbsp;</span><span class="nowrap">&amp;amp;zoom=15&amp;amp;size=500&#x78;300</span><span class="codeSpace">&nbsp;</span><span class="nowrap">&amp;amp;key=[Your API Key]&quot;</span> alt=&quot;City map of Frankfurt&quot; width=&quot;500&quot; height=&quot;300&quot; /&gt;</li>
<li class="indent"><code><strong>&lt;/a&gt;</strong></code></li>
<li><code>&lt;/div&gt;</code></li>
</ol>

<div>
<p><a href="http://maps.google.com/maps?f=q&amp;output=html&amp;q=50.110950757575814+8.684666901826859" title="Google Maps" id="maps-static-without-js"><img src="http://maps.google.com/staticmap?hl=de&amp;center=50.112267,8.678384&amp;markers=50.110950757575814,8.684666901826859,red&amp;zoom=15&amp;size=500x300&amp;key=ABQIAAAAiX9IUvugciHL2lvi9eAyFBSMjuiRZEUjgLWr4CdH8vZ2LQfPbhTYj1_FZwtIQquykkDMnYbZpMJHXQ" alt="City Map of Frankfurt" width="510" height="300" /></a></p>
</div>

<p>Then I changed how the map is embedded. As it seems that the <a href="http://code.google.com/apis/ajax/documentation/"><acronym>API</acronym> loader</a> is more current, I preferred that way:</p>

<ol class="code" title="HTML code">
<li><code>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.google.com/jsapi?key=[Your API Key]&quot;&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type=&quot;text/javascript&quot; src="/js/accgmap.js&quot;&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type=&quot;text/javascript&quot;&gt;</code></li>
<li class="indent"><code>google.load( &#x27;maps&#x27;, &#x27;2&#x27;, { &#x27;language&#x27; : &#x27;en&#x27; } );</code></li>
<li class="indent"><code>google.setOnLoadCallback( GMAP.initMap );</code></li>
<li><code>&lt;/script&gt;</code></li>
</ol>

<p>Using the small control elements is trivial: <code>SmallMapControl()</code>. The next thing I wanted to change was <strong>keyboard access to <em>all</em> controls</strong>, in particular for the map type, <abbr title="that is">i.e.</abbr> <code>Map&nbsp;| Satellite&nbsp;| Hybrid</code>. Patrick refers to an <code>id</code>, but I found that all relevant controls have a <code>title</code>, so I just checked for that attribute. I also dropped setting the <code>style</code> attribute in JavaScript as that belongs in the <acronym title="Cascading Style Sheets">CSS</acronym> file. His original function <code>GKeyboardPatch()</code> now looks like this (note the <code>while</code> loop for a slightly better performance):</p>

<ol class="code" title="JavaScript code">
<li><code>GKeyboardPatch: <strong>function</strong>( map ) {</code></li>
<li class="indent"><code>var</code> button, divs = map.getContainer().getElementsByTagName( &#x27;div&#x27; );</li>
<li class="indent"><code>var</code> i = 0;</li>
<li class="indent"><code>while</code> ( divs[i] ) {</li>
<li class="double"><code>if ( divs[i].getAttribute( &#x27;log&#x27; ) || ( <em>divs[i].getAttribute( &#x27;title&#x27; ) &amp;&amp; divs[i].getAttribute( &#x27;title&#x27; ) != &#x27;&#x27;</em> ) ) {</code></li>
<li class="double"><span class="indent">button = document.createElement( &#x27;button&#x27; );</span></li>
<li class="double"><span class="indent">button.setAttribute( &#x27;value&#x27;, divs[i].getAttribute( &#x27;title&#x27; ));</span></li>
<li class="double"><span class="indent">divs[i].appendChild( button );</span></li>
<li class="double"><span class="indent">if ( divs[i].getAttribute( &#x27;log&#x27; )) { <code>// only control buttons</code></span></li>
<li class="double"><code class="double">// override the IE opacity filter that Google annoyingly sets</code></li>
<li class="double"><span class="double">divs[i].style.filter = &#x27;&#x27;;</span></li>
<li class="double"><code class="double">// should really set to &#x27;transparent&#x27;</code></li>
<li class="double"><span class="double">divs[i].style.background = <span class="nowrap">&#x27;url( http://www.google.com/</span><span class="codeSpace">&nbsp;</span>intl/en_ALL/mapfiles/transparent.png )&#x27;;</span></li>
<li class="double"><span class="indent">}</span></li>
<li class="double">}</li>
<li class="double">i++;</li>
<li class="indent">}</li>
<li>}</li>
</ol>

<p>Now remember I said I&rsquo;d rather separate style and behaviour, so here are a some lines of <acronym>CSS</acronym> with the setting of <code>width</code> and <code>height</code> for the <code>#map</code> being most relevant, otherwise it will collapse:</p>

<ol class="code" title="CSS code">
<li><code>#map {</code></li>
<li class="indent">height: 300px;</li>
<li class="indent">overflow: hidden;</li>
<li class="indent">position: relative;</li>
<li class="indent">width: 500px;</li>
<li><code>}</code></li>
<li><code>#maps-static, #maps-static img {</code></li>
<li class="indent">display: block;</li>
<li><code>}</code></li>
<li><code>#map span.note {</code></li>
<li class="indent">display: none;</li>
<li><code>}</code></li>
<li><code>#map button {</code></li>
<li class="indent">background: transparent;</li>
<li class="indent">border-style: solid;</li>
<li class="indent">border-width: 0;</li>
<li class="indent">cursor: pointer;</li>
<li class="indent">height: 100%;</li>
<li class="indent">left: -2px;</li>
<li class="indent">margin: 2px;</li>
<li class="indent">overflow: hidden;</li>
<li class="indent">padding: 2px;</li>
<li class="indent">position: absolute;</li>
<li class="indent">text-indent: -100em;</li>
<li class="indent">top: -2px;</li>
<li class="indent">width: 100%;</li>
<li><code>}</code></li>
<li><code>#map a:focus, #map a:active, #map button:focus, #map button:active {</code></li>
<li class="indent">outline: 2px dashed #61bf1a;</li>
<li><code>}</code></li>
</ol>

<p>And that&rsquo;s it, thanks again to Patrick for the solid foundation I built upon. Now <a href="/examples/js/accgmap.js">download the JavaScript code</a> and try to tab through the map below.</p>

<p>Actually on the other website I extracted <strong>hCard microformats</strong> from the page as well and displayed the addresses on the map, but I was lazy and used jQuery. I thought it doesn&rsquo;t look well here mixed with Patrick&rsquo;s clean <acronym title="Document Object Model">DOM</acronym> scripting, but feel free to <a href="http://eafra.eu/2009/venue/">take it from the original website</a>.</p>

<div id="map">
<p><a href="http://maps.google.com/maps?f=q&amp;output=html&amp;q=50.110950757575814+8.684666901826859" title="Google Maps" id="maps-static"><img src="http://maps.google.com/staticmap?hl=de&amp;center=50.112267,8.678384&amp;markers=50.110950757575814,8.684666901826859,red&amp;zoom=15&amp;size=500x300&amp;key=ABQIAAAAiX9IUvugciHL2lvi9eAyFBSMjuiRZEUjgLWr4CdH8vZ2LQfPbhTYj1_FZwtIQquykkDMnYbZpMJHXQ" alt="City Map of Frankfurt" width="510" height="300" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://learningtheworld.eu/2009/keyboard-accessible-google-maps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oh, won&#8217;t somebody please think of the children!</title>
		<link>http://learningtheworld.eu/2008/somebody-please-think-of-the-children/</link>
		<comments>http://learningtheworld.eu/2008/somebody-please-think-of-the-children/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 21:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Martin Kliehm]]></dc:creator>
				<category><![CDATA[W3C]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[censorship]]></category>
		<category><![CDATA[children]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[cybersitter]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[ICRA]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[PICS]]></category>
		<category><![CDATA[protection]]></category>
		<category><![CDATA[rating]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[search engines]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Tor]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://learningtheworld.eu/2008/somebody-please-think-of-the-children/</guid>
		<description><![CDATA[A little known <acronym title="World Wide Web Consortium">W3C</acronym> standard is the <strong>Platform of Internet Content Selection (<acronym>PICS</acronym>)</strong>. <acronym>PICS</acronym> is a system for self-labeling. Think of an early predecessor of the Semantic Web. Or in microformats it would be <em>hPorn</em>.&#160;[&#8230;]]]></description>
				<content:encoded><![CDATA[<p class="alert">Please note that the <acronym title="Platform of Internet Content Selection">PICS</acronym> standard has been superseded by <acronym title="Protocol for Web Description Resources">POWDER</acronym> in 2009. The old <acronym title="Resource Description Framework">RDF</acronym> code can be <a href="http://www.w3.org/TR/2009/NOTE-powder-primer-20090901/#ICRA1">included in a <acronym>POWDER</acronym> document</a>, though.</p>

<p>A little known <acronym title="World Wide Web Consortium">W3C</acronym> standard is the <strong><a href="http://www.w3.org/PICS/">Platform of Internet Content Selection</a> (<acronym>PICS</acronym>)</strong>. You can tell from the poor layout that it&rsquo;s a very old standard&nbsp;&mdash; in fact all of its parts are from 1996 and 1997. <acronym title="Oh my God">OMG</acronym>, that&rsquo;s <em>ancient!</em> That&rsquo;s even older than <acronym title="Hypertext Markup Language">HTML</acronym>&nbsp;4, <acronym title="Cascading Style Sheets">CSS</acronym>, or the Web Content Accessibility Guidelines!</p>

<p><strong><acronym>PICS</acronym> is a system for self-labeling.</strong> That raised some concerns about censorship in 1998, but governments who really want to censor their population&rsquo;s internet access have found more effective ways to block content (I, for one, can recommend <a href="https://www.torproject.org">Tor</a> as a countermeasure, also available as a Firefox extension, though I cannot guarantee your government approves it). So what remains is a meta element with information about your website, accompanied by a machine readable <acronym title="Resource Description Framework">RDF</acronym>/<acronym title="Extensible Markup Language">XML</acronym> file.</p>

<ol class="code">
<li><code>&lt;link rel=&quot;meta&quot; href=&quot;/<a href="/pics-label.rdf" type="application/rdf+xml">pics-label.rdf</a>&quot; type=&quot;application/rdf+xml&quot; title=&quot;ICRA PICS label&quot; /&gt;</code></li>
<li><code>&lt;meta <strong>http-equiv=&quot;pics-label&quot;</strong> content=&#39;(pics-1.1 &quot;http://www.icra.org/pics/vocabularyv03/&quot; l gen true for &quot;http://learningtheworld.eu&quot; r (n 0 s 0 v 0 l 1 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 1))&#39; /&gt;</code></li></ol>

<p>Since in the nineties internet progress was driven by porn, <acronym>PICS</acronym> is mostly about <strong>child protection</strong>, although it can be used to describe a machine readable privacy statement and other things as well. Think of an early predecessor of the Semantic Web. Or in microformats it would be <em>hPorn</em>. Well, I assume very few of you run xxx sites, so why am I wasting your time with this post?</p>

<p>Because the <acronym>PICS</acronym> standard is most convenient when your website is <em>not</em> pornographic. The standard provides a way to label your website and distinguish between pictures of naked people as Greek ancient sculptures, in an educational or journalistic context, or as mere porn. But despite the name it&rsquo;s not only suitable for rating pictures, it&rsquo;s for text content or user-generated content as well, among other criteria. Plus the <acronym>PICS</acronym> label is <strong>recognized by Google</strong>, so it&rsquo;s not about rushing ahead and self-censoring to please our overlords, it&rsquo;s a measure to maximize the target audience and avoid mislead traffic. I believe a few of your clients may appreciate that. For example although this post uses quite a few trigger words, <acronym>PICS</acronym> provides a way to tell search engines and cybersitting software about the true nature of this article. I love that ability!</p>
]]></content:encoded>
			<wfw:commentRss>http://learningtheworld.eu/2008/somebody-please-think-of-the-children/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Amazon Machine Tags Plugin for WordPress</title>
		<link>http://learningtheworld.eu/2007/amazon-machine-tags/</link>
		<comments>http://learningtheworld.eu/2007/amazon-machine-tags/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 22:51:26 +0000</pubDate>
		<dc:creator><![CDATA[Martin Kliehm]]></dc:creator>
				<category><![CDATA[downloads]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[book:isbn=0596515812]]></category>
		<category><![CDATA[book:isbn=0596529260]]></category>
		<category><![CDATA[ECS]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[ip2country]]></category>
		<category><![CDATA[machine tags]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[POSH]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[XSLT]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://learningtheworld.eu/2007/amazon-machine-tags/</guid>
		<description><![CDATA[I always wanted to implement one thing since I started the blog: <strong>a simple inclusion of Amazon items</strong>. I didn&#8217;t want to search through results that existing plugins provided. When I wrote about something like a book, I already used machine tags to identify the subject! So I found the inspiration to write my first real WordPress plugin: Amazon Machine Tags.&#160;[&#8230;]]]></description>
				<content:encoded><![CDATA[<p class="alert">The forthcoming <strong>API change</strong> requiring signed requests will effect this plugin. If you do not <a href="http://wordpress.org/extend/plugins/amazon-machine-tags/">update the plugin</a> then it will stop working on August 15th. Comments on this version are closed, please comment on the <a href="/2009/amazon-authorization/">update page</a>.</p>

<h3>In this article</h3>

<ul class="toc">
<li><a href="#intro">Introduction</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#faq"><acronym title="Frequently Asked Questions">FAQ</acronym></a></li>
<li><a href="#changelog">Changelog</a></li>
<li><a href="#comments">Discussion</a></li>
</ul>

<h3 id="intro">Introduction</h3>

<p>I always wanted to implement one thing since I started the blog: <strong>a simple inclusion of Amazon items</strong>. I didn&rsquo;t want to search through results that existing plugins provided. When I wrote about something like a book, I already used machine tags to identify the subject! So I found the inspiration to write my first real WordPress plugin: <a href="http://wordpress.org/extend/plugins/amazon-machine-tags/">Amazon Machine Tags</a>.</p>

<p>Here&rsquo;s what it does:</p>

<ol>
<li>It identifies any tag in the <a href="http://en.wikipedia.org/wiki/Machine_tag">machine (or triple) tag</a> form <code>book:<acronym>isbn</acronym>=1234567890</code> or <code>amazon:asin=1234567890</code>. That works with native tags from WordPress 2.3 and later, Bunny&rsquo;s Technorati Tags, Jerome&rsquo;s Keywords, or as inline text (see below).</li>
<li>Then it gets the <strong>item information and a thumbnail image</strong> from the <a href="http://www.amazon.com/gp/browse.html?node=3435361">Amazon Web Services <acronym title="Application Programming Interface">API</acronym></a>. That&rsquo;s the real thing including prices and such, no cheap <acronym>RSS</acronym> feed. <img src="http://learningtheworld.eu/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </li>
<li><p>The item(s) are displayed in the sidebar or in a blog article with a link to <strong>the visitor&rsquo;s best match</strong> (if the <a href="http://priyadi.net/archives/2005/02/25/wordpress-ip-to-country-plugin/">ip2country plugin</a> is installed) or <strong>a default Amazon shop</strong> of your choice. See examples in the sidebar.</p>
<p>The &ldquo;best match&rdquo; is based on the visitor&rsquo;s location. If she is from one of the six countries where Amazon has shops, that locale is chosen. If he is from Europe, the preferred language is matched to either France, Germany, or <acronym title="United Kingdom">UK</acronym>, with <acronym>UK</acronym> as default. If it&rsquo;s neither a locale nor Europe, amazon.com is the default. Based on your location, do you think that&rsquo;s a reasonable approach?</p>
<p>Note that some items, like books in any language other than English, are only available from certain locales, so a visitor from the <acronym title="United Kingdom">UK</acronym> might not see German books you recommend.</p></li>
<li>If you are an Amazon Associate for that locale, your Associate ID is included automatically.</li>
</ol>

<p>You can edit the server-side, semantic and valid <acronym title="Extensible Hypertext Markup Language">XHTML</acronym> output via <acronym title="Extensible Stylesheet Language Transformation">XSLT</acronym>, change the <acronym title="Cascading Style Sheets">CSS</acronym>, or translate the admin interface through <a href="http://www.poedit.net">.po files</a>. Actually <strong>Amazon loads the <acronym>XSLT</acronym> file from your server</strong> and processes it on theirs, so you shouldn&rsquo;t block <acronym>HTTP</acronym> access to the plugin directory, and <code>localhost</code> doesn&rsquo;t work either.</p>

<p>Results can be <strong>cached</strong> for anything between one second and one hour, so you don&rsquo;t need to worry even when you run an extremely popular blog.</p>

<p>The <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a> is included to verify the Access Key in the admin interface via <acronym title="Representational State Transfer">REST</acronym> and unobtrusive <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>.</p>

<p>I hope this little piece of software serves you well and you like it.</p>

<h3 id="installation">Installation</h3>

<ol>
<li><a href="http://downloads.wordpress.org/plugin/amazon-machine-tags.zip">Get the latest version</a> of the plugin from the WordPress site.</li>
<li>Upload the whole <code>amazon-machine-tags</code> folder into the <code>/wp-content/plugins/</code> directory.</li>
<li>Activate the plugin through the &ldquo;Plugins&rdquo; menu in WordPress.</li>
<li>Get an Amazon Web Services <a href="http://docs.amazonwebservices.com/AWSECommerceService/2007-06-13/GSG/GettinganAWSAccessKeyID.html">Access Key</a>.</li>
<li>Create a <code>wp-content/cache/</code> directory with permissions set to 755, or 777 if you create the directory as <code>root</code> user.</li>
<li>Put <code>&lt;?php AMTAP::get_items(); ?&gt;</code> in your sidebar and start using machine tags.</li>
<li><a href="#comment-32667">Edit <code>amtap-blog.css</code></a> if you like.</li>
<li>If you want to use tags in a blog article, write <code>&#91;amtap book:isbn=1234567890&#93;</code> or <code>&#91;amtap amazon:asin=1234567890&#93;</code>. Thanks to <a href="http://www.paulinepauline.de">paulinepauline</a> for that idea.</li>
</ol>

<h3 id="faq">Frequently Asked Questions</h3>

<h4>Does it work in the sidebar on Pages, too?</h4>

<p>Posts have tags, pages don&rsquo;t, so it doesn&rsquo;t work on those by default. But there&rsquo;s a plugin called <a href="http://wordpress.org/extend/plugins/tags4page/">tags4page</a> that enables tags for pages. Works like a charm.</p>

<h4>Is there a limit of how many items can be requested?</h4>

<p>Yes, Amazon has a limit of 10 items per request. Since they are separate requests, you can use a maximum of 10 items in the content plus a maximum of 10 in the sidebar.</p>

<h4>Would it be possible to cache the images?</h4>

<p>Technically it wouldn&rsquo;t be a problem, but the <a href="http://www.amazon.com/AWS-License-home-page-Money/b/?node=3440661#5">Amazon Web Services license</a> explicitly forbids caching of images (see 5.1.10). Sorry.</p>

<h4>I need to a larger thumbnail (medium), but can&rsquo;t seem to find a place to edit the size of the image being requested.</h4>

<p>The image size can be edited in the <acronym title="Extensible Stylesheet Language Transformation">XSLT</acronym>. The original result is a <acronym title="Extensible Markup Language">XML</acronym> file that is transformed by Amazon using your local copy of <code>amtap-html-sidebar.xsl</code> and <code>amtap-html-content.xsl</code>, respectively. Replacing every occurance of <code>.//aws:TinyImage</code> with <code>.//aws:MediumImage</code> should do the trick.
</p>

<p>You can view the original <acronym>XML</acronym> when you activate the &ldquo;debug&rdquo; option in the admin interface so that the request string is printed as a comment in the sidebar&rsquo;s source code. <acronym>XSLT</acronym> is a very powerful tool, and there&rsquo;s a lot more in the <acronym>XML</acronym>, for example customer reviews.</p>

<h4>Are all options really required?</h4>

<p>No. The only required field is the Amazon Web Services Access Key. You can leave the others, they are set to defaults then.</p>

<h3 id="changelog">Changelog</h3>

<ul class="changelog">
<li><strong>3.0</strong> <ins datetime="20090731">(2009-07-31)</ins>: Added signed requests for the new Amazon authorization requirement. Updated the API version to 2009-07-01 (please note: if you use your own XSL files, you must update the version in the XML namespace URL). Updated links.</li>
<li><strong>2.0</strong> <ins datetime="20080718">(2008-07-18)</ins>:
<ol>
<li>Added fields for editing the <a href="http://wppluginreview.info/2008/03/09/review-amazon-machine-tags/">sidebar headline</a>, <a href="#comment-33625">link target</a>, and displaying <a href="#comment-33625">rating stars</a>.</li>
<li>Added an error message if the plugin is run from a private IP address space like <a href="#comment-34319"><code>localhost</code></a>.</li>
<li>Changed <a href="#comment-33888">priorities for price</a> selection, they are now: <code>LowestNewPrice</code>, <code>ListPrice</code>, first offer, <code>LowestUsedPrice</code>.</li>
<li>Added support for the display of an <a href="#comment-34426">artist name</a>.</li>
<li>Added <a href="#comment-34412">rating stars</a>.</li>
<li>Fixed <a href="#comment-34224">EAN numbers with a dash</a>.</li>
<li>Fixed cutting of titles after a <a href="#comment-34326">period</a>.</li>
<li>Changed <acronym title="Cascading Style Sheets">CSS</acronym> and <acronym title="Extensible Stylesheet Language">XSL</acronym> files. <strong>Take care when you edited those.</strong></li>  
</ol>
</li>
<li><strong>1.1.3:</strong> Changed <code>amtap-admin.css</code> and <code>amtap-admin.inc.php</code> to make the admin interface look prettier with WordPress 2.5.</li>
<li><strong>1.1.2:</strong> Fixed a <a href="#comment-33367">bug</a> in <code>amtap.php</code> when there are no other tags but default tags.</li>
<li><strong>1.1.1:</strong> <a href="#comment-32967">Fixed</a> the sort order of inline items, a bug for returning an error message when the cache file is not writable, and added Amazon&rsquo;s limit of 10 items per request.</li>
<li><strong>1.1.0:</strong> Fixed the display of inline tags on the home page. Improved regular expression for filtering inline tags.</li>
<li><strong>1.0.6:</strong> Fixed a bug introduced through the new default items function when there were no items to be displayed in the sidebar.</li>
<li><strong>1.0.5:</strong> Added an option for <a href="#comment-32509">default items on every page</a>. Changed <code>amtap-html-sidebar.xsl</code> to sort items in the order of the request.</li>
<li><strong>1.0.4:</strong> Bugfix for replacement of dollar characters in content. Also content items are now cached separately.</li>
<li><strong>1.0.3:</strong> Fixed the <a href="#comment-32268" title="See comment">display of inline tags</a> on category pages.</li>
<li><strong>1.0.2:</strong> Changed the plugin path from <code>amtap</code> to <code>amazon-machine-tags</code> for consistency with the file structure in the zipped file.</li>
<li><strong>1.0.1:</strong> Bugfix for native WordPress tags.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://learningtheworld.eu/2007/amazon-machine-tags/feed/</wfw:commentRss>
		<slash:comments>202</slash:comments>
		</item>
		<item>
		<title>The Dalai Lama and Microformats</title>
		<link>http://learningtheworld.eu/2007/dalai-lama-and-microformats/</link>
		<comments>http://learningtheworld.eu/2007/dalai-lama-and-microformats/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 12:00:02 +0000</pubDate>
		<dc:creator><![CDATA[Martin Kliehm]]></dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[case study]]></category>
		<category><![CDATA[Dalai Lama]]></category>
		<category><![CDATA[Frankfurt]]></category>
		<category><![CDATA[Freunde für einen Freund]]></category>
		<category><![CDATA[friends for a friend]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Hessenpark]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[print version]]></category>
		<category><![CDATA[techniques]]></category>

		<guid isPermaLink="false">http://learningtheworld.eu/2007/dalai-lama-and-microformats/</guid>
		<description><![CDATA[His Holiness the Dalai Lama visits the Hessenpark near Frankfurt on September 22, and as our agency is involved in the organization of that event, we sponsored the website <em>Friends for a Friend</em>.&#160;[&#8230;]]]></description>
				<content:encoded><![CDATA[<p class="vcard"><a href="http://www.freunde-fuer-einen-freund.de" class="url" rel="met co-worker"><img src="/wp-content/uploads/2007/09/screenshot-friends-for-a-friend.jpg" alt="Screenshot: Friends for a Friend" class="floatleft book" /></a> <strong>His Holiness the Dalai Lama</strong> visits the Hessenpark near Frankfurt on September 22. As our agency is involved in the organization of that event, we sponsored the website <a href="http://friendsforafriend.de" rel="met co-worker"><strong class="fn org">Friends for a Friend</strong></a>. We had a few guidelines concerning the color coding, also we were required to reflect the poster design, but otherwise we were free to do as we liked.</p>

<p>When designing a site for a person who is so empathic we deemed it consequential not to exclude any users. After a little debate with our designers we settled on a color scheme that fulfills most requirements for <a href="http://juicystudio.com/article/new-improved-colour-contrast-firefox-extension.php">color contrast</a>. Furthermore text is resizable, forms are labeled, the structure is semantic: in the German <a href="http://bitvtest.de">accessibility test</a> we got 98 out of 100 points.</p>

<p>There are little mashups including <strong>Google Maps</strong> and a <strong>journey planner</strong> for public transport. You can get decent <strong>print results</strong>, a customized error page, the site is <strong>language negotiated</strong> and thus loads your preferred language version automatically. Loading is extremely fast since we&rsquo;ve learned our <a href="/2007/performance-2/">performance</a> lessons, and of course <strong>everything is <a href="http://microformats.org">microformatted</a></strong>.</p>

<p>I must admit it&rsquo;s difficult to microformat &ldquo;Dalai Lama,&rdquo; because it is a role, not a name. <code><abbr title="full name">fn</abbr></code> is <em>required</em>, but the text only refers to the title and role &ldquo;His Holiness the 14th Dalai Lama.&rdquo; His monastic name is of course Tenzin Gyatso, his family name is Lhamo, and his given name Thondup, but the text doesn&rsquo;t mention any of these. I&rsquo;m afraid microformats do not properly reflect this. How do you markup &ldquo;the Pope?&rdquo; <img src="http://learningtheworld.eu/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </p>

<p class="vcard">We used <strong>WordPress</strong> as a simple content management system with a self-written plug-in to clean up the comments template&nbsp;&mdash; the default error messages were <em>so</em> unacceptable. Alas we ended up with one installation for each language because the existing internationalization plug-ins were immature. Special credits to <a href="http://lostintranslation.com" class="fn url" rel="met colleague acquaintance">Jessica Spengler</a> for the excellent and sensitive text translation!</p>

<p>I don&rsquo;t think that modern technology and something ancient as Tibetan buddhism really contradict each other. In fact topics like sustainability, responsibility and empathy become more important in our work environment. Whenever the <a href="http://www.tibet-institut.ch/content/smd/en/"><strong>Science meets Dharma</strong></a> project would call for experienced web developers I&rsquo;m sure we would find many willing to share their knowledge with Tibetan monks and get an insight into their wisdom and philosophy in return.</p>
]]></content:encoded>
			<wfw:commentRss>http://learningtheworld.eu/2007/dalai-lama-and-microformats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My @media 2006 Day Two</title>
		<link>http://learningtheworld.eu/2006/atmedia-day-two/</link>
		<comments>http://learningtheworld.eu/2006/atmedia-day-two/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 07:00:04 +0000</pubDate>
		<dc:creator><![CDATA[Martin Kliehm]]></dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[@media]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[atmedia]]></category>
		<category><![CDATA[atmedia2006]]></category>
		<category><![CDATA[book:isbn=0321509021]]></category>
		<category><![CDATA[book:isbn=1590598148]]></category>
		<category><![CDATA[Cameron Moll]]></category>
		<category><![CDATA[Dan Cederholm]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[Eric Meyer]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jeremy Keith]]></category>
		<category><![CDATA[Jon Hicks]]></category>
		<category><![CDATA[london]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Molly Holzschlag]]></category>
		<category><![CDATA[Nate Koechley]]></category>
		<category><![CDATA[Robin Christopherson]]></category>
		<category><![CDATA[Tantek Çelik]]></category>
		<category><![CDATA[uk]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://learningtheworld.eu/2006/atmedia-day-two/</guid>
		<description><![CDATA[Day two of the @media conference included talks about microformats, Yahoo!&#8217;s new technical strategies, browser memory leaks and performance tweaks, some information about accessibility, the mobile web, and meeting Molly Holzschlag.&#160;[&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>Day two of the @media conference included</strong> talks about microformats, Yahoo!&rsquo;s new technical strategies, browser memory leaks and performance tweaks, some information about accessibility, the mobile web, and meeting Molly&reg; Holzschlag.</p>

<h3>In this post:</h3>

<ul class="toc">
    <li><a href="#cederholm">Dan Cederholm: Bulletproof web design</a></li>
    <li><a href="#christopherson">Robin Christopherson: Beyond a code audit</a></li>
    <li><a href="#moll">Cameron Moll: Mobile web design</a></li>
    <li><a href="#koechley">Nate Koechley: Yahoo! <abbr title="versus">vs.</abbr> Yahoo! <abbr>vs.</abbr> Yahoo!</a></li>
    <li><a href="#tantek">Tantek Çelik: Microformats: evolving the web</a></li>
    <li><a href="#hot-topics">&ldquo;Hot topics&rdquo; panel</a></li>
    <li><a href="#presentations">More presentations</a></li>
</ul>

<p>The <strong>evening:before</strong> featured another get-together in a fancy work:after club, which can be summed up like this: Sweden won against Paraguay, and it was hard to talk to others because some notorious <acronym title="title">DJ</acronym> wouldn&rsquo;t turn down the volume. He desperately tried to get somebody on the dance floor switching from house music to <acronym title="Rhythm &amp; Blues">r&amp;b</acronym> pop, but didn&rsquo;t realize that was not what the audience wanted.</p>

<h3 id="Cederholm">Bulletproof web design</h3>

<p class="vcardInComments">If there was an award for <a href="http://simplebits.com/publications/speak/atmedia/bpwd-atmedia2006.pdf" title="Dan Cederholm&rsquo;s slides as PDF (20 Megabyte)" type="application/pdf">best presentation</a>, <a href="http://www.simplebits.com" class="url fn">Dan Cederholm</a> would get my vote! His slides were so well-designed, so clean, and the special effects (not seen in the <acronym title="Portable Document Format">PDF</acronym> version) contributed to clarify the scope.</p>

<p>It was like <a href="/2006/atmedia-day-one/#keith">Jeremy Keith&rsquo;s presentation</a> the day before, where you knew all the things he was talking about, still <strong>something made &ldquo;click&rdquo; and shifted your perception</strong> &mdash; and if it&rsquo;s only that you think <em>&ldquo;that&rsquo;s what I always needed to show to my designers!&rdquo;</em></p>

<p class="floatleft">
    <img class="floatleft" src="/wp-content/uploads/2006/06/2006-06-16-dig-dug-text-test" alt="Scene from the computer game Dig Dug" width="200" height="125" />
    <span class="caption">Scene from the early computer game Dig Dug (Atari 1983), where you pump up monsters until they explode</span>
</p>

<p>His example for thinking ahead showed a photo of a new warehouse in San Francisco, where the windows had been inserted to be <strong>future proof</strong>, but cemented over for the current use. So think ahead, because content amount and text size may vary, content changes and needs to be maintained, and because the environment can change. Take something off, like images, <acronym title="Cascading Style Sheets">CSS</acronym>, or JavaScript, and make sure the website still functions.</p>

<blockquote cite="http://simplebits.com/publications/speak/atmedia/bpwd-atmedia2006.pdf">
    <p class="last">&ldquo;The journey begins by letting go of control, and becoming flexible.&rdquo;</p>
</blockquote>

<p class="cite"><cite>John Allsopp, &ldquo;<a href="http://www.alistapart.com/articles/dao/">A Dao of Web Design</a>&rdquo;</cite></p>

<p>A lot of his examples worked by setting a 50% value for the horizontal or vertical <code>background-position</code> in combination with overlapping images, and he introduced the term <strong><q>&ldquo;Dig Dug Text Test&rdquo;</q></strong> as a metaphor for pumping up text and assuring the design is still not destroyed. <em>Reminder to self:</em> add more references to early 1980&rsquo;s games in presentations, they are <em>so</em> cool!</p>

<h3 id="christopherson">Beyond a code audit</h3>

<p class="vcard"><a href="http://www.abilitynet.org.uk" class="url fn">Robin Christopherson</a>&rsquo;s bad karma was that he relied on the unreliable wireless network in the conference center, therefore a few examples from the web refused to work.</p>

<p>But by struggling with the technical constraints he set a real-world example for the attending web developers. Robin is blind, and he did not notice the Windows <acronym>XP</acronym> bubbles popping up once in a while trying to alert him that the network was unavailable. He was unable to login on the <acronym title="Queen Elizabeth II Conference Center">QE2CC</acronym> screen, because it was inaccessible and refreshed too often. Also most people I spoke with were deeply impressed by the <strong>incredible speed his screen reader was set to</strong>.</p>

<p>He had also prepared a couple of educational films about challenges on the web for people beyond the visually impaired, like a woman with <strong>learning disabilities</strong> who didn&rsquo;t understand the word &ldquo;disclaimer,&rdquo; or a quadriplegic with a mouthstick and a <strong>voice recognition</strong> system, which was useless when the <code>alt</code> text in images or Flash applications did not match the displayed text. I know what a tremendous amount of work the production of such little films is, and I&rsquo;m looking forward to access them on Robin&rsquo;s site. Also check his <a href="http://www.abilitynet.org.uk/content/oneoffs/media2006.htm" title="Speaker&rsquo;s notes for &ldquo;Beyond the code audit&rdquo;">speaker&rsquo;s notes</a>.</p>

<h3 id="moll">Mobile web design</h3>

<p class="vcard"><a href="http://flickr.com/photos/martin-kliehm/171504415/in/set-72157594172244478/" title="Larger version of the Cameron Moll photo on flickr"><img class="floatleft photo" src="/wp-content/uploads/2006/06/2006-06-16-cameron-moll-small" alt="Cameron Moll presenting @media conference" width="200" height="150" /></a> <a href="http://www.cameronmoll.com" class="url fn">Cameron Moll</a> mentioned a few times that he had held this presentation a year ago. Therefore it was very professional, very slick, but a little unemotional and in my opinion not quite up to date.</p>

<p>Okay, there are more mobile phones than computers, more mobiles than landline connections, but he didn&rsquo;t stress the <a href="http://opengardensblog.futuretext.com/archives/2006/03/mobile_web_20_a_2.html" title="The head of Oxford University&rsquo;s &ldquo;Next Generation Mobile Applications Panel&ldquo; about Ajax on handhelds">incredible impact the wide adoption of Opera</a> supporting <a href="http://www.opera.com/products/mobile/platform/" title="Opera mobile platform website">JavaScript on cellphones</a> will have. That&rsquo;s finally a <em>common platform</em> for web applications using <acronym>Ajax</acronym>, as opposed to hundreds of different implementations of Java which are almost impossible to test. That&rsquo;s a most remarkable development with the potential of revolutionizing mobile applications &mdash; Cameron hardly mentioned it, although this became public in November 2005.</p>

<p>Of course <acronym title="Wireless Markup Language">WML</acronym> is dead, long live <a href="http://www.openmobilealliance.org/tech/affiliates/wap/wap-277-xhtmlmp-20011029-a.pdf" type="application/pdf" title="XHTML Mobile Profile specification"><acronym title="eXtensible Markup Language Mobile Profile">XHTML MP</acronym></a>! You should serve content from a <em><abbr title="dot">.</abbr>mobi</em> domain and concentrate on the contextually relevant information: People might check their eBay watchlist on their cellphone, but they don&rsquo;t upload items to sell, so ignore features like that when developing for mobile devices.</p>

<p>Also my question about <strong>Vodafone and other carriers inserting invalid code</strong> in the pages they serve through their proxy might not have been clear enough, because Cameron replied it&rsquo;s up to the carriers and the browsers how to interpret pages, while developers can control the code.</p>

<p>Unfortunately that&rsquo;s untrue when carriers compress images more and insert JavaScript to get the original images with higher resolutions with a key combination. One script is inserted with the deprecated <code>language</code> attribute in the header, while the other comes <em>after</em> the closing <code>&lt;/html&gt;</code> tag, thus <strong>rendering your valid <acronym title="eXtensible Hypertext Markup Language">XHTML</acronym> strict code to tag soup</strong>. The problem not only manifests on mobile browsing devices, but also when you surf with a regular notebook using your mobile access. Therefore a <code>@media handheld</code> <acronym>CSS</acronym>, browser sniffing, or serving the MIME type depending on the <acronym title="Hypertext Transfer Protocol">HTTP</acronym> accept header are all doomed. And there&rsquo;s no way to prevent the carriers from doing such evil.</p>

<h3 id="koechley">Yahoo! <abbr title="versus">vs.</abbr> Yahoo! <abbr>vs.</abbr> Yahoo!</h3>

<p class="vcard"><a href="http://www.flickr.com/photos/martin-kliehm/171521325/in/set-72157594172244478/" title="Larger version of the Nate Koechley photo on flickr"><img class="floatleft photo" src="/wp-content/uploads/2006/06/2006-06-16-nate-koechley-s" alt="Nate Koechley" width="200" height="150" /></a> I went to this <a href="http://nate.koechley.com/blog/2006/07/12/my_atmedia_2006_slides/" title="Nate Koechley&rsquo;s presentation slides">presentation</a> because <cite><a href="http://nate.koechley.com/blog/" class="url fn">Nate Koechley</a></cite> recently published his smart concept paper about <a href="http://developer.yahoo.com/yui/articles/gbs/gbs.html">graded browser support</a>, which we immediately adopted. What I didn&rsquo;t expect was a most impressive roller coaster trip through browser performance!</p>

<p>Yahoo! has a beta version out for their new portal, also <em>Yahoo! Photos</em> and <em>Yahoo! Mail</em> is under development. All of them make more or less <strong>heavy use of <acronym title="Dynamic HTML">DHTML</acronym> and <acronym title="Asynchronous JavaScript and XML">Ajax</acronym></strong>. Yahoo&rsquo;s goals were increasing performance by 300%, adding interactivity (vulgo: drag &amp; drop), and supporting web standards.</p>

<p>For a <strong>fast response</strong> they used techniques like <a href="http://www.alistapart.com/articles/sprites"><acronym>CSS</acronym> sprites</a>, or memory management. In Nate&rsquo;s words browsers are still <q class="italic">&ldquo;a pain in the ass,&rdquo;</q> and <q class="italic">&ldquo;the web is the most hostile software engineering environment imaginable.&rdquo;</q> <strong><acronym>DHTML</acronym> leaks memory like a sieve</strong>, so for each constructor use a destructor. Instead of adding events to thousands of email objects Yahoo! used the existing <code>document.onmousemove</code> event and checked if the mouse was over an object or white space, then passed the event to that object or drew a rectangular choice box. Key concepts are conservation, destruction, and recycling iFrames (<code>about:blank</code>). Use <a href="http://sourceforge.net/projects/ieleak" title="Drip and IE Sieve leak detectors">Drip</a> as a tool for measuring <a href="http://msdn.microsoft.com/library/en-us/IETechCol/dnwebgen/ie_leak_patterns.asp" title="Microsoft developer network about Internet Explorer memory leak patterns">memory leaks</a>, test extreme object counts, test long interactions, and test extensive navigation.</p>

<p>Also their developers <strong>prefer <a href="http://www.json.org"><acronym title="JavaScript Object Notation">JSON</acronym></a> over <acronym title="eXtensible Markup Language">XML</acronym></strong> because parsing <acronym>XML</acronym> degrades performance greater than linear as <acronym>XML</acronym> size increases.</p>

<p>They have identified <strong><a href="http://yuiblog.com/blog/2006/11/28/performance-research-part-1/"><acronym>HTTP</acronym> requests</a> as a main performance killer</strong>. Browsers still only process two or four <acronym>HTTP</acronym> requests at a time, especially start pages are not cached as effectively as they imagined, and parsing JavaScript freezes the browser. Therefore they rather serve a single large file with <acronym>CSS</acronym> in the header, and JavaScript as close to the <code>&lt;/body&gt;</code> tag as possible.</p>

<p>Regarding browsers it is faster to <strong>develop for standards, than patch</strong>. Browser support must not be binary, and it does not mean &ldquo;the same.&rdquo;</p>

<blockquote>
    <p class="last">Expecting two users using different browser software to have an identical experience fails to embrace or acknowledge the heterogenous essence of the Web.</p>
</blockquote>

<p>There are more <acronym title="Internet Explorer">IE</acronym>5 browsers out there than <acronym>IE</acronym>&nbsp;5.5, and <acronym>IE7</acronym> &ldquo;already moved the needle.&rdquo;</p>

<p>With all the <acronym>DHTML</acronym> and <acronym>Ajax</acronym> I was <strong>concerned about accessibility</strong>, but in a sidenote I almost missed Nate mentioned the <a href="http://developer.mozilla.org/en/docs/Accessible_DHTML">IBM contribution for <acronym>DHTML</acronym> accessibility</a>. Wonderful!</p>

<h3 id="tantek">Microformats: evolving the web</h3>

<p class="vcard"><a href="http://flickr.com/photos/martin-kliehm/171526392/in/set-72157594172244478/" title="Larger version of the Tantek &Ccedil;elik photo on flickr"><img class="floatleft photo" src="/wp-content/uploads/2006/06/2006-06-16-tantek-celik-s" alt="Tantek &Ccedil;elik" width="200" height="150" /></a> When microformats are even on the radar of <a href="http://microformats.org/blog/2006/03/20/bill-gates-at-mix06-we-need-microformats/" title="Bill Gates at Mix06 conference">Bill Gates</a>, how could I ignore them? I had no clue before <a href="http://www.tantek.com" class="fn url">Tantek &Ccedil;elik</a>&rsquo;s <a href="http://tantek.com/presentations/2006/06/microformats-evolution/" title="Tantek&rsquo; presentation about microformats">presentation</a> @media 2006, and now I&rsquo;m implementing them in this post. Microformats are virulent.</p>

<p>Basically you insert a few class names into your code, like</p>

<ol class="code">
    <li><code>&lt;p <strong>class=&quot;vcard&quot;</strong>&gt;</code></li>
    <li class="indent"><code>&lt;a <strong>class=&quot;url fn&quot;</strong><br />href=&quot;http://tantek.com&quot;&gt;<span class="codeSpace">&nbsp;</span>Tantek &Ccedil;elik&lt;/a&gt;</code></li>
    <li><code>&lt;/p&gt;</code></li>
</ol>

<p>There are microformats for <a href="http://microformats.org/wiki/hcard" title="The hcard microformat">contact cards</a>, <a href="http://microformats.org/wiki/hcalendar" title="The hcalendar microformat">calendars</a>, reviews, geo information, and many more. Even the Creative Commons license and the <acronym title="Platform for Internet Content Selection">PICS</acronym> label implemented in this page count as microformats. <acronym title="XHTML Friends Network">XFN</acronym> and <a href="http://microformats.org/wiki/xoxo" title="The XOXO microformat"><acronym title="Extensible Open XHTML Outlines">XOXO</acronym></a>, too.</p>

<p>You can parse this page through a <a href="http://feeds.technorati.com/contacts/http://www.learning-the-world.eu/2006/atmedia-day-two/">Technorati contacts feed service</a> or use a tool like the <a href="https://addons.mozilla.org/firefox/2240/">Tails extension for Firefox</a>, and voilÃ , there&rsquo;s a <em>vcard</em> you could import into your address book (if there wasn&rsquo;t this Thunderbird bug which prevents exactly this). With the <em>hcalendar</em> microformat you synchronize your calendar with event schedules on a website accordingly.</p>

<p>There are a few issues I ran into when I implemented hcards, and the documentation could have more examples, but they are on Tantek&rsquo;s to-do list. Also sometimes it means extra, non-semantic markup, but as microformats increase semantic meaning, I assume it gets Tim Berners-Lee&rsquo;s blessing. So go for it, microformats are definitely among the web&rsquo;s next big things!</p>

<h3 id="hot-topics">&ldquo;Hot topics&rdquo; panel</h3>

<p><a href="http://flickr.com/photos/martin-kliehm/171521326/in/set-72157594172244478/" title="Larger version of the panels photo on flickr"><img class="floatleft photo" src="/wp-content/uploads/2006/06/2006-06-16-panel-small" alt="Hot topics panel with Molly Holzschlag, Jon Hicks, Jeremy Keith, Eric Meyer, and Tantek &Ccedil;elik" width="200" height="150" /></a> I had the pleasure to meet <span class="vcard"><a href="http://www.molly.com" class="url fn" rel="met colleague">Molly Holzschlag</a></span> earlier in a coffee break, and while I was sorry I couldn&rsquo;t attend her session <a href="http://www.w3.org/blog/International/2006/06/19/internationalization_awakening_the_sleep" title="Molly Holzschlag&rsquo;s presentation"><acronym title="Internationalization">I18N</acronym>, awakening the sleeping giant</a>, I&rsquo;m confident I didn&rsquo;t miss much information as I am pretty familiar with her old articles in her regular column in <em>WebTechniques</em> and the current activity of the <acronym title="World Wide Web Consortium">W3C</acronym> <acronym title="internationalization">I18N</acronym> group, where she is a member.</p>

<p><a href="http://www.grochtdreis.de/weblog/index.php?id=P1049">Jens Grochtdreis</a> reports in his blog about the passionate presentation she gave earlier, and although there is more <a href="http://www.webtechniques.com/archives/2000/09/schwartz/" title="Howard Schwartz: Going Global &mdash; Hungry for New Markets">technical experience</a> and awareness in Europe with <a href="http://www.webtechniques.com/archives/2000/09/yunker/" title="John Yunker: Speaking in Charsets &mdash; Building a Multilingual Web Site">multilingual websites</a>, rarely they pay respect to <a href="http://www.webtechniques.com/archives/2000/09/lagon/" title="Olin Lagon: Culturally Correct Site Design">cultural differences</a>, like the meaning of <a href="http://www.webtechniques.com/archives/2000/09/desi/" title="Molly Holzschlag: Color My World">colors</a>. Molly gives everything to educate on <acronym>I18N</acronym> and promote web standards, she is also a member of <acronym title="The Web Standards Project">WaSP</acronym>. I&rsquo;m glad she seems to have found a way to get some help and support, as she is an outstanding, but sensitive person.</p>

<p>Anyway, she was part of the &ldquo;hot topics&rdquo; panel, where <a href="http://adactio.com/journal/1144/" title="Jeremy Keith about the panel">questions from the audience</a> where considered by a group of experts: Molly, Jon Hicks, Jeremy Keith, Eric Meyer, and Tantek &Ccedil;elik. They had a lot of fun and agreed <strong><acronym>CSS</acronym> has become more mainstream</strong> in the last year, as you don&rsquo;t have to defend <acronym>CSS</acronym> against table layout anymore. Well, reading the discussions in German forums and reviewing the code of other websites, there&rsquo;s still a lot of educational work to be done. Also they talked about the accessibility of <acronym>Ajax</acronym>, and mashups as the next big thing, but you can read a decent <a href="http://muffinresearch.co.uk/archives/2006/06/16/media2006-notes-hot-topics-panel/">transcript of the session</a> in Stuart&rsquo;s blog over at Muffinresearch.</p>

<h3 id="conclusions">Conclusions</h3>

<p>If you have followed me this far, you can see <strong>@media was a big inspiration</strong>, it was a lot of fun, especially the after event on Saturday, and I can only recommend the conference! There are endless <a href="http://flickr.com/search/?q=atmedia">flickr pictures</a> and quite a few <a href="http://technorati.com/search/atmedia">blog entries on Technorati</a> if you need further impressions. Um, and never mind the British food&nbsp;&hellip;</p>

<h3 id="presentations">More presentations</h3>

<p>Here are the presentations in the parallel track I couldn&rsquo;t attend. Also there will be <a href="http://learningtheworld.eu/2006/atmedia-slides/">pod- and videocasts</a> available soon.</p>

<ul>
    <li><a href="http://www.mezzoblue.com/presentations/2005/wdw/type/">Dave Shea: Fine typography on the web</a></li>
    <li><a href="http://www.andybudd.com/atmedia2006/bugs.pdf" type="application/pdf">Andy Budd: Bug hunting</a></li>
    <li><a href="http://simon.incutio.com/archive/2006/06/26/libraries"><abbr title="Document Object Model">DOM</abbr> Scripting: The Next Level</a></li>
    <li><a href="http://www.stuffandnonsense.co.uk/downloads/transcendingcss.pdf" type="application/pdf">Andy Clarke: The fine art of web design</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://learningtheworld.eu/2006/atmedia-day-two/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
