This is a blog post that tries to give a pragmatic explanation about what a monad is, and what problem it tries to solve.
This post is written by Ties van de Ven and Justus Brugman.
When I tried to learn about functional programming, I found myself lost in new words and jargon, I did not know about.
Suddenly my vocabulary needed to be extended with terms like Monads, Monoids, Composable, Functors and so on.
When trying to understand these terms, it became clear that I found it hard to understand what a monad is.
Continue reading →
Since about a month I’m developing some microservices using Javalin, a small, simple and lightweight web-framework that started as a fork from SparkJava.
By now it’s a ground-up rewrite, influenced by the Javascript framework koa.js.
Don’t let the stuff like Either scare you, we use the Arrow library to make our life a bit more easy :)
When requesting user input from a form, it’s evident that we need to validate our input.
Javalin has its own way of doing so (from the docs):
Continue reading →
After my last post, it would be a good time to do a bit more of a technical story.
The goal will be to set up a Hello World application using the Play framework,
a front-end based on Angular running on a Docker image, deployed in your local running Kubernetes!
So let’s play!
Play has been around for quite some time now.
It was built by web developers to make it more easy to develop web applications using either Java or Scala.
Play is reactive(1) by default, uses the MVC architecture(2) and is built on Akka(3).
Akka can be described as ‘the implementation of the Actor Model(4) on the JVM’.
Play is a lightweight, stateless framework that provides all components you need for web applications and REST services.
It’s easy to scale both horizontally and vertically.
The framework integrates a http server, CSRF protection and i18n support, supports Ebeans, JPA, Slick and does hot reloading of your code.
This makes it easy to directly see the results of your work.
Besides all that, it’s just FUN to use!
For more information about Play, just visit their site.
Continue reading →
Nowadays you can’t walk into an IT department without hearing discussions about containerization.
Should we move to OpenStack or OpenShift?
Do we want to use Pivotal Cloud Foundry?
What about Docker Swarm or Kubernetes?
How to integrate our new kubernetes cluster into our CI/CD pipelines?
Keep in mind that DevOps using unmanaged infra adds an extra layer of complexity to the development teams.
In the end, you might save money on an Ops team, but the tasks still need to be executed, leaving the work for the development team.
As an example, when you create some new code, make a pull-request, the CI/CD pipeline kicks in to automatically build your code, perform (unit) tests, deploy to the next environment, etc.
When an error occurs, the pull request would be rejected, leaving the developer to fix any possible issues, even infra.
Continue reading →
Today I’ve been working exactly minus 23 days at JDriven. So as you might expect, officially I’ll be starting there at the first of July. For my new employer, this is no reason at all not to invite you on the seminars they provide for their people, so yes this proved as well there is a reason to make this next step into choosing for JDriven. So last Thursday there I headed to headquarters at Nieuwegein for a full day workshop about Microservices, given by nobody else than Sam Newman!
Sam Newman
Okay, for the ones who don’t know, he is the author of the books ’Building Microservices’, ’Lightweight Systems for Realtime Monitoring’, and the forthcoming book ’Monolith to Microservices’, all published by O’Reilly. He’s also known being the co-creator of the Lego XP Game.
Continue reading →