What I'm Writing
Things I Wish I Knew as a New Python User: Python changed my life, and I owe it so much. I think the clearest way to repay that debt is to encourage others to try it.
In the Buffer
The Distributed Operating System Void: Kris Nòva is not messing around. Managing nodes from the cluster would be a decisive step towards a unified interface.
Mastering Real-Time Strategy Games with Deep Reinforcement Learning: Mere Mortal Edition: Holy moly what a thorough writeup. The RL agents Clemens trained converged decisively on policies he hadn't expected.
"Before this project, the best CodeCraft AIs available to me were two scripted bots, “Replicator” (which builds some harvester/construction drones at the start of the game and then attacks with large swarms of small drones) and “Destroyer” (which builds very cheap and fast drones at the beginning of the game to quickly scout the map and find the enemy mothership which it then attacks with strong, slower-moving drones). Against Replicator (which I thought followed a solid strategy), policies achieve win rates between 90%-98%."
This is especially remarkable because he seems to have made CodeCraft himself.
The Product Strategy Stack: Mehta and Ghadiyali frame product strategy in the context of higher and lower layer concerns. They're very meticulous about arranging the components, so that when they appear out of alignment the problem is intuitive.
Welcome to the Wonderful World of Clusters: Replit is very shiny, it has a ton of interesting and quirky qualities. I continuously fail to place a good mental model on it ("what if Heroku was an IDE and also there are no deployments"? No that's not right either, dang.) But what gets me most curious are the inner workings. This is one of those posts that dives into a challenge with their infrastructure, and how they solved it.
Humans in the Loop
The giddily-named "Explosion.ai" is perhaps best known for their open source SpaCy project. The "industrial grade" NLP library is slick, popular, and fun to work with. But their commercial product is Prodigy, a tool for making interfaces where humans can interact with ML models. It’s slick, it demos great, and it can be extended endlessly. Explosion is just one company in an ever growing cohort, seeking to monetize the pipeline for human-machine-teaming systems.
They aren't the only ones. Crowdsourced human "labeling" of data was an important precursor to rapid progress in the field of computer vision via ImageNet. (Here's some backstory about how Fei-Fei Li and team developed the historic dataset using Amazon Mechanical Turk.) And of course now, our expressions can very frequently be the labels of tomorrow's ImageNet:
Intervening while you "supervise" your car's autopilot features
Smashing NO on a “Was this suggestion helpful?" button
Franticly clicking around your NetmuluzonpleTV console unable to decide what to watch
Applying for these (but not those other) jobs
Listening to some songs PLUS buying a pickup/EV
Filling out a Captcha
Gold Mine
Gathering the data is not benign in and of itself, many governments have recognized, and having an algorithm act on us is not always desired (we especially want to be able to appeal to a human arbiter). By the same token, gathering the data has the power to free us from drudgery. New approaches are attempting this by "process mining" behaviors in the enterprise environment, and over time freeing the user from repetitive tasks.
Beyond the workplace, early companions in the home have varied on uncanny, ignoramus, unwieldy, and immobile. "A machine for every home" is very hard to do safely and well, but the rewards could be significant. It could be, if you will picture it, a descendant of Baxter in the kitchen with you and your loved ones. The music plays and you all chop and mix and dance to the beat. You turn to express the motion, chop chop chop spread chop pass, and the helper joins the dance, having learned in "one-shot" from the expression.
The holy grail remains "self driving" cars, an extraordinarily difficult problem with epic investments being laid out towards a solution. Today, humans supervise limited self-driving capabilities in some vehicles (and no doubt each intervention is an expression which can later be used as data for better models.) Perhaps the more interesting team is the human driver alongside the machine driver:
The reality is that while roads themselves are generally orderly and well-known environments, what actually happens on them is anything but. Humans are proficient behind the wheel, but they’re also imprecise and occasionally wayward. So until 100 percent of the vehicles on the road are fully autonomous — something many analysts think is actually highly unlikely — every autonomous vehicle will have to be able to respond to the edge cases plus countless quirks and tics exhibited by human drivers on a daily basis. It’s the stuff we’re able to swat away without missing a beat while driving ourselves, but getting computers to try to manage it is a really big deal. -Eric Adams, "Why we're still years away from having self-driving cars"
Surface Area
Across all of these domains, it seems to me that some of the most interesting things being worked on today are all at the surface area where humans and automations meet. That's not always good, we can learn to make it more safe, and it can be magic sometimes too. Figuring out how we can collaborate with these machines safely, ethically, fairly, and profitably will be one of the most interesting open questions for many years to come.