🎱 Josh Branchaud ✨

@jbranchaud.bsky.social

Free-Range Software Dev and Consultant ✨ PostgreSQL • Ruby on Rails • TypeScript • React ✨ 🏃🐈🍹🎱 (he/him) | Chicago | Work with me: visualmode.dev

More praise for Linear: I typed out a comment with attached images on an issue, got sidetracked, forgot to hit 'send', and navigated away. Later I noticed a 'Drafts' nav item appear with count of '1'. I click through and it surfaces my un-published comment. 🤩

I took this a step further by adding "badge" icons for the live counts of the top 10 TIL categories. The numbers and the ordering (as necessary) update daily along with the listing of latest TIL posts. This was very fun to implement with GitHub Actions.

A screenshot of my GitHub profile README which shows a list of the 5 most recent TILs, but then highlighted right below that is a section called "Top TIL Topics" with 10 badges, one for each technology or category, including counts and each using an appropriate accent color for that topic.
🎱 Josh Branchaud ✨@jbranchaud.bsky.social · 2w ago

I finally got around to adding one of those profile READMEs on GitHub with a daily cron workflow that updates it with a listing of the latest TILs I've written. github.com/jbranchaud/j...

screenshot of my (jbranchaud) github profile page with a `jbranchaud/README.md` section highlighted. That section says "Hi, I'm Josh 👋" and then has a Latest TILs section which lists the five most recent TIL posts that I have written

Frankly this refactor isn't a huge win, but this snippet of code is some quintessential Ruby and it brings me joy, so I think that is its own win 😄 (note: these variable length underscore strings were scattered across several files at this point)

Screenshot of a code diff in a dark-themed editor. One removed line (marked "−") reads `BLANK_VALUE = "______…"` — a constant holding a long run of underscores. Below it, added lines 4–15 (marked "+", green gutter) replace it with Ruby code:

```ruby
# Fill-in-the-blank underscore runs, sized by how much a printed blank needs.
module BlankLine
  WIDTHS = {long: 55, medium: 20, short: 13}.freeze

  class << self
    def long = "_" * WIDTHS.fetch(:long)

    def medium = "_" * WIDTHS.fetch(:medium)

    def short = "_" * WIDTHS.fetch(:short)
  end
end
```

I don't know who needs to hear this, but you can click and drag the subtitles in a youtube video to anywhere in the player. This is particularly useful for a software tutorial where the latest things being typed are at the bottom of the screen covered up by subtitles.

I’m not exactly sure what is meant by “agentic work” here, but I’m already completely sold on the ability to talk into the mic for 15 seconds, hit enter, and then get a detailed text summary including files, lines of code, and commit SHAs narrowed to exactly what you asked about.

Cat Hicks@grimalkina.bsky.social · 2w ago

I suspect once we figure it out agentic work in software will actually be a huge aid to codebase comprehension This is such a wildly unpopular thought right now but you know what I'm going to pre-register my belief in this possibility

Zed seems to have really nailed their Vim mode. I needed to wrap a series of keys in double quotes, so with my cursor over the first one, I hit `ysiw"`, then navigated to the next and repeated with `.`, so on and so forth. Forgot I was in Zed for a moment.

Git Archaeology and Project History tasks are a fantastic thing to hand off to LLM harnesses. Dev who hasn't worked on this specific app for years was sure they had added support for XYZ. Claude produced a detailed summary of when XYZ was added and later removed, with commit SHAs and context.