Dealing with Bad News

March 29, 2023

AI-generated image of smashed glass

DiffusionBee-generated image

I had to deal with some potentially awful news a couple of days ago, and I’d like to share with you how I deal with events that knock me off balance. Maybe it’ll help you too.

Read more…

Make Prototypes Entirely Out of Tracer Bullets

March 10, 2023

When creating a whole new functionality in your app (or a whole new app), prioritize validating your stack of abstractions over making each layer feature-complete. Think of the simplest use case that crosses all the abstraction layers (connecting a view to a model and syncing state to a server, for example) and implement it. Have it do one simple thing (refresh its content on demand, say), and ensure you can test it. Then, add functionality incrementally.

Having a fully-testable stack, even with only a tiny bit of functionality, opens up a world of experimentation and lets you prioritize your work. Every additional function you put into the stack incrementally adds to a demonstrable, shareable prototype, right from the start.

Practitioners of agile methodologies will recognize this as the Tracer Bullet technique. Your project bringup should be made entirely of Tracer Bullets. Others may recognize this as the Steel Threads method. In any case, it’s a great way to ensure you have a working prototype as early as possible in your project’s lifetime.

Keep personal data off of work devices

March 3, 2023

Maintain strict hardware separation between work and personal data.

While many corporations are diligent about keeping work data out of your personal devices for security reasons, the reverse is often entirely your responsibility.

When things go wrong, or your company gets into legal trouble, you want to be sure you’re not exposed to liability or exploitation. One way to help you get there is to make sure your personal data never gets onto work hardware.

Read more…

You cannot separate art from artist

February 26, 2023

You cannot separate art from artist; they flow from the same font, the same value system, the same framing, the same agenda. There is but one personality behind both of them.

You can put the art of dead artists in their historical contexts to maybe lessen their blame. But living artists in a shared culture deserve no such latitude, as their context is now.

Elevating the art endorses the artist. You can’t help doing the latter when you do the former.

The next time you get the urge to separate art from artist, ask yourself why you want to do that.

Chances are you want to continue enjoying the art despite it being made by a despicable person.

Chances are you don’t want to be held responsible for elevating a terrible human being, even as you continue to reward them by consuming their work.

Chances are you’re doing it because you don’t want to stop the flow of your entertainment.

Chances are it’s just a euphemism for selfishness.

Withholding user security behind a paywall is unethical

February 18, 2023

Walling off user-centered security measures behind a subscription paywall is unethical, and will ultimately tarnish your brand as your users get their accounts compromised at greater rates.

I remember using Evernote back in the 2000s, and learning that they will use SSL only if you pay; otherwise they sent your notes in plaintext over http. I found their attitude so offensive that I quit their product completely rather than give them my money.

Evernote Premium | Evernote Corporation

There's nothing wrong with having a free Evernote account, but sometimes it just isn't enough. Sounds like Evernote Premium is exactly what you need....

Twitter rescinding SMS 2FA behind a subscription (and not replacing it with an equivalent system like e-mail 2FA) is hostile and reflects how much Elon cares about their users’ security, which is not much.

Remember that compromising access to your twitter account not only gives attackers access to your timeline; it lets them access all your past DMs too.