User:Jeroen De Dauw

   

My name is Jeroen De Dauw. In my professional life I am a Software Craftsman with a passion for effective value delivery. Besides being the software architect at Wikimedia Deutschland I am an entrepreneur, technical director of Professional.Wiki and occasional consultant. You might know me from my talks and blog posts on software design and clean code, or from my involvement in the open source world and with projects such as Wikidata and Semantic MediaWiki.

My MediaWiki career
I got involved with MediaWiki in 2009 when I was accepted into the Google Summer of Code program. Since then I have done MediaWiki related work for companies around the globe, created over a dozen MediaWiki extensions and spoke at many conferences. You can contact me for MediaWiki consulting or advise via Professional.Wiki.

Extensions that I (co-)maintain:


 * Semantic MediaWiki
 * Maps
 * Semantic Result Formats
 * SubPageList
 * Push
 * Validator
 * ParserHooks
 * Semantic Watchlist
 * GitHub

Other extensions that I created or contributed to:

Nuke · Education Program · Contest · Live Translate · Spark · Survey · Wikibase Repository · Wikibase Client · WikibaseLib · Wikibase Query · Gitweb · Upload Wizard · Semantic Compound Queries · Approved Revs · Semantic Forms · Semantic Internal Objects · Semantic Drilldown · RSS · LocalisationUpdate · SyntaxHighlight GeSHi · DateDiff · AmazonPartnerLink · SlimboxThumbs · GraphViz · Semantic Forms Inputs · FolkTagCloud · Arrays · Semantic Graph · Widgets · SphinxSearch · RDFIO · Wiki Object Model · Liquid Threads · Translate · Flagged Revs · SemanticSignup · Semantic Tasks · Semantic Image Annotator · Semantic Extra Special Properties · Include WP · Create Page · Did You Know · UK geocoding for Maps · SMWAutoRefresh

2009
In February 2009, I attended FOSDEM 2009, where I followed, amongst various others, a presentation by Brion Vibber about MediaWiki, that I found quite interesting. I was also present at the closing session of FOSDEM, which was about Google Summer of Code (GSoC) 2009. At this time I did not plan to do anything with what I've learned then. After a few weeks though, I came to the conclusion I could just as well give participating in GSoC a try, and went over the list of mentoring organizations. Since Wikimedia Foundation had a couple of nice PHP projects, and I was interested in it anyway, I had a good look at the proposed project list. A proposal to fix up Semantic Layers, a mapping extension using OpenLayers with Semantic Capabilities, caught my attention. I contacted the person who posted this idea (which was Yaron), and got some enthusiastic feedback. I got accepted for this project, which was the start of my first developer involvement in MediaWiki.

In May and June, the first 2 'coding period' months of GSoC, I familiarized myself with the involved technologies, including MediaWiki, Semantic MediaWiki (SMW), Semantic Layers (SL) and Semantic Google Maps (SGM). After starting off trying to modify and fix up SL, me and Yaron decided it was better to start from scratch, and build a general mapping extension that supported both Google Maps and OpenLayers. The name for this new extension would be Semantic Maps (SM), which I developed further during that period.

In July and August, the second half of GSoC, I decided to create a separate 'Maps' extension, on top of Semantic Maps, instead of only SM, after an awesome suggestion by Sergey Chernyshev. In this period, I completed the geocoding functionality and the display_point, result format and form input support for Google Maps, Yahoo! Maps and OpenLayers. This allowed people to easily display maps with both coordinates and addresses, then aggregate and filter this information semantically, and be able to insert new coordinates or edit them easily via form interfaces. In this period I released the first version of both Maps and Semantic Maps, making the SGM, Google Geocoder and SL extensions obsolete. Some other versions also followed. Version 0.3 was released just before the code submission deadline of GSoC, and was the last version included in the submission.

September and October where pretty occupied for me, so I had little time to do MW work. I got aware of an effort to get mapping onto Wikipedia, by using OpenLayers and OpenStreetMap, and proposed Maps for this purpose, since it would offer many advantages over extensions orientated to specific mapping services. I was only able to release version 0.3.4 of Maps and Semantic Maps, which nevertheless included a lot of important refactoring with as goal to make a real general mapping platform of Maps. Soon after this release, I gave a presentation titled Semantic Mapping with MediaWiki in Gent, demonstrating the usage of both Maps and SM. I also create and committed an aliasing system for semantic result formats in SMW, which is now used by Semantic Maps.

In November I released version 0.4 of Maps and SM, a very important milestone. Some big new features such as a function to display maps without any markers, smart geocoding and an OSM service, where added. The 'under the hood' changes where even more important, since they where the last steps in making Maps and Semantic Maps completely modular, for both mapping services and functionality. For a complete list of changes to Maps in 0.4, see the log. On 7 and 8 November I attended Semantic MediaWiki Camp (SMWC) 2009 in Germany, where I gave a presentation about the usage of Maps and Semantic Maps. I attended most talks, including several by Yaron (who I finally got to meet), Markus and Denny, the organizes of the event. In the middle of the month I released 2 minor updates to Maps and Semantic Maps with as main goal to increase stability and address some important issues. I also released a screencast demonstrating how to use the display_map parser function of Maps.

In December I released a new extension, Validator, which facilitates different aspects of parameters handling for other extensions. On the same day I also released Maps and Semantic Maps 0.5, both using Validator to do part of their parameter validation, defaulting and error reporting. These releases also included a lot of important refactoring and some important new features, such as static map support and support for Yarons new Special:Ask page's parameter handling to the query printers. Together with writing Maps 0.5, I also did a much needed update of the developer docs, and created a new screencast covering the usage of the display_point parser function. Later in the month, I released Validator 0.2, which mainly focused on list types and output formats. Again, Maps and SM has a release using this new version on the same day. These 0.5.1 releases included several minor new features and 2 small bug fixes, as well as some code clean-up of the static map support.

2010
In January I released a minor new version of Maps and Semantic Maps, with version number 0.5.2. This update mainly focuses on bug fixes and stability, but introduce some new features and code improvements.

In the beginning of February I gave a talk titled "Semantic Mapping with Mediawiki" at the Zebrastraat in Gent, Belgium, introducing the audience to Mediawiki and Semantic Mediawiki, followed by a walk through of how Maps and Semantic Maps can be used. I also released Maps and Semantic Maps 0.5.3, which like the previous update mainly focuses on bug fixes and stability. Later this month I started working for Wikimedia Foundation on the Storyboard extension and on Semantic MediaWiki for the Karlsruhe Institute of Technology.

In March, I released Maps and Semantic Maps 0.5.4 and 0.5.5, as well as Validator 0.2.2. I also created a small extension to Maps titled "UK geocoding for Maps" for Neill Mitchell at Prescient Software Ltd. Furthermore I created two command line scripts to import and parse all pages from a super category on a remote wiki as my first project for WikiWorks, which I later upgraded to an extension with GUI.

In April I attended the 2010 MediaWiki developer conference in Berlin. Although I did not publish any new releases, I did a lot of work on Storyboard, Validator 0.3, Maps 0.6 and Semantic Maps 0.6 and Semantic MediaWiki. In this month I also was accepted for Google Summer of Code 2010, to create an awesome extension management platform for MediaWiki.

In May I released Maps and Semantic Maps 0.6 together with Validator 0.3. I also helped with the Semantic MediaWiki 1.5.1 release and entered the top 5 all time SMW comitters. And even more awesome, I released a new extension, awesomeness, making your wiki more awesome, seriously! Near the end of the month I started working on my GSoC project.

In June I entered the top 20 all time MediaWiki comitters and became an official WikiWorks consultant. I released Maps and Semantic Maps 0.6.1, 0.6.2 and 0.6.3, as well as Validator 0.3.1, 0.3.2 and 0.3.3. I then focused on increasing the stability of the 0.6.x branch of the mapping extensions and my Google Summer of Code project.

In July I released Maps and Semantic Maps 0.6.4 and 0.6.5 as well as Validator 0.3.4 and 0.3.5. I also attended Wikimania 2010, where I gave 2 talks. In this month I spend most of my time working on MediaWiki deployment.

In August I successfully finished my GSoC project and released Maps and Semantic Maps 0.6.6. I also helped releasing SMW 1.5.2.

In September I attended SMWCon fall 2010 in Amsterdam where I gave a presentation about the mapping extensions.

In October I released Validator 0.4, rewritten from ground up to be more extendible and provide the features needed for Maps and Semantic Maps. This went together with the 0.7 release of these extensions, which added tag extension support to all the parser hooks of Maps and better validation and error handling via the new Validator. I released Maps and Semantic Maps 0.7.1 and 0.7.2, which as big new feature the long awaited images-as-layers functionality for OpenLayers a week later. I also added strict comparators to SMW and rewrote the comparator handling. Not to forget, I entered the top 10 of all time MediaWiki comitters :)

In November I released Semantic MediaWiki 1.5.3 as well as a new version of Maps and Semantic Maps (0.7.3) featuring KML export.

In December I created two new extensions for Texas Instruments as WikiWorks consultant. The first one, Push, allows pushing page content to other wikis. This is particular useful for combinations between private and public wikis. The second one, Live Translate uses the Google Translate API to live translate wiki pages, and also allows for defining a dictionary of special words for which you provide translations, which will then be ignored by Google Translate. I also released Semantic MediaWiki 1.5.4, which fixes a number of issues caused by changes earlier in the 1.5.x series. At the end of the month I created the SubPageList extension and added "describe", a parser hook to auto-document parser hooks, to Validator while being at 27c3 in Berlin.

2011
In January I released important updates for Push and Live Translate, and created new releases for Maps, Semantic Maps, Validator and SubPageList. I also made several bugfixes to Semantic MediaWiki and other extensions. During the second part of the month I mainly focused on setting up some wikis to get a better grip on actual usage of MediaWiki and extensions. Most notable here was using External Data and Semantic Internal Objects to aggregate data from other wikis onto hackerspaces.be.

In February I found a one-line fix to a year old query-refresh issue in SMW and released SMW 1.5.6. I also released SRF 1.5.3 with a new tagcloud format written by me, some improvements I made to the gallery format and other changes by Yaron. I released a small new extension titled IncludeWP that enables you to include cleaned-up content from other MediaWiki wikis into articles on your wiki.

In March I did most of the work for Maps and Semantic Maps 0.8, including a full rewrite of all JavaScript and some important refactoring of PHP as well. I also wrote up the basis for the PAMELA extension.

In April I created the Ratings extension and did work on Semantic MediaWiki 1.6.

In May I created the Semantic Watchlist and Spark extensions and did work on Semantic MediaWiki 1.6. I also attended the Berlin Hackathon 2011 and did some work for the German Wikimedia chapter for their editor satisfaction survey. Push 1.0 and Live Translate 1.0 where both released in this month as well.

In June I did work on Semantic MediaWiki 1.6 and made various improvements and additions to Semantic Result Formats. I added support for multiple translation services to Live Translate, with an implementation of Microsoft Translate, and released version 1.1 of the extension.

In July I resumed doing work for the WMF, starting with modifying the UploadWizard to make it more suitable for the WikiLovesMonuments project. I also implemented generic KML/KMZ support for Google Maps v3 in the Maps extension and created a mapsdoc parser hook to auto-generate mapping service specific parameter documentation (making use of Validator). Near the end of July I released Semantic MediaWiki 1.6, Maps and Semantic Maps 1.0, Semantic Watchlist 0.1, Semantic result Formats 1.6, Validator 0.4.9, SubPageList and created a new version of Semantic Bundle.

In August I improved the Live Translate extension by adding local caching capabilities to it and made Semantic Signup work with recent versions of MediaWiki and Semantic MediaWiki. I also started work in Survey, a new MediaWiki extension that allows administrators to create simple surveys that wiki users then get. Through the month I continued to support the WikiLovesMonuments modifications for the Upload Wizard.

In September I released the first version of Survey and also released Maps version 1.0.3. And I attended SMWCon 2011 Fall, which was in Berlin, at which I gave several presentations, one together with Yaron Koren and one with Markus Krötzsch.

In October I created the Contest extension for the Wikimedia Foundations Weekend of Code project. Not to forget, I entered the top 5 of all time MediaWiki comitters :)

In November I created the Semantic Image Input extension and added an image preview to the Semantic Forms upload field. I also did work on Semantic Result Formats And Semantic MediaWiki to have general aggregateable result printers. Near the end of the month I started work on the Reviews extension.

In December I started work on the Education Program extension for the Global Education Program.

2012
In January I attended the San Francisco hackaton where I did some hacking on the mobile Wikipedia application and visited the Wikimedia office to discuss my ongoing work on the Education Program extension with the people from the Global Education Program.

In February I mainly worked on the Education Program extension but also made the DBDataObject class ready for core usage. On FOSDEM I gave a lightning talk about Semantic MediaWiki (video, slides).

In March I moved to Berlin for at least a year to work on the awesome WikiData project for Wikimedia Germany.

In April I attended SMWCon Spring 2012 in Carlsbad, California where I gave some talks, including one on Wikidata.

In May I did work on Validator 0.5 and SMW 1.8.

In June I attended the Berlin Hackathon 2012 and finalized the Education Program extension, which got deployed on the English Wikipedia later this month. I also did some work on Maps 2.0.

In July I attended Wikimania 2012.

In August I created the diff extension and the Gitweb extension.

2013
In January I released version 0.4 of the Diff extension and merged in my work on Maps 3.0 and Validator 1.0 into their respective master branches.

In February I started the Ask and ParserHooks extensions. I also did a full rewrite of the SubPageList extension to remove all static code and global state, as well as injecting all dependencies.

2014 and beyond
During 2013 and 2014 I broadened my developer horizons and focused less on MediaWiki extensions. I came to the realization that it is often better to write software decoupled from MediaWiki even if it is used in conjunction with MediaWiki. You can read about my continuing adventures on my blog, which mostly covers software design and software architecture topics nowadays.

My pages

 * Jeroens Website
 * Wiki company
 * Blog
 * GitHub profile
 * Packagist profile
 * OpenHub profile
 * TCP profile
 * SourceForge profile
 * Stackoverflow profile