Most Java/Scala/Groovy project depend on a number of libraries, these libraries depend on other libraries, and so on for many levels deep. When creating the final project bundle we end up with a large number of external dependencies, which are often very hard to manage. That’s why UpdateImpact was created:…
Category: Scala
Event sourcing + free monads = free sourcing?
I recently wrote about Event Sourcing and Free Monads. The natural next step is combining the two! How would a free monad adjusted for event sourcing look like? Please bear in mind that the below is just really a draft, not a complete solution. Hence any suggestions for improvements are…
MacWire 2.0: composing modules & cleanup
Recently we released MacWire 2.0, with a number of new features and general code cleanup. The majority of the work was done by Bruno Bieth – thanks! If you don’t know what MacWire is: a lightweight and non-intrusive Scala dependency injection library, and in many cases a replacement for DI…
When & why to use Supler for web forms?
If you haven’t yet heard about Supler, it’s a Rapid Form Development library, working with your favorite Javascript frontend and Scala backend frameworks. It keeps the form definition centralized, taking care of client/server-side validation, form rendering, applying new values and serializing/deserializing. Star Supler on GitHub if you think that might…
akka-stream vs scalaz-stream
I recently published a comparison of akka-stream and scalaz-stream, with code examples (same problems implemented using both libraries) on SoftwareMill’s blog.
MacWire 1.0 is here!
A couple of days ago MacWire 1.0 was released! If you don’t yet know what MacWire is: a light-weight and non-intrusive Scala Dependency Injection library. In fact, it’s more of an approach to DI (see the step-by-step guide), than a library. Another good thing – it’s definitely not a framework…
Quicklens: traversing options and lists
Quicklens is a small library which allows to modify deeply nested fields in case classes e.g.: modify(person)(_.address.street.name).using(_.toUpperCase), without the need to create dedicated lens objects. I got some very good feedback on the initial release – thanks! There’s also a spin-off implementation, using a different syntax. One problem that I…
Quicklens: modify deeply nested case class fields
TL;DR: Quicklens: modify deeply nested fields in case classes, e.g.: modify(person)(_.address.street.name).using(_.toUpperCase). Similar to lenses, but without the actual lens creation. Lenses are very useful when you have to update a deeply nested field in a hierarchy of case classes. For example if we have: 1 2 3 4 5 case…
In today’s post-OO world, is dependency injection still relevant?
It’s 2015. Most of the new popular languages are more or less functional. The old ones, like Java, gain functional programming elements. In Scala, people are increasingly leaning towards the pure side, using more FP and less OO. So – Dependency Injection? Really? You could say that DI is just…
Supler 0.2.0: docs and features added, bugs removed
Supler is a library which makes writing complex forms easier. It has a server-side (Scala) and a client-side (JavaScript) component. In December we announced the 0.1.0 release, so it’s about time for an update! The biggest improvement for Supler uses will probably be the brand new documentation. We now have…