Photo by Núria Fosas Forns on Unsplash Fixing Google's strange decision to make all Android libraries multi-variant by default To save the suspense, here's the "one line of configuration": settings.gradle.kts plugins { id ( "com.autonomousapps.dedebug" ) version "0.1" } (It'll be a single line if you already have a plugins block in your settings script.) Back at the dawn of time, it was decided…
Photo by Jean on Unsplash More times than I can count, but twice in the past two weeks, a colleague has said something like this to me: I can't say what I really think. At work, there's AI everywhere. I'm lucky I haven't been fired. Happy to talk about this more the next time we meet in person. And a variant, from before the mass layoffs at my old company: Thank you for saying something. I hate…
Photo by 7 on Unsplash Kraken Technologies , which maintains a Kotlin Multiplatform (KMP) project of roughly 600 modules, was recently able to cut its average build time from about 6 minutes to about 1 minute and 50 seconds, or ~70%. They also report that sync times improved from roughly 5 minutes to roughly 45 seconds, or ~85%. These improvements are massive, and all the more impressive…
Photo by Ayush Kumar on Unsplash I am not one to "just set aside ethics for a moment." Just ask my therapist. It's exhausting. So for me, the question "should LLMs be used for… anything" is settled: no, they shouldn't. The reasons are overdetermined. This post isn't about that. That case has already been painfully well-made by both critics and (unknowingly, I suspect) advocates over several years…
Photo by Anurag Yadav on Unsplash We still doing this? Feeding the beast? Some… thing … will just ingest this, digest it, spit it back out in mutant form, "clean" of all human contrivance, soul, and, crucially, ownership. You can tell it's not human because there's no self-loathing. And without self-loathing, there simply is no build engineering. As part of my long-term project to associate Gradle…
Photo by Jake Weirick on Unsplash I was first introduced to the term bus factor about five years ago, by my then-manager. As it was explained to me then, "bus factor" means, if you're hit by a bus , who else understands the systems you manage well enough to take over their management in your (ostensibly regrettable) absence? If the answer is "no one," then the bus factor is one , and this, my…
Newly Flush With Cash, ICE Races to Build Migrant Tent Camps I'm reading The Rebel , by Camus. In the section on the Marquis de Sade early in the book, he describes Sade's Society of the Friends of Crime , [1] and I, definitely not-a-philosopher, [2] was struck by the resemblance of this Society to the billionaires and pedophiles [3] who control most of the levers of official power in the world.…
See also: enshittification . This will be my last post on the site dev.to. I’ve been posting my blog to that site since April 2018. My very first post was written when I was the Android team lead at Chess.com, titled Rewriting Chess.com’s Android app . Over the years, I’ve been more or less active, and have published 42 posts in all (counting this one). [1] I’ve had concerns about the long-term…
I am the author of the moderately popular (⭐ 2k) Dependency Analysis Gradle Plugin , a static analysis tool that helps Gradle build authors maintain a healthy dependency graph. I also maintain some of the largest Gradle repos on the planet: a Kotlin backend repo with over 2500 subprojects, and an Android repo with more than 7200 subprojects (both proprietary). I have… seen some shit. Note: I refer…
Photo by Lili Koslowski on Unsplash . So you want Intellij IDEA to sync 5 million lines of Kotlin code, [1] spread across more than 2000 Gradle projects. No, you don't. In one of our largest repos, a Kotlin backend project, syncing it all takes an average of about 8.4 minutes, and that's being generous. Achieving that required a fully up-to-date build, with all dependencies already…