Interesting new game development library, kaboom.js. Aimed at making it easy for kids & other beginners to learn game development, but looks really nice for general use as well. Or at least for prototyping game ideas.
I can't wait to try it out!
"Small b blogging" from Tom Critchlow:
As Venkatesh says in the calculus of grit - release work often, reference your own thinking & rework the same ideas again and again. That’s the small b blogging model.
At work I keep seeing cases where there is overlap in common behavior but not completely. Special cases take a simple routine and wrench it through with conditions.
With React components, it’s often easy enough to split out the separate cases as their own components or, more recently, maybe push the differing behavior into individual hooks.
Some of the uglier cases are in Redux reducers, action creator functions, or async API-calling code. These functions start small and simple, but as the requirements grow and change over time these streamlined functions quickly grow branches, and those conditions then grow their own complexities in due time. Eventually it becomes a dense forest of possible code paths where bugs grow freely.
I’ve been trying to tame some of those areas recently by simply trying to separate what is common from what is different. A wonderful benefit of doing that is being able to clearly see what is different just from how the code is structured.
I’ve come to look at significant branching as a code smell, and try to refactor so that the branching happens once, up front, where you pick from a handful of top-level functions or objects that themselves are focused & single-purpose. I think that insight came from Sandi Metz & her 99 Bottles book; it’s an enormously powerful tool, and so far has been a great help.
From DHH, "No more platforms please":
Everything just scrolls by, because everything is just mixed together. Everything from everyone all the time is too much. It's unnatural and it's unhealthy. We weren't built to listen to hundreds if not thousands of people every day. Tools that let individuals publish, but do not seek to amplify them or force them viral, give us that natural, human scale. Newsletters. Podcasts. Small-scale forums. Yes, yes, yes.
More platforms? No, no, no.
git wip: a handy alias for git to see branches sorted by last commit date. Via Carolyn Van Slyck.
I read through the Indieweb criticism and Small Web pieces I linked yesterday. Both are interesting and make good points, as does the Indieweb movement itself. But all of them share what I think is a common flaw: they're too technology focused.
For an indieweb-like idea to succeed beyond a niche following, it needs to solve the problems of normal, non-technical people. What brought normal people to Facebook? Among the main reasons were discoverability, aggregation, and extreme ease of use. Discoverability means easily finding friends & being found by them. Aggregation is the news feed: combining all your friends' posts into a single time-ordered page so you can scroll down and catch up. And the essential tasks were so easy to do in Facebook that everyone's mom could do them all by herself: signing up, finding & following friends, reading posts, creating her own posts, commenting, pressing the Like button, etc.
If I had to pick just one feature to start an indieweb, it would be discoverability. That's the killer feature; that's the core thing that made Facebook useful to normal people: suddenly, you could easily find your long lost friends from high school, and reconnect.
Without a user-focused discovery mechanism, these well-intentioned indieweb efforts are going to struggle to move beyond their small niches.
To read & ponder: dgold's criticism of the Indieweb movement, "Praxis and Indieweb".
(Found via Gregory Hammond's "Removed Webmention / Indieweb from this site".)
To do: investigate.
I love this idea of "sincere blogging," from Roy Tang:
Please write more.
Not just on social media, FB, Twitter, whatever. Write on your own sites and blogs. On your tumblrs, wordpresses, whatever. Long-form, rambling, incessant. The world could use more sincere blogging.
Duplication is useful when it supplies independent, specific examples of a general concept that you don’t yet understand.
--Sandi Metz, 99 Bottles