toad.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server operated by David Troy, a tech pioneer and investigative journalist addressing threats to democracy. Thoughtful participation and discussion welcome.

Administered by:

Server stats:

274
active users

#gradle

1 post1 participant0 posts today

We don't need more. We need less.

Every week:
🧠 A new framework.
⚙️ A new "layer".
🤖 A new AI wrapper.
🔄 A new YAML format to abstract what used to be a shell script.

And then we wonder:
"Why is our software hard to debug?"
"Why do our builds break randomly?"
"Why is onboarding a 6-month journey through tribal folklore?"

I once said I write bug-free software that can be finished.
People laughed, especially product people.
Not because it's wrong.
But because they’ve forgotten it's possible.

We build complexity on top of confusion:
A + B becomes C.
C + D becomes E.
Now, E is broken, and we would create a new layer, but nobody knows how A or B worked in the first place. For example HTML/JavaScript, we leave it there and just add layers around it.

Take XML.
Everyone says it's ugly.
But you could validate it automatically, generate diagrams, enforce structure.
Now we're parsing YAML with 7 linters and still can't tell if a space is a bug.

Take Gradle.
You can define catalogues, versioning, and settings, but can't update a dependency without reading 3 blogs and sacrificing a goat.
This is called "developer experience" now?

Take Spring Boot.
I wouldn't trust a Spring Boot or any java Framework powered airplane.
Too many CVEs. Too much magic. Too little control.

We don't need "smarter" tools.
We need dumber, boring, reliable defaults.

Start boring.
Start small.
Then only change the 1% that needs to be fast, clever, or shiny.
You'll rarely even reach that point.
Like everyone says, "Y is more performant and faster than X", but no one reached the limit of X. Why should I care? Meanwhile, we use performant AI.

Real engineering is not chasing hype.
It's understanding the system so deeply that you no longer need most of it.

We've replaced curiosity with cargo cults.
We've replaced learning with LLM prompting.

And somehow, we're surprised when AI loses to a 1980s Atari in a chess game.
At least the Atari understood its own memory.

Simplicity = less maintenance = fewer bugs = happier teams.

We need less. Not more.
#devex #simplicity #softwareengineering #nocodependency#stopthehype #bugfree #springboot #gradle #xml #yamlhell #boringisgood #minimalism #AIhype #infrastructure #cleancode #pragmatism #java #NanoNative

A recent discussion has led me to realize that many folks do not fully grok the parts of Gradle that can be made parallel. By default almost all of Gradle runs in a serial way.

So I wrote a post about it

liutikas.net/2025/07/29/Parall

www.liutikas.netParallel Bits - Which Parts of Gradle Run in ParallelBy default, nearly the entire invocation of Gradle is done serially, but there are ways to make it partially parallel.

SOS

I need some technical help.

I’m trying to get an existing project compiling.

Running node.js on windows.
Using flutter and gradle to build.
I have the correct version of android studio installed.

When I try to compile gradle complains that it can’t find Java in a directory of an old uninstalled version of eclipse.

I can’t for the life of me figure out where that path is being set.

Having to add an explicit dependency declaration to a #gradle build file, to ensure that an app isn't built with a GSON version that has vulnerabilities dating back to 2022, feels sooo wrong..... but hey, that's #AndroidDev!

(if you're wondering, a dependency of the project has a deep transitive dependency on GSON 2.8.9, and Gradle is happily hauling that in to the build with no warnings 😬 )

If you happen to wonder why you can no longer debug a #Gradle pre-8.1 project after updating to #IntelliJ_IDEA 2025.1, it's a bug; IntelliJ uses a method Gradle introduced in 8.1.

Upgrading to Grade 8.1 worked for me, others reported downgrading to IntelliJ 2024.3.5; a fix seems to be on the way.

Hey there #fediverse, I’m looking to hire a senior engineer to work with some awesome folks on #Netflix’s build tools & test infrastructure. If you are interested please apply online! (see link in Toot)

My DMs are open if you have any questions about the role or if you want to let me know that you applied.

#Java #JVM #Gradle

explore.jobs.netflix.net/caree

explore.jobs.netflix.netSenior Software Engineer (L5) — Build & Dependency Management Team (JVM Ecosystem) | USA - Remote | NetflixCommon Languages and Tools: Java & other JVM languages, Gradle, Nebula, Spring Boot, JUnit, GraphQL, Kafka, PostgreSQL. Implement and manage build solutions that enhance the efficiency and reliability of software delivery. Develop and maintain backwards-compatible tools for dependency management and analysis. Integrate internal and vendor-provided build and test infrastructure into engineering workflows, focusing on reliability and ease of use. Design and develop tools and infrastructure to automatically detect, quarantine, and reproduce flaky tests. Create and maintain tools for analysis of distributed tracing tools for test runs. Develop and integrate software solutions that provide high-quality synthetic test data generated from captured production traffic and API schema registries. Correlate test coverage data with code changes, runtime execution, and trace data for comprehensive reporting. Maintain a strong focus on scalability, usability, and reliability in platform design to support a growing cohort of engineers. Be willing and able to showcase our team's offerings to internal audiences Consult with other teams about how to best collaborate, integrate, and/or set up solutions for their needs A skilled software engineer with experience in developer platform or productivity teams. A meticulous software designer who researches and documents technical tradeoffs clearly and concisely. A self-motivated and organized individual who can independently drive engineering-wide solutions. A proactive communicator who engages effectively with technical and non-technical stakeholders. An advocate for strong build, dependency management, and testing practices, with familiarity in popular build tools, test frameworks, code coverage tools, continuous integration systems, and post-deployment verification methods (a healthy contempt for flaky tests is a plus). You have shipped and maintained Java code in production. You have worked on various technology stacks and are familiar with a variety of ways that software could be designed for different optimizations. You have designed and implemented build and dependency management solutions. You have built (and tested) custom Gradle plugins. You have assembled JVM Spring Boot applications using Gradle. You have experience with Nebula, Gradle, Maven, etc, for dependency management. You have experience with using and explaining Develocity dashboards. You are comfortable working with Zipkin or similar tools in the tracing space. You have implemented advanced log, metric, or error stacktrace analysis.

If you want to use the same #Gradle version catalog from an included build (e.g. buildSrc), you add use the following:

```
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}
```

TIL, Gradle `Property.convention(value)` will not override a value that is already set. Namely:
myProp.set("potato")
myProp.convention("default")

will result in myProp having value "default"

It makes sense, I just didn't think about it before.

#Flutter #Gradle #Android #FML

Kind of annoyed at myself

I was dumb and wasted several hours yesterday debugging a nonsensical Flutter+Android+Gradle build error

I had two machines with near identical setup next to each other. One worked, the other kept giving the error

I kept messing with the environments, asking LLM for advice… nothing

In the end, what fixed it (I think) was a reboot of the non-working machine 🙈🤦 should have tried it much earlier

Reboot early and often, kids

⭐️ new release ⭐

𝗼𝗿𝗴.𝗴𝗿𝗮𝗱𝗹𝗲𝘅.𝗷𝗮𝘃𝗮-𝗺𝗼𝗱𝘂𝗹𝗲-𝗽𝗮𝗰𝗸𝗮𝗴𝗶𝗻𝗴 version 1.0 Gradle plugin

Another GradleX plugin for Java Module (JPMS) development.

Features:
🔧 Define targets (Operating Systems, Architectures) to build you application for
📦 Build ready-to-ship installable packages (exe, dmg, deb, ...) directly with Gradle (uses jpackage under the hood)

🧩 Plugin
github.com/gradlex-org/java-mo

📚 Example project (includes multi-os GitHub actions setup)
github.com/jjohannes/java-modu

GitHubGitHub - gradlex-org/java-module-packaging: A Gradle plugin to package stand-alone Java applications for multiple operating systems and architectures with 'jpackage'.A Gradle plugin to package stand-alone Java applications for multiple operating systems and architectures with 'jpackage'. - gradlex-org/java-module-packaging
#Java#JPMS#Gradle

Going through the tutorial to set up a gradle build for a new java project and the default layout you get when running "gradle init" has the main source file in a directory nested *SIX* levels deep! app/src/main/java/org/example! Why are java programmers like this!!!