Draconian Overlord

Oppressing software entropy

Now Organized!

I've written a lot of posts over the years, so organized them by category.

You can also see the full list.


I'm a big fan of testing, and spend a lot of time thinking about and optimzing the readability and maintability of test suites.
07 Aug 2018 Integration Test is a Useless Term
08 Jul 2018 Avoid Using External Files in Tests
20 Jun 2018 Skepticism About Record/Replay Tests
28 Nov 2017 Using Given/When/Then For Tests
30 Sep 2017 Dealing with Selenium API Gotchas
23 Aug 2017 The Futility of Cross-System Integration Testing
26 Jun 2017 The Curse of Webapps Being Visual for TDD
07 Jan 2017 Obsessively Simple Test Values
29 Nov 2015 The Holy Grail of Database Testing
25 May 2014 The Pain of Small Methods
12 Apr 2013 East-Oriented Programming
26 Dec 2012 High Level Assertions
15 Dec 2012 Good Test, Bad Test
23 Jul 2012 Faking at the Right Level

Language Musings

As most programmers, I have obsessed about programming languages over the years, particularly pining for the syntax and productivity of dynamic languages, but with the safety blanket of a static compiler.
30 Jun 2018 Shape is a Better Term Than Object
13 Jun 2018 Thoughts on Go (from a JVM Programmer)
30 May 2018 Is Haskell's Complexity Artificial?
28 Jan 2014 Can Java Be Good Enough?
08 Mar 2013 Stay in the Language
17 Apr 2012 Continually Improving Browser Technology
17 Jan 2010 Caller-Side Structural Typing
12 May 2009 Dynamic Keywords
06 Feb 2009 Boojay is Promising


At Bizo, I wrote front-end code, and pre-TypeScript (~2010) so we used GWT. GWT could be a frustrating experience, so I also wrote a framework, Tessell, to make our lives easier.
22 Feb 2014 What I Would Remove from GWT--Basically Everything
30 Aug 2012 Tessell Gets Member Changed Events
23 Jun 2012 CSS Quirk, Collapsing Margins
16 Jun 2012 ErraiUI Initial Impression
10 Dec 2011 todomvc in Tessell
14 Oct 2011 Sane AJAX Testing in Selenium
03 Oct 2011 A GWT Developer's Reaction to Dart
23 Nov 2010 GWT Handler Registrations
30 Aug 2010 Doubting GMail-style Loading Indicators
13 Aug 2010 Collecting User Actions with GWT
07 Jul 2010 GWT Seamless Deployments
28 Jun 2010 gwt-mpv-apt 1.1
07 Apr 2010 GWT View Generation
31 Mar 2010 GWT MVP Tables


Joist is a Java ORM I wrote in ~2007 that uses code generation to get Rails-ish productivity (no getter, setter, annotation, etc. boilerplate) and avoid Hibernate (on 500+ table enterprise projects, the Hibernate startup time was too slow for TDD).
02 Nov 2012 Joist Execute Class
24 Jun 2012 Joist Snapshots, A 2nd-Level Cache Alternative
29 Mar 2012 Joist Builder Defaults
21 Mar 2012 Joist, the Java ORM for Me
22 Aug 2010 Joist Tip, Fast Database Resets
15 Aug 2010 Joist vs. Hibernate SQL
16 Jul 2010 Joist/ORM Prefetching
14 Jul 2009 Validation with Objects Instead Of Annotations


Lately I've been hacking on TypeScript and enjoy it; I could see it becoming my favorite language.
05 Sep 2019 Hooks Don't Have To Be Functional
28 Mar 2018 Stubs in TypeScript using Mapped Types
20 Mar 2018 Variations on a State Machine
16 Mar 2018 Are Classes and Prototypes that Different?


We wrote a lot of Scala at Bizo. The syntax is great, the compile times are not.
29 Dec 2014 Trait Rules of Thumb
29 Dec 2014 Spark Size Tracking
12 Feb 2014 Spark Report Patterns
22 Jan 2013 What Makes Spark Exciting
29 Dec 2012 Spark Test
14 Dec 2012 Scala Implicit Conversion with Tuples
04 Oct 2011 Why No One Uses Scala's Structural Typing
10 Mar 2010 Lift Templating s/is/was a Joke
10 Sep 2009 Running ScalaTest Spec Tests from Eclipse
13 Jul 2009 Scala Per-Instance Singletons


I've done a ton of Java, for better or worse. I like the fast/rock solid tooling, which pays off for "in-the-large" programming, but not the boilerpate, which sucks for "in-the-small" programming. I also hate how slow it innovates compared to C# and TypeScript.
27 Nov 2015 Using Byteman To Debug Logging
07 Oct 2014 Moving to Gradle
03 Oct 2014 jOOQ Went Commercial
01 Apr 2014 JDK 1.8/1.7 Compatibility Gotcha
29 Aug 2012 Optional Folders in Eclipse
22 Jun 2012 How to Sanely Use Ivy's Artifact Tags
28 Feb 2011 Preferred Build Setup
18 Jul 2010 Publishing to Maven Repos with Ivy
21 Jul 2009 Bindgen 2.0 Released
29 Apr 2009 The IBM JDK is Awesome
23 Apr 2009 Ivy is Useful
16 Feb 2009 Grails Stacktraces
18 Jan 2009 JavaFX Decompiled
10 Jan 2009 War-less Development with Jetty


I like to read.
25 Aug 2019 PoSD Notes
25 Jul 2019 Toyota Katas Notes


I need to find a better spot for these.
15 Jul 2012 Politely Refactoring Code