David Bryant Copeland

  1. You Cannot Trust the AI Code Generator

    Allowing an AI to write code that you then ship without considerate review causes some anxiety. How do you know the code works? How do you know it isn’t doing something strange you didn’t ask for? It feels like you can’t totally trust it. However, a product manager or engineering leader doesn’t review…

    Published

  2. Why Even Write Code in a Professional Context?

    I wish I’d retired before the industrial revolution of computer programming happened, but I have not and cannot. So I must come to grips with the fact that in many cases, AI-powered tools can do a perfectly fine job of writing code. The following is a brief pursuit of the facts as I see them and I just…

    Published

  3. I'm Gonna Write About AI So I Can Process What is Going On

    Beginning a job search, it’s clear that to stay in technology means to be in the orbit of AI and AI-generated code, and I need to come to terms with this and figure out how to navigate it. As such, I’m going to start writing more about AI. I process information via writing, so here we are. I need to…

    Published

  4. Talking Death of a Software Craftsman on the Dead Code Podcast

    I joined Jared again on the Dead Code Podcast to go a bit deeper on my post, The Death of a Software Craftsman. The outlook is kinda bleak, but plenty of digs at agile software practices :)

    Published

  5. Trying Linux Desktop Yet Again with More Success

    Almost a year ago, I returned to the Linux Desktop after almost 20 years. I abandoned it a month or so later out of frustration with a surprising lack of configurability and general exhaustion of addressing the myriad papercuts that come with trying to change computing platforms. In the last few weeks…

    Published

  6. pwa.support and the Mediocre State of PWAs

    I created pwa.support as a way to both examine any website to see if it can be installed as a progressive web app, but also to capture in some detail the depressing state of support for this concept across major browsers and operating systems. I’ve been revisiting desktop Linux since my last attempt…

    Published

  7. The Death of the Software Craftsman

    The death of a software craftsman Well, it happens a lot ‘round here You think quality is a common goal That goes to show how little you know Developers work hard over the years to cultivate tools and techniques to improve the quality of the construction of their software. These tools and techniques…

    Published

  8. Discussing Brut on Dead Code Podcast

    I recently got to chat with Jared Norman on the Dead Code Podcast. We talked mostly about Brut, but also a bit about hardware synthesizers and looptober. If you want to know about more about why Brut exists or its philisophical underpinnings, check it out!

    Published

  9. Building a Sub-command Ruby CLI with just OptionParser

    I’ve thought deeply about building CLIs and built a lot of them over the years. I’ve used Rake, Thor, my own gem GLI and many others. After all that, the venerable OptionParser—part of Ruby’s standard library—is the best choice for scripting and sub-command (git-like) CLIs. I want to show you how. What…

    Published

  10. Confirmation Dialog with BrutRB, Web Components, and no JS

    I created a short (8 minute) screencast on adding a confirmation dialog to form submissions using BrutRB’s bundled Web Components. You don’t have to write any JavaScript, and you can completely control the look and feel with CSS. There’s also a tutorial that does the same thing or, if you are super pressed…

    Published