Our blog
Lunatech’s
engineer blog
All blog posts
Our different categories
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2024-01-10-quarkus-openai-text-review/background.png)
Semantic Kernel SDK and Quarkus
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2023-11-05-telegram-bot-for-file-sharing-using-quarkus/background.png)
Telegram bot for file sharing using Quarkus
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2023-10-13-devoxx-be-2023/background.png)
Devoxx BE 2023
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2023-09-29-meetup-at-the-rotterdam-office/background.png)
Meetup At The Rotterdam Office | Devoxx Try-out: Maintaining Maven at scale and Machine Learning in Java
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2023-03-24-spring-data-specifications/background.png)
Spring Data Specifications
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2022-01-03-kryo-pitfalls/background.png)
Pitfalls in Kryo Serialization
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2020-12-14-spring-boot-rental-notifier-bot/background.png)
Creating Telegram bot for rental notifications in Spring Boot
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2020-11-19-how-to-manage-external-dependencies/background.png)
How to Manage External Dependencies
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2020-03-23-when-hibernate-caching-can-go-wrong/background.png)
When Hibernate caching can go wrong
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2020-01-27-quarkus-an-open-source-tool-to-write-your-java-applications/background.png)
Quarkus - an open-source tool to write your Java applications
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2019-03-26-if-scala-is-functional-why-cannot-java/background.png)
If Scala Is Functional, Why Cannot Java?!
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2017-10-01-the-dc-os-(Datacenter-Operating-System)-part-1/background.png)
The DC/OS (Datacenter Operating System)-Part 1
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2016-08-17-moving-from-java-to-scala/background.png)
Moving From Java To Scala
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2012-04-16-jpa-queries-playframework-20/background.png)
Syntactically correct and type-safe JPA queries in Play 2.0
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2012-03-21-fact-type-hierarchies-drools/background.png)
Fact Type Hierarchies in Drools
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2012-01-27-database-access-stateless-world/background.png)
Database access in a stateless world
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-12-30-processing-edifact-messages-smooks/background.png)
Processing EDIFACT messages with Smooks
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-12-08-wrong-with-servlet-api/background.png)
What’s wrong with the Java Servlet API
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-12-01-playframework-20-live-coding-script/background.png)
Play 2.0 demo - live coding script
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-11-29-why-playframework-is-not-java/background.png)
Why Play isn’t a Java web framework
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-10-31-progressbar-jqueryui-websockets-playframework/background.png)
Progress bars with jQuery UI, WebSocket & Play
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-09-26-logging-rule-activation-drools/background.png)
Logging rule activation with Drools
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-09-02-logging-debug-drools/background.png)
Logging debug messages with Drools
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-08-15-riviera-jug-news/background.png)
Riviera JUG news
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-08-15-riviera-dev/background.png)
Riviera DEV
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-06-30-reviewing-play’s-dependency-management/background.png)
Reviewing Play 1.2’s dependency management
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2011-04-26-playframework-file-upload-blob/background.png)
Play framework 1.2 file upload with play.db.jpa.Blob
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2011-04-20-play-framework-better-json-serialization-flexjson/background.png)
Play Framework 1.2 - Better JSON serialization with FlexJSON
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2011-01-11-declarative-model-class-enhancement-play/background.png)
Declarative model class enhancement in Play 1.2
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-09-28-localized-play-framework-validation-messages/background.png)
Localized Play framework 1.0 validation messages
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-08-30-playframework-builtin-validations/background.png)
Play framework 1.0 built-in validations
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2010-08-20-new-open-source-libraries/background.png)
New open-source libraries
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2010-08-09-how-demo-play-framework-live-coding-script-scala/background.png)
How to demo the Play framework - live coding script (in Scala)
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-07-26-play-framework-content-negotiation/background.png)
Play framework 1.0 content negotiation
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-07-19-literal-datastructures-scala/background.png)
Literal data structures in Scala
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-06-14-how-demo-play-framework-live-coding-script/background.png)
How to demo the Play framework 1.2 - live coding script
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-06-08-play-framework-cheat-sheet/background.png)
Play framework 1.0 cheat sheet
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-05-18-activiti-next-generation-business-process-management-and-work-flow/background.png)
Activiti next-generation Business Process Management and work-flow
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2010-04-22-jax-doclets-version-07-released/background.png)
jax-doclets version 0.7 released
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2010-04-19-automatic-resource-link-discovery-resteasy-and-atom-links/background.png)
Automatic resource link discovery with RESTEasy and Atom links
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2010-04-01-sdu-uitgevers-saas-product-implementation/background.png)
Sdu Uitgevers - SaaS product implementation
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2010-03-01-unit-testing-ajax-code-maven/background.png)
Unit-testing AJAX code with Maven
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-01-11-jboss-rules-drools-implementation/background.png)
JBoss Rules (Drools) implementation Execution Server
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2010-01-04-how-build-decision-service-using-jboss-rules-execution-server/background.png)
How to build a decision service using JBoss Rules Execution Server
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2009-12-28-decision-service-business-rules-jboss-rules/background.png)
Decision service business rules in JBoss Rules
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2009-12-14-decision-service-architecture-jboss-rules/background.png)
Decision service architecture with JBoss Rules
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-12-06-java-native-libraries-using-jna/background.png)
Java native libraries using JNA
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-11-23-generating-scalable-barcodes-itext-and-seam/background.png)
Generating scalable barcodes with iText and Seam
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-11-17-using-hibernate-old-solid-databases/background.png)
Using Hibernate on old Solid databases
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-05-26-debugging-deadlocks-jpa-and-postgresql/background.png)
Debugging deadlocks in JPA and PostgreSQL
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2009-05-25-benelux-jboss-user-group-22-may-2009-slides/background.png)
Benelux JBoss User Group, 22 May 2009 slides
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2009-05-12-localised-attribute-values-jsf-and-seam/background.png)
Localised attribute values in JSF and Seam
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-05-04-groovy-and-grails-meetup-thursday-may-7th/background.png)
Groovy and Grails meetup on Thursday May 7th
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-04-29-benelux-jboss-user-group-22-may-2009/background.png)
Benelux JBoss User Group, 22 May 2009
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2009-03-31-language-localisation-jsf-and-seam/background.png)
Language localisation in JSF and Seam
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-02-04-jbug-2009-02/background.png)
Benelux JBoss User Group, 27 February 2009
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2009-02-03-what-every-web-developer-must-know-about-url-encoding/background.png)
What every web developer must know about URL encoding
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-12-05-mini-conférence-java-ee-le-14-janvier-2009-à-sophia-antipolis/background.png)
Mini-conférence Java EE le 14 janvier 2009 à Sophia-Antipolis
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-11-07-lunatech-jbugbe-friday/background.png)
Lunatech at the JBug.be this Friday
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-10-29-introduction-ztemplates/background.png)
Introduction to ZTemplates
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-10-17-generating-kml-restful-clients/background.png)
Generating KML for RESTful clients
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-09-29-seam-presentation-video-parleyscom/background.png)
Seam presentation video on parleys.com
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-08-07-running-several-jboss-same-server/background.png)
Running several JBoss AS on the same server
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-05-19-nouvelles-technologies-de-développement-fpi-2008-nice/background.png)
Nouvelles technologies de développement - FPI 2008 in Nice
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-05-16-benelux-jboss-user-group-20-june-2008/background.png)
Benelux JBoss User Group, 20 June 2008
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-05-09-bean-validation-java-ee/background.png)
Bean validation in Java EE
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-03-20-restful-web-services-java-ee-resteasy-jax-rs/background.png)
RESTful web services in Java EE with RESTEasy (JAX-RS)
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-03-17-seam-new-struts/background.png)
Seam is the new Struts
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-03-03-jbug-2008-02-photos/background.png)
Benelux JBoss User Group, 29 February - photos
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2008-01-17-jbug-2008-02/background.png)
Benelux JBoss User Group, 29 February 2008
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-12-14-seam-action-javapolis-presentation/background.png)
Seam in action - JavaPolis presentation
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-12-11-european-union-metaphor-jboss-seam/background.png)
The European Union - a metaphor for JBoss Seam
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-12-09-lunatech-javapolis-2007/background.png)
Lunatech at JavaPolis 2007
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-11-07-changing-credentials-without-logging-again-seam-121/background.png)
Changing credentials without logging in again in Seam 1.2.1
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-07-06-opensearch-plug-atlassian’s-confluence/background.png)
OpenSearch plug-in for Atlassian’s Confluence
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-06-15-benelux-jboss-user-group-8-june-2007-first-photos/background.png)
Benelux JBoss User Group, 8 June 2007 - first photos
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-06-14-upgrading-jsf-applications-jboss-420ga/background.png)
Upgrading JSF applications to JBoss 4.2.0.GA
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-06-13-jsf-facelets-custom-date-converter/background.png)
JSF-Facelets custom date converter
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2007-04-20-ant-and-manifests/background.png)
Ant and manifests
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media//2007-04-16-version-tags-ant/background.png)
Version tags with Ant
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2007-03-08-eclipse-plug-installation/background.png)
Eclipse plug-in installation
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-12-22-javapolis-2006/background.png)
JavaPolis 2006
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-09-15-struts-page-level-authorisation/background.png)
Struts page-level authorisation
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-04-28-tuples-java/background.png)
Tuples in Java
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-04-19-dynamic-calendars-icalendar-feeds-using-ical4j/background.png)
Dynamic calendars - iCalendar feeds using iCal4J
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-01-23-struts-action-mappings-configuring-web-application-urls/background.png)
Struts Action Mappings - configuring web application URLs
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-01-20-upgrade-your-jsps-xml-not-jspx/background.png)
Upgrade your JSPs to XML (but not to .jspx)
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2006-01-09-web-application-post-submit-messages/background.png)
Web application post-submit messages
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2005-12-21-javapolis-2005/background.png)
JavaPolis 2005
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2005-12-05-support-generics-xdoclet-1213-anyone/background.png)
Support for generics in XDoclet 1.2/1.3 anyone?
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2005-12-05-fun-pdf-and-hardware-tokens/background.png)
Fun with PDF and hardware tokens
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2005-07-29-struts-urls/background.png)
Struts URLs for perfectionists
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2005-07-17-configuration-files/background.png)
Paranoid configuration - tamper-proof text
![](https://raw.githubusercontent.com/lunatech-labs/lunatech-blog/main/media/2005-04-10-basis-wetten-bestand/background.png)
Basis Wetten Bestand