Wednesday, February 17, 2010

The Gathering in Pratteln, 02/10/10

Last week I was in Pratteln (CH) watching The Gathering touring with their latest album The West Pole. I've been following this band since I was 16. Back then they made sort of Gothic Metal (starting with Death Metal on their earlier releases) and in the following years they developed their style to something they call "Trip Rock", a mix of Trip Hop and Rock, quite melancholic and gloomy, but still rock. After their last album their former singer Anneke van Giersbergen left the band in 2007 starting a solo career with Agua de Annique, leaving the band without a charismatic singer. And I must admit, they found a real good successor for Anneke in Silje Wergeland from Norway. I was positively surprised, she did a pretty good performance even on the old songs. All in all I think she fits perfectly into this likable, natural, down-to-earth group of great musicians. And of course I got another band item for my garderobe - a new hoodie - and a signed poster for home office :)



See this video from the show, playing the very first song from my first The Gathing album "Nighttime Birds"


Thursday, January 21, 2010

Installing Lotus Quickr on Ubuntu Linux Server 9.10

The installation of Lotus Quickr Services for WebSphere Portal includes an installation of DB2. Installing Quickr on an out-of-the-box installation of Ubuntu will fail due to a missing C++ library. The DB2 service requires a standard C++ library in version 5. Ubuntu Linux 9.10 includes version 6 of that library. In order to install Quickr 8.1.1 on a Ubuntu 9.10 system, you have to manually install the required library from an older release. You can find the package in the Debian package repository
. Download the .deb file from the repository and install it by issuing the following command as superuser
dpkg -i libstdc++5_3.3.6-18_i386.deb
The next issue I stumbled upon was during the creation of the was profile. The default shell of Ubuntu Linux is /bin/sh which does not support arrays and therefore a call to wsadmin.sh during the profile creation fails. I found this blog entry that describes how to solve this. You have to unlink /bin/sh, link it to bash and do a reconfigure. Enter the following commands as superuser:
unlink /bin/sh
ln -s /bin/bash /bin/sh
or
dpkg-reconfigure dash
Finally, after the installation is complete, you have to change the default shell for the created DB2 instance user for Quickr (i.e. quickradm), which is set to /bin/sh. Using this shell won't properly initialize the db2 environment when running the db2profile script. You should change the shell to bash, otherwise commands like db2stop and db2start won't be accessible. To change the default shell, edit as superuser the file /etc/passwd, look for the quickr users (usually in the end), and change the /bin/sh to /bin/bash.

Thursday, November 26, 2009

"Plane attack prevented by disarming Swiss Cheese Bomber"

It's a ridiculous story that happend to me yesterday. I intended to visit my mother who lives near Hamburg for the 1st advent, I bought a gift for her, as I live now in Switzerland, what is more obvious than bringing some Swiss presents so I bought a complete Swiss Fondue Set, including forks, heater, a big cheese-pot and some dishes and - of course - 1.5kg of Swiss Fondue Cheese (and also some flour for making fresh bread). All our suitcases where full (mine and that of my girlfriend) so we decided to carry the present in our hand luggage. Of course we had to pass security and we where already quite late at the airport. But at the security x-ray scanner we had two findings. One was the flour in my bag pack (scary, huh?) and the other was - you might already guess - the 1.5kg Swiss fondue cheese. Ok, you might think, it was found, considered harmless and that's all about it. But no way! The security officer told me, that this chunk of cheese is considered as liquid (!) and we where not allowed to take it on board. I thought they were kidding, but they weren't, they argued, that it contains wine - which is alcohol - and inflammable. Yes, of course, how could I forget, most of all fire accidents happen due to exploding wine bottles. They said, if I would have some time I could check it in as normal luggae (how normal is it to check in a separate chunk of cheese?). But anyway, we could not take it with us and had to leave it. My girlfriend wished them a nice fondue party and they told us they had to destroy it anyway. The fresh, new, sealed and unused chunk of cheese.
I mean, how stupid is this liquid policy? What's more obvious than carry some cheese when carrying a complete fondue set? Everyone saw it - even the security officers saw it, they looked pretty helpless explaining to us, why a chunk of cheese is a threat. Around 8mio swiss people knew that such a chunk of cheese causes if ever then most likely a bilious attack - but not a plane attack. This has nothing to do with common sense. This has even nothing to do with security or terror prevention. How could liquids in general and a chunk of cheese in special help hijacking a plane? I mean, if it's really a bomb, then the plane just explodes and that's it, you could not fly an exploding plane into a skyscraper, and it's way more easier to get a bomb into a train and blow an entire main station out of this world then getting a chunk of cheese on board of a plane. This is pure stupid, made by people that are not affected. This reminds me of former times, when the soviet central government dictated, what famers had to plant - regardless if farmers complained that the plants are not growing in that region (as I've read in the Occupation museum in Riga).
Stop stupidity and start thinking again!

Well, in the end, we arrived safe and sound in Hamburg thanks to the security authorities who disarmed the dangerous swiss-cheese bomber (me). Happy X-mas!

(and the weird end of the story is the fact, that I could easily take 80g of burning paste which was included in the heater-set onboard without noticing and which is much more inflammable than a chunk of cheese...)

Friday, November 20, 2009

Where is the cloud on a sunny day? or Who controls the weathermaker?

Google announced they Releasing the Chromium OS open source project. They focussed on speed, security and easy handling. The entire concept is, that application do not run on the local machine at all but on the cloud, all the data are on the cloud. So much for the theory. Actually I like the idea of access to all my data everywhere and independent from the device with which I access them, but when it comes to the reality I think we are yet pretty far away from "Everything-in-the-cloud". In my oppinion there are two major obstacles to overcome:
  1. Seamless and Pervasive access to the Internet. Considering the technical and financial side, this is not yet reality for most of the people. The prices are yet still to high for mobile services - especially when it comes to travelling abroad - unlike the US, Europe consists of lots of more or less small countries where you pay roaming fees - which are quite high when it comes to 24h-web-access. As example (from ordinary mobile telephony): I paid 8€ for a-15mins phone call abroad, and I was called! Looking at the technical side, UMTS has become widely available, though there are situation where you simply have no signal - in mountain regions or in the deep cellars of a customer's computing center. There you still rely on plain old network cables. When it comes to seamless, it's still a pain to switch different network providers or media. Switching from UMTS to WLAN to Cable is still a pain, having to reconnect to different services because of a new IP, lost sessions (MS RDP is my favorite...). And how do you access your data or applications when there are blue skies? When you rely on the accessibility of the Internet you could end up lost in the wilderness - and this is not an artifical problem, when I was in the Sequoia National Park this summer, we had no phone or internet access there but had to find a gas station. We were lucky in the end but consider you navigation system runs on Google! But I think, the technology will evolve and this obstacle evaporate over time. But the other obstacle require more than this.
  2. Privacy data protection and data security. When I would put all my data and applications that have been running on my local machine into the cloud I would expand my trust domain from my client device to the cloud (or the internet or provider). And this requires a lot of trust! I have control over my local machine, I can pull the plug and preventing access to it. Of course it is in my responsibility to protect and secure my system, but thats ok. But when it comes to the cloud, I have to trust the cloud provider. And when I look at the recent sensitive data infringements that happen in Spain where probably over 100k credit card data sets have been lost I don't want to think about what would happen if the rest of my data would be stolen from the cloud provider! At the moment we trust on the pure goodwill of a company like Google. Sure, their services are yet for free but what's the worth of my private data I put into their hands? I don't even have a formal contract between them! And even if there would be contract and I would pay for using the cloud - how could I be sure to trust the provider? Providers fail, like power, water or internet providers may fail from time to time, those things happen - but it's not just the lost of internet access, light or fresh water for a moment - it may be the loss of your privacy for a longer period than just a moment! A solution for this would be kind of a certification the cloud providers could get from a governmental agency like those for data privacy protection, something similar to those of a Certification Authority. There have to be regulations for systems that deal with private data such as for banks. Before there isn't such thing I can rely on I won't put my private stuff into the cloud (although I have to admit, that I already use gmail - but to be honest that's already more than I feel comfortable with).

Monday, October 19, 2009

Lotus Connections Communities: Enable "Suscribe to ..." as default and hide it

The customer I work for, wants that for all Forum entries a notification is sent as default and the user should not have the possibility to disable this. Though I don't think, this is a good idea but anyway, here is the description how to do this.


The following changes have then been applied to tick the notifications checkboxed by default and hide them in the Web UI:


  1. Edit
    Communities.ear/comm.web.war/WEB-INF/forum/views/topicThread.jsp

  2. Locate:
    <div id="contentArea" class="lotusLimit">
    <c:if test="${not topic.deleted}">
    <div id="forum" class="lotusForum">
    <div class="lotusMessage lotusHidden"></div>
    <c:if test='${canSubscribe}'>

  3. set the body content of the innermost tag (c:if) to
    <div class="lotusRight" style="display:none;"> 
    <input id="${subscribeCheckId}" type="checkbox" checked="checked"/>
    <label for="${subscribeCheckId}"><fmt:message key="label.forum.notify" /></label>
    </div>

  4. Edit
    Communities.ear/comm.web.war/javascript/build/dojo/communities.js

  5. Locate
    <td><input name=\"subscribe\" dojoAttachPoint=\"subscribeNode\" type=\"checkbox\" id=\"${id}_subscribe\" value=\"true\" ${checkedAttr} />

  6. Change to
    <td style="display:none"><input name=\"subscribe\" dojoAttachPoint=\"subscribeNode\" type=\"checkbox\" id=\"${id}_subscribe\" value=\"true\" checked=\"checked\" />


Important: the changes applied to both files are not recommended as they are no official and supported customization option for Lotus Connections!


At first the customer did this by themselves, but they did not hide (display:none) the elements, but removed the first one (in jsp) entirely from the file, without documenting which files have been changed and what was changed. DONT TRY THIS AT HOME!


Always:


  1. Create a backup of the files you change

  2. Document which file you change

  3. Document what you change

  4. Avoid modifying the HTML structure by REMOVING elements. Try to hide them instead, either by CSS-Stylesheet (best), style-element (ok) or javascript (last option)

Friday, September 18, 2009

Changing the Landing page after Login in Lotus Connections 2.5

As I described in an earlier post, how to modify the Homepage link of the navigation bar in order to display the "My page" instead of the update page, I describe in this post how to modify the Homepage redirection after logging in to Connections. We make use of the WASReqURL cookie that is set to remember the URL to a protected resource when there is no User session active. WAS redirects to the Login page and remembers the previously called URL in the WASReqURL. Via a small JavaScript on the login page, we modify this cookie to point to the My Page url. The login page is defined in dboard.war/auth/login.jsp. Add the following snippet to the head scripts of the file.


function setRedirectCookie(){
var cookieName = "WASReqURL";
var requestURL = getCookie(cookieName);
if(requestURL.substr(requestURL.length - 9) == "homepage/") {
  requestURL += "web/widgets";
}
setCookie(cookieName, requestURL, null, "/");
}


The getCookie() and setCookie() methods are copied from the example on w3schools. Note, that the setCookie() method uses a fourth parameter, which is the path that is simply appended after the expires parameter. The setRedirectCookie() method retrieves the WASReqURL and checks if it ends with "homepage/" - which is the Updates page. If thats the case, the "web/widgets" is appended, pointing to the My Page.

Thursday, September 17, 2009

Adding a multi-lingual link to Header or Footer in Lotus Connections 2.5

According to the InfoCenter, it is quite simple to add additional content such as links to the header of the footer. What the InfoCenter doesn't mention, how you could have the labels of these links multilangual. But fortunately, that's not very complicated.


For editing the header or footer itself, follow the instructions in the InfoCenter. But instead of writing the label of a link directly to the file, use a placeholder similar to the existing ones, like {{ label.header.mylink }}.


To add the label: for each component, locate the lc.util.web-2.5.jar file - should be in the WEB-INF/lib of the the web modules. This jar file contains the resource files. Open the file for edit (use a proper archive tool*) and search for the package/path com.ibm.lconn.core.web.ui.resources. That path contains the resource files. Edit the resource files for your language and add the label (i.e. label.header.mylink) and a value in the proper language. Important: add the label you are using at least to the resources.properties file, that is used as fallback if a label is not defined in the localized properties file.


*: If you have no tool to edit the files directly in the jar file, you could also rename the .jar file to a .zip file, extract it, edit the files, compress it again as .zip and rename it back to .jar