//Our blog
Lunatech’s
engineer blog
Latest articles - en
Our most recent posts
All blog posts - en
Our different categories

Mastering Typeclass Derivation with Scala 3

The Scala effect: Java’s Evolution Inspired by Scala

SBT: More than a Build Tool

Interop Summit. Why do we only import Java libraries?

Recap of the Joy of Coding Meetup at Lunatech

ZGC vs G1GC for Scala

JVM vs JVM

AspectJ vs Spring AOP vs Quarkus: Aop Showdown

The Unit of a test

Java 22 vs Java 23 and the Evolution of String Templates

Maven vs Gradle Navigating the World of Java Build Tools

Why the Women Automotive Network Summit Should Be on Your Radar: Diversity, Inclusion and Networking

LunaConf 2024: A Memorable Gathering

Create a Grafana Alert for expiring Microsoft Entra ID secrets

JFokus 2024

The NEAT Algorithm: Evolving Neural Networks

Semantic Kernel SDK and Quarkus

Telegram bot for file sharing using Quarkus

Akka Licence Change (One Year Later)

Running Linux and Windows on a Mac M1/M2 laptop

Quarkus Benelux in Rotterdam

Devoxx BE 2023

Devoxx BE 2023

Meetup At The Rotterdam Office | Devoxx Try-out: Maintaining Maven at scale and Machine Learning in Java

Meetup At The Rotterdam Office | Devoxx Try-out: Maintaining Maven at scale and Machine Learning in Java

Streams in Scala - An Introductory Guide

Riviera DEV 2023

Setting up a home energy monitoring system

JWT token validation in Ktor with Client Credentials Flow

API Automation Testing Tools, a comparison

Parallel execution: A Hibernate Reactive Gotcha

Exploring Advanced Kotlin Features: A Deep Dive for Scala Developers

Rust by examples, for a Java developer

Embrace Kotlin: Tips And Tricks for Scala Developers to Get Started

Spring Data Specifications

An intro to Argo CD

An intro to Argo CD

Hackaton By CESI

Hackaton By CESI

AutomationSTAR 2022 Conference

Using Kotlin to build the Lunaconf 2022 App

Using Kotlin to build the Lunaconf 2022 App

Introduction to e-voting schemes

Introduction to e-voting schemes

Struggles at the Beginning – Software Testers journal

Custom JIT compilation with Runtime Multi-Stage Programming

Browsing collections with foldLeft and foldRight

Sunny Tech 2022 (EN)

Introducing Cypress

Bootiful ZIO

Linking metrics and traces with Exemplars

Pitfalls in Kryo Serialization

Load testing with Gatling

Kubernetes Operator with Java and Quarkus

Paying homage to the Compall-Michael pattern, and anticipating Scala 3 Opaque Types

Comparing Concurrent Programming Alternatives

Announcing the Lunatech Beginner Quarkus Course

Typing your actors step by step

Airports at Scale

Creating Telegram bot for rental notifications in Spring Boot

The tale about Hibernate and Temporal Tables

Senior - To be, or not to be

How to Manage External Dependencies

Polynote, a better notebook for Scala

Announcing the Moving from Scala 2 to Scala 3 course

When Hibernate caching can go wrong

Using Dotty Union types with Akka Typed - Part II

Using Dotty Union types with Akka Typed

Quarkus - an open-source tool to write your Java applications

Creating an Android and iOS App with React Native

Configuring Applications With Docker

Time range queries with Cassandra and Akka Streams

Lessons Learned Using Spark Structured Streaming

Lunatech Advisory Board Member At Scala Center!

Anonymization Opensource With Scala Tensorflow

Message Reliability In Kafka

Hack In The Woods: Programming For Fun And Good

Bootstrapping Our Internal Android App With Kotlin (Part 2)

Bootstrapping Our Internal Android App With Kotlin

Guardrail With Http4s Tutorial

If Scala Is Functional, Why Cannot Java?!

Tensorflow Dev Summit, Sunnyvale March 6-7 2019

Friday's Internal Workshop

Running The Spark-Notebook On A Kubernetes Google Cloud Cluster

A Journey Into Google Cloud At Devoxx

Lunatech Airport Assessment

Nvidia GPU Technology Conference In Munich

Reactive Summit Montreal 2018

New Partnership With Mesosphere And Dutch Mesos User Group

Functional Abstractions In JavaScript: Check Functors Laws

A Journey Into Annia's Project!

Curry on 2018 impressions

Curry on Amsterdam 2018

Dutch Clojure Meetup

A journey into Joy of Coding 2018

Scala Days 2018 review

Lunatech Platinum Sponsor Scala Days 2018 Berlin

NN Rotterdam Marathon 2018

Apache Spark for Scala Training - 2nd Session at Lunatech

Lightbend Spark for Scala-Professional by Kensu

Snowcamp and Touraine Tech
-part-1/background.png)
The DC/OS (Datacenter Operating System)-Part 1
/background.png)
Dealing with heavy boxes (monads)

Functional Rotterdam-15

An Introduction to Finagle by example

Functional IO with FS2 Streams

Side Effects and How To Deal With Them The Cool Way, Part 2 - Monads Introduction

Side Effects and How To Deal With Them The Cool Way, Part 1 - Pure functions and functors

Play Framework - Beginner Tutorial - Make a post request and save the form data in Mongodb

A journey to ScalaCheck

Shapeless - Introduction resources

Shapeless - Computing deltas

Moving from Spain to the Netherlands

Moving From Java To Scala

Play Framework - How to handle a big json file in play ( more than 22 root variables)

Continuous Delivery on GitLab with Play, Scala, SBT and Heroku

Continuous Integration on GitLab with Scala and SBT

Recursion and Trampolines in Scala

Meet and Greet and Scala Days review

Functional Rotterdam -10-

Summer Fast Track To Scala Training By Lunatech

Clever Cloud’s CEO to speak at Lunatech

On the road again - Scala days Berlin 2016

Platinum sponsor of Scala Days Berlin

Fast Track to Scala - Training

Our first award!

Functional Rotterdam - 5th Edition

Lunatech management realises MBO

Regex extractors

Lunatech blog retrospective - 2013

Lunatech blog retrospective - 2012

Lunatech blog retrospective - 2011

Blog retrospective 2010

Lunatech blog retrospective - 2009

Lunatech blog retrospective - 2008

Lunatech blog retrospective - 2007

Lunatech blog retrospective - 2006

Lunatech blog retrospective - 2005

Business process visibility with ALEK

Speaking the language

Managing database transactions with Squeryl and Activiti

Third-party Logistics (3PL) domain expertise

Benefits of remote working

Code review observations are not failures

Inserting database table rows with Slick 1.0.1

Sdu publishing system - technical upgrade

Mapping Slick query results to case classes 1.0.1

Executing database queries with Slick 1.0.1

Using Play framework database evolutions with Slick 1.0.1

Defining database table columns with Slick 1.0.1

Using the Scala console with Play and Slick 1.0.1

Getting started with Play and Slick 1.0.1

Lunatech feeds Happy Melly

Fast Track to Play training certification

Play 2, SecureSocial and Slick

Sdu Royal Ten - 10km business run

Third Monthly Clojure Meetup at Lunatech

Lunatech Hosts and Sponsors Clojure Meetup

Good bug reports come in four parts

Rotterdam Business Marathon

Typesafe at 010DEV

Typesafe training partnership

Sdu Uitgevers - Sdu Web Services

The Joy of Coding 2013

iOS full-text search with Core Data and SQLite

RobotiCamera360 featured at Syntens

Øredev - recommended presentations

Planning Scrum project documentation

Øredev 2012 Play Framework 2 presentation video

Lunatech presents Play at Øredev 2012

Lunatech presents Play at Topconf 2012

Lunatech presents Play at JAX London 2012

GeeCON 2012 Play Framework 2.0 presentation video

Scrum software project documentation environment set-up

Scrum and non-functional requirements

The double-sided Scrum board

Transparent development and the project management

Lunatech presents Play at GOTO Amsterdam 2012

Lunatech presents Play at GeeCON 2012

Play framework 2 books

First 010DEV event

Review - Drools Developer’s Cookbook

Reflections on Scala Days 2012

Syntactically correct and type-safe JPA queries in Play 2.0

Play Framework 2.0 productivity tips

Jfokus 2012 Play Framework 2.0 presentation video

Fact Type Hierarchies in Drools

Java Spotlight podcast - Play 2.0 & Akka 2.0

Play rescues kittens at Jfokus

Validation in Scala

Jfokus 2012 - what are Java developers up to?

Lunatech presents at Scala Stockholm

Lunatech presents Play at Jfokus 2012

February Play!ground presentations and photos

Database access in a stateless world

February 2012 Play!ground at Paddy Murphy’s

January 2012 Play!ground presentation slides

Late Christmas at Lunatech

URL-centric web application design

Processing EDIFACT messages with Smooks

BitBucket review

January 2012 Play!ground

Codebase review

What’s wrong with the Java Servlet API

Geo Freedom Day 2011

Play 2.0 demo - live coding script

Why Play isn’t a Java web framework

The Scala List extractor demystified

Official Government Publications - ODF Plugfest presentation

Devoxx 2011 tips

Play framework meet-up at Devoxx

December Play!ground in Rotterdam

Progress bars with jQuery UI, WebSocket & Play

RivieraDEV - the official pictures

Lunatech at the RivieraDEV

Last article from me

Selector dialogue with jQuery UI, Ajax and Play

Duse XIV - Exploring Lightweight Event Sourcing

Duse XIV at Lunatech Research

Play!ground presentation slides & code

Logging rule activation with Drools

September Play!ground in Rotterdam

Review - Play Framework Cookbook

Fronteers at Lunatech. WTF?

JavaZone Play framework presentation video

Lunatech presents Play Framework at JavaZone 2011

Logging debug messages with Drools

Own goals - Scala vs Ceylon vs Kotlin

August Play!ground presentation slides & video

Riviera JUG news

Riviera DEV

Lazy loading page content with jQuery UI, Ajax and Play 1.2

First Play!ground in the Netherlands

Turkish Play framework community

Lunatech Ventures sponsors Circus Treurdier

Class Struggle

jQuery UI Ajax autocomplete with Play 1.2

Reviewing Play 1.2’s dependency management

Lunatech Invitational Golf Event 2011

Three Scrum benefits (video)

The myth of the on-site customer

Play framework 1.2 file upload with play.db.jpa.Blob

Play Framework 1.2 - Better JSON serialization with FlexJSON

Browsers don’t do layout

We have moved on to git, why haven't you?

Play Framework 1.2 - Using relative dates in fixtures

A two month internship at Lunatech

A functional programming puzzle

Play Framework 1.2 - Writing a Multitenancy Application with Hibernate Filters

Kalydo paving the way to success

Play Framework 1.2 Security- Fighting Cross Site Request Forgery

The Software Estimation Manifesto

Ajax DataTables with the Play framework 1.2

Integrating Play framework 1.2 with jQuery DataTables

Declarative model class enhancement in Play 1.2

2organize Scrum master

10 Devoxx tips

Play framework meet-up at Devoxx 2010

Localized Play framework 1.0 validation messages

Play framework 1.0 built-in validations

New open-source libraries

How to get a job interview at Lunatech

How to demo the Play framework - live coding script (in Scala)

How to get a job at Lunatech

Play framework 1.0 content negotiation

Literal data structures in Scala

Panzano Sandwich Cruncher

How to demo the Play framework 1.2 - live coding script

Play framework 1.0 cheat sheet

Activiti next-generation Business Process Management and work-flow

jax-doclets version 0.7 released

Automatic resource link discovery with RESTEasy and Atom links

How to localise a Play framework 1.0 web application

Sdu Uitgevers - SaaS product implementation

Plan Cruncher - Play! in production

Upgrading Play 1.0 applications without downtime

Presentations - Drools and the perfect programmer at 42

Play framework usability

jBPM4 and Seam working together

Plan Cruncher - shorter business plans

Unit-testing AJAX code with Maven

Running Lumbermill on OS X 10.6 Snow Leopard

Lunatech attending the 2nd Paris JUG anniversary

Back from FOSDEM - the NoSQL trend

Lunatech attending the 2nd Paris JUG anniversary

Lunatech live from Paris

Electronic government publications

How to fix disappearing Flash component

JBoss Rules (Drools) implementation Execution Server

How to build a decision service using JBoss Rules Execution Server

Decision service business rules in JBoss Rules

Chrimble cocktail

Decision service architecture with JBoss Rules

Confluence as an enterprise Facebook

Java native libraries using JNA

Generating scalable barcodes with iText and Seam

Kalydo bringing MMO games to Social Networks

Using Hibernate on old Solid databases

Support for original language in Accept-Language header

Support for original language in Accept-Language header

Support for original language in Accept-Language header

2 octobre 2009 @Sophia-Antipolis - Sophia fait sa Java

Lunatech Golf Invitational 2009

Kalydo presents GamePro at Siggraph 2009

15 juillet 2009 @Sophia-Antipolis - soirée Agile

Debugging deadlocks in JPA and PostgreSQL

Benelux JBoss User Group, 22 May 2009 slides

Localised attribute values in JSF and Seam

VisibleLogistics - Supply Chain Visibility SaaS

Groovy and Grails meetup on Thursday May 7th

Benelux JBoss User Group, 22 May 2009

Language localisation in JSF and Seam

Benelux JBoss User Group, 27 February 2009

What every web developer must know about URL encoding

My favorite FireFox add-ons for MacOS

Numbered Headings in Confluence

Getting a list of time zones in Java and Seam

VisibleLogistics integrates with eBay

Seam meetup at Devoxx

Mini-conférence Java EE le 14 janvier 2009 à Sophia-Antipolis

Meeting-avoidance for self-managing developers - Devoxx 2008

Lunatech at the JBug.be this Friday

Introduction to ZTemplates

Mig69 sneak preview - Video Hosting with a twist

Generating KML for RESTful clients

Meeting-avoidance for developers - Devoxx08 presentation

XML and Namespaces

Lunatech Golf Invitational 2008

Seam presentation video on parleys.com

How to explain Twitter

WipidoTV.com - over 1 million served

Running several JBoss AS on the same server

The programmer’s private office

How to draw lolcats

Nouvelles technologies de développement - FPI 2008 in Nice

Benelux JBoss User Group, 20 June 2008

Bean validation in Java EE

We are hiring Java EE / J2EE developers (Rotterdam)

RESTful web services in Java EE with RESTEasy (JAX-RS)

IT2Capital Partners and Technostars invest in Eximion

Seam is the new Struts

Morphon Technologies releases Morphon T-o-M 1.0

Benelux JBoss User Group, 29 February - photos

Marketing books for developers

Launching VisibleLogistics, the on-line solution for demanding customers

Benelux JBoss User Group, 29 February 2008

Embedded Journalism

Benelux JBoss User Group, 29 February 2008

Seam in action - JavaPolis presentation

The European Union - a metaphor for JBoss Seam

Lunatech at JavaPolis 2007

No fields are required

Wipido Matchzone officially launched

Benelux JBoss User Group, 2 November 2007 - photos

Changing credentials without logging in again in Seam 1.2.1

Starting a game company - Eximion story pt.2

Benelux JBoss User Group, 2 November 2007

Eximion game artwork archive

Wipido - Show your gaming skills, record your frags.

Amsterdam Java Meetup, 21 September 2007

Starting a game company - Eximion story pt.1

Web application 2.0 features

BitLogistics blog

Minoto present at CampZone 2007

OpenSearch plug-in for Atlassian’s Confluence

Book review - Wikinomics

Investment in BitLogistics Ltd.

Eximion - Next generation web games have arrived!

Eximion launches with first games type

Benelux JBoss User Group, 8 June 2007 - first photos

Upgrading JSF applications to JBoss 4.2.0.GA

JSF-Facelets custom date converter

Boss Benelux User Group, 8 June 2007

Investment in Minoto Entertainment

UML class diagrams in Confluence using Graphviz and DOT

Classifying Visibility Solutions

Ant and manifests

Version tags with Ant

How to write user-interface instructions

Eclipse plug-in installation

Wow GNU Style

Business Class or Economy?

JavaPolis 2006

Wiki is my word-processor

Lunatech Research Golf Invitational

Struts page-level authorisation

How to use bullet lists

Making daily recurring To Do items in Apple iCal

The Urban Country Club

Development - Ernst & Young Indirect Tax

Task management - the difference between urgent and important

Books for software developers

Spring fever

Tuples in Java

Dynamic calendars - iCalendar feeds using iCal4J

Book review - Designing Interfaces, Jenifer Tidwell

I wish I could write like Joel…

Book review - To Engineer Is Human, Henry Petrovski

Book review - Slack, Tom Demarco

Struts Action Mappings - configuring web application URLs

Upgrade your JSPs to XML (but not to .jspx)

Web application post-submit messages

JavaPolis 2005

Navigation design patterns - details page

Support for generics in XDoclet 1.2/1.3 anyone?

Fun with PDF and hardware tokens

Who wants to start a company anyways?

Automated website testing with Java - HttpUnit / JWebUnit

Web application navigation design patterns

The geoweb - open standards for publishing geodata

Displaying access key assignments

Information radiators: from dashboard to wall

I liked it so much I bought the company

Chocolate cocktails: brain food for after work

Business lunch rules

Catalogue search/browse

The hype is back baby - and this time its for real!

Progressive - the dark side of new software

The same but different- web application comparison support

Struts URLs for perfectionists

Paranoid configuration - tamper-proof text

Unforgiven - user-interface labels

Basis Wetten Bestand