<?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>Jeroens blog &#187; Refactoring</title>
	<atom:link href="http://blog.bn2vs.com/tag/refactoring/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bn2vs.com</link>
	<description>Blog of Jeroen De Dauw. The latest news on my open source work and interests.</description>
	<lastBuildDate>Fri, 23 Dec 2011 14:44:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Live Translate 1.2</title>
		<link>http://blog.bn2vs.com/2011/08/17/live-translate-1-2/</link>
		<comments>http://blog.bn2vs.com/2011/08/17/live-translate-1-2/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 15:58:15 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[GNU GPL]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Live Translate]]></category>
		<category><![CDATA[localStorage]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Refactoring]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=1182</guid>
		<description><![CDATA[A few days ago I released version 1.2 of the Live Translate MediaWiki extension, which is a major update bringing mainly under-the-hood improvements. I&#8217;ve worked on this for about 3 days in my free time, mainly to try out some JavaScript techniques I had not utilized yet. These are the changes for 1.2: Rewrote translation [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I released version 1.2 of the <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Live_Translate">Live Translate</a> MediaWiki extension, which is a major update bringing mainly under-the-hood improvements. I&#8217;ve worked on this for about 3 days in my free time, mainly to try out some JavaScript techniques I had not utilized yet.</p>
<p>These are the changes for 1.2:</p>
<ul>
<li>Rewrote translation control JavaScript to a <a href="http://www.jquery.com/">jQuery</a> plugin.</li>
<li>Added caching layer utilizing memory and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/LocalStorage">LocalStorage</a> when available to speed up local translations.</li>
<li>Added API module to query translation memories.</li>
<li>Added i18n alias file.</li>
<li>Added TMX admin user rights group.</li>
</ul>
<p>This post is about the first two.</p>
<p><strong>Some background</strong></p>
<p>The Live Translate (LT) extension allows live translation of content in wiki pages. For this it uses translation services such as Google Translate or Microsoft Translator. It also allows specifying your own translations for certain words within the wiki, which will then be left alone by the (remote) translation services. Such specifications of translations are called translation memories (TM), and are typically done in a special XML-based format called Translation Memory eXchange (TMX). LT also supports a more wiki-friendly format, custom written, which is DSV-based. Translation memories in both these formats can be embedded in wiki pages designated as TM or you can point to files hosted somewhere else. What it comes down to is that there are a set of local translations, which require special handling: local translation and be ignored by the remote translation service.</p>
<p>On every translation, the JavaScript needs to know which are the special  words that have a local translation, so translations for these can be  requested, and measures can be taken to not send them to the remote  translation services. This means doing a call to the wikis API to obtain  these words. In case of big translation memories, this requires several  calls to obtain all words, often resulting in a few seconds wait before  local translations are even requested.  If there are words that  have local translations on the page, a single request I send to another part of the API to obtain these translations for the language currently translated to. This usually bring the total time to complete local translation to somewhere between 2 and 5 seconds, after which, in version 1.1 and earlier, remote translation is kicked of.</p>
<p><strong>The idea</strong></p>
<p>Translation memories do not tend to change all the time, so it&#8217;s very inefficient to request all special words for every translation, and in somewhat lesser degree to always request the translations. The obvious answer to this is local caching, and since I wanted to play around with HTML5 localStorage a bit, this is exactly what I did. I also wanted to make use of JavaScript capabilities I was not really aware of back in last December, when writing Live Translate, so took this as an opportunity to also do some JavaScript refactoring. These being primarily prototypes, closure scopes and callbacks.</p>
<p><strong>The realization</strong></p>
<p>I made a whole bunch of client side changes (and some server side changes to the API), but the most significant ones are the creation of a translation memory object which takes care of all caching, and the rewrite of the translation control to a jQuery plugin.</p>
<p><span style="text-decoration: underline;">Translation memory object</span></p>
<p>In file <a href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/LiveTranslate/includes/ext.lt.tm.js?revision=94102&amp;view=markup">includes/ext.lt.tm.js</a>.</p>
<p>The translation memory object class is named simply &#8220;memory&#8221; and resides in the &#8220;lt&#8221; namespace. It acts as abstraction layer via which special words and translations of those special words can be accessed. It takes care of all API interaction and caching and exposes 2 simple functions, getSpecialWords and getTranslations, which are called by the translation control.</p>
<p>When the cache is empty, the memory will request a new hash via the API, which indicates the &#8220;version&#8221; of the translation memories on the server, and is later used for cache invalidation. It the proceeds fetching the requested special words or translations of special words and returns these via a callback passed to either getSpecialWords or getTranslations. Before this last step is done, the obtained data is cached in memory (the words and translations fields, one lines 26 and 30, respectively), and, when available, also in HTML5 localStorage. The in memory caching only yields advantages when doing multiple translations on a single page, which is rather rare, so is not that much of a win. The data stored in localStorage on the other hand, persists when navigating to other pages, even when closing the browser and re-opening it. localStorage really isn&#8217;t a cache on it&#8217;s own, but the lt.memory class uses it as one.</p>
<p>When the cache is not empty, a single request to the API is made to compare the earlier obtained hash and see if any changes to the TMs have been made, and thus if the cache should be invalidated. If changes have been made, the stored data is discarded and pretty much the same as when the cache was empty happens. If no changes have been made, locally stored data is used where possible. In case of the list of special words, no requests will have to be made at all, since all such words are already known. For the translations of these words it&#8217;s a little trickier, since the needed data here varies from page to page, and also depends on both the source and destination language. The lt.memory class checks which of the needed data if available, and in case there is a remainder of non-known translations, requests these. The newly obtained translations are then of course also added to the cache.</p>
<p><span style="text-decoration: underline;">jQuery plugin</span></p>
<p>In file <a href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/LiveTranslate/includes/jquery.liveTranslate.js?revision=94440&amp;view=markup">jquery.liveTranslate.js</a>.</p>
<p>This plugin contains a lot of already existing code from Live Translate 1.1, but is structured a lot better. It takes care of creating all the HTML needed for the control (while in 1.1, the HTML was provided, and only events where bound to it) in it&#8217;s setup function (line 147). The click event handler for the translation button calls the obatinAndInsetSpecialWords which uses the getSpecialWords function of the lt.memory class to obtain the words with local translations, and then inserts them, meaning that occurrences of these words are wrapped into notranslate spans, which then enables finding all words which should be translated locally, and makes them be ignored by the remote translation services. The click handler function passed doTranslations as completion callback to obatinAndInsetSpecialWords, which starts both local and remote translation in parallel. Local translation is done, as you can uncountably guess, by calling getTranslations function.</p>
<p><strong>The results</strong></p>
<p>Once the cache is warm (the user made a translation before) and valid (the TMs have not changed), local translation is practically instant (~0.4 seconds in my tests). Since remote translation now starts as soon as the special words are known, this can take as little as ~0.2 seconds, a huge difference compares to the earlier up to 5 seconds and possibly longer. All assuming you are using a modern browser of course <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Not to forget, the code is a lot better structures now. It should be a lot easier to track the order of execution, and it&#8217;s now possible (JavaScript wise) to place multiple translation controls onto a single page (which has little practical value, but indicates a better design).</p>
<p>And, maybe most importantly for me, I now have a much better grasp of the earlier mentioned prototypes, callbacks and closure scopes. Perhaps most of the time I spend on this version was figuring out how to properly use these and debugging out misconceptions I had about how they worked <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Live Translate</strong></p>
<ul>
<li><a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Live_Translate">Documentation</a></li>
<li><a href="https://code.google.com/p/livetranslate/downloads/list">Downloads</a></li>
<li>SVN trunk (<a href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/LiveTranslate/">viewvc</a>, <a href="http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/LiveTranslate/">svnroot</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2011/08/17/live-translate-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maps and Semantic Maps 1.0 released!</title>
		<link>http://blog.bn2vs.com/2011/07/20/maps-and-semantic-maps-1-0-released/</link>
		<comments>http://blog.bn2vs.com/2011/07/20/maps-and-semantic-maps-1-0-released/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 14:21:35 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[GNU GPL]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[KML]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[Open Layers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[SMW]]></category>
		<category><![CDATA[Yahoo! Maps]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=1075</guid>
		<description><![CDATA[It&#8217;s been a little over half a year since the last mayor release of the Maps and Semantic Maps extensions, but now 1.0, featuring many new features and internal improvements, is here! This is the most significant release since version 0.1, which quite coincidentally, was released exactly 2 years ago today Let&#8217;s have a look [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a little over half a year since the last mayor release of the <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Maps">Maps</a> and <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Semantic_Maps">Semantic Maps</a> extensions, but now 1.0, featuring many new features and internal improvements, is here! This is the most significant release since version 0.1, which quite coincidentally, <a href="http://blog.bn2vs.com/2009/07/20/maps-0-1-released/">was released exactly 2 years ago</a> today <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Let&#8217;s have a look at all the new awesomeness:</p>
<p><strong>Google Maps v3 support</strong></p>
<p>Maps has had some very basic support for <a href="http://mapping.referata.com/wiki/Google_Maps_v3">Google Maps v3</a> since version 0.5.3, back when the v3 API was still in beta. Right now the v3 API is out of beta, and the v2 one has been deprecated a few months back, so it was definitely time to further implement support for v2. This new version of Google Maps brings many improvements, focusing mostly on performance (loading speed of the maps, esp on mobile devices), but also several other cool things such as streetview support and easy adding of layers such as traffic. Since the v2 API has been deprecated it makes only sense that the default mapping service in Maps has changed from Google Maps v2 to Google Maps v3. It&#8217;s not really a new feature, but awesome nonetheless: you don&#8217;t need an API key for Google Maps v3! So when setting up Maps on a new wiki (using Google Maps), you won&#8217;t have to bother with any API key configuration any more, it&#8217;ll just work <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Support for the former is still there, so if you want to retain the exact same functionality as you have with v0.7 of Maps (or earlier), you can still get those maps using service=googlemaps2 (or format=googlemaps2 in SMW queries). One feature has been removed from the v2 implementation, which is the overlays control. This has to do with internal changes and performance optimizations discussed later on in this blog post. Be sure to check out the <a href="http://mapping.referata.com/wiki/Google_Maps_v3">Google Maps v3 Maps documentation</a> to discover all the cool features it supports.</p>
<p><a href="http://mapping.referata.com/wiki/Google_Maps_v3"><img class="alignnone size-full wp-image-1085" style="border: 1px solid black;" title="Google Maps v3 map showing a part of New York City" src="http://blog.bn2vs.com/wp-content/uploads/2011/04/maps0.8-gmaps3.png" alt="Google Maps v3 map showing a part of New York City" width="869" height="249" /></a></p>
<p><a href="http://mapping.referata.com/wiki/Google_Maps_v3"><img class="alignnone size-full wp-image-1086" style="border: 1px solid black;" title="Google Maps v3 map showing a part of New York City" src="http://blog.bn2vs.com/wp-content/uploads/2011/04/maps0.8-gmaps3-streetview.png" alt="Google Maps v3 map showing a part of New York City" width="868" height="249" /></a></p>
<p><a href="http://mapping.referata.com/wiki/Google_Maps_v3"><img class="alignnone size-full wp-image-1087" style="border: 1px solid black;" title="Google Maps v3 map showing a part of New York City using Google Streetview" src="http://blog.bn2vs.com/wp-content/uploads/2011/04/maps0.8-gmaps3-streetview1.png" alt="Google Maps v3 map showing a part of New York City using Google Streetview" width="868" height="247" /></a></p>
<p><strong>Improved form inputs</strong></p>
<p>Since it&#8217;s first release Semantic Maps has had <a href="http://mapping.referata.com/wiki/Help:Forms">form inputs</a> using Google Maps v2, Yahoo! Maps and OpenLayers. These inputs allow for entering geographical coordinates in Semantic <a href="http://www.mediawiki.org/wiki/Extension:Semantic_Forms">Forms forms</a> via a nice GUI with a map and an option to geocode an address. Nothing much has changed to these inputs since that initial release, until now. All input, including a new Google Maps v3 one, now have a &#8220;set location&#8221; button next to the coordinates box, which sets the map to that location, as was already the case with the geocoding button next to the address field. Some minor layout improvements have also been made, and hitting enter in the coordinates or geocoding fields will result in what you&#8217;d expect, rather then submitting the form. The <a href="http://mapping.referata.com/wiki/OpenLayers">OpenLayers</a> form input now also supports geocoding, making use of the new GeoNames API; more on that later.</p>
<p><a href="http://blog.bn2vs.com/wp-content/uploads/2011/07/googlemaps3fi2.png"><img class="alignnone size-full wp-image-1155" style="border: 1px solid black;" title="Google Maps v3 form input" src="http://blog.bn2vs.com/wp-content/uploads/2011/07/googlemaps3fi2.png" alt="Google Maps v3 form input" width="769" height="413" /></a></p>
<p><strong>Use of the MediaWiki resource loader</strong></p>
<p>MediaWiki 1.17 introduces a resource loader for JavaScript and CSS, which both Maps and Semantic Maps now make use of for all their JS and CSS resources. The <a href="http://www.mediawiki.org/wiki/Resource_loader">resource loader</a> does several neat things, the most important thing being delaying loading (and execution) of resources until after page load as well as combining and minifying them, which is very important for performance (page load time). This means that when you have over 9000 maps on your page, it&#8217;ll actually load before protons decay away, initially showing only gray boxes where the maps should be, and then one-by-one loading the maps into them. The resource loader does several other cool things, such as automatic right-to-left conversion of CSS and neat conversion of i18n messages from PHP to JS. Making use of the RL when available but at the same time retaining compatibility with pre-RL MediaWiki turned out to be a bit difficult and it would greatly complicate the code, so I decided to simply not do this. This obviously means you will need MediaWiki 1.17 in order to use (Semantic) Maps 0.8.x and later. Can&#8217;t use 1.17 yet for some reason? Don&#8217;t panic! I&#8217;ll continue to support the 0.7.x for a while longer, fixing bugs as they are found. Don&#8217;t expect any new features there though.</p>
<p><strong>Support for the new GeoNames API</strong></p>
<p>Maps has a new geocoding service: the new <a href="http://www.geonames.org/">GeoNames</a> API. It already had support for GeoNames, but it seems this service is now only offered as legacy support. (I&#8217;m not completely sure about this, if someone better familiar with the service knows, please poke me.) A big change with the new service is that you need a GeoNames API account to use it, which you can create <a href="http://www.geonames.org/login">here</a>. You then need to set your accounts user name in your LocalSettings.php file. Maps still has the &#8216;geonames&#8217; service as default for #geocode and OpenLayers maps. If you set the account name, the new service will be used, if not, Maps will fall back to the old one, so you can upgrade to 0.8 without geocoding suddenly failing because you don&#8217;t have a GeoNames account. For more info see the <a href="http://mapping.referata.com/wiki/GeoNames">GeoNames documentation for Maps</a>.</p>
<p><strong>JavaScript overhaul</strong></p>
<p>Similarly to the form inputs in Semantic Maps, all the JavaScript in both Maps and Semantic Maps has seen quite little attention since the initial releases of the extensions. Many additions have been made to add new functionality, but the structure has remained the same ever since. All of it has now been rewritten to <a href="http://www.jquery.com/">jQuery</a> plugins, making it a lot more orderly and easy to extend.</p>
<p><strong>More internal improvements</strong></p>
<p>Not only the JavaScript has seen significant improvements, but some  legacy code has also been thrown out of the PHP, making it a lot less  complex, more easy to track the code flow and definitely makes it easier  to add new functionality. This rewrite is very much a follow up to  internal improvements made in versions 0.6, 0.7 and 0.7.3, and completes  getting rid of some bad old architecture in the core Maps code. Future  releases will therefore most likely focus a lot more on simply adding  new features <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>And more&#8230;</strong></p>
<p>For a full list of changes, see the <a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_1.0_released">release announcement</a>. These do not list the huge amount of internationalization updates and small improvements made by a lot of contributors by reporting issues and providing patches. Thanks to all!</p>
<p><strong>How stable is it?</strong></p>
<p>A lot of internal changes have been made, but at the same time, most of  these have been made about 3 months back. Several wikis have been using  alpha versions of 1.0 ever since, and a release candidate was made a few  days back. Since there are no known issues at this point, I decided to  release 1.0. So yes, it should be pretty stable, although you might run  into minor issues with less frequently used components. If you do,  please report it, so they can be addressed quickly in a 1.0.1 release.</p>
<p><strong>Legacy support for 0.7.x<br />
</strong></p>
<p>As an extension developer and MediaWiki consultant, I&#8217;m quite aware  that  a lot of people are not in positions to update their MediaWiki to  1.17  just yet, preventing them from upgrading Maps and Semantic Maps.  For  this reason I decided way back when starting the development of  version  1.0 to continue limited support of version 0.7.x for a while.  Versions  0.7.4 to 0.7.7 have been released especially for this purpose,  and I&#8217;ll  continue to backport important fixes. Don&#8217;t expect any new  features to  show up for 0.7.x though.</p>
<p><strong>What&#8217;s next?</strong></p>
<p>Although the current set of functionality is pretty solid, there are  many other geographical features one can imagine. Features such as  marker clustering, static maps, route plotting (without the use of KML),  ect, have been on the wishlist practically since the inception of the  Maps extension. There is nothing really standing out for me enough to go  ahead and implement it in my free time. If any such feature is  important to you and you can fund it&#8217;s development, definitely contact  me. Of course I&#8217;ll continue to support the extension and make fixes  where needed.</p>
<p>The Semantic MediaWiki 1.6 release will be followed by a new <a href="http://www.mediawiki.org/wiki/Semantic_Bundle">Semantic Bundle</a>, which will include this new version of Maps and Semantic Maps.</p>
<p><strong>Downloads</strong></p>
<ul>
<li><a href="https://mwmaps.googlecode.com/files/Maps1.0.zip">Maps 1.0</a> (archive)</li>
<li><a href="http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/Maps/REL_1_0/">Maps 1.0</a> (svn tag)</li>
<li><a href="https://semanticmaps.googlecode.com/files/MapsAndSemanticMaps1.0.zip">Maps and Semantic Maps 1.0</a> (archive)</li>
<li><a href="http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/SemanticMaps/REL_1_0/">Semantic Maps 1.0</a> (svn tag)</li>
</ul>
<ul>
<li><a href="https://mwmaps.googlecode.com/files/Maps0.7.7.zip">Maps 0.7.7</a> (archive)</li>
<li><a href="http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/Maps/REL_0_7_7/">Maps 0.7.7</a> (svn tag)</li>
<li><a href="https://semanticmaps.googlecode.com/files/MapsAndSemanticMaps0.7.7.zip">Maps and Semantic Maps 0.7.7</a> (archive)</li>
<li><a href="http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/SemanticMaps/REL_0_7_7/">Semantic Maps 0.7.7</a> (svn tag)</li>
</ul>
<p><a href="http://www.referata.com">Referata</a>, which runs the <a href="http://mapping.referata.com/wiki/">documentation wiki</a> for the mapping extensions has upgraded to version 1.0, so you can have a look at and try out the new features yourself on the <a href="http://mapping.referata.com/wiki/Examples">example/demo pages</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2011/07/20/maps-and-semantic-maps-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantic MediaWiki update</title>
		<link>http://blog.bn2vs.com/2011/06/12/semantic-mediawiki-update-2/</link>
		<comments>http://blog.bn2vs.com/2011/06/12/semantic-mediawiki-update-2/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 21:01:11 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[GNU GPL]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Bundle]]></category>
		<category><![CDATA[Semantic Forms]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Semantic Watchlist]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[SMW]]></category>
		<category><![CDATA[SMWCon]]></category>
		<category><![CDATA[Validator]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=1127</guid>
		<description><![CDATA[It&#8217;s been a while since I posted an update on Semantic MediaWiki and extensions in general, and my work specifically. This is due to a pile of work that has been done on different components, each of which I&#8217;ll address at the point it&#8217;s released.  In this blog post I&#8217;ll provide you with a short [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I posted an update on <a href="http://semantic-mediawiki.org/">Semantic MediaWiki</a> and extensions in general, and my work specifically. This is due to a pile of work that has been done on different components, each of which I&#8217;ll address at the point it&#8217;s released.  In this blog post I&#8217;ll provide you with a short overview of what&#8221;s (been) going on in the SMW world.</p>
<p><a href="http://semantic-mediawiki.org/wiki/Semantic_MediaWiki_1.6"><strong>Semantic MediaWiki 1.6</strong></a></p>
<p><a href="http://semantic-mediawiki.org/"><img class="alignright size-full" title="Semantic MediaWiki (SMW) is a free, open-source extension to MediaWiki – the wiki software that powers Wikipedia – that lets you store and query data within the wiki's pages." src="http://blog.bn2vs.com/wp-content/uploads/2010/12/SMW_logo_260.png" alt="Semantic MediaWiki logo" width="165" height="165" /></a>Almost two years after the latest big release, SMW 1.5, 1.6 comes with many important internal changes focused on performance, stability and extensibility and several new features. Here you have an extract of the <a href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/SemanticMediaWiki/RELEASE-NOTES?view=co">release notes</a> as they currently are on SVN trunk:</p>
<blockquote><p>* Full support for synchronizing <a href="https://secure.wikimedia.org/wikipedia/en/wiki/RDF_Store">RDF stores</a> with SMW, and for answering #ask queries based on this data. The communication happens via SPARQL (1.1), and all <a href="https://secure.wikimedia.org/wikipedia/en/wiki/SPARQL">SPARQL</a>-capable stores should be supported.<br />
* The Type namespace has been abolished. Builtin types now are displayed by the special page Special:Types, and there are no &#8220;custom types&#8221; any longer. By default, the Type namespace is gone and existing pages in this namespace can no longer be accessed. This can be changed by setting $smwgHistoricTypeNamespace = true in LocalSettings.php before including SMW.<br />
* Changed the way in which units of measurement work. Type:Number now does not accept any units, and a new type &#8220;Quantity&#8221; is used for numbers with units. Units must be declared on the property page (not on the Type page as before), and only units that have a declared conversion factor are accepted.<br />
* The declaration of Type:Record properties has changed. Instead of a list of datatypes, the declaration now requires a list of properties that are to be used for the fields of the record. The declaration is still done with the property &#8220;has fields&#8221; as before.<br />
* Changed the way parameters in query printers are specified and handled using the Validator extension. This includes improvements to the parameter options in the Special:Ask GUI and better error reporting for ask queries.<br />
* Added UNIX-style DSV (Delimiter-separated values) result format.<br />
* Reworked internal data model, cleaning up and re-implementing SMWDataValue and all of its subclasses, and introducing new data item classes to handle data. The class SMWCompatibilityHelpers provides temporal help for extensions that still depend on the old format and APIs.<br />
* Fixed <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Postgresql">PostGre SQL</a> issues with the installation and upgrade code.<br />
* Added API module (smwinfo) via which statistics about the semantic data can be obtained.</p></blockquote>
<p>That&#8217;s a lot of <strong>awesomeness</strong> no? <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>As you can deduce from the above notes, this release is not fully backwards compatibility with SMW 1.5.x, so it&#8217;s possible you&#8217;ll need to do some migration work. The <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Validator">Validator extension</a> is also introduced as an extra dependency, but it will come bundled with SMW, so you&#8217;ll only need to care about this when getting the code from SVN.</p>
<p>SMW 1.6 has been in testing phase for 2 weeks or so now, and most bugs have been taken care of. With some luck, the new version will be released in a week or two <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Do feel free to try out the new version on non-critical wikis and report any issues you might find.</p>
<p>I already stated that SMW 1.6 is not fully feature compatible with SMW 1.5.x, but it&#8217;s also most definitely not compatible with earlier versions code-wise for extensions. This means that quite some SMW extensions released before the development on SMW 1.6 started won&#8217;t be compatible anymore, and will require you to also update them to their latest release when upgrading SMW to 1.6 or later. The ones that are in the <a href="http://www.mediawiki.org/wiki/Semantic_Bundle">Semantic Bundle</a> are all compatible already on SVN trunk, so you should be able to upgrade everything as soon as SMW 1.6 is released.</p>
<p><strong>Maps and Semantic Maps 1.0</strong></p>
<p>Another very significant release is the one of <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Maps">Maps</a> and <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Semantic_Maps">Semantic Maps</a>. I&#8217;ve been working on this version for quite a while; it was branched from version 0.7.3, and it&#8217;s the most significant (and <strong>awesome</strong>) release since the creation of both extensions, hence the bump from 0.7.x to 1.0. These are the changes:</p>
<blockquote><p>* Added full Google Maps v3 support and set it as the default mapping service.<br />
* Added new geocoder making use of the new GeoNames API.<br />
* Added support for the auto-documentation features for parser hooks introduced in Validator 0.4.3.<br />
* Added resizeable parameter to all mapping services except OSM.<br />
* Removed compatibility with pre MediaWiki 1.17.<br />
* Removed overlays parameter for Google Maps v2.<br />
* Usage of the Resource Loader for all scripts and stylesheets.<br />
* Rewrote all the map JavaScript to jQuery plugins.<br />
* Rewrote the way parameters are translated to JavaScript. Now one big PHP object is json_encoded.<br />
* Improved KML formatter.<br />
* Use of Google Maps geocoding service v3 instead of v2.<br />
* Fixed geocoding service overriding based on mapping service (merged in from Maps 0.7.5).<br />
* Fixed fatal error occurring when running maintenance/refreshLinks.php.<br />
* Improved default width of maps (merged in from Maps 0.7.5).<br />
* Improved map query parameter support in the Special:Ask GUI<br />
* Rewrote the map printers to use the SMQueryHandler class.<br />
* Added geocoding capability to the OpenLayers form input when having a GeoNames API account.<br />
* Added &#8216;update map&#8217; button to all form inputs.</p></blockquote>
<p>This release of the mapping extensions requires MediaWiki 1.17 or later and the new SMW 1.6, or later. For people not running an MW older then 1.17 (which currently is still not released, pretty much blocking this release of Maps and SM), the 0.7.x branch still remains supported for a while. It&#8217;s currently at 0.7.6, and I plan to release 0.7.7 soonish. Do note that Semantic Maps 0.7.x is NOT compatible with SMW 1.6 or later, it needs SMW 1.5.1 &#8211; 1.5.7 alpha.</p>
<p><strong>Semantic Forms 2.2</strong></p>
<p><a href="https://twitter.com/#!/wikiworks">Yaron Koren</a> has been working on the next big release of the most popular SMW extension, <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Semantic_Forms">Semantic Forms</a>. It brings compatibility with SMW 1.6, and adds several new features, including:</p>
<ul>
<li>#autoedit parser function that allows creating a link that, when clicked, automatically sets one or more fields in another page to certain values.</li>
<li>&#8220;Save and continue&#8221; button</li>
<li>Handling of boolean properties can now also be done using radiobuttons and dropdowns, instead of only checkboxes.</li>
</ul>
<p><strong>Semantic Watchlist</strong></p>
<p><a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Semantic_Watchlist">Semantic Watchlist</a> is a new SMW extension I&#8217;ve developed for <a href="http://www.ieee.org/">the IEEE</a> as <a href="http://wikiworks.com/">WikiWorks</a> consultant. Semantic Watchlist enables users to watch semantic properties by adding a new watchlist page that lists changes to these properties. Users can choose to follow one or more watchlist groups, which are administrator defined, and cover a set of properties and a set of pages (category, namespace, or SMW concept). Notification of changes to watched properties is also possible via email. I think it&#8217;s totally <strong>awesome</strong>.</p>
<p><a href="http://wikiworks.com/"><img class="alignnone size-full wp-image-1129" title="WikiWorks, a consulting company dedicated exclusively to MediaWiki implementation." src="http://blog.bn2vs.com/wp-content/uploads/2010/12/wikiworks-header-logo.png" alt="WikiWorks logo" /></a></p>
<p>It&#8217;s main features are:</p>
<ul>
<li>A watchlist page listing changes to properties watched by the user.</li>
<li>Per-user optional email notification per edit that changes properties.</li>
<li>Integration with user preferences to allow users to specify which watchlist groups they want to follow, and if they want to receive emails on changes.</li>
<li>Special:WatchListConditions as administration interface for watchlist groups.</li>
<li>API module to query property changes grouped by edit for a single user.</li>
<li>API modules to add, modify and delete the watchlist groups.</li>
</ul>
<p>It requires MediaWiki 1.17 or later and SMW 1.6 or later, and still has to see an initial release. It&#8217;s pretty much ready for it, and can be seen as beta right now.</p>
<p><a href="http://semantic-mediawiki.org/wiki/SMWCon"><strong>SMWCon</strong></a></p>
<p>The<a href="http://semantic-mediawiki.org/wiki/SMWCon_Spring_2011"> Spring 2011 SMWCon</a> was held on April 28-30, 2011 at the Raytheon BBN Technologies office in Arlington, Virginia, in the Washington, DC area, and it was a great success. You can read more about it in <a href="http://wikiworks.com/blog/2011/05/16/smwcon-in-dc-writeup/">Yarons writeup</a>.</p>
<p>The next SMWCon, <a href="http://semantic-mediawiki.org/wiki/SMWCon_Fall_2011">SMWCon Fall 2011</a>, will be held on September 21–23, 2011 in Berlin, Germany. Berlin &#8211; yay! It&#8217;s going to be <strong>awesome</strong>, and I&#8217;ll be attending, probably giving some talk about Maps and Semantic Maps, and possibly other extensions as well (Semantic Watchlist being a good candidate).</p>
<p>&nbsp;</p>
<p>Like I already noted, I&#8217;ll be posting more comprehensive (and official) release announcements for each extension when they are released <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;d also like to point out that this is definitely not everything that&#8217;s been going on in the SMW world. For example there are 2 Google Summer of Code students doing SMW related work, about which I might write later on, and many people are doing SMW projects that I&#8217;m simply not aware of or am not closely following.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2011/06/12/semantic-mediawiki-update-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Maps and Semantic Maps 0.7 released</title>
		<link>http://blog.bn2vs.com/2010/10/15/maps-and-semantic-maps-0-7-released/</link>
		<comments>http://blog.bn2vs.com/2010/10/15/maps-and-semantic-maps-0-7-released/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 22:49:31 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Layers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[SMW]]></category>
		<category><![CDATA[Wikimedia]]></category>
		<category><![CDATA[Yahoo! Maps]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=1009</guid>
		<description><![CDATA[Also check out the wiki version of this post. Version 0.7 of both the Maps and Semantic Maps extensions is now available for download. This release is made after 3 beta&#8217;s and a release candidate, so should be stable. The most notable new features in this release are tag extension support for all the Maps [...]]]></description>
			<content:encoded><![CDATA[<p><em>Also check out <a href="http://mapping.referata.com/wiki/Maps_and_Semanic_Maps_0.7_released">the wiki version</a> of this post.</em></p>
<p>Version 0.7 of both the <a title="Maps" href="http://mapping.referata.com/wiki/Maps">Maps</a> and <a title="Semantic Maps" href="http://mapping.referata.com/wiki/Semantic_Maps">Semantic Maps</a> extensions is now available for <a title="Download" href="http://mapping.referata.com/wiki/Download">download</a>. This release is made after 3 beta&#8217;s and a release candidate, so should be stable.</p>
<p>The most notable new features in this release are tag extension support for all the Maps <a title="Parser functions" href="http://mapping.referata.com/wiki/Parser_functions">parser functions</a>, more consistent error handling via <a title="Validator" href="http://mapping.referata.com/wiki/Validator">Validator</a> 0.4 and compatibility with the upcoming MediaWiki 1.17. Most changes  are internal improvements, but there are also several bug fixes and  minor new features.</p>
<p><em><a href="http://mapping.referata.com/wiki/Maps_and_Semanic_Maps_0.7_released"><img class="alignnone size-full wp-image-1012" title="Maps showing a Google Maps map with multiple=" src="../wp-content/uploads/2010/10/maps-google-map-tag-extension.png" alt="Maps showing a Google Maps map with multiple=" width="597" height="469" /></a></em></p>
<p><strong>Whats next?</strong></p>
<p>There only big new feature on the <a title="Roadmap" href="http://mapping.referata.com/wiki/Roadmap">roadmap</a> for 0.7.x is the infamous images-as-layers one. This feature was supported by the now long obsolete Semantic Layers extension (<a rel="nofollow" href="http://s89238293.onlinehome.us/w/index.php?title=Charon_doesn%27t_make_change">example</a>),  and has been requested by dozens of people since the first releases of  Maps. Next to fixing the bugs that show up, the focus will mainly be on  adding new functionality. Feel free to <a title="Talk:Roadmap (page does not exist)" href="http://mapping.referata.com/w/index.php?title=Talk:Roadmap&amp;action=edit&amp;redlink=1">propose new features</a>, or help out creating them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/10/15/maps-and-semantic-maps-0-7-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maps and Semantic Maps 0.7 beta 1</title>
		<link>http://blog.bn2vs.com/2010/10/06/maps-and-semantic-maps-0-7-beta-1/</link>
		<comments>http://blog.bn2vs.com/2010/10/06/maps-and-semantic-maps-0-7-beta-1/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 11:30:19 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Layers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Validator]]></category>
		<category><![CDATA[Yahoo! Maps]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=1003</guid>
		<description><![CDATA[An early beta of the next big release of the Maps and Semantic Maps extensions is now available for download. The most notable new features in this release are tag extension support for all the Maps parser functions, more consistent error handling via Validator 0.4 and compatibility with the upcoming MediaWiki 1.17. Most changes are [...]]]></description>
			<content:encoded><![CDATA[<p>An early beta of the next big release of the <a title="Maps" href="http://mapping.referata.com/wiki/Maps">Maps</a> and <a title="Semantic Maps" href="http://mapping.referata.com/wiki/Semantic_Maps">Semantic Maps</a> extensions is now available for <a rel="nofollow" href="http://semanticmaps.googlecode.com/files/MapsAndSemanticMaps0.7beta1.zip">download</a>. The most notable new features in this release are tag extension support for all the Maps <a title="Parser functions" href="http://mapping.referata.com/wiki/Parser_functions">parser functions</a>, more consistent error handling via <a title="Validator" href="http://mapping.referata.com/wiki/Validator">Validator</a> 0.4 and compatibility with the upcoming MediaWiki 1.17. Most changes  are internal improvements, but there are also several bug fixes and  minor new features.</p>
<p>Both extensions need some more polishing work before the 0.7  release, some testing needs to be done, and some small new features  might still be added. This is a list of changes so far:</p>
<h2>Maps</h2>
<h3>New features</h3>
<p>Tag support for these parser hooks (which previously only had parser function support):</p>
<ul>
<li> Coordinates</li>
<li> Distance</li>
<li> Finddestination</li>
<li> Geocode</li>
<li> Geodistance</li>
</ul>
<p><a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_0.7_beta_1_available"><img class="alignright" title="Semantic Maps reporting a fatal error in a map form input." src="../wp-content/uploads/2010/10/fatal-form-error.png" alt="Semantic Maps reporting a fatal error in a map form input." width="486" height="261" /></a></p>
<h3>Bug fixes</h3>
<ul>
<li> Fixed compatibility with the MW 1.17 resource loader.</li>
<li>Fixed i18n issue with the overlays control for Google Maps v2 maps.</li>
<li>Fixed default zoom level for Yahoo! Maps maps.</li>
<li>Increased the maximum decimals for DMS coordinates from 2 to 20.</li>
</ul>
<h3>Removed features</h3>
<ul>
<li> #geocodelong and #geocodelat parser functions &#8211; you can obtain their functionality using #geocode.</li>
</ul>
<h3>Internal improvements</h3>
<ul>
<li> Rewrote the geocoding functionality. It&#8217;s now an integral part  of the extension that can not be just pulled out, while the reverse is  true for individual geocoders. Geocoder interaction now uses the same  model as mapping service interaction.</li>
<li>Use of Validator 0.4, allowing for more robust and consistent error reporting.</li>
<li>Rewrote the parser hooks to use the ParserHook class provided by Validator.</li>
<li>Restructured the directory structure of the extension to better match it&#8217;s architecture.</li>
</ul>
<h2>Semantic Maps</h2>
<h3>New features</h3>
<ul>
<li> Added &#8216;locations&#8217; parameter to the map query printers that  allows for displaying static locations in addition to query results in  queries. It behaves the same as the locations parameter in  display_points.</li>
</ul>
<div id="attachment_1005" class="wp-caption alignnone" style="width: 470px"><a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_0.7_beta_1_available"><img class="size-full wp-image-1005 " title="Semantic Maps displaying the result of a query on an OpenLayers map together with a static point." src="http://blog.bn2vs.com/wp-content/uploads/2010/10/static-locations.png" alt="Semantic Maps displaying the result of a query on an OpenLayers map together with a static point." width="460" height="298" /></a><p class="wp-caption-text">Semantic Maps displaying the result of a query on an OpenLayers map together with a static point.</p></div>
<h3>Bug fixes</h3>
<ul>
<li> Fixed compatibility with the MW 1.17 resource loader.</li>
</ul>
<h3>Internal improvements</h3>
<ul>
<li> Use of Validator 0.4, allowing for more robust and consistent error reporting.</li>
<li>Restructured the directory structure of the extension to better match it&#8217;s architecture.</li>
</ul>
<h2>Notice</h2>
<p>Although the big features should work, this release will probably contain multiple issues. Please <a title="Help:Reporting bugs" href="http://mapping.referata.com/wiki/Help:Reporting_bugs">report</a> any you might find.</p>
<p>For the most current version of this announcement, see <a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_0.7_beta_1_available">the original on the mapping wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/10/06/maps-and-semantic-maps-0-7-beta-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>End of Google Summer of Code 2010</title>
		<link>http://blog.bn2vs.com/2010/08/20/end-of-google-summer-of-code-2010/</link>
		<comments>http://blog.bn2vs.com/2010/08/20/end-of-google-summer-of-code-2010/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 18:07:00 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Distribution]]></category>
		<category><![CDATA[Extension management]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[GSoC 2010]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=962</guid>
		<description><![CDATA[As Google Summer of Code (GSoC) 2010 has ended, I&#8217;m writing this blog post to outline what I&#8217;ve done during the coding period and what the results are. Thanks go to the Wikimedia Foundation and Google for providing the opportunity to do this project, Brion Vibber, who mentored me, and to all other people who [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://code.google.com/soc/">Google Summer of Code</a> (GSoC) 2010 has ended, I&#8217;m writing this blog post to outline what I&#8217;ve done during the coding period and what the results are. Thanks go to the <a href="http://wikimediafoundation.org/">Wikimedia Foundation</a> and Google for providing the opportunity to do this project, <a href="http://identi.ca/brionv">Brion Vibber</a>, who mentored me, and to all other people who helped me out, especially <a href="http://yaronkoren.com/">Yaron Koren</a> who I bugged the most <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="https://code.google.com/soc/"><img class="size-full wp-image-975 alignright" title="Google Summer of Code 2010" src="http://blog.bn2vs.com/wp-content/uploads/2010/08/2010_NoURL_300x267px.jpg" alt="Google Summer of Code 2010" width="300" height="267" /></a></p>
<p><strong>What I did during GSoC</strong></p>
<p>My <a href="http://www.mediawiki.org/wiki/User:Jeroen_De_Dauw/GSoC2010/Proposal">initial proposal</a> was to create an <strong>awesome</strong> extension management platform for <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a> that would allow for functionality similar to what you have in the WordPress admin panel. After doing some research I realized this would require significant effort in two areas: configuration and deployment. After looking at some already existing tools such as the <a href="http://www.mediawiki.org/wiki/Extension:Configure">Configure</a> extension and the Deployment Framework of Ontoprise, I decided to completely drop the configuration part and concentrate on the deployment work.</p>
<p>I started with porting the filesystem abstraction classes from WordPress, which are needed for doing any upgrade or installation operations that include changes to the codebase. (The current MediaWiki installer can do upgrades, but only to the database.) I created a new extension called <a href="http://www.mediawiki.org/wiki/Extension:Deployment">Deployment</a>, where I put in this code, and which was intended as a place to experiment with all the MediaWiki-installation side deployment stuff. As You obviously want this functionality to be part of MediaWiki itself, I wrote it with the idea of moving over the code to MediaWiki core once it was finished. It turned out that doing filesystem upgrades securely is not an easy task though, so after finishing the port, I quitted work on this as I decided to do other functionality first.</p>
<p>I then poked somewhat at the new MediaWiki installer, which is a complete rewrite of the current installer with a lot of new cool stuff and a totally more awesome interface. I made some minor imrpovements there, and split the Installer class, which held core installer functionality, into a more generic Installer class and a CoreInstaller. This allows for creating an ExtensionInstaller that uses the same base code, such as database, filesystem and LocalsSttings manipulation.</p>
<p>After this I started thinking about how to best structure a package repository for MediaWiki and extensions to get updates and new extensions from. I had a look at <a href="http://en.wikipedia.org/wiki/PEAR">PEAR</a> and <a href="http://en.wikipedia.org/wiki/CPAN">CPAN</a>, as well as <a href="http://en.wikipedia.org/wiki/WordPress">WordPress</a>, although I don&#8217;t learn a lot about the later. Apparently their repository code is not freely available <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  After discussion with <a href="http://identi.ca/brionv">Brion</a> I decided to just create the repository from scratch, and started working on another extension, titled <a href="http://www.mediawiki.org/wiki/Extension:Distribution">Distribution</a>, for this purpose. I merged it together with a rewritten version of the MWReleases extension written by Chad, which already had core update detection functionality.</p>
<p>After the Distribution API&#8217;s where working decently I started work on the Special pages in Distribution that would serve as the equivalent of the WordPress admin panel. As I put of the configuration work, and also the file-system manipulation for the initial version, this came down to simply listing currently installed software, update detection and browsing through extensions available in the repository.</p>
<p>On top of my GSoC project itself, I did quite some other MediaWiki work in &#8220;my free time&#8221;. I released 5 new versions of <a href="http://www.mediawiki.org/wiki/Extension:Maps">Maps</a> and <a href="http://www.mediawiki.org/wiki/Extension:Semantic_Maps">Semantic Maps</a>, starting with 0.6 and ending at 0.6.5. As I finally got core commit access, I also poked at some other things, such as Special:Version, which now will automatically put all extensions of unknown type in the &#8220;other&#8221; category, and will display this category as the last one. Plus misc minor improvements to a verity of extensions. This all amounts into a little over 550 commits to the MediaWiki SVN repository during the GSoC coding period.</p>
<p><strong>State of the code</strong></p>
<p>The Distribution extension has the infrastructure for storing and providing extension and core data via the <a href="http://www.mediawiki.org/wiki/API">MediaWiki API</a> basically ready for use. It adds 4 database tables to MediaWiki:</p>
<ul>
<li>distribution_units: This table stores non-version specific info of &#8216;release units&#8217; . Currently these unit&#8217;s are extensions only &#8211; the reason I went for a more general name is to allow for adding other things such as skins and content packages later on. The info here consist of a name, a URL, a description and a pointer to the &#8220;current version&#8221;.</li>
<li>distribution_unit_versions: Entries in this table contain info about a specific version of a &#8216;release unit&#8217;. The info here consists of a version number, release status (beta, rc, stable, deprecated, &#8230;), release data, authors, description and some installation data.</li>
<li>distribution_mwreleases: This table contains MediaWiki releases. It has been merged in from <a href="http://www.mediawiki.org/wiki/Extension:MWReleases">MWReleases</a>, so all credit for it goes to <a href="http://identi.ca/chadh">Chad</a>.</li>
<li>distribution_packages: This table is not in use yet, and needs some more work. The goal is to be able to install a &#8220;package&#8221; onto your wiki which can contain multiple &#8216;distribution units&#8217;. This would basically be the same as Semantic Bundle is doing now, but a lot easier to set up and maintain.</li>
</ul>
<p>The API modules added are:</p>
<ul>
<li>ApiQueryExtensions: Returns a list of extensions matching certain search criteria, which can include keywords, tags and authors. Only extensions with a version that has a release state acceptable for your installation are returned.</li>
<li>ApiMWReleases: Gets the current MediaWiki releases. Like this distribution_mwreleases database table, this has been merged in from MWReleases and all credits go to Chad.</li>
<li>ApiUpdates: This API module returns update information for the extensions you give it, and does the same for MediaWiki itself if a core version number is provided. The only info that&#8217;s returned is a version number for each unit or core, if there is an update. Otherwise nothing will be returned for that unit or core.</li>
</ul>
<p>To populate the database with existing extension info I wrote a maintenance script &#8220;getSvnMetadata&#8221;, which goes through a local checkout of the MediaWiki extensions directory and get&#8217;s the names from the extensions. I haven&#8217;t found a good way yet to also get other extension data though.</p>
<p>The Deployment extension contains an abstraction layer for repository interaction and several interfaces that use this. The abstraction layer allows for supporting different kinds of repositories. The only implementation it currently has is for interaction with repositories provided by the Distribution extension.  It&#8217;s also a convenient point to implement caching, as you probably don&#8217;t want to send the requests for available updates every time you view a page on the admin panel, and allows for changes to the format the repository uses without any effects in other parts of Deployment. The interfaces that are finished to some extend are:</p>
<ul>
<li>Special:Extensions: This page lists all installed extensions and allows you to filter on extension type. It&#8217;s based on the WordPress &#8220;plugins&#8221; page and is currently only an improved version of the extension list in Special:Version. It&#8217;s the only special page added by Deployment that can be viewed by non administrators. When logged in however, every extension has a list of links allowing you do various actions. The extension info is handled by a new class ExtensionInfo, which parses the info of individual extensions in $wgExtensionCredits, and provides a more convenient way to work with it. This allows for adding support for a new, better, extension info format later on. A planned feature for this special page is showing update notifications in each extension row.</li>
</ul>
<p><a href="http://www.mediawiki.org/wiki/Extension:Deployment"><img class="alignnone size-full wp-image-971" title="Special:Extensions shwoing a list of all extensions installed and some filter options" src="http://blog.bn2vs.com/wp-content/uploads/2010/08/special-extensions1.png" alt="Special:Extensions shwoing a list of all extensions installed and some filter options" width="778" height="271" /></a></p>
<ul>
<li>Special:Install: This page allows you to search through available extensions in the repository. The interface is based on the &#8220;plugin-install&#8221; page of WordPress and allows for searching extensions based on term, tag or author. After performing a search you get a list of matching extensions showing their name, version, authors, description, link to the documentation, and a link to download them. Later on this download link will be replaced by an &#8220;Install&#8221; one.</li>
</ul>
<p><a href="http://www.mediawiki.org/wiki/Extension:Deployment"><img class="alignnone size-full wp-image-972" title="Special:Install displaying controls to browse extensions in the repository" src="http://blog.bn2vs.com/wp-content/uploads/2010/08/special-install1.png" alt="Special:Install displaying controls to browse extensions in the repository" width="817" height="209" /></a></p>
<ul>
<li>Special:Update: This page will inform you of any updates to both core and extensions. It&#8217;s behaves basically identical the WordPress &#8220;update&#8221; page.</li>
</ul>
<p><a href="http://www.mediawiki.org/wiki/Extension:Deployment"><img class="alignnone size-full wp-image-973" title="Special:Update displaying available updates, in this case there are none" src="http://blog.bn2vs.com/wp-content/uploads/2010/08/special-update.png" alt="Special:Update displaying available updates, in this case there are none" width="658" height="214" /></a></p>
<p>The extension allows you to configure several aspects of the repository interaction:</p>
<ul>
<li>$wgRepositoryApiLocation: This might be an obvious one, but also a very important one, as it  allows you to use a repository other the the Wikimedia Foundation one on  mediawiki.org, which will be the default.</li>
<li>$wgRepositoryLocation: This is similar to the previous setting, but links to a web interface providing browsing capabilities through the repository, or at least some additional info.</li>
<li>$wgRepositoryPackageStates: This is a list of allow release states. By default these will only be &#8220;stable&#8221; and &#8220;beta&#8221;. Early adopters can also add &#8220;dev&#8221; and &#8220;alpha&#8221;, and there also is &#8220;rc&#8221; and &#8220;deprecated&#8221;.</li>
</ul>
<p><strong>What&#8217;s next?</strong></p>
<p>Although some very basic functionality is working, quite some work still needs to be done to get this to the WordPress-<strong>awesomeness</strong> level. Let&#8217;s first have a look at Distribution and then Deployment:</p>
<p>The most basic issue with Distribution currently is that there is no script yet that allows collecting all current extension data, which is needed for it to be of any use. I&#8217;m not sure how gathering current data can be properly automated, which is the main reason the script doesn&#8217;t exist yet. Any suggestions here are very welcome! After the initial version it should be possible for extension authors to edit their extensions data, and create new releases. For this we&#8217;ll need some new special pages. The data itself can then be used to populate the extension pages on mediawiki.org, and some new magic words such as &#8220;current MediaWiki version&#8221;, can automate a bunch of stuff. After these things new features can be added, such as the management of packages, and more detailed extension information, including things such as dependencies and compatibility info.</p>
<p>Deployment mainly needs interface work, and will need additions to support any new information provided by the Distirbution repository. A cool feature that could be added is supplying the repository with installation information (obviously optionally), which would allow the developers to get an idea of which versions of MediaWiki core and extensions people are using. After the whole MediaWiki deployment model has been revised and is up and running, it&#8217;s configuration can similarly be reinvented. The interfaces added by Deployment can then be adapted to allow contain extension configuration.</p>
<p><a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Deployment"><img class="alignnone size-full wp-image-981" title="Design for the initial MedaWiki deployment system" src="http://blog.bn2vs.com/wp-content/uploads/2010/08/MedaWiki-deployment-initial1.png" alt="Design for the initial MedaWiki deployment system" width="862" height="522" /></a></p>
<p><strong>GSoC 2011?</strong></p>
<p>This was my last GSoC as a student, as I no longer qualify, since I quitted my official studies. If I&#8217;m still doing MediaWiki development next year, which I guess is pretty likely, there is a lot of change I&#8217;ll be signing up as a mentor though <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  If you are interested in being a student in 2011, you can already put your name on the <a href="http://www.mediawiki.org/wiki/Summer_of_Code_2011">2011 GSoC page</a> <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Some useful links</strong></p>
<ul>
<li>My <a href="http://blog.bn2vs.com/tag/gsoc-2010/">blog posts</a> about this project</li>
<li>The <a href="http://www.mediawiki.org/wiki/Summer_of_Code_2010">Wikimedia 2010 GSoC page</a> with all GSoC projects</li>
<li><a href="http://www.mediawiki.org/wiki/Extension:Distribution">Distribution</a> and <a href="http://www.mediawiki.org/wiki/Extension:Deployment">Deployment</a> extensions</li>
<li>My <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/User:Jeroen_De_Dauw">MediaWiki.org user page</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/08/20/end-of-google-summer-of-code-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maps and Semantic Maps 0.6.5 released</title>
		<link>http://blog.bn2vs.com/2010/07/28/maps-and-semantic-maps-0-6-5-released/</link>
		<comments>http://blog.bn2vs.com/2010/07/28/maps-and-semantic-maps-0-6-5-released/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 16:01:41 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Layers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[SMW]]></category>
		<category><![CDATA[Wikimedia]]></category>
		<category><![CDATA[Yahoo! Maps]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=936</guid>
		<description><![CDATA[Maps and Semantic Maps 0.6.5 are now available for download. This release contains mainly internal changes to improve code modularity and fix some security concerns. Several bugs have been fixed as well, and a new hook has been added to Semantic Maps. This hook will get you the map format as default one for queries [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Maps" href="http://mapping.referata.com/wiki/Maps">Maps</a> and <a title="Semantic Maps" href="http://mapping.referata.com/wiki/Semantic_Maps">Semantic Maps</a> 0.6.5 are now available for <a title="Help:Download" href="http://mapping.referata.com/wiki/Help:Download">download</a>.  This release contains mainly internal changes to improve code  modularity and fix some security concerns. Several bugs have been fixed  as well, and a new hook has been added to Semantic Maps. This hook will get you the map format as default one for queries where you only ask for coordinates when using <a href="http://semantic-mediawiki.org/wiki/Semantic_MediaWiki">SMW</a> 1.5.2 or above. For a full list  of changes since 0.6.4 see <a title="Maps/Version history" href="http://mapping.referata.com/wiki/Maps/Version_history#Maps_0.6.5">changes to Maps</a> and <a title="Semantic Maps/Version history" href="http://mapping.referata.com/wiki/Semantic_Maps/Version_history#Semantic_Maps_0.6.5">changes to SM</a>. Everyone running 0.6.2 or older is advised to upgrade as soon as possible. ï»¿</p>
<p>This release is notable for it being the first one in which I&#8217;m happy with the code-base as a whole. It took me a year to get here, but now I think the way the mapping extensions work is good and solid. This means you can now extend Maps and not be afraid the code will be incompatible in a few weeks due to changes. This also means that I&#8217;ll be focusing more on actual functionality rather then refactoring in future releases. I&#8217;ll be progressively building <a href="http://mapping.referata.com/wiki/Programmer%27s_guide_to_mapping">a little guide</a> that explains how the extensions work from a developers perspective and how to extend them.</p>
<p>I might release another minor update in the 0.6.x series if any significant issues are found in 0.6.5. Further plans are finishing up a bunch of changes I&#8217;ve started to make in <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:Validator">Validator</a>, which I&#8217;ll probably release as 0.4 then, and to start working on Maps and Semantic Maps 0.7, which would aim at adding new features and improving existing ones. A likely new feature I&#8217;m particularly looking forward to implementing is several tag extensions that do the equivalent of the current parser functions added by Maps. The timetable for all this depends a lot on which other things I get cough up in (I&#8217;ll probably continue putting effort into the <a href="https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Deployment">deployment stuff</a> for <a href="http://blog.bn2vs.com/tag/gsoc">my GSoC project</a>) and what kind of funding will be available.</p>
<p><strong>Downloads:</strong></p>
<ul>
<li>Maps 0.6.5 [<a href="http://mwmaps.googlecode.com/files/Maps0.6.5.zip">zip</a> - <a href="http://mwmaps.googlecode.com/files/Maps0.6.5.7z">7z</a>]</li>
<li>Maps and Semantic Maps 0.6.5 [<a href="http://semanticmaps.googlecode.com/files/MapsAndSemanticMaps0.6.5.zip">zip</a> - <a href="http://semanticmaps.googlecode.com/files/MapsAndSemanticMaps0.6.5.7z">7z</a>]</li>
</ul>
<p>You can also view the <a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_0.6.5_released">release announcement at the documentation wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/07/28/maps-and-semantic-maps-0-6-5-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MediaWiki Deployment: Modifying the new installer</title>
		<link>http://blog.bn2vs.com/2010/07/22/mediawiki-deployment-modifying-the-new-installer/</link>
		<comments>http://blog.bn2vs.com/2010/07/22/mediawiki-deployment-modifying-the-new-installer/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 17:09:00 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Extension management]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[GSoC 2010]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=925</guid>
		<description><![CDATA[I got a new diagram!!!1!11!! It&#8217;s based on my previous one, but slightly more elaborate, and a lot less messy, as I now used Dia to create it Legend: Striped lines: Existing components where code will be copied from, or based upon. Full lines: Components of the complete deployment model. Thick full lines: Core components [...]]]></description>
			<content:encoded><![CDATA[<p>I got a new diagram!!!1!11!! It&#8217;s based on my <a href="http://blog.bn2vs.com/wp-content/uploads/2010/07/800px-Mwdeployment.jpg">previous one</a>, but slightly more elaborate, and a lot less messy, as I now used <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Dia_%28software%29">Dia</a> to create it <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.bn2vs.com/wp-content/uploads/2010/07/MwDeployment.png"><img class="alignnone size-large wp-image-926" title="MediaWiki deployment diagram" src="http://blog.bn2vs.com/wp-content/uploads/2010/07/MwDeployment-1024x389.png" alt="MediaWiki deployment diagram" width="1024" height="389" /></a></p>
<p><strong>Legend</strong>:</p>
<ul>
<li>Striped lines: Existing components where code will be copied from, or based upon.</li>
<li>Full lines: Components of the complete deployment model.</li>
<li>Thick full lines: Core components (of the deployment model) that I definitely want to have completed during <a href="http://blog.bn2vs.com/tag/gsoc/">GSoC</a>.</li>
</ul>
<p>Since my <a href="http://blog.bn2vs.com/2010/07/15/mediawiki-deployment/">previous post about my Google Summer of Code project</a> I have been poking at the new MediaWiki installer to see what&#8217;s there already, how it is there, and how I can integrate it with the above deployment model. I&#8217;ve made a bunch of style and documentation improvements while going over the code, and renamed some things to make more sense. And I had Tim Starling clean up a bad svn commit I made <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>So what I&#8217;m doing now is splitting the current &#8216;Installer&#8217; class, which is part of the new installer, into 2: Installer and CoreInstaller. Installer will hold general installer functionality and be part of the whole deployment model, while CoreInstaller will hold installer functionality specific to core, and will be part of the new installer. After that I can create an initial version of CoreInstallers counterpart: ExtensionInstaller.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/07/22/mediawiki-deployment-modifying-the-new-installer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maps and Semantic Maps 0.6.3 released</title>
		<link>http://blog.bn2vs.com/2010/06/20/maps-and-semantic-maps-0-6-3-released/</link>
		<comments>http://blog.bn2vs.com/2010/06/20/maps-and-semantic-maps-0-6-3-released/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 15:35:11 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Layers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Bundle]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[SMW]]></category>
		<category><![CDATA[Wikimedia]]></category>
		<category><![CDATA[Yahoo! Maps]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=863</guid>
		<description><![CDATA[Maps and Semantic Maps 0.6.3 are now available for download. This release is one aimed to improve stability and addresses a number of bugs that where present in 0.6.x. Some notable fixed issues are a failure of parsing any coordinates containing a degree symbol that surfaced in 0.6.2, and the failing of non-Google Maps form [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Maps" href="http://mapping.referata.com/wiki/Maps">Maps</a> and <a title="Semantic Maps" href="http://mapping.referata.com/wiki/Semantic_Maps">Semantic Maps</a> 0.6.3 are now available for <a title="Help:Download" href="http://mapping.referata.com/wiki/Help:Download">download</a>. This release is one aimed to improve  stability and addresses a number of bugs that where present in 0.6.x.  Some notable fixed issues are a failure of parsing any coordinates  containing a degree symbol that surfaced in 0.6.2, and the failing of  non-Google Maps form inputs. Some internal rewriting has also been done,  which was needed to address some of these bugs, and will enable future  awesomeness increase. The included OpenLayers library has also been  upgraded to 2.9.1. (<a title="Maps/Version history" href="http://mapping.referata.com/wiki/Maps/Version_history#Maps_0.6.2">changes to Maps</a>, <a title="Semantic Maps/Version history" href="http://mapping.referata.com/wiki/Semantic_Maps/Version_history#Semantic_Maps_0.6.2">changes to SM</a>). People  running any 0.6.x are advised to upgrade. Especially people using  Semantic Maps in conjunction with <a title="Semantic  Forms" href="http://mapping.referata.com/wiki/Semantic_Forms">Semantic Forms</a>, as both 0.6 and 0.6.1 contain undesired  behaviour in the forms.</p>
<p>A new release of <a href="http://www.mediawiki.org/wiki/Semantic_Bundle">Semantic Bundle</a>, which will include these versions of the mapping extensions, is likely to soon be released as well <img src='http://blog.bn2vs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.bn2vs.com/wp-content/uploads/2010/06/semantic-maps-0.6.3-dependencies.gif"><img class="size-full wp-image-864 alignnone" title="Semantic Maps 0.6.3   dependencies" src="http://blog.bn2vs.com/wp-content/uploads/2010/06/semantic-maps-0.6.3-dependencies.gif" alt="Semantic Maps 0.6.3 dependencies" width="576" height="190" /></a></p>
<p><strong>Downloads</strong></p>
<ul>
<li><a href="http://mwmaps.googlecode.com/files/Maps0.6.3.zip">Maps 0.6.3</a> (<a href="http://mwmaps.googlecode.com/files/Maps0.6.3.7z">7z</a>)</li>
<li><a href="http://semanticmaps.googlecode.com/files/MapsAndSemanticMaps0.6.3.zip">Maps and Semantic Maps 0.6.3</a> (<a href="http://semanticmaps.googlecode.com/files/MapsAndSemanticMaps0.6.3.7z">7z</a>)</li>
</ul>
<p><strong>See also</strong></p>
<ul>
<li><a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_0.6.3_released">The release notes on the documentation wiki</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/06/20/maps-and-semantic-maps-0-6-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maps and Semantic Maps 0.6.2 released</title>
		<link>http://blog.bn2vs.com/2010/06/07/maps-and-semantic-maps-0-6-2-released/</link>
		<comments>http://blog.bn2vs.com/2010/06/07/maps-and-semantic-maps-0-6-2-released/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 04:54:00 +0000</pubDate>
		<dc:creator>Jeroen De Dauw</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Geocoding]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Open Layers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planet Wikimedia]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Semantic Maps]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[SMW]]></category>
		<category><![CDATA[Wikimedia]]></category>
		<category><![CDATA[Yahoo! Maps]]></category>

		<guid isPermaLink="false">http://blog.bn2vs.com/?p=849</guid>
		<description><![CDATA[Maps and Semantic Maps 0.6.2 are now available for download. This release contains improvements to parameter handling, case insensitivity has been re-added, and using default parameters together with named ones will work more intuitive. In Maps the handling of distances has also been considerably improved: there is a new #distance parser function, additional distance related [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Maps" href="http://mapping.referata.com/wiki/Maps">Maps</a> and <a title="Semantic Maps" href="http://mapping.referata.com/wiki/Semantic_Maps">Semantic Maps</a> 0.6.2 are now available for <a title="Help:Download" href="http://mapping.referata.com/wiki/Help:Download">download</a>.</p>
<p><a href="http://mapping.referata.com/"><img class="size-full wp-image-850 alignnone" title="Maps extension for MediaWiki" src="http://blog.bn2vs.com/wp-content/uploads/2010/06/maps.jpg" alt="Maps extension for MediaWiki" width="601" height="124" /></a></p>
<p>This release contains improvements  to parameter handling, case insensitivity has been re-added, and using  default parameters together with named ones will work more intuitive. In  Maps the handling of distances has also been considerably improved:  there is a new #<a title="Distance (page does not exist)" href="http://mapping.referata.com/w/index.php?title=Distance&amp;action=edit&amp;redlink=1">distance</a> parser  function, additional distance related parameters in #<a title="Geodistance" href="http://mapping.referata.com/wiki/Geodistance">geodistance</a>,  and new settings that allow you to customize the default distance  behaviour. In Semantic Maps a rather important bugfix has been made  which solves a problem with editing articles with forms that contain  maps that arose in 0.6.1. (<a title="Maps/Version history" href="http://mapping.referata.com/wiki/Maps/Version_history#Maps_0.6.2">changes to Maps</a>, <a title="Semantic Maps/Version history" href="http://mapping.referata.com/wiki/Semantic_Maps/Version_history#Semantic_Maps_0.6.2">changes to SM</a>). People  running 0.6 and 0.6.1 are advised to upgrade. Especially people using  Semantic Maps in conjunction with <a title="Semantic  Forms" href="http://mapping.referata.com/wiki/Semantic_Forms">Semantic Forms</a>, as both 0.6 and 0.6.1 contain undesired  behaviour in the forms.</p>
<p><a href="http://mapping.referata.com/wiki/Maps_and_Semantic_Maps_0.6.2_released">Read this announcement on the documentation wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bn2vs.com/2010/06/07/maps-and-semantic-maps-0-6-2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

