A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
May 16th, 2024, ISSUE 532

READING

Duchess at Scala.io

A couple of months ago, a significant number of female speakers participated at the Scala.IO conference held in the city of Nantes. Thankfully, three event tickets were gifted to the Duchess France community, and we took advantage of this opportunity to write and share what we’ve learned from these speakers.
Pauline Iogna (@pauline_io)
Purify Your Tests

When I say "purify" I mean it in the pure functional programming sense of making the tests side-effect-free. But more specifically, I'm going to show you a way to avoid mutable mocks.
Daniel Beskin
Tuning ZIO for high performance

Learn how to optimize runtime flags, parallelism, executors, and more!
Pierre Ricadat (@ghostdogpr)
JetBrains Joins the Scala Center Advisory Board!

As the next step in our journey to support the ecosystem, we are pleased to announce that JetBrains has joined the Scala Center Advisory Board as an Affiliate Member!
Dmitrii Naumenko (@JetBrains)
Introducing com-lihaoyi Issue Bounties

To encourage engagement and contribution by the com-lihaoyi community, I (Li Haoyi) am putting up issue bounties for various issues within the com-lihaoyi ecosystem.
Li Haoyi (@li_haoyi)
Announcing Kaleidoscope

Today is Scala 3's third birthday, and I'm celebrating by releasing Kaleidoscope, the first library in the Soundness ecosystem, available right now on Maven Central for Scala 3.4.0+.
Jon Pretty (@propensive)

EVENTS

ScalaMatsuri, June 7th-9th, Tokyo, Japan

The largest international Scala conference in Asia.
ScalaMatsuri (@ScalaMatsuri)

VIDEOS

Anti-corruption layers through functional type safety

Recording from the Scalar Conference 2024. This presentation describes the development of a financial middleware that internationally connects several ERP systems (Navision and SAP) to a cloud-based invoicing solution. Both the invoicing service and the ERP systems pose integration challenges, due to a combination of API mismatches and stability issues. Still, a goal of this middleware was to provide added value by having a useful financial representation across all countries.
Yan Ypma
Scala tooling ecosystem

Another talk from Scalar 2024. Tooling is one of the topics most discussed in the Scala community. We often complain about its issues or have to deal with its’ imperfect solutions. However, Tomasz believe we have gone a really long way during the last few years and we are consistently improving with most Scala core teams being highly conscious of the current imperfections. He would like to go over the most relevant tools and changes that can improve your developer experience.
Tomasz Godzik (@TomekGodzik)
htmx, ScalaTags and ZIO HTTP - Single-Page Web Applications in Scala

This video is a demonstration of a small web application written in Scala, called Neon Pages: a catalogue of contacts where you can add, edit, remove and bulk-edit data with instant feedback and persistence.
Daniel Ciocîrlan (@rockthejvm)
Generative art with Scala, no AI required

A talk from Scalar 2024. Math is beautiful, sometimes very literally. In this talk, we will demonstrate some elegant applications of functional programming in Scala, with even more elegant visual results - all with live code and real-time output.
Daniel Ciocîrlan (@rockthejvm)
Improved reuse in Smithy with Mixins

Eight part in the series about Smithy4s.
Jakub Kozłowski (@kubukoz)
Barely functional: writing lean scala app

A recording of live coding session. Let's build an app without overengineering it (not the Scala way but let's try).
Łukasz Biały (@lukasz_bialy)

RELEASES

tapir 1.10.7

With zio-json support in codegen plus some dependency updates and fixes.
tapir contributors
zio 2.1.0

This version brings a lot of performance improvements in the fiber runtime as well as the scheduler. It is fully binary compatible with the 2.0.x branch with the exception of some internal classes that shouldn't be used anywhere else.
zio contributors
Laminar 17.0.0 & Shoelace Web Components 0.1.0

This release has it all: new features, ergonomic improvements, and bug fixes, in both Laminar and Airstream. Laminar is a Scala.js library for building web application interfaces and managing UI state.
Laminar contributors
ScalikeJDBC 4.3.0

ScalikeJDBC 4.3.0 is now available for Scala 2.12, 2.13, and Scala 3 application development! The notable feature enhancement is scalikejdbc-orm module addition!
ScalikeJDBC contributors
gears 0.2.0

An Experimental Asynchronous Programming Library for Scala 3. Enables direct-style programming. Allows an idiomatic way of structuring concurrent programs minimizing computation leaking (structured concurrency), while providing a toolbox for dealing with external, unstructured events..
gears contributors
Redacted 0.5.1

Prevents leaking sensitive fields defined inside case class. Version 0.5.1 brings some bufixes.
Diego Casella (@polentino911)





  1. Scala Times Issue #553

    Direct-style concurrent streaming. Open com-lihaoyi issue bounties. Scala Project Maintenance Survey. Scalar 2025 extends call for papers!. Scala.IO, Nov 7th-8th, Paris.


  2. Scala Times Issue #552

    Optimal Scalafmt configuration using Genetic Algorithms. Cancellable HTTP requests via Scala's Tapir. Game of Life with Scala.js and Webassembly. Scala without effect systems. The Martin Odersky way.. Scalar 2025 Early Birds!.


  3. Scala Times Issue #551

    Functional Programming in Scala - Edu Plugin. Inline your boilerplate - harnessing Scala 3 metaprogramming without macros. Scalar 2025 Early Birds!. Lambda World, Oct 2nd - 4th, Cadiz, Spain. Art of Scala, Oct 10th, Warsaw, Poland.


  4. Scala Times Issue #550

    Autowire: Zero-Cost Dependency Injection. Another bunch of com.lihaoyi Mill issue bounties. Comparison of Kyo and traditional effects. Scala & Akka: How to secure your code. Fun with Types: All Types of Physics Computations.


  5. Scala Times Issue #549

    Capabilities for Control. Scalar 2025 Call for Papers is open!. Unison Forall, Sept 20th, remote conference. Lambda World. Oct 2nd - 4th, Cadiz, Spain. Call for Speakers - Art of Scala, Oct 10th, Warsaw, Poland.


  6. Scala Times Issue #548

    Perfect Tab Completions. David's programming examples knowledge base. Writing an Android app with Scala.js. Unison Forall, Sept 20th, remote conference. Lambda World. Oct 2nd - 4th, Cadiz, Spain.


  7. Scala Times Issue #547

    Streaming Hash Computations. Launch Scala, faster than Native. Distributed locks in Kubernetes with Scala. The Future Software Engineer. Lambda World. Oct 2nd - 4th, Cadiz, Spain.


  8. Scala Times Issue #546

    Upcoming Changes to Givens in Scala 3.7. Unexpected Scala Functions: groupMap. Lambda World. Oct 2nd - 4th, Cadiz, Spain. Call for Speakers - Art of Scala, Oct 10th, Warsaw, Poland. Scala.IO, Nov 7th-8th, Paris.


  9. Scala Times Issue #545

    ZIO-like dependency injection using implicit resolution. The Mechanics of Mitigation. Publishing test traces to Grafana using otel4s and weaver. Announcing Decisions4s: When Ifs Are Not Enough. State of structural typing support in Scala 3.3.0.


  10. Scala Times Issue #544

    Direct-style Bootzooka: 2024 update | SoftwareMill. The Tri-Z Architecture: a Pattern for Layering ZIO Applications in Scala. The Error Management Manifesto. Migrating to Safety. Benchmarking database sharding in Akka | @lightbend.


  11. Scala Times Issue #543

    Lambda World. Oct 2nd - 4th, Cadiz, Spain. Metals v1.3.4 - Thallium | Metals.


  12. Scala Times Issue #542

    Effective Error Handling. Developer Ecosystem Survey 2024. Pseudorandom Acts of Kindness. Scala 3 Metaprogramming Learning Resources. Scala to WebAssembly: How and Why.


  13. Scala Times Issue #541

    Tapir documentation improvements. Checked exceptions: fixed!. Use cases for Scala. ScalaWAW #33 - beach party! Jul 25th. Lambda World. Oct 2nd - 4th, Cadiz, Spain.


  14. Scala Times Issue #540

    PureConfig with Scala 3 - Tutorial. Developer Experience in Open Source Software. "Learn Functional Programming The Fast Way!" PDF is free. ScalaBridge London @ SiriusXM!, Jul 18th. ScalaWAW #33 - beach party! Jul 25th.


  15. Scala Times Issue #539

    YAML as a valid Scala 3 code. ExecutionContext.parasitic and Friends. ScalaBridge London @ SiriusXM!, Jul 18th. Lambda World. Oct 2nd - 4th, Cadiz, Spain. Faster and less mysterious sbt builds with Develocity.


  16. Scala Times Issue #538

    Make Impossible States Unrepresentable: Network Edition!. Ten things I like about Scala 3. Compiling Bad Code. The ZIO 2 “mental model”. JetBrains course: Functional Programming in Scala.


  17. Scala Times Issue #537

    A Logic Circuit Simulator with Cats-Actors. Magda Stożek - My Scala Story. Lambda World. Oct 2nd - 4th, Cadiz, Spain. ScalaBridge London Jun 20th, 2024. Armored type safety with Iron.


  18. Scala Times Issue #536

    Scala 3 improvements in Metals (and hopefully, IntelliJ IDEA). Purify Your Tests III: Lean, Mean Testing Machine. 12 years of the com.lihaoyi Scala Platform. Scala Is Not Going Anywhere. OpenTelemetry With Scala Futures.


  19. Scala Times Issue #535

    GraphQL in Scala: Role-Based Access Control. WebSocket chat using structured concurrency, Ox & Tapir. Tapir tutorials, part 1. Scala 2.13 LTS planning. A Sighting of filterA in Typelevel Rite of Passage.


  20. Scala Times Issue #534

    Lagom is approaching end of life: possible migration paths. WebSockets in Scala, Part 2: Integrating Redis and PostgreSQL. Scala service combined with PostgreSQL, Flyway, Doobie, Ciris, IO(Cats Effects), Http4s…. Akka 24.05: More Security. More Performance. More Efficiency.. Forking and Interruption in ZIO.


  21. Scala Times Issue #533

    Apache Pekko becomes a Top-Level Project. Scala Meetup at Evolution. Purify Your Tests: 2 Parametric, 2 Declarative. Introducing TARP Stack – Tapir, React and PostgreSQL. IO effect tracking using Ox.


  22. Scala Times Issue #532

    Duchess at Scala.io. Purify Your Tests. Tuning ZIO for high performance. JetBrains Joins the Scala Center Advisory Board!. Introducing com-lihaoyi Issue Bounties.


  23. Scala Times Issue #531

    Que es un Higher-Kinded Type de Scala?. ScalaMatsuri, June 7th-9th, Tokyo, Japan. Custom-compile errors with a venegance. Data Engineering at Netflix using Apache Spark and Flink.


  24. Scala Times Issue #530

    Direct-style Effects Explained. How to build AI apps with Scala 3 & Besom. Spec-first and code-first, hand in hand. ScalaMatsuri, June 7th-9th, Tokyo, Japan. Direct Style Scala Stack - An Experiment.


  25. Scala Times Issue #529

    Jacek Kunicki - My Scala Story. Kalix tutorial: Building invoice application. Safe direct-style Scala: Ox 0.1.0 released. LambdaConf, May 4th-10th, Estes Park, Colorado. LambdaConf - The Grand Hackathon Finale, May 10th.


Organizing an event?
Promote it with
Scala Times.
The Scala Times reader?
Get a banner!
Got a tip?Send it in!
Follow us onTwitter.
Curated by SoftwareMill.
We are hiring.
And taking on projects.