{33} Time Machines, Typescript & Procreate
Featuring Nikita Bier, Joe Previte, Rapid, James Leighton, and BeeJayDeL
Subsribe to The Daily Subset and develop the skills needed to build a strong product led growth startup.
Product: Time Machine
Nikita Bier
This is an interesting thought experiment to start the day. It’s tempting to look at cases where hindsight is 20/20. What products were on the cusp of greatness only to be realized by key discoveries in future competitive iterations? There are plenty of examples during the dot-com bubble. Ebay comes to mind. That product certainly could have benefitted from future Amazon and Shopify improvements.
It’s also very tempting to go with a more altruistic approach. Could we have a better internet today if the people who created foundational technologies such as Javascript had a clearer idea of how it would eventually be used? Absolutely.
A better internet would be nice, but that might be small potatoes compared to improvements over a longer period of time. What about environment-centric opportunities? What if someone were to introduce modern lithium-ion batteries to the first electric cars built in the late 1800s? Maybe it’s possible electric vehicles could have outcompeted the combustion engine. If so, how would that change CO2 emissions over 150 years? It wouldn’t have solved the problem. But we’d likely be better off.
Ultimately, I’d probably choose an opportunity that balances altruism with a financial upside. I’m not a math wizard, so pulling this off would be damn hard. I’m assuming in this alternate reality that I’d be allowed to restructure my education as needed. I would have introduced the proof-of-stake consensus protocol to Bitcoin. It would have been far more environmentally friendly. And it would have changed the entire trajectory of crypto.
Typescript: Tutorial
Joe Previte
Speaking of a better version of Javascript 👆, here is a tutorial by Joe Previte on Typescript.
I’ve long been in the camp of knowing Typescript is theoretically better than Javascript. But because I prefer to work in very small teams (often solo) and 100% reliability isn’t an absolute necessity, I prefer Javascript. I find it easier to deal with an occasional random type quirk than to continually write verbose code to disambiguate and make type a non-issue.
I know my take is frustrating to Typescript enthusiasts. It’s probably a variation of an excuse they hear all the time. But imagine if the English language required strict type declarations for parts of speech.
This sentence:
I want a glass of water.
Turns into this abomination:
I:pronoun want:verb a:determiner glass:noun of:preposition water:noun.
I suppose the second sentence is less ambiguous, even though the first sentence was entirely straightforward. Still, I’m not anti-Typescript. Reducing ambiguity is a good thing when it comes to running programming languages. I just wish we could achieve that more concisely. I look forward to whatever JS and TS evolve into.
API: REST Tips
Rapid
Nice list of API tips! I’ve certainly been tempted to use verbs in API endpoints instead of nouns. As a refresher, the type of request you make should determine what you are doing with the resource.
GET - Retrieves a resource.
PUT - Updates a resource.
POST - Creates a resource.
DELETE - Removes a resource.
Steve Jobs: A Good Life
James Leighton
I hate that Steve Jobs was too much of an authoritarian. That toxic inspiration has plagued startups for years. But you can’t deny that Steve put out some brilliant quotes. This is a prime example. The fact that the world around us was built by regular people should be a daily source of inspiration.
There is no reason to be held back by imposter syndrome or any other artificial constraint. Your peers are better than you in some areas and worse in others. We all belong. We all have something to contribute.
Procreate: Shadows and Highlights
BeeJayDeL
Adding shadows and highlights is so satisfying. The small tip I love in this video is that you don’t need to add pure black or white for shadows and highlights. Adding a dark purple and then dropping the opacity to blend can bring shadows to life.
A designer should put out flat layered designs for people to practice highlighting. Then everyone can share their work and learn from techniques used by other designers.
Regarding Typescript, I think you're a little off the mark. For me, I think Typescript is a tool that helps me wrap my head around just what exactly is going through my JS code. There's so many various shapes objects can take, and it actually speeds up my development if I can know up front what the data going through my code will look like.
More generally, the tools I use need to match how I'm thinking through a problem. Maybe your brain is more JS-oriented, and mine is more Typescript-oriented? I don't know. I just know that TS can help correct this impedance mismatch I have between my brain and JS, and through that lens, I think it's useful even for a brand new prototype project, not just rock solid production-level code. It helps me stay organized and think through problems.
It's also worth mentioning that typing with Typescript can be incremental, that you don't have to type absolutely everything up front. So you can add types where it makes sense, where the pain points are in your code. The example that immediately comes to mind is date/time parsing and formatting -- I mean, how many different formats can a date/time go through?