You Will Regret Applying Overloading with Lambdas!

Writing good APIs is hard. Extremely hard. You have to think of an incredible amount of things if you want your users to love your API. You have to find the right balance between: Usefulness Usability Backward compatibility Forward compatibility We've blogged about this topic before, in our article: How to Design a Good, Regular … Continue reading You Will Regret Applying Overloading with Lambdas!

How to Translate SQL GROUP BY and Aggregations to Java 8

I couldn't resist. I have read this question by Hugo Prudente on Stack Overflow. And I knew there had to be a better way than what the JDK has to offer. The question reads: I'm looking for a lambda to refine the data already retrieved. I have a raw resultset, if the user do not … Continue reading How to Translate SQL GROUP BY and Aggregations to Java 8

jOOQ Newsletter: January 21, 2015 – Groovy and Open Source – jOOQ and the strong Swiss Franc

Subscribe to this newsletter here Tweet of the Day Today, we're very happy to have "spied" on our users as we can now show you a whole Tweet Conversation of the Day It was initiated by Dan Woods who proposed a talk about RxJava, jOOQ and Reactive Streams at GR8Conf. https://twitter.com/danveloper/status/553370842948567040 Dan Woods then proposed … Continue reading jOOQ Newsletter: January 21, 2015 – Groovy and Open Source – jOOQ and the strong Swiss Franc

Open Source Doesn’t Need More Support. It Needs Better Business Models

Jamie Allen, Typesafe's Director of Global Services published an interesting point of view on Twitter: https://twitter.com/jamie_allen/status/557400131541020673 And he's right of course. We are constantly reminded of the fact that we should support FOSS projects on which we depend. Just recently, Wikipedia had this huge banner on top of it, asking for money, and we probably … Continue reading Open Source Doesn’t Need More Support. It Needs Better Business Models

Suis-je Groovy? No! What Pivotal’s Decision Means for Open Source Software

Today there was great news in the JVM ecosystem. Pivotal, the company who is committed to OSS has become a bit less committed: The reaction in the community were largely summarised by the hashtag #jesuisgroovy: https://twitter.com/jbaruch/status/557129532931469314 The interesting part in Pivotal's announcement is this one: The decision to conclude its sponsorship of Groovy and Grails … Continue reading Suis-je Groovy? No! What Pivotal’s Decision Means for Open Source Software

Using Java 8 to Prevent Excessively Wide Logs

Some logs are there to be consumed by machines and kept forever. Other logs are there just to debug and to be consumed by humans. In the latter case, you often want to make sure that you don't produce too much logs, especially not too wide logs, as many editors and other tools have problems … Continue reading Using Java 8 to Prevent Excessively Wide Logs

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.

Transform Your SQL Data into Charts Using jOOQ and JavaFX

In the recent past, we've shown how Java 8 and functional programming will bring a new perspective to Java developers when it comes to functional data transformation of SQL data using jOOQ and Java 8 lambdas and Streams. Today, we take this a step further and transform the data into JavaFX XYChart.Series to produce nice-looking … Continue reading Transform Your SQL Data into Charts Using jOOQ and JavaFX

How to Emulate the MEDIAN() Aggregate Function Using Inverse Distribution Functions

Some databases are awesome enough to implement the MEDIAN() aggregate function. Remember that the MEDIAN() is sligthly different from (and often more useful than) the MEAN() or AVG() (average). While the average is calculated as the SUM(exp) / COUNT(exp), the MEDIAN() tells you that 50% of all values in the sample are higher than the … Continue reading How to Emulate the MEDIAN() Aggregate Function Using Inverse Distribution Functions