{"id":10235,"date":"2017-11-30T18:06:29","date_gmt":"2017-12-01T00:06:29","guid":{"rendered":"https:\/\/daedtech.wpenginepowered.com\/?p=10235"},"modified":"2017-11-30T18:06:29","modified_gmt":"2017-12-01T00:06:29","slug":"digest-rules-singletons-aggregation","status":"publish","type":"post","link":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/","title":{"rendered":"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation"},"content":{"rendered":"<p>Happy Friday, DaedTech readers!\u00a0 Time for yet another installment of <a href=\"https:\/\/daedtech.com\/category\/digests\/\">the DaedTech Digest<\/a>.<\/p>\n<p>I didn&#8217;t do one last week because of the US holiday.\u00a0 For those of you not from the US, there&#8217;s this holiday called Black Friday that everybody celebrates by getting together and eating turkey the day before and then subsequently bludgeoning one another in retail stores the next day.\u00a0 Out of respect to this noble tradition, I held off on making a post.<\/p>\n<p>At any rate, it&#8217;s been a busy couple of weeks in my world.\u00a0 We&#8217;ve migrated south for about 5 weeks and are living in a beach town on the Gulf of Mexico.\u00a0 This photo below is a shot of where I&#8217;m working from today as I type this post.<\/p>\n<p><a href=\"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10238 size-full\" src=\"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg\" alt=\"\" width=\"700\" height=\"940\" \/><\/a><\/p>\n<p>So life is good.\u00a0 With that in mind, let&#8217;s get to picks.<\/p>\n<h3>Picks<\/h3>\n<ul>\n<li>The jury isn&#8217;t totally back yet on this, but we&#8217;re trying out <a href=\"https:\/\/www.freshbooks.com\/\">FreshBooks<\/a>\u00a0for managing <a href=\"http:\/\/www.hitsubscribe.com\/\">Hit Subscribe<\/a>&#8216;s books.\u00a0 And, so far, it&#8217;s great.\u00a0 And it integrates with other favorite Gusto besides.<\/li>\n<li>I&#8217;ve been listening to an Audiobook called <a href=\"http:\/\/amzn.to\/2jzkfUZ\">How to Measure Anything<\/a>, and enjoying it.\u00a0 Any consultant worth his or her salt spends a lot of time figuring out how to quantify problems and solutions, and this is definitely helpful.<\/li>\n<li>The folks at <a href=\"https:\/\/www.datacamp.com\/\">a site called Data Camp<\/a>\u00a0reached out to me about the <a href=\"https:\/\/blog.ndepend.com\/unit-testing-affect-codebases\/\">study I&#8217;m doing<\/a> over at the NDepend blog.\u00a0 They seem to be developing a cool offering for teaching people about data science using Python and R.<\/li>\n<li>I also pick time off.\u00a0 I work very much on my own schedule and generally not full 8 hour days anymore.\u00a0 But I also do tend to work 7 days a week.\u00a0 Last weekend, Amanda and I played tourist and did nothing but explore the Gulf Coast, buy fresh seafood off of piers, dine out, explore new cities, and walk through state parks.\u00a0 This was nicely restorative.<\/li>\n<\/ul>\n<h3>DaedTech Post Digest<\/h3>\n<ul>\n<li>In my consulting (and even long-ago salaried) travels, I&#8217;ve encountered a lot of <a href=\"https:\/\/blog.submain.com\/examining-code-review-myths\/\">myths about code reviews<\/a>.\u00a0 I wrote a post for the SubMain blog in which I looked at some of those.<\/li>\n<li>I wrote a post for NDepend, in which I explored a topic probably not many have.\u00a0 What&#8217;s <a href=\"https:\/\/blog.ndepend.com\/role-static-analysis-testing\/\">the role of static analysis in your testing<\/a>?\u00a0 \u00a0These things might seem orthogonal, but I think they actually have an interesting relationship.<\/li>\n<li>Also for SubMain, I did <a href=\"https:\/\/blog.submain.com\/codeit-right-rules-explained-part-8\/\">a post in the CodeIt.Right Rules Explained series<\/a>.\u00a0 I examined why you should avoid single line if statements, why you shouldn&#8217;t base your enums on weird underlying types, and the problem with explicit rethrows.\u00a0 All of this in C#, BTW.<\/li>\n<li>In a post that went a little viral and predictably resulted in people calling me a know-nothing incompetent, I wrote about what <a href=\"https:\/\/blog.ndepend.com\/singleton-pattern-costs\/\">the singleton design pattern costs you<\/a>.\u00a0 This was for the NDepend blog, again.\u00a0 (But I&#8217;d have the last laugh later, when I would actually study it empirically and prove myself mostly right &#8212; stay tuned for that in a future digest.)<\/li>\n<li>In a much less controversial post (because they don&#8217;t enable comments), I made <a href=\"http:\/\/aspetraining.com\/resources\/blog\/business-case-for-unit-testing\">the business case for unit testing<\/a> on the ASPE blog.<\/li>\n<li>For Scalyr, I wrote <a href=\"http:\/\/blog.scalyr.com\/2017\/08\/log-aggregation-help\/\">a post about log aggregation<\/a>.\u00a0 What is this, why would you want it, and how does it help you?<\/li>\n<\/ul>\n<p>And, that does it for the digest round up.\u00a0 Have a great weekend!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Happy Friday, DaedTech readers!\u00a0 Time for yet another installment of the DaedTech Digest. I didn&#8217;t do one last week because of the US holiday.\u00a0 For those of you not from the US, there&#8217;s this holiday called Black Friday that everybody celebrates by getting together and eating turkey the day before and then subsequently bludgeoning one&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-10235","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation<\/title>\n<meta name=\"description\" content=\"In this episode of the daedtech digest, I look at six different topics, including static analysis rules, singletons, and log aggregation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation\" \/>\n<meta name=\"twitter:description\" content=\"In this episode of the daedtech digest, I look at six different topics, including static analysis rules, singletons, and log aggregation.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erik Dietrich\" \/>\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:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/\"},\"author\":{\"name\":\"Erik Dietrich\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/person\\\/3dae63e91a0fa60c8051a2171fa687d2\"},\"headline\":\"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation\",\"datePublished\":\"2017-12-01T00:06:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/\"},\"wordCount\":580,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/Harbor-e1512086392536.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/\",\"url\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/\",\"name\":\"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/Harbor-e1512086392536.jpg\",\"datePublished\":\"2017-12-01T00:06:29+00:00\",\"description\":\"In this episode of the daedtech digest, I look at six different topics, including static analysis rules, singletons, and log aggregation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/Harbor-e1512086392536.jpg\",\"contentUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/Harbor-e1512086392536.jpg\",\"width\":700,\"height\":940},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/digest-rules-singletons-aggregation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/daedtech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#website\",\"url\":\"https:\\\/\\\/daedtech.com\\\/\",\"name\":\"DaedTech\",\"description\":\"Stories about Software\",\"publisher\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/daedtech.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#organization\",\"name\":\"DaedTech LLC\",\"url\":\"https:\\\/\\\/daedtech.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/SmallLogo.jpg\",\"contentUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/SmallLogo.jpg\",\"width\":82,\"height\":84,\"caption\":\"DaedTech LLC\"},\"image\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/person\\\/3dae63e91a0fa60c8051a2171fa687d2\",\"name\":\"Erik Dietrich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg\",\"caption\":\"Erik Dietrich\"},\"sameAs\":[\"https:\\\/\\\/daedtech.com\"],\"url\":\"https:\\\/\\\/daedtech.com\\\/author\\\/erik\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation","description":"In this episode of the daedtech digest, I look at six different topics, including static analysis rules, singletons, and log aggregation.","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:\/\/daedtech.com\/digest-rules-singletons-aggregation\/","twitter_card":"summary_large_image","twitter_title":"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation","twitter_description":"In this episode of the daedtech digest, I look at six different topics, including static analysis rules, singletons, and log aggregation.","twitter_image":"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg","twitter_misc":{"Written by":"Erik Dietrich","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#article","isPartOf":{"@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/"},"author":{"name":"Erik Dietrich","@id":"https:\/\/daedtech.com\/#\/schema\/person\/3dae63e91a0fa60c8051a2171fa687d2"},"headline":"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation","datePublished":"2017-12-01T00:06:29+00:00","mainEntityOfPage":{"@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/"},"wordCount":580,"commentCount":0,"publisher":{"@id":"https:\/\/daedtech.com\/#organization"},"image":{"@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#primaryimage"},"thumbnailUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/","url":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/","name":"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation","isPartOf":{"@id":"https:\/\/daedtech.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#primaryimage"},"image":{"@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#primaryimage"},"thumbnailUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg","datePublished":"2017-12-01T00:06:29+00:00","description":"In this episode of the daedtech digest, I look at six different topics, including static analysis rules, singletons, and log aggregation.","breadcrumb":{"@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#primaryimage","url":"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg","contentUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2017\/11\/Harbor-e1512086392536.jpg","width":700,"height":940},{"@type":"BreadcrumbList","@id":"https:\/\/daedtech.com\/digest-rules-singletons-aggregation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/daedtech.com\/"},{"@type":"ListItem","position":2,"name":"DaedTech Digest: Analysis Rules, Singletons, and Log Aggregation"}]},{"@type":"WebSite","@id":"https:\/\/daedtech.com\/#website","url":"https:\/\/daedtech.com\/","name":"DaedTech","description":"Stories about Software","publisher":{"@id":"https:\/\/daedtech.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/daedtech.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/daedtech.com\/#organization","name":"DaedTech LLC","url":"https:\/\/daedtech.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/daedtech.com\/#\/schema\/logo\/image\/","url":"https:\/\/daedtech.com\/wp-content\/uploads\/2015\/07\/SmallLogo.jpg","contentUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2015\/07\/SmallLogo.jpg","width":82,"height":84,"caption":"DaedTech LLC"},"image":{"@id":"https:\/\/daedtech.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/daedtech.com\/#\/schema\/person\/3dae63e91a0fa60c8051a2171fa687d2","name":"Erik Dietrich","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg","caption":"Erik Dietrich"},"sameAs":["https:\/\/daedtech.com"],"url":"https:\/\/daedtech.com\/author\/erik\/"}]}},"_links":{"self":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/posts\/10235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/comments?post=10235"}],"version-history":[{"count":0,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/posts\/10235\/revisions"}],"wp:attachment":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/media?parent=10235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/categories?post=10235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/tags?post=10235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}