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

Why Spring is Winning the Microservices Game

Spring by Pivotal logo

This time we focus on the Spring framework. For a long time, the Spring framework was the de-facto framework choice for web applications. It was created in response to heavy Java application servers of the past, and introduced a much more lightweight approach to creating web applications. The main principle of Spring that made it so popular was the dependency injection, which was added very early on. Of course, now we take dependency injection for granted and don’t even think about how revolutionary the idea was: you declare your component and the relationship between them and the framework takes care of the lifecycle of your components and wires them together into a useful graph of objects.

Nowadays, Spring has established its own ecosystem. There are tons of smaller web frameworks that have been created. Some actually quite good, some just optimized for the hello world scenario. But Spring hasn’t budged. So let’s see which qualities of the Spring framework make it an excellent choice for the microservices architecture.

Read more

Making Gradle builds faster

Last time when we talked about build systems, we looked at some tips that might make your Maven build faster. The results we got were fascinating and the response was overwhelming. Most people were pretty happy with the speedup that they achieved on their projects from the tips we gave. Today, we’re going to look at what can be done with Gradle builds. The builds of most projects are quite standard, but yet they are unique. Almost all projects add their own complexity into the build. And while they are all different, one thing is common: builds can take up your precious time and speeding it up can affect the developer productivity which makes working on your project more pleasant.

Without further ado, let’s see what Gradle, with its “Realize Build Happiness” motto, is packing in its speed department.

Read more

Developer Productivity Survey 2016: Java Tools and Technologies — Supporting Devoxx4Kids

Modern Web Apps with HTML5 Web Components, Polymer, and Java EE MVC 1.0 by Kito Mann

Virtual JUG — the online Java User Group that brings you the best technical sessions from all over the world. This year, we at RebelLabs continue to provide you with short recaps of sessions, including what we learned, giving you a chance to know a bit more about the speakers in a short interview with them after they have presented their session.

Previously we observed Venkat’s second time on Virtual JUG when he spoke about Java 8 streams. This time it was all about modern web applications: HTML 5, web components, Polymer framework and the upcoming Java EE MVC 1.0 standard.

Read more

Java 8 Streams cheat sheet

Towards the end of 2015, we released our cheat sheet for Java 8 best practices, which got thousands upon thousands of hits and downloads! So we thought, we should create another one, and we did just that. This time around, based on your survey feedback, we focus on one of the most important and substantial features in the Java 8 release, the Streams API. You should click on the cheat sheet below and print it out. It will look amazing next to the Java 8 cheat sheet!

In this post we’ll look into the essential information about Java 8 streams and how you should think about them, and how you should use them.

Read more

Getting started with Retrofit 2

Today, I’ll look at using the Retrofit 2 HTTP client to see how complicated vs how beneficial it is for my application. Retrofit is one of the amazing tools that Square Inc. has released into the open source community. It’s a type-safe HTTP client, both for Android and Java applications.

The main premise behind type-safe HTTP clients is that you only need to worry about the semantics of the queries that you send over the network, rather than the details of how to construct URLs, specify parameters correctly and so forth. Retrofit makes this really easy by requiring you to write just a couple of interfaces, and that’s it!

Let’s see how it works on an example. The repository which I’ve added all my code to is available on Github, and as always, the best way to learn is to check it out and tinker with it yourself.

Read more

FixedThreadPool, CachedThreadPool, or ForkJoinPool? Picking correct Java executors for background tasks

One of the biggest advantages Java has over other platforms is that it is spectacularly good at utilizing resources for parallel computations. Indeed, on the JVM it’s ridiculously easy to execute a piece of code in the background and consume the result of that computation when it is ready and when we actually need it. At the same time this allows the developer to make better use of all that computational power modern hardware has to offer.

However, it’s not that straightforward to make the computation correct, and perhaps the most challenging task for the developer is to create programs that are always correct, rather than the familiar “works on my machine” correct.

In this post we’ll look at the different options available to find the Executor that suits your needs.

Read more

Streams: The Real Powerhouse in Java 8 by Venkat Subramaniam

Venkat Subramaniam

Welcome to the new year of wonderful online presentations about software engineering, Java, best practices, tools and technology choices. All that is naturally the Virtual JUG — the online Java User Group that brings you the best technical sessions from all over the world.

The first session in 2016 was a real treat! None other than the man himself, Dr. Venkat Subramaniam, delivered a fast-paced, astonishing presentation: Streams: The Real Powerhouse in Java 8. This was Venkat’s second time on Virtual JUG, the first time he spoke about creating reactive applications.

This session was, however, all about Java 8 streams. What do they represent, what are the common code patterns around streams and how to get the most of them in your codebase?

Read more

Looking back at 2015 and Happy 2016!

Another year is coming to its logical conclusion and we’re extremely happy to welcome the upcoming 2016. New Year’s Eve is the perfect time to look back at RebelLabs achievements from the year and make plans for the future.

2015 was a great year, we worked hard on creating the best technical, yet opinionated content for you. So not only would you learn something or refresh the knowledge about Java, but also get a chance to look at technology from a different point of view or solidify your opinions with more arguments.

Hopefully we did a great job and you learn a thing or two and enjoyed reading us.

Read more

Programming Language Development Made Easy by Sven Efftinge & Miro Spönemann

The last Virtual JUG presentation session of 2015 was all about programming language development, both general purpose and domain specific languages or DSLs. We had the amazing duo of speakers that commit a large chunk of their time into the development on a language development framework, called Xtext. You might have heard of it,  because it was behind the Xtend language that unconventionally compiles into Java rather than JVM bytecode.  

The combination of Sven Efftinge and Miro Spönemann delivered a brilliant presentation on how general programming languages get developed, including a real demo showing how to build a small programming language, together with integrations with Java and the tooling support for the IDEs. All that in around 50 minutes! What a time to be alive!

Read more

1 2 3 4 5 6 40