<?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>Matt&#039;s Blog &#187; Tech</title>
	<atom:link href="http://www.asklater.com/matt/wordpress/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.asklater.com/matt/wordpress</link>
	<description>Obligatory WordPress weblog</description>
	<lastBuildDate>Mon, 12 Jul 2010 21:06:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OSM Without Delay &#8211; SotM10 Talk</title>
		<link>http://www.asklater.com/matt/wordpress/2010/07/osm-without-delay-sotm10-talk/</link>
		<comments>http://www.asklater.com/matt/wordpress/2010/07/osm-without-delay-sotm10-talk/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 21:00:21 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=202</guid>
		<description><![CDATA[I gave a talk at State of the Map, OSM&#8217;s annual conference, about the minutely diffs; why they should be used, a little introduction on how they could be used and some examples of things that already use them. I also used the talk to advertise the OWL system I&#8217;ve been writing.

Here are the slides [...]]]></description>
			<content:encoded><![CDATA[<p>I gave a talk at <a href="http://stateofthemap.org/">State of the Map</a>, <a href="http://osm.org">OSM</a>&#8217;s annual conference, about the <a href="http://wiki.openstreetmap.org/wiki/Planet.osm/diffs">minutely diffs</a>; why they should be used, a little introduction on how they could be used and some examples of things that already use them. I also used the talk to advertise the <a href="http://wiki.openstreetmap.org/wiki/OWL_(OpenStreetMap_Watch_List)">OWL</a> system I&#8217;ve been writing.<br />
<span id="more-202"></span><br />
Here are the slides from the talk &#8211; click on any of them to see the original SVG. I tried writing the slides in <a href="http://www.openoffice.org/">OpenOffice</a>, but couldn&#8217;t figure out how to make it do what I wanted. So I ended up writing them in <a href="http://www.inkscape.org/">Inkscape</a> instead, which I think gives them a much nicer look. Finally, the font I used is an awesome open display face called <a href="http://abattis.org/cantarell/">Cantarell</a>.</p>
<p>The slides are interspersed with my notes. Unfortunately, these were totally wiped from my mind the moment I went up on stage, so they probably bear little resemblance to what I actually said.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/001_title.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/001_title.png"/></a></p>
<p>Hi. [Insert introduction here].</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/002_overview.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/002_overview.png"/></a></p>
<p>[The usual "tell the audience what you're about to tell them" stuff]</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/003_why_feedback.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/003_why_feedback.png"/></a></p>
<p>Why not just use the planet? OSM releases the full dataset on a weekly basis, which is still better than Google, TA/NT or OS. Compared to them, our feedback cycle is almost instant. But it could be better; I&#8217;m here to convince you there&#8217;s good reasons to move from weekly updates&#8230;</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/004_why_feedback2.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/004_why_feedback2.png"/></a></p>
<p>&#8230;to minutely.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/005_why_feedback3.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/005_why_feedback3.png"/></a></p>
<p>There&#8217;s a fascinating study by these guys on the effects of feedback frequency on motivation. Basically, they asked a bunch of school children to give presentations, a bit like this one, and they were told they&#8217;d be given their grades after one day, one week or three weeks. Which group performed better? The ones who were given their feedback faster. Faster feedback can motivate people; it can motivate the users of your tools.</p>
<p>The other part of it is that it&#8217;s confusing &#8211; I&#8217;m sure many of us remember when people would ask, &#8220;I did an edit yesterday &#8211; why hasn&#8217;t it appeared on the map yet?&#8221; After you&#8217;ve explained that the rendering updates each Wednesday or Thursday for the Nth time, you start to like this minutely updated thing.</p>
<p>There&#8217;s another good reason, which anyone who processes planet files each week will recognise &#8211; speed.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/006_why_smaller.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/006_why_smaller.png"/></a></p>
<p>Waiting for planet files to download is boring. Waiting for them to be processed is boring. And keeping a few around can fill up a disk pretty quickly. Your hardware could be doing 35x less work each week and, what&#8217;s more, it can be doing it spread out over the week instead of in one intense period, which means you need less hardware.</p>
<p>So there&#8217;s three really good reasons to go minutely: Your users will be more enthusiastic and motivated to use your tools; they&#8217;ll not be confused because there&#8217;s very little lag between their edits and stuff appearing; and it&#8217;s faster with less data to process.</p>
<p>That&#8217;s the &#8220;why&#8221;, but processing diffs is harder than just processing the planet. So here&#8217;s the &#8220;how&#8221;.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/007_how_overview.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/007_how_overview.png"/></a></p>
<p>Working with the diffs pretty much falls into one of these three categories.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/008_how_just_quickly.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/008_how_just_quickly.png"/></a></p>
<p>You can just work very, very quickly. Using the diffs you could just update a planet file or database and just re-process it. If you can do a planet&#8217;s worth of data in less than a minute I&#8217;d like to hear from you!</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/009_how_subset.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/009_how_subset.png"/></a></p>
<p>A more typical approach is to apply the diffs to a manageable subset of the data. This works great, but sometimes a subset of the data just isn&#8217;t enough.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/010_how_streaming.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/010_how_streaming.png"/></a></p>
<p>By the end of this talk I hope to convince you that this third option is the best. Basically it&#8217;s trying to figure out what the changes in output will be for any diff input, so you don&#8217;t have to recompute huge amounts of the output or running expensive queries over large amounts of data. It&#8217;s all very well to say this, but let&#8217;s see how it can actually be done.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/011_how_structure.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/011_how_structure.png"/></a></p>
<p>Every technical talk has to have a slide with way too much text, code or XML on it. So here&#8217;s mine.</p>
<p>It&#8217;s an excerpt of an &#8220;osmChange&#8221; file &#8211; the format that&#8217;s used for the minutely, hourly and daily diffs. It&#8217;s pretty much the same as the normal OSM format, which I assume you&#8217;re all intimately familiar with, but with the addition of&#8230; </p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/012_how_structure2.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/012_how_structure2.png"/></a></p>
<p>&#8230;these top-level elements; create, modify and delete. These tell you what&#8217;s happening to the elements they contain.</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/013_how_structure3.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/013_how_structure3.png"/></a></p>
<p>There&#8217;s not always going to be three of them, but you get the general idea.</p>
<p>Let&#8217;s look at a simple example.</p>
<p>[And this is where I ran out of time to make notes!]</p>
<p><a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/014_how_stream_simple.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/014_how_stream_simple.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/015_how_stream_dupenodes.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/015_how_stream_dupenodes.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/016_how_stream_owl.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/016_how_stream_owl.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/017_how_tiles3.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/017_how_tiles3.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/018_how_tiles.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/018_how_tiles.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/019_how_tiles2.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/019_how_tiles2.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/020_examples.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/020_examples.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/021a_example_mapnik.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/021a_example_mapnik.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/021b_example_mapnik_screenie.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/021b_example_mapnik_screenie.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/022_example_owl.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/022_example_owl.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/023_example_owl_overview.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/023_example_owl_overview.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/024_example_owl_detail.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/024_example_owl_detail.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/025_example_owl_feed.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/025_example_owl_feed.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/030_philosophy.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/030_philosophy.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/035_future.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/035_future.png"/></a><br />
<a href="http://www.asklater.com/matt/wordpress/images/sotm10_slides/999_thanks_questions.svg"><img src="http://www.asklater.com/matt/wordpress/images/sotm10_slides/999_thanks_questions.png"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2010/07/osm-without-delay-sotm10-talk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Some Changes to OSM: Technical Details</title>
		<link>http://www.asklater.com/matt/wordpress/2009/04/some-changes-to-osm-technical-details/</link>
		<comments>http://www.asklater.com/matt/wordpress/2009/04/some-changes-to-osm-technical-details/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 10:59:20 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=149</guid>
		<description><![CDATA[I haven&#8217;t updated this blog in a while because I&#8217;ve been hard at work on some very important changes to the OSM server stack. Have a look at Steve&#8217;s announcement for the high-level vision and continue on here for the low-level techniques we&#8217;ve used to speed the server up by at least two orders of [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t updated this blog in a while because I&#8217;ve been hard at work on some very important changes to the OSM server stack. Have a look at <a href="http://www.opengeodata.org/?p=459">Steve&#8217;s announcement</a> for the high-level vision and continue on here for the low-level techniques we&#8217;ve used to speed the server up by at least two orders of magnitude.<br />
<span id="more-149"></span><br />
The new server backend is MonetDB, a well-known and widely deployed open-source database with a proven track record of <a href="http://www.nabble.com/Random-errors-and-segfaults-executing-concurrent-queries-td22484140.html">stability</a> and <a href="http://www.nabble.com/copy-select-*-from--into---very-slow-td21917777.html">scalability</a>. It is definitely not an <a href="http://monetdb.cwi.nl/projects/monetdb/Development/Research/Projects/index.html">academic project</a>.</p>
<p>But thats not the best part &#8211; the secret of the new blindingly fast performance is our adoption of a fixed ontology. Basically, free-form tags were slowing us down, both on the server and <a href="http://www.nabble.com/Re:-highway%3Dcycle-footway-td22661251.html">in the community</a>. We&#8217;ve adopted one of the best <a href="http://www.ordnancesurvey.co.uk/oswebsite/ontology/index.html">industry standard</a> ontologies fronted by <a href="http://www.opengeospatial.org/standards/wfs">several</a> <a href="http://www.opengeospatial.org/standards/wps">simple</a> <a href="http://www.opengeospatial.org/standards/ols">API</a>s . And, in order to prevent piracy of OSM data, the server now supports <a href="http://www.opengeospatial.org/standards/as/geodrmrm">DRM</a>. </p>
<p>The result of all this hard work by TomH and myself is that we can now run the OSM server faster on <a href="http://en.wikipedia.org/wiki/Sinclair_ZX_Spectrum">less hardware</a>. And the fixed ontology reduces the size of the daily diffs to less than 100 bytes, so we&#8217;re distributing them via Twitter. Its what <a href="http://www.guardian.co.uk/media/2009/apr/01/guardian-twitter-media-technology">all the cool kids</a> are doing.</p>
<p> <img src='http://www.asklater.com/matt/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2009/04/some-changes-to-osm-technical-details/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Expiry</title>
		<link>http://www.asklater.com/matt/wordpress/2008/09/expiry/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/09/expiry/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 17:10:53 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=80</guid>
		<description><![CDATA[Here is a short script to expire tiles based on osmchange diffs. Michal&#8217;s comment got me thinking about if there were an easy way to do it and today&#8217;s answer is yes, as long as you don&#8217;t mind it not being 100% accurate.

The script basically takes all the node locations in the diff, or referenced [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a <a href="http://www.asklater.com/matt/wordpress/images/expire.rb">short script</a> to expire tiles based on osmchange diffs. <a href="http://www.asklater.com/matt/wordpress/?p=76#comment-1597">Michal&#8217;s comment</a> got me thinking about if there were an easy way to do it and today&#8217;s answer is yes, as long as you don&#8217;t mind it not being 100% accurate.<br />
<span id="more-80"></span><br />
The script basically takes all the node locations in the diff, or referenced by ways in the diff, and expires the (meta)tile which contains that point. There are several problems with this approach:</p>
<ul>
<li>If a named node (e.g: a pub) is on the corner of a meta tile and its name is modified then the tile(s) containing the name should be expired as well.</li>
<li>The non-local effects of mapnik&#8217;s text placement mean that changes to a way may affect its neigbours, meaning they should also be expired.</li>
<li>If a way crosses the corner of a meta tile, but has no nodes within it, and is changed then that meta tile should be expired.</li>
</ul>
<p>However, it seems to work well enough for me at the moment, although I reckon it is probably prudent to expire all the tiles every week or so, just to make sure.</p>
<p>Or the script can be easily extended to expire all the neighbours of expired meta tiles.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/09/expiry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Party Progress</title>
		<link>http://www.asklater.com/matt/wordpress/2008/09/party-progress/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/09/party-progress/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 10:35:22 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Visualisations]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=76</guid>
		<description><![CDATA[I&#8217;ve been playing with the diff import for osm2pgsql, which now works wonderfully, and trying to set up a (nearly) live tile-server. To test it, I set it running over the weekend after the Euston micro mapping party, grabbing some tiles every hour and turning them into a movie. It covers the period from about [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing with the <a href="http://lists.openstreetmap.org/pipermail/dev/2008-August/011524.html">diff import for osm2pgsql</a>, which now works wonderfully, and trying to set up a (nearly) live tile-server. To test it, I set it running over the weekend after the <a href="http://wiki.openstreetmap.org/index.php/London/Summer_2008_Mapping_Party_Marathon/2008-09-03">Euston micro mapping party</a>, grabbing some tiles every hour and turning them into a <a href="http://www.asklater.com/matt/wordpress/images/euston_party.avi">movie</a>. It covers the period from about 5pm Friday to 10am this morning with one frame per hour. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/09/party-progress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.asklater.com/matt/wordpress/images/euston_party.avi" length="112196" type="video/x-msvideo" />
		</item>
		<item>
		<title>SVG Icons in Mapnik</title>
		<link>http://www.asklater.com/matt/wordpress/2008/08/svg-icons-in-mapnik/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/08/svg-icons-in-mapnik/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 01:13:15 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=71</guid>
		<description><![CDATA[After a bit of a quick and dirty hack, there is now a version of Mapnik capable of rendering SVG icons directly to the Cairo back-end. The result is a lovely print-quality map, such as this. Sadly, when I try to load it KPDF crashes. Xpdf is OK, but I don&#8217;t know about other renderers&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>After a bit of a quick and dirty hack, there is now a version of Mapnik capable of rendering SVG icons directly to the Cairo back-end. The result is a lovely print-quality map, such as <a href="http://www.asklater.com/matt/wordpress/images/scalable_mapnik.pdf">this</a>. Sadly, when I try to load it KPDF crashes. Xpdf is OK, but I don&#8217;t know about other renderers&#8230; I thought they were all based on poppler these days anyway.</p>
<p>I&#8217;ll spend some time cleaning up the new additions and hopefully this&#8217;ll make its way into Mapnik&#8217;s trunk real soon now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/08/svg-icons-in-mapnik/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scalable Icons</title>
		<link>http://www.asklater.com/matt/wordpress/2008/08/scalable-icons/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/08/scalable-icons/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 01:28:07 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=70</guid>
		<description><![CDATA[The icons seemed popular, so here are the original SVGs licensed under the CC-BY-SA license. Enjoy!
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.asklater.com/matt/wordpress/?p=69">icons</a> seemed popular, so here are the <a href="http://www.asklater.com/matt/wordpress/images/icons-svg-0.1.zip">original SVG</a>s licensed under the <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a> license. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/08/scalable-icons/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tiny Icons</title>
		<link>http://www.asklater.com/matt/wordpress/2008/08/tiny-icons/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/08/tiny-icons/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 23:57:06 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OSM]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=69</guid>
		<description><![CDATA[I&#8217;ve been spending some free time trying to design an icon set for OpenStreetMap. There are several design goals for this icon set:

They need to work, or nearly work, in black and white as well as colour. This is so they could be used in printed low-colour or greyscale maps.
They should be visually identifiable by [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending some free time trying to design an icon set for <a href="http://www.openstreetmap.org/">OpenStreetMap</a>. There are several design goals for this icon set:</p>
<ul>
<li>They need to work, or nearly work, in black and white as well as colour. This is so they could be used in printed low-colour or greyscale maps.</li>
<li>They should be visually identifiable by POI class, for rapid readability.</li>
<li>They should all be the same size and &#8220;weight&#8221;, so that no single icon overwhelms the others.</li>
</ul>
<p><span id="more-69"></span></p>
<p>You can grab the icons <a href="http://www.asklater.com/matt/wordpress/images/icons-0.1.zip">here</a>, version 0.1, with icons for the following POIs; airports, ATMs, bars, cafés, parking, pubs, recycling points, restaurants, bus stops, places of worship (Buddhist temples, Christian churches, Jewish synagogues, Muslim mosques) and supermarkets.</p>
<p>I&#8217;ve tried to keep the icon design consistent by using the same rounded-square outline for all the icons at 16&#215;16 pixels. Each different class uses a different flat background colour, chosen to be distinct from all the others (although I should probably check they&#8217;re OK for colour-blind people). The icon classes are totally arbitrary, but I&#8217;ve been working with the following:</p>
<ul>
<li>Blue: transport.</li>
<li>Orange: Food, drink and socialising.</li>
<li>Green: Services and shops.</li>
<li>Grey: Religious points-of-interest.</li>
<li>Red: Emergency services.	</li>
</ul>
<p>All of the icon strokes are drawn in white on top and are supposed to be internationally recognisable, though some don&#8217;t quite live up to that. The pub icon, for example, shows the &#8220;<a href="http://www.h-e-d.co.uk/nonic-glass.htm">nonic</a>&#8221; style of pint glass which is common in the UK, but probably not elsewhere. On the other hand, the concept of a &#8220;pub&#8221; isn&#8217;t itself international, so maybe it doesn&#8217;t matter. There is an icon for a bar, when this is more appropriate, but I don&#8217;t think we have many of them tagged at the moment.</p>
<p>This screenshot shows how different the map looks when POIs like restaurants and cafés are rendered. Hopefully if these are rendered on a layer of the main map more people will start to tag these kinds of features.</p>
<p><img src='http://www.asklater.com/matt/wordpress/images/icons-0.1-screen.png' alt='Screenshot showing the icons-0.1 set.' class='aligncenter' /></p>
<p>Compare the above with the original, which looks rather barren by comparison:</p>
<p><img src='http://www.asklater.com/matt/wordpress/images/icons-0.1-screenosm.png' alt='Screenshot showing the current OSM rendering of the same area.' class='aligncenter' /></p>
<p>Feedback, requests and suggestions are welcome. The set is still at a very early stage and is missing many icons, but I hope to make it complete at some point in the not-too-far future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/08/tiny-icons/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Laptop</title>
		<link>http://www.asklater.com/matt/wordpress/2008/06/new-laptop/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/06/new-laptop/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 18:48:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=68</guid>
		<description><![CDATA[I just got myself a Toshiba U400-108, which works really well with (K)ubuntu 8.04. I haven&#8217;t found anything yet which doesn&#8217;t work out-of-the-box.

The following stuff all works:

CPU frequency scaling.
Suspend-to-RAM.
The LCD screen (haven&#8217;t yet tested the external monitor).
Wireless networking

The only problems that I&#8217;ve found are:

The laptop gets quite hot under the trackpad (i.e: in the crotch [...]]]></description>
			<content:encoded><![CDATA[<p>I just got myself a <a href="http://uk.computers.toshiba-europe.com/cgi-bin/ToshibaCSG/jsp/productPage.do?service=UK&#038;PRODUCT_ID=150950&#038;toshibaShop=false">Toshiba U400-108</a>, which works really well with <a href="http://www.kubuntu.org/">(K)ubuntu 8.04</a>. I haven&#8217;t found anything yet which doesn&#8217;t work out-of-the-box.<br />
<span id="more-68"></span><br />
The following stuff all works:</p>
<ul>
<li>CPU frequency scaling.</li>
<li>Suspend-to-RAM.</li>
<li>The LCD screen (haven&#8217;t yet tested the external monitor).</li>
<li>Wireless networking</li>
</ul>
<p>The only problems that I&#8217;ve found are:</p>
<ul>
<li>The laptop gets quite hot under the trackpad (i.e: in the crotch area).</li>
<li><strike>The battery reports zero charge</strike> The battery just takes a really long time to charge on the first use.</li>
</ul>
<p>I don&#8217;t think any of these are big issues though, and I&#8217;d recommend the laptop to anyone who is looking for a new one. The laptop also has an HDMI socket which appears to be supported by the intel xorg server, but I haven&#8217;t tested it yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/06/new-laptop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exchange Rate</title>
		<link>http://www.asklater.com/matt/wordpress/2008/01/exchange-rate/</link>
		<comments>http://www.asklater.com/matt/wordpress/2008/01/exchange-rate/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 22:17:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=66</guid>
		<description><![CDATA[So the new Macbook Air looks very, very cool. Its just the sort of laptop I like and would buy, if I could find a good enough excuse. However, a simple look (as of 17th Jan 2008) at the Apple store reveals that the lower end model retails for $1,799 or Â£1,020.43 (ex VAT), or [...]]]></description>
			<content:encoded><![CDATA[<p>So the new <a href="http://www.apple.com/macbookair/">Macbook Air</a> looks very, very cool. Its just the sort of laptop I like and would buy, if I could find a good enough excuse. However, a simple look (as of 17th Jan 2008) at the Apple store reveals that the lower end model retails for $1,799 or Â£1,020.43 (ex VAT), or an exchange rate of 1.763. Given that the current exchange rate is 1.971, this means Apple is charging Â£107.76 ($212.42, 11.8%) above what the raw exchange rate is.</p>
<p>Of course, Apple doesn&#8217;t have to use the current exchange rate and is probably protecting itself from future fluctuations, but it is really annoying to always be on the wrong side of the exchange rate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2008/01/exchange-rate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bluetooth</title>
		<link>http://www.asklater.com/matt/wordpress/2007/07/bluetooth/</link>
		<comments>http://www.asklater.com/matt/wordpress/2007/07/bluetooth/#comments</comments>
		<pubDate>Sun, 29 Jul 2007 18:01:17 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.asklater.com/matt/wordpress/?p=62</guid>
		<description><![CDATA[As a necessary first step to getting my wiimote talking to my computer I bought a little USB bluetooth dongle (Linksys USBBT100 which works fine with Linux) and installed the necessary bluetooth stack. When I turned it on and scanned I found three devices within range, all phones, none of which belong to me. Its [...]]]></description>
			<content:encoded><![CDATA[<p>As a necessary first step to getting my <a href="http://en.wikipedia.org/wiki/Wiimote">wiimote</a> talking to my computer I bought a little USB bluetooth dongle (<a href="http://www.amazon.co.uk/exec/obidos/ASIN/B0002AGEW6/202-1774231-4546200">Linksys USBBT100</a> which works fine with Linux) and installed the necessary <a href="http://www.bluez.org">bluetooth stack</a>. When I turned it on and scanned I found three devices within range, all phones, none of which belong to me. Its pretty common-knowledge that bluetooth has a longer range than advertised, but I was surprised to learn that it quite easily connects to other devices through walls or floors.</p>
<p>The people who designed the bluetooth protocol aren&#8217;t stupid and they clearly put some thought into making it difficult to eavesdrop or man-in-the-middle the connection with the pairing/encryption thing, but given the number of <a href="http://en.wikipedia.org/wiki/Bluetooth#Security_concerns">bluetooth</a> <a href="http://trifinite.org/trifinite_stuff.html">stack</a> <a href="http://www.google.co.uk/search?hl=en&#038;ie=UTF-8&#038;oe=UTF-8&#038;q=site%3Asecurityfocus.com+bluetooth&#038;btnG=Search&#038;meta=">exploits</a>, it&#8217;ll be a while before I trust a <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=AE61D4FA&#038;nplm=M9270LL/A">wireless keyboard</a> with my passwords&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.asklater.com/matt/wordpress/2007/07/bluetooth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
