Graphical aid for generating object setup scripts (patent pending)

I joined IBM as an information developer intern (co-op) in June of 2005.  Dell Burner, my team lead, was working on a project with our visual designer and user experience engineer to create a quick start visual for setting up WebSphere MQ for use with Q replication. Q replication is a database replication technology that is extremely high performing due to its architecture and infrastructure. The integral piece of making Q replication out perform standard SQL-based replication is that it pushes its instructions over WebSphere MQ message queues.

WebSphere MQ administrators are a whole different audience than DB2 database administrators.  These two different products are like night and day. DB2 database administrators typically don’t know anything about WebSphere MQ and also are not likely allowed to touch the WebSphere MQ configurations.

Q replication was facing a major customer pain point when it came to configuring WebSphere MQ. The DBAs were not skilled in the technologies needed to implement it. In most shops, there were communication and procedural barriers to getting the environment configured. In most cases, the best case scenario for getting just the WebSphere MQ portion of the environment configured was a minimum of 1-2 days. If the DBAs were working in a z/OS shop, that time frame could be even longer.

Of course a best case scenario means all parties involved are well versed in their requirements and can communicate those from DBA to WebSphere MQ admin.

In an effort to ease the learning curve of Q replication, Dell Burner, Daina Pupons-Wickham, Kevin Lau, and Michael Mao undertook an effort to create a diagram based document and supporting instructions for assisting DBAs to create their setup scripts that they would ask the WebSphere MQ admins to run. Continue reading

Greasemonkey script for Lotus Connections dynamic drop-down menus

Install this script from userscripts.org: IBM Lotus Connections Drop-down menus

IBM’s Lotus Connections software is an enterprise social software application that consolidates a lot of collaboration and information sharing within the enterprise to a single location. We use Lotus Connections quite extensively within IBM and it has been an amazing improvement over many of our previous tools and methods for project, team, and professional collaboration.

The recently announced Lotus Connections 2.5 features communities, blogs, wikis, file sharing, social bookmarking, activitiesprofiles, and a customizable dashboard.  I can tell you that I use every single one of those features on a daily basis and its been a great step forward in so many ways. Knowledge is being better shared across our enterprise and it can be found more easily. Projects and teams can stay organized and on track. To-dos can be assigned and tracked.

While my overall satisfaction with the product is quite high, one small design issue bugs me. Thankfully, Lotus Connections is a web application that I can use the Greasemonkey addon for Firefox to alter aspects of the design.  I often find myself having to switch between sections in Lotus Connections–On a wiki page and need browse to a wiki section within a community.  The default design has a top bar menu with only top-most navigation items:

lotus_connections-top-menu-default

Getting around Lotus Connections sometimes requires clicking through multiple unnecessary pages.  I decided to add drop-down menus to each menu item to reduce the number of clicks to get around. I eventually discovered the ATOM feeds for each Lotus Connections area and determined I could add links for specific areas such as a list of all your communities or a list of all files that have been shared with you (had to blur out the actual files in the screenshot):

lotus_connections-top-menu-files_submenu

Overall, this script helps improve an already awesome application a bit more.  I’m hoping to convince the Lotus Connections teams to implement some kind of navigation that either matches this experience or something similar for being able to more quickly navigate to specific items in your network.

Using this script

You can use this script on http://ibm.com/communities, which is an IBM implementation of Lotus Connections 2.5. You can also customize the locations that this Greasemonkey script runs to include your own installations. For example, if you want it to run against http://mybusiness.com/connections/* you would include that location:

lotus_connections_manage_scripts

If you are an IBM employee, you can find an internal version of this script for use with our own internal deployments. Check my internal Connections Blog by searching for Greasemonkey.

Improving navigation for IBM’s My developerWorks with Greasemonkey

I recently released a version of my Lotus Connections greasemonkey script for adding dynamic drop-down menus for use with IBM’s myDeveloperWorks. You can download this script from userscripts.org: IBM My developerWorks drop-down menus

Improvements to myDeveloperWorks

MyDeveloperWorks is awesome but sometimes navigating between sections gets annoying if you are someone that constantly uses this site. Jumping between Blogs to your Groups could involve multiple page loads and clicks by default. This script can help eliminate that unnecessary browsing by adding drop-down menus to the site’s existing menu.

Default menu on myDeveloperWorks

Default menu on myDeveloperWorks

When you install this script, it will add some standard drop-down menus and it will also load your specific items such as your groups, bookmarks, and activities.

Showing dynamic and customized drop-down menus that are added by this script

Showing dynamic and customized drop-down menus that are added by this script

Script details

Interested in the code?  This Greasemonkey script uses jQuery 1.2.3 to perform most of its work. jQuery makes creating Greasemonkey scripts amazingly easy to work with the Document Object Model (DOM) as well as adding fancy effects and performing Ajax calls.

jQuery is mostly focused on the user of selectors to uniquely identify content in a similar manner to CSS selectors.  This selector behavior is awesome for greasemonkey scripts because you cannot always easily parse a site’s HTML with standard Javascript and the code becomes extremely complex.  jQuery allows you spend your time on improving the user experience rather than deal with the plumbing.