27 Followers
67 Following
486 Posts
Father of 2, geek, software engineer, FP enthusiast
Bloghttps://simy4.github.io
Java 26 / JDK 26: General Availability - jdk-dev - openjdk.org

Hey companies, please fck off 😽
Sudden change of plans brought so much time to do open source. Anyone doing anything interesting?
"Their code was so bad that I had to rewrite it before I threw it away."
Postmortem on Scala 3.8.0: https://www.scala-lang.org/blog/post-mortem-3.8.0.html. We are also working on a 3.8.2 release which will include a fix for scala/scala3#24673, which can cause some for comprehensions to behave incorrectly at runtime.
Postmortem of scala/scala3#24994

Scala 3.8 is here! A major release modernising the ecosystem and paving the way for Scala 3.9 LTS.

Highlights:
- Standard library compiled by Scala 3
- Better Fors & runtimeChecked stabilized
- New experimental features
- Update to JDK 17+

🧵 Let's dive in...

casually cuts your type checking time by two thirds https://github.com/agda/agda/pull/8332
Type checking in parallel by plt-amy · Pull Request #8332 · agda/agda

No biggie. Works by doing an extra pre-pass in typeCheckMain to type-check all the imports in parallel, populating the DecodedModules map, before the type-checker runs as usual. This means that the...

GitHub
I don’t understand how self-driving cars work because according to CAPTCHAs robots can’t identify traffic lights, motorcycles, or buses
We Began to Forget: Demystifying Spring Framework

We began to forget how to pass parameters to functions. Before @Bean, before @Configuration or @PropertySource and certainly way before WebSecurityConfigurerAdapter objects were responsible not only for their own behaviour, but also for creating everything they depended on. public class OrderService { private final PaymentProcessor processor; public OrderService() { this.processor = new StripePaymentProcessor(); } } This code works, but it also quietly locks many decisions inside the class, because OrderService now decides which payment processor is used, how it is created, and when its lifecycle starts, and once this happens, changing that decision means changing the code itself. Configuration and behaviour start to mix, breaking single responsibility principle.

My personal space