{"id":1845,"date":"2017-01-12T00:00:00","date_gmt":"2017-01-11T23:00:00","guid":{"rendered":"https:\/\/wwwneu.strehle.de\/tim\/weblog\/archives\/2017\/01\/12\/1605-2\/"},"modified":"2017-01-12T00:00:00","modified_gmt":"2017-01-11T23:00:00","slug":"1605-2","status":"publish","type":"post","link":"https:\/\/www.strehle.de\/tim\/weblog\/archives\/2017\/01\/12\/1605-2\/","title":{"rendered":"My side projects in 2016"},"content":{"rendered":"<p><em>My blog is a mixture of musings on Digital Asset Management, programming stuff, and diary entries written mostly for myself. This is such a diary post, an update to <a href=\"\/tim\/weblog\/archives\/2016\/01\/03\/1581\">my side projects in 2015<\/a>.<\/em><\/p>\n<p>The DAM Guru webinar Margaret Warren, Demian Hess and I had done on <a href=\"\/tim\/weblog\/archives\/2015\/11\/25\/1576\">Linked Data in DAM<\/a> had a lasting impression on me. I kept thinking about how to build a next-generation DAM system (and new DAM interoperability standards) by combining Semantic Web tech with <a href=\"\/tim\/weblog\/archives\/2016\/01\/20\/1584\">microservices\/Self-Contained Systems<\/a>.<\/p>\n<p>In January, Johannes Schmidt invited me to talk about these topics at the Hamburg office of <a href=\"http:\/\/www.di-unternehmer.com\">DI UNTERNEHMER<\/a>. I\u2019m not sure they got much out of my talk, but I learnt a lot preparing it \ud83d\ude42 (One of my goals is to practice <strong>public speaking<\/strong> \u2013 previous talks were at an <a href=\"\/tim\/weblog\/archives\/2014\/10\/22\/1743\">IPTC workshop<\/a> and the <a href=\"\/tim\/weblog\/archives\/2015\/05\/06\/1761\">vfm press archivists conference<\/a>.)<\/p>\n<p>Putting these theories in practice is impossible to do in my spare time. Luckily, I was <a href=\"http:\/\/www.digicol.com\/welcome-to-the-lab\/\">given a bit more freedom at work<\/a> and implemented the first version of a generic, JSON-LD + schema.org based API for searching internal and external DAM content sources.<\/p>\n<p>I also wrote a few blog posts \u2013 check out the <a href=\"\/tim\/weblog\/archives\/category\/writing\">table of contents<\/a>. According to visitor statistics, 2016\u2019s <strong>most popular posts<\/strong> were:<\/p>\n<ol>\n<li>\n<a href=\"\/tim\/weblog\/archives\/2016\/02\/24\/1588\">A dropdown for large lists in a Symfony 3 form with choice_loader and Select2<\/a>\n<\/li>\n<li>\n<a href=\"\/tim\/weblog\/archives\/2016\/09\/24\/1600\">Where\u2019s the \u201c9 to 5\u201d hackathon?<\/a>\n<\/li>\n<li>\n<a href=\"\/tim\/weblog\/archives\/2016\/01\/20\/1584\">System architecture: Splitting a DAM into Self-Contained Systems<\/a>\n<\/li>\n<li>\n<a href=\"\/tim\/weblog\/archives\/2016\/03\/10\/1590\">Turn HTML into plain text with proper whitespace (in XSLT and PHP)<\/a>\n<\/li>\n<li>\n<a href=\"\/tim\/weblog\/archives\/2016\/04\/28\/1592\">Digital Asset Management resources<\/a>\n<\/li>\n<li>\n<a href=\"\/tim\/weblog\/archives\/2016\/05\/30\/1593\">Where do I put search result context in schema.org?<\/a>\n<\/li>\n<\/ol>\n<p>(A post from 2015 gets the most traffic, though: <a href=\"\/tim\/weblog\/archives\/2015\/09\/03\/1569\">Counting word frequency using NLTK FreqDist()<\/a>. Which is funny considering it\u2019s the only Python code I ever wrote. Thanks to Roger Howard for his help!)<\/p>\n<p>I started a new project with my monthly <strong>DAM Reading List<\/strong> (<a href=\"\/tim\/weblog\/archives\/2016\/11\/06\/1601\">November<\/a>, <a href=\"\/tim\/weblog\/archives\/2016\/12\/06\/1603\">December<\/a>, <a href=\"\/tim\/weblog\/archives\/2017\/01\/06\/1604\">January<\/a>). It\u2019s quite a bit of work, but so far I enjoy forcing myself to read and curate.<\/p>\n<p>The DAM Reading List feeds off my <a href=\"http:\/\/planetdam.org\">Planet DAM<\/a> database. In 2016, I rewrote the <strong>Planet DAM<\/strong> site using the Symfony framework and added a <a href=\"http:\/\/planetdam.org\/search?q=\">search page<\/a>, <a href=\"http:\/\/planetdam.org\/product_index\">product pages<\/a>, <a href=\"http:\/\/planetdam.org\/author_index\">author pages<\/a>, and <a href=\"http:\/\/planetdam.org\/website_index\">site pages<\/a>.<\/p>\n<p>Planet DAM numbers have doubled since last year: As of today, there\u2019s 3,673 articles in the database (on average, I\u2019m adding 42 new articles per week), <a href=\"https:\/\/twitter.com\/PlanetDAM\">its Twitter account<\/a> has 704 followers, and the Web site welcomes about 200 unique visitors per month. (I don\u2019t have statistics on the RSS feed.) Thanks to Ralph Windsor for <a href=\"http:\/\/digitalassetmanagementnews.org\/resources\/planet-dam\/\">syndicating it on DAM News<\/a>, and everyone else who sent kind words and shared links!<\/p>\n<p>My pet programming project, the PHP <strong>Topic Maps engine<\/strong> <a href=\"https:\/\/github.com\/tistre\/TopicCards\">TopicCards<\/a>, is still not ready to be used by anyone but me (though it powers this blog and Planet DAM). But I did a lot of work on it, porting it from a SQL storage backend to the amazing <a href=\"https:\/\/neo4j.com\">Neo4j graph database<\/a>. I hope 2017 will see a TopicCards beta release, but I\u2019m not promising anything.<\/p>\n<p>By the way, I moved my strehle.de Web site to HTTPS. It was easy to do and didn\u2019t cost me any money because of the wonderful <a href=\"https:\/\/letsencrypt.org\">Let\u2019s Encrypt<\/a>. Highly recommended!<\/p>\n<p>P.S.: I have another side project which now boasts 100,000 unique visitors per month \u2013 a <a href=\"http:\/\/www.liederdatenbank.de\/\">database of German hymns<\/a> that I have neglected for years. I should work a bit on that, too\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My blog is a mixture of musings on Digital Asset Management, programming stuff, and diary entries written mostly for myself. This is such a diary post, an update to my side projects in 2015. The DAM Guru webinar Margaret Warren, Demian Hess and I had done on Linked Data in DAM had a lasting impression [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_share_on_mastodon":"0"},"categories":[1],"tags":[],"class_list":["post-1845","post","type-post","status-publish","format-standard","hentry","category-weblog"],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts\/1845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/comments?post=1845"}],"version-history":[{"count":0,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts\/1845\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/media?parent=1845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/categories?post=1845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/tags?post=1845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}