Top all-time · #6184
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.
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.
Most-linked posts?
- Mono vs. Project Repos? Hurray, Software Sucks2 people · 2 mentions · first linked 2019-07-09
What Hacker News says?
> 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”Submitted Dammit, MySQL as a story · 141 points
HN discussionYeah, 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”Submitted Stuck on a Dead Framework as a story · 14 points
HN discussionI'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”Submitted DHH vs. Fowler as a story · 7 points
HN discussionI 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”Submitted Writing Emails Asking for Help as a story · 4 points
HN discussionAgreed. 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”Submitted A GWT Developer’s Reaction to Dart as a story · 4 points
HN discussion> 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”Submitted Mono vs. Project repos? Hurray, software sucks as a story · 3 points
HN discussionPersonally, 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”Submitted Mono vs. Project Repos? Hurray, Software Sucks as a story · 3 points
HN discussionPosted 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”Submitted Are Classes and Prototypes That Different? as a story · 3 points
HN discussionThe 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”Submitted Why No One Uses Scala’s Structural Typing as a story · 3 points
HN discussionI'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”Submitted The One True Way of Indentation (2016) as a story · 2 points
HN discussionAgreed; 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”Submitted The Futility of Cross-System Integration Testing (2017) as a story · 1 points
HN discussionFWIW 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”Submitted First Principles as a story · 1 points
HN discussionMy 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”Submitted Dislike for Pull Requests as a story · 1 points
HN discussionGreat 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”Submitted Framework-less Dependency Injection as a story · 1 points
HN discussionSubmitted JDK 1.8/1.7 Compatibility Gotcha as a story · 1 points
HN discussionSubmitted Sane AJAX Testing in Selenium as a story · 1 points
HN discussion