seb

seb

@sebastiano.dev

β€œIt depends” πŸ€·β€β™‚οΈ A dev πŸ€“ who has a serious thing for yellow πŸ’›, design ✨, and emojis 🀌 1/2 of @codewiththeitalians.it, Staff UXE on Android Dev UX/Android Studio at Google

1.4K followers455 following969 posts

Every time I think AMS is a circus, LHR is there to remind me it can always be worse

If you're wondering all the extra complexity: well, usually only part of a build needs access to a device; thus, it can optimise the usage of resources by letting assemble-style tasks run while other agents hold a device.

This required changing the approach from v2 quite a lot β€” it now uses a fixed list of known operations, with a JSON-based DAG language to let you describe rich flows (while sparing me the pain of having to parse and understand shell commands...).

Big Cav update just dropped! Now it comes with a built-in workflow, which can be remixed and repurposed to fit how you work. Plus, plenty of built-in guidance for software showcase videos that don't look like the mountain of slop that's out there, and format reframing! github.com/rock3r/cav/r...

github.comRelease v1.8.0 Β· rock3r/cavcav 1.8.0 gives you a production flow from brief to final render, with reviews at each step, and new checks that catch common motion mistakes. What's new cav guide flow describes five stages: bri...

Well, it is now Agent Traffic Control 2.0 as... well... I may have dug out my old iPhone and implemented iOS support. Happy KMPing folks ;) github.com/rock3r/atc/r...

github.comRelease v2.0.0 β€” Agent Traffic Control (Android + iOS) Β· rock3r/atcHighlights in 2.0.0 Cross-Platform Android & iOS Leasing: Coordinate Android Virtual Devices (avd:<name>), iOS Simulators (sim:<udid>), and physical Android/Apple devices (serial:<id>) under a sin...
seb@sebastiano.dev

If you run two coding agents on the same machine, they will fight over the same Android emulator β€” or worse, install a test APK onto the phone you just plugged in to charge. Android Traffic Control (ATC) is here: orchestrate agents access, fairly & robustly! Needs Node >= 20 github.com/rock3r/atc

If you run two coding agents on the same machine, they will fight over the same Android emulator β€” or worse, install a test APK onto the phone you just plugged in to charge. Android Traffic Control (ATC) is here: orchestrate agents access, fairly & robustly! Needs Node >= 20 github.com/rock3r/atc

github.comGitHub - rock3r/atc: Daemonless Android emulator and physical device leases, warm-affinity wait queue, snapshots, and multi-agent guardrails around the official android CLIDaemonless Android emulator and physical device leases, warm-affinity wait queue, snapshots, and multi-agent guardrails around the official android CLI - rock3r/atc
View full thread

No daemon, no npm deps: β€’ Atomic lock (atc.lock) with <20ms in-memory critical sections β€” zero subprocesses ever run under the lock β€’ 6-tier session identity across ephemeral subshells β€’ Dead-PID GC & 5s offline grace reclaim orphaned leases automatically

Ready for every agent, and for humans: β€’ PreToolUse/Stop hooks block raw adb/emulator collisions, rewrite to `atc exec`, and free leases on the turn end β€’ Built-in `atc guide` + plugins for Claude Code, Codex, Gemini CLI, Antigravity, Cursor & Pi β€’ Bundled docs, searchable without wasting context

If you run two coding agents on the same machine, they will fight over the same Android emulator β€” or worse, install a test APK onto the phone you just plugged in to charge. Android Traffic Control (ATC) is here: orchestrate agents access, fairly & robustly! Needs Node >= 20 github.com/rock3r/atc

github.comGitHub - rock3r/atc: Daemonless Android emulator and physical device leases, warm-affinity wait queue, snapshots, and multi-agent guardrails around the official android CLIDaemonless Android emulator and physical device leases, warm-affinity wait queue, snapshots, and multi-agent guardrails around the official android CLI - rock3r/atc

In ATC, agents claim by profile β€” not hardcoded AVD names β€” and restore QEMU snapshots in ~1.5s: atc claim --type phone --api ">=35" --play --snapshot-load logged_in atc exec -- ./gradlew connectedCheck atc free Injects ANDROID_SERIAL + --device and renews the lease every 15s. No more mis-deploys!

No cold-boot thrashing or OOMs: β€’ Warm-affinity queue batches jobs on warm AVDs within a 120s window without starving cold configs β€’ Pre-flight RAM & disk admission checks β€’ Targets emulators by default β€” your charging USB phone is never hijacked (unless you want it to be :P)

Since someone asked, here's the skill/pipeline I use to create specs for upcoming work when using agents: github.com/rock3r/publi... The result is more readable and pleasant than stock! (note: this is also what I use for ~any agentic output, including docs, writeups, etc β€”Β it's not only for specs)

github.comGitHub - rock3r/publish-spec: Portable agent skill for authoring, linting, and publishing static HTML design specs, PRDs, and technical walkthroughs.Portable agent skill for authoring, linting, and publishing static HTML design specs, PRDs, and technical walkthroughs. - rock3r/publish-spec

I'm already fatigued by Opus motion graphics. Yes they look great, in isolation, and it's beyond impressive that a model can come up with them to begin with. But... They all look the same. They all use the same tropes. They all have the same generic midi music and sfx. Opus brings hands, not taste!

View full thread

For my Cav sizzle reel, I didn't one shot it with Opus. Opus did the actual work in Cavalry, but we started from a script (with several amendments) and a mood board to nail the style. The first 3-4 attempts went from pure slop to passable. A few more to polish. Still not perfect, but tolerable to me

This is to say: yes you can slop out nice looking motion graphics but they default to one style, one voice β€” Opus', not yours. Just like in coding, the agent is the executor, you're supposed to bring the taste, vision, common sense, and judgment.

I'm already fatigued by Opus motion graphics. Yes they look great, in isolation, and it's beyond impressive that a model can come up with them to begin with. But... They all look the same. They all use the same tropes. They all have the same generic midi music and sfx. Opus brings hands, not taste!

You can absolutely use Opus to make cool motion graphics videos, but it needs you to direct it. As in, you need to be the art director. Pick a style. Pick a vibe. Write the narrative. That's the only way to stand out from the endless slop you see on prompt-motion.com

View full thread

of course, the speed of iteration wouldn't have been possible if I were doing the video by hand. The creativity and ideas are mine, the nitpicking and tweaking too, while Opus did the "manual labour", including finding a good liquid glass shader online and porting it to SkSL, which Cavalry supports.

Claude and Codex plugins are waiting for approval on the respective marketplaces

seb reposted

I've decided to give a complete revamp of pomostats.app with Material 3 Expressive, and now it look so much nicer. I feel dumb that I haven't thought about it before in time for #Shipaton, but that's life πŸ˜…

Two new specimens landed in github.com/rock3r/biopa...! 1. Component anatomy β€” a groovy exploded Jewel button (sound on!) Vaguely inspired by someone showing off fancy fragment shaders β€” for once, I did something without shaders :D

2. Scroll effects β€” this directly copying a web shader demo in Compose, purely because why not

10 months on from the Opus 4.5 moment, it feels like Opus 5.5 is another definite step change in agent abilities. What a model, incredible. Sips tokens, too. Lovely stuff.

View full thread

The part that's even more mind boggling to me is that it synthesised the music from Python, then it inspected the waveform and spectrogram to make sure it was ok. Hooowwwww lol this is black magic

And note that I am not saying this is anywhere near the quality that a highly skilled human could do! Not the content, not the visuals, and certainly not the music. But it's as good as I could make in a few days of compositing in Cavalry, and definitely better than any music I could create :D

This is the prompt, adapted from one I saw online. It chugged along for like 25 minutes. Out it came with the video.

Three new specimens caught in github.com/rock3r/biopa... and recreated in Compose β€” originals linked there, too. Pretty wild what you can reproduce with 1–3 prompts and a good model. Of course, original creation is harder than copy! But this is still, honestly, incredible to me.

Small dot release – Spectre 0.7.1 is out now on Maven Central. Downgrades a few dependencies to remain compatible with the latest IntelliJ Platform stable version, no functional changes.

Spectre 0.7.0 is out πŸ‘» Optin JUnit screenshot golds, multi-window composites, one Wayland portal session for capture+input, broader HTTP data surface, and Windows region capture that finally stops treating an HMONITOR as a DisplayId. Get it on Maven Central Release notes github.com/rock3r/spect...

github.comRelease Spectre 0.7.0 Β· rock3r/spectreSpectre 0.7.0 Capture and release-smoke hardenings for desktop hosts: opt-in JUnit screenshot golds, composited multi-window screenshots, a single Wayland portal session for capture and input, a wi...
View full thread
View full thread

...and the recorded timing shows up as additional editor inlays! You can export dumps and share them with others, who can then import them into their own IDE for inspection, too.

You want your coding agent to know about this, too? You're in luck, the plugin comes with an MCP server and a skill to tell your agent how to use it. Plus, it has one-click installers for both, supporting a bunch of the most common agents out there. (note: this UI is very WIP, will change by 1.0)

View full thread

You get statically inferred stability inlays in the editor, with hover giving more information on the actual stability of parameters and symbols...

...and you can capture a live stability recording (up to 100k events for now) by starting an app with the new Run Configuration variant. You then get a filterable list of all composition events, with their total and avg timing, the thread they happened on (usually EDT)...