Matt Coley
banner
mattcoley.bsky.social
Matt Coley
@mattcoley.bsky.social
Reposted by Matt Coley
JavaFX is missing a native Switch control — every major UI framework has one except JavaFX.

I've implemented a SwitchButton with full theme support. Hope to contribute to OpenJFX.

Thanks @dlemmermann.bsky.social for his help!

github.com/leewyatt/Swi...

#JavaFX
January 22, 2026 at 11:26 AM
Reposted by Matt Coley
OpenJDK is faster than GraalVM*

It's around twice as fast in one particular area. Read more in my latest tiny blog post at mostlynerdless.de/blog/2026/01...
OpenJDK is faster than GraalVM Java* - Mostly nerdless
OpenJDK is faster than GraalVM in some instances, but maybe it's not important? Discover more in this short blog post.
mostlynerdless.de
January 9, 2026 at 8:11 AM
Any #JavaFX people experience removed nodes being stuck around in memory after they've been removed from the scene graph?

If I have a node that has a ~500 MB byte array, and then I remove it, I should be able to expect that to be freeable right?

Heap dump GC root for reference
January 8, 2026 at 8:43 AM
Reposted by Matt Coley
I reverse engineered DexProtector, the security solution protecting applications like Revolut and other banking apps.

From custom ELF loaders to vtable hooking, here is an insight into how these protections work and their limitations.

www.romainthomas.fr/post/26-01-d...
A Glimpse Into DexProtector | Romain Thomas
This blog post provides a high-level overview of DexProtector's security features and their limitations
www.romainthomas.fr
January 5, 2026 at 6:11 AM
Reposted by Matt Coley
As an old and somewhat inactive Mockito maintainer I'd like to congratulate Tim for these past years keeping the light on the Mockito project. He his now stepping down.
Thank you Tim.

github.com/mockito/mock...
Stepping down as maintainer after 10 years · Issue #3777 · mockito/mockito
In March 2026, I will be Mockito maintainer for 10 years (nearly a third of my whole life). Looking ahead, I decided that a decade milestone is a good moment to pass on maintainership to other folk...
github.com
December 28, 2025 at 4:20 PM
Reposted by Matt Coley
I spent about two days learning and implementing atmosphere rendering for planetary views from space. The tutorials and other sources I found on it were prettty lacking in implementation details but I got there in the end. Too late now, but does anyone have any recommends? Should I write an article?
October 30, 2025 at 6:45 PM
Reposted by Matt Coley
another excellent eBay acquisition
November 4, 2025 at 3:05 AM
Reposted by Matt Coley
I interviewed @mattcoley.bsky.social about #Recaf and his #JavaFX libraries. But unexpectedly, I got a deep-dive course on #Java byte code, obfuscated code, and how JARs can be (ab)used to hide their real code...!

www.youtube.com/watch?v=6NIJ...

More info: webtechie.be/post/2025-10...
Matt Coley, diving into byte code and JARs with Recaf and JavaFX libraries (#22)
YouTube video by Frank Delporte
www.youtube.com
October 30, 2025 at 7:11 AM
If you're using the JavaFX "Flowless" library for virtualized controls and are observing sluggish performance, do not add stylesheets to the Virtualized Node. Add them to the Scene. I observed an immediate 10x performance boost by doing this.
October 24, 2025 at 10:36 AM
I love reading these articles and thinking "Yup, that's us on the job. We're part of the industrial inefficiency complex"

Artifactory set up but nobody uses it? 👍
CI jobs with zero caching? 👍
+ they can recursively spawn other jobs? 👍
+ they can trigger from simple "fix typo" commits? 👍
Free isn’t free: the infrastructure behind open source has real costs, and it’s time we aligned usage with responsibility.

This morning we jointly launch a new blog and open letter on sustainable stewardship.

www.sonatype.com/blog/from-ab...
From Abuse to Alignment: Why We Need Sustainable Open Source Infrastructure
Open source relies on shared infrastructure. Learn why sustainable stewardship is critical to keep ecosystems like Maven Central strong.
www.sonatype.com
September 24, 2025 at 12:05 PM
Now Recaf 4X can inline return values of simple static methods (like a xor string decryption call in this case)
September 8, 2025 at 8:42 AM
Recaf's interactive deobfuscation window now lets you specify how many passes to run. For some obfuscation patterns that can't be one-shot in one linear pass (opaque control flow leading to more opaque control flow repeated N times) increasing the pass count to N+1 reduces it completely.
August 20, 2025 at 10:59 AM
Reposted by Matt Coley
JavaFX now has a Headless platform.
bugs.openjdk.org/browse/JDK-8... is now Resolved!
Pfew, that took me 1 year, 5 months and 29 days. Goodnight!
#JavaFX #Java
Loading...
bugs.openjdk.org
July 28, 2025 at 8:45 PM
Reposted by Matt Coley
Australia's decision to require age/identity verification, including facial scans, in order to do a Google search is dystopian.

We're watching the death of an open, anonymous internet, and the gradual takeover of information online by the state — under the guise of protecting children.
Australia is quietly rolling out age checks for search engines like Google
Just as Australians are adjusting to the idea of having their ages checked for social media, age assurance rules are being applied to search engines and many other corners of the internet.
www.abc.net.au
July 11, 2025 at 9:50 PM
Updates to how some of the transformers work has cleaned up the output on most obfuscated samples I have. Here's a demo on a Minecraft server plugin getting optimized back to almost perfectly legible source.
July 5, 2025 at 5:59 AM
Honestly, fuck Hotspot sometimes. A method body can just *lie* about how long its data is. Obviously nobody who makes a class parser is going to be keen on this until they see it in the wild. Does the spec say anything about this? Of course not!
July 3, 2025 at 10:40 PM
Reposted by Matt Coley
The slides from our @reconmtl.bsky.social talk, "Breaking Mixed Boolean-Arithmetic Obfuscation in Real-World Applications" (CC @nicolo.dev ), are now online!

Slides: synthesis.to/presentation...

Plugin: github.com/mrphrazer/ob...
June 27, 2025 at 8:28 PM
Reposted by Matt Coley
Getting tired of the "AI can generate code much faster than you" slogan. Most often, the problem is not generating code. The hard part is understanding the code. What is it doing, how and why? And is that what you expect it to do?
June 21, 2025 at 10:04 AM
Reposted by Matt Coley
Headless JavaFX platform passes almost all tests, with remaining failures being understood.
Time to bring this to the next step: mail.openjdk.org/pipermail/op...
June 5, 2025 at 6:56 AM
Alright, I rewrote my #JavaFX docking framework, BentoFX, from scratch (again) after incorporating it into multiple projects and learning what the pain points were with the existing architecture.

Here's what Bento looks like in practice:
June 20, 2025 at 10:27 PM
June 1, 2025 at 7:53 AM
In more positive news, I've made a lot of progress on BentoFX. Its still not at a stable release point, but while working on porting Recaf to use it I noticed and cleaned up a lot of bugs and lacking capabilities.
May 29, 2025 at 2:01 PM
You have no idea how much pain this stupid white rectangle problem has caused me. Still have zero clue what is causing it... 🥲 #JavaFX
May 29, 2025 at 1:37 PM