A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday 8:30 PST.
June 30th, 2016, ISSUE 124

READING

6 products every Scala developer should use

Learn about Samebug, Takipi, Codacy, Codeship and New Relic.
Paul Bleicher (@Paul_Bleicher)
What makes type classes better than traits?

A list of strong arguments for using this powerful functional construct.
Rob Norris (@tpolecat)
Sbt heiroglyphs and multi-projects explained

Descipher all the cryptic operators and symbols and become fluent with sbt.
Divan Visagie (@DivanVisagie)
Generating, visiting and unit testing grammar using ANTLR4 with Java and Scala

In this blog we will programmatically check whether a file containing the input string is grammatically correct or not.
Sahil Sawhney

EVENTS

Scala eXchange London 2016 - Call for Papers

Apply if you'd like to speak on the 8th/9th of Dec. Deadline for submission - August 14th.
Scala eXchange (@scalaexchange)

CODE

Tk

Tk aims to be an efficient, well-behaved "impure effect wrapper monad" in the same vein as Scalaz's IO and Task types.
Joseph Abrahamson (@sdbo)
ensime 1.0.0

The first stable release allowing to break java6 support and change the protocol.
Ensime contributors
akka-persistence-cassandra 0.17

With new configuration for the reconnection policy.
Akka contributors

VARIA

Scala Times stickers?

Want one? Let us know or tweet @scalatimes.
THE INTERNET
  1. Scala Times Issue #124

    6 products every Scala developer should use. What makes type classes better than traits?. Sbt heiroglyphs and multi-projects explained. Scala eXchange London 2016 - Call for Papers.


  2. Scala Times Issue #123

    Strategic Scala Style: Designing Datatypes. Why you can’t always flatMap to Option. Dotty at EPFL. Scala case classes. List of Call For Papers for IT conferences.


  3. Scala Times Issue #122

    Scala for human beings. Futures - 3 (Combinators and Async). Hands on Scalaz. Scala is the new golden child. Reactive Web Request Batching with Scala and Play Framework.


  4. Scala Times Issue #121

    Overview of free monad in cats. Scalar 2016 talks. ScaLAB, Wrocław, June 25th 2016. Devoxx Poland, Krakow, 22-25 June 2016. Akka Streams in Practice.


  5. Scala Times Issue #120

    Combining Reactive Streams, Heroku Kafka, and Play Framework. Getting started with emacs for scala programming. The Scala Center Advisory Board. Micro-optimizing your Scala code. Scalable Fraud Detection for Zalando's Fashion Platform.


  6. Scala Times Issue #119

    Reflections on starting Android project with Scala. Finite state machines with Akka. Akka Remoting (Artery Milestone). Three Scala courses launched on Coursera!. Fetch: A new Scala library for simple and efficient data access.


  7. Scala Times Issue #118

    Improving your project with SBT. Hacking on scalac — 0 to PR in an hour. The Scala Effect. Getting started with scala-native | Smartjava.org. Research & Engineering.


  8. Scala Times Issue #117

    Scalar 2016 Scala Memes. Time Travel in Scala: CPS in Scala. Multiversal Equality for Scala. Simple NLP Search in Your Application. Scala goes Native.


  9. Scala Times Issue #116

    Bridging C++ to Scala with BridJ. Announcing Scala.js 0.6.9. Strategic Scala Style: Practical Type Safety. Painless, type-safe config file parsing with Macwire and Ficus. Migrating from Spray to Akka HTTP – Zalando Tech Blog.


  10. Scala Times Issue #115

    Programming in Scala, Third Edition. How to contribute to IntelliJ Scala plugin. The underrated applicative functor. ScalaMock: macros strike back. Scala macros part III – Intellij Idea Support.


  11. Scala Times Issue #114

    Akka 2.4.4 Released. Implementing type-safe request builder: practical use of HList constraints. Explaining Miles's Magic. Monads are confusing. Let us help. Scalar 2016 presentations & summaries.


  12. Scala Times Issue #113

    Dependency injection in Play Framework using Scala. EasyDI – Who wants some cake?. Scala IDE 4.4-vfinal. Hakk the planet: Implementing Akka HTTP (Un)Marshallers. My Emacs For Scala Development – Part 2.


  13. Scala Times Issue #112

    Swagger for Akka HTTP. A Comonad of Graph Decompositions. Performance akka-http vs scalatra. Play framework and Slick. Functional Programming Infographics – Main Features of Scala.


  14. Scala Times Issue #111

    Scala Options Explained. A first look at Akka streams. Building a lexer and parser with Scala's Parser Combinators. Typeclasses in Scala.


  15. Scala Times Issue #110

    Over Constraining the Aux Type. Typesafe Domain Objects in Scala. WhiteBoard Coder: sbt: customize Shell Prompt with git branch (round 2). Unit Testing - Cassandra with Phantom. ActorLogging vs. scala-logging - what is the difference?.


  16. Scala Times Issue #109

    Information hiding, enforced. "You don't need a macro". WhiteBoard Coder: sbt: Customize the Shell prompt in sbt. The Scala Center. Scalapeño 2016: Scala With a Kick!.


  17. Scala Times Issue #108

    Play 2.5.0 is released!. Diving into Akka Streams. Programming with Algebra - Atlassian Developers. Building microservices with Scala and akka-http. A useful F#-style |> operator for Scala.


  18. Scala Times Issue #107

    Akka Streams Integration With Intel GearPump Data Streaming Engine. Spray and Slick support for New Relic. Inspecting Akka's Supervision Strategy. A Type Level Proof of Uniqueness. |> Operator in Scala.


  19. Scala Times Issue #106

    Futures in Scala 2.12 series. Patterns in Scala: 101. Quill + Cassandra. Futures in Akka. Typesafe Changes Name to Lightbend.


  20. Scala Times Issue #105

    JSON numbers in circe 0.3.0. Strategic Scala Style: Principle of Least Power. Inverse Macro in Scala. Three cool things you can do with scala.meta. Purely Functional Data Structures and JMH.


  21. Scala Times Issue #104

    The Essence of Scala. Adventures with Scala Collections. Akka Streams integration in Play Framework 2.5. Phantom Types in Scala. Fear, Uncertainty and Doubt in Scala land.


  22. Scala Times Issue #103

    My Emacs For Scala Development – Part 1. Slick Extensions Open Sourced. Processing JSON data with Spark SQL. Scala and AWS Lambda Blueprints. 100x speedup by re-implementing batch processing with Akka Streams.


  23. Scala Times Issue #102

    Scalability using Sharding from Akka Cluster. It’s existential on the inside. File upload using akka-http in Scala. Apache Spark as a Distributed SQL Engine. Scala Collection API for C# Developers.


  24. Scala Times Issue #101

    Typelevel - new webpage. Losing track (Part 1). Akka Typed brings type safety to Akka framework. Essential Slick 3 Review. Be Like Water - A Shapeless Primer.


  25. Scala Times Issue #100

    Why Scala.js is preferred language for front-end development. Reactive DDD with Akka - integrating the Event Store. The Rapture Manifesto. Yet another iteratee library. Getting started with Akka Cluster.


  26. Scala Times Issue #99

    Reactive Streams for Kafka 0.9 with Akka Streams 2.0. Top 5 Scala Books in 2015. Why is the Aux technique required for type-level computations?. New Year Resolutions. Introducing Spark Datasets.


  27. Scala Times Issue #98

    Scala best practices. Optimizing SBT resolution times. Circe design guidelines and justification. GearPump Real-time Streaming Engine Using Akka. Moving a team from Scala to Golang.


  28. Scala Times Issue #97

    Sorting in Scala, tails of Functional Programming. Avoid Javaisms: Mocks, Stubs, DI is Code Smell. Typelevel - The benefits of community. A Scala view of Rust. Scala eXchange 2015 - Videos.


  29. Scala Times Issue #96

    SSO for Your Single Page Application (Part 2/2 - Akka HTTP). Reactive Database Access - Part 1 - Why "Async". Approaches to data auditing and introducing Slick-Eventsourcing. Typesafe ConductR available. Akka to the rescue.


  30. Scala Times Issue #95

    Akka Configuration Checker. Akka 2.4.1 Released!. EffScript: Practical Effects for Scala. Akka Stream and Http 2.0-M2 Released!. How to build a Scala REST CRUD application with Spray.


  31. Scala Times Issue #94

    Macro paradise 2.1.0-final. Generalized type constraints in Scala (without a PhD). Arrows, Monads and Kleisli - part II. Scala Plugin EAP Speeds Up Coding Assistance. 5 Scala Puzzlers That Will Make Your Brain Hurt.


  32. Scala Times Issue #93

    Akka HTTP Session 0.2.0. My Five Years of Scala - No Fun Allowed. 5 things we hate about Spark. Scala will be a beginner programming language at LTH. Stream Processing with Apache Flink.


  33. Scala Times Issue #92

    The mystics are coming out. Default type parameters with implicits in Scala. Scala is not a mythical monster! Using scala with Spring boot. Data Science for Losers, Part 3 – Scala & Apache Spark. Writing Monads in Scala with Spark-Notebook.


  34. Scala Times Issue #91

    Customizable gradual polymorphic effects for Scala. Solving problems in a generic way using Shapeless. Akka Cluster 2.4. Custom data validation rules with Shapeless tags. IntelliJ IDEA and Scala plugin 2.0.0.


  35. Scala Times Issue #90

    The Dotty compiler for Scala bootstraps. SBT with an external build tool. A comparison of Akka Persistence with Eventuate - Martin Krasser's Blog. Event sourcing + free monads = free sourcing?. From F to DOT: Type Soundness Proofs with Definitional Interpreters.


  36. Scala Times Issue #89

    Reification, Kleislis, and Stream Libraries. Scala and Spark Notebook: The Next Generation Data Science Toolkit. Typeclass in Scala and Haskell. Real-Time Stream Processing at InMobi - Part 4. Scala Up North 2015 videos.


  37. Scala Times Issue #88

    Akka Typed: First steps with typed actors in Scala. Fuzzing Raft for Fun and Publication. Collections Redesign Proposal. Akka without the Actors. Samsung wants to help IoT speak a common language.


  38. Scala Times Issue #86

    TIOBE Index for October 2015. Spark Dataframes transformations with state Monad. Wanted: Strawman proposals for new collections architecture (Dotty). Free monads - what? and why?. Make Them Suffer / Actors Internal State.


  39. Scala Times Issue #86

    Learn implicits: Type classes. Reactive Monitoring Beta Progam. Better Spray metrics with Kamon. Scala Development with IntelliJ IDEA. Spark Streaming: Tricky Parts.


  40. Scala Times Issue #85

    Redis Plugin for Akka Persistence. Introducing a new MongoDB Scala Driver. Scala in North Lakes. Scala in the browser. Getting Started with Scala.js. Beyond Scala Lens.


  41. Scala Times Issue #84

    Reactive Kafka with Scala. Introduction to Eventuate. The Aux Pattern. Open Sourcing Task Library For Queueing Reliable Task Execution. Entry-level, synchronous & transactional event sourcing.


  42. Scala Times Issue #83

    Akka Streams and Apache Camel. Monifu vs Akka Streams. Understanding Akka's Recommended Practice for Actor Creation in Scala. FS2: The Official Guide. A Hands-On Introduction to ScalaTest.


  43. Scala Times Issue #82

    A Journey into Reactive Streams. Lens in Scala. How To Set Request Throttling on a Dispatch HTTP Client. How Flink handles backpressure. Dockerizing you Scala apps with sbt-docker.


  44. Scala Times Issue #81

    AWS Lambda Scala example project released. What's new in Reactive Kafka 0.8.0?. Easy Scalability with Akka. How to make an idiomatic Javascript library with Scala.js. What is our "Why" and purpose for existing? Public renaming update.


  45. Scala Times Issue #80

    Introduction to Akka Actors. The basics of Lenses in Scala. Connecting dots with Akka Streams. How Autodesk Implemented Scalable Eventing Overs Mesos. Akka Data Stream Processing.


  46. Scala Times Issue #79

    Diving into Spark Streaming's Execution Model. Variance in Scala ("Luke, he is your father too"). Elastically Adding and Removing Nodes Using Akka cluster. Using shapeless HLists with Slick 3. Quasar and Akka - a Comparison.


  47. Scala Times Issue #78

    Category Theory jargon cheat sheet. Learn implicits: views as class extensions. Zero to deep Learning with Scala. Encoding of GADTs in Scala. Scala Dissection: Basic Types.


  48. Scala Times Issue #77

    A Map of Akka. SIP/SLIP Summary, July 27th 2015. Testing without mocking in Scala. Websockets Server with akka-http. Functional patterns for Scala beginners.


  49. Scala Times Issue #76

    Top 100 Scala Libraries in 2015. Some fun with akka-streams and akka-http. The need for Acknowledgement in Streams. Use akka-stream BidiFlows with an IRC client. Scala Up North CFP ends soon!.


  50. Scala Times Issue #75

    Akka Streams & Http 1.0 Released!. A Quick Overview of Slick 3.0. Partially Applied Functions in Scala. Client-side sessions for akka-http. Functional Error Accumulation in Scala.


  51. Scala Times Issue #74

    Bootzooka, Summer 2015. Throttling Instantiations of Scala Futures. Play @ Delft Software Architecture course. Cancelling work in flight. Scala Doesn't Have To Be Complicated.


  52. Scala Times Issue #73

    Learn to cook pancakes, the Akka way. When & why to use Supler for web forms. Akka Distributed Data. Why we chose Scala. Open Source Async MongoDB driver for Scala & Play Framework.


  53. Scala Times Issue #72

    Scala 2.11.7 is now available!. Inventory App Part 1. Easy Performance Wins With Scalaz. How to create XML models in Scala? - scalaxb. Herding Cats - days 9 and 10.


  54. Scala Times Issue #71

    Scala Days Amsterdam 2015. Event-sourced game implementation example: Part 2/3. An Introduction to Cats. Why we picked AKKA cluster as our microservice framework. Peeking Under The Covers in Scala.


  55. Scala Times Issue #70

    Spark monitoring: How to Handle 10B Requests a Day. Escape to an Inner Object. One Up: Bulding machine learning pipelines with Mario. Scala.js: first impressions. Slick-based (Scala) Flyway Migrations.


  56. Scala Times Issue #69

    Typechecking SQL in Slick and doobie. 2.2 Billion Clicks And Beyond. Reactive Streams 1.0.0 interview. Backpressure in action with websockets and akka-streams. A quick look at Scalameta.


  57. Scala Times Issue #68

    Comparing akka-stream and scalaz-stream with code examples. Scala Case Classes in Depth. The Good Parts: Reflections after 1.5 years of Akka. New in Bootzooka - Towards the Reactive. SpinGo <3 Scala.


  58. Scala Times Issue #67

    Huffington Post's new Publishing Platform On Typesafe. ConductR 1.0 released. Ad Hoc Polymorphism in Scala With Type Classes. How one company improved developer productivity by 700% with reactive programming. The Honeymoon Is Over.


  59. Scala Times Issue #66

    Returning the "Current" Type in Scala. Slick 3: Reactive Streams for Asynchronous Database Access in Scala. Herding Cats - day 4. Play framework security with Silhouette. The Bet With Typesafe That Got Me Into Building Akka.


  60. Scala Times Issue #65

    Overview of Akka Typed. Path dependent types - modeling algebraic structures has never been easier. Returning the "Current" Type in Scala.


  61. Scala Times Issue #64

    Monadic IO: Laziness Makes You Free. Introduction to Akka Streams. ConductR: Typesafe's move in lightweight containers and age of distributed clusters.. Practices for Distributed Scala Teams. Akka Streams & HTTP 1.0-RC1.


  62. Scala Times Issue #63

    Free Monads Are Simple. Typesafe ConductR from a developer's perspective. Gems of SBT. Scala vs. Node.js as a RESTful backend server. Developing Play Applications using Gradle.


  63. Scala Times Issue #62

    A Skeptic's Guide to Scalaz' Gateway Drugs. Using AutoPlugin in Sbt for Common Settings Across Projects. Ternary Operator in Scala. Deep Dive into Spark SQL's Catalyst Optimizer. Scala Days 2015 videos.


  64. Scala Times Issue #61

    MacWire 1.0 is here!. Category theory patterns in Scala. Retrying HTTP Requests in Scala. Reactive Postgres with Play Framework & ScalikeJDBC. Designing a Purely Functional Data Structure.


  65. Scala Times Issue #60

    Case classes to and from tuples. New technologies for the new LinkedIn home page. How to ... in Scala. Functional Validation in Scala. EmojR - a Reactive Emoji as a Service platform.


  66. Scala Times Issue #59

    Async Goes Mainstream: 7 Reactive Programming Tools You MUST Know. Introduction to scalaz-stream. Pickling Case Classes to Memcached with Scala. Concurrency made easy with Scala and Akka. Dead Code Rising.


  67. Scala Times Issue #58

    3 simple reasons why you need to learn Scala. Supler update: 0.3.0 release. Quicklens: traversing options and lists. Scala Collections tips and tricks. RxLift: Reactive Web Components with LiftWeb and RxScala.


  68. Scala Times Issue #57

    Eight hot technologies that were built in Scala. Sbt - A task engine. A companion booklet to "Functional Programming in Scala". Rúnar Óli Bjarnason. Scala for Machine Learning: A Review.


  69. Scala Times Issue #56

    Analyzing #TheDress with Akka Streams. Quicklens: Modify deeply nested case class fields. Transitioning To Scala. 6 months with Slick. Implementing the Reactive Manifesto with Akka.


  70. Scala Times Issue #55

    Zero-overhead Recursive ADT coproducts. Designing Fail-Fast Error Handling. Typesafe Activator 1.3.0. Why did we use Scala as our main backend language?. Scala Macros - Annotate your case classes.


  71. Scala Times Issue #54

    Moving from Java to Scala. Spark may be hotter than Hadoop, but it still has issues. Abstract algebraic data types. Error handling without throwing your hands up. Implementing operation-based CRDTs in Scala.


  72. Scala Times Issue #53


  73. Scala Times Issue #52

    DI in Akka. Akka HTTP microservice example. Visualizing Scala code style. Scala in large scale systems (part 1). Kafka @ Yahoo.


  74. Scala Times Issue #51

    Filtering Akka streams by elapsed time. Scala, Futures and "Lazy" Vals. Lift: was that a "tap"?. The rough experience with Slick. Wisp is Scala plotting.


  75. Scala Times Issue #50

    A gentle introduction to Akka Streams. Scala @ Paypal: Cascade. How is it like to use Akka in production?. MacWire 0.8.0: towards 1.0, tagging, anonymous functions support. Scalar C4P is open!.


  76. Scala Times Issue #49

    Scala 2.11.5 is released!. Purely functional #1: remotely. Purely functional #2: stoop. Scala data pipelines for music recommendations. Simulating a financial exchange in Scala.


  77. Scala Times Issue #48

    My journey away from Play Framework... and back again. Some Quick Tips for Using Scala Futures. 90 Days of Scala. Creating Reactive Streams components on Akka Streams. 3 approaches to Scala code generation.


  78. Scala Times Issue #47

    How and Why is Scala Used in Aerospace Industry?. Reactive Streams 1.0.0.RC1 Released. ScalaZ - Getting to grips with the Free Monad. Trending Scala Repositories Today.


  79. Scala Times Issue #46

    Akka Streams & HTTP 1.0 MILESTONE 2. The Cake Is A Lie. Akka Roadmap Update Dec 2014. Spark Release 1.2.0. Spray & Akka HTTP (73min).


  80. Scala Times Issue #45

    Supler 0.1.0: complex forms made easier. Scaling Akka Cluster. Akka Cluster API Routing. Configuring SBT to use 1Password. Scala: the language of agility?.


  81. Scala Times Issue #44

    An example of functional design. Java 8 vs Scala. The Difference in Approaches and Mutual Innovations. A farewell note to a programming language. Programming changes the way you think. Scala eXchange 2014 slides.


  82. Scala Times Issue #43

    Design Principles behind Akka Streams. Scala Macros - State of the meta, fall 2014. Type-safe vector addition with Dependent Types. (Oldie) Akka cluster 1. (Oldie) Traits: How Scala Tames Multiple Inheritance.


  83. Scala Times Issue #42

    Binding Futures in Lift 2. OO vs FP. Scala OOP Galore. Hands-on Scala.js (humongous size). ReactiveMongo with Akka, Scala and websockets.


  84. Scala Times Issue #41

    Debugging Scala compiler magic. Scala tips: Improving the imperfect pt.1 . Codebrag gone free and open source. Coding on Twitter. Code Examples for Programming in Scala.


  85. Scala Times Issue #40

    Renewed Reactive and Scala Forks: Dispatches from Typesafe. Akka 2.3.7 Maintenance Release. Free development resources search. Sorting on multiple fields and Tuples. Init.d and Start Scripts for Scala/Java Server Apps.


  86. Scala Times Issue #39

    Clustering reactmq with akka-cluster. Understanding Spray Client Timeout Settings. Is Scala and influence on Swift's design?. Scala 2.11.4 is now available!. JSON Parsing in Scala.


  87. Scala Times Issue #38

    Type-safe transducers in Clojure. And Scala. And Haskell.. Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Services Architecture. New and upcoming Finagle examples. Trending Scala Repositories Today.


  88. Scala Times Issue #37

    Scalar Conference announced - 11.04.2015, Warsaw, Poland. Scala Best Practices. Three Reasons a Data Engineer Should Learn Scala. My favorite way of injecting dependencies in Scala. Java 8 adoption rate higher than expected.


  89. Scala Times Issue #36

    Scala: the Case for Correctness. Manipulating Data with Framian. Startup (on Spark) Crunches 100 TB/23 min. Better equality for Scala. The problematic culture of "Worse is Better".


  90. Scala Times Issue #35

    Scala - the good, the bad and the very ugly. Why did we use Scala as our main backend language?. Coming from ORM to Slick. Is Scala slowly dying?. Life with Akka.io.


  91. Scala Times Issue #34

    Reproducing Elixir's |> in Scala. An Example of Functional Programming. Map reduce with Akka and Scala: The famous word count. Notes about Valhalla from a non-Java perspective. Trending Scala Repositories Today.


  92. Scala Times Issue #32

    Leveraging annotation macros to generate caching boilerplate in Scala. Framework-less Scala Dependency Injection Framework. Are Scala forks considered harmful?. 15-minute chat with lift-ng. Apache Spark and Scala.


  93. Scala Times Issue #32

    React Conference promo codes. The reactive manifesto. Scala Times Softies: Why sometimes I hate myself. Anatomy of a tail recursive function. No Magic: Regular Expressions.


  94. Scala Times Issue #31

    Span Conference promo codes - 20% off!. New agey interview at the grocery startup. Scala founder: Language due to 'fundamental rethink'. Maximize Your Server Throughput with Scala. Trending Scala Repositories Today.


  95. Scala Times Issue #30

    Scala.io promo codes!. Typelevel Scala and the future of the Scala ecosystem. Typesafe's Commitment to the Scala Ecosystem. Why Should I Learn Scala?. Akka Roadmap Update 2014.


  96. Scala Times Issue #29

    Scala eXchange, 8-9.12.2014, London - discount & call for papers. Scala: Why it should matter to you as a business owner?. Reactive Programming with Scala and Akka. Why Google should bring Scala to Android. Akka Streams at Elder Research: Q&A with Simeon Fitch.


  97. Scala Times Issue #28

    Scala Times at Scala.io (23-24.10.2014) - discount codes incoming. Programming language subreddits and their choice of words. George Orwell's six rules for Scala programmers. I was wrong when I advocated the use of Scala. A goroutine idiom for Java and Scala.


  98. Scala Times Issue #27

    Scalaz type class 101. Scala's Modular Roots. Types of 'map' function in Haskell, Scala and Clojure. Scalaz EphemeralStream Fills Quite A Canyon. Does Java 8's lambda capability make Scala obsolete?.


  99. Scala Times Issue #26

    Scala Times banners. Scala: Next Steps. Guide to Dependency Injection in Scala. Dumping my university's database of exam results. The Evolution of Scala.


  100. Scala Times #25: The best of Scala Times #1-24

    Coding Resiliently in Scala with Akka. What's Up With Paul Phillips?. Java and Scala: Former Competitors May Be BFFs Before Long. Learning Scalaz: nescala 2014. The Ultimate Guide to Getting Started With the Play Framework.


Got a tip? Send it in!
Follow us on Twitter.
Curated by SoftwareMill.
We are hiring.
And taking on projects.