Infinite Loops. Or: Anything that Can Possibly Go Wrong, Does.

A wise man once said: Anything that can possibly go wrong, does -- Murphy Some programmers are wise men, thus a wise programmer once said: A good programmer is someone who looks both ways before crossing a one-way street. -- Doug Linder In a perfect world, things work as expected and you may think that … Continue reading Infinite Loops. Or: Anything that Can Possibly Go Wrong, Does.

Leaky Abstractions, or How to Bind Oracle DATE Correctly with Hibernate

We've recently published an article about how to bind the Oracle DATE type correctly in SQL / JDBC, and jOOQ. This article got a bit of traction on reddit with an interesting remark by Vlad Mihalcea, who is frequently blogging about Hibernate, JPA, transaction management and connection pooling on his blog. Vlad pointed out that … Continue reading Leaky Abstractions, or How to Bind Oracle DATE Correctly with Hibernate

Really Too Bad that Java 8 Doesn’t Have Iterable.stream()

This is one of the more interesting recent Stack Overflow questions: Why does Iterable not provide stream() and parallelStream() methods? At first, it might seem intuitive to make it straight-forward to convert an Iterable into a Stream, because the two are really more or less the same thing for 90% of all use-cases. Granted, the … Continue reading Really Too Bad that Java 8 Doesn’t Have Iterable.stream()

The Inconvenient Truth About Dynamic vs. Static Typing

Sometimes there are these moments of truth. They happen completely unexpectedly, such as when I read this tweet: https://twitter.com/whileydave/status/536422407297171457 David is the author of the lesser-known but not at all lesser-interesting Whiley programming language, a language that has a lot of static type checking built in it. One of the most interesting features of the … Continue reading The Inconvenient Truth About Dynamic vs. Static Typing

Don’t be “Clever”: The Double Curly Braces Anti Pattern

From time to time, I find someone using the double curly braces anti pattern (also called double brace initialisation) in the wild. This time on Stack Overflow: Map source = new HashMap(){{ put("firstName", "John"); put("lastName", "Smith"); put("organizations", new HashMap(){{ put("0", new HashMap(){{ put("id", "1234"); }}); put("abc", new HashMap(){{ put("id", "5678"); }}); }}); }}; In case … Continue reading Don’t be “Clever”: The Double Curly Braces Anti Pattern

How to Integrate Commercial Third-Party Artefacts into Your Maven Build

According to a recent survey by ZeroTurnaround's RebelLabs, Maven is still the leading Java build platform. The current market share distribution, according to RebelLabs is: Maven with 64% Ant + Ivy with 16.5% Gradle with 11% Yet, at the same time, Maven is often criticised for being a bit obscure and intrusive. Compared to runner-ups … Continue reading How to Integrate Commercial Third-Party Artefacts into Your Maven Build

Access PL/SQL Procedures From Java with jOOQ, a JPublisher Alternative

A procedural language combined with SQL can do miracles in terms of productiveness, performance and expressivity. In this article, we'll see later on, how we can achieve the same with SQL (and PL/SQL) in Java, using jOOQ, which offers much more functionality than Oracle's own now desupported JPublisher. But first, a little bit of history... … Continue reading Access PL/SQL Procedures From Java with jOOQ, a JPublisher Alternative

10 Things You Didn’t Know About Java

So, you've been working with Java since the very beginning? Remember the days when it was called "Oak", when OO was still a hot topic, when C++ folks thought that Java had no chance, when Applets were still a thing? I bet that you didn't know at least half of the following things. Let's start … Continue reading 10 Things You Didn’t Know About Java

A RESTful JDBC HTTP Server built on top of jOOQ

The jOOQ ecosystem and community is continually growing. We're personally always thrilled to see other Open Source projects built on top of jOOQ. Today, we're very happy to introduce you to a very interesting approach at combining REST and RDBMS by Björn Harrtell. Björn Harrtell is a swedish programmer since childhood. He is usually busy … Continue reading A RESTful JDBC HTTP Server built on top of jOOQ

Let’s Stream a Map in Java 8 with jOOλ

I wanted to find an easy way to stream a Map in Java 8. Guess what? There isn't! What I would've expected for convenience is the following method: public interface Map<K, V> { default Stream<Entry<K, V>> stream() { return entrySet().stream(); } } But there's no such method. There are probably a variety of reasons why … Continue reading Let’s Stream a Map in Java 8 with jOOλ