One of my favorite parts of UI design is writing copy for buttons.

This one let you skip out of an unfamiliar flow if you just can’t figure out one of the steps. I’m trying to match the language with the feeling, all without injecting emotional guesses.

I tried, I'm stuck, I need help

incompetent person who thinks they’re an expert

Or who others think is an expert, solely because they have a certificate.

ultracrepidarian - someone who holds forth on a subject they know absolutely nothing about…

expert beginner How Developers Stop Learning: Rise of the Expert Beginner

just imagine how great tech could be if these tech bros had half the empathy that they have ego

tech bros will refactor the architecture of entire projects in their free time for fun but can’t find and replace for exclusionary language in their docs or variable names


The T_PAAMAYIM_NEKUDOTAYIM token representing the :: characters sequence is often a source of confusion the first time it is encountered.

Before shaping it, it's a struggle to define the problem or the opportunity.

Need a word for that. It’s not fluffy brainstorming / ideation.

More like forging Hard work, concentration, heat.

This is what pattern languages are really about.

Patterns are named problem/solution pairs.

Language is the composition of patterns into greater wholes.

It’s hard to name things until you understand them well.

What’s a good name where you incrementally deploy a big feature, and only when it's ready do you wire the UI?

UI is held back until the end until, like a Keystone Interface from Martin Fowler , it’s added to complete the feature, revealing it to the users.

Keystone visualization

A whatchamacallit in different languages:

  1. Trucmuche (French)
  2. Thingamajig (English)
  3. Chingadera (Spanish)
  4. Himstergims (Danish)
  5. Naninani (Japanese)
  6. Zamazingo (Turkish)
  7. Dingsbums (German)
  8. Huppeldepup (Dutch)

Meaningful Names

  1. The name says what it is for, not what it is.
  2. Functions and variables at the same level of abstraction.
  3. Don’t call something ‘list’ if it is not a list.
  4. Don’t add gratuitous warts at the front or back of your names.
  5. Length of identifier matches scope.
  6. No lower-case L or upper-case o, ever.

main as your git branch instead of master

There’s lots of more accurate options depending on context and it costs me nothing to change my vocabulary, especially if it is one less little speed bump to getting a new person excited about tech.

then also insist it’s too hard…

a little script to rename repos’ master branches to main

GitHub abandons ‘master’ term to avoid slavery row

> git branch -m master main
> git push -u origin main

Go has removed all uses of blacklist / whitelist

allowlist and blocklist are more self-explanatory, so this change has negative cost.

Looking for a verb to describe gathering scattered coupled elements under one cohesive element.

It’s not decoupling because you are reducing the scope of coupling, not eliminating it.

Consolidating or maybe Cohesivating, Encapsulating, or Modularizing