Pages

Showing posts with label rest. Show all posts
Showing posts with label rest. Show all posts

Friday, May 18, 2012

New Widgets Available for IBM Connections Communities

View Comments
The past few weeks I've been heads down focusing on the IBM Connections Suite launch so there a couple of things that I've wanted to announce that have slipped. So let's catch up.

As you probably know, the best way to find extensions for IBM Connections is the app catalog. In the past few weeks, there's been tons of new things added to the catalog. So let me summarize:
  1. New IBM Connections Portlets - The new 3.0.1.1 portlets for IBM Connections includes community pages which you can use to quickly associate a portal page with an IBM Connections community. When you do that, the page is automatically scoped to the community membership. Addittionally, you can now integrate with the Portal Search center. Stay tuned for a demo of this to be published soon!
  2. Talkwheel widget for IBM Connections Communities - Talkwheel is a visual discussion platform that brands can embed anywhere, uniting and allowing your Facebook fans to talk to users on your IBM Connections page. To learn more and get the widget click here and check out the demo below.


  3. Community File Usage Quota - This is a Greasemonkey script which allows you to see how much disk space is being used by community files. To get this, click here.
  4. Enhanced Email Notification Template, Polls, User self-registration, @-mentions, and other add-ons - An IBMer from Australia has published a paper and a downloadeable asset which explains how to create certain modules for Connections such as a polling engine, a user self-registration module, and how to use the APIs to do what you want.
  5. IBM Social Widgets for IBM Connections - Last but not least, a set of 8 new widgets, count them, 8 new widgets for IBM Connections Communities. These widgets are: Assets (show people and subject areas to which

    • Assets - show a table of assets stored in IBM Connections Files application
    • Community Contact - show people and a subject areas to which they are associated
    • Community Leaders - show the leaders of your community
    • Community Photos - store photos related to a community
    • Events - create community events and invite people, view your events in a calendar
    • Announcements - post announcements for the community
    • Review - join others in the community in reviewing a subject
    • Videos - post videos (including from YouTube) relevant to your community


    So those community managers looking to add some more spice to their communities, definitely check out these widgets which add a lot of features to your current communities. To download these new widgets, click here.

I also shared some of this as we recorded this week's episode of This Week in Lotus yesterday and discussed the new IBM Connections Suite. Stay tuned for that episode.

Friday, April 20, 2012

How To Develop Apps for IBM Connections

View Comments

The last few weeks, especially after SXSW, have been crazy with partners and ISVs reaching out to me asking how to get started developing apps for IBM Connections. I've probably repeated the same information enough times now that it warrants a blog entry.


First, for all things social business development, the start page is here: http://www.ibm.com/developerworks/social/ . There you will find information on how to create apps either for our on-premises product or cloud-based product.

If you are looking to develop for our on-premises product, you can provision yourself an instance of IBM Connections which will run in our cloud. That way you can develop your app and you don't have to worry about installing Connections from the ground up. In just a few minutes, you'll have your own development environment up and going. The direct link to the instructions to provision the cloud instance of Connections (or direct link here: http://www-10.lotus.com/ldd/appdevwiki.nsf/dx/IBM_Collaboration_QuickStart_for_Social_Business_sbt ).

If you are looking to add your app as an widget (e.g. similar to how gamification was added to IBM Connections), then you'll want to look at the widget development guide for IBM Connections which is here: http://www-10.lotus.com/ldd/lcwiki.nsf/dx/development-guide

Now, if you are like me, you like to learn by example. So if that's the case, take a peek at this very simple widget made up of two files (this one and this one). It's built using pure HTML/Dojo, but you can use any technology you want as long as it ultimately creates HTML.

Next, to deploy this into Connections, I followed the instructions here: http://www-10.lotus.com/ldd/lcwiki.nsf/dx/Adding_custom_widgets_to_Communities_ic301 . Basically, what you do is edit the widgets-config.xml file and add this:

<widgetDef defId="TwitterSearch" url="http://blog.lbenitez.com/widgets/TwitterSearch/twitterSearchWidget.xml" modes="view edit" primaryWidget="false" iconUrl="http://www.twitter.com/favicon.ico" uniqueInstance="true" />

      

and restart Connections. Then you can just edit the XML and JS files independently without restarting Connections. Also, note that your widget can be hosted somewhere else. It doesn't have to be installed on the Connections server.

Finally, if you want to leverage the Connections API to retrieve data, add data, modify, or whatever, here's the full API (there's an API for pretty much everything). And again, if you like example code, here's a good set of example code on how to make calls from our API using whatever technology you want: http://www.ibm.com/developerworks/lotus/library/connections-social-authoring/

Enjoy! (and show me what you create!)

Tuesday, July 21, 2009

I'll be at the Portal Conference... as a speaker!

View Comments

Today, I got a note telling me that I've been selected as one of the speakers for this year's Portal Conference in San Diego. The conference takes place October 12-15 and it will be my first time in San Diego. If there are any San Diegoans (not sure if that's how you say it, but I think that's how "they" said it in Anchorman) out there, I would love to get a couple of recommendations as to what to do.

So what will I be talking about? Well, I'm actually going to partner with my colleague David Rosenfeld and our session is titled: Making the Right Connections: Value, Methods & Best Practices for integrating Lotus Connections 2.5 and WebSphere Portal 6.1. Here's a preview of the session abstract:

This session will first look at the incredible value of teaming Lotus Connections and WebSphere Portal. We will follow with the various out-of-box technologies for integrating LC and WP, including portlets, iWidgets, REST calls, files access and integrated search. We will discuss what IS and IS NOT available, some best practices, and what is planned for the future. Finally we will look at ways to customize the integration, using Portlet Factory, and other development tools.

If you haven't yet, sign up and register for the Portal Conference today! See ya there!

Friday, May 15, 2009

Oh Yeah! Update Your Lotus Connections Status From Ping.FM

View Comments

Twitter drives innovation...

If you are actively using social networks, you've probably heard of ping.fm. Ping.fm allows users to update their status in the following services from any of the following clients:

From: To:
  • Skype
  • SMS
  • E-mail
  • AOL Instant Messenger
  • Yahoo Messenger
  • MSN Messenger
  • GTalk
  • etc
  • Twitter
  • Facebook
  • LinkedIn
  • Identi.ca
  • Flickr
  • FriendFeed
  • etc...

So from a single place you can update all of your statuses. And you can do this from different places. You are NOT forced to go to ping.fm's website to update your status. Ping.fm can receive status updates from various sources and then send them to your sites.

Pretty cool, huh? Well, I saw a tweet suggesting that updating your Lotus Connections status from ping.fm would be valuable too. Wouldn't it be cool if we could update Lotus Connections status from SMS, Skype, AOL, and other !?! I agreed and took the challenge upon myself.

The code gets done...

The code was actually pretty simple to code up and test (~3 hrs). So how did I do this? Here's the flow:

  1. Configured Ping.fm to add a custom URL (i.e. http://my.ip.address:8080/PingFMLotusConn/ping.fm)
  2. From any ping.fm client, I send a status update
  3. Ping.fm sends an HTTP POST request to the above URL (I had to open a port in my firewall for this to work)
  4. My custom web application, in turn, uses the Lotus Connections Atom API to update my status

I tested this and it works like a charm!! That's right.. you can now microblog in Lotus Connections from ping.fm!

Open questions / challenges...

Before releasing the code, I still have one challenge that I have to address. Since ping.fm will send the status update request in behalf of the user, ping.fm needs access to the URL defined above. Therefore, a customer would have to put it in the DMZ or poke a hole in their FW for this to work. The challenge, however, is how do I know the user who's posting the message since ping.fm doesn't send any user information. The ping.fm API is not very detailed and basically they only give me a message, but nothing else.

Let's secure it!

I thought of asking people to hardcode their credentials in the URL, for example: http://my.ip.address:8080/PingFMLotusConn/ping.fm?username=...&password=... (instead of:http://my.ip.address:8080/PingFMLotusConn/ping.fm). However, this is not very secure because you are giving your credentials to ping.fm AND ping.fm would transmit those over the wire in clear text.

My thought right now is to create a Trust Association Interceptor (i.e. lazy man's SSO). This would require that the user include their email address only, not their password, as part of the URL. This has a security hole because anybody could then assume someone else's identity. For example, I can give ping.fm this URL and update Mac Guidera's status: http://my.ip.address:8080/PingFMLotusConn/ping.fm?username=mac_guidera@us.ibm.com. Not very secure.

So I'm thinking that I need to create a widget on the Profiles page that gets deployed by Lotus Connections Admins. This widget would generate a user specific URL (e.g. http://my.ip.address:8080/PingFMLotusConn/ping.fm?authToken=...) where authToken is an encrypted token that uniquely identifies the user (that way users can't assume the identity of others).

If you've read this far... thoughts ?

Tuesday, May 5, 2009

Merging Social Networks: Not a Hard Task Anymore!

View Comments

Last week, I developed a Java tool to merge the social networks from internal research projects (e.g. BlueTwit, Beehive, and Fringe) into Lotus Connections using the Colleagues RESTful API. Credit goes mostly to Ansgar Schmidt for the idea and for the Fringe/BlueTwit code!.

Based on initial feedback, users love it and they are saving a LOT of time. What used to take hours, now only takes minutes. As a side benefit, it has helped people discover the new Lotus Connections v2.5. So tons of benefits all around!

One concern is the amount of email this tool generates. For each person you invite in Lotus Connections, an email is sent out to the invitee. That's good because if they weren't aware of the company's Enterprise 2.0 efforts, now they would be. Now based on the viral adoption that I saw inside IBM (over 100 downloads in the first 4.5 hrs) for this tool, this tool also has the potential to generate a lot of emails.

Anyway, this has caused a debate within IBM. How should invites work in a social network? And, specifically to Lotus Connections, do others really have to accept your invitation before you can add them to "your network" ? How should this work in internal social networks? I was talking to a colleague earlier today about this and we agreed that there are two types of networks:

  1. Your colleagues - People I Know and work with them on a frequent basis
  2. Following - People I Follow because I want to stay up to date on their activities and learn from them.

The first group could should be automatically determined by Atlas. Atlas always knows and keeps track of who you are actively working with. There shouldn't be any formal process to make someone your colleague. They just are and the system knows it.

The second group is asymmetric follow (a la Twitter). In this model I can follow someone but they don't have to approve my request (unless they have disabled public access of their timeline). In this case, I can add someone to my network and an email invite wouldn't have to be sent (unless configured by an admin or end-user in Connections).

Anyway, if you have any thoughts on how to improve the invite model for social networks, let me know. I also asked the question in Twitter so I'll be consolidating responses as we go along.

Also, question to non-IBMers. Would you like to use this tool to merge your own social networks into Lotus Connections? For example, bring in your LinkedIn, Facebook, Twitter networks into Lotus Connections ? Would love to hear some feedback on this.

photo credit: psd

Thursday, September 25, 2008

Using Lotus Connections from a Ruby Web App

View Comments

200809251003.jpg Continuing to demonstrate how easy it is to consume Lotus Connections content from other applications, the Top Story today at developerWorks is an article that explains how to build a Ruby on Rails (RoR) web application that consumes Lotus Connections content via the REST API.

The article, written by one of IBM's Portlet Factory architects (Thomas Beauvais), is very clear and concise. It walks you step-by-step on how to create a Ruby web application and configure it to use to use data retrieved via the REST APIs instead of a database. Thomas explains the code needed to call the Dogear REST APIs to get a person's bookmarks and tag cloud. To my surprise, there's very little code needed to get this going!

One of the things that I like about it is that it's a great tutorial for Ruby beginners (like myself) on how to create a Ruby web application. After reading the article, I feel like I can build any type of Ruby application. Hopefully, I'll get a chance to work on this with one of my customers!

Ready to read more? Check out the article here. And don't forget about the article that I co-authored which explains how to use Portlet Factory to create a portlet that consume Dogear via the REST APIs.

P.S. Is it just me or does the title open itself to a bad interpretation ?

Thursday, July 31, 2008

Lotus Connections RedWiki Residency starts

View Comments

This past Monday (yes, I know I'm late, but Monday was a holiday and I took Friday off too) the remote Lotus Connections Customization RedWiki was officially kicked off with a call at 7:30am EDT(to accommodate our international team).

According to the ITSO team, this has been the most popular residency so far, in terms of applicants. A residency had never had so many applicants in so little time before. I believe this goes to show the great interest and passion out there for Lotus Connections. And that feels good!

Here's a snapshot of the introductory note:


The goal of this ITSO project is to create entries in the current online Lotus Connections Wiki that will enable customers and business partners to allow Lotus Connections and 3rd party applications (including IBM and Lotus apps) to interface. We have come up with a list of ideas on how that can be done and you have signed up for working on these. We will finalize that list during a conference call in the first week.

An interesting and unusual aspect of this project is that your work will take place on a live wiki that everyone in the world can view and even edit. (Since people must log in to view and edit, we will have change tracking by ID available, and the wiki has rollback capability.) The project sponsors and I feel that this aspect nicely captures the beauty of a wiki atmosphere, where the world can watch information being created, collected, and stored and even help out as appropriate.

Core team members:

  • Mike Ebbers - ITSO Project Leader, New York
  • Dean Jesson - IT Specialist, Germany
  • Jun Liu - Atlas for Lotus Connections Team Lead, China
  • Torsten Hoffman - IT Specialist Web 2.0 & Social Software, Germany
  • Shu Sia Lukito - Sr. IT Specialis, Maryland
  • Sergio Imperial - IT Specialist, Portugal
  • Marcus Smith - IT Specialist, Illinois
  • Amit Kumar - IT Specialist, India
  • Zhou Lin Dai - Software Engineer, China
  • Jamie O'Leary - Lotus Connections Home page developer, Ireland
  • Chirag Barhate - Software Engineer, India

Key Lotus Sponsors / Stakeholders:

  • Jennifer Heins - Lotus Technical Content Strategist and Architect, Cambridge
  • Sal Mazzotta - Lotus Applications Architect, Cambridge
  • Luis Benitez - Consulting Social Software Specialist, Puerto Rico (but you should know this)
  • Suzanne Minassian - Lotus Connections Product Manager, Boston
  • Jack Downing - Information Architect (Lotus Sametime & Lotus Symphony), Cambridge
  • Mac Guidera - Tech Lead for Lotus Greenhouse, Orlando

Let's get going! Oh and in case you are wondering... yes, we are using Lotus Connections Activities to manage this project.

Tuesday, July 29, 2008

Wednesday, July 16, 2008

Giving the tools to millenials and letting them innovate

View Comments

Today, I spent the whole day at Bank of New York, one of our public references for Lotus Connections. They have partnered with CMU and have interns during the summer whose sole responsibility is to bring Web2.0 capabilities into their existing products. By leveraging Lotus Connections and other Lotus products, they are building new mashups to help Bank of NY employees collaborate more effectively. Of course, I can't go onto too much detail as to what they are doing.

My job was to teach these millenials the basics of Eclipse plugin and REST API development. After introducing the REST concepts, I talked about the Lotus Connections APIs and the different approaches to use them. Basically, since REST is pretty much XML over HTTP, you can pretty use our APIs from anywhere.

So the first example was to create an Eclipse plug-in that fetches data from Lotus Connections using the Abdera Atom Client. The cool thing about an Eclipse plug-in is that, well, you can plug it in into any Eclipse-based application such as Lotus Notes, Lotus Sametime, Lotus Expeditor, Rational Application Developer, etc, etc.

I also talked about WebSphere Portlet Factory and how they could use that to develop portlets. And not only JSR-168 portlets that run on a portal, but also portlets that can be run on Lotus Notes 8! They were really excited to see how they could develop rich client capabilities by writing 0 lines of Java code!!

Now their goal is to innovate and present back to the business side at the end of the summer what they've come up with. I'm extremely proud of this customer because instead of forcing interns to do A,B,C, they are letting their minds run wild and create new mashups that perhaps the business side wouldn' have thought of. I'm very anxious to see what they come up with by the end of the summer!