P-Y
p-y.wtf
P-Y
@p-y.wtf
https://p-y.wtf | Android Eng @Square | hashnode.com/@py | instagram.com/py.ricau | LeakCanary, Radiography, square/logcat, square/PAPA. He/Him
Too bad they stopped making rollerblades in 2006, they made good stuff
November 9, 2025 at 8:23 PM
I've heard the t in "Chat" the not being silent in that context, so really it's "chate j'ai pété" ...

👀 en.wiktionary.org/wiki/queef
November 6, 2025 at 6:38 PM
If it was a nullable context and you cleared it in Activity.onDestroy(), I'd call it a dirty hack, pretend to be mad then wink and let you get away with it.

But, alas, it's a lateinit, which means I have to send a murder of crow-canaries hunt you for sports
November 5, 2025 at 6:55 PM
For me this happens when the network is spotty while I foreground the app and some initial request fails.

I never relogin, I just kill & restart until I have good network and then I'm right back in the feeem
November 4, 2025 at 2:19 PM
💯 I recently saw a solid senior new hire impacted by layoffs because they spent too much time doing this vs "executing".. 😞

On bugs: trying to teach folks that the jobs is not fixing, it's root causing. Obvious in hindsight but not common industry behavior..

bsky.app/profile/p-y....
p-y.wtf P-Y @p-y.wtf · 25d
Neat blog, love how you're teaching a systemic approach of repro -> iterate -> root cause. If you can repro, you can root cause.

I recently gave a talk where I reminded folks that our job when investigating isn't really fixing issues, it's to understand their root cause.

bsky.app/profile/p-y....
p-y.wtf P-Y @p-y.wtf · Sep 28
Last week at Droidcon Berlin I talked about some of the wildest Android bugs I've seen

Have you ever debugged a device using a hairdryer?

youtu.be/kOH1Kdj9c1c

#AndroidDev
#dcbln25
November 3, 2025 at 8:01 AM
Besides my deep technical work & impact, my biggest career boosts came from being straight with people, especially leads. The higher in the hierarchy, the less "real talk" they get, the more they tend to value directness (good leaders anyway)
November 2, 2025 at 6:47 PM
Yep and that wasn't a dig at you, I know what you mean. But too often folks are afraid of breaking the mold of being nice, won't speak up and that leads to bad decisions.
November 2, 2025 at 6:45 PM
It's pretty wild that my biggest career advice, especially for American coworkers, is the opposite: don't be nice.

Be fair, be kind, but never hesitate to question authority, colleagues making vague statements ("for some reason"), call out errors, etc

US org dysfunctions stem from ppl being nice
November 2, 2025 at 6:39 PM
Ooooh the headaches of having a phone like UI in portrait and tablet like in landscape.. good times
October 27, 2025 at 9:37 PM
Something like this?

bsky.app/profile/p-y....
p-y.wtf P-Y @p-y.wtf · 22d
E.g. you have 20 "fast" frames, 10 "not fast" and 2 "kinda slow" => use bootstrapping on each cluster, then merge back into a distribution with the same ratio?

Not sure it's worth going further down that rabbit hole..
October 24, 2025 at 10:04 PM
ugh I meant @jakevdp.bsky.social not typing a URL sorry
October 24, 2025 at 1:17 PM
E.g. you have 20 "fast" frames, 10 "not fast" and 2 "kinda slow" => use bootstrapping on each cluster, then merge back into a distribution with the same ratio?

Not sure it's worth going further down that rabbit hole..
October 24, 2025 at 1:13 PM
That's cool.. but we just said frames aren't independent! We can't randomly pull from the entire source distribution to bootstrap.

So it seems like we'd need to split the source data into clusters, bootstrap each cluster separately, then merge & diff?
October 24, 2025 at 1:13 PM
Bootstrapping would mean using the frames from the "before" & "after" benchmark to generate synthetic "before + after" distributions of frame durations, diffing their P50s, and getting a distribution of diff from which we can get a 95% CI
October 24, 2025 at 1:13 PM
When I started looking into this, I was working of benchmark results from a benchmark that only had a single iteration with N frames.

ChatGPT suggested using bootstrapping, and happily wrote the code for me.

(thanks @rahulrav.com for the pointer to jakevdp.bsky.social's great talk!)
Jake VanderPlas (@jakevdp.bsky.social)
Write code. Mostly Python.
jakevdp.bsky.social
October 24, 2025 at 1:13 PM
That's where ChatGTP pointed me to the Hodges–Lehmann estimator. It seems to be a fairly simple concept (see screenshots)
October 24, 2025 at 1:13 PM
It's tempting to diff the medians from the 1st iteration of "before" & "after", then 2nd iteration, and build a distribution of diffs that way.

But.. that would assume there's pairing of iterations between "before" and "after". Can't be, we said iterations are independent!
October 24, 2025 at 1:13 PM