New article @developerWorks

I wrote an article for IBM developerWorks, Build a text visualization and analytics application. It’s about visualization and analysing texts using open source tools.

In the article I describe how I’ve built my own visualization/analysis tool. All the word clouds here in my blog, such as word cloud from Virginia Rometty’s letter in IBM Annual Report 2012, are created using the same open source tools and libraries.

I describe also how to easily create videos using Java and Monte Media Library. Video is basically just for the fun of it, like comparing Coca-Cola’s and PepsiCo’s Mission, Vision and Value statements below.

CLENotes v4.2.1 available @OpenNTF

It’s been a while since I updated Command Line Email Client for Lotus Notes but it’s done now. Version 4.2.1 is now available.


  • Fixed bug when signing and encrypting mail.
  • Moved maildbinfo-command to from
  • Added default return code 0.
  • Added support for multi-byte files for –file-body option by Yasuhiro Onoda, IBM Japan

Updates may not happen very often but CLENotes is not dead. On the contrary,¬† it’s very much alive and history continues… ūüôā

OLViz: visualizing text with a single line

The next version of One Word Visualization visualizes a given text with a single line. I call it One Line Visualization and let’s abbreviate it as “OLViz”.

Visualization of "OLViz"

Idea of OLViz is to use a single colored line in 3D space to represent text. The way its done is to calculate MD5 hash from text and then use that hash as seed for Processing‘s random generator. Line vector coordinates, color and rotations are randomized and since each seed is unique then all texts have unique one line visualization. Continue reading “OLViz: visualizing text with a single line”

Bug in Automation

@KemiraGroup¬†discovered a little bug in my automation code for tweet statistics. I tested with Firefox and Safari and it worked for me… but then Peter Sj√∂holm (@sjoholm)¬†informed that the bug manifested itself in IE8 & XP. I reproduced using IE6 and XP and then fixed the bug.

The reason why bug happened was because of one little comma… The excerpt below shows the bug in the list that is used to generate bar chart with Google Charts.


The code below has no comma and it works.


The bug fix in the code generation is below.

for company,tweetCount in rankingDict:
  if i==LAST:

Python, Google Charts and Twitter Statistics

I post weekly statistics of DJIA and OMXH25 companies’ tweeting activity where companies are ranked by the number of tweets during the previous week (Mon-Sun). ¬†See this¬†Top tweeters (DJIA) 23.4. ‚Äď 29.4.2012¬†as an example.

But how do I do that? I do it automatically, using Python, Python Twitter API, MySQL, Google Charts¬†and cron. Continue reading “Python, Google Charts and Twitter Statistics”

One Word Visualization

I generated, using Processing programming language, a few visualizations of Twitter account names (here and here). The language’s web site introduces Processing well: “Processing is an open source programming language and environment for people who want to create images, animations, and interactions“. There’s also a good introduction to the language available at IBM developerWorks.

The algorithm I used is very simple but results can be quite appealing (well, at least I think so and there’s certain beauty in simplicity…)

The source code of the algorithm is below. The basic idea is to take a single word and based on it’s characters and length, generate random seed, color and (x,y,z)-coordinates in 3D space. Drawing is done one line and one rotation at a time. The final image is ready after five hundred rotations (see the demonstration of the code, requires Java. Also displayed in
Continue reading “One Word Visualization”