I will be speaking at DNUG 44

I have just been notified that my session has been approved ?.

My session is “integrating IBM Connections Docs with Box” and is scheduled for May 31 in the afternoon.

As usual the DNUG team has set up a great event, suffice to say that the keynote speech will be given by ICS General Manager, Inhi Cho Su.

You can check the full agenda here http://44.dnug.de/

There will be several IBM Champions speaking and it will be an occasion for me to meet again many friends.


panagenda ApplicationInsights. A first look

In April panagenda has announced the release of ApplicationInsights, a tool to analyze your Domino environment. The most important features are geared towards the analysis of the applications both from the point of view of utilization and the complexity. It allows me to see how complex is my environment, drilling down to the single applications measuring complexity, code quantity, external dependencies and so on. Apart from the obvious usefulness of being able to see and measure the status of the environment, the results allow us to analyze where to work in case we want to migrate an application, move it from a server to another, optimize it or modernize it.

A note: if you want to test it, take your time. ApplicationInsights needs to run for a couple of days in order to collect meaningful data; do not think you can install it and see the results in a couple of hours.
The test have been done on our server, this means a lot fo code to analyze but few accesses.

After the installation and configuration ( pretty easy and fast, it just needs a Notes ID able to access to the servr and the applications ) AI begins to analyze the environment; I let it run for 48 hours and came back to see the results.
After the login it shows me the dashboard. Apart from the number shown at the top ( but we really do have so many files on the server ? ) I see the results I expected: few activity and variable complexity

Drilling down I can see how my databases are split

Now I drill further down, I search for an application listed as complex and check what the reports says

Now I have a better idea about how the application is complex and by how many elements is composed. As you can see we’re not talking at all of the data contained in the application but only of the design, since the analysis is done on this part. Drilling down more I can see, for example, how may agents are there in the application and how are they split

In this case I have 72 agents for a total of 7758 lines of code and of those agents 26 are scheduled. This is a good point to consider if I wanted, say, to move the application to another server; in this case I can foresee i need to check those 26 agents to change the schedule.
Continuing to drill down into details, to check what I can see and actually I find a lot of information, analyzing the application AI has checked all the design elements and now it can say me category by category what has found

Here I can see if something sends a mail, how it does, if I have connections to the Domino NAB or if I perform some operations at the OS level. This last information is useful if, say, I am planning to move the server from Windows to Linux.
Below I can see if the application works with connectors or if uses Lotusscript extensions: in this case the application has connections to DB2 and AI reports it correctly.
Still below I found if the application does External C Call, e.g. OLE, if it writes and/or reads extrnal files of the OS, executes calls to external programs and so on.

I finish this post with some considerations based mostly on experience: Notes/Domino is present since many years at customers and the applications written during the years have stratified. Often we need to work on applications written years ago end finding someone who knows exactly what it does and how this applications works is difficult. Maybe the person who developed the application is not working there anymore or, having a lot of time passed, he does not remember what he did and maybe has not documented everything.
In all those cases I believe that having a product like ApplicationInsights can really make a difference and be very useful.
Apart from this, ApplicationInsights is very useful to make an assessment of the environment and check the usage and the complexity.
If we want to work on the applications to modernize them or add other features, that is where a tool like this becomes essential in order to have a correct idea of the situation and of the points where to work. I have the feeling that dedicating more time to the study of ApplicationInsights, I will find other useful features I have not yet seen and used.


OrientMe in a test environment. How to make it work

For all my test systems I do not use a real domain name, I usually go with something like server.roberto.local or the like. This is a problem when you try to install the new OrientMe component that IBM has shipped with Connections 6.

The install scripts perform a nslookup and check the domain name then add the resulting IP address to your host file, then it will try to connect to that address and obviously fail. The strange thing is that it will return an IP address also for .local domains, so basically whatever is your fake domain name, it will find a valid IP and fail the installation.

There is a workaround to make it work, it requires changing a few lines in four files.
When you install OrientMe, the instructions say to copy the deployCFC folder to /opt; open a terminal and go in /opt/deployCFC. There are several files in there, we need to modify the following four:
A-03-all-setup-hosts.sh
A-04-boot-setup-ssh-keys.sh
B-20-boot-setup-cfc.sh
B-22-all-configure-cfc.sh

Open for editing the file A-03-all-setup-hosts.sh and fine the following line
ip=${resolve_ip_return_result}
then change it to
ip=your ip address (192.168.1.x or whatever you use)

Open for editing the file A-04-boot-setup-ssh-keys.sh and do the same as above

Open for editing the file B-20-boot-setup-cfc.sh and find the following 3 lines:
master_ip=${resolve_ip_return_result} and change it to master_ip=your ip address
worker_ip=${resolve_ip_return_result} and change it to worker_ip=your ip address
proxy_ip=${resolve_ip_return_result} and change it to proxy_ip=your ip address

Open for editing the file B-22-all-configure-cfc.sh and fine the following line
master_ip=${resolve_ip_return_result} and change it to master_ip=your ip address

Make sure you have your server name and IP address in the /etc/hosts file

Now here comes the fun bit 🙂 In the /opt/deployCFC directory there is a file, manifest.md5, that contains the MD5 hashes of the script files, e.g. MD5 (deployCfC/00-all-config.sh) = f826bfd38a81ecafc55020563dc3db75
So if you try now to run the modified scripts it will not work throwing a checksum error.
You have to do the following: for each of the 4 modified files, compute a new MD5 hash, use the command md5sum to do that, e.g md5sum A-03-all-setup-hosts.sh you will get
a77f66e359a4e1f531d8220bb3f309b6  A-03-all-setup-hosts.sh

For each file get the new string and put it in the manifest.md5 file replacing the original one and save the file.

After those changes the installation script will connect to your server and the installation will proceed successfully.

A word of caution: do try this only for test environments where you do not have a real domain name available. Do NOT do this for production systems, those will have a proper domain name and you do not need to do this, also because if something goes wrong IBM will not support you if you have changed the script files.