{"id":1516,"date":"2015-12-26T00:51:20","date_gmt":"2015-12-25T23:51:20","guid":{"rendered":"http:\/\/www.entropywins.wtf\/blog\/?p=1516"},"modified":"2016-01-01T02:26:13","modified_gmt":"2016-01-01T01:26:13","slug":"wtf-entropy-wins","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/","title":{"rendered":"WTF? Entropy Wins?"},"content":{"rendered":"<p>In this blog post I go over which tools (libraries) I used to build my new website, what problems I ran into and which lessons I learned, preceded by a short history of my website. If you&#8217;re not interested in the short history, just skip ahead to the &#8220;Creating my new site&#8221; section.<\/p>\n<p><strong>A short history of my website<\/strong><\/p>\n<p>I acquired the bn2vs.com domain back in 2009. Before that I had some stuff on Geocities, and also had been running a PhpBB board for several gaming communities on another domain I owned. The first thing to go live on my new domain was a new PhpBB board in which I could put documentation for my software projects and let people comment. The root of the domain just redirected to this forum.<\/p>\n<p>Soon after I created a blog and a wiki, and also wanted to link to various other locations on the web. The redirect from the domain root was replaced by a new page linking to my blog, forums, wiki, etc. Me being me, I just copied some HTML from my forums and modified it, rather than designing something myself. You can view the <a href=\"https:\/\/web.archive.org\/web\/20090909151913\/http:\/\/bn2vs.com\/\">September 9th 2009 version<\/a> on the WayBackMacine and compare it to the <a href=\"https:\/\/web.archive.org\/web\/20130701070838\/http:\/\/www.bn2vs.com\/\">July 1st 2013 version<\/a>.<\/p>\n<p>Since I had grown unhappy with this page over the last two years or so, I decided to drop it and simply redirect it to my blog somewhere near August 2013. My main issues with the page where that it was hard to modify, and that it did not lend itself to have more elaborate content. Since I did not want to spend a lot of time on writing code for my website, I figured the easiest thing to do was just creating some pages on my WordPress blog. You can view the <a href=\"https:\/\/web.archive.org\/web\/20131206134752\/https:\/\/www.entropywins.wtf\/blog\/\">December 6th 2013 version<\/a>. This redirect remained earlier this year when I launched the first version of my new website.<\/p>\n<p><strong>Creating my new site<\/strong><\/p>\n<p>For my new site, I had the following goals:<\/p>\n<ul>\n<li>Do not reply on overcomplicated frameworks and generally minimize code-wise dependencies<\/li>\n<li>Bind to as little infrastructure (ie databases) as possible<\/li>\n<li>Be able to have content in a simple format such as Markdown, while retaining the possibility to use HTML<\/li>\n<li>Do not spend time on coding up my own solutions which would then need to be maintained<\/li>\n<li>Have the content in decent version control, ie git<\/li>\n<\/ul>\n<p>The earlier mentioned wiki has been down for about two years now, as I&#8217;m simply too lazy to maintain the thing. After all, why should have I to do all that hassle just to have half a dozen static content pages be displayed? A simple website can solve this.<\/p>\n<p>Some time ago, at Wikimedia Germany, we (mostly Jakob) created a <a href=\"http:\/\/wikiba.se\/\">website for the Wikibase software<\/a> we are developing. We decided to use <a href=\"https:\/\/sculpin.io\/\">Sculpin<\/a>, a static site generator written in PHP, and to put the <a href=\"https:\/\/github.com\/wmde\/Wikiba.se\">code on our GitHub<\/a>. Since this approach satisfied the above conditions, I decided to try it out for my site as well.<\/p>\n<p><strong>New site v2<\/strong><\/p>\n<p>While Sculpin worked fine, I decided that I wanted some dynamic features as well. For instance, I wanted to be able to show a list of the most recent posts on my blog, or even embed them. I switched from Sculpin to the <a href=\"http:\/\/silex.sensiolabs.org\/\">Silex PHP microframework<\/a>, with which I have quite some good experience by now. It allow me to specify some simple routes to html files, and can do templating via <a href=\"http:\/\/twig.sensiolabs.org\/\">Twig<\/a>. Adding support for Markdown was easy using the <a href=\"https:\/\/github.com\/aptoma\/twig-markdown\">Twig Markdown plugin<\/a> and <a href=\"https:\/\/github.com\/michelf\/php-markdown\">PHP Markdown library<\/a>. For listing and embedding the latest blog posts, I figured that consuming my own RSS feed would be nice coupling wise. Implementation of this was also easy using the <a href=\"https:\/\/github.com\/simplepie\/simplepie\">SimplePie PHP library<\/a>.<\/p>\n<p><strong>Current status: new site v3<\/strong><\/p>\n<p>Today I made another set of changes. Most notably I moved my site and blog to a new VPS and got a new domain name: EntropyWins.wtf. Presumably this one is more memorable than bn2vs. In any case, it&#8217;s most certainly more in line with my current online alias than bn2vs and it&#8217;s original form [RTS]BN+VS*, both of which I&#8217;m rarely using anymore. The old domain will continue to work, and now redirects to the new one.<\/p>\n<p>The new VPS I got is somewhat faster than the old one, and it comes with a more recent version of PHP. Both these should contribute to my site and blog being somewhat faster.<\/p>\n<p>Another change made today is the addition of HTTPS support. I got a certificate via <a href=\"https:\/\/letsencrypt.org\/\">LetsEncrypt<\/a>, a great service which is current in open beta. When hitting a HTTP URL you will be automatically redirected to the HTTPS equivalent. And according to SSL Labs, the <a href=\"https:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=entropywins.wtf\">certificate is grade A<\/a>.<\/p>\n<p>I&#8217;ve made a number of cosmetic changes to both my site and blog as well. My plans now are to do some layout work on the site itself, so it is more consistent with the look and feel of my blog. (Edit: as you can see, this is now mostly done. Some style issues remain to be fixed though.) Another thing I ought to get to is fishing my old wiki pages out of limbo and adding them to this new site.<\/p>\n<p>If you&#8217;re curious about the code that runs this site, have a look at <a href=\"https:\/\/github.com\/JeroenDeDauw\/bn2vs.com\">the GitHub repository<\/a>. Beware though, that the Silex routing code is a bit off a mess at present. Back when I wrote it I was not so familiar with Silex, and I&#8217;ve yet to do a second pass on it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post I go over which tools (libraries) I used to build my new website, what problems I&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":[6],"tags":[389,390],"class_list":["post-1516","post","type-post","status-publish","format-standard","hentry","category-news","tag-entropywins","tag-website"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WTF? Entropy Wins? - 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\/2015\/12\/26\/wtf-entropy-wins\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WTF? Entropy Wins? - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"In this blog post I go over which tools (libraries) I used to build my new website, what problems I&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-25T23:51:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-01-01T01:26:13+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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"WTF? Entropy Wins?\",\"datePublished\":\"2015-12-25T23:51:20+00:00\",\"dateModified\":\"2016-01-01T01:26:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/\"},\"wordCount\":943,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"keywords\":[\"EntropyWins\",\"Website\"],\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/\",\"name\":\"WTF? Entropy Wins? - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"datePublished\":\"2015-12-25T23:51:20+00:00\",\"dateModified\":\"2016-01-01T01:26:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2015\\\/12\\\/26\\\/wtf-entropy-wins\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WTF? Entropy Wins?\"}]},{\"@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":"WTF? Entropy Wins? - 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\/2015\/12\/26\/wtf-entropy-wins\/","og_locale":"en_US","og_type":"article","og_title":"WTF? Entropy Wins? - Blog of Jeroen De Dauw","og_description":"In this blog post I go over which tools (libraries) I used to build my new website, what problems I&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2015-12-25T23:51:20+00:00","article_modified_time":"2016-01-01T01:26:13+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":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"WTF? Entropy Wins?","datePublished":"2015-12-25T23:51:20+00:00","dateModified":"2016-01-01T01:26:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/"},"wordCount":943,"commentCount":0,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"keywords":["EntropyWins","Website"],"articleSection":["News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/","url":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/","name":"WTF? Entropy Wins? - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"datePublished":"2015-12-25T23:51:20+00:00","dateModified":"2016-01-01T01:26:13+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/26\/wtf-entropy-wins\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"WTF? Entropy Wins?"}]},{"@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-os","jetpack-related-posts":[{"id":2210,"url":"https:\/\/www.entropywins.wtf\/blog\/2018\/08\/14\/clean-architecture-bounded-contexts\/","url_meta":{"origin":1516,"position":0},"title":"Clean Architecture + Bounded Contexts","author":"Jeroen","date":"2018-08-14","format":false,"excerpt":"In this follow-up to Implementing the Clean Architecture I introduce you to a combination of The Clean Architecture and the strategic DDD pattern known as Bounded Contexts. At Wikimedia Deutschland we use this combination of The Clean Architecture and Bounded Contexts for our fundraising applications. In this post I describe\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\/08\/CleanArchitecture_DomainDrivenDesign.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/08\/CleanArchitecture_DomainDrivenDesign.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/08\/CleanArchitecture_DomainDrivenDesign.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/08\/CleanArchitecture_DomainDrivenDesign.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2018\/08\/CleanArchitecture_DomainDrivenDesign.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":2219,"url":"https:\/\/www.entropywins.wtf\/blog\/2018\/05\/09\/guidelines-for-new-software-projects\/","url_meta":{"origin":1516,"position":1},"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":1792,"url":"https:\/\/www.entropywins.wtf\/blog\/2016\/07\/14\/notes-implementing-ddd-chapter-2\/","url_meta":{"origin":1516,"position":2},"title":"Notes: Implementing DDD, chapter 2","author":"Jeroen","date":"2016-07-14","format":false,"excerpt":"Notes from Implementing Domain Driven Design, chapter 2: Domains, Subdomains and Bounded Contexts (p58 and later only) User interface and service orientated endpoints are within the context boundary Domain concepts in the UI form the Smart UI Anti-Pattern A database schema is part of the context if it was created\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":1846,"url":"https:\/\/www.entropywins.wtf\/blog\/2016\/11\/24\/implementing-the-clean-architecture\/","url_meta":{"origin":1516,"position":3},"title":"Implementing the Clean Architecture","author":"Jeroen","date":"2016-11-24","format":false,"excerpt":"Both Domain Driven Design and architectures such as the Clean Architecture and Hexagonal are often talked about. It's hard to go to a conference on software development and not run into one of these topics. However it can be challenging to find good real-world examples. In this blog post I'll\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\/11\/CleanArchitecture.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/11\/CleanArchitecture.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/11\/CleanArchitecture.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/11\/CleanArchitecture.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1165,"url":"https:\/\/www.entropywins.wtf\/blog\/2013\/12\/23\/wikibase-datamodel-released\/","url_meta":{"origin":1516,"position":4},"title":"Wikibase DataModel released!","author":"Jeroen","date":"2013-12-23","format":false,"excerpt":"I\u2019m happy to announce the 0.6 release of Wikibase DataModel. This is the first real release of this component. DataModel? Wikibase is the software behind Wikidata.org. At its core, this software is about describing entities. Entities are collections of claims, which can have qualifiers, references and values of various different\u2026","rel":"","context":"In \"Component\"","block_context":{"text":"Component","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/component\/"},"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":1516,"position":5},"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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1516","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=1516"}],"version-history":[{"count":2,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1516\/revisions"}],"predecessor-version":[{"id":1523,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1516\/revisions\/1523"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=1516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=1516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=1516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}