VisualVM: Monitoring Remote JVM Over SSH (JMX Or Not)
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.
This post is based on Sun JVM 1.6 running on Ubuntu 10 and VisualVM 1.3.3.
Continue reading →
Enabling JMX Monitoring for Hadoop And Hive
Continue reading →
The Best Code I Have Ever Written Is The Code I Never Wrote
Continue reading →
Programming Like Kent Beck
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 valuable lessons that we have learnt and that made us better programmers (or so we would like to think at least).
Continue reading →
(Unit) Testing Swiss Knife: All the Tools You Wanted to Know
This post accompanies my JavaZone 2012 lightning talk and goes more in depth and introduces additional tools and tips.
Continue reading →
Help, My Code Isn't Testable! Do I Need to Fix the Design?
Continue reading →
Most interesting links of August '12
Recommended Readings
- How To Fail With Agile:Twenty Tips to Help You Avoid Success - a great overview of ways people may make agile projects and initiatives fail - use them to either avoid the failure or to make it certain, according to your attitude towards agile
- vim-adventures.com: Learning Vim keys in an entertaining way by playing an on-line 2D game. A brilliant idea!
- The Search for a Better BIG Data Analytics Pipeline - how to use big data and analytics on it in a company. Big data = lot of data, simple processing; deep analysis = representative, small sample of data (no need for all), advanced techniques. Big data can provide input for analysis.
Continue reading →
Tip: How to Easily Customize PMD Rules in Eclipse
Continue reading →
Recommended Book: Real World Java EE Night Hacks by Adam Bien
I highly recommend this very thin and down-to-the-earth-practical book to everybody interested in back-end Java (a basic knowledge of servlets, Java ORM, and REST might be useful). The book evolves around a small but realistic project (X-Ray), which we follow from the inception through couple of iterations til the end. Bien shows us how lean Java EE can be, how to profit from the functionality that it offers, and how these pieces of functionality fit together to deliver something useful. He actually introduces a complete Java EE development environment including continuous integration (CI), code quality analysis, functional and stress testing.
Some of the things that I appreciate most in the book is that we can follow author's decision process with respect to implementation options (such as SOAP vs. REST vs. Hessian etc., a REST library vs. sockets, or when (not) to use asynchronous processing) and that we can see the evolution of the design from an initial version that failed through cycles of growing and refactoring and eventually introducing new technologies and patterns (events, configuration over convention) to support new and increased requirements.
Continue reading →
Minimalistic Practical Introduction to Puppet (Not Only) For Vagrant Users
Continue reading →
You're Writing the Wrong Software - You Never Know What Users Want Until You Ask Them
Continue reading →
Zabbix: Fixing Active Checks to Work With Zabbix Proxy
Continue reading →
How to Add MapRed-Only Node to Hadoop
- Do not start the datanode service on the node
- If you've configured Hadoop to allow only nodes on its whitelist files to connect to it then add it to the file pointed to by the property mapred.hosts but not to the file in dfs.hosts.
- Otherwise add the node to the DFS' blacklist, i.e. file pointed to by the property dfs.hosts.exclude and execute
hadoop dfsadmin -refreshNodes
on the namenode to apply it.
Continue reading →
Most interesting links of July '12
Recommended Readings
Continue reading →
Book Review: Implementation Patterns
Summary: Should you read the book? Yes, the chapter on principles and values is trully enlightening. The book in general contains pearls of wisdom hidden in the mud of "I know that already, man." I would thus recommend skimming through the book and reading only the pieces matching your level and needs.
The book seems to be targeted a lot at Java beginners (especially the chapter on collections), going into otherwise unnecessary details, yet there are many valuable advises of which some can only be appreciated by somebody with multiple years of professional programming experience. It thus seems to me that the book isn't a perfect match for anybody but everybody will find there many useful ideas. It would best be split in two.
An experienced developer will already know many of the patterns though it's perhaps useful to see them named and described explicitly and listed next to each - it helps to be aware and clearer of what you do and why you do it.
I'd absolutely recommend everybody to read the chapter A Theory of Programming, explaining Kent's style of programming and the underlying key values of communication, simplicity and flexibility as well as the more concrete principles (local consequence, minimize repetition, logic and data together, symmetry, declarative expression, co-locating data and logic having the same rate of change). Also in the rest of the book there are valuable ideas that it would be a pity to miss. I list below some of those that I found particularly interesting.
Continue reading →