//Our blog
Lunatech’s
engineer blog
All blog posts - en
Our different categories
The Unit of a test
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
The DC/OS (Datacenter Operating System)-Part 1
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