"Mitigating soft verification issues in R8 and D8" by outlining references to newer APIs into API-specific types.
https://medium.com/androiddevelopers/mitigating-soft-verification-issues-in-r8-and-d8-7e9e06827dfd
It's nice to see this supported! Four years or so this was actually rejected by D8/R8 as being not its problem. As a result AndroidX changed rules to do it manually: https://github.com/androidx/androidx/blob/582f1ee41b2177a6182c5e8b5793b50e78d353ea/docs/api_guidelines/compat.md#checking-device-sdk-version-compat-sdk
> Calls to new APIs gated on `SDK_INT` *must* be made from version-specific static inner classes to avoid verification errors that negatively affect run-time performance
New Coil release! 2.3.0 includes baseline profiles and a new coil-test artifact, which should help a lot with screenshot testing. Also a few assorted bug fixes. Check it out!
https://github.com/coil-kt/coil/blob/main/CHANGELOG.md#230---march-25-2023
I built my own memory profiler (in #Rust, on #Linux)
And lived to tell the story in video form, apparently:
https://www.youtube.com/watch?v=DpnXaNkM9_M
If you use https://github.com/mdogan/homebrew-zulu then a `brew update` and `brew install zulu-jdk20` will get you an automatically-updating JDK 20 living alongside all your others.
heyooooooo new article: "A world to win: WebAssembly for the rest of us" https://wingolog.org/archives/2023/03/20/a-world-to-win-webassembly-for-the-rest-of-us
Of interest if you wonder: why does it seem like only rust and C are winning with WebAssembly? what is the deal with garbage collection? how would you compile scheme to wasm? how can I win with my weirdo altlang? also, is WebAssembly haunted? guaranteed success or your money back!
The Effective Interview ⚡️ with @jw is finally out 🚀
Go give it a read! 👇 lots of learnings and advice on this one.
https://effectiveandroid.substack.com/p/effective-interviews-jake-wharton
Java 20 / JDK 20: General Availability: https://mail.openjdk.org/pipermail/jdk-dev/2023-March/007517.html #java20 #jdk20 #openjdk #java
Looks like I'll be at KotlinConf next month talking about Redwood and Zipline.
https://kotlinconf.com/speakers/3eabdd46-6cb5-4083-9eb8-1ad9a3b7a5eb
The ongoing Docker drama left me wanting to control my Docker image hosting, so I went digging into the API traffic of 'docker pull'.
Turns out it's easy to use your own domain as the hostname for Docker images, all without having to self-host your own full registry: https://httptoolkit.com/blog/docker-image-registry-facade/
Blogpost about Docker Hub and wider FOSS community: https://woju.eu/blog/2023/03/foss-and-docker-hub/
(special greetings to @bagder)
oh my god, you can turn off those fucking EVIL sign in with #google popovers on random websites
https://myaccount.google.com/
> Security
> Signing in with Google
> Google Account sign-in prompts
I argue we (#curl) should NOT pay docker. Not give in to extortion. This might mean that someone else soon suddenly will register our name and can serve whatever image they want there. 5 *billion* pulls indicate there's a user or two that might fall victim for this.
That's on docker, not us.
All these years later, I just can’t get comfortable with a computer platform where you can write code for it, but the vendor gets to say whether or not people can run your code.
I thought that was wrong the day it was announced and still do.
The money says I’m in a minority. I’m comfortable with that.
The Web remains the only platform without a proprietor. Treasure it.
Wow, look at that, a JEP draft to finalize virtual threads for JDK21
https://openjdk.org/jeps/8303683
JetBrains Compose 1.3.1 was released yesterday with Kotlin 1.8.10 support: https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.3.1
As such, a pair of related releases late last night for those needing the latest compatibility:
- Molecule 0.8.0 is the same as 0.7.1 but with the new Compose version: https://github.com/cashapp/molecule/releases/tag/0.8.0
- Mosaic 0.5.0 has the new Compose version along with a new `renderMosaic` function which returns a single `String` rendering of the composition for static output: https://github.com/JakeWharton/mosaic/releases/tag/0.5.0