Social Connections 9 – 2 days left to submit abstracts

The call for abstracts for Social Connections 9 in Ehningen will be closed on monday! So if you plan to attend and want to share your knowledge you have only few days left to submit your abstract!

The first keynote speakers are announced and i see forward to meet John Stepper“Working Out Loud: How to make work more effective & fulfilling across your organization” and Silvia Cambie – “Convincing the C-Suite: Collaboration begins with Culture”

If you’re interested to attend the event you can register on Eventbrite, Social Connections 9 will be on 5th and 6th november in Ehningen, Germany.

Admincamp 2015 – i will be there

Admincamp 2015 will take place from 21st to 23rd September at Maritim Hotel Gelsenkirchen.

I will talk about “IBM Connections administrieren” and “IBM Connections Best Practise”.

During my first session i will show you the basic knowledge that you can manage your IBM Connections infrastructure, often needed tasks like reparent Communities, synchronise profiles, backup and basic troubleshooting.

The second session is the extended and updated version of my IBM ConnectED session, i will show you often seen mistakes during deployments, basic sizing thoughts and how to tune your environment.

The session will be in german and we have 90 minutes to cover all informations around IBM Connections deployment and administration.

You can find the whole agenda here.

You will find lots of well known people on this agenda like my colleague Christoph Adler, my former colleagues Andreas Artner, Denny Sternberg and Stephan Kopp, Alex Novak, Ben Menesi from Ytria, Ulrich Krause and much more!

I like Admincamp very much because Rudi Knegt and his team created a great event with lots of content and the evening party with networking and knowledge sharing (and free beer).

If you’re interested in IBM ICS software, please join the event, there are still some places available. If you add my name or the blog address into the “Besonderheiten” field, you will get 50€ discount.

Another new feature with IBM Connections 5.0 CR3

Within the fixlist of the new released CR3 of IBM Connections 5 there are several new configuration options mentioned. One of the interesting ones for me is the mobile update parameter AllowRemoveAccount. The default value is “false” and your Connections environment still works before, but what’s changed when you set this to true?

The official documentation is already uptodate and shows us:

When you set this option to true, accounts can be removed from a mobile device without requiring the user to login and without any authorization check. The user is asked to confirm the deletion of an account before it is removed.

So this helps me with my long list of Connections environments on my mobile clients. Until you set this to true you can only remove a profile, when you still can login to this system. I have several environments configured on my mobile which i can’t access anymore, because my user is disabled, or the system is only available within special wifi or network environments. So i’m not able to remove these accounts.

I will set this to true in all environments i have access to, to prevent this behavior.

Please beware of the additional infos in the online help:

If a user has existing accounts that they cannot access and that were created before this feature was available, those accounts cannot be deleted using the AllowRemoveAccount property.

Validation error

After checking out the mobile-config.xml (yes you should always use wsadmin to change config parameters), the parameter was not set in the file. So i added it and saved my change.

After checkIn i got a validation error, first i thought the order of parameters was wrong and so i checked the mobile-config.xsd. Even in the xsd the parameter wasn’t mentioned. So i checked <connections-root>/mobile/mobile/mobile/mobile-config/mobile-config.xsd|xml and there the parameter (and the other new ones) is available. I’m sure that the update was finished successfully without errors, so i checked two other systems (Windows and Linux) with CR3 and there was the same behavior, the new parameters were not copied to LotusConnections-config. After manually copying the xml and xsd i could set the values and after restarting of mobile the new feature was available.

When i enabled the feature the first time and i like the xml validation feature of checkIn and checkOut, so i used wsadmin to checkOut the mobile-config.xml

I haven’t checked if the new parameter useLeadingWildcardForGroupTypeahed with LotusConnections-config.xml works, but it isn’t available in the xsd too and i can’t found it in the complete connections-root directory. Will try the next days.

Using markdown with IBM Connections Blogs

I use markdown since years to create my articles or most of documentation stuff.

It’s really cool to edit the text files on all of my devices, synchronize them fast through various internet services and create HTML, PDF or even DOCX files out of this sources.

Until last week i converted the markdown sources with pandoc and pasted the html code to the different pages, where i need them. So i copy and paste it to IBM Connections, Evernote or WordPress. On WordPress i use a plugin now to render the markdown textes, but for IBM Connections i didn’t found a way.

So why not using the IBM Connections API to post html, or even convert the file on the fly and put the html automatically?

Posting to IBM Connections Blogs with Python

You can read a lot on the IBM Connections API in the [official documentation](http://www-10.lotus.com/ldd/lcwiki.nsf/xpAPIViewer.xsp?lookupName=IBM Connections 5.0 API Documentation#action=openDocument&res_title=IBM_Connections_API_overview_ic50&content=apicontent), i’m not a developer so i need normally practical examples to use this.

How to connect to IBM Connections REST API with Python?

First we need the URL to connect to the Blogs API:

url = 'https://greenhouse.lotus.com/blogs/stoeps/api/entries'

In this case “stoeps” is the blog handle, the blog where i want to add my post. You find the blog handle when you open the blog through your browser and check the url:

getBlogHandle

Now we need to authenticate, Connections API can be used with basic authentication, so we create a base64 encoded string of username and password:

import base64
encodedstring = base64.encodestring('christoph.stoettner@stoeps.de'+":"+'myCoolPassword')[:1]
auth = "Basic %s" % encodedstring

To post we have to use a XML File or XML String, which contains a title and body of our post, the REST service needs a Content-type of application/atom+xml:

xml = '''<?xml version="1.0" encoding="UTF-8"?>
      <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:snx="http://www.ibm.com/xmlns/prod/sn">
        <title type="text">That's the title</title>
        <content type="html"><![CDATA[<p>and some text for the body.</p>]]></content>
      </entry>'''

Now let’s connect to the REST service with urllib2 and post the xml string.

import urllib2
request = urllib2.Request( url )
request.add_data( xml ) # add_data changes Method to POST
request.add_header( 'Content-type', 'application/atom+xml' )
request.add_header( 'Authorization', auth )

response = urllib2.urlopen( request )

# let's check return code
if response.code = 201:
    print 'Post successfully created'

Some more

We have seen that we can post a xml with title and body. There are more possible ways to get a html string for our post.

I changed the xml variable to fill two variables with title and body.

postTitle = 'A cool API post to blogs'
postBody = '''<p>This is the body of our Blogs post, we can use html tags here</p>
              <h2>Fill text to show more content</h2>
              <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In commodo posuere ante, ut faucibus enim sagittis ut. Fusce scelerisque arcu quis mattis fringilla. Pellentesque a est enim. Nam congue sem eget augue porttitor semper. Fusce luctus sit amet ligula sit amet viverra. Cras pulvinar arcu eget velit volutpat, in condimentum nunc luctus. Vivamus vestibulum ante et nisl venenatis consequat. Aliquam ut augue nec lectus sodales eleifend eleifend nec orci.</p>'''
xml = '''<?xml version="1.0" encoding="UTF-8"?>
          <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:snx="http://www.ibm.com/xmlns/prod/sn">
            <title type="text">' + postTitle + '</title>
            <content type="html"><![CDATA[' + postBody + ']]></content>
          </entry>'''

You see you can add html code to the variable postBody. You can read from a html file with:

postBody = open('post.html').read()

Or you can convert a markdown file to html:

import markdown2
markdownFile = 'post.md'
postBody = markdown2.markdown_path( markdownFile )

In my script here i added a function to read the first line of the markdown to set it as title and i added a function to find images integrated in the article, upload them to stoeps/api/media and replace the img src= tag.

So this post is completely written in markdown and i posted it through python to Greenhouse. Here is the link to the post.

IBM Connections 5.0 CR3 is available – new feature

Julius Schwarzweller wrote a blog post with a collection of links to CR3 for IBM Connections 5.0 this week. A official update document with new features is missing.

I installed it today (without CCM) and the first new feature i found is “sharing folders” with Communities:

22-07-_2015_21-57-33

As shown in the screenshot only public folders can be added to community files widget.

From files application you can still share a folder with people, groups and communities (but then the folder will be public available too):

22-07-_2015_22-12-05