<?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>Peter Krantz</title>
	<atom:link href="http://www.peterkrantz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.peterkrantz.com</link>
	<description></description>
	<lastBuildDate>Mon, 24 Dec 2012 15:30:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Post</title>
		<link>http://www.peterkrantz.com/2012/post/</link>
		<comments>http://www.peterkrantz.com/2012/post/#comments</comments>
		<pubDate>Mon, 24 Dec 2012 15:28:46 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=661</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/post/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Method and system for monitoring Lego hate on Twitter</title>
		<link>http://www.peterkrantz.com/2012/method-and-system-for-monitoring-lego-hate-on-twitter/</link>
		<comments>http://www.peterkrantz.com/2012/method-and-system-for-monitoring-lego-hate-on-twitter/#comments</comments>
		<pubDate>Sat, 18 Aug 2012 14:56:51 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Robotics]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[lego]]></category>
		<category><![CDATA[makeall]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=657</guid>
		<description><![CDATA[(Cunningly illustrated using patent application art). A small Python script monitors twitter for the phrase &#8220;I hate ...]]></description>
			<content:encoded><![CDATA[<p>(Cunningly illustrated using patent application art). A small Python script monitors twitter for the phrase &#8220;I hate lego&#8221;. Upon finding a matching tweet it sends a signal to an Arduino board that turns a servo pushing a small lego figurine over the edge of a table. Live example here (at approx 7:30). A hack for the <a href="http://make-all.se/">Make All</a> event in Stockholm.<span id="more-657"></span></p>
<p><iframe src="http://embed.bambuser.com/broadcast/2911799" frameborder="0" width="460" height="396"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/method-and-system-for-monitoring-lego-hate-on-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meanwhile, on the west coast of Sweden</title>
		<link>http://www.peterkrantz.com/2012/thug-crab/</link>
		<comments>http://www.peterkrantz.com/2012/thug-crab/#comments</comments>
		<pubDate>Wed, 08 Aug 2012 08:44:16 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=654</guid>
		<description><![CDATA[A small crab attacked my GoPro camera.]]></description>
			<content:encoded><![CDATA[<p>A small crab attacked my GoPro camera.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/thug-crab/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Visualizing Statistics in Minecraft</title>
		<link>http://www.peterkrantz.com/2012/minecraft-statistics/</link>
		<comments>http://www.peterkrantz.com/2012/minecraft-statistics/#comments</comments>
		<pubDate>Sun, 05 Aug 2012 14:13:00 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Open data]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[minecraft]]></category>
		<category><![CDATA[open data]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=643</guid>
		<description><![CDATA[Data about public sector spending is often hard to understand and compare. Statistics about government is often ...]]></description>
			<content:encoded><![CDATA[<p>Data about public sector spending is often hard to understand and compare. Statistics about government is often presented in tables. In this hack I have used open data from Eurostat (the EU statistics agency) about government expenditure for a set of countries and rendered sets of boxes in a Minecraft world. This makes it possible to explore the data by walking (flying) around the world.<span id="more-643"></span></p>
<p>Boxes for expenditure data is ordered as General public services, Defence, Public order and safety, Economic affairs, Environment protection, Housing and community amenities, Health, Recreation culture and religion, Education, Social protection.</p>
<p>1. (top) Cows grazing near UK&#8217;s expenditure for &#8220;Housing and community amenities&#8221;.</p>
<p>2. Player is standing in front of government expenditure for Malta looking at Germany:</p>
<p style="text-align: center;"><a href="http://www.peterkrantz.com/wp-content/uploads/2012/08/minecraft-budget-malta-germany.jpg"><img class="aligncenter  wp-image-645" title="minecraft-budget-malta-germany" src="http://www.peterkrantz.com/wp-content/uploads/2012/08/minecraft-budget-malta-germany.jpg" alt="A 3D view in Minecraft showing the tiny boxes representing Malta's budget in fron of Germany's." width="506" height="282" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: left;">3. Overview of Germany, France, Italy and UK:<br />
<a href="http://www.peterkrantz.com/wp-content/uploads/2012/08/minecraft-budget.jpg"><img class="aligncenter  wp-image-644" title="minecraft-budget" src="http://www.peterkrantz.com/wp-content/uploads/2012/08/minecraft-budget.jpg" alt="Player is standing on top of Germany's General government expenditure looking at the budget of France." width="505" height="283" /></a></p>
<p>Future ideas include rendering budget deficits as holes in the ground and making it possible to enter boxes to see subdivisions. Data for Greece should be rendered in lava I guess.</p>
<p>This hack was made possible by using the <a href="https://github.com/mcedit/pymclevel">pymclevel library by David Rio Vierra</a>.</p>
<p>Source data: <a href="epp.eurostat.ec.europa.eu/">Eurostat &#8211; General government expenditure by function (COFOG) 2010</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/minecraft-statistics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Queue Ticket UX</title>
		<link>http://www.peterkrantz.com/2012/the-queue-ticket-ux/</link>
		<comments>http://www.peterkrantz.com/2012/the-queue-ticket-ux/#comments</comments>
		<pubDate>Sat, 02 Jun 2012 21:03:05 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=633</guid>
		<description><![CDATA[The queue ticket machine in Uppsala, Sweden.]]></description>
			<content:encoded><![CDATA[<p>The queue ticket machine in Uppsala, Sweden.<span id="more-633"></span></p>
<p style="text-align: center;"><img class="aligncenter  wp-image-634" title="The queue ticket machine" src="http://www.peterkrantz.com/wp-content/uploads/2012/06/thequeueticket-959x1024.jpg" alt="People press the graphical buttons in the instruction text instead of the real buttons." width="575" height="614" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/the-queue-ticket-ux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Art Museum of Sven-Harry</title>
		<link>http://www.peterkrantz.com/2012/the-art-museum-of-sven-harry/</link>
		<comments>http://www.peterkrantz.com/2012/the-art-museum-of-sven-harry/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 17:52:34 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=622</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/the-art-museum-of-sven-harry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publishing Open Data &#8211; Do you really need an API?</title>
		<link>http://www.peterkrantz.com/2012/publishing-open-data-api-design/</link>
		<comments>http://www.peterkrantz.com/2012/publishing-open-data-api-design/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 20:34:33 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Open data]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[open data]]></category>
		<category><![CDATA[open government]]></category>
		<category><![CDATA[opengov]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=607</guid>
		<description><![CDATA[As open data is gaining momentum an increasing number of organizations are thinking about ways to make ...]]></description>
			<content:encoded><![CDATA[<p>As open data is gaining momentum an increasing number of organizations are thinking about ways to make their data available for others to use. Here are some thought on how to approach design issues when making open government data available.<span id="more-607"></span></p>
<p><em>TL;DR See if it is possible to publish your open data as file dumps instead of building advanced API:s that force entrepreneurs to integrate their apps with your infrastructure.</em></p>
<h2>A fictional background</h2>
<p>It was supposed to be a regular day for John at the server facility at the government weather agency. But when he came in to work that morning his colleague Mike was in a panic. -&#8221;Look! We are in the middle of a DDoS attack. The API-server is flooded and the database server is on it&#8217;s knees. The meteorologists can not work&#8221; . John started looking at server logs. Between 7 and 8 a.m. there was a sharp increase in traffic. Loads of API calls were made from a lot of different IP:s. Then, all of a sudden server load decreased and everything was back to normal.</p>
<h2>What happened?</h2>
<p>A year ago the weather agency had started to make their data available as part of the agency&#8217;s open government initiative. They were in a rush at the time and had decided to create an API for their weather data by setting up an internet-facing API-server. The API design had tried to take into consideration potential use cases that entrepreneurs may have but it was hard to know what people wanted. They had settled on three generic API calls.</p>
<p>Fast forward a year and they discover that one entrepreneur had built a very successful mobile app used by several hundred thousand users. Every morning it wakes you up by announcing today&#8217;s weather. To get the data necessary the app developer had to make two API calls which all of the installed apps did every morning to wake up their owners. That promptly crashed the API server which wasn&#8217;t designed to cope with the load.</p>
<p>Let&#8217;s call this the <em>Direct integration API model.</em></p>
<h3 style="text-align: center;">The Direct Integration API Model</h3>
<p style="text-align: center;"><img class="size-full wp-image-610 aligncenter" title="API for open data" src="http://www.peterkrantz.com/wp-content/uploads/2012/03/01-direct-api-for-open-data.png" alt="Forcing developers to integrate their apps directly with an agency API may have bad consequences" width="465" height="339" /></p>
<p>The direct integration API model has several drawbacks:</p>
<ol>
<li>Since the API:s [2] are designed for direct integration this is what developers did. The government agency is now (unknowingly) a critical component in making sure the apps are working.</li>
<li>By forwarding API calls to the one and only database server internal applications are affected when there is a high API load [1].</li>
<li>High load from one application will impact all other applications using the same API infrastructure.</li>
<li>API:s were designed from hypothetical use case scenarios forcing applications to make multiple API calls to get the data required.</li>
</ol>
<p>Even if the data was offloaded to a separate database server to isolate external load from internal systems developers still need to rely on the capacity of the API .</p>
<h2>A better way to publish open government data</h2>
<p>An alternative to the direct integration API model is to publish data dumps in files. &#8220;Boring!&#8221; may be the initial reaction from developers but they will thank you later. In this model data from the database is exported, transformed to an open readable format [1] (e.g. CSV), properly named and stored on the web server [2]. This means entrepreneurs can get all your data, load it into their own system and design their API according to their use case. Also, high loads will hit their own infrastructure without affecting other apps.</p>
<p>As an added bonus it is very simple to publish data dumps on a web server.</p>
<p><img class="aligncenter size-full wp-image-615" title="02-publishing-open-data" src="http://www.peterkrantz.com/wp-content/uploads/2012/03/02-publishing-open-data1.png" alt="Publishing data files makes it possible for developers to design and set up their own API" width="494" height="492" /></p>
<p>If files and URL:s are named consistently it is easy for entrepreneurs to pick up data over time (e.g. http://data.example.com/weather/country/2012-03-01.csv). An alternative is to create an API that is designed for mirroring of data and its changes (e.g. <a href="http://bliki.abdullin.com/event-sourcing/why">event sourcing over Atom</a>).</p>
<p>These two models gives us some background for design considerations for publishing open data.</p>
<h2>Design considerations</h2>
<p><strong>1. Do you really need an API?</strong> API projects can become expensive and typically compete with other IT projects that may have a higher priority. Also, designing an API involves making decisions on API use cases. Do you know how users will use your data? Will your API design prevent users from making efficient use of your data in their applications? What is your plan to cope with load?</p>
<p><strong>2. Make it easy for entrepreneurs to keep a local copy of your data up to date.</strong> By providing wisely named data dumps it is simple to keep a local database up to date. More advanced scenarios include using existing protocols and technology for low latency distribution (e.g. <a href="http://code.google.com/p/pubsubhubbub/">pubsubhubbub</a>).</p>
<p><strong>3. Isolate internal systems from the effects of external data publishing</strong>.</p>
<p><strong>4. Make sure you can change your technology without breaking URLs</strong>. People are building software that depends on your URL:s. Don&#8217;t force them to rewrite their software just because you are switching to a new platform. Early warning signs is the existence of platform-specific fragments like &#8220;aspx&#8221;, &#8220;jsp&#8221; in your URLs. Get rid of those.</p>
<p>There are of course other things to take into consideration such as semantic descriptions but that is a matter for a later post.</p>
<p>Hopefully this will save you both money and time as file exports may be a lot cheaper than creating API:s. What do you think?</p>
<p>Also see: <a href="http://www.w3.org/TR/gov-data/">Publishing Open Government Data by W3C</a></p>
<p>In the next blog post I will look at cases where an API makes a lot of sense (real time data, collaborative processes) .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/publishing-open-data-api-design/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Harvard University Entrance Exam 1870</title>
		<link>http://www.peterkrantz.com/2012/harvard-university-entrance-exam-1870/</link>
		<comments>http://www.peterkrantz.com/2012/harvard-university-entrance-exam-1870/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:35:41 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Trends]]></category>
		<category><![CDATA[exam]]></category>
		<category><![CDATA[harvard]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=595</guid>
		<description><![CDATA[One can not help but wonder how many Harvard freshmen would pass this exam today.  Click to ...]]></description>
			<content:encoded><![CDATA[<p>One can not help but wonder how many Harvard freshmen would pass this exam today. <span id="more-595"></span></p>
<p style="text-align: left;">Click to see entire document (PDF).</p>
<p style="text-align: center;"><a href="http://www.peterkrantz.com/wp-content/uploads/2012/02/harvard-admission-1899.pdf"> <img class="aligncenter  wp-image-598" title="harvard-exam-1899" src="http://www.peterkrantz.com/wp-content/uploads/2012/02/harvard-exam-1899.png" alt="Exam questions for Harvard admission in 1899" width="508" height="390" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/harvard-university-entrance-exam-1870/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Data visualization tools</title>
		<link>http://www.peterkrantz.com/2012/data-visualization-tools/</link>
		<comments>http://www.peterkrantz.com/2012/data-visualization-tools/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 09:09:06 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=569</guid>
		<description><![CDATA[With the increasing availability of big/open data more people discover a need to make it understandable. One ...]]></description>
			<content:encoded><![CDATA[<p>With the increasing availability of big/open data more people discover a need to make it understandable. One way of understanding data is by looking at it. As I have received a lot of questions lately here is a roundup of tools you can use to create visualizations of data. <span id="more-569"></span>I have divided the tools into three groups:</p>
<ol>
<li>Libraries for using in your own web project.</li>
<li>Client side applications that generate a standalone visualization.</li>
<li>Hosted applications to which you upload your data and create visualizations in the cloud.</li>
</ol>
<h2>1. Visualization libraries for using in your own web project</h2>
<p>A general recommendation is to stick with libraries that work on as many client platforms as possible. This means staying away from libraries that require Flash and Silverlight. The following libraries use javascript and SVG with various fallbacks and should work well on modern phones and tablets.</p>
<h3><a href="http://thejit.org/">JavaScript InfoVis Toolkit (JIT)</a></h3>
<p>The toolkit implements advanced features of information visualization like <a href="http://thejit.org/static/v20/Jit/Examples/Treemap/example1.html">TreeMaps</a>, an adapted visualization of trees based on the <a href="http://thejit.org/static/v20/Jit/Examples/Spacetree/example1.html">SpaceTree</a>, a focus+context technique to plot <a href="http://thejit.org/static/v20/Jit/Examples/Hypertree/example1.html">Hyperbolic Trees</a>, a radial layout of trees with advanced animations called <a href="http://thejit.org/static/v20/Jit/Examples/RGraph/example1.html">RGraph</a> and <a href="http://thejit.org/demos/">other visualizations</a>.</p>
<p>License: BSD</p>
<h3><a href="http://g.raphaeljs.com/">gRaphaël</a></h3>
<p>Makes it possible to create interactive charts on your website. Primarily traditional charts. It is a plugin for the <a title="Raphaël—JavaScript Library" href="http://raphaeljs.com/">Raphaël</a> graphics library. Fast.</p>
<p>License: MIT</p>
<h3><a href="http://mbostock.github.com/d3/">D3.js</a></h3>
<p>D3 allows you to bind arbitrary data to a Document Object Model (DOM), and then apply data-driven transformations to the document. Rather than provide a monolithic system with all the features anyone may ever need, D3 solves only the crux of the problem: efficient manipulation of documents based on data.</p>
<p>License: BSD</p>
<h3><a href="http://senchalabs.github.com/philogl/">PhiloGL</a></h3>
<p>A WebGL Framework for advanced data visualization, creative coding and game development. It can be used to create applications that are focused on performance. PhiloGL also provides a rich module system covering Program and Shader management, IO, XHR, JSONP, Web Worker management, Effects and Tweening, and much more.</p>
<p>License: MIT</p>
<h3><a href="http://polymaps.org/">Polymaps</a></h3>
<p>Javascript library to add interactive overlays to maps. In addition to standard image tiles, Polymaps supports vector tiles that are rendered with SVG.</p>
<p>License: BSD</p>
<h2>2. Client side applications that generate a standalone visualization</h2>
<h3><a href="http://www.graphviz.org/">Graphviz</a></h3>
<p>A collection of graph layout programs. Takes descriptions of graphs in a simple text language, and make diagrams in useful formats, such as images and SVG for web pages, PDF or Postscript for inclusion in other documents; or display in an interactive graph browser.</p>
<p>License: The Eclipse Public License (EPL)</p>
<h3><a href="http://gephi.org/">Gephi</a></h3>
<p>Gephi is an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs. Runs on Windows, Linux and Mac OS X. A large number of plugins provide additional functionality.</p>
<p>License: Dual - CDDL or GNU GPLv3</p>
<h3><a href="http://www.tableausoftware.com/public/how-it-works">Tableau Public</a></h3>
<p>Stand alone visualization tool for the Windows platform.</p>
<p>License: Commercial (but free download)</p>
<h2>3. Hosted visualization applications</h2>
<h3><a href="http://www-958.ibm.com/software/data/cognos/manyeyes/">IBM Many eyes</a></h3>
<p>A platform to create and discuss visualizations. All the visualizations on Many Eyes have an attached discussion forum. As you explore a visualization, you may find a view that you&#8217;d like to talk about or share. If you post a comment, your &#8220;view&#8221; is saved along with your comment so others can see what you&#8217;re seeing. Visualizations can be included on your own website.</p>
<h3><a href="http://www.google.com/publicdata/directory?hl=en&amp;dl=en#!">Google Public Data Explorer</a></h3>
<p>Allows you to upload your own data in the <a href="http://code.google.com/apis/publicdata">Dataset Publishing Language (DSPL)</a> format and create visualizations similar to those available in Google Spreadsheet.</p>
<h3><a href="https://docs.google.com/">Google Spreadsheet</a></h3>
<p>Often overlooked, Google Spreadsheet has some powerful tools for data visualization including the ability to create motion bubble charts similar to those made famous by <a href="http://www.ted.com/talks/hans_rosling_at_state.html">Hans Rosling</a>. See the <a href="http://www.gapminder.org/upload-data/motion-chart/">quick guide to motions charts at Gapminder</a>.</p>
<h3>Did I miss your favorite tool?</h3>
<p>Please submit them in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/data-visualization-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Plant boy</title>
		<link>http://www.peterkrantz.com/2012/plant-boy/</link>
		<comments>http://www.peterkrantz.com/2012/plant-boy/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 09:55:11 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=571</guid>
		<description><![CDATA[Plant boy]]></description>
			<content:encoded><![CDATA[<p><span id="more-571"></span>Plant boy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/plant-boy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping goals to yourself increase chances of completing them?</title>
		<link>http://www.peterkrantz.com/2012/keep-goals-to-yourself/</link>
		<comments>http://www.peterkrantz.com/2012/keep-goals-to-yourself/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 21:12:05 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[behaviour]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[identity]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=516</guid>
		<description><![CDATA[Did you think that by announcing your goals you would feel more pressure to work to achieve ...]]></description>
			<content:encoded><![CDATA[<p>Did you think that by announcing your goals you would feel more pressure to work to achieve them? Apparently works the opposite way.</p>
<p><a href="http://www.psych.nyu.edu/gollwitzer/09_Gollwitzer_Sheeran_Seifert_Michalski_When_Intentions_.pdf">When Intentions Go Public &#8211; Does Social Reality Widen the Intention-Behavior Gap?</a> by Peter M. Gollwitzer et al.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/keep-goals-to-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pointless Pong with Processing and the Kinect</title>
		<link>http://www.peterkrantz.com/2012/kinect-pong-in-processing/</link>
		<comments>http://www.peterkrantz.com/2012/kinect-pong-in-processing/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 12:53:50 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[pong]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=475</guid>
		<description><![CDATA[I did a quick excursion using the Microsoft Kinect in Processing with Daniel Shiffmans excellent Kinect library. ...]]></description>
			<content:encoded><![CDATA[<p>I did a quick excursion using the Microsoft Kinect in Processing with Daniel Shiffmans excellent <a href="http://www.shiffman.net/p5/kinect/">Kinect library</a>. <a href="https://github.com/peterk/PointlessPong">Source code for Kinect Pong is here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/kinect-pong-in-processing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Barcelona Run</title>
		<link>http://www.peterkrantz.com/2012/barcelona-run/</link>
		<comments>http://www.peterkrantz.com/2012/barcelona-run/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 12:20:10 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=456</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2012/barcelona-run/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quotes from the Nato Software Engineering Conference in 1968</title>
		<link>http://www.peterkrantz.com/2011/software-engineering-in-1968/</link>
		<comments>http://www.peterkrantz.com/2011/software-engineering-in-1968/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 15:47:40 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software quality]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=422</guid>
		<description><![CDATA[Sometimes we forget that other people have faced the same problems we face today in software development. These quotes are from the proceedings of the Nato Software Engineering conference in 1968.]]></description>
			<content:encoded><![CDATA[<p>Sometimes we forget that other people have faced the same problems we face today in software development. These quotes are from the <a href="http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF">proceedings of the Nato Software Engineering conference in 1968</a>.<span id="more-422"></span></p>
<p>On the management of software projects:</p>
<blockquote><p>Programming management will continue to deserve its current poor reputation for cost and schedule effectiveness until such time as a more complete understanding of the program design process is achieved.</p>
<p>We build systems like the Wright brothers built airplanes — build the whole thing, push it off the cliff, let it crash, and start over again.</p>
<p>Production of large software has become a scare item for management. By reputation it is often an unprofitable morass, costly and unending. This reputation is perhaps deserved.</p></blockquote>
<p>On the distinction between design and production:</p>
<blockquote><p>Software production takes us from the result of the design to the program to be executed in the computer. The distinction between design and production is essentially a practical one, imposed by the need for a division of the labor. In fact, there is no essential difference between design and production [...]</p>
<p>The most deadly thing in software is the concept, which almost universally seems to be followed, that you are going to specify what you are going to do, and then do it. And that is where most of our troubles come from.</p></blockquote>
<p>On dealing with user requirements:</p>
<blockquote><p>Users are interested in systems requirements and buy systems in that way. But that implies that they are able to say what they want. Most of the users aren’t able to.</p>
<p>We should have feedback from users early in the design process.</p></blockquote>
<p>On programmer performance (compare with the essay <a href="http://www.paulgraham.com/gh.html">Great Hackers by Paul Graham</a>):</p>
<blockquote><p>I have a question on the huge range of variability of programmer performance. Are similar ranges found in other engineering areas? [..] The variation range in programming is in fact greater than in other fields.</p></blockquote>
<p>On the production of software:</p>
<blockquote><p>We are starting gradually, and building up. My motto is ‘do something small, useful, now.</p>
<p>Large systems must evolve, and cannot be produced all at one time. You must have an initial small core system that works really well.</p></blockquote>
<p>On testing software:</p>
<blockquote><p>System testing should be automated as well. A collection of executable programs should be produced and maintained to exercise all parts of the system. [...] As an output of a test validation run, each test should list the modules it has exercised, and as well, should list the interfaces and tables it has tested. It is important to document success, as well as failure.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2011/software-engineering-in-1968/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Changing energy behavior with real-time feedback</title>
		<link>http://www.peterkrantz.com/2011/energy-feedback-loops/</link>
		<comments>http://www.peterkrantz.com/2011/energy-feedback-loops/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 11:40:42 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Energy]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[control theory]]></category>
		<category><![CDATA[energy]]></category>
		<category><![CDATA[energy meter]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=408</guid>
		<description><![CDATA[In this blog post I try to put household energy usage in a control theory context to ...]]></description>
			<content:encoded><![CDATA[<p>In this blog post I try to put household energy usage in a <a href="http://en.wikipedia.org/wiki/Control_theory">control theory</a> context to see if we can find better ways to influence behavior.<span id="more-408"></span></p>
<p>A lot of people are thinking about how we can reduce household energy use these days. Changing household energy use can be a challenge because to most people there is no working feedback loop available. Energy use is invisible. My own feedback loop consists of getting a monthly invoice displaying the cost I had for the previous month (e.g. &#8220;278 SEK&#8221;). That is a lousy feedback loop if you want to change behavior. I can not even see how much energy I used. Not that it matters because that information is useless without knowing what would be a reasonable level to compare with. And getting the information once a month does not provide a feedback loop for me to see the effect of my immediate behavior.</p>
<p>A basic model of a feedback loop for a system looks like this:</p>
<p><img class="aligncenter size-full wp-image-409" title="feedback-loop" src="http://www.peterkrantz.com/wp-content/uploads/2011/07/feedback-loop.png" alt="A controller operates on aystem and adjust control behavior based on the output form a sensor." width="494" height="161" /></p>
<p>Based on a desired state (a reference value) a controller operates on a system and adjust control behavior based on the output from a sensor to make the system align the output to the desired state. For this to work there are a couple of things required:</p>
<ol>
<li>We must know what the <em>desired state</em> is. Without it we don&#8217;t know if the output from the system is good or bad.</li>
<li>We must know the <em>system output.</em> Without the output we can&#8217;t calculate the <em>measured error</em> between output and the desired state.</li>
<li>The controller must be able to provide <em>system input</em> to control the system and its parts in a predictable way.</li>
<li>The delay between the actions of the controller and the sensor feedback needs to be short so that the result of different actions are visible.</li>
</ol>
<p>Applying this basic model to the typical feedback loop for household energy use we get:</p>
<p><img class="aligncenter size-full wp-image-412" title="feedback-loop-monthly" src="http://www.peterkrantz.com/wp-content/uploads/2011/07/feedback-loop-monthly.png" alt="Monthly feedback through the electricity bill without a reference value makes it impossible to take action." width="547" height="219" /></p>
<p>The &#8220;system&#8221; in this model would be your household. It consists of  several things that use energy (refrigerator, TV, other appliances&#8230;). You control it by operating various appliances, setting the refrigerator temperature and making purchasing decisions for new hardware that affects energy use. You get the energy bill once a month with the amount of energy used.</p>
<p>As you can see there are several problems. I don&#8217;t know the desired energy level. Is my household below or above the average for similar households? If I switch off the TV instead of keeping it on standby, would it matter? Will setting a higher temperature in the refrigerator impact my energy use? Since I can&#8217;t see the immediate effects of my behavior there are no drivers to change it.</p>
<h2>Real-time feedback and knowledge about the desired state</h2>
<p>A first step to  influence behavior would be to provide real-time feedback and information about a desired state. That would make it possible for you to try various control actions and see what implications they have on the system. There are a lot of third party solutions to get real-time feedback e.g. <a href="http://www.diykyoto.com/uk">Wattson</a>, <a href="http://www.theenergydetective.com/store/ted-5000">TED-5000</a> and so on, but from what I have seen there are very few options to get information about a desired state. Getting more data about desired state can in part be accomplished by  sharing information about your household and its energy use with others.</p>
<p><img class="aligncenter size-full wp-image-410" title="feedback-loop-energy" src="http://www.peterkrantz.com/wp-content/uploads/2011/07/feedback-loop-energy.png" alt="With an energy meter a person can see the immediate effect of behavior on the household energy consumption" width="515" height="208" /></p>
<p>But, to be able to really affect behavior we need to increase the resolution of the parts of the system (at least sections or types of energy use in the household) by using multiple sensors and comparing the output with multiple desired states. This may quickly become complicated for an individual and a reasonable next step is to automate the controller function (you) by allowing automated control actions on parts of the system (e.g. adjusting your refrigerator temperature based on data about its contents, model, and similar household data).</p>
<p>I guess we have some work to do before we can get a better feedback loop in place. What&#8217;s in it for the energy companies? Will we have to install our own real-time meters?</p>
<p>(Thank you to <a href="http://danielbrolund.wordpress.com/">Daniel Brolund</a> who provided interesting insights into control theory last week).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2011/energy-feedback-loops/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>A laser scanner for photographic experiments</title>
		<link>http://www.peterkrantz.com/2010/laser-scanner-photography/</link>
		<comments>http://www.peterkrantz.com/2010/laser-scanner-photography/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 20:42:41 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[laser]]></category>
		<category><![CDATA[micro maestro]]></category>
		<category><![CDATA[pololu]]></category>
		<category><![CDATA[servo]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=402</guid>
		<description><![CDATA[I want to see how shapes appear in long exposures when they are lit by a computer ...]]></description>
			<content:encoded><![CDATA[<p>I want to see how shapes appear in long exposures when they are lit by a computer controlled laser beam. Check <a href="http://www.flickr.com/photos/pkz/">Flickr</a> for updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/laser-scanner-photography/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visualizing Eurostat data with the JIT</title>
		<link>http://www.peterkrantz.com/2010/eurostat-hackday/</link>
		<comments>http://www.peterkrantz.com/2010/eurostat-hackday/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 09:59:30 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[eurostat]]></category>
		<category><![CDATA[okfn]]></category>
		<category><![CDATA[open data]]></category>
		<category><![CDATA[v11n]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=397</guid>
		<description><![CDATA[A small visualization hack for the Eurostat Hackday on december 16.]]></description>
			<content:encoded><![CDATA[<p>A small <a href="http://www.peterkrantz.com/v11n/eurostat/">visualization hack for the Eurostat Hackday</a> on december 16.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/eurostat-hackday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A lightweight semantic interoperability framework for countries and large organizations (and small ones)</title>
		<link>http://www.peterkrantz.com/2010/semantic-interoperability/</link>
		<comments>http://www.peterkrantz.com/2010/semantic-interoperability/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 11:17:52 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[e-Gov]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[interoperability]]></category>
		<category><![CDATA[ontology]]></category>
		<category><![CDATA[OWL]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[SAWSDL]]></category>
		<category><![CDATA[semantics]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=356</guid>
		<description><![CDATA[This post is a summary of some ideas for a lightweight semantic interoperability framework  It is mainly a composition of existing open standards to form a framework for organisations to be able to ensure that semantic and technical descriptions stay connected over time. The idea is to provide a framework that allows for an increasing semantic interoperability emerging over time without having a large centralized organisation defining vocabula]]></description>
			<content:encoded><![CDATA[<p>This post is a summary of some ideas for a lightweight semantic interoperability framework  It is mainly a composition of existing <a href="http://www.fsfe.org/projects/os/def.en.html">open standards</a> to form a framework for organisations to be able to ensure that semantic and technical descriptions stay connected over time. The idea is to provide a framework that allows for an increasing semantic interoperability emerging over time without having a large centralized organisation defining vocabularies. <span id="more-356"></span>Main points:</p>
<ol>
<li>The benefits appear when a vocabulary is used.</li>
<li>An important factor is how a vocabulary and its parts can be published, discovered and referenced.</li>
<li>There needs to be one and only one vocabulary artifact.</li>
<li>The vocabulary artifact must be machine processable to allow aggregation and automatic generation of other artifacts.</li>
</ol>
<h2>Background</h2>
<p>The need for interoperability arise in scenarios with many contributing actors. In the old days this was solved by hiring a (large) consulting organization that (hopefully) had experience from glueing together many products from their vast product portfolio. Everyone involved was happy if it worked. Being able to swap out a part of this system or connect it to a third party that had a different technical platform was considered a risk.</p>
<p>Today more work is being done but in my experience there are still issues in keeping it all together. Domain experts create terminology in Word documents and architects draw UML class diagrams. They all talk about the domain but each type of artifact does not describe the domain sufficiently. In a different room developers merge domain concepts with coding practices to form software that may express fragments of a domain.</p>
<p>Little work is done to define vocabularies in a way that worked both for software developers and for domain experts. Typically you would find a Word document with a flat terminology that was ignored by the software developers, or, you could find class diagrams in UML or software documentation that was impossible for domain experts to understand. And when you look at the code or interfaces of the system there are no references to the correct item in a vocabulary.</p>
<p>How can we make them work together?</p>
<p><a href="http://www.peterkrantz.com/wp-content/uploads/2010/08/interop2.jpg"><img class="alignnone size-full wp-image-366" title="interoperability-2" src="http://www.peterkrantz.com/wp-content/uploads/2010/08/interop2.jpg" alt="Interoperability. What do we mean by plant. A type of factory or a flower?" width="550" height="235" /></a></p>
<h2>Requirements and challenges</h2>
<p>I like to think of semantic interoperability as <em>a state where the same cognitive processes kicks in for two persons studying a specific artefact from the doma</em><em>in they are working in</em>.</p>
<p>In order to work with this in a structured way we need to simplify it. One way to look at interoperability can be found in the <a href="http://ec.europa.eu/idabc/en/document/7728">draft of the European Interoperability Framework version 2</a>. It introduces four interoperability levels. If we remove the European cross border services context they can be described in more general terms:</p>
<ol>
<li><em>Technical interoperability</em>: issues involved in linking computer systems and services together (e.g. transport and serialization of data).</li>
<li><em>Semantic interoperability</em>: the meaning of information specified in a way understood by all parties (e.g. definitions, relations and structure of terms used to describe data).</li>
<li><em>Organizational interoperability</em>: coordination of processes in the context where data is used/transformed. (e.g. shared definitions of the roles, responsibilities and interactions of/between participants).</li>
<li><em>Legal interoperability</em>: shared interpretation and understanding of laws regulating information exchange and cooperation (e.g. can we transfer information about people? What about privacy?).</li>
</ol>
<p>There are other models that could be used to discuss levels of interoperability (e.g. <a href="http://en.wikipedia.org/wiki/Conceptual_interoperability">LCIM &#8211; Levels of Conceptual Interoperability Model</a>) but let&#8217;s stick with the EIF 2 model above.</p>
<p>If you have a scenario with only two parties everything is simple. You could just do the minimum amount of work to make sure systems talk to each other and that people share a common image of the various levels of interoperability. Enabling more parties to participate requires more work though.</p>
<p>If you have a scenario with many parties (where some may not yet exist) you have to create a framework describing how interoperability should work by harmonizing a set of solutions at each level of interoperability. In a dictatorship this is easy. Just evaluate a few solutions, choose one and make everyone use it. In other contexts it is more complicated.</p>
<p>If we consider the EIF 2 model above as a set of requirements we should also make sure that the solutions we propose:</p>
<ol>
<li><em>scale down</em>: If the parties (organizations, departments etc) vary greatly in size (as they will if the number is sufficiently big) some may consider that the solution you propose in a framework is unnecessary complex. They are right. In order to maximize the number of parties and processes that can participate in an interoperability scenario you will have to <a href="http://www.welton.it/articles/scalable_systems">make sure the proposed solutions scale down</a>.</li>
<li><em>are technology neutral</em>: Given a large number of organizations you will find almost every technology platform you can imagine. There will also be a number of ways to send and receive information. Some like to force a specific set of transport mechanisms as part of a interoperability framework but this will quickly put you on a path where you can&#8217;t make use of new standards and technologies. Forcing participating organizations to use a specific tool or platform will fail.</li>
<li><em>give a reasonable amount of flexibility</em>: This may require the framework to contain partly overlapping standards.</li>
<li><em>facilitate an emerging semantic interoperability</em>: The idea of having a central organization defining everything only works in a dictatorship. We should enable the decentralisation of participating in vocabulary work.</li>
<li><em>are discoverable and referencable</em>: If the artefacts that are created are difficult to find for a newcomer you can give up now. By lowering the threshold to participate more parties can be involved and more information can be reused.</li>
</ol>
<p><strong>This proposal is aimed at semantic interoperability only.</strong></p>
<h2>A lightweight semantic interoperability framework proposal</h2>
<h3>1. The Web Ontology Language (OWL) is used to express vocabularies</h3>
<p>The primary reason for selecting <a href="http://www.w3.org/TR/owl2-overview/">OWL</a> is not the features it has to express domain concepts but rather the possibilities of publishing it and referencing it on the web that come bundled with it. Using the web as a publishing platform enables us to make use of already existing standards for referencing a vocabulary and its parts.</p>
<p>Although plagued by research projects of poor usability and lack of longevity there are several tools to create vocabularies in OWL. The framework does not specify the process for creating a vocabulary as that may hinder small organizations form participating.</p>
<h3>2. Vocabularies are published properly on the web</h3>
<p>Putting an OWL vocabulary on the web means that it can easily be discovered, referenced and transformed. Not only will it help your own organization but it will lower the threshold for others who want to use parts of it in their own work. As soon as that happens you have the first step towards semantic interoperability.</p>
<p>By &#8220;published properly&#8221; I mean that you should choose your URI for the vocabulary wisely as it will be the reference string used in software interfaces and other artifacts down the road. Many get web publishing wrong by scrapping one of the best features: long term referenceability, as they dump information tightly coupled to the publishing tool they are using. When you change the tool (e.g. a content management system) you may break references for everyone else. Don&#8217;t do that.</p>
<p><img class="aligncenter size-full wp-image-391" title="artifacts" src="http://www.peterkrantz.com/wp-content/uploads/2010/12/artifacts.gif" alt="An OWL model automatically transformed to HTML and a class diagram." width="524" height="192" /></p>
<p>To make the vocabulary human readable (nobody wants to read OWL/RDF-schema) generate at least an HTML-version of the vocabulary for users pointing their browser to the URL of the vocabulary and a class hierarchy overview to help users understand relations between things.</p>
<h3>3. Use a standardized way of referencing vocabularies in other artifacts</h3>
<p>Although OWL may seem to be only for semantic web scenarios it can be used in other areas. By standardizing how references from WSDL and XML schema are made it is possible to keep an unbroken chain of references. <a href="http://www.w3.org/TR/sawsdl/">SAWSDL</a> provides a mechanism to reference e.g. a class in the vocabulary. This makes it possible for developers to refer to the vocabulary in a consistent way from XML schemas and WSDL files and provides a way to keep the vocabulary closely connected to API implementations.</p>
<p>One important area missing is how to point to vocabularies from code. Code is a design artifact for a system and as such it is important that it is possible to keep an unbroken reference chain to it too. But we&#8217;ll leave that open for now.</p>
<h3>4. Aggregate all vocabularies on a central website</h3>
<p>Although vocabularies can and should be published under a URI in control by the authoring organization they should be aggregated on a central searchable website. This is easy as they are machine readable and will serve two purposes:</p>
<ol>
<li>It helps people <em>discover other vocabularies</em> before creating their own. This is an important step in creating an environment for an emerging semantic interoperability.</li>
<li>The aggregated material will become a <em>tool to find areas where harmonization efforts should be focused</em>. By querying the aggregated information it is possible to find vocabularies that define similar things. Multiple classes called &#8220;Person&#8221;? Get going.</li>
</ol>
<h3>5. Express provenance in the vocabulary</h3>
<p>Provenance provides a foundation for assessing authenticity and enabling trust. By standardizing information about <a href="http://www.w3.org/2005/Incubator/prov/XGR-prov-20101214/#A_Roadmap_for_Provenance_on_the_Web">provenance</a> you also facilitate interaction between parties involved in the domain.</p>
<h2>What do you think?</h2>
<p>I believe this could be a lightweight approach to work with semantic interoperability in a way that scales (both up and down) and that provides for an emerging semantic interoperability over time. I guess it could work for government scenarios on country scale as well as for a small organization.</p>
<p>The only thing I miss is a standardized way of referencing a vocabulary from code.</p>
<p>Please leave your feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/semantic-interoperability/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Making FuzzyFinder work in MacVim 7.3</title>
		<link>http://www.peterkrantz.com/2010/fuzzyfinder-in-macvim/</link>
		<comments>http://www.peterkrantz.com/2010/fuzzyfinder-in-macvim/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 07:06:14 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[VIM]]></category>
		<category><![CDATA[fuzzyfinder]]></category>
		<category><![CDATA[macvim]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=382</guid>
		<description><![CDATA[I have seen many posts that are having trouble getting FuzzyFinder to work in MacVim. In certain configurations you will see multiple errors "E806: using Float as a String". This is because some locales make MacVim treat floating point numbers differently. Here is how I did to make it work on my system. As an added bonus we will map it to the Apple-T key and default it to subdirectory search.]]></description>
			<content:encoded><![CDATA[<p>I have seen many posts that are having trouble getting <a href="http://www.vim.org/scripts/script.php?script_id=1984">FuzzyFinder</a> to work in <a href="http://code.google.com/p/macvim/">MacVim</a>. In certain configurations you will see multiple errors &#8220;E806: using Float as a String&#8221;. This is because some locales make MacVim treat floating point numbers differently. Here is how I did to make it work on my system (OS X 10.6.4 and MacVim 7.3). As an added bonus we will map it to the Apple-T key and default it to subdirectory search.<span id="more-382"></span></p>
<p>If you try &#8220;:let s = 0.5&#8243; in MacVim and get an error you are affected. This happens when you have launched MacVim from Finder. In this case MacVim does not pick up all the locale settings properly for some reason. This includes the settings for the separator character in floating point numbers which may make all vim scripts with a dot separator (&#8220;0.05&#8243;) fail.</p>
<p>1. Install the FuzzyFinder script (including the l9 library).</p>
<p>2. In your .gvimrc add the following lines. This will deconnect the Apple-T from File-&gt;New tab and instead invoke FuzzyFinder with a wildcard for subdir search:</p>
<pre>if has("gui_mac") || has("gui_macvim")
  macmenu &amp;File.New\ Tab     key=&lt;Nop&gt;
  map &lt;silent&gt;&lt;D-t&gt; :FufFile **/&lt;CR&gt;
endif</pre>
<p>Now, start MacVim from terminal with &#8220;mvim&#8221; instead of double-clicking the icon in Finder and try Apple-T. FuzzyFinder should now work correctly. Here are some of the discussions for reference:</p>
<ul>
<li><a href="http://bitbucket.org/ns9tks/vim-l9/issue/2/errors-in-l9-in-macvim-73">Error in vim-l9</a></li>
<li>
<div id="_mcePaste"><a href="http://groups.google.com/group/vim_mac/browse_thread/thread/cc8c578386b3f448">FuzzyFinder and error E806: using Float as a String</a></div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/fuzzyfinder-in-macvim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A short summary of Codemocracy 2010</title>
		<link>http://www.peterkrantz.com/2010/codemocracy-2010/</link>
		<comments>http://www.peterkrantz.com/2010/codemocracy-2010/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 22:36:59 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Open data]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[gov20]]></category>
		<category><![CDATA[hackday]]></category>
		<category><![CDATA[open data]]></category>
		<category><![CDATA[open government]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=378</guid>
		<description><![CDATA[On september 4-5 we had our first open data hack day here in Sweden called Codemocracy. The ...]]></description>
			<content:encoded><![CDATA[<p>On september 4-5 we had our first open data hack day here in Sweden called <a href="http://codemocracy.se/">Codemocracy</a>. The event was a success (thank you Martin Svalin!) with close to 50 participants hacking away at various data sets. I did an <a href="http://www.slideshare.net/peterkz/ppen-data-status-codemocracy">intro on the state of open data</a> but tried to keep it short so that everyone could start coding as soon as possible.<span id="more-378"></span></p>
<p>On Sunday there were 12 teams presenting their apps. Some of the teams had used public transport data made available by the <a href="http://www.viktoria.se/">Viktoria Institute</a> but many were scraping government websites for lack of <a href="http://www.opengov.se/data/med-api/">proper API:s</a>. In the 24 hours set aside for the competition the following apps were created:<a title="Valkoll by Peter Krantz, on Flickr" href="http://www.flickr.com/photos/pkz/4973044119/"></a></p>
<ul>
<li>Slagkryssaren: <a href="http://codemocracy.se/projects/valkoll">Valkoll &#8211; an Android app to see election results where you are right now</a></li>
<li>Slumptal: <a href="http://codemocracy.se/projects/lokalpolitik">Lokalpolitik &#8211; geocoding city council docs to</a> be able to present relevant decisions in your neighborhood.</li>
<li>New and shiny things: <a href="http://codemocracy.se/projects/myndighetskoll">@Myndighetskoll</a> &#8211; a twitter bot that ansers questions about government agencies</li>
<li>Popdevelop: <a href="http://codemocracy.se/projects/kollektivt">Kollektivt.se</a> &#8211; an API service and realtime display of buses in the city of Malmö</li>
<li>Facebookpolitik: <a href="http://codemocracy.se/projects/riksdagen_pa_facebook">Svenska Riksdagen på Facebook</a> &#8211; pushing government decisions and initiatives to Facebook</li>
<li>First Blood: <a href="http://codemocracy.se/projects/engagemangsindex">Engagemangsindex</a> &#8211; visualization of government issues</li>
<li>Boreda: <a href="http://codemocracy.se/projects/boreda_at_codemocracy">Boreda @ Codemocracy</a> &#8211; using public transport data as a selection criteria in finding properties for sale.</li>
<li>Exjobbarna: <a href="http://codemocracy.se/projects/crime_tracker">CrimeTracker</a> &#8211; a Windows mobile app to see crime stats</li>
<li>Anyro: <a href="http://codemocracy.se/projects/tagtider">Tågtider till Android</a> &#8211; an adroid app for train data</li>
<li>Existic: <a href="http://codemocracy.se/projects/riksdagen_i_ply">Riksdagsdata i Ply</a> &#8211; an extension to PLy to do drill-down in government data.</li>
<li>Akvo Phone: <a href="http://codemocracy.se/projects/georapport">Georapport</a> &#8211; an Android app that geo-encodes and signs a picture that could be used in development aid projects or fix my street-scenarios.</li>
<li>Kreativ Stuga: <a href="http://codemocracy.se/projects/edemokrat">Edemokrat.se</a> &#8211; An app that connects government documents in a way that makes it easy to navigate them.</li>
</ul>
<p>More info at the official <a href="http://codemocracy.se/">Codemocracy website.</a> Many CC pictures are in the <a href="http://www.flickr.com/groups/codemocracy">Codemocracy Flickr group</a>.</p>
<p>I am already looking forward to the next event!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/codemocracy-2010/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

 Served from: www.peterkrantz.com @ 2013-05-21 23:09:32 by W3 Total Cache -->