41554 blogs · [ { "id": "01a08734-5f4e-73cf-a5da-0d303ebe6f0a", "title": "Controls Engineering Meetup", "url": "https://baddotrobot.com/blog/2026-04-04-control-engineering-meetup/", "published_at": "2026-04-04T00:00:00+00:00" }, { "id": "01a08734-5f4e-73cf-a5da-0d303dfabe99", "title": "Man vs Model", "url": "https://baddotrobot.com/blog/2026-03-08-man-vs-model/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a08734-5f4e-73cf-a5da-0d303d469f36", "title": "A Spooky Story", "url": "https://baddotrobot.com/blog/2026-02-20-log4j-appender/", "published_at": "2026-02-20T00:00:00+00:00" }, { "id": "01a08734-5f4e-73cf-a5da-0d303cac72d1", "title": "DORA Metrics Meet Governance in Banking", "url": "https://baddotrobot.com/blog/2026-01-26-dora-metrics-governance-banking/", "published_at": "2026-01-26T00:00:00+00:00" }, { "id": "01a08734-5f4e-73cf-a5da-0d303c651433", "title": "Bank on Tech Panel Discussion", "url": "https://baddotrobot.com/blog/2025-10-12-bank-on-tech/", "published_at": "2025-11-12T00:00:00+00:00" }, { "id": "01a08734-5f4e-73cf-a5da-0d303c5c54d1", "title": "Don't name classes 'Impl'", "url": "https://baddotrobot.com/blog/2023-01-01-naming-things-impl/", "published_at": "2023-01-01T00:00:00+00:00" }, { "id": "01a08734-5f4e-73cf-a5da-0d303c211a7d", "title": "Luhn Algorithm", "url": "https://baddotrobot.com/blog/2022-12-07-luhn-algorithm/", "published_at": "2022-12-07T00:00:00+00:00" }, { "id": "01a08734-5f4d-7242-b80d-2d669a917ecd", "title": "Lead Time vs Cycle Time", "url": "https://baddotrobot.com/blog/2022-06-07-lead-time-vs-cycle-time/", "published_at": "2022-06-07T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85b790357", "title": "Pull Requests and Trust", "url": "https://baddotrobot.com/blog/2021-01-04-pull-requests-and-trust/", "published_at": "2021-01-04T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85c6dc28e", "title": "Establishing an Engineering Culture", "url": "https://baddotrobot.com/blog/2020-02-01-engineering-culture/", "published_at": "2020-02-01T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85ae36b82", "title": "Evidencing Source Code Reviews", "url": "https://baddotrobot.com/blog/2019-10-30-evidencing-source-code-reviews/", "published_at": "2019-10-30T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85a5fbdd5", "title": "Creating Debian Repositories", "url": "https://baddotrobot.com/blog/2019-09-03-create-debian-repositories/", "published_at": "2019-09-03T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85a568514", "title": "Easily Deploy Java to Debian", "url": "https://baddotrobot.com/blog/2019-09-02-deploy-java-to-debian/", "published_at": "2019-09-02T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb8591a2a60", "title": "Upgrade Raspbian", "url": "https://baddotrobot.com/blog/2019-08-29-upgrade-raspian-stretch-to-buster/", "published_at": "2019-08-29T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85988759c", "title": "Refactoring in 10 Minutes", "url": "https://baddotrobot.com/blog/2019-08-09-refactoring-in-10-minutes/", "published_at": "2019-08-09T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb858e86514", "title": "Upgrade Raspbian", "url": "https://baddotrobot.com/blog/2017-10-26-upgrade-raspian-jessie-to-stretch/", "published_at": "2017-10-26T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb858b7af6e", "title": "Standard Raspberry Pi Setup", "url": "https://baddotrobot.com/blog/2017-03-01-standard-pi-setup/", "published_at": "2017-03-01T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85886aaed", "title": "Type Classes in Scala", "url": "https://baddotrobot.com/blog/2016-08-13-type-classes/", "published_at": "2016-08-13T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb857fd9036", "title": "Home Brew Temperature Logger", "url": "https://baddotrobot.com/blog/2016-03-23-homebrew-temperature-logger/", "published_at": "2016-03-23T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb857aa0e4d", "title": "Disable Edimax Wifi Dongles LED", "url": "https://baddotrobot.com/blog/2016-01-06-disable-led-for-edimax/", "published_at": "2016-01-06T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb856501f0a", "title": "Pi Console Lead", "url": "https://baddotrobot.com/blog/2015-12-28-pi-console-lead/", "published_at": "2015-12-28T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb857232209", "title": "Pair Testing Doesn't Work", "url": "https://baddotrobot.com/blog/2015-09-25-pair-tests-dont-work/", "published_at": "2015-09-25T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb8559960b6", "title": "Easily Switch JDK on Mac", "url": "https://baddotrobot.com/blog/2015-09-10-easily-switch-jdk-on-mac/", "published_at": "2015-09-10T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb854acf5f6", "title": "Implicit Functions in Scala", "url": "https://baddotrobot.com/blog/2015-07-14-scala-implicit-functions/", "published_at": "2015-07-14T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb853ce9869", "title": "Implicit Parameters in Scala", "url": "https://baddotrobot.com/blog/2015-07-03-scala-implicit-parameters/", "published_at": "2015-07-03T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85331165c", "title": "JMock to Scalamock Cheat Sheet", "url": "https://baddotrobot.com/blog/2015-05-09-jmock-to-scalamock-cheatsheet/", "published_at": "2015-05-09T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb852536f92", "title": "Scala Learning Curve", "url": "https://baddotrobot.com/blog/2014-11-25-scala-learning-curve/", "published_at": "2014-11-25T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb851e86a2b", "title": "Scala Mixins: The Right Way", "url": "https://baddotrobot.com/blog/2014-10-22-scala-mixins/", "published_at": "2014-09-22T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb850f38a7f", "title": "Dealing with Exceptions as Monads", "url": "https://baddotrobot.com/blog/2014-09-21-exceptions-as-monads/", "published_at": "2014-09-21T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb850bfb57f", "title": "Udemy Java 8 Course", "url": "https://baddotrobot.com/blog/2014-05-18-udemy-course/", "published_at": "2014-05-20T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb850aadb41", "title": "Classes vs. Functions", "url": "https://baddotrobot.com/blog/2014-04-08-classes-vs-functions/", "published_at": "2014-04-08T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb85075f741", "title": "Functional Interfaces in Java 8", "url": "https://baddotrobot.com/blog/2014-04-07-functional-interfaces-in-java8/", "published_at": "2014-04-07T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84fd014bb", "title": "Method References in Java 8", "url": "https://baddotrobot.com/blog/2014-02-18-method-references-in-java8/", "published_at": "2014-02-18T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84f15b832", "title": "IntelliJ IDEA Retina Support JDK 1.7+", "url": "https://baddotrobot.com/blog/2014-01-20-intellij-idea-retina-support/", "published_at": "2014-01-20T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84eec1dc3", "title": "Yet Another TeamCity Build Monitor", "url": "https://baddotrobot.com/blog/2014-01-01-another-teamcity-build-monitor/", "published_at": "2014-01-01T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84e83dd33", "title": "Currying Functions in Java & Scala", "url": "https://baddotrobot.com/blog/2013-07-21-curried-functions/", "published_at": "2013-07-21T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84db2d2d8", "title": "Automatically rebase on git pull", "url": "https://baddotrobot.com/blog/2013-07-09-automatically-rebase-on-git-pull/", "published_at": "2013-07-09T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84d220628", "title": "Calculate the Optimum Number of Threads", "url": "https://baddotrobot.com/blog/2013-06-01-optimum-number-of-threads/", "published_at": "2013-06-01T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84c11a370", "title": "Mac Tips", "url": "https://baddotrobot.com/blog/2013-05-24-mac-tips/", "published_at": "2013-05-24T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84c4527f7", "title": "Writing my Book", "url": "https://baddotrobot.com/blog/2013-05-24-writing-my-book/", "published_at": "2013-05-24T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84c0a0568", "title": "Useful Git Commands", "url": "https://baddotrobot.com/blog/2013-01-23-useful-git-commands/", "published_at": "2013-01-23T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84b5606b0", "title": "Java Stack vs Deque", "url": "https://baddotrobot.com/blog/2013-01-10-stack-vs-deque/", "published_at": "2013-01-10T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84b1dd737", "title": "Sending Messages vs Method Invocation", "url": "https://baddotrobot.com/blog/2012-10-06-sending-messages-vs-method-invocation/", "published_at": "2012-10-06T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84a3d09c2", "title": "Daily Standups Don't Work", "url": "https://baddotrobot.com/blog/2012-09-15-daily-standups-dont-work/", "published_at": "2012-09-15T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb849717280", "title": "Diff Excel with Java and Hamcrest", "url": "https://baddotrobot.com/blog/2012-09-14-diff-excel-with-java-and-hamcrest/", "published_at": "2012-09-14T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb848bfd99f", "title": "Play it Next App", "url": "https://baddotrobot.com/blog/2012-08-28-play-it-next/", "published_at": "2012-08-28T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb847f5cd89", "title": "FreeAgent, OAuth & HTTP (Part III)", "url": "https://baddotrobot.com/blog/2012-08-13-oauth-and-http-part-iii/", "published_at": "2012-08-13T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb8471c35ab", "title": "FreeAgent, OAuth & HTTP (Part II)", "url": "https://baddotrobot.com/blog/2012-08-12-oauth-and-http-part-ii/", "published_at": "2012-08-12T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb8470b67c8", "title": "FreeAgent, OAuth & HTTP (Part I)", "url": "https://baddotrobot.com/blog/2012-08-11-oauth-and-http-part-i/", "published_at": "2012-08-11T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb846b3758e", "title": "Mountain Lion Carnage", "url": "https://baddotrobot.com/blog/2012-07-28-mountain-lion-carnage/", "published_at": "2012-07-28T00:00:00+00:00" }, { "id": "01a08734-5f4c-70ac-904e-0cb84678eed8", "title": "Getting Things Done, Part II", "url": "https://baddotrobot.com/blog/2012-07-22-getting-things-done-ii/", "published_at": "2012-07-22T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388071f1603", "title": "Getting Things Done, Part I", "url": "https://baddotrobot.com/blog/2012-07-20-getting-things-done-i/", "published_at": "2012-07-20T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538808105407", "title": "Pair Tests: What Candidates Can Expect", "url": "https://baddotrobot.com/blog/2012-07-04-pair-tests-what-candidates-can-expect/", "published_at": "2012-07-04T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388063979ad", "title": "HTTP Encoding Schemes", "url": "https://baddotrobot.com/blog/2012-06-11-http-encoding-schemes/", "published_at": "2012-06-11T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388060e2de8", "title": "HTTP Should be Simple", "url": "https://baddotrobot.com/blog/2012-06-10-http-simple/", "published_at": "2012-06-10T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-53880591ae1b", "title": "Stop Ignoring @Rules", "url": "https://baddotrobot.com/blog/2012-05-05-stop-ignoring-at-rules/", "published_at": "2012-05-05T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388056c8a4b", "title": "Scala as a Functional OO Hybrid", "url": "https://baddotrobot.com/blog/2012-04-03-scala-as-a-functional-oo-hybrid/", "published_at": "2012-04-03T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538804dfc195", "title": "Scala Exception Handling", "url": "https://baddotrobot.com/blog/2012-03-30-scala-exception-handling/", "published_at": "2012-03-30T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538803d6770a", "title": "Exception Handling as a System Wide Concern", "url": "https://baddotrobot.com/blog/2012-03-28-exception-handling-as-a-system-wide-concern/", "published_at": "2012-03-28T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538804cc59e8", "title": "Building Better Exceptions", "url": "https://baddotrobot.com/blog/2012-03-29-building-better-exceptions/", "published_at": "2012-03-28T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538803559710", "title": "Expecting Exceptions JUnit Rule", "url": "https://baddotrobot.com/blog/2012-03-27-expecting-exception-with-junit-rule/", "published_at": "2012-03-27T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538802e3b248", "title": "Tools for bad.robots", "url": "https://baddotrobot.com/blog/2012-03-18-tools-for-bad-dot-robots/", "published_at": "2012-03-18T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538802a3f384", "title": "Force IE8 to Display JSON with Jersey", "url": "https://baddotrobot.com/blog/2012-02-21-jersey-and-ie8/", "published_at": "2012-02-21T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388024f294b", "title": "Hexagonal Acceptance Testing", "url": "https://baddotrobot.com/blog/2012-02-13-hexagonal-acceptance-testing/", "published_at": "2012-02-13T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538802358921", "title": "Transaction Management without the Frameworks", "url": "https://baddotrobot.com/blog/2012-01-29-transaction-management-without/", "published_at": "2012-01-29T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-53880150807e", "title": "Java source on Mac", "url": "https://baddotrobot.com/blog/2011-10-29-java-source-on-mac/", "published_at": "2011-10-29T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-538800359f60", "title": "Catching Multiple Exceptions (and rethrowing them all!)", "url": "https://baddotrobot.com/blog/2011-08-29-catching-multiple-exceptions-and/", "published_at": "2011-08-29T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388009ba916", "title": "Reflecting on Interviewing Mistakes", "url": "https://baddotrobot.com/blog/2011-08-29-reflecting-on-interviewing-mistakes/", "published_at": "2011-08-29T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5388002ffa2c", "title": "Logging is still evil but...", "url": "https://baddotrobot.com/blog/2011-06-22-loggin-is-still-evil-but/", "published_at": "2011-06-22T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387ffe19aa0", "title": "JDK7 Article in JavaTech Journal", "url": "https://baddotrobot.com/blog/2011-06-10-artcile-in-javatech-journal/", "published_at": "2011-06-10T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387ff8ec82f", "title": "tempus-fugit 1.1 released", "url": "https://baddotrobot.com/blog/2011-04-13-tempus-fugit-11-released/", "published_at": "2011-04-13T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387ffe9ddaa", "title": "JDK7 Previewed", "url": "https://baddotrobot.com/blog/2011-03-04-jdk-7-previewed/", "published_at": "2011-03-04T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fe8f3490", "title": "Logging is evil but...", "url": "https://baddotrobot.com/blog/2010-10-18-logging-is-evil-but/", "published_at": "2010-10-18T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fde0d187", "title": "Pairing Honestly", "url": "https://baddotrobot.com/blog/2010-08-15-pairing-honestly/", "published_at": "2010-08-15T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fdca54dc", "title": "Lambdas vs. Closures", "url": "https://baddotrobot.com/blog/2010-07-13-lambdas-vs-closures/", "published_at": "2010-07-13T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fd9b766d", "title": "Growing Team Skills", "url": "https://baddotrobot.com/blog/2010-07-11-growing-team-skills/", "published_at": "2010-07-11T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fd55bed4", "title": "Changing Test Gears", "url": "https://baddotrobot.com/blog/2010-07-09-changing-test-gears/", "published_at": "2010-07-09T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fca7e792", "title": "Generate Concordion Overviews", "url": "https://baddotrobot.com/blog/2010-07-07-generate-concordion-overviews/", "published_at": "2010-07-07T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fbc2fd9f", "title": "Objectives", "url": "https://baddotrobot.com/blog/2010-06-17-objectives/", "published_at": "2010-06-17T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fa9b6dd7", "title": "Setter vs Constructor Injection", "url": "https://baddotrobot.com/blog/2010-05-01-setter-vs-constructor-injection/", "published_at": "2010-05-01T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387fb6f3c82", "title": "Un/Marshalling", "url": "https://baddotrobot.com/blog/2010-05-01-unmarshalling/", "published_at": "2010-05-01T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f9ecdd70", "title": "Wrapping Exceptions is Dull", "url": "https://baddotrobot.com/blog/2010-04-25-wrapping-exceptions-is-dull/", "published_at": "2010-04-25T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f9eafa89", "title": "Nibbles the Cat & Concurrency", "url": "https://baddotrobot.com/blog/2010-03-19-nibbles-cat/", "published_at": "2010-03-19T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f905a326", "title": "Type Safe Annotation", "url": "https://baddotrobot.com/blog/2010-01-04-type-safe-annotation/", "published_at": "2010-01-04T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f875bc5c", "title": "Running JUnit tests in parallel", "url": "https://baddotrobot.com/blog/2009-12-29-running-junit-tests-in-parallel/", "published_at": "2009-12-29T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f63793cb", "title": "Deadlock detection in Java", "url": "https://baddotrobot.com/blog/2009-12-24-deadlock/", "published_at": "2009-12-24T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f7c01f0d", "title": "Flickering Tests and a JUnit Rule", "url": "https://baddotrobot.com/blog/2009-12-24-flickering-tests/", "published_at": "2009-12-24T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f6d9d301", "title": "Atomiticy of the Thread class", "url": "https://baddotrobot.com/blog/2009-12-10-atomiticy-of-thread-class/", "published_at": "2009-12-10T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f5a50310", "title": "Thawte claim I'm not to be trusted...", "url": "https://baddotrobot.com/blog/2009-11-11-thawte-claim-im-not-to-be-trusted/", "published_at": "2009-11-11T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f5a6d77e", "title": "Time Flies 1.0", "url": "https://baddotrobot.com/blog/2009-11-11-time-flies/", "published_at": "2009-11-11T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f5213d1a", "title": "Performance Monitoring Basics", "url": "https://baddotrobot.com/blog/2009-10-31-performance-monitoring-part-1/", "published_at": "2009-10-31T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f3949862", "title": "Abstracting ReentrantReadWriteLock", "url": "https://baddotrobot.com/blog/2009-08-01-abstracting-reentrantreadwritelock/", "published_at": "2009-08-01T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f443494e", "title": "Java source for Mac OSX", "url": "https://baddotrobot.com/blog/2009-08-01-java-source-for-mac-osx/", "published_at": "2009-08-01T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f3075e4c", "title": "is(not(instanceOf(smell)));", "url": "https://baddotrobot.com/blog/2009-07-29-isnotinstanceofsmell/", "published_at": "2009-07-29T00:00:00+00:00" }, { "id": "01a08734-5f4b-704e-916b-5387f2be1174", "title": "Convert a Callable to a Runnable", "url": "https://baddotrobot.com/blog/2009-05-29-convert-callable-to-runnable/", "published_at": "2009-05-29T00:00:00+00:00" }, { "id": "01a08734-5f4a-70ec-bcc0-838caa5308b9", "title": "SWTBot vs Window Licker", "url": "https://baddotrobot.com/blog/2009-03-15-swtbot-vs-window-licker/", "published_at": "2009-03-15T00:00:00+00:00" }, { "id": "01a08734-5f4a-70ec-bcc0-838caa1d86d7", "title": "Less is More", "url": "https://baddotrobot.com/blog/2009-02-26-less-is-more/", "published_at": "2009-02-26T00:00:00+00:00" }, { "id": "01a08734-5f4a-70ec-bcc0-838ca91e7b71", "title": "Inferring the Types in a Micro DSL", "url": "https://baddotrobot.com/blog/2009-02-23-infering-type-in-micro-dsl/", "published_at": "2009-02-23T00:00:00+00:00" }, { "id": "01a08734-5f4a-70ec-bcc0-838ca63e8820", "title": "More on Micro DSLs", "url": "https://baddotrobot.com/blog/2009-02-16-more-on-micro-dsls/", "published_at": "2009-02-16T00:00:00+00:00" }, { "id": "01a08734-5f4a-70ec-bcc0-838ca7de4601", "title": "Inheritance vs Composition", "url": "https://baddotrobot.com/blog/2009-01-24-inheritance-vs-composition/", "published_at": "2009-01-24T00:00:00+00:00" } ] posts Claim your blog
Back to baddotrobot.com
Blog · corpus.blog/blogs/baddotrobot.com/posts

baddotrobot.com

baddotrobot.com

2026

2025

2023

2022

2021

2020

2019

2017

2016

2015

2014

2013

2012

2011

2010

2009