The month of July was a whole lot of traveling– buses, trains, planes and even a few ferries! Now that I’m back to reality I want to share an important event in the life of RebelLabs.
One topic that fascinates most software engineers throughout their careers is understanding which is the best programming language. But how should we comparing two different languages? We did try previously in the Developer’s Adventurous Guide to JVM languages, where we looked at and compared a fleet of JVM languages including Scala, Groovy, Clojure. However, this post will be quite different from that kind of comparison. We’ll look at the Erlang VM and the Java VM and take note of similarities and differences without trying to perform an apples to apples comparison and say which is best or which we prefer.
So why Erlang? Well, ever since I saw the following comic strip about writing distributed map-reduce queries in Erlang, I’ve been fascinated by the language.
Quoting the language authors: “Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability”. Since its inception it has had a solid understanding of the problems it has intended to solve. Any design trade-offs could have been solved by focusing on a single goal. This simplicity makes the language incredibly purposeful.
The question we ask now is whether we can take something we have written in a very opinionated language like Erlang and see how easy it is to write in a very mainstream, general purpose language like Java.
I do firmly believe every developer who’s worth their salt should have at least some notion of how to work with the command line, if only because some tools only exist in CLI variants.
So my advice would be that you should learn how to use tools at the command line, as it will have a positive impact on your happiness and productivity at least for half a century!
Anyway, in this post I want to share with you four-five lesser-known yet pretty awesome command line gems. As an added bonus I will also advise the proper way to use shell under Windows, which is a pretty valuable bit of knowledge in itself.
The second VirtualJUG session in August saw Gleb Smirnov give his first session on the vJUG with a hardcore technical look at concurrency with “Java Concurrency Under the Covers”. And yeh, we went deep under the covers! In the session Gleb looks at concurrency issues and why we need a Java Memory Model.
Continue reading to see what we learned from the session.
The vJUG ran a special session on Minecraft Modding on Saturday 15th August. Why is it special? Well it’s the first session that’s been run on a Saturday, it’s the first session that’s being aimed at getting kids interested in technology, and it’s the first session that’s been given by a 12 year old! The Minecraft Modding session, heavily influenced by the great work Devoxx4Kids do, was delivered by Aditya Gupta and Arun Gupta. Yep, you guessed it, Aditya is Arun’s son!
We often dream that things will run faster, or happen sooner than they do so they’re not as annoying. It’s particularly painful, when you have little or no control over the thing you’re waiting for. Time seems to stop and every second feels like an eternity. Multiply that by 10 add 5, divide by 2 and square it. You now have a measure of how annoying this can feel. An example of such an annoyance might be the build time of your project. Perhaps you use Maven as your a build tool of choice? Then you most probably know this feeling.
Well, the good thing is that you’re reading this post! In this, I’ll try to explain some of the most common reasons as to why Maven build is taking longer than it should and figure out how it can be improved. So, if you’re one of those people who counts the seconds in a slow Maven build, keep reading, this should help you. Or at least will it will line up your thoughts to help figure out how to improve it.
So here are some the solutions to the common reasons why your Maven build is slow.
We’re in luck again, the last VirtualJUG session in July was an excellent presentation “Value in Relationships – How Graphs Make Databases Fun Again” by Michael Hunger.
Back in March 2105, we created a list of questions based on Java performance testing that would give us insights into how teams and organizations go about performance testing their applications. A few months later we collated this data, examined it thoroughly and found trends that I’m pleased to share with you in this report.
The report is split into 3 sections. The first is a representation of the raw answers given to the survey questions. No fluff, no pivoting, just answers! Parts 2 and 3 provide a more in-depth analysis to understand trends, for example:
- How do teams do their performance analysis and testing?
- How long does it take to verify that there are no performance regressions?
- Who monitors and cares about the performance of your production deployments?
- What are the most common performance issues that haunt Java projects?
Intrigued? Continue reading inside…
Oh-boy, oh-boy, oh-boy! I’m extremely happy to say that we’re really close to publishing the results of the Java Performance Survey, that we’ve run this spring. I hope you remember it, we asked you about the tools that you use for performance testing. How do you do it, how long does it take to verify that there are no performance regressions and who monitors and cares about the performance of your production deployments?
Last week’s Virtual JUG session was about distributed databases in general and Apache Cassandra in particular. We looked at how distributing your database might help your application to run smoother, when your business has a need to go distributed and what you should know before you take it there.
Virtual JUG speaker, Christopher Batey, a technical evangelist and a software engineer at DataStax, presented a great session, not only talking about the Cassandra technology and design choices, but also covering general details and theory of distributed databases.