{"id":2184,"date":"2018-02-22T03:59:02","date_gmt":"2018-02-22T02:59:02","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=2184"},"modified":"2018-12-14T04:56:25","modified_gmt":"2018-12-14T03:56:25","slug":"collaboration-best-practices","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/","title":{"rendered":"Collaboration Best Practices"},"content":{"rendered":"<p>During 2016 and 2017 I worked in a small 3 people <a href=\"https:\/\/software.wikimedia.de\/\">dev team at Wikimedia Deutschland<\/a>, aptly named the FUN team. This is the team that <a href=\"https:\/\/www.entropywins.wtf\/blog\/2016\/11\/24\/rewriting-the-wikimedia-deutschland-funrdraising\/\">rewrote our fundraising application<\/a> and <a href=\"https:\/\/www.entropywins.wtf\/blog\/2016\/11\/24\/implementing-the-clean-architecture\/\">implemented the Clean Architecture<\/a>. Shortly after we started working on new features we noticed room for improvement in many areas of our collaboration. We talked about these and created a Best Practices document, the content of which I share in this blog post.<\/p>\n<p>We created this document in October 2016 and it focused on the issues we where having at the time or things we where otherwise concerned about. Hence it is by no means a comprehensive list, and it might contain things not applicable to other teams due to culture\/value differences or different modes of working. That said I think it can serve as a source of inspiration for other teams.<\/p>\n<p>Make sure <b>others can pick up a task<\/b> where it was left<\/p>\n<ul>\n<li>Make small commits<\/li>\n<li>Publish code quickly and don\u2019t go home with unpublished code<\/li>\n<li>When partially finishing a task, describe what is done and still needs doing<\/li>\n<li>Link Phabricator on Pull Requests and Pull Requests on Phabricator<\/li>\n<\/ul>\n<p>Make sure <b>others can (start) work(ing) on tasks<\/b><\/p>\n<ul>\n<li>Try to describe new tasks in such a way others can work on them without first needing to inquire about details<\/li>\n<li>Respond to emails and comments on tasks (at least) at the start and end of your day<\/li>\n<li>Go through the review queue (at least) at the start and end of your day<\/li>\n<li>Indicate if a task was started or is being worked on so everyone can pick up any task without first checking it is not being worked upon. At least pull the task into the &#8220;doing&#8221; column of the board, better yet assign yourself.<\/li>\n<\/ul>\n<p>Make sure <b>others know what is going on<\/b><\/p>\n<ul>\n<li>Discuss introduction of new libraries or tools and creation of new projects<\/li>\n<li>Only reviewed code gets deployed or used as critical infrastructure<\/li>\n<li>If review does not happen, insist on it rather than adding to big branches<\/li>\n<li>Discuss (or <a href=\"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/\">Pair Program<\/a>) big decisions or tasks before investing a lot of time in them<\/li>\n<\/ul>\n<p><b>Shared commitment<\/b><\/p>\n<ul>\n<li>Try working on the highest priority tasks (including any support work such as code review of work others are doing)<\/li>\n<li>Actively look for and work on problems and blockers others are running into<\/li>\n<li>Follow up commits containing suggested changes are often nicer than comments<\/li>\n<\/ul>\n<p><strong>See also:<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/verraes.net\/2016\/04\/code-reviews-and-blame-culture\/\">Code Reviews and Blame Culture<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>During 2016 and 2017 I worked in a small 3 people dev team at Wikimedia Deutschland, aptly named the FUN&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":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[330,367,197,336],"class_list":["post-2184","post","type-post","status-publish","format-standard","hentry","category-programming","tag-agile","tag-extreme-programming","tag-planet-wikimedia","tag-wmde"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Collaboration Best Practices - 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\/2018\/02\/22\/collaboration-best-practices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Collaboration Best Practices - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"During 2016 and 2017 I worked in a small 3 people dev team at Wikimedia Deutschland, aptly named the FUN&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-22T02:59:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-14T03:56:25+00:00\" \/>\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\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Collaboration Best Practices\",\"datePublished\":\"2018-02-22T02:59:02+00:00\",\"dateModified\":\"2018-12-14T03:56:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/\"},\"wordCount\":410,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"keywords\":[\"Agile\",\"Extreme Programming\",\"Planet Wikimedia\",\"WMDE\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/\",\"name\":\"Collaboration Best Practices - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"datePublished\":\"2018-02-22T02:59:02+00:00\",\"dateModified\":\"2018-12-14T03:56:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2018\\\/02\\\/22\\\/collaboration-best-practices\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Collaboration Best Practices\"}]},{\"@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":"Collaboration Best Practices - 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\/2018\/02\/22\/collaboration-best-practices\/","og_locale":"en_US","og_type":"article","og_title":"Collaboration Best Practices - Blog of Jeroen De Dauw","og_description":"During 2016 and 2017 I worked in a small 3 people dev team at Wikimedia Deutschland, aptly named the FUN&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2018-02-22T02:59:02+00:00","article_modified_time":"2018-12-14T03:56:25+00:00","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\/2018\/02\/22\/collaboration-best-practices\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Collaboration Best Practices","datePublished":"2018-02-22T02:59:02+00:00","dateModified":"2018-12-14T03:56:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/"},"wordCount":410,"commentCount":3,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"keywords":["Agile","Extreme Programming","Planet Wikimedia","WMDE"],"articleSection":["Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/","url":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/","name":"Collaboration Best Practices - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"datePublished":"2018-02-22T02:59:02+00:00","dateModified":"2018-12-14T03:56:25+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Collaboration Best Practices"}]},{"@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-ze","jetpack-related-posts":[{"id":706,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/10\/working-for-wikimedia-foundation\/","url_meta":{"origin":2184,"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":1807,"url":"https:\/\/www.entropywins.wtf\/blog\/2016\/09\/09\/clean-architecture-diagram\/","url_meta":{"origin":2184,"position":1},"title":"Clean Architecture diagrams","author":"Jeroen","date":"2016-09-09","format":false,"excerpt":"I'm happy to release a few Clean Architecture related diagrams into the public domain (CC0 1.0). Update 2018-9-9: new diagrams featuring Bounded Contexsts are now available! These diagrams where created at Wikimedia Deutchland by Jan Dittrich, Charlie Kritschmar and myself for an upcoming presentation I'm doing on the Clean Architecture.\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/09\/Clean_Architecture_core.svg_.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/09\/Clean_Architecture_core.svg_.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/09\/Clean_Architecture_core.svg_.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2219,"url":"https:\/\/www.entropywins.wtf\/blog\/2018\/05\/09\/guidelines-for-new-software-projects\/","url_meta":{"origin":2184,"position":2},"title":"Guidelines for New Software Projects","author":"Jeroen","date":"2018-05-09","format":false,"excerpt":"In this blog post I share the Guidelines for New Software Projects that we use at Wikimedia Deutschland. I wrote down these guidelines recently after a third-party that was contracted by Wikimedia Deutschland delivered software that was problematic in several ways. The department contracting this third-party was not the software\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":2358,"url":"https:\/\/www.entropywins.wtf\/blog\/2018\/09\/09\/clean-architecture-bounded-contexts-diagram\/","url_meta":{"origin":2184,"position":3},"title":"Clean Architecture + Bounded Contexts diagram","author":"Jeroen","date":"2018-09-09","format":false,"excerpt":"I\u2019m happy to release a two Clean Architecture + Bounded Contexts diagrams into the public domain (CC0 1.0). I created these diagrams for Wikimedia Deutchland with the help of Jan Dittrich, Charlie Kritschmar and Hanna Petruschat. They represent the architecture of our fundraising codebase. I explain the rules of this\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/09\/FunArchitecture.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/09\/FunArchitecture.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/09\/FunArchitecture.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/09\/FunArchitecture.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/09\/FunArchitecture.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":716,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/18\/wikimedia-storyboard\/","url_meta":{"origin":2184,"position":4},"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":13,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/06\/23\/yahoo-maps\/","url_meta":{"origin":2184,"position":5},"title":"Yahoo! Maps","author":"Jeroen","date":"2009-06-23","format":false,"excerpt":"Today I finally had time to work on my GSoC project again. I used it to figure out how the Yahoo! Maps API works. It\u2019s quite similar to Google Maps actually (compared to Open Layers) and easy enough to integrate with Semantic Maps. I also created the base of the\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Yahoo! Maps","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/06\/maps_logov1.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/2184","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=2184"}],"version-history":[{"count":3,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/2184\/revisions"}],"predecessor-version":[{"id":2409,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/2184\/revisions\/2409"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=2184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=2184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=2184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}