Home » Software Development

Software Development

Poor man’s approach in practice

One day we ran into problem when an application was randomly starting using more CPU resources as usual. It continued picking more and more CPU resources from time to time. Thread dump showed many threads though we couldn’t understand wich of them is problematic…and I remembered about poor man’s profiler and its approach: the stack that’s all we need to! ...

Read More »

Hate Java? You’re fighting the wrong battle.

One of the most interesting trends I’ve seen lately is the unpopularity of Java around blogs, DZone and others. It seems some people are even offended, some even on a personal level, by suggesting the Java is superior in any way to their favorite web 2.0 language. Java has been widely successful for a number of reasons: It’s widely accepted ...

Read More »

Refactoring Hudson God Class

Jakub Holy, one of our JCG partners, has recently shared his experience at attempting to refactor Hudson, the main class behind the famous Continuous Integration (CI) server, now renamed to Jenkins. Let’s see what he has to say about this refactoring experience. We’ve tried to refactor Hudson.java but without success; only later have I been able to refactor it successfully, ...

Read More »

Why Automated Tests Boost Your Development Speed

Many critics against writing automated tests directly address the additional time that is needed for coding them, which alternatively could have been invested in writing new functionality. Writing tests definitely needs time, and especially developers that are new to unit testing will need to invest more. While the methodology (test-first or test-last) plays a major role in the efficiency of ...

Read More »

Code quality matters to the customers. A lot.

Some people argue that the main taks of a developer is to deliever working, value-bringing software to the customer and idealistic concepts such as code quality should not hinder that primary task. They acknowledge that it is good to strive for good code quality but say that sometimes code quality must give way to the quick deliverance of outcomes to ...

Read More »

The simple Big-O Notation Post

Our JCG partner Brian Du Preez has posted an explanatory article on his blog, Zen in the art of IT, concerning the Big-O notation. The Big-O notation is used for describing algorithm performance, scalability, execution and complexity factors. Understanding what the Big-O notation stands for is essential for every developer who wants to write performant, robust and scalable code. Lets see what he has to say … ...

Read More »

Performance Anxiety – on Performance Unpredictability, Its Measurement and Benchmarking

Joshua Bloch had a great talk called Performance Anxiety (30min, via Parleys slides also available ) at Devoxx 2010, the main message as I read it was Nowadays, performance is completely non-predictable. You have to measure it and employ proper statistics to get some meaningful results. Microbenchmarking is very, very hard to do correctly. No, you misunderstand me, I mean ...

Read More »

Using FindBugs to produce substantially less buggy code

Some time ago a user of Java-monitor, the forum of our JCG partner, Kees Jan, spotted that his system was forcing a large number of full Garbage Collections despite the fact that the overall memory utilization was low. A rough estimation for the cause of the problem suggested a potential call to System.gc() performed by one of the libraries in ...

Read More »

Selecting a new programming language to learn

Looking to start learning a programming language besides Java? Our JCG partner Brian Du Preez from Zen in the art of IT provides a relatively extensive analysis on the factors one should take into account when facing the “what’s beyond Java” question! Let’s see what he has to say: (NOTE: The original post has been slightly edited to improve readability) I have been ...

Read More »