Pure CSS Parallax Websites

This article demonstrates how to use CSS transforms, perspective and some scaling trickery to create a pure CSS parallax scrolling website.

More

Writing a Language in Truffle. Part 1: A Simple, Slow Interpreter

You can write your interpreter in a VM that is designed to optimize your interpreter with all that wonderful JIT compilation magic. Oracle labs has released its own VM that hopes to make writing language interpreters both easy and fast. It can also leverage the huge ecosystem of the Java Virtual Machine (JVM). This modified JVM contains a new Just-In-Time (JIT) compiler that can speed up interpreters like my little lisp to near-Java speeds. The new JIT compiler is called Graal. To take advantage of Graal’s JIT-y goodness you use the Truffle library to annotate your interpreter and give Graal some hints on invariants and type information. For this integration effort you get significant speedups in your interpreter without having to resort to writing a bytecode compiler plus you have the full power of Java at your disposal.

More

Why NULL is Bad?

Here, I'll try to summarize all the arguments and show examples of how NULL usage can be avoided and replaced with proper object-oriented constructs.

More

Overriding Object.equals(), hashCode(), toString() and compareTo()

You have, with a probability infinitely close to 1, made one or several errors when overriding basic Object methods like equals() and hashCode()! When I discovered a new class off error in one of my client's classes, I started to look in the entire module and discovered that not a single class was correct. Then I checked the entire project and discovered that every class had the same type of error. Panic! Things went from bad to worse when I checked my own Java code written over the last decade. Just one single class was correct in a strict sense. The errors did not surface, but still, they were there, lurking to appear in the future. So far I have seen 49513 faulty classes and one correct making 99.998% of the classes faulty... Read this post to see how you can avoid these errors!

More