Testing with JUnit: E-Book Xmas Offering
My publisher has informed me about the annual Xmas offering that starts on December 18th and which is lasting into the new year. Packt Publishing is inviting the tech world to explore its extensive library of e-books and video courses for one amazing price. Every single e-book and video course…
From Arrays to Streams and Back with Java 8
Not long ago we upgraded some Eclipse plug-in projects to Java 8. And never looked back since. Among many other things, filtering, mapping, and finding elements in collections has become so much easier and more concise with lambdas and the streams API. Nothing new so far for the most of…
Getting Java Event Notification Right
Implementing the observer pattern to provide Java event notification seems to be a straight forward thing to do. However, there are some pitfalls one easily can run into. Here comes an explanation of common mistakes I carelessly have produced myself on various occasions… Java Event Notification Let’s start with a…
How to Map Distinct Value Types Using Java Generics
Occasionally the average developer runs into a situation where he has to map values of arbitrary types within a particular container. However, the Java collection API provides container related parameterization only. Which limits the type safe usage of HashMap for example to a single value type. But what if you…
How to Avoid Losing the Audience in a Technical Talk
The following is a guest post by Leif Frenzel. I have the pleasure of knowing Leif for over a decade, back to a time when we worked together at Innoopract. Leif is an excellent software developer who gave many talks at conferences and did a lot of technical trainings. Focusing…
Speed up Your Builds with Codeship Parallel Test Pipelines
Some time ago we were in need for a hosted CI service for a project that was held in a private GitHub repository. And in Codeship we found a suitable solution to build, test and deploy the code from the private repository. Soon we got excited by the reliable internet…
Efficient Creation of Eclipse Modules with Maven Archetype
Maven Archetype is a project templating toolkit that provides developers with the means to generate parameterized versions of built-in or custom scaffolding artefacts. Recently I applied it to our Xiliary P2 repository to achieve automation of Eclipse module stubs creation. As it worked out well enough, I thought it might…
Codeship: Continuous Integration for GitHub and Bitbucket
Just recently I got the opportunity to use yet another continuous integration service: Codeship Continuous Integration. The hosted service builds GitHub and Bitbucket projects and offers various options for deployment. This post will give a brief overview how to build and deploy with Codeship. Simple Setup Setting up Codeship to…
Travis: Continuous Integration for GitHub Projects
In a recent project I got the opportunity to work with Travis, a lean, hosted continuous integration service used to build GitHub projects that is free to use for public repositiories. This post gives a brief introduction on how to build projects with Travis. Simple Setup Setting up Travis to…
Java Code Style: The Final Decision
Isn’t it funny how the alleged most unremarkable things can lead to controversial discussions or sometimes even heated debates with hardened fronts? I witnessed on several occasions, for example, how the usage of the Java final keyword triggered quite passionate arguments. And for an outside observer this might have looked…
Clean Synchronization Using ReentrantLock and Lambdas
Recently I was reading an informative post about the differences between synchronized vs ReentrantLock by Javin Paul1. He emphasises on the advantages of the latter, but does not withhold some downsides, which are related to the cumbersome try-finally block needed for proper usage. While agreeing with his statements I brooded…
WordPress Webhooked into GitHub
Code Affine is published using WordPress. Besides content provisioning there are technical tasks like site composition and software maintenance we have to take care of. Hence we were looking for a pragmatic but efficient way that allows us to develop locally, do versioning of changes, publish such changes automatically and…
Performance Analysis of REST/HTTP Services with JMeter and Yourkit
My last post described how to accomplish stress- or load-testing of asynchronous REST/HTTP services with JMeter. However, running such tests often reveals that the system under test does not deal well with increasing load. The question is now how to find the bottleneck? Having an in-depth look at the code…
Stress/Load-Testing of Asynchronous HTTP/REST Services with JMeter
Although I have been using JMeter for stress- and load-testing of web applications a good few times it took us a while to figure out how to test asynchronous HTTP/REST based services with the tool. With us I mean a fellow programmer – Holger Staudacher, I have the honor to…
Added Event Page to CodeAffine Website
Just a short note that I have introduced a new page in our codeaffine wordpress system to have the possibility to advert upcomming events where we participate and contribute.
Replacing Hard Coded Processes Using Activiti
A few weeks ago I was put in charge to replace a piece of code in a software product. The code in question was the implementation of several business processes. The hard wired nature of those processes made it difficult for consulting people to customize the software to customer’s requirements….