Most interesting links of September ’12

Recommended Readings Johannes Brodwall: This dependency injection madness must end! – it’s very valuable to hear well-founded arguments against any popular belief and Dependency Injection is one of these. “I have started disliking the consequence of this strategy very much: All coupling in my system becomes implicit and harder to understand. I have instead revertedContinue reading “Most interesting links of September ’12”

Using Java as Native Linux Apps – Calling C, Daemonization, Packaging, CLI (Brian McCallister)

This is a summary of the excellent JavaZone 2012 talk Going Native (vimeo) by Brian McCallister. Content: Using native libraries in Java and packaging them with Java apps, daemonization, trully executable JARs, powerful CLI, creating manpages, packaging natively as deb/rpm. 1. Using Native Libs in Java Calling Native Libs Calling native libraries such as CContinue reading “Using Java as Native Linux Apps – Calling C, Daemonization, Packaging, CLI (Brian McCallister)”

Enabling JMX Monitoring for Hadoop And Hive

Hadoop’s NameNode and JobTracker expose interesting metrics and statistics over the JMX. Hive seems not to expose anything intersting but it still might be useful to monitor its JVM or do simpler profiling/sampling on it. Let’s see how to enable JMX and how to access it securely, over SSH.

VisualVM: Monitoring Remote JVM Over SSH (JMX Or Not)

(Disclaimer: Based on personal experience and little research, the information might be incomplete.) VisualVM is a great tool for monitoring JVM (5.0+) regarding memory usage, threads, GC, MBeans etc. Let’s see how to use it over SSH to monitor (or even profile, using its sampler) a remote JVM either with JMX or without it. ThisContinue reading “VisualVM: Monitoring Remote JVM Over SSH (JMX Or Not)”

The Best Code I Have Ever Written Is The Code I Never Wrote

The best code I have ever written is the code I never wrote. It works exactly as intended. There are no bugs, ever. It doesn’t increase complexity of the application. Other people don’t need to struggle to understand it. It gets never outdated. Therefore don’t write code unless you really have to. You might enjoyContinue reading “The Best Code I Have Ever Written Is The Code I Never Wrote”

Programming Like Kent Beck

Republished from blog.iterate.no with the permission of my co-authors Stig Bergestad and Krzysztof Grodzicki. Three of us, namely Stig, Krzysztof, and Jakub, have had the pleasure of spending a week with Kent Beck during Iterate Code Camp 2012, working together on a project and learning programming best practices. We would like to share the valuableContinue reading “Programming Like Kent Beck”

(Unit) Testing Swiss Knife: All the Tools You Wanted to Know

I love testing. And I like productivity. There are many tools and libraries that make writing tests easier, more convenient, more fun. I would like to introduce here those that I found the most useful during the years, from selected advanced features of JUnit to assertion libraries, powerful behavior/fault injection, testing of database-related code, andContinue reading “(Unit) Testing Swiss Knife: All the Tools You Wanted to Know”

Help, My Code Isn’t Testable! Do I Need to Fix the Design?

Our code is often untestable because there is no easy way to “sense1” the results in a good way and because the code depends on external data/functionality without making it possible to replace or modify these during a test (it’s missing a seam2, i.e. a place where the behavior of the code can be changedContinue reading “Help, My Code Isn’t Testable! Do I Need to Fix the Design?”