There has been a lot of rumour recently, about RedHat switching from MySQL to MariaDB in RHEL 7. Be careful with these rumours. So far, I have not yet found any official and authoritative statement by RedHat, pointing in this direction. Instead, I've found claims that this is still undecided: http://paritynews.com/software/item/1134-red-hat-denies-ditching-mysql-move-to-mariadb
The Dangers of Correlating Subtype Polymorphism with Generic Polymorphism
Java 5 has introduced generic polymorphism to the Java ecosystem. This has been a great addition to the Java language, even if we're all aware of the numerous caveats due to generic type erasure and the consequences thereof. Generic polymorphism (also known as parametric polymorphism) is usually maintained orthogonally to possibly pre-existing subtype polymorphism. A … Continue reading The Dangers of Correlating Subtype Polymorphism with Generic Polymorphism
Using jOOQ with Play Framework
For many users, it may be an obvious choice to use jOOQ along with Play Framework, leveraging simplicity and effectiveness in the Java world. While I do not have any personal experience with Play, some users have. Consider this GitHub issue where a couple of very active jOOQ users discuss various techniques of integrating the two … Continue reading Using jOOQ with Play Framework
A Couple of Reasons Why You Should Use PostgreSQL
Here's a nice article showing a couple of good reasons why you should consider using PostgreSQL in many of your future projects: http://www.cubrid.org/blog/dev-platform/postgresql-at-a-glance From the jOOQ perspective - which is a perspective focussed on SQL feature scope rather than storage and maintenance - Postgres is one of the most outstanding databases out there, and it's completely … Continue reading A Couple of Reasons Why You Should Use PostgreSQL
Strategy: Stop Using Linked-Lists
While using java.util.LinkedHashMap every now and then, when I feel that the insertion order is relevant to subsequent entrySet iterations, I do not recall having used a LinkedList any time, recently. Of course, I understand its purpose and since Java 6, I apreciate the notion of a Deque type. But the LinkedList implementation of the List type … Continue reading Strategy: Stop Using Linked-Lists
Pinterest and SQL vs. NoSQL
I've recently discovered a very interesting read about Pinterest's architecture experimentation. One of the key messages is the fact that SQL and NoSQL data storage systems can coexist with each of them having their place. Here's the full article: http://highscalability.com/blog/2013/4/15/scaling-pinterest-from-0-to-10s-of-billions-of-page-views-a.html This reminds me of a previous article about Instagram successfully displaying how they implemented large-scale … Continue reading Pinterest and SQL vs. NoSQL
Subtle Changes in Java 8: Repeatable Annotations
Apart from the "big stuff", related to extension methods, lambda, and the streams API, Java 8 also has a couple of minor, very subtle changes. One of them is the fact that you can now annotate an object several times with the same annotation! An example taken from the tutorial: @Alert(role="Manager") @Alert(role="Administrator") public class UnauthorizedAccessException … Continue reading Subtle Changes in Java 8: Repeatable Annotations
SQL Query Transformation Fun: Predicates with Row Value Expressions
Recently, I've blogged about how well jOOQ's supported databases implement row value expressions and predicates formed from them. Some sample articles: Row value expressions and the BETWEEN predicate Row value expressions and the NULL predicate A Typesafety Comparison of SQL Access APIs Row value expressions (or records, tuples) are useful to express more complex predicates, such as this … Continue reading SQL Query Transformation Fun: Predicates with Row Value Expressions
Rare Uses of a “ControlFlowException”
Control flows are a "relict" from imperative programming, which has leaked into various other programming paradigms, including Java's object oriented paradigm. Apart from the useful and ubiquitous branch and loop structures, there are also primitives (e.g. GOTO) and non-locals (e.g. exceptions). Let's have a closer look at these controversial control flow techniques. GOTO goto is … Continue reading Rare Uses of a “ControlFlowException”
jOOQ as a “PL/Java” language
Some people who get in touch with PL/SQL, PL/pgSQL, T-SQL, or any other proprietary procedural language for SQL interaction are probably missing out on a couple of language integration features in the Java world. Most Java APIs see SQL as an external domain-specific language that is "best" dealt with using string concatenation. Such APIs include: … Continue reading jOOQ as a “PL/Java” language
