Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

The Wise Developers’ Guide to Static Code Analysis featuring FindBugs, Checkstyle, PMD, Coverity and SonarQube

Chapter I: Welcome to static code analysis, that thing you aren’t doing

“The quality of your code is a weak spot in almost every software project you’ll ever touch. This is because ongoing development ensures that even the bits you were once proud of become, over time, first less elegant, then rough, and finally incomprehensible.”

Oleg Shelajev, Java Developer/Author

Read it later! (PDF download)

Read more

How to ‘EZ bake’ your own lambdas in Java 8 with ASM and JiteScript

You actually can buy this...

Ah, good old Java bytecode. We’ve discussed this in the past with a report called Mastering Java Bytecode at the Core of the JVM, but let’s jog your memory once again: Bytecode is the binary representation of your source code that the JVM is able to read and execute.

Read more

vJUG session with Josh Long “Building Bootiful Applications with Spring Boot”

Developers should stop whining and start owning their application releases

Screenshot 2014-04-10 12.55.12

As developers, we should be shaping the world, not waste time on process issues that automation, provisioning and release management tools can solve easily.

Read more

Conquering job hell and multiple app branches using Jenkins & Mercurial


In the past, I’ve written a lot about Jenkins, Mercurial (see all the cool links below) and other tools that we use at ZeroTurnaround. Today, I thought I’ll share with you how we manage multiple branches in Mercurial while still enabling a Continuous Integration experience for our development teams. I’ll concentrate on one of our products, LiveRebel (which, incidentally, we actually use to release over 30 applications of our own, twice a week, all without impacting our users. Dogfooding it baby!)

Our approach uses tools freely available on the market and some custom scripts. If you have multiple branches and struggling with CI, then this article might give you some ideas.

Read more

My Eclipse experience with Java 8 was so bad, I switched to NetBeans


Have you ever thought about taking a vacation from your IDE?

Recently, RebelLabs published a report, Getting started with IntelliJ IDEA as an Eclipse User, which among other things also gives users of one IDE an opportunity to test another IDE more easily based on some shortcuts and tips we provided. I wish that there was some guide like this for Java 8 with IDEs, because when it came out, I wanted to start using it right away with Eclipse….

Read more

We know you aren’t fixing code quality issues (but you should)


Do you use tools that help you identify and fix issues in your code? These are often called “code quality tools”, and as we can see in the graph above (taken from Developer Productivity Report 2013 which surveyed just over 1000 developers), a slight majority of respondents (51%) do not take action of any kind regarding code quality problems. And if only 8% fix all code quality problems they see, does this mean that 92% of apps out there are running with bugs that could have been fixed before they even went live?

Read more

ZeroTurnaround engineer nearly hospitalized by colleague’s unexpected technology usage

Screenshot 2014-03-31 12.25.29

Oleg Shelajev, a Java developer in Estonia, expressing his confusion discreetly, thereby avoiding an awkward social scene.

Estonian software engineer, Oleg Shelajev, was nearly hospitalized the other day after suffering shock followed by extended period of confusion and unhappiness as a result of unexpected technology usage by his colleague, software engineer Michael Rasmussen.

Read more

The Hotspot JVM is a Ponzi Scheme [guest post]


As we did with our previous guest post, we asked our friends Martijn Verburg and Kirk Pepperdine at jClarity if we could share this great blog post with RebelLabs readers. The original post, Why didn’t my app throw an OutOfMemoryError?, was crafted by Kirk back in January, and we are posting it here with their permission.

Every once in a while I run into someone that has a Hotspot JVM that is running back to back garbage collections and yet the heap is still almost full after each attempt! When they discover that their problem is related to the JVM not having enough memory they often ask the question, why didn’t the JVM throw an OutOfMemoryError (OOME)? After all, my application is not making any forward progress and the reason is Java heap is almost completely exhausted, right?

Read more

Is Java 8 the fastest JVM ever? Performance benchmarking of Fork-Join


Today, I want to continue talking about Java 8 and all kinds of tools that can help you on your quest to a better software. Java 8 was released just a couple of weeks ago, but, according to some early results of RebelLabs’ Java Tools & Technologies survey, which you can complete in just 3 minutes and helps a children’s charity (guilt trip!), 5% of respondents have started to check out Java 8! For the tools part, I’m going to look at the infamous Java Microbenchmark Harness project, which allows you to generate better benchmarks and measure performance of your code in a sane way.

This post is also about concurrency updates that landed into the JDK in the latest release. Actually, there were multiple changes to java.util.concurrent, but here the focus will be on the improvements introduced to the Fork-Join framework. We’re doing to discuss Fork-Join a bit and then try to implement a sample benchmark to compare the performance of the FJ in Java 7 vs. 8.

Read more

1 2 3 4 5 6 28