David Bryant Copeland

naildrivin5.com · Personal blog · on HN since 2009

David Bryant Copeland, a software developer, writes about Rails, Scala, web components, software design, and the security of npm.

What HN saysHN commenters link his npm security post on multiple dependency versions, and recommend his Scala tour, though one notes it is dated.
60HN people shared it
7linked it in comments
68stories submitted
909story points
8 months agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Announcing Rails 6: An Imagined Keynote
    5 people · 11 points · first shared 2016 · 1 comments on HN
  2. 2
    Web Components in Earnest
    5 people · 8 points · first shared 2024 · discussion on HN
  3. 3
    Another Tour of Scala
    5 people · 4 points · first shared 2009 · discussion on HN
  4. 4
    Source Code Typography
    3 people · 73 points · first shared 2013 · 65 comments on HN
  5. 5
    Four Better Rules for Software Design
    3 people · 5 points · first shared 2019 · discussion on HN
  6. 6
    Single Responsibility Principle and Rails
    3 people · 5 points · first shared 2012 · 1 comments on HN
  7. 7
    Why I'd never work for Google, Twitter, or Facebook
    2 people · 215 points · first shared 2011 · 163 comments on HN
  8. 8
    A Real Keyboard for Programmers?
    2 people · 38 points · first shared 2013 · 80 comments on HN
  9. 9
    9 facets of an awesome command-line app
    2 people · 7 points · first shared 2012 · discussion on HN
  10. 10
    Production is All That Matters
    2 people · 2 points · first shared 2013 · discussion on HN
  11. 11
  12. 12
    Brut: A New Web Framework for Ruby
    1 people · 208 points · first shared 2025 · 74 comments on HN
  13. 13
    If You Call Out Bad Code, Make Sure It's Bad First
    1 people · 174 points · first shared 2013 · 128 comments on HN
  14. 14
  15. 15
    Rails' Degenerate Front-End Support
    1 people · 16 points · first shared 2014 · 2 comments on HN

What HN people wrote when they linked it

davetron5000 · 2025-05-06
This is my favorite game for the 2600. I built a clone of it for Windows using Direct X in probably 1999/2000. I don't have a Windows machine, but I think Microsoft's obsession with backward compatibility means it probably still works: https://naildrivin5.com/adventure/index.html Here's the C++ code in all its glory: https://github.com/davetron5000/adventureclone/ It replicates the 2600 game, and adds two new levels (additional castle and maze), and two new (optional) objects, a candle that shows more of the labyrinths, and a shield that prevents the dragons from eating you.
niftich · 2016-08-14
Since they're compiled into the code, it means you can't change them without recompiling, so they're not actually configuration. But they're not actually code either, so they can't be subclassed or inherited, don't support generics, and have other quirks [1]. Furthermore, they are a sort of explicit notation to make you feel like you're getting 'convention' over 'configuration', but if it were truly convention you wouldn't need them in the first place. For example, to teach my class how to serialize itself into JSON, I can compile com.fasterxml.jackson annotations into it, but by doing so I've made a particular JSON library a dependency of myproject-datatypes. I'd rather my myproject-controller or some other layer of my application take care of how the data looks over JSON. Luckily Jackson supports an entirely different way [2] of teaching it how to map a class, but not all libraries are so nice. That is not to say annotations don't have their place. They're good declarative structures, but in my opinion they are used in places where they shouldn't be. This blog post [3] from 2009 accurately describes how I feel about annotations. [1] http://www.cowtowncoder.com/blog/archives/2009/02/entry_216.html [2] https://github.com/FasterXML/jackson-docs/wiki/JacksonMixInAnnotations [2] http://naildrivin5.com/blog/2009/03/11/java-annotations-javas-love-of-…
felipemesquita · 2025-05-12
This post (2019) by David Bryant Copeland about npm security goes into some of the complications that arise when multiple versions of a dependency are allowed to be loaded simultaneously: https://naildrivin5.com/blog/2019/07/10/the-frightening-state-security…
wsargent · 2017-03-27
The Artima book by Odersky is the bible, and so you need that one. For reference, I like http://naildrivin5.com/scalatour although it's 2.8 rather than the current 2.12. For style guide, I'd go with Li Hiayo's blog, notably the Strategic Style series: http://www.lihaoyi.com/post/StrategicScalaStylePracticalTypeSafety.htm…
partycoder · 2017-03-27
"Another tour of Scala": http://naildrivin5.com/scalatour was informative for me. It's a bit dated, mostly targetting Scala 2.8. Current version is 2.12. But should not be fundamentally different.
phillmv · 2012-06-22
He also brought up http://www.naildrivin5.com/blog/2012/06/10/single-responsibility-princ… - and I had a hard figuring out if it was meant as satire or not.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close