If the founder had started by talking with people in the problem space, he could have discovered what problems were actually worth solving before investing any money and effort into a product.
Everything after that happened were downstream effects of creating something without a defensible reason why and for whom.
I found php’s array methods lacking as well. The inconsistencies are a pain. I ended up porting many of the methods from lodash, underscore, etc. to php: https://github.com/mpetrovich/dash
Perhaps something powered by thispersondoesnotexist.com would better for that. That site returns completely AI-generated faces that seem much more realistic and candid.
The demos on the Jolly Roger site are hilarious. The bot sounds so realistic, and the bot even had the audacity to ask the scammer, “Are you a real person?!”
My goodness, this describes me perfectly as well. The countless choices of a blank slate brings anxiety to a recovering perfectionist like me. Do I choose A or B or Z?
I prefer improving things rather than creating them from nothing. I’ve come to a similar conclusion as the author as far as how to get out of the fog of greenfield: Satisfice instead of optimize.
In this context, optimizing refers to choosing the best among N options. In contrast, satisficing means choosing the first option that’s good enough. Often, the opportunity cost saved from satisficing is greater than the marginal value gained from optimizing.
Making the version optional is a bad idea, IMO. It lets consumers use your API without versioning, which is like telling them, “here, create a time bomb that may or may not explode when the next breaking api change is released.”
There’s zero practical user benefit to NOT specifying the version, so why not enforce it? You’re creating a footgun otherwise.
Furthermore as others have pointed out, this is a purely cosmetic change. Using /api/$UNIQUE_STR in the URL vs. X-GitHub-Version: $UNIQUE_STR in the header are functionally equivalent, so…
Why bother making this change then? What was suboptimal about the previous way? What benefit does this bring?
EDIT:
Serves me right for not reading the docs more carefully. From the docs [1]:
Requests without the X-GitHub-Api-Version header will default to use the 2022-11-28 version.
The systems angle mentioned later in the article may seem a bit …engineered, but it works!
I’ve moved a ton in my life, and I have an annoying habit of losing touch with friends when I move away. Out of sight, out of mind, ya know?
Anyway, to combat this annoying habit, I started scheduling monthly phone/video calls with each of those friends. It’s been a game changer, especially as folks have kids and busy lives.
If the founder had started by talking with people in the problem space, he could have discovered what problems were actually worth solving before investing any money and effort into a product.
Everything after that happened were downstream effects of creating something without a defensible reason why and for whom.