{"id":1236,"date":"2011-08-24T23:12:04","date_gmt":"2011-08-24T22:12:04","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=1236"},"modified":"2014-03-17T23:12:51","modified_gmt":"2014-03-17T22:12:51","slug":"wikilovesmonuments-and-the-upload-wizard","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/","title":{"rendered":"WikiLovesMonuments and the Upload Wizard"},"content":{"rendered":"<div>\n<p>As this particular project is coming to and end, I figured I\u2019d do a quick blog post on it.<\/p>\n<p><a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/www.wikilovesmonuments.eu\/\">Wiki Loves Monuments<\/a> (WLM) is a photo contest for European monuments, organized by Wikimedia this September. Last year some JavaScrip hacks on the regular <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/https:\/\/secure.wikimedia.org\/wikipedia\/commons\/wiki\/\">Wikimedia Commons<\/a> (the media repository for Wikipedia and other <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/wikimediafoundation.org\/\">Wikimedia Foundation<\/a> projects) upload interface where used for this contest. This year the new and completely awesome <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/https:\/\/secure.wikimedia.org\/wikipedia\/mediawiki\/wiki\/Extension:UploadWizard\">Upload Wizard<\/a> (UW) will be used, with configuration optimized for WLM. I created a campaign-based configuration system from the UW and also added a bunch of new settings.<\/p>\n<p>2 new special pages where added. One listing all campaigns, their status, and edit and delete links. This is at Special:UploadCampaigns.<\/p>\n<p><a href=\"https:\/\/web.archive.org\/web\/20121017212245\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png\"><img loading=\"lazy\" decoding=\"async\" title=\"Upload campaign management interface\" alt=\"Upload campaign management interface\" src=\"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png\" width=\"634\" height=\"242\" \/><\/a><\/p>\n<p>The other special page handles the edit action and displays a list of all available settings that can be modified for the campaign. This is at Special:UploadCampaign\/name.<\/p>\n<p><a href=\"https:\/\/web.archive.org\/web\/20121017212245\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaign.png\"><img loading=\"lazy\" decoding=\"async\" title=\"Upload campaign admin\" alt=\"Upload campaign admin\" src=\"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaign-1024x376.png\" width=\"1024\" height=\"376\" \/><\/a><\/p>\n<p>A campaign can be applied to the UW by adding the \u201ccampaign\u201d url parameter with as value the campaign name, ie ?campaign=wlm-be.<\/p>\n<p>One fun thing about the architecture of the campaign system is that the setting support is very generic. I created a <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/trunk\/extensions\/UploadWizard\/includes\/UploadWizardConfig.php?view=markup\">new settings class<\/a> that pulls in the default settings, overrides these with the wikis config (ie PHP vars in LocalSettings.php), passed URL arguments and finally the upload campaign settings if a campaign is specified. I like this kind of setup, as it\u2019s a lot nicer then dealing with over 9000 global variables, and in the meanwhile already applied some variation of it <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/trunk\/extensions\/SemanticSignup\/SemanticSignup.settings.php?view=markup\">in Semantic Signup<\/a> and <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/trunk\/extensions\/Survey\/Survey.settings.php?view=markup\">in my new Surveys extension<\/a>. And I wrote up a <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/trunk\/extensions\/Maps\/includes\/Maps_Settings.php?revision=94439&amp;view=markup\">more general and powerful version<\/a> of such setting handling in the Maps extension. Unfortunately this code uses late static bindings and thus requires PHP 5.3, making it not usable in actual code for quite a while <img decoding=\"async\" alt=\":(\" src=\"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-includes\/images\/smilies\/icon_sad.gif\" \/> Another neat thing is that the <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/http:\/\/svn.wikimedia.org\/viewvc\/mediawiki\/trunk\/extensions\/UploadWizard\/includes\/UploadWizardCampaign.php?view=markup\">upload campaign class<\/a> only specifies a lift of settings that should be configurable for upload campaigns, together with what kind of HTML form input they should be displayed. That info is then merged with the settings obtained from the settings class and put into a FormSpecialPage, which uses HTMLForm to display anything without any further hassle <img decoding=\"async\" alt=\":)\" src=\"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-includes\/images\/smilies\/icon_smile.gif\" \/><\/p>\n<p>Not used the Upload Wizard before and curious how it works? Go <a href=\"https:\/\/web.archive.org\/web\/20121017212245\/https:\/\/secure.wikimedia.org\/wikipedia\/commons\/wiki\/Special:UploadWizard\">upload some nice stuff to commons<\/a> then <img decoding=\"async\" alt=\":)\" src=\"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-includes\/images\/smilies\/icon_smile.gif\" \/><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>As this particular project is coming to and end, I figured I\u2019d do a quick blog post on it. Wiki&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-1236","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WikiLovesMonuments and the Upload Wizard - Blog of Jeroen De Dauw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WikiLovesMonuments and the Upload Wizard - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"As this particular project is coming to and end, I figured I\u2019d do a quick blog post on it. Wiki&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2011-08-24T22:12:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-03-17T22:12:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"WikiLovesMonuments and the Upload Wizard\",\"datePublished\":\"2011-08-24T22:12:04+00:00\",\"dateModified\":\"2014-03-17T22:12:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/\"},\"wordCount\":390,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/web.archive.org\\\/web\\\/20121017212245im_\\\/https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/uploadCampaigns.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/\",\"name\":\"WikiLovesMonuments and the Upload Wizard - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/web.archive.org\\\/web\\\/20121017212245im_\\\/https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/uploadCampaigns.png\",\"datePublished\":\"2011-08-24T22:12:04+00:00\",\"dateModified\":\"2014-03-17T22:12:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#primaryimage\",\"url\":\"https:\\\/\\\/web.archive.org\\\/web\\\/20121017212245im_\\\/https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/uploadCampaigns.png\",\"contentUrl\":\"https:\\\/\\\/web.archive.org\\\/web\\\/20121017212245im_\\\/https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/uploadCampaigns.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2011\\\/08\\\/24\\\/wikilovesmonuments-and-the-upload-wizard\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WikiLovesMonuments and the Upload Wizard\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WikiLovesMonuments and the Upload Wizard - Blog of Jeroen De Dauw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/","og_locale":"en_US","og_type":"article","og_title":"WikiLovesMonuments and the Upload Wizard - Blog of Jeroen De Dauw","og_description":"As this particular project is coming to and end, I figured I\u2019d do a quick blog post on it. Wiki&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2011-08-24T22:12:04+00:00","article_modified_time":"2014-03-17T22:12:51+00:00","og_image":[{"url":"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png","type":"","width":"","height":""}],"author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"WikiLovesMonuments and the Upload Wizard","datePublished":"2011-08-24T22:12:04+00:00","dateModified":"2014-03-17T22:12:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/"},"wordCount":390,"commentCount":0,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#primaryimage"},"thumbnailUrl":"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/","url":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/","name":"WikiLovesMonuments and the Upload Wizard - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#primaryimage"},"thumbnailUrl":"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png","datePublished":"2011-08-24T22:12:04+00:00","dateModified":"2014-03-17T22:12:51+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#primaryimage","url":"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png","contentUrl":"https:\/\/web.archive.org\/web\/20121017212245im_\/https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/08\/uploadCampaigns.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2011\/08\/24\/wikilovesmonuments-and-the-upload-wizard\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"WikiLovesMonuments and the Upload Wizard"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-jW","jetpack-related-posts":[{"id":706,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/10\/working-for-wikimedia-foundation\/","url_meta":{"origin":1236,"position":0},"title":"Working for Wikimedia Foundation","author":"Jeroen","date":"2010-02-10","format":false,"excerpt":"As of today I'm working for the Wikimedia Foundation as developer. I have a 3 month contract, after which I'll participate in GSoC 2010, and do a project for ... well... Wikimedia Foundation :) (I'll post more about GSoC 2010 later on, I have a really awesome project planned :d)\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Wikimedia Foundation logo","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/02\/Wikimedia_Foundation_RGB_logo_with_text.svg_.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":792,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/04\/26\/google-summer-of-code-2010\/","url_meta":{"origin":1236,"position":1},"title":"Google Summer of Code 2010","author":"Jeroen","date":"2010-04-26","format":false,"excerpt":"Like last year, I\u2019ve been accepted for GSoC 2010 \u2013 yay! The Google Summer of Code (GSoC) is an annual program, first held from May to August 2005, in which Google awards stipends to hundreds of students who successfully complete a requested free software \/ open-source coding project during the\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Google","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/04\/google_logo-300x125.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":716,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/18\/wikimedia-storyboard\/","url_meta":{"origin":1236,"position":2},"title":"Wikimedia Storyboard","author":"Jeroen","date":"2010-02-18","format":false,"excerpt":"I've been working on the Wikimedia Storyboard extension for a week now, and like to provide the people who are interested in it with some more details about what the project goal is exactly, and what my current progress is. The idea of the Wikimedia Storyboard is to develop a\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Wikimedia storyboard extension - Landing page","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/02\/Wikimedia-storyboard-mockup011.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/02\/Wikimedia-storyboard-mockup011.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/02\/Wikimedia-storyboard-mockup011.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":852,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/","url_meta":{"origin":1236,"position":3},"title":"Extension management platform","author":"Jeroen","date":"2010-06-10","format":false,"excerpt":"After doing a pile of research on how to best create an extension management platform for MediaWiki as my Google Summer of Code project, I realized that a lot of the work that I wanted to do was already done in some form or another, and decided to somewhat augment\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":962,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/08\/20\/end-of-google-summer-of-code-2010\/","url_meta":{"origin":1236,"position":4},"title":"End of Google Summer of Code 2010","author":"Jeroen","date":"2010-08-20","format":false,"excerpt":"As Google Summer of Code (GSoC) 2010 has ended, I'm writing this blog post to outline what I'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\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Google Summer of Code 2010","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/08\/2010_NoURL_300x267px.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":192,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/07\/14\/gsoc-at-wikimedia-foundation\/","url_meta":{"origin":1236,"position":5},"title":"GSoC at wikimedia foundation","author":"Jeroen","date":"2009-07-14","format":false,"excerpt":"Now that the initial part of my project is almost over, I realized I'm still not really integrated into the MW community IMHO. If there where tools available for mentors and students to easily contact each other, it would be so much more easy to share idea's with each other\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=1236"}],"version-history":[{"count":1,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1236\/revisions"}],"predecessor-version":[{"id":1237,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1236\/revisions\/1237"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=1236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=1236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=1236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}