A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
November 2nd, 2023, ISSUE 504

READING

Custom logic from Accept header with Tapir

Imagine a endpoint in which you need to apply custom logic based on the Accept header of the requests. For instance, the endpoint might return the data in different formats like JSON or plain text.
Gaël Jourdan-Weil (@GaelJourdanWeil)
Use Union Types Instead Of Either[E, A] For A More Efficient Validation?

The reason I put together this article is because I couldn't help to notice how similar Either[E, A] is to union type E | A.
Hernan Saab
Using Nix to Develop and Package a Scala Project

This post will show how Nix can be used to develop and package a typical software project without the hassle of relying on language specific version managers or brittle setup scripts.
Ralf Gueldemeister (@rgueldem)
Chartreuse

A Scala library that builds on Doodle, and provides a functional and compositional interface to quickly assembly visualizations from small reusable pieces.
Noel Welsh (@noelwelsh)
Scala Center Activity Report for 2023 Q3

Maintaining and Evolving the Scala 3 Compiler, Scala Improvement Process, Better Foundations for Match Types, Scala 3 Language Specification, Scala.js maintenance, Scala 3 Migration, Documentation Website, API for the Scala 3 Presentation Compiler, sbt, and other subjects.
Scala Center (@scala_lang)
How to convert an Option to an Either in Scala

Learn how to use basic pattern matching or toRight method to achieve this goal.
Julien Truffaut (@JulienTruffaut)
Free support for Scala 2 to 3 migration

We support organisations to deliver ambitious Scala 3 projects simply and reliably. You won't find a support team more competent than VirtusLab, as it maintains Scala 3 and is a major contributor to the Scala ecosystem. Feel secure knowing that your projects will have access to top-tier tools, migration, adoption, and modernisation experts.
VirtusLab (@VirtusLab)

VIDEOS

How we use sbt-buildinfo in production

This video is about how we use sbt-buildinfo at work.
DevInsideYou (@DevInsideYou)
Zymposium - ZIO Q&A

Dive into this special ZIO Q&A episode where we address your questions - we discuss ZIO HTTP, ZIO Chat, and more!
Ziverge (@zivergetech)
Zymposium - Implementing Actors With ZIO

In this episode, we continue our exploration of implementing actors with ZIO and have some fun with them.
Adam Fraser (@adamfraser)
Zymposium - Auto-Generating OpenAPI Specs from ZIO HTTP

Watch to understand the process and the impact of this automation on development.
Nabil Abdel-Hafeez

EVENTS

10% discount for Functional Scala, Nov 30th - Dec 1st, London

Use code ScalaTimesFS2023 and get our exclusive discount!
Ziverge (@zivergetech)
Advanced Scala Workshop at Functional Scala, Nov 30th - Dec 1st, London

In this special 4-hour workshop from Scala expert John A. De Goes, you will learn more than just the basics of Scala, as you cover parametric polymorphism, higher-kinded types, implicits / givens, type class pattern, Any & Nothing, lambda types, and basic macros.
John A. De Goes (@jdegoes)
LambdaConf 2024, May 4th-10th, Estes Park, Colorado

Get ready!
LambdaConf (@lambda_conf)

RELEASES

tapir 1.8.5

With Netty server-side cancellation, Pickler fixes, option to provide custom WS config in zio-http, and some more tweaks.
tapir contributors (@scalarconf)
tapir-loom 0.2.5

Now with support for the final stable release of Helidon Níma 4.
SoftwareMill (@softwaremill)
jsoniter-scala 2.24.2

Adds support for Scala 3 immutable arrays, as well as an ability to inline compile-time configuration for Scala 3 classes.
Andriy Plokhotnyuk (@aplokhotnyuk)
Metals 1.1.0

New Scala versions support, build server status, run code lens for Mill build server, convert single line comments to multiline, detect project root, error reports in metals doctor, show bloop errors, plus a ton of fixes.
metals contributors
enum-extensions

A library that provides type classes to work generically with enumerations in Scala 3.
Jamie Thompson (@bishabosha)
scalac-profiling 1.1.0-RC1

Now with support for Scala 2.13. When compile times become a problem, how can Scala developers reason about the relation between their code and compile times?
scalac-profiling contributors
Stryker4s 0.15

A highly reworked new version of Stryker4s, a tool for mutation testing in Scala.
Stryker4s contributors
scala-cli 1.0.5

Accept --power from anywhere, offline mode (experimental), shorter install script link, the fix sub-command (experimental), support for building static & shared libraries with Scala Native (experimental), and many more updates!
scala-cli contributors
Akka Edge

Akka Edge is a set of features in Akka that will help you with using Akka at the edge of the cloud for higher availability and lower latency.
Lightbend (@lightbend)
pekko-projection 1.0.0

In Pekko Projections you process a stream of events or records from a source to a projected model or external system. Each event is associated with an offset representing the position in the stream. This offset is used for resuming the stream from that position when the projection is restarted.
Pekko contributors





  1. Scala Times Issue #509

    Type class derivation with ZIO Schema. Scala traits vs enums for ADTs. Practical Type-Level Programming in Scala 3. Extension of Erased Values in Scala 3. For-Comprehension Use Cases in Scala.


  2. Scala Times Issue #508

    Effective Test Parameterization with ScalaTest Tables. Indoor Vivants: Scala Native and Swift: building Twotm8 MacOS app. Entry 1: fs2, gRPC, Triton Inference Server. Poll: Semiauto derivation in circe for Scala 3. Introduction to Functors With Scala 3.


  3. Scala Times Issue #507

    Scala Left Fold Parallelisation - Three Approaches. Advent of Code 2023. Helix and Scala. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.


  4. Scala Times Issue #506

    In Scala 3, use 4 Spaces for Indentation. Writing a Chat With Akka. How to retry a Future in Scala. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.


  5. Scala Times Issue #505

    Getting started with ZIO, part 3. Laminar & Scala.js Full Stack Demo & More. Harness the power of Web Components with Scala and Laminar. Rendezvous Benchmark Analysis: When Threads (Don't) Meet. How scala-cli Shines in Automation.


  6. Scala Times Issue #504

    Custom logic from Accept header with Tapir. Using Nix to Develop and Package a Scala Project. Scala Center Activity Report for 2023 Q3. How to convert an Option to an Either in Scala. Free support for Scala 2 to 3 migration.


  7. Scala Times Issue #503

    Tell us which errors bug you the most. Videos from Scala Days 2023. Schema management with Scalameta. Art of Scala, Nov 17th, Warsaw. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.


  8. Scala Times Issue #502

    In Defence of Mocks. Turning actors inside-out. Learn how to package your Scala application with ease. Why on earth a ZIO IO monad for Scala?. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.


  9. Scala Times Issue #501

    TestContainers in Scala: Use Integration Tests for building your services. Scala Made Simple for Beginners. Integration testing the Typelevel toolkit. Why I find Scala so amazing. I got interviewed for a FAKE Scala job....


  10. Scala Times Issue #500

    IntelliJScala @ Scala Days 2023 Madrid. OOP classes vs Higher-order Functions (HOFs). Work-in-Progress Scala 3 Specification. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.


  11. Scala Times Issue #499

    State of Scala 2023 by ScalaCenter and VirtusLab. JDK 21 LTS - All Features Explained!. The Scala Center Fundraising Campaign. So, What's So Special About The Mill Scala Build Tool?. Kyo: Toolkit for Scala Development.


  12. Scala Times Issue #498

    Generating a Rust client library for ZIO Http endpoints. Why Scala Dominates Data Engineering. CFP: NEScala 2023. London Scala Talks, Sept 20th. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.


  13. Scala Times Issue #497

    Compare Task Processing Approaches in Scala. Temporal Workflows with ZIO: Introduction. REST APIs Using Play Framework and Scala: A Comprehensive Guide. Automating Data Transformations with ducktape. CFP: NEScala 2023.


  14. Scala Times Issue #496

    Lightbend transfers ownership of sbt to the Scala Center. Type safety with Iron. Scala Days Madrid, Sept 11th-12th. Performance Optimization on the JVM, Sept 11th-15th, Online. London Scala Talks, Sept 20th.


  15. Scala Times Issue #495

    Slack Bot in Scala and 12 Ways to Run It. Cost of boxing. Diving into ZIO Test 'Aspects'. Contribution Equals Impact. Do your Values align with FP Values?.


  16. Scala Times Issue #494

    Cats Effect vs ZIO. Principles of developing applications in Scala. The Scala Week in Madrid. Scala Days Madrid, Sept 11th-12th. Performance Optimization on the JVM, Sept 11th-15th, Online.


  17. Scala Times Issue #493

    Native app development with sttp and Scala Toolkit. ZIO Kafka with Jules & Erik. ScalaWAW #30, Aug 17th, Warsaw. Scala Days Madrid, Sept 11th-12th. Performance Optimization on the JVM, Sept 11th-15th, Online.


  18. Scala Times Issue #492

    Go-like channels in Scala: receive, send, and default clauses. IntelliJ Scala Plugin 2023.2 Is Out!. Scala Days Madrid, Sept 11th-12th. Performance Optimization on the JVM, Sept 11th-15th, Online. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.


  19. Scala Times Issue #491

    Scala Websites Improvements. Signature polymorphic methods in Scala. Scala Center Roadmap for 2023 Q3. Zymposium - ZIO Maelstrom. Zymposium - Partial Functions & Future ZIO HTTP Features.


  20. Scala Times Issue #490

    How to implement streaming microservices with ZIO 2 and Kafka. Automation tools for Scala development. Introduction to optics in Scala. Comprehensive Data Validation in Scala. ZIO 2 Runtime Improvements .


  21. Scala Times Issue #489

    6 Common Misconceptions Around Akka-HTTP / Pekko-HTTP. "No More Orphans" in Practice. Interesting patterns to consume ZIO Streams. Why I keep choosing ZIO!. Breaking framework chains with vanilla Scala.


  22. Scala Times Issue #488

    Two types of futures. Chatbot Showdown: Typelevel Scala Edition. An intro to Flow Fields in Scala. Mastering ScalaTest - Exploring Tagging, Retry, Runner and More. Top Scala open source projects and contributors.


  23. Scala Times Issue #487

    5 Scala Libraries That Will Make Your Life Easier. Post-Conference Notes on Scala Days 2023 Seattle. Dependency Injection with Cats-effect Resource Monad. Developer Ecosystem Survey 2023. ScalaWAW #28, June 28th, Warsaw.


  24. Scala Times Issue #486

    Getting started with ZIO, part 1. Introducing ZIO Flow. The Business of the Scala Programming Language. ScalaWAW #28, June 28th, Warsaw. 10% discount for LambdaConf, Sept 16th-19th, Estes Park, Colorado.


  25. Scala Times Issue #485

    Functional Declarative Design. How to use Large Language Models for Scala documentation. Scala 3 Significant Indentation Woes: Sample. Iron updates: turning opaque types into value objects. Why we used Quill in RealWorld project?.


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 bySoftwareMill.
We arehiring.
Andtaking on projects.