Memoization is a technique used to speed up functions. Memoization may be done manually. It may also be done automatically. We can find many examples of automatic memoization on Internet. In this article, I will show how Java 8 makes it very easy to memoize functions.
Load-testing is not trivial. It’s often not just about downloading JMeter or Gatling, recording some scenarios and then running them. It’s good to be reminded of some things that can potentially waste time.
By ensuring that all objects participating in a transaction are mapped to the same logical partition, we can remove the whole "prepare" phase from the distributed commit protocol, thus converting the standard 2-Phase-Commit into very light weight 1-Phase-Commit transactions.
There have been a couple of articles on null, NPE's and how to avoid them. They make some point, but could stress the easy, safe, beautiful aspects of Java 8's Optional. This article shows some way of dealing with optional values, without additional utility code.
Ever since people first connected their computers to the Internet, there have been people hacking into those computers, and these attacks have become more sophisticated over the years.
This blog post is fully focused on Scala and how to use it for Spring 4 based JavaEE application development.
C/C++ is generally regarded as providing better performance than Java does. However, appearances are deceiving; the JVM is a very intelligent environment and the JIT an intelligence compiler.
The inspiration for this post came after stumbling upon “Pig in the Python” definition in the memory management glossary.
Comparing apples to apples I found simple Java scheduling to be much more scalable, efficient, and simpler than the industry standard Quartz scheduling.
There is a lot of confusion in the market today. So in this blog post, I’d like to dispel some key myths around mobile apps. And how, with the right mAPM tool, you can nail your mobile app experience — both interactivity-wise and performance-wise — and thereby win the market.
Over the last two months or so it’s become apparent that systemd is taking over the Linux world. Many have expressed their reservations about systemd (including Linus Torvalds himself). Is systemd a reasonable alternative to sysvinit; are there favorable alternatives to systemd?
I've seen a few of these types of posts that rank the greatest programmers throughout history, and in many of these posts I often see a lot of comments that disagree more vehemently than your average programming post's comments.
Nginx-Clojure make it possible to write HTTP services by Clojure/Java/Groovy on Nginx which is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. All benefits from Nginx can be used together with Nginx-Clojure. This article will discuss static file best practices on Nginx-Clojure.
With so many great cross-platform libraries out there, there is hardly any need to reinvent the wheel. In many cases, it is even possible to extract a portion of a sophisticated multi-platform application code to be reused in a different application. In this example, a basic CPU detection class from Chromium C++ code is built into a simple command-line tool.
Vendors typically publish numbers they are happy with, and avoid telling you about a product's weaknesses. However, behind the numbers is a dirty secret if you know where to look.
Welcome to the second in the blog series of using alternative logging frameworks with application servers. This entry will focus on WebLogic, specifically 12c, and configuring it to use Log4j and SLF4J with Logback.
All new features, expected features and speculations regarding the upcoming Java 9 release: the Jigsaw project, performance improvements and long awaited APIs
Did you know there are actually 4 different Garbage Collectors in Java? In this article we'll explain the difference between them, how you can choose the right one - and what can happen if you make the wrong choice.
Sysbench lets you stress many of the fundamental components of your hardware and infrastructure, such as your disk subsystem, along with your CPUs and memory. An additional option exists that is designed to perform synthetic stress testing of MySQL, and I was surprised when I didn’t see it in the above list on version 0.5, as it used to show up as “oltp – OLTP test”. What happened to –test=oltp ??
Knowing that you have roughly one in three chances of having a heap memory leak in your application, lets see whether you should be worried about the leaks at all.
Handling headers in SOAP messages without the hassle of SOAPHandlers
Some of the hardest problems a Java Developer has to face are classpath errors: ClassNotFoundException, Jar Hell, Xerces Hell, etc. Let's go through the root causes and see how a minimal tool (JHades) can help.
Calculating the Fibonacci suite is one of the ubiquitous examples we can find on the Internet. Java 8 offers us new possibility to solve this problem using recursion or corecursion.
In the real world, vehicles in a Vehicle Routing Problem (VRP) have to follow the roads: they can’t travel in a straight line from customer to customer. Most VRP research papers and demo’s happily ignore this implementation detail...
For some reason, the scoring system for tennis is very strange. Fortunately, the convoluted logic is easy to express as a finite-state automaton (FSA). If you build this Automaton in Lucene and minimize it, you'll discover that there are some wasted states! This means 20 states is overkill when deciding who won the game.