Bots is a high topic these days and i revisited this kind of application last week.

I created a Translation Bot based on this article from IBM.

This Sametime Bot get the text, send to IBM Watson Translation Service and return the translated text to the user.

public void textReceived(ImEvent e) {           
        String q = e.getText();       
        //here we connect to watson and get the translation
        LanguageTranslation service = new LanguageTranslation();
        service.setUsernameAndPassword("<username>","<password>");
        service.setEndPoint("https://gateway.watsonplatform.net/language-translator/api");
        List<IdentifiedLanguage> identifiedLanguages = service.identify(e.getText()).execute();
        String lang = identifiedLanguages.get(0).getLanguage();
        String idiomaPt = "pt";
        String idiomaEn = "en";
        String idiomait = "it";
        if (lang.equals(idiomaPt) | lang.equals(idiomait)) {
            TranslationResult result = service.translate(e.getText(),Language.PORTUGUESE,Language.ENGLISH).execute();
             e.getIm().sendText(true, result.getFirstTranslation()+".");
            
        } else if (lang.equals(idiomaEn)) {
            TranslationResult result = service.translate(e.getText(),Language.ENGLISH,Language.PORTUGUESE).execute();
             e.getIm().sendText(true, result.getFirstTranslation()+".");
            
        } else {
            e.getIm().sendText(true,"Não consigo traduzir.");
        }
    
        System.err.println("Message received from " + e.getIm().getPartner().getName());

    }

 

To run the bot i export the project as an executable JAR and run it on my linux server using the script bellow:

#!/bin/sh
SERVICE_NAME=STBot
PATH_TO_JAR=/etc/init.d/STBotV02.jar
PID_PATH_NAME=/etc/init.d/Stbot-pid
case $1 in
    start)
        echo "Starting $SERVICE_NAME ..."
        if [ ! -f $PID_PATH_NAME ]; then
            nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
                        echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stoping ..."
            kill $PID;
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stopping ...";
            kill $PID;
            echo "$SERVICE_NAME stopped ...";
            rm $PID_PATH_NAME
            echo "$SERVICE_NAME starting ..."
            nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
                        echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
esac

Uncategorized

The general procedure to create a new theme using webdav is:

1 –  connect to http://<server>:<port>/wps/mycontenthandler/dav/themelist/

2 – Copy the original theme from IBM to your disk

3 – Modify some files and them upload the files to the file store.

My team and i used this general rule for several projects but recently this kind of procedure failed.

When we copy the files back to the file store we get a permission error at the folder metadata

I raise a PMR and the L3 support will change the documentation with the following:

“Hint: With some WebDAV clients it can happen that you get an error “You need permission to perform this action”.
In this case, you have to explicitly create the root folder of the new theme with the WebDAV client first.
The metadata folder and the metadata.properties file get created automatically with default content.
You can now open the newly created folder and copy the contents of your local folder into the remote folder thus replacing the
generated meta-data.”

Obs: Before i open the PMR i tried several webdav clients, including making a copy using finder on my mac. Every client get the same error.

WebSphere Portal

Prepare the packages for installation

1 – Download the image CIQ7TEN from Passport Advantage this is the Debian install for IBM Notes 9.0.1 and also the FP7 from fix central

2 – Expand the downloaded file using tar -xvf command

3 – Open the package bm-notes-9.0.1.i586.deb to be edited using the commands bellow

dpkg-deb -x ibm-notes-9.0.1.i586.deb common
dpkg-deb --control ibm-notes-9.0.1.i586.deb

4 – Edit the control file, inside of the folder DEBIAN and change the Pre-depends section :

Pre-Depends: gdb:i386 | gdb:amd64, coreutils:i386 | coreutils:amd64, unzip:i386 | unzip:amd64, bash:i386 | bash:amd64, procps:i386 | procps:amd64, grep:i386 | grep:amd64, sed:i386 | sed:amd64, libart-2.0-2:i386, libasound2:i386, libatk1.0-0:i386, libavahi-client3:i386, libavahi-common3:i386, libavahi-glib1:i386, libbonobo2-0:i386, libbonoboui2-0:i386, libc6:i386, libcairo2:i386, libcanberra0:i386, libcomerr2:i386, libcups2:i386, libdbus-1-3:i386, libdbus-glib-1-2:i386, libexpat1:i386, libffi6:i386, libfontconfig1:i386, libfreetype6:i386, libgail18:i386, libgcc1:i386, libgconf-2-4:i386, libgcrypt11:i386 | libgcrypt20:i386, libgdk-pixbuf2.0-0:i386, libglib2.0-0:i386, libgnome2-0:i386, libgnomecanvas2-0:i386, libgnome-keyring0:i386, libgnomeui-0:i386, libgnomevfs2-0:i386, libgnutls26:i386 | libgnutls30:i386, libgpg-error0:i386, libgssapi-krb5-2:i386, libgtk2.0-0:i386, libhunspell-1.3-0:i386, libice6:i386, libjpeg62:i386, libk5crypto3:i386, libkeyutils1:i386, libkrb5-3:i386, libkrb5support0:i386, libltdl7:i386, libnspr4:i386, libnspr4-0d:i386, libnss3:i386, libnss3-1d:i386, libogg0:i386, liborbit2:i386, libp11-kit0:i386, libpam0g:i386, libpango1.0-0:i386, libpcre3:i386, libpixman-1-0:i386, libpng12-0:i386, libpopt0:i386, libselinux1:i386, libsm6:i386, libstdc++6:i386, libtasn1-3:i386 | libtasn1-4:i386 | libtasn1-5:i386 | libtasn1-6:i386, libtdb1:i386, libuuid1:i386, libvorbis0a:i386, libvorbisfile3:i386, libx11-6:i386, libxau6:i386, libxcb1:i386, libxcb-render0:i386, libxcb-shm0:i386, libxcomposite1:i386, libxcursor1:i386, libxdamage1:i386, libxdmcp6:i386, libxext6:i386, libxfixes3:i386, libxft2:i386, libxi6:i386, libxinerama1:i386, libxml2:i386, libxrandr2:i386, libxrender1:i386, libxss1:i386, libxt6:i386, libxtst6:i386, zlib1g:i386, unity-gtk2-module:i386, libcanberra-gtk-module:i386, libxss1:i386, gtk2-engines-murrine:i386, p11-kit-modules:i386, libp11-kit-gnome-keyring:i386, ttf-xfree86-nonfree:i386 | ttf-xfree86-nonfree:amd64, libz1:i386, libgconf2-4:i386, libxkbfile1:i386, libgnome-desktop-2 | libgnome-desktop-2-7 | libgnome-desktop-2-11 | libgnome-desktop-2-17 | libgnome-desktop-3-2 | libgnome-desktop-3-12, libidl-2-0:i386, libpangox-1.0-0:i386, libpangoxft-1.0-0:i386, libasound2-plugins:i386, libgail-common:i386, libatk-adaptor:i386, overlay-scrollbar-gtk2:i386 | overlay-scrollbar-gtk2:amd64

5 – Rebuild the package using the commands:

cp -a DEBIAN common
dpkg -b common ibm-notes-9.0.1.i586.deb

6 – Delete the folders common and DEBIAN

7 – Open the Sametime package for edition:

dpkg-deb -x ibm-sametime-9.0.1.i586.deb common
dpkg-deb --control ibm-sametime-9.0.1.i586.deb

8 – Edit the control file, inside of the folder DEBIAN and change the Pre-depends section :

Pre-Depends: ibm-notes, alsa-base, alsa-utils:i386 | alsa-utils:amd64 , iproute:i386 | iproute2:i386 | iproute:amd64 | iproute2:amd64

9 – Rebuild the package using the commands:

cp -a DEBIAN common
dpkg -b common ibm-sametime-9.0.1.i586.deb

remove common and DEBIAN folders

10 – Optional – Brazilian Portuguese Language:

dpkg-deb -x ibm-notes-core-ptbr-9.0.1.i586.deb common
dpkg-deb --control ibm-notes-core-ptbr-9.0.1.i586.deb

Edit the file control inside the DEBIAN folder and remove the the following line:

Depends: ibm-notes-nl1 (= 9.0.1-20131022.1138)

Rebuild the package

cp -a DEBIAN common
dpkg -b common ibm-notes-core-ptbr-9.0.1.i586.deb

Remove common and DEBIAN folders.

Prepare Ubuntu to install IBM Notes 9.0.1 FP7

Install Synaptic. We need to install some packages

sudo apt-get install synaptic

Start Synaptic and go to Settings -> Repositories -> Other software

Add the following URI for the repository:

deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse

Close Synaptic. It will ask to reload the repositories and maybe you get the index reporitory error, you can ignore it.

run on terminal:

sudo apt-get update

sudo apt-get install libart-2.0-2:i386 libasound2:i386 libatk1.0-0:i386 libavahi-client3:i386 libavahi-common3:i386 libavahi-glib1:i386 libbonobo2-0:i386 libbonoboui2-0:i386 libc6:i386 libcairo2:i386 libcanberra0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386 libdbus-glib-1-2:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libgail18:i386 libgcc1:i386 libgconf-2-4:i386 libgdk-pixbuf2.0-0:i386 libglib2.0-0:i386 libgnome2-0:i386 libgnomecanvas2-0:i386 libgnome-keyring0:i386 libgnomeui-0:i386 libgnomevfs2-0:i386 libgpg-error0:i386 libgssapi-krb5-2:i386 libgtk2.0-0:i386 libhunspell-1.3-0:i386 libice6:i386 libjpeg62:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libltdl7:i386 libnspr4:i386 libnspr4-0d:i386 libnss3:i386 libnss3-1d:i386 libogg0:i386 liborbit2:i386 libp11-kit0:i386 libpam0g:i386 libpango1.0-0:i386 libpcre3:i386 libpixman-1-0:i386 libpng12-0:i386 libpopt0:i386 libselinux1:i386 libsm6:i386 libstdc++6:i386 libtasn1-6:i386 libtdb1:i386 libuuid1:i386 libvorbis0a:i386 libvorbisfile3:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxft2:i386 libxi6:i386 libxinerama1:i386 libxml2:i386 libxrandr2:i386 libxrender1:i386 libxss1:i386 libxt6:i386 libxtst6:i386 zlib1g:i386 unity-gtk2-module:i386 libcanberra-gtk-module:i386 libxss1:i386 gtk2-engines-murrine:i386 p11-kit-modules:i386 libp11-kit-gnome-keyring:i386 ttf-xfree86-nonfree gdb iproute2 libgconf2-4:i386 libxkbfile1:i386 lib32ncurses5 lib32z1 libidl-2-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libasound2-plugins:i386 libgail-common:i386 overlay-scrollbar-gtk2 libgnome-desktop-3-12:i386 libatk-adaptor:i386 libgcrypt20:i386 libgnutls30:i386

Install IBM Notes 9.0.1

dpkg -i ibm-notes-9.0.1.i586.deb
dpkg -i ibm-sametime-9.0.1.i586.deb

For Brazilian Portuguese only:
dpkg -i ibm-notes-core-ptbr-9.0.1.i586.deb

After you install and configure the IBM Notes 9.0.1 close the client and install the FP7 using the command:

dpkg -i ibm_notes_fixpack-9.0.1.i586.deb

Many thanks to Felipe Paixão. He works hard to make this setup guide.

Domino Notes

Barry and Uffe will review the latest updates on IBM Notes and Domino as well as IBM Verse On-premises and related Cloud solutions. They will discuss the future directions and support for IBM Notes and Domino and the deliverables over the next 12 to 18 months as IBM transitions to using Feature Packs for delivering future enhancements. Plus, Martin Donnelly will discuss IBM’s plans for XPages enhancements.

There will be time for questions and answers at the end of their presentation.

November 3rd – 10:30 A.M. to 12:00 P.M. Eastern U.S. time. Register here

Domino

Since i update my mac to macOS sierra,  my TimeMachine backups was not running well.
On El Capitain i don’t exprience any issues using WD My BookLive or a disk attached to my ASUS Router.

After the upgrade the WD disk is not recognized by TimeMachine, the “ASUS” disk had the same problem.

I google a lot and found a final solution to my problem with TimeMachine

Problem number 1 – WD My BookLive not found by TimeMachine

Steps to solve:

Create a sparse image – a virtual drive that Time Machine will see as a valid backup disk.

Copy the sparsebundle to your network drive, then mount it.

Tell Time Machine to use the mounted sparsebundle for backups.

Tell your Mac to mount the virtual drive at boot.

Detailed steps here: http://www.makeuseof.com/tag/turn-nas-windows-share-time-machine-backup/

Problem number 2 – TimeMachine backups very very slow:

Steps do solve:

Part of the issue is that low priority input/output-operations (I/O) now seems to get throttled heavily.
You can check it via Terminal then entering at the bash prompt:

fs_usage backupd

and look for the THROTTLED entries. If you see them, the backup is throttled.

So if you have a ton of files, just the time it takes to do the I/O takes forever, even if the files are small (because it performs a bunch more I/O operations around xattrs etc. than it used to).

Go to a Terminal and enter:

sudo sysctl debug.lowpri_throttle_enabled=0

My backup time before this command was 29 hours and drop to 4 hours (using an ethernet cable).

Obs: I upgrade the bios of ASUS Router and WD My BookLive to latest versions.

Uncategorized

When an user write the wrong name or password the Login porlet show a message to the user.

My customer has a requirement to change the default message and add a link to the registration porltet inside of this message, because only registered users with all attributes (defined by the customer) can login on the portal.

Steps :

1  – Stop Websphere Portal

2 – Clear the wp_profile\temp  and wp_profile\ws_temp

3 – Go to wp_profile\installedApps\<cellName>\PA_Login_Portlet_App.ear\login.war\WEB-INF\jsp

4 – Change the StatusMessageInclude.jspf adding what you want.

Restart Websphere Portal.

Obs: If you apply fixes or fixpacks maybe you need to change it again.

WebSphere Portal

Call for speakers is now open

Submission topics

Digital workplace

Enterprise email

Unified communications

Enterprise content management

Enterprise and team collaboration

Compliance

Individual productivity

More information on the event  site

 

Uncategorized

For 2017 IBM have launched a broader Cloud Champions program, Cloud Champions will have technical expertise in the following IBM Software, solutions and services: Bluemix Infrastructure(Formerly Softlayer), Bluemix, MobileFirst, DevOps (UrbanCode) Middleware (Tivoli, Rational and WebSphere), API Connect, Cognitive (Watson and Watson IOT and Cloud Managed Services. Below is a brief description of who an IBM Champion is, the benefits of becoming and IBM Champion and our extended Champion community.

What are the benefits of being an IBM Champion?

IBM Champions may receive:

  • Special visibility, recognition, and networking opportunities within IBM communities, events, and conferences
  • Participation in exclusive IBM online communities
  • Exclusive access to IBM product development teams
  • Invitations and discounts to events and conferences
  • Special recognition on their developerWorks profile: The profiles of IBM Champions have special designations, such as “IBM CHAMPION” under their name and a unique icon on their profile picture. Their profiles may also include an endorsement and notable achievements in the left column to recognize their contributions to the technical community.

Nominations are now open, so you can nominate IBM Champion’s for the following areas:

  • IBM Social Business
  • IBM Power Systems
  • IBM Analytics
  • IBM Cloud – (All Middleware Champion’s will now be under Cloud)

When: October – November
How: Click here to Nominate
Link to Champion Site: Link to nomination site

WebSphere WebSphere Portal

I upgrade from El Capitain and Notes 9.0.1 IF4 works fine for me. Yesterday IBM launch the FIX5 for Notes on MAC and will support macOS Sierra

Some information from the TN about the fix 5:

IBM Notes 9.0.1 64-bit running 9.0.1 Interim Fix 5 or above supports macOS Sierra and OS X 10.11. IBM clients can open Service Requests running this release.
Full certification of macOS Sierra will be completed by end of October 2016 or approximately 30 days after the general release of macOS Sierra.

IBM Client Application Access (ICAA) 1.0.0.1 Feature Pack 1 due out in November 2016 will support macOS Sierra.

Domino fix

Working this week on a new WebSphere Portal Project.

Several content are using AngularJS and some calls to get data go to another server in another domain.

To avoid CORS we implement a reverse proxy on the IHS side.

Bellow the config of my httpd.conf.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so

SSLProxyEngine on
KeyFile /opt/IBM/HTTPServer/bin/key.kdb
SSLStashfile /opt/IBM/HTTPServer/bin/key.sth

Proxypass /acme/products  https://anotherdomain/api/v1/products
ProxypassReverse /acme/products  https://anotherdomain/api/v1/products

AngularJS web WebSphere WebSphere Portal

Textbox.io for AngularJS allows developers to leverage the capabilities of the Textbox.io WYSIWYG Rich Text Editor in forms within your AngularJS application. This provides a far more feature rich content authoring environment than a standard textarea.

AngularJS Connections

AngularJS