Matthias Endler wrote up a list of traits he sees in great developers, which I read because Jerod linked to it in Changelog's newsletter. In his blurb, Jerod called back to the conversation he had with yours truly on a recent podcast episode, which is also the first thing I thought of when I read the post.
As lists go, these traits are all great things to look for in developers, even if a lot of it is advice you've seen repeated countless times before. This one on bugs stands out:
Most developers blame the software, other people, their dog, or the weather for flaky, seemingly “random” bugs.
The best devs don’t.
No matter how erratic or mischievous the behavior of a computer seems, there is always a logical explanation: you just haven’t found it yet!
The best keep digging until they find the reason. They might not find the reason immediately, they might never find it, but they never blame external circumstances.
Something I've always found interesting: when users encounter a bug, most blame themselves; when programmers encounter a bug, most blame anything but themselves. And not because programmers are trying to evade fault (although that's indeed a factor in lots of shitty work environments)! I believe it's because the prospect of spending hours and hours chasing down the cause of a bug—and with no guarantee you'll be successful—is so dreadful. Happens to the best of us: hundreds of times, I've witnessed a novel bug while pairing on something else and told my pair, "let's pretend we didn't just see that," in order to keep our productivity on track.
Anyway, if you're asking me, the single best trait to predict whether I'm looking at a good programmer or a great one is undoubtedly perseverance. Someone that takes to each new challenge like a dog to a bone, and who struggles to sleep until the next obstacle is cleared.
Until mid-2022, you could absolutely have a successful, high-paying career as a programmer if you lacked perseverance, but I'm not sure that's going to be true much longer.
How to make incredible HomeKit backgrounds with ChatGPT
Okay, so there's a great meme going around the /r/HomeKit subreddit right now, where folks are using ChatGPT to generate illustrations for each of their rooms in the Home app. Finally got around to joining in the fun.
Here's how I did it:
- Take a vertical photo of each of the rooms in your home that you've configured in HomeKit
- Start a conversation with GPT-4o and describe that you want vertical (9:16) illustrations for the Home app based on your photos, and any style preferences (I'll share my prompt below)
- One at a time, feed it your photos, and offer feedback until it gets it right
- Save each photo to a new album in Photos so you can reference it from the Home app
- Over in the Home app, for each room:
- Select the room (on iPhone, tap the ellipsis in the corner; on iPad or Mac, select it in the side bar)
- Tap the ellipsis in the top right and choose "Room settings"
- Choose an image for the room background
- Select the image from your Photos library
- Do this on every device, because (of course) the Home app still doesn't sync background images
I had a blast setting these up and didn't hesitate to repeat it for all my devices. The bland, samey look of the default HomeKit room design makes it easy to confuse where you are in the app, and these illustrations are nothing short of delightful. Apart from the tremendous image generation capabilities of ChatGPT 4o, photographing rooms without resorting to a comically wide angle fisheye lens is very difficult, and an artistic touch can emphasize the "feel" of a room better than a photo can.
Here's the full set of my rooms:
Oh, and here's the prompt I used:
I have a fun project for you! Please make stylized background images based on the photos of each room in my home that I send you. I'm going to use these as background images for each of my rooms in HomeKit. Important to note, these images must be vertical. 9:16!
Very excited about this. Would love for you to take each image and then remove any clutter (idealize it a bit), use your imagination to come up with an appealing sight line and focal length a bit, and then draw each image in a consistent color palette, namely with a hyperrealistic Japanese animation style that could only be accomplished by pixel-peeping with Adobe Photoshop, Illustrator, and After Effects.
(Humorously, if I let ChatGPT reply to this with text, it would say a variation of, "okay, I'll make some Makoto Shinkai-esque illustrations!" and then, because a particular artist was named, all subsequent images generated in the chat would be found in violation of Open AI's content policy. Amazing.)
Do you HomeKit? Go give this a try and melt some of Sam's GPUs for me. Send me your best rooms. 🏡