{"id":572,"date":"2009-11-28T23:42:18","date_gmt":"2009-11-28T22:42:18","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=572"},"modified":"2009-11-28T23:42:18","modified_gmt":"2009-11-28T22:42:18","slug":"strict-parameter-validation","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/","title":{"rendered":"Strict parameter validation"},"content":{"rendered":"<p>One of the big new features in <a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Maps\" target=\"_blank\">Maps<\/a> 0.5 will be strict parameter validation. This means Maps will allow you to get specific errors or warnings when entering invalid values or parameters.<\/p>\n<p>The setting determining the strictness of the validation, which can be changes in your LocalSettings file, currently accepts 4 values:<\/p>\n<ul>\n<li> Maps_ERRORS_NONE  : Maps will not show any errors, and make the best of the imput it got.<\/li>\n<li> Maps_ERRORS_WARN  : Maps will make the best of the imput it got, but will show warnings for omitted coordinates.<\/li>\n<li> Maps_ERRORS_SHOW  : Maps will make the best of the imput it got, but will show a list of all errors.<\/li>\n<li> Maps_ERRORS_STRICT: Maps will only show a map when there are no errors, if there are, a list of them will be shown.<\/li>\n<\/ul>\n<p>The underneath example demonstrates an error list that can be generated when the validation level is on Maps_ERRORS_SHOW or Maps_ERRORS_STRICT. In case of the former, it&#8217;ll be shown below the map,while in case of the later, it&#8217;ll be shown instead of any map. The error messages are of course fully internationalized.<\/p>\n<p><a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Maps#Property_validation\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" title=\"Maps displaying error feedback\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif\" alt=\"Maps displaying error feedback\" width=\"324\" height=\"72\" \/><\/a><\/p>\n<p>The validation is done via a new class dedicated to parameter validation. To be able to validate anything, you need to feed it two things: an associative array containing the raw parameter names and their values, and a somewhat more complex, nested, array containing the allowed parameter and their meta data, such as aliases and default values. The class also provides a hook for validation types, allowing you to do specific or complex validation that is not build in. The handling of the different strictness levels and generation of the actual error messages is done by another class that uses the first to validate and get the errors. Both classes do not contain any Maps specific code, so can be used to validate the parameter of any parser function. I&#8217;m planning to split this code, after it has reached a beta level, into a separate extension, that will probably be named &#8220;Validator&#8221;. This extension will be bundled with Maps, and will not any additional steps to the installation process.<\/p>\n<p>Together with implementing this new feature, I did a big overhaul of the parameter handling in Maps and <a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Semantic_Maps\">Semantic Maps<\/a>. Instead of the two level system, containing general parameters, and service specific parameters, that was used in Maps, there now is a four level system. The first level are the general parameters, shared by everything. These include things like width, height and zoom. Feature specific parameters make up the second level, while the third one holds service specific parameters. The last level are the parameters specific to a combination of service and feature. Maps goes through these levels, starting with the upper one, and overriding it with the following. This allows more specific behaviour and is required to be able to validate the parameters in some instances.<\/p>\n<p>The changes I made to Maps and Semantic Maps during these rewrites are responsible for what are probably my biggest commits to both extensions yet.<\/p>\n<ul>\n<li><a href=\"http:\/\/svn.wikimedia.org\/viewvc\/mediawiki?view=rev&amp;revision=59531\" target=\"_blank\">Changes to Maps<\/a> (rev 59531)<\/li>\n<li><a href=\"http:\/\/svn.wikimedia.org\/viewvc\/mediawiki?view=rev&amp;revision=59532\" target=\"_blank\">Changes to Semantic Maps<\/a> (rev 59532)<\/li>\n<\/ul>\n<p>Due to the extend of changes I made, and the lack of thorough tests yet, I expect multiple issues with this code, including several severe ones, so I advice against using the latest SVN code for the moment, except for testing purposes of course. I hope to have the code refined and bug hunted in the coming week, so I can put it in a new extension and release it. During this period I&#8217;ll also start working on the other new features planned for 0.5, so you can expect more news on this soon.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the big new features in Maps 0.5 will be strict parameter validation. This means Maps will allow you&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":[7],"tags":[27,84,111,112,154,155,156,180,181,195,215,227,271,272,285,300],"class_list":["post-572","post","type-post","status-publish","format-standard","hentry","category-programming","tag-application-architecture","tag-error-feedback","tag-google-earth","tag-google-maps","tag-mapping","tag-maps","tag-mediawiki","tag-open-layers","tag-open-source","tag-php","tag-refactoring","tag-semantic-maps","tag-validation","tag-validator","tag-wikimedia","tag-yahoo-maps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Strict parameter validation - 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\/2009\/11\/28\/strict-parameter-validation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Strict parameter validation - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"One of the big new features in Maps 0.5 will be strict parameter validation. This means Maps will allow you&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2009-11-28T22:42:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Strict parameter validation\",\"datePublished\":\"2009-11-28T22:42:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/\"},\"wordCount\":619,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/mapsErrorFeedback.gif\",\"keywords\":[\"Application architecture\",\"Error feedback\",\"Google Earth\",\"Google Maps\",\"Mapping\",\"Maps\",\"MediaWiki\",\"Open Layers\",\"Open Source\",\"PHP\",\"Refactoring\",\"Semantic Maps\",\"Validation\",\"Validator\",\"Wikimedia\",\"Yahoo! Maps\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/\",\"name\":\"Strict parameter validation - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/mapsErrorFeedback.gif\",\"datePublished\":\"2009-11-28T22:42:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/mapsErrorFeedback.gif\",\"contentUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/mapsErrorFeedback.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/11\\\/28\\\/strict-parameter-validation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strict parameter validation\"}]},{\"@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":"Strict parameter validation - 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\/2009\/11\/28\/strict-parameter-validation\/","og_locale":"en_US","og_type":"article","og_title":"Strict parameter validation - Blog of Jeroen De Dauw","og_description":"One of the big new features in Maps 0.5 will be strict parameter validation. This means Maps will allow you&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2009-11-28T22:42:18+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif","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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Strict parameter validation","datePublished":"2009-11-28T22:42:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/"},"wordCount":619,"commentCount":2,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif","keywords":["Application architecture","Error feedback","Google Earth","Google Maps","Mapping","Maps","MediaWiki","Open Layers","Open Source","PHP","Refactoring","Semantic Maps","Validation","Validator","Wikimedia","Yahoo! Maps"],"articleSection":["Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/","url":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/","name":"Strict parameter validation - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif","datePublished":"2009-11-28T22:42:18+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/mapsErrorFeedback.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/28\/strict-parameter-validation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Strict parameter validation"}]},{"@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-9e","jetpack-related-posts":[{"id":579,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/12\/you-will-be-validated-resistance-is-futile\/","url_meta":{"origin":572,"position":0},"title":"You will be validated. Resistance is futile.","author":"Jeroen","date":"2009-12-12","format":false,"excerpt":"It has been over a week since I posted about any MediaWiki stuff, which can very well be a record since I started my blog. The reason for this is cause I've been busy with a lot of projects. You'll hear about them all later on, but now I just\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":616,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/17\/maps-and-semantic-maps-0-5-released\/","url_meta":{"origin":572,"position":1},"title":"Maps and Semantic Maps 0.5 released","author":"Jeroen","date":"2009-12-17","format":false,"excerpt":"Earlier today, versions 0.5 of Maps and Semantic Maps where released. Some mayor new features where added, and a whole bunch of things have been refactored. I also did some effort to improve the documentation by adding some screencasts and revising the developer docs. Version 0.4.2 proved to be pretty\u2026","rel":"","context":"In \"Geocoding\"","block_context":{"text":"Geocoding","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/geocoding\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":554,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/16\/maps-and-semantic-maps-0-4-2\/","url_meta":{"origin":572,"position":2},"title":"Maps and Semantic Maps 0.4.2 released","author":"Jeroen","date":"2009-11-16","format":false,"excerpt":"Yesterday I released version 0.4.2 of both Maps and Semantic Maps. Apart from the version number, this release includes some interesting changes. As resided in my previous post, Maps now supports Google Maps overlays. Another change in it's usage is that Maps now holds into account the coordinate and address\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":625,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/26\/validator-0-2-released\/","url_meta":{"origin":572,"position":3},"title":"Validator 0.2 released","author":"Jeroen","date":"2009-12-26","format":false,"excerpt":"Today I released Validator version 0.2, on which I've been working the last 2 days. It features massive rewriting to make it more flexible, and has some added functionality. Let's have a look at what changed. The most important change is, without any doubt, the new list support. Validator 0.1\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Error feedback in the form of a list for Validator_ERRORS_SHOW or Validator_ERRORS_STRICT.","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/validator-0.2-error-list.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":697,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/01\/maps-and-semantic-maps-0-5-3-released\/","url_meta":{"origin":572,"position":4},"title":"Maps and Semantic Maps 0.5.3 released","author":"Jeroen","date":"2010-02-01","format":false,"excerpt":"Today I released Maps and Semantic Maps 0.5.3. Both releases mainly include bug-fixes, some of which quite important: Fixed JavaScript bug causing all OSM maps to fail. Pretty important yeah :) Fixed issue causing a fatal error when executing a query on Special:Ask with the \"map\" format. Fixed issue causing\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":90,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/06\/30\/semantic-maps\/","url_meta":{"origin":572,"position":5},"title":"Semantic Maps","author":"Jeroen","date":"2009-06-30","format":false,"excerpt":"Yesterday I made some small changes to the Yahoo! & Google Maps services in Maps. They now both have mouse wheel zoom functionality, which is on by default, but can be disabled by passing along the parameter autozoom=off in the wiki code. I also added handling for map control types\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\/572","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=572"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/572\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}