<?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>Sat, 14 Jan 2012 18:56:51 +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>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>0</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>9</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>9</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>
		<item>
		<title>Beta testing the UR TWEETS SUCK Tee</title>
		<link>http://www.peterkrantz.com/2010/beta-testing-the-ur-tweets-suck-tee/</link>
		<comments>http://www.peterkrantz.com/2010/beta-testing-the-ur-tweets-suck-tee/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 09:16:12 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[t-shirt]]></category>
		<category><![CDATA[tee]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=371</guid>
		<description><![CDATA[My son has the dubious pleasure of being the primary beta tester of T-shirt messages. This time ...]]></description>
			<content:encoded><![CDATA[<p>My son has the dubious pleasure of being the primary beta tester of T-shirt messages. This time it is the first draft of the model that will be called “Twat”. Turned out pretty OK… Also see the <a href="http://www.peterkrantz.com/2008/ballmer-tee-v/">Ballmer Tee</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/beta-testing-the-ur-tweets-suck-tee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implement open data for EU institutions</title>
		<link>http://www.peterkrantz.com/2010/eu-institution-psi/</link>
		<comments>http://www.peterkrantz.com/2010/eu-institution-psi/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 14:42:47 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[e-Gov]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Open data]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[gov2.0]]></category>
		<category><![CDATA[open data]]></category>
		<category><![CDATA[psi]]></category>
		<category><![CDATA[transparency]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=352</guid>
		<description><![CDATA[Jonathan Gray of the Open Knowledge Foundation participated in a conference of the Communia project, a European ...]]></description>
			<content:encoded><![CDATA[<p>Jonathan Gray of the Open Knowledge Foundation participated in a conference of the <a href="http://www.communia-project.eu/">Communia project</a>, a European thematic network on the digital public domain. In a great post about the meeting at the OKFN blog, <a href="http://blog.okfn.org/2010/07/08/opening-up-european-public-sector-information-two-recommendations/">he recommends two improvements to the current PSI work</a>; 1: Broaden the scope of the PSI Directive to include publicly funded cultural heritage organisations and 2: Broaden the evidence base for opening up PSI.<span id="more-352"></span></p>
<h2>A third recommendation</h2>
<p>An important value of public sector information is the increased transparency in government decision making. A <a href="http://en.wikipedia.org/wiki/Directive_%28European_Union%29">European Union directive</a> only affects member states and not EU institutions. We are therefore at risk of missing out on increased transparency in EU institutions that the PSI directive may bring to governments in the member states. Also, government <a href="http://ww2.unhabitat.org/cdrom/TRANSPARENCY/html/transpc.html">transparency is often considered to be a contributing factor in reducing corruption</a>.</p>
<p><strong>Therefore, it would be great if there was a plan, similar to the PSI directive, that made sure that EU institutions also started providing machine readable data in order to increase transparency and reduce the risk of corruption.</strong></p>
<p>Currently, it seems to be up to each institution to do what they want. Maybe that is why the <a href="http://publications.europa.eu/index_en.htm">Publications Office of the European Union</a> decided to charge   for access to electronic versions of the EUR-Lex database (that contains the directives and other legal acts). This move makes it difficult for new actors in the legal information industry to include EU data in their products which leads to reduced competition.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/eu-institution-psi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Social Media in the Swedish Public Sector</title>
		<link>http://www.peterkrantz.com/2010/social-media-in-the-swedish-public-sector/</link>
		<comments>http://www.peterkrantz.com/2010/social-media-in-the-swedish-public-sector/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 20:22:41 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[e-Gov]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[gov20]]></category>
		<category><![CDATA[open goverment]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=316</guid>
		<description><![CDATA[Andrew Krzmarzick, Govloop community manager, asked me which swedish government agencies are using social media to communicate ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/krazykriz">Andrew Krzmarzick</a>, Govloop community manager, asked me which swedish government agencies are using social media to communicate with citizens. The twitter message space is too short for an answer so here is a more thorough reply. I will specifically look at Twitter which seems to be gaining popularity in the swedish public sector.<span id="more-316"></span></p>
<p>Use of social media tools in the public sector is in its infancy in Sweden. In a study conducted by the <a href="http://www.chamber.se/e-index_rapport_2009.pdf">Stockholm Chamber of Commerce in 2009 (PDF)</a> , around 12% of agencies reported that they were using social media channels in their communication. In<a href="http://www.sverigesinformationsforening.se/aktuellt--press/nyheter/2009/hur-anvander-myndigheter-sociala-medier.aspx"> another study by the Swedish Public Relations Association</a> 75% of PR managers were evaluating the use of social media but only 5% had involved social media in the communication strategy. Many agencies are trying out new tools to see how they fit in their communication strategy. Most are using them as a news feed (one-way communication) and do not reply to questions. The number of followers varies greatly. Some examples:</p>
<table class="result">
<caption>Examples of government agencies using Twitter</caption>
<tbody>
<tr>
<th>Agency</th>
<th>Twitter</th>
<th><abbr title="Followers">Fwrs.</abbr></th>
<th>Content</th>
</tr>
<tr>
<td>National Board of Health and Welfare</td>
<td><a href="http://twitter.com/SoS_nyheter">@SoS_nyheter</a></td>
<td align="right">61</td>
<td>Newsfeed (one-way communication).</td>
</tr>
<tr>
<td>Swedish Civil Contingencies Agency</td>
<td><a href="http://twitter.com/krisinformation">@Krisinformation</a></td>
<td align="right">2658</td>
<td>Crisis info for swedes at home and abroad aggregated from other agencies. Unfortunately no geo tagging so the feed is hard to follow and most of the stuff is not related to your location.</td>
</tr>
<tr>
<td>Medical Products Agency</td>
<td><a href="http://twitter.com/LV_MPA">@LV_MPA</a></td>
<td align="right">141</td>
<td>News about medications and medical equipment regulations (like FDA in the US).</td>
</tr>
<tr>
<td>Statistics Sweden</td>
<td><a href="http://twitter.com/StatsSweden">@StatsSweden</a></td>
<td align="right">212</td>
<td>News updates about national statistics.</td>
</tr>
<tr>
<td>Swedish Board of Agriculture</td>
<td><a href="http://twitter.com/teamforetagande">@teamforetagande</a></td>
<td align="right">257</td>
<td>Information about business opportunities in the countryside.</td>
</tr>
<tr>
<td>Swedish Trade Council</td>
<td><a href="http://twitter.com/Exportradet">@Exportradet</a></td>
<td align="right">116</td>
<td>News related to export opportunities for Swedish busniesses.</td>
</tr>
</tbody>
</table>
<p>Some agencies have also started using Facebook. <a href="http://www.facebook.com/riksantikvarieambetet">The National Heritage Board (Riksantikvarieämbetet) on Facebook</a> has close to 1200 fans. They have also used <a href="http://www.flickr.com/photos/swedish_heritage_board/">Flickr to increase access to parts of their archives</a>. Currently the images are low-res only but that may change in the future.</p>
<h2>Municipalities on Twitter</h2>
<p>Many municipalities have started using Twitter to push information to citizens. Most are using it as a one-way communication channel, but some are engaging in dialogue. The number of municipalities on twitter is increasing almost on a daily basis. In my <a href="http://twitter.com/#/list/peterkz_swe/kommuner">list of swedish municipalities on twitter</a> there are currently 71 (out of 290). Many of them are not publishing any tweets and may only have registered the account to get a proper twitter handle.</p>
<p>In he following visualization you get an overview of how the municipalities compare with regards to number of tweets, followers and &#8220;early adopter&#8221;-status (&#8220;Age&#8221; as in number of days on twitter). <a href="http://twitter.com/Uppsalakommun">Uppsala</a> (north of Stockholm) has over 500 followers and published 941 tweets in their 367 days on Twitter. <a href="/socmed_swedish_municipalities.htm">See here for a larger chart</a>.</p>
<p><script src="https://spreadsheets.google.com/gpub?url=http%3A%2F%2Foj0ijfii34kccq3ioto7mdspc7r2s7o9.spreadsheets.gmodules.com%2Fgadgets%2Fifr%3Fup__table_query_url%3Dhttps%253A%252F%252Fspreadsheets.google.com%252Ftq%253Frange%253DA1%25253AE72%2526gid%253D0%2526headers%253D-1%2526key%253D0AhdI4x22FAjwdDZqS1I5VWxvZnc5R0Y1RXA5NFNMQkE%2526pub%253D1%26up_title%3DSwedish%2520Municipalities%2520on%2520Twitter%26up_initialstate%3D%257B%2522duration%2522%253A%257B%2522timeUnit%2522%253A%2522Y%2522%252C%2522multiplier%2522%253A1%257D%252C%2522showTrails%2522%253Atrue%252C%2522yZoomedDataMin%2522%253A0%252C%2522orderedByX%2522%253Afalse%252C%2522colorOption%2522%253A%25224%2522%252C%2522iconKeySettings%2522%253A%255B%255D%252C%2522orderedByY%2522%253Afalse%252C%2522yZoomedIn%2522%253Afalse%252C%2522nonSelectedAlpha%2522%253A0.4%252C%2522xLambda%2522%253A1%252C%2522time%2522%253A%25222010%2522%252C%2522xZoomedIn%2522%253Afalse%252C%2522uniColorForNonSelected%2522%253Afalse%252C%2522sizeOption%2522%253A%25222%2522%252C%2522iconType%2522%253A%2522BUBBLE%2522%252C%2522playDuration%2522%253A15000%252C%2522dimensions%2522%253A%257B%2522iconDimensions%2522%253A%255B%2522dim0%2522%255D%257D%252C%2522xZoomedDataMax%2522%253A562%252C%2522yLambda%2522%253A1%252C%2522xZoomedDataMin%2522%253A14%252C%2522yAxisOption%2522%253A%25224%2522%252C%2522yZoomedDataMax%2522%253A941%252C%2522xAxisOption%2522%253A%25223%2522%257D%26up__table_query_refresh_interval%3D300%26url%3Dhttp%253A%252F%252Fwww.google.com%252Fig%252Fmodules%252Fmotionchart.xml&amp;height=500&amp;width=570"></script></p>
<h2>Observations</h2>
<p>Some organizations are following citizens on Twitter and may not have realized that people may feel uncomfortable having an agency following them.</p>
<p>There are also some fake agencies on twitter. Swedish national authority for signals intelligence, <a href="http://twitter.com/radioanstalten">FRA</a>, has a twitter feed (with the correct logo), but looking at the tweets it is likely a fake. How should agencies relate to this? The police has several twitter feeds it seems. But they are <a href="http://www.nyhetskanalen.se/1.1015482/2009/05/26/polisen_twittrar_ovetandes">not managed by the agency itself</a>. How can citizens trust the information in these channels when it is difficult to see if they are managed by the agency or some personal initiative?</p>
<h2>Recommendations from the government</h2>
<p>On March 23 the government published a <a href="http://www.regeringen.se/sb/d/12677/a/142272">proposal</a> saying (my translation):</p>
<blockquote><p>Social media tools create new possibilites for communication with citizens and businesses. <a href="http://www.edelegationen.se/">The E-government delegatio</a>n will create guidelines for the public sector use of social media tools.</p></blockquote>
<p>This means that we will likely see more agencies trying out social media channels in the future.</p>
<p>Do you have more information? Please comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2010/social-media-in-the-swedish-public-sector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joining the Swedish eGovernment Delegation</title>
		<link>http://www.peterkrantz.com/2009/joining-the-swedish-egovernment-delegation/</link>
		<comments>http://www.peterkrantz.com/2009/joining-the-swedish-egovernment-delegation/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 11:14:43 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/2009/joining-the-swedish-egovernment-delegation/</guid>
		<description><![CDATA[A while ago I was offered a position with the Swedish eGovernment Delegation. I will be working ...]]></description>
			<content:encoded><![CDATA[<p>A while ago I was offered a position with the <a href="http://en.edelegationen.se/">Swedish eGovernment Delegation</a>. </p>
<p>I will be working with IT standardisation issues and the next revision of guidelines for public websites.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/joining-the-swedish-egovernment-delegation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dear DHL (and all other logistics companies)</title>
		<link>http://www.peterkrantz.com/2009/open-letter-to-dhl/</link>
		<comments>http://www.peterkrantz.com/2009/open-letter-to-dhl/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 16:25:51 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Trends]]></category>
		<category><![CDATA[delivery]]></category>
		<category><![CDATA[Deutsche Post]]></category>
		<category><![CDATA[DHL]]></category>
		<category><![CDATA[logistics]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[shipping]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=299</guid>
		<description><![CDATA[Dear <a href="http://www.dp-dhl.com/en">DHL</a> (and other logistics companies because you tend to behave exactly the same). How is it that you are able to move my package from the UK to Sweden fast as hell but spend several days trying to move it from your terminal to my home address in the same city?]]></description>
			<content:encoded><![CDATA[<p>Dear <a href="http://www.dp-dhl.com/en">DHL</a> (and other logistics companies because you tend to behave exactly the same). How is it that you are able to move my package from the UK to Sweden fast as hell but spend several days trying to move it from your terminal to my home address in the same city?<span id="more-299"></span><br />
<small>Visa <a style="color: #0000ff; text-align: left;" href="http://maps.google.com/maps/ms?ie=UTF8&amp;msa=0&amp;msid=111980647133829499758.0004770108ab25a4d5791&amp;ll=55.478853,8.876953&amp;spn=14.988694,47.460938&amp;z=4&amp;source=embed">DHL delivery</a> på en större karta</small></p>
<p>Like most people living in Stockholm (and other cities I guess) I live in an apartment building to which you have no access. Also, like most people, I work during the day. Nothing special, just normal office hours, about the same hours when your drivers drive around the city trying to deliver stuff to the empty homes of people who are at work.</p>
<p>Knowing that you will fail to enter the building where I live (it doesn&#8217;t really matter since I&#8217;m not at home anyway), I have tried to contact you to see if I can do a part of your work by going to your terminal myself to pick up my package.</p>
<p>For some unknown reason you can&#8217;t refrain from trying to deliver it my empty home. Maybe it is in he nature of logistics people inherited in genes from loyal post office workers of the good old days?</p>
<p>Anyway, this means I have to wait for you to fail delivery and take the package back to your terminal and then send me a message (through regular mail) that you failed. A process that takes several days.</p>
<p>When I walk home from work I pass a 7-eleven with a sign that says &#8220;DHL Servicepoint&#8221;. It is bright and yellow and only about 150 yards from my home (I can almost see it if I lean out through my living room window). Intrigued by the words &#8220;service&#8221; and &#8220;point&#8221; I inquired, though your eminent call center, if it was possible to have the package delivered there instead? I was hoping I could save both you and me some work (and time).  For unknown reasons you are not allowed to deliver my package to your own servicepoint. Words fail me.</p>
<p>My second suggestion was to change the address so that you may deliver it to my workplace instead. It is a bit of a gamble since I am in meetings throughout the day and may not be around at the exact random time your delivery guy tends to show up. This was possible, your friendly call center employee told me, <strong>but we have to try to deliver the package to your empty home first</strong>.</p>
<p>How hard can it be? I had a crazy idea. What if logistics was all about making use of information to optimize flows of goods?<br />
<small>Visa <a style="color: #0000ff; text-align: left;" href="http://maps.google.com/maps/ms?ie=UTF8&amp;msa=0&amp;msid=111980647133829499758.0004770108ab25a4d5791&amp;ll=59.452056,17.948914&amp;spn=0.251276,0.741577&amp;z=10&amp;source=embed">DHL delivery</a> på en större karta</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/open-letter-to-dhl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The case for uninterrupted work</title>
		<link>http://www.peterkrantz.com/2009/the-case-for-uninterrupted-work/</link>
		<comments>http://www.peterkrantz.com/2009/the-case-for-uninterrupted-work/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 08:23:53 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Methodology]]></category>
		<category><![CDATA[cognition]]></category>
		<category><![CDATA[interruptions]]></category>
		<category><![CDATA[office work]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[worklife]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=296</guid>
		<description><![CDATA[Ho do you manage your interruptions? The myth of multitasking: &#8230; [a] research study, funded by Hewlett-Packard and ...]]></description>
			<content:encoded><![CDATA[<p>Ho do you manage <em>your</em> interruptions?<span id="more-296"></span></p>
<p><a href="http://www.thenewatlantis.com/publications/the-myth-of-multitasking">The myth of multitasking</a>:</p>
<blockquote><p>&#8230; [a] research study, funded by Hewlett-Packard and conducted by the Institute of Psychiatry at the University of London, that found, “Workers distracted by e-mail and phone calls suffer a fall in IQ more than twice that found in marijuana smokers.”</p></blockquote>
<p>Stanford study: <a href="http://www.pnas.org/content/early/2009/08/21/0903620106.abstract">Cognitive control in media multitaskers</a>:</p>
<blockquote><p>Results showed that heavy media multitaskers are more susceptible to interference from irrelevant environmental stimuli and from irrelevant representations in memory. This led to the surprising result that <strong>heavy media multitaskers performed worse on a test of task-switching ability</strong>, likely due to reduced ability to filter out interference from the irrelevant task set.</p></blockquote>
<p><a href="http://clair.si.umich.edu/~radev/ilist/0580.html">Meet the Life Hackers</a> &#8211; New York Times Magazine (10/16/05) (based on research by <a href="http://www.ics.uci.edu/~gmark/">Gloria Mark, University of California</a>)</p>
<blockquote><p>Research shows that 40 percent of the time, workers ramble along a different tangent when an interruption ends because their short-term memory has been disrupted.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/the-case-for-uninterrupted-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opengov.se launched</title>
		<link>http://www.peterkrantz.com/2009/opengovse-launched/</link>
		<comments>http://www.peterkrantz.com/2009/opengovse-launched/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 08:21:27 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[e-Gov]]></category>
		<category><![CDATA[Open data]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[open government]]></category>
		<category><![CDATA[public sector]]></category>
		<category><![CDATA[transparency]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=292</guid>
		<description><![CDATA[Says the Open Government Working Group: The Internet is the public space of the modern world, and ...]]></description>
			<content:encoded><![CDATA[<p>Says the Open Government Working Group:<span id="more-292"></span></p>
<blockquote><p>The Internet is the public space of the modern world, and through it governments now have the opportunity to better understand the needs of their citizens and citizens may participate more fully in their government. Information becomes more valuable as it is shared, less valuable as it is hoarded. Open data promotes increased civil discourse, improved public welfare, and a more efficient use of public resources.</p></blockquote>
<p>&#8230;and this is why I have launched <a href="http://www.opengov.se/">opengov.se</a> &#8211; an initiative to bring swedish public sector data online in open formats. Initially the website contains a catalog of public data sources and information about licensing and formats used.</p>
<p>You can help out by <a href="http://www.opengov.se/data/suggest/">suggesting datasets</a> form the swedish public sector.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/opengovse-launched/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Rails vs Grails vs Django models</title>
		<link>http://www.peterkrantz.com/2009/rails-grails-django-models/</link>
		<comments>http://www.peterkrantz.com/2009/rails-grails-django-models/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:58:47 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[domain modeling]]></category>
		<category><![CDATA[grails]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=281</guid>
		<description><![CDATA[Coming back to Rails after being away from some time in Django land I discovered a huge difference in how Rails and Django treats your models...]]></description>
			<content:encoded><![CDATA[<p>Coming back to Rails after being away from some time in Django land I discovered a huge difference in how Rails, Grails and Django treats your models. <span id="more-281"></span>In Django and Grails you can look at a model class and see all the properties it has:</p>
<pre class="brush: python; title: ; notranslate">
class Organization(models.Model):
    name = models.CharField(max_length=255)
    url = models.URLField(verify_exists=False)
    orgtype = models.ForeignKey(OrgType)
</pre>
<p>The same model class in Rails typically looks like this:</p>
<pre class="brush: ruby; title: ; notranslate">
class Organization &lt; ActiveRecord::Base
    belongs_to :OrgType
end
</pre>
<p>&#8230;and in Grails it is more specific like Django:</p>
<pre class="brush: groovy; title: ; notranslate">
class Organization {
  String name
  String url
  static belongsTo = OrgType
  OrgType orgtype
}
</pre>
<p>It took me a while to remember that in Rails, parts of the model design is actually stored in the database schema instead of in the Ruby code. Peculiar don&#8217;t you think, given that everything else in a Rails app is nicely declared in Ruby code? There are of course benefits to both approaches, but I have started adding comments in the Rails model classes to be able to remember what properties they have without peeking in the Db. Typically I have a number of half-baked projects on my laptop and from time to time I forget what they do and these comments help me remember.</p>
<p>Check out more examples here:</p>
<ul>
<li><a href="http://docs.djangoproject.com/en/dev/topics/db/models/#topics-db-models">Django models</a></li>
<li><a href="http://www.tutorialspoint.com/ruby-on-rails/rails-models.htm">Rails models</a></li>
<li><a href="https://www.ibm.com/developerworks/java/library/j-grails02128/">Grails models</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/rails-grails-django-models/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Remixing Youtube</title>
		<link>http://www.peterkrantz.com/2009/remixing-youtube/</link>
		<comments>http://www.peterkrantz.com/2009/remixing-youtube/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 19:07:38 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Trends]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[remix]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=274</guid>
		<description><![CDATA[An interesting approach to chains of copyright but these are really interesting. None of the participants were ...]]></description>
			<content:encoded><![CDATA[<p>An interesting approach to chains of copyright but these are really interesting. None of the participants were involved in making these songs. At the same time all of them were. A guess is that remixes like these will become more and more popular. Where can I buy these songs? Who will get paid? More information at <a href="http://thru-you.com/">http://thru-you.com/<span id="more-274"></span></a></p>
<p><object width="480" height="385" type="application/x-shockwave-flash" data="http://www.youtube.com/v/vch-Z9ccHTk&amp;hl=sv&amp;fs=1&amp;rel=0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/vch-Z9ccHTk&amp;hl=sv&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/remixing-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solving Project Euler Problems With Ioke</title>
		<link>http://www.peterkrantz.com/2009/project-euler-in-ioke/</link>
		<comments>http://www.peterkrantz.com/2009/project-euler-in-ioke/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 18:26:10 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Ioke]]></category>
		<category><![CDATA[euler]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.peterkrantz.com/?p=256</guid>
		<description><![CDATA[For those of you that have been following Ola Bini's work on <a href="http://ioke.org/">Ioke</a>, the dynamic language for the JVM, I am happy to report that the current release 0.1.1 is usable enough to solve <a href="http://projecteuler.net/">Project Euler</a> problems with. I wanted to learn more about Ioke and the best way to learn a new language is to use it on your own. So, here is some example Ioke code for some of the simpler Project Euler problems.]]></description>
			<content:encoded><![CDATA[<p>For those of you that have been following Ola Bini&#8217;s work on <a href="http://ioke.org/">Ioke</a>, the dynamic language for the JVM, I am happy to report that the current release 0.1.1 is usable enough to solve <a href="http://projecteuler.net/">Project Euler</a> problems with. I wanted to learn more about Ioke and the best way to learn a new language is to use it on your own. So, here is some example Ioke code for some of the simpler Project Euler problems.<span id="more-256"></span></p>
<h2>Problem 1</h2>
<p>If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.</p>
<p>Brute force version below.</p>
<pre class="brush: jscript; title: ; notranslate">
n = 1
sum = 0
while(n &lt; 1000,
      if(n % 3 == 0 or n % 5 == 0, sum += n)
      n++
)
sum println
</pre>
<p>Or, as a one-liner after a suggestion from Ola:</p>
<p>(1..999) select(n, n % 3 == 0 or n % 5 == 0) fold(+) println</p>
<h2>Problem 2</h2>
<p>Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, &#8230; Find the sum of all the even-valued terms in the sequence which do not exceed four million.</p>
<pre class="brush: plain; title: ; notranslate">
sum = 0
fibs = [0, 1]
current_fib = 0
while(current_fib &lt; 4000000,
    current_fib = fibs[0] + fibs[1]
    if(current_fib % 2 == 0, sum += current_fib)
    fibs[0] = fibs[1]
    fibs[1] = current_fib
)
sum println
</pre>
<h2>Problem 3</h2>
<p>The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143?</p>
<p>Using brute force for this one. Faster and more elegant would have been the Rho algorithm.</p>
<pre class="brush: jscript; title: ; notranslate">
start = 600851475143
num = start
factor = 2

while(factor * factor &lt;= num,
    if(num % factor == 0,
        factor println
        num = num / factor,
        factor++
    )
)

if(num != 1, num println)
</pre>
<h2>Problem 5</h2>
<p>2520 is the smallest number that can be divided by each of the numbers  from 1 to 10 without any remainder. What is the smallest number that is evenly divisible by all of the numbers from 1 to 20?</p>
<p>First, as the numbers 1 to 10 are factors in the numbers 11 to 20 we only need to check divisibility for the the latter. Starting of by setting up methods for greatest common divisor and least common multiple. Brute forcing this by looping over an incremented number will not work in the current version of Ioke (takes a couple of hours). Brute forcing it in Ruby took a couple of seconds.</p>
<pre class="brush: jscript; title: ; notranslate">
gcd = method(a, b,
    if(b == 0, a,
        gcd(b, a % b)
    )
)

lcm = method(a, b,
    (a / gcd(a, b)) * b
)

(11..20) inject(number, n, lcm(number, n)) println
</pre>
<h2>Problem 18</h2>
<p>Find the maximum total from top to bottom of the triangle below. This solution also works for problem 67 (a much bigger triangle).</p>
<p>By moving from bottom to top, calculating each cell&#8217;s maximum sum and replacing the value with it we&#8217;ll end up with the total in the first cell in the triangle.</p>
<pre class="brush: jscript; title: ; notranslate">
triangle = [
[75],
[95, 64],
[17, 47, 82],
[18, 35, 87, 10],
[20, 04, 82, 47, 65],
[19, 01, 23, 75, 03, 34],
[88, 02, 77, 73, 07, 63, 67],
[99, 65, 04, 28, 06, 16, 70, 92],
[41, 41, 26, 56, 83, 40, 80, 70, 33],
[41, 48, 72, 33, 47, 32, 37, 16, 94, 29],
[53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14],
[70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57],
[91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48],
[63, 66, 04, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31],
[04, 62, 98, 27, 23, 09, 70, 98, 73, 93, 38, 53, 60, 04, 23],
]

;; We replace cells from the bottom up by finding the max sum for each
;; position in the triangle.

current_row = triangle length - 2

while(current_row &gt; -1,
    pos = 0
    while(pos &lt; triangle[current_row] length,
        triangle[current_row][pos] = triangle[current_row][pos] + \
        ([triangle[current_row + 1][pos], triangle[current_row + 1][pos + 1]] sort)[1]
        pos++
    )

    current_row = current_row - 1
)

triangle[0][0] println
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.peterkrantz.com/2009/project-euler-in-ioke/feed/</wfw:commentRss>
		<slash:comments>4</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 @ 2012-02-04 10:38:20 -->
