Top 10 Most Popular Articles on the jOOQ Blog

What do people do when they run out of topics? They recycle previous topics and create top 10 lists. Here is a list of the top 10 most popular articles from the jOOQ blog:

  1. Top 10 Very Very VERY Important Topics to Discuss
    A fun, not so serious parody on what is being discussed on reddit’s /r/programming. Hint: Bikeshedding topics are the most popular. Like this one. That was so meta!
  2. 10 Subtle Best Practices when Coding Java
    This is a really interesting article about not-so-common advice that might be handy every once in a while.
  3. 10 Common Mistakes Java Developers Make when Writing SQL
    A classic and must-read for all SQL developers (not only those that usually write Java)
  4. SQL Trick: row_number() is to SELECT what dense_rank() is to SELECT DISTINCT
    We’re surprised ourselves that this is so popular. But it appears that we’re really well ranked on Google when people are looking for ROW_NUMBER() and DENSE_RANK(). And the trick is very useful, of course!
  5. Why You Should NOT Implement Layered Architectures
    What a silly rant! And how it went up in the ranking within only two days! This is not really very serious advice. Obviuosly, you should (as always) do what fits best to your problem domain. But we wanted to make people think about the status quo and how it is often applied too rigidly, without thinking about all the options. Looks like we’ve hit a sweet spot with developers frustrated with overengineered applications…
  6. MIT Prof. Michael Stonebraker: “The Traditional RDBMS Wisdom is All Wrong”
    Michael Stonebraker is a very controversial person per se. In this article, we’re linking to a talk by Stonebraker where he claims (again) that the RDBMS end is nigh. A year later, we can see that NoSQL is still on the rise, whereas NewSQL is still no where. See also the next article…
  7. The 10 Most Popular DB Engines (SQL and NoSQL)
    This is an interpretation of a popular ranking of (R)DBMS, showing that even if Oracle, MySQL, and SQL Server are the most wide-spread databases, something’s about to change.
  8. Does Java 8 Still Need LINQ? Or is it Better than LINQ?
    Again, controversy is king. Of course, LINQ is awesome and often we wish we had something like LINQ in Java. In this article, however, we’re claiming that with Java 8’s Streams API and lambda expressions, we might no longer need LINQ, as collections transformation is already sufficiently covered, and LINQ-to-SQL is not what made LINQ popular (which is where jOOQ is more useful)
  9. 10 More Common Mistakes Java Developers Make when Writing SQL
    A follow-up article to the previous, very popular article about common SQL mistakes. Yes, there’s a lot to learn in this area.
  10. The Java Fluent API Designer Crash Course
    From a jOOQ perspective, this is one of the most interesting articles explaining the very simple and easy-to-apply rules that we’re using to produce our API in the form of an internal domain-specific language. If you want to build jOOQ for your own query language (e.g. Cassandra’s CQL), just follow these simple rules

Thanks for reading our blog! We promise to keep you up to date with more interesting (and occasionally useless) content!

Java 8 Friday: The Best Java 8 Resources – Your Weekend is Booked

At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem.

Every Friday, we’re showing you a couple of nice new tutorial-style Java 8 features, which take advantage of lambda expressions, method references, default methods, the Streams API, and other great stuff. You’ll find the source code on GitHub.

The Best Java 8 Resources – Your Weekend is Booked

We’re obviously not the only ones writing about Java 8. Ever since this great language update’s go live, there had been blogs all around the world appearing with great content and different perspectives on the subject. In this edition of the Java 8 Friday series, we’d like to summarise some of the best content that has been going on on that subject.

1. Brian Goetz’s Answers on Stack Overflow

Brian Goetz was the spec lead for JSR 335. Together with his Expert Group team, he has worked very hard to help Java 8 succeed. However, now that JSR 335 has shipped, his work is far from being over. Brian has had the courtesy of giving authoritative answers to questions from the Java community on Stack Overflow. Here are some of the most interesting questions:

Thumbs up to this great community effort. It cannot get any better than hearing authoritative answers from the spec lead himself.

2.’s Collection of Java 8 Resources

This list of resources wouldn’t be complete without the very useful list of Java 8 resources (mostly authoritative links to specifications) from the guys over at Here is:

3. The jOOQ Blog’s Java 8 Friday Series

Yay, that’s us!🙂

Yes, we’ve worked hard to bring you the latest from our experience when integrating jOOQ with Java 8. Here are some of our most popular articles from the recent months:

4. ZeroTurnaround’s RebelLabs Blog

As part of the ZeroTurnaround content marketing strategy, ZeroTurnaround has launched RebelLabs quite a while ago where various writers publish interesting articles around the topic of Java, which aren’t necessarily related to JRebel and other ZT products. There is some great Java 8 related content having been published over there. Here are our favourite gems:

5. The Takipi Blog

Just like ZeroTurnaround and ourselves, our friends over at Takipi provide you with some awesome Java 8 content on their blog.

6. Benji Weber’s Fun Experiments with Java 8

This blog series we found particularly fun to read. Benji Weber really thinks outside of the box and does some crazy things with default methods, method references and all that. Things that Java developers could only dream of, so far. Here are:

7. The Geeks from Paradise Blog’s Java 8 Musings

Edwin Dalorzo from Informatech has been treating us with a variety of well-founded comparisons between Java 8 and .NET. This is particularly interesting when comparing Streams with LINQ. Here are some of his best writings:

Is this list complete?

No, it is missing many other, very interesting blog series. Do you have a series to share? We’re more than happy to update this post, just let us know (in the comments section)

Do You Want to be a Better Software Developer?

Bloggers are a different breed. They’re spending a lot of time investigating issues in a systematic way that is presentable to others. And then they share – mostly just for the fun of it and for the rewarding feeling sharing gives them. Whenever we google for a technical issue, chances are high that we stumble upon such a blog post.

One of the best blogs out there is Petri Kainulainen’s Do You Want to be a Better Software Developer? Petri has also written a book about Spring Data, which is available from Amazon, O’Reilly and Packt Publishing.

Most recently, I have found his two Maven-related tutorials very useful and well-written:

Also, in 2013, he has written an extensive series of blog posts titled “What I Learned This Week”. Some examples:

Petri’s blog is certainly one that you should follow. His posts are very well structured and quite complete. Currently, he’s also writing an extensive series about jOOQ, which is a very useful additional resource for new jOOQ users.

Thanks for all this great content, Petri!

SQL is the new NoNoSQL

You have probably been wondering about what SQL is. Some also refer to it as NoNoSQL. See a comprehensive comparison about SQL vs. NoSQL on our new website here:

#CTMMC, the New Hashtag for Code That Made Me Cry

Our recent article about Code That Made Me Cry was really well received and had quite a few readers, both on our blog and on our syndication partners:

In each of us programmers is a little geek with a little geek humour. This is reflected by funny comics like the one about

The only valid measurement of code quality: WTF/minute

Other platforms ridiculing bad code include

But one thing missing is a hashtag (and acronym) on twitter. It should be called #CTTMC for Code That Made Me Cry.

To promote this hashtag, we have created a website, where we will list our collective programmer pain. Behold:

On Friday Dec 13th 2013, Things *WILL* go Wrong

We’re writing for @JavaAdvent, on Friday Dec, 13th 2013. Superstitious? We are and we’ll give some fun and scary insights! Stay tuned and follow @JavaAdvent to be ready for an interesting, geeky Holidays season!

See also posts from 2012.

The Spam Manifesto: Reactive Spamming, Big Spam, Spam Reduce

Dear Spammers,

SpamInACanWhen blogging and interacting with our users on forums, dealing with your spam is part of our every day work. Our WordPress blog luckily uses Akismet, a comment spam prevention tool, which removes lots and lots of spam, such that our moderation efforts stay very low. Google Groups, on the other hand, uses Google’s own awesome spam filter, which works impeccably in GMail already. But unfortunately, we have to perform quite a bit of moderation as there are an incredible number of Chinese spammers.

Who are these spammers? Who spends so much time in developing robots for stuff that doesn’t really work as most mail / blog vendors have awesome counter-measures? You’re just wasting your time without any actual conversion!

To make things worse, blog software renders many links as “nofollow”, so even if a spam comment slips through, you won’t get the conversion. You spammers are obviously in the tech stone age, perhaps writing your spam software in COBOL or Delphi?

Let us help you get up to date with recent developments. I’ve had a brief discussion with Petri Kainulainen on the subject, and we think that there should be a new

Spam manifesto

We would like to introduce Reactive Spamming. We believe that Hipster Spammers could take the lead and greatly benefit from fancy tech such as Clojure, Akka and Hadoop. Imagine implementing SpamReduce or MapSpam algorithms on BigSpam. Gartner will certainly feature you on their tech radar. We’ll create SpamConf, a great conference where brilliant minds of our time can discuss the latest in spamming, and the Groovy folks will present their new SpamDSL, to help you express your algorithms in FluentSpam.

And now, for some background info about Spam.