Sunday, January 8, 2017

Programmer's new glasses or how to buy new glasses

    Hi again in 2017! It will be the best year so far! I decided to write about some topics which are not strictly related to programming but they live within the same ecosystem. I've been recently looking for a new pair of glasses and I encountered... yeah, some interesting facts! One may ask what can be interesting in ordinary glasses. Well, many things.

Friday, December 9, 2016

Playing with JUnit 5 and IntelliJ IDEA 2016.3

    I've been recently playing with JUnit 5 M3 and IntelliJ IDEA 2016.3. I managed to execute JUnit 5 tests from within IntelliJ IDEA and Maven. I decided to share it with you because it was not trivial.

Monday, December 5, 2016

Maven compilation errors

    Have you ever experienced a situation when newly imported Maven project had some compilation errors? If so then this post is for you.

Thursday, November 17, 2016

IntelliJ breakpoint and freezing of JVisualVM and JConsole

    Some time ago I had a situation where I had to use JVisualVM to check what happens within a test executed from IntelliJ and stopped on a breakpoint. JVisualVM had been hanging until I released the breakpoint. But why?

Sunday, November 6, 2016

File validation in Maven

Hi again after a long period of inactivity! Today's objective is to validate the files that are generated by an external system in JSON format. The files are stored under the umbrella of Maven submodule with packaging type set to POM. The external system is not perfect and sometimes it produces wrong JSONs. The application relies on these files and it is important to detect any problems as fast as possible - fail fast - by preventing a build to be successful if there is anything wrong in JSON.

Tuesday, May 31, 2016

Concurrency vs. parallelism

    I like to present some examples when describing any technical aspect. That's make it easier to understand. Today I am going to describe concurrency and parallelism - the differences between them and the similarities they share.

Sunday, April 24, 2016

Database connection pool performance

Hi again after a long break! Today I would like to focus on the performance of the database connection pools in terms of database connection retrieval: Oracle Universal Connection Pool (UCP) and Tomcat Connection Pool (org.apache.tomcat:tomcat-jdbc). Let's go to the details!

Thursday, June 25, 2015

Dynamic routing in Camel

    Howdy! Long time no see. I have some time to add a pretty simplistic trick which is related to the problem I encountered with dynamic routing in Camel.

Monday, April 27, 2015

Concurrent video stream processing in Java

    Some time ago I was asked how to deal with video stream processing. The problem was quite simple. We have sequential input of video frames. Each frame must be processed, e.g. some filter must be applied. The trick is to utilize multiple cores to process these video frames. The output should contain processed video frames in correct order. I proposed one solution.

Saturday, April 11, 2015

Programmatic access to the properties loaded by PropertySourcesPlaceholderConfigurer

     Some time ago I implemented a kind of info page for exposing actual application properties. In the application there was PropertySourcesPlaceholderConfigurer involved. It has some really nice features but it hides the properties from direct access. I had to overcome that difficulty in order to iterate over them.

Thursday, February 26, 2015

Simple way to avoid ConcurrentModificationException

    Some time ago I spotted ConcurrentModificationExcepion in the logs. I decided to take a closer look at that in order to get rid of the problem.

Saturday, February 21, 2015

Ticking bomb in JDK 1.7.0_45 and blessing of soak tests

    Hello my friends! This is the first post in 2015 so it can be a little bit explosive. Actually, I have something that may be interesting for you if you like sleeping well. It sounds a little bit funny, doesn't it?

Sunday, December 28, 2014

Properties overriding in Spring

    Encapsulation can be applied not only to classes. It can also be applied to properties but in slightly different flavor. From my standpoint encapsulation and convention over configuration are two important factors which determine the robustness of the solution.

Tuesday, December 2, 2014

XPath evaluation performance tweaks

    I have recently played with XPath evaluation in Java. I must admit that default configuration of XPath processor in JDK is really broken. I was able to achieve some really significant performance gains with just a couple of simple tricks.

Monday, November 10, 2014

Destructive habits

    I have been using JUnit for quite a long time. I have recently done some coding with TestNG and I was a little bit shocked when I saw the assertion exception for the first time.

Thursday, October 23, 2014

The marriage

    Howdy! I have been recently involved in many marriage related things and I was not able to update my blog frequently. The last period of my private life was really intensive. On the other hand, this is a technical blog so something technical needs to be mentioned - the silence should be broken!

Wednesday, August 20, 2014

Java volatile keyword by example

    Volatile keyword seems to be a little bit enigmatic at first glance. It is rather rare to see that keyword on a daily basis. How does it work? What effect can it have on the program execution?

Friday, July 25, 2014

JMeter and WebSphere MQ Series integration

    JMeter is a popular tool for executing load tests. There is much information about it on the web. However, integration of JMeter with WebSphere MQ Series (JMS provider) is not that common. Let's try to do it!

Wednesday, July 23, 2014

Ignore particular tests on failure with JUnit

    Why on earth would you like to ignore some tests if they failed?! - you may ask. If they failed they must be red and they must draw your attention or even cut your fingers. In general, it is true. However, there is no ALWAYS and there is no NEVER.

Sunday, June 22, 2014

Simple in-memory caching with Spring 3.2 and Google Guava

    There was a proposal (not really original :)) that we can use cache to relieve external system and make our own system faster. It should be a really simple in-memory cache without any replication and fancy mechanisms. It should only have max-number-of-elements and expiration-time-after-write properties. Can that requirement be implemented in Spring easily?