Blog route53c Route 53 Benchmark: The New AWS Geolocations Surprising Results

Latency vs. Geolocation: Testing DNS configurations across multiple EC2 regions using AWS Route 53

If you’re using the AWS stack, you’ve probably been through this: Deciding which EC2 instance to fire up and which region to deploy them on is tricky. Some of you might have started multiple EC2 instances behind a load balancer – but that’s almost never enough. Our Aussie friends shouldn’t have to wait for resources coming from Virginia. What we really need is an easy to use global solution.

This is where Amazon’s Route 53 DNS routing comes in handy. Adding routing policies to your domain will help guarantee that users get the fastest responses, and as we all know, speed == happiness.

At the end of July 2014, Amazon announced a new Route 53 routing policy: Geolocation. We are big advocates of latency-based routing so we wanted to put the new policy to the test.

Continue Reading…

VS Sublime VS. Atom: Can GitHub Take the Lead?
Comparing Sublime and Github’s Atom in 10 major categories

Sublime has been the undisputed text editing champion for a while now. But a new contender - GitHub’s Atom - is stepping into the spotlight, making noise and trying to steal the not-so-old champion’s thunder. 5 Months after the release of its beta, and some 30 versions later, we felt it would be a good time to test these two head-to-head. On the left corner, in the black shorts with the orange stripes - the long standing champion Sublime. In the green corner – the young and “hackable” contender – GitHub’s Atom.

Let’s get started:

Continue Reading…

Fracture Oracles Latest Java 8 Update Broke Your Tools — How Did it Happen?
If you’ve been keeping up with the news in the Java world lately, you’ve probably heard that the latest Java 8 build released by Oracle, Java 8u11 (and Java 7u65), introduced errors and broke some popular 3rd party tools such as ZeroTurnaround’s JRebel, Javassist, Google’s Guice, and even Groovy itself.

Continue Reading…

EC2S3 AWS Speed Test: What are the Fastest EC2 and S3 Regions?

How do different AWS regions compare to one another? A benchmark of transferring data from EC2 instances to S3 buckets

Many developers choose to host their data and code in the Amazon Web Services cloud, but when it comes to choosing a region it’s not that clear how to choose between the different options. To help shed some light on this, we’ve tested the upload/download speeds between the 8 available AWS regions – in the US, Asia, South America, Europe and Australia. We wanted to learn about the tradeoffs between regions and what kind of speeds to expect.

To add more insight, we then compared the results to a similar test we ran last year, which helped shed some light into the changes Amazon has made since. An interesting side effect of this was that we saw how physical infrastructure changes affect the results. For example, the deployment of an optical fiber from one point to another has improved the upload time by almost 3x.

Continue Reading…

duke log1 How to Instantly Improve Your Java Logging With 7 Logback Tweaks

The benchmark tests to help you discover how Logback performs under pressure

Logging is essential for server-side applications but it comes at a cost. It’s surprising to see though how much impact small changes and configuration tweaks can have on an app’s logging throughput. In this post we will benchmark Logback’s performance in terms of log entries per minute. We’ll find out which appenders perform best, what is prudent mode, and what are some of the awesome side effects of Async methods, sifting and console logging. Let’s get to it.

Continue Reading…

DukeXray 6 Reasons Not to Switch to Java 8 Just Yet

Java 8 is awesome. Period. But… after we had the chance to have fun and play around with it, the time has come to quit avoiding the grain of salt. All good things come with a price and in this post I will share the main pain points of Java 8. Make sure you’re aware of these before upgrading and letting go of 7.

Continue Reading…

newsletters img 42 Newsletters for Developers : The Ultimate List

“My dear, here we must run as fast as we can, just to stay in place. And if you wish to go anywhere you must run twice as fast as that”. Said the Red Queen to Alice, capturing the software development landscape in a nutshell. It’s evolving fast. Super fast. And it’s hard to keep track of the hottest news without letting quality content slip through the cracks. In this post we’ve collected a list of newsletters by devoted curators, all of whom are developers, who face the same problem of information overload (and tired of spam just as you do, so rest assured your email is in safe keeping). For the days when you can’t find the time to reach the HN or reddit tab and the next free spot on your calendar is 3 weeks from now. I hope this post will help you make sure no precious gems are left behind. Check them out and pick the few you like best.

Continue Reading…

Blog Red Ribbon 7 New Tools Java Developers Should Know

Get ready to lock and load through this quick overview of some of the newest most innovative, tools around. In case you’ve missed it, RebelLabs recently released the results of a global survey of the Java tools and technologies landscape. Alongside the big names and established tools, the market is bubbling with fresh tools and frameworks that not so many people have heard of (yet). In this post I decided to gather a short list of such tools, most of them launched just recently. Some are Java specific and some support other languages as well, but they’re all great for Java projects and share a vision of simplicity. Let’s roll.

Continue Reading…

Blog key Java 8 StampedLocks vs. ReadWriteLocks and Synchronized

Synchronized sections are kind of like visiting your parents-in-law. You want to be there as little as possible. When it comes to locking the rules are the same – you want to spend the shortest amount of time acquiring the lock and within the critical section, to prevent bottlenecks from forming.

The core language idiom for locking has always been the synchronized keyword, for methods and discrete blocks. This keyword is really hardwired into the HotSpot JVM. Each object we allocate in our code, be it a String, Array or a full-blown JSON document, has locking capabilities built right into its header at the native GC level. The same goes for the JIT compiler that compiles and re-compiles bytecode depending on the specific state and contention levels for a specific lock.

The problem with synchronized blocks is that they’re all or nothing – you can’t have more than one thread inside a critical section. This is especially a bummer in consumer / producer scenarios, where some threads are trying to edit some data exclusively, while others are only trying to read it and are fine with sharing access.

Continue Reading…

GitHubVSBitbucket GitHub vs. Bitbucket: It’s More Than Just Features


Let’s go back to 2005 when Bitkeeper, host of the Linux kernel project back then, pulled the trigger and changed its core policies around pricing. The kernel’s license was an especially thorny issue after a free Bitkeeper clone was created by Andrew Tridgell – a key figure in the open-source community. Linus Torvalds didn’t like how the whole thing unfolded (to say the least), and began working on his own distributed version control system called Git (British slang for rotten person).

He’s famously quoted for it: “I’m an egotistical bastard, so I name all my projects after myself. First Linux, now Git”. Mercurial was another worthy alternative being developed for the Linux kernel by Matt Mackall with a similar purpose. Git eventually prevailed, and 3 years after that Bitbucket and GitHub were born. If one existed, I would pay honest money to watch a documentary about the full story.

But now that we’re done with this short piece of repo-history, let’s dig deeper at what each service offers us today, and also share some insights we gathered over time from our own experience with buckets and octocats.

Continue Reading…