Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #6184

S

Stephen Haberman

Personal blog · draconianoverlord.com · on HN as stephenprogramming

Stephen Haberman writes Draconian Overlord, a personal blog at draconianoverlord.com about programming. Since 2010, 13 different Hacker News readers have linked it 35 times, most often “Mono vs. Project Repos? Hurray, Software Sucks”. It is still writing: the last post was on 2026-10-25, and you can follow it by feed.

Visit the blog
35mentions?
13HN people?
2010–2024first – last linked?
Links on Hacker News per year · peak 9 in 2011

Too few sampled comments (2) to say how often HN recommends it.?

Why HN links it

HN readers link this blog for posts on programming languages and implementation, such as Om.next with Relay and GraphQL and Go's approach to the JVM. Few comments discuss the writing itself.

Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Draconian Overlord.

The author on HN?

stephen · 1,687 karma · member since 2008

stephen.haberman@gmail.com draconianoverlord.com (the domain name was available :-)) https://joist-orm.io/

From their public HN profile, which links to this site.

Most-linked posts?

  1. Mono vs. Project Repos? Hurray, Software Sucks
    2 people · 2 mentions · first linked 2019-07-09

What Hacker News says?

  1. > It's a tool for your toolbox, reach for it when needed Sure, apologies for being negative about a tool you've worked on and are rightly proud of. I'm sure you already have more users than any open source project I've ever written. :-) I struggle a bit at this point in my career, as I've made enough mistakes and seen enough mistakes, that I generally have strong gut opinions on "yeah, that's probably not going to w…

    Comment linking /2018/01/21/microserving-testing-at-scale.html

    on “Polly.js – Record, replay, and stub HTTP interactions”
  2. Submitted Dammit, MySQL as a story · 141 points

    HN discussion
  3. Yeah, I don't get the anti-schema sentiment either. Coincidentally, I just wrote up my thoughts on it yesterday: http://draconianoverlord.com/2012/05/08/whats-wrong-with-a-s...

    Comment linking /2012/05/08/whats-wrong-with-a-schema.html

    on “Goodbye, CouchDB”
  4. Submitted Stuck on a Dead Framework as a story · 14 points

    HN discussion
  5. I'm going to have to re-read the post a few times, but my thoughts on this topic are that cross-system automated tests are futile because, by definition of being "not your system", you can't easily and deterministically control the input state (of the combined your system+not-your-system), so any tests you build on top of this will be like building on quick sand: http://www.draconianoverlord.com/2017/08/23/futility-…

    Comment linking /2013/04/13/services-should-come-with-stubs.html

    on “Testing Microservices the sane way”
  6. Submitted DHH vs. Fowler as a story · 7 points

    HN discussion
  7. I agree, just rendering is a server-side notion that obviously can work on the client-side, but I don't think is ideal. Web 1.0/server-side templates had to render and sling strings of HTML around because that's all you could do (Rails's RJS was a cool Web 1.5 hack in that regard). But once you're on the client-side, and have state, I think binding/mutating the DOM in-place is better than trying to explicitly mainta…

    Comment linking /2011/12/10/todomvc-in-gwt-mpv.html

    on “Twitter releases new JS template engine: hogan.js”
  8. Submitted Writing Emails Asking for Help as a story · 4 points

    HN discussion
  9. Agreed. A test should care about: input, "do something", output. Then you can refactor the heck out of "do something" and your test (which is ideally documenting the use cases you need to support) doesn't have to change at all. For me, preferring stubs (dummy implementations of your external dependencies), when possible/appropriate, is a good way to avoid "your test is just a repetition of which method calls your im…

    Comment linking /2010/07/09/why-i-dont-like-mocks.html

    on “Zen and the Art of Unit Testing”
  10. Submitted A GWT Developer’s Reaction to Dart as a story · 4 points

    HN discussion
  11. > During the migration, there were a number of fields that should have been set in Mongo but were not Imagine that...this fascination with schema-less datastores just baffles me: http://draconianoverlord.com/2012/05/08/whats-wrong-with-a-s... I'm sure schema-less datastores are a huge win for your MVP release when it's all greenfield development, but from my days working for enterprises, it seems like you're just be…

    Comment linking /2012/05/08/whats-wrong-with-a-schema.html

    on “Migrating From MongoDB To Riak At Bump”
  12. Submitted Mono vs. Project repos? Hurray, software sucks as a story · 3 points

    HN discussion
  13. Personally, I feel that a lot of the Java hate is misplaced. Just because most Java programmers/architects use/love J2EE, crazy XML/DI frameworks, etc. is not a fundamental attribute of the language itself, just an unfortunate result of how it's mainstream usage has evolved. I assert you can write "nice Java", either with something like (shameless plug): http://draconianoverlord.com/2011/03/17/frameworkless-di.htm..…

    Comment linking /2011/03/17/frameworkless-di.html

    on “Dependency Injection is a Virtue”
  14. Submitted Mono vs. Project Repos? Hurray, Software Sucks as a story · 3 points

    HN discussion
  15. Posted a comment on the site, but to me the real win comes when you add grep to your aliases. That saves a ton of keystrokes, assuming you have deep directories in your project: http://www.draconianoverlord.com/2010/03/04/git-config.html

    Comment linking /2010/03/04/git-config.html

    on “Working with git? These aliases will save you hours”
  16. Submitted Are Classes and Prototypes That Different? as a story · 3 points

    HN discussion
  17. The big breakthrough here is obviously GraphQL. Not React or Relay, since there are many competing implementations that do similar things, but GraphQL. Even though there are graph query languages out there (Gremlin, etc) they were not suited to querying JSON over the wire. GraphQL is ideal. For my next project, I hope to do a Clojure implementation of most of GraphQL, because I think it can be married to Om.Next in…

    Comment linking /2015/08/11/rest-is-aging-graphql.html

    on “Om.next from a Relay / GraphQL Perspective”
  18. Submitted Why No One Uses Scala’s Structural Typing as a story · 3 points

    HN discussion
  19. enneff · 2011-07-10Recommends
    I'm interested to see they approach they'll take with Go's interfaces. When Go was first being developed we considered targeting the JVM directly, but there seemed to be no efficient way of implementing Go-style interfaces, or "structural typing" (I think Scala uses runtime reflection to achieve this, which is slow). Here's an interesting article on shoe-horning structural typing into the JVM: http://www.draconianov…

    Comment linking /2010/01/17/caller-side-structural-typing.html

    on “Go for the JVM, written in Scala”
  20. Submitted The One True Way of Indentation (2016) as a story · 2 points

    HN discussion
  21. Agreed; if you're looking for a tldr (edit: for sharing with others, e.g. I know you're convinced), I recently made a few edits to my pontification from awhile ago: http://www.draconianoverlord.com/2010/11/24/why-im-a-static-... I really like the OP's point about "types make abstractions explicit". That is a great articulation that I'm going to add to my post as well, with attribution.

    Comment linking /2010/11/24/why-im-a-static-typing-bigot.html

    on “Why Angular 2 Switched to TypeScript”
  22. Submitted The Futility of Cross-System Integration Testing (2017) as a story · 1 points

    HN discussion
  23. FWIW the most consistent (as in non-flaky) selenium tests I've worked with used hidden DOM elements to synchronize the selenium driver with the JS code: http://www.draconianoverlord.com/2011/10/14/sane-selenium-te... Basically every JS ajax call (or JS promise, though we didn't use any of those at the time) would update a hidden DOM element's inner text, e.g. the `#pendingAjaxRequests` inner text would go to 1, or 2…

    Comment linking /2011/10/14/sane-selenium-testing.html

    on “Consistent Selenium Testing in Python”
  24. Submitted First Principles as a story · 1 points

    HN discussion
  25. My caution with recording is that I've found re-recording to get progressively hard/more brittle as time progresses, b/c the test system inevitably drifts further and further from the state it was in when the test was first recorded: https://www.draconianoverlord.com/2018/06/20/skepticism-abou... Granted, it creates more work, but personally I would follow the OP article's advice, and have your production code's tes…

    Comment linking /2018/06/20/skepticism-about-record/replay-tests.html/

    on “Test Against Reality”
  26. Submitted Dislike for Pull Requests as a story · 1 points

    HN discussion
  27. Great article & visualizations of how systems have gotten more complex over time. Per his suggestion of "testing against a service stub / fake server" (instead of method-level mocking), my suggestion for large internal orgs is double down on this and have your service owners to ship their own stubs: https://www.draconianoverlord.com/2013/04/13/services-should... I.e. if your `accounts-service` team has an API that i…

    Comment linking /2013/04/13/services-should-come-with-stubs.html/

    on “Test Against Reality”
  28. Submitted Framework-less Dependency Injection as a story · 1 points

    HN discussion
  29. Submitted JDK 1.8/1.7 Compatibility Gotcha as a story · 1 points

    HN discussion
  30. Submitted Sane AJAX Testing in Selenium as a story · 1 points

    HN discussion

Search all of HN for draconianoverlord.com

Linked by the same people?