New Java 8 Features

What are some of the most interesting additions to Java 8 since it was launched?

Java 8 recently celebrated its first birthday, with the main release coming just over a year ago now. That’s certainly worthy of a celebratory cupcake.

Continue Reading…

Google Guava

What are some of the lesser known features of Google Guava that every developer could use?

It’s one of the most popular libraries out there, it’s open source, you probably know it already, and it comes from a place where people play Quidditch as a real sport (At least on The Internship). It’s not the Hogwarts library from Harry Potter but it does have lots of spells up its sleeve: Google Guava contains a range of core Java libraries that were born internally at Google, battle-tested in production and publicly released. And it also had Optional before it appeared on Java 8.

The main focus of Guava is improving the workflow around common tasks with utilities that help write better, cleaner code, and be more productive. Most famous for its collections and caching capabilities, it contains many more useful yet little known features. For collections and caching it introduced improvements on the JDKs collection API and filled in the void of the missing (yet long awaited) JCache that was finally released last year. In this post I’d like to share with you some of Google Guava’s feature we like to use here at Takipi and some more interesting discoveries that we just made.

Note: Guava supports Java 6 and above.

Continue Reading…

Java Mission Control

“We love following Mikhail Vorontsov’s blog and getting his point of view on Java Performance related issues. We’ve been asked a few times how Takipi’s Java error analysis differs from Java Mission Control and Java Flight Recorder. So while the differences between the tools are pretty big (Mainly, JMC is mostly a desktop application, while Takipi was specifically designed for large-scale production environments) we felt this would be a good opportunity to add a comprehensive overview of JMC. 

Apart from Java Mission Control being a desktop application, the main difference is that with Takipi, you’re getting an always-on error analysis down to the variable values and actual code that caused each error. So where JMC gives great value in profiling, but stops at the stack trace level, Takipi dives into the actual code to help you reproduce and solve production bugs.

Another difference is working with distributed systems, JMC works on single machines, while Takipi’s dashboard displays multiple JVMs across different machines. So if you’re looking to monitor large scale production systems, give Takipi a try. However, if you’re looking for a great desktop profiling tool, JMC just might be your best option.”

- Alex Zhitnitsky, Takipi

Continue Reading…

Scala Days

Highlights from Scala Days @ San Francisco

Continue Reading…

Reactive tools

What are some of the most interesting tools to help you go Reactive?

If everything in life goes async, awkward silences will go extinct. The closest solution we had until recent times was texting. Unfortunately our texting apps are turning the experience more and more synchronous with “last seen”, “typing…” and “read” certificates, so awkward silences now have a matching textual digital form. Yay technology! </rant>

The upside of this whole thing is that the systems these texting platforms rely on are heading towards the exact opposite direction, by turning more and more async and message-driven.

Hope I’m not the only one seeing the irony here.

Continue Reading…

IO Benchmark

“Arien got in touch with us on twitter after seeing the results of a parallelStreams and ForkJoin benchmark we ran. It piqued his interest so he ran some tests of his own, adding Quasar fibers to the mix. Here are his results and conclusions.” – Alex Zhitnitsky, Takipi

Arien Kock is a Sr. Java Software Engineer. He enjoys stand-up comedy and used to be a competitive Street Fighter player.

How do Async ForkJoinPool, managedBlock and Quasar perform in an IO scenario?

I think Quasar has a lot of potential. In addition to allowing a much higher number of parallel operations, by not being 1 to 1 mappings of OS threads, Quasar’s fibers also let the programmer write code in synchronous fashion (using continuations). This makes it much simpler to interpret and reason about code than the trail of callbacks that vanilla async-style code tends to bring. As for the performance benefits of the lightweight threads, I consider the increased performance of suspending green-threads/fibers vs. the parking OS threads pretty much proven. Triggered by this Takipi blog post, I became curious about how Quasar would perform vs. alternatives in an IO scenario. So I made a benchmark.

Continue Reading…

Dropwizard vs. Spring Boot

How to get a production ready Java application off the ground in the shortest time possible?

I’m not a morning person, so sometimes it takes a while for the “all systems are go” cue to kick in. This used to be true for Java applications until not too long ago, but unlike the invention of the snooze function on the alarm clock, the solution we’re going to discuss here actually makes much better sense. With modern open source frameworks like Dropwizard, Spring Boot, Groovy’s Grails and Scala’s Play! you’re able to build a production ready application from scratch in a matter of minutes. Even if you’re not a morning person. And even if you’re not fond of wizard hats. In this post we’ll discuss the similarities and differences of the lightweight Java based frameworks with Dropwizard and Spring Boot.

Continue Reading…

Takipi

Here at Takipi, we’re in the error tracking business. Each day, Takipi is used to track more than 500,000 errors across hundreds of different companies. The most critical and fragile stage for many apps is just after a new deployment – when code changes are tested for the first time under a high stress load and with full production settings. Takipi detects your code changes automatically, and 87% of users report finding new unknown bugs in production via Takipi within the first hour after deploying a new version.

Takipi analyzes your code at the JVM level, and doesn’t rely on pulling log files from your machine. This helps companies collect more data on problems in production with minimal added CPU and IO overhead.

Continue Reading…

Java Duke and Docker

How can you to take a pragmatic approach to Docker and look beyond the hype?

Docker has been getting a lot of hype recently, and it’s easy to understand why. Shipping code is challenging. Container technology has traditionally been messy with lots of requirements and templates involved. Docker gives you a simple way to create containers in a repeatable manner. It’s generally faster, more comfortable, and easier to understand than other container and code shipping methods out there. Hence the hype! But with hype comes misunderstandings and misconceptions. As always, don’t believe the hype. Taking a pragmatic look at Docker will help you understand if it’s right for your needs.

In this post, we’re writing about five Docker misconceptions and the Java angle for Docker. But first, a bit of background. To learn more about it, we looked for someone with lots of Docker experience so we set up a chat with Avishai Ish-Shalom from Fewbytes, who’s also an organizer of the DevOps Days conference. We used his great insights and experience with Docker to build this list of misconceptions with him.

Continue Reading…

Jira Integrations

What are some of the best integrations available to optimize your JIRA workflow?

I love finding ways to wring out some extra efficiency in my workflow. Watching those little automations and smooth processes brings a smile to my face. I know I’m not alone in occasionally having spent far more time getting that little boost to work correctly than it ends up saving me.

Continue Reading…