41554 blogs · [ { "id": "01a0876f-4f39-7325-8f34-82572b9ca0c7", "title": "Truss v2: Emotion to StyleX to Vite", "url": "https://www.draconianoverlord.com/2026/03/29/truss-v2.html/", "published_at": "2026-03-29T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572c9252fc", "title": "Property Graph Diagrams", "url": "https://www.draconianoverlord.com/2026/01/02/property-graph-diagrams.html/", "published_at": "2026-01-02T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572d1cfd32", "title": "Reactables Notes", "url": "https://www.draconianoverlord.com/2025/12/21/reactables-notes.html/", "published_at": "2025-12-21T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572d8d8a5c", "title": "Fixing Async Stack Traces", "url": "https://www.draconianoverlord.com/2025/04/17/fixing-async-stack-traces.html/", "published_at": "2025-04-17T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572e459146", "title": "Using Single Table Inheritance to Evolve Entities", "url": "https://www.draconianoverlord.com/2024/03/30/using-sti-to-evolve-entities.html/", "published_at": "2024-03-30T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572ec8b042", "title": "Immutability Doesn't Matter with useSES", "url": "https://www.draconianoverlord.com/2023/09/08/immutability-and-use-ses.html/", "published_at": "2023-09-08T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572ee41129", "title": "Bitemporal Thoughts", "url": "https://www.draconianoverlord.com/2023/07/23/bitemporal.html/", "published_at": "2023-07-23T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572f463601", "title": "Linear Tech Talk Notes", "url": "https://www.draconianoverlord.com/2023/07/04/linear-notes.html/", "published_at": "2023-07-04T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82572fea7ce3", "title": "Vulcan.io Looks Amazing", "url": "https://www.draconianoverlord.com/2023/05/21/vulcan-looks-neat.html/", "published_at": "2023-05-21T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82573009084b", "title": "Figma Is Not Actually Collaborative", "url": "https://www.draconianoverlord.com/2023/05/07/figma-is-not-collaborative.html/", "published_at": "2023-05-07T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-825730238326", "title": "Can and Should Instead of Is and Get", "url": "https://www.draconianoverlord.com/2022/01/17/can-and-should-instead-of-is-and-get.html/", "published_at": "2022-01-17T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-825730ec3e25", "title": "Always Separate User Intent", "url": "https://www.draconianoverlord.com/2020/03/28/always-separate-user-intent.html/", "published_at": "2020-03-28T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257312d906d", "title": "Teaching TypeScript about GraphQL Default Resolvers", "url": "https://www.draconianoverlord.com/2019/11/27/default-field-resolvers.html/", "published_at": "2019-11-27T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-82573180cbfb", "title": "Hooks Don't Have To Be Functional", "url": "https://www.draconianoverlord.com/2019/09/05/hooks-dont-have-to-be-functional.html/", "published_at": "2019-09-05T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257321e5c88", "title": "GraphQL Typed Root Pattern", "url": "https://www.draconianoverlord.com/2019/08/25/graphql-typed-root-pattern.html/", "published_at": "2019-08-25T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257324f8b9d", "title": "Philosophy of Software Design Notes", "url": "https://www.draconianoverlord.com/2019/08/25/posd-review.html/", "published_at": "2019-08-25T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257325fce2b", "title": "Toyota Katas Notes", "url": "https://www.draconianoverlord.com/2019/07/25/toyota-katas.html/", "published_at": "2019-07-25T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-825732a3d450", "title": "Integration Test is a Useless Term", "url": "https://www.draconianoverlord.com/2018/08/07/integration-test-is-a-useless-term.html/", "published_at": "2018-08-07T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257335f938a", "title": "Mono vs. Project Repos? Hurray, software sucks", "url": "https://www.draconianoverlord.com/2018/07/15/mono-repos.html/", "published_at": "2018-07-15T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257339fddc7", "title": "Avoid Using External Files in Tests", "url": "https://www.draconianoverlord.com/2018/07/08/avoid-external-files-in-tests.html/", "published_at": "2018-07-08T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-825733d8ab84", "title": "The Half-Truth of GRPC & GraphQL Consistency", "url": "https://www.draconianoverlord.com/2018/07/02/half-truth-of-grpc-graphql-consistency.html/", "published_at": "2018-07-02T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-825733e3a2a4", "title": "GraphQL Seems Annoying For Mobile", "url": "https://www.draconianoverlord.com/2018/06/30/graphql-seems-annoying-for-mobile.html/", "published_at": "2018-06-30T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257346b1856", "title": "Shape is a Better Term Than Object", "url": "https://www.draconianoverlord.com/2018/06/30/shape-is-a-better-term-than-object.html/", "published_at": "2018-06-30T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-8257355002b6", "title": "I Forgot How Much I Don't Like Pull Requests", "url": "https://www.draconianoverlord.com/2018/06/27/i-forgot-how-much-i-dont-like-pull-requests.html/", "published_at": "2018-06-27T00:00:00+00:00" }, { "id": "01a0876f-4f39-7325-8f34-825735796553", "title": "Skepticism About Record/Replay Tests", "url": "https://www.draconianoverlord.com/2018/06/20/skepticism-about-record-replay-tests.html/", "published_at": "2018-06-20T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8407cdcd0", "title": "Thoughts on Go (from a JVM Programmer)", "url": "https://www.draconianoverlord.com/2018/06/13/thoughts-on-go.html/", "published_at": "2018-06-13T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c840d07690", "title": "Is Haskell's Complexity Artificial?", "url": "https://www.draconianoverlord.com/2018/05/30/haskell-style.html/", "published_at": "2018-05-30T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c841181ff3", "title": "Applying Virtual DOM to Systems Integrations", "url": "https://www.draconianoverlord.com/2018/05/29/virtual-dom-systems-integration.html/", "published_at": "2018-05-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8413a88ff", "title": "Stubs in TypeScript using Mapped Types", "url": "https://www.draconianoverlord.com/2018/03/28/stubs-in-typescript.html/", "published_at": "2018-03-28T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c842156013", "title": "Variations on a State Machine", "url": "https://www.draconianoverlord.com/2018/03/20/variations-on-a-state-machine.html/", "published_at": "2018-03-20T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8421c0dce", "title": "Are Classes and Prototypes that Different?", "url": "https://www.draconianoverlord.com/2018/03/16/are-classes-and-prototypes-that-different.html/", "published_at": "2018-03-16T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84239495c", "title": "Micro Service Testing at Scale", "url": "https://www.draconianoverlord.com/2018/01/21/microserving-testing-at-scale.html/", "published_at": "2018-01-21T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8423d8713", "title": "Using Given/When/Then For Tests", "url": "https://www.draconianoverlord.com/2017/11/28/given-when-then.html/", "published_at": "2017-11-28T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c842fb2954", "title": "Dealing with Selenium API Gotchas", "url": "https://www.draconianoverlord.com/2017/09/30/dealing-with-selenium-api-gotchas.html/", "published_at": "2017-09-30T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c843589b67", "title": "The Futility of Cross-System Integration Testing", "url": "https://www.draconianoverlord.com/2017/08/23/futility-of-cross-system-integration-testing.html/", "published_at": "2017-08-23T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c843bc6c54", "title": "Compassionate Code Reviews", "url": "https://www.draconianoverlord.com/2017/08/18/compassionate-reviews.html/", "published_at": "2017-08-18T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c843beeea8", "title": "Tools, Productivity, and Investing in Yourself", "url": "https://www.draconianoverlord.com/2017/08/12/tools-productivity-investing.html/", "published_at": "2017-08-12T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c844089528", "title": "The Curse of Webapps Being Visual for TDD", "url": "https://www.draconianoverlord.com/2017/06/26/curse-of-webapps-being-visual.html/", "published_at": "2017-06-26T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8448dcc43", "title": "Writing Emails Asking for Help", "url": "https://www.draconianoverlord.com/2017/03/03/writing-emails-asking-for-help.html/", "published_at": "2017-03-03T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8454524b8", "title": "Gmail Filter Tips", "url": "https://www.draconianoverlord.com/2017/02/04/gmail-filter-tips.html/", "published_at": "2017-02-04T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8455fb1de", "title": "Obsessively Simple Test Values", "url": "https://www.draconianoverlord.com/2017/01/07/obsessively-simple-test-values.html/", "published_at": "2017-01-07T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c846567c51", "title": "First Principles", "url": "https://www.draconianoverlord.com/2016/12/16/first-principles.html/", "published_at": "2016-12-16T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8473835ad", "title": "The One True Way Of Indentation", "url": "https://www.draconianoverlord.com/2016/09/16/one-true-way-of-indenting.html/", "published_at": "2016-09-16T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c847fc7b29", "title": "Staffing a Front-End Team", "url": "https://www.draconianoverlord.com/2016/07/22/staffing-a-front-end-team.html/", "published_at": "2016-07-22T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c848bda307", "title": "Stuck on a Dead Framework", "url": "https://www.draconianoverlord.com/2016/06/24/stuck-on-a-dead-framework.html/", "published_at": "2016-06-24T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c849139355", "title": "The Holy Grail of Database Testing", "url": "https://www.draconianoverlord.com/2015/11/29/holy-grail-of-database-testing.html/", "published_at": "2015-11-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84a119f73", "title": "Using Byteman To Debug Logging", "url": "https://www.draconianoverlord.com/2015/11/27/byteman-is-still-useful.html/", "published_at": "2015-11-27T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84a2b39a9", "title": "REST is Aging, GraphQL is the New Thing", "url": "https://www.draconianoverlord.com/2015/08/11/rest-is-aging-graphql.html/", "published_at": "2015-08-11T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84b00bee8", "title": "MoreUnit Supports Custom Languages", "url": "https://www.draconianoverlord.com/2015/08/09/moreunit-supports-custom-languages.html/", "published_at": "2015-08-09T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84b3323b0", "title": "Musings on Flatpack", "url": "https://www.draconianoverlord.com/2015/04/17/musings-on-flatpack.html/", "published_at": "2015-04-17T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84baec18b", "title": "Spark Size Tracking", "url": "https://www.draconianoverlord.com/2014/12/29/spark-size-tracking.html/", "published_at": "2014-12-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84c0b9ac8", "title": "Trait Rules of Thumb", "url": "https://www.draconianoverlord.com/2014/12/29/trait-rules-of-thumb.html/", "published_at": "2014-12-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84c159978", "title": "Moving to Gradle", "url": "https://www.draconianoverlord.com/2014/10/07/moving-to-gradle.html/", "published_at": "2014-10-07T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84cae9dde", "title": "jOOQ Went Commercial", "url": "https://www.draconianoverlord.com/2014/10/03/jooq-went-commercial.html/", "published_at": "2014-10-03T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84d713853", "title": "From xmonad to i3 on Ubuntu 14.04", "url": "https://www.draconianoverlord.com/2014/05/26/from-xmonad-to-i3.html/", "published_at": "2014-05-26T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84da57af2", "title": "The Pain of Small Methods", "url": "https://www.draconianoverlord.com/2014/05/25/pain-of-small-methods.html/", "published_at": "2014-05-25T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84e3ed27e", "title": "JDK 1.8/1.7 Compatibility Gotcha", "url": "https://www.draconianoverlord.com/2014/04/01/jdk-compatibility.html/", "published_at": "2014-04-01T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84ef8e7b0", "title": "What I Would Remove from GWT--Basically Everything", "url": "https://www.draconianoverlord.com/2014/02/22/what-id-remove-from-gwt.html/", "published_at": "2014-02-22T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84f1354d6", "title": "Spark Report Patterns", "url": "https://www.draconianoverlord.com/2014/02/12/spark-patterns.html/", "published_at": "2014-02-12T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c84fde5791", "title": "Dependency Injection Thought Experiment", "url": "https://www.draconianoverlord.com/2014/02/08/di-thought-experiment.html/", "published_at": "2014-02-08T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c850c40ea2", "title": "Copy & Extend, A Great Way To Learn", "url": "https://www.draconianoverlord.com/2014/02/03/copy-and-extend.html/", "published_at": "2014-02-03T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85182f6e5", "title": "Can Java Be Good Enough?", "url": "https://www.draconianoverlord.com/2014/01/28/can-java-be-good-enough.html/", "published_at": "2014-01-28T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c851af1395", "title": "Using Your Database as a Queue", "url": "https://www.draconianoverlord.com/2014/01/27/database-as-a-queue.html/", "published_at": "2014-01-27T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85260f213", "title": "If you cherry pick, your branch model is wrong", "url": "https://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html/", "published_at": "2013-09-07T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c852e91dc7", "title": "Services Should Come with Stubs", "url": "https://www.draconianoverlord.com/2013/04/13/services-should-come-with-stubs.html/", "published_at": "2013-04-13T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8534fbe9e", "title": "East-Oriented Programming", "url": "https://www.draconianoverlord.com/2013/04/12/east-oriented-programming.html/", "published_at": "2013-04-12T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8543249a6", "title": "Google's Build System is a Giant Maven Repo", "url": "https://www.draconianoverlord.com/2013/03/23/google-giant-maven-repo.html/", "published_at": "2013-03-23T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c854b6a982", "title": "Stay in the Language", "url": "https://www.draconianoverlord.com/2013/03/08/stay-in-the-language.html/", "published_at": "2013-03-08T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85529a5ab", "title": "What Makes Spark Exciting", "url": "https://www.draconianoverlord.com/2013/01/22/what-makes-spark-exciting.html/", "published_at": "2013-01-22T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c855dae1cb", "title": "DHH vs. Fowler", "url": "https://www.draconianoverlord.com/2013/01/07/dhh-vs-fowler.html/", "published_at": "2013-01-07T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8562dd15a", "title": "Spark Test", "url": "https://www.draconianoverlord.com/2012/12/29/spark-test.html/", "published_at": "2012-12-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c856f7b9bd", "title": "High Level Assertions", "url": "https://www.draconianoverlord.com/2012/12/26/high-level-assertions.html/", "published_at": "2012-12-26T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c857c67b2f", "title": "Good Test, Bad Test", "url": "https://www.draconianoverlord.com/2012/12/15/good-test-bad-test.html/", "published_at": "2012-12-15T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85870e837", "title": "Scala Implicit Conversion with Tuples", "url": "https://www.draconianoverlord.com/2012/12/14/scala-implicit-conversion-with-tuples.html/", "published_at": "2012-12-14T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85892d71d", "title": "Reinvent 2012 Bezos Notes", "url": "https://www.draconianoverlord.com/2012/11/30/reinvent-bezos.html/", "published_at": "2012-11-30T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85972591d", "title": "Reinvent 2012 Keynote Notes", "url": "https://www.draconianoverlord.com/2012/11/29/reinvent-keynotes.html/", "published_at": "2012-11-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85991ba72", "title": "Joist Execute Class", "url": "https://www.draconianoverlord.com/2012/11/02/joist-execute.html/", "published_at": "2012-11-02T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c859d3a0e5", "title": "Strangeloop 2012--VoltDB", "url": "https://www.draconianoverlord.com/2012/10/14/strangeloop-voltdb.html/", "published_at": "2012-10-14T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85a1043d7", "title": "Brief Dependency Injection Skeptic", "url": "https://www.draconianoverlord.com/2012/10/07/brief-di-skeptic.html/", "published_at": "2012-10-07T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85af5f9b7", "title": "Aggregate Roots in SQL", "url": "https://www.draconianoverlord.com/2012/09/16/aggregate-roots-in-sql.html/", "published_at": "2012-09-16T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85b5d61f7", "title": "Building Sane Rich User Interfaces", "url": "https://www.draconianoverlord.com/2012/09/15/sane-rich-uis.html/", "published_at": "2012-09-15T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85c35922f", "title": "Screencasts in Linux", "url": "https://www.draconianoverlord.com/2012/09/14/screencasts-in-linux.html/", "published_at": "2012-09-14T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85cb09173", "title": "Tessell Gets Member Changed Events", "url": "https://www.draconianoverlord.com/2012/08/30/tessell-gets-member-changed-events.html/", "published_at": "2012-08-30T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85d085db9", "title": "Optional Folders in Eclipse", "url": "https://www.draconianoverlord.com/2012/08/29/eclipse-optional-folders.html/", "published_at": "2012-08-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85d29881a", "title": "Faking at the Right Level", "url": "https://www.draconianoverlord.com/2012/07/23/faking-at-the-right-level.html/", "published_at": "2012-07-23T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85db5ad36", "title": "Politely Refactoring Code", "url": "https://www.draconianoverlord.com/2012/07/15/politely-refactoring-code.html/", "published_at": "2012-07-15T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85e4e1c20", "title": "Joist Snapshots, A 2nd-Level Cache Alternative", "url": "https://www.draconianoverlord.com/2012/06/24/joist-snapshots.html/", "published_at": "2012-06-24T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85f3b8d9e", "title": "CSS Quirk, Collapsing Margins", "url": "https://www.draconianoverlord.com/2012/06/23/collapsing-margins.html/", "published_at": "2012-06-23T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85fb31904", "title": "How to Sanely Use Ivy's Artifact Tags", "url": "https://www.draconianoverlord.com/2012/06/22/ivy-artifact-tags.html/", "published_at": "2012-06-22T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c85fcb426a", "title": "ErraiUI Initial Impression", "url": "https://www.draconianoverlord.com/2012/06/16/errai-ui-initial-impression.html/", "published_at": "2012-06-16T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8608e24eb", "title": "Abstracting Types Across Domains", "url": "https://www.draconianoverlord.com/2012/06/16/types-across-domains.html/", "published_at": "2012-06-16T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c860ac511e", "title": "What's Wrong with a Schema?", "url": "https://www.draconianoverlord.com/2012/05/08/whats-wrong-with-a-schema.html/", "published_at": "2012-05-08T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8619fcb3d", "title": "Continually Improving Browser Technology", "url": "https://www.draconianoverlord.com/2012/04/17/browser-technology.html/", "published_at": "2012-04-17T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c861e3b75e", "title": "Joist Builder Defaults", "url": "https://www.draconianoverlord.com/2012/03/29/joist-builder-defaults.html/", "published_at": "2012-03-29T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8629a1c31", "title": "Private Static Factory Method Chord", "url": "https://www.draconianoverlord.com/2012/03/24/private-static-factory-chord.html/", "published_at": "2012-03-24T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c86359ceaf", "title": "Joist, the Java ORM for Me", "url": "https://www.draconianoverlord.com/2012/03/21/joist-orm.html/", "published_at": "2012-03-21T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c863bd7327", "title": "todomvc in Tessell", "url": "https://www.draconianoverlord.com/2011/12/10/todomvc-in-gwt-mpv.html/", "published_at": "2011-12-10T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c863ca341b", "title": "Sane AJAX Testing in Selenium", "url": "https://www.draconianoverlord.com/2011/10/14/sane-selenium-testing.html/", "published_at": "2011-10-14T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c8640b0d75", "title": "Why No One Uses Scala's Structural Typing", "url": "https://www.draconianoverlord.com/2011/10/04/why-no-one-uses-scala-structural-typing.html/", "published_at": "2011-10-04T00:00:00+00:00" }, { "id": "01a0876f-4f3a-7196-8d64-a6c864f9fb70", "title": "A GWT Developer's Reaction to Dart", "url": "https://www.draconianoverlord.com/2011/10/03/reaction-to-dart.html/", "published_at": "2011-10-03T00:00:00+00:00" } ] posts Claim your blog
Back to draconianoverlord.com
Blog · corpus.blog/blogs/draconianoverlord.com/posts

draconianoverlord.com

draconianoverlord.com

2026

2025

2024

2023

2022

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011