<< November 2007 | Home | January 2008 >>

2007 in review

On the last days of the year, and the first ones of the new one, it is common to look backwards and try to judge how one did and look forwards towards the new year. Personally 2007 has been a busy year with lots of changes and personal achievements. All in all it's been a great year. 2008 is also shaping up nicely and I'm confidant that it's gonna be a great year as well. Below are my take on 2007.

Lotusphere 2007

There should be no doubt that my speaking slot at Lotusphere 2007 was one of the personal highs of 2007. It had been a long time ambition and IMHO it went great. Although it was scary to be the one that had to start speaking once the music stopped it was a great experience and when I read the feedback it was all worth it. Thanks to those who submitted all the positive feedback. Lotusphere 2007 ended with another high when lekkimworld.com was highlighted at the closing session with my Notes 8 - SUPER.HUMAN software? post.

After Lotusphere 2007 I had a nice vacation in New York with my girlfriend. A very nice, although very cold, week in the Big Apple. The vacation ended with another high when my big brother and his girlfriend had their first child - a charming and super-cute boy. We were still in New York when my brother called and delivered the happy news. The birth date means that the annual Lotusphere vacation will be before Lotusphere in years to come so I can be home on my Godsons birthday.

The start of March meant skiing in Austria with friends - a nice break from the job. Although the skiing wasn't so great in general it was still a nice vacation and so nice off-piste skiing...

LotusScript.doc

April meant starting on version 2 of LotusScript.doc. It's a complete rewrite from the ground up in Java. It is almost done and I only lack writing some of the comment parsing (not as much as it sounds like). I really wanted it to be done for Lotusphere 2008 but it's probably not going to happen since I'm spending a lot of time on a company product which needs to be demoed at Lotusphere 2008. I'm trying to get it done though - maybe just for a limited release. The new release fixes most of the present limitations and makes it a framework that should be usable when Domino Designer is released for Eclipse.

Summer meant starting to rebuild the apartment to a two-story apartment by adding an additional 80 square meters (approx. 860 square feet) from the old attic. The rebuilding is still work-in-progress but we're getting there and we hope to be done Q12008. Although it's gonna be nice it also meant managing a full time job, a girlfriend, exercising and rebuilding the apartment. Maybe a little much at one time. It meant that I decided to cancel my yearly trip to the mountains where I normally go and ride my bike. It was a tough decision but the right one I think. Looking back I cannot see how I would have managed otherwise.

Come August I was *very* honored to be included in the IBM AppDev Design Partner Program for Notes/Domino NMFR (next major feature release). Nathan puts it nicely - being on regular conference calls with all the stars from Lotus and so many brilliant people from the Lotus blogosphere is really inspiring. It means I'm even more committed to Lotus and means that I'm investing even more in the Lotus brand. I don't really think that's possible but I want to... :-)

Oh - if you think that the partners and customers on these calls are sucking up to IBM you're wrong! People respect each other but also has no problem "telling truth to power". I try to keep my mouth shut but it's difficult... ;-) I'm also happy to say that the conversations we have had online and offline has already had significant impacts on NMFR. They're definitely listening!

Winds of change

In October another big change occurred. I stopped being self-employed and joined IntraVision ApS a Notes/Domino shop here in Denmark. You probably already know of IntraVision from "our" Ontime calendar suite of tools and/or from "us" winning a Lotus Award in the "Best Messaging and Collaboration Solution" category at Lotusphere 2007.

Technology-wise IntraVision is on the cutting edge and deals with a both a larger customer base and larger installations. Joining IntraVision was a difficult move but I think it has been the right one for my career. It means that I have more options and work with a broader set of Lotus technologies. I'm currently on a Lotus Connections project and I enjoy it very much.

Not being self-employed has been a big challenge, something that I'm still struggling with and something I have to get used to but I think it has been worth it. When I see what's on the horizon now I'm feeling more and more confidant that it was the right move.

THE VIEW

2007 was a busy year in my relation to THE VIEW. I had an article published on Sametime Connect 7.5 and building a service for provisioning lotus.domino.Session objects to plug-ins to overcome classloading issues. The article discuss an approach very much like the NotesPlatform class of Notes 8. I have also writte two additional articles that will be out in the new year. One is a shorter piece for THE VIEW 2008 Technical Supplement and the other is a regular article. Both are on the business card/UserInfo sub-system of the Sametime 7.5/8.0 server. The articles explains the different components of the business card/UserInfo system, how to configure it, mix-and-match blackboxes, troubleshoot it and how to write your own blackbox implementations to get data from custom systems.

2008 - it's going to be a great year!

2008 is shaping up to be a great year. In January 6 of us from IntraVision is going to Lotusphere. We have a stall on the showcase so I probably need to spend some time there which is going to be a big change from recent years. Although talking to customers isn't my strongest side and what I enjoy most I'm probably not going to be able to talk myself out of it. Sadly I do not have a speaking slot this year but hey - that's life! I'm set at taking a stab at it again for Lotusphere 2009.

When I look towards 2008 one thing is clear - you're gonna need to know Eclipse to do the cool stuff!! I still think that the lack of Java adoption is the Achilles' heel of IBM.

Work-wise I'm looking forward to spending much more time in the Eclipse IDE. IMHO I'm already doing some exciting stuff in Eclipse and we're going to be showcasing exciting news at Lotusphere.

Conclusion

So that's 2007. Looking back it was a great year and things are shaping up nicely for 2008. I'm looking forward to seeing all of you at Lotusphere in 3 weeks and most important of all...

HAPPY NEW YEAR!

PlanetLotus.org

That's a lot of Lotus related material! --> PlanetLotus.org

I'm on holiday... :-)

I'm now on holiday and I wont be back in the office until 3 January 2008. How nice is that! I really feel I need a couple of days off. The last 3 months after my switch to IntraVision has been eventful and even more full with work. A couple of days of will do me good I think.

When I'm back in the office I'm only there for 8 days before leaving for Orlando.

Happy holidays to you all... :-)

Lotus Connections Profiles - using JavaScript to translate data for TDI

I have been working with Lotus Connections lately and wanted to share a tidbit of code for the profiles database population step.

During the population of the profiles database from Domino LDAP using TDI (Tivoli Directory Integrator) I needed to translate country names to the matching ISO country code as this is what is used in Lotus Connections. To do this you can write a Javascript function in profiles_functions.js and map it in map_dbrepos_from_source.properties. The documentation on this is very lacking but through some trial-and-error and with a little help from Mac i cracked it.

Below is the function I wrote (with only a few countries) to show how to write the function which isn't apparent at all. The error output from TDI simply indicates a "parse error" if your Javascript is wrong for whatever reason.

I hope this can save someone some time...

The tricks:

  • Define "fieldname" as a parameter to the function. I don't use it but at least one parameter is required.
  • Use the available "work" variable to get data from the backend LDAP directory using the getAttribute method.
  • Use the available "system" variable to create a new attribute to replace the one we find.
  • Return the constructed attribute to have it show up in the profiles database.
  • The Javascript is actually accessing Java objects in the backend. Keep this in mind when comparing Strings - remember to use String.equals!

map_dbrepos_from_source.properties

PROF_ISO_COUNTRY_CODE={func_xlate_country}
profiles_functions.js
function func_xlate_country(fieldname) {
  // init arrays for translation
  var iso_codes = new Array("DK", "IE", "DE");
  var iso_ctry = new Array("Denmark", "Ireland", "Germany");
  
  // get attribute
  var ctry = work.getAttribute("c");
  if (null != c) {
    // get value from attribute
    var val = ctry.getValue(0);
    
    // loop array
    for (var i=0; i<iso_ctry.length; i++) {
      // match country name from attribute against current 
      // array position
      if (val.equalsIgnoreCase(iso_ctry[i])) {
        // found one - create new attribute to hold 
        // our translated value and set it
        ctry = system.newAttribute("c");
        ctry.addValue(iso_codes[i].toLowerCase());
      }
    }
  }
  
  // return attribute to TDI
  return ctry;
}

Lotusphere 2008: BALD

If you're going to Lotusphere 2008, and

  • you're blogging,
  • or want to be but aren't yet,
  • or are at the hotel early,
  • or don't have anything else to do on Saturday before Lotusphere
be sure to stop by the Big River Brewery (on the boardwalk) on Saturday at 3.30PM for the annual BALD (Blogger Annual Lotusphere Dinner). And for the record - it isn't as much a dinner as just an excuse for drinking beer...

Article draft of to THE VIEW

Just shot of an e-mail with a draft of my next article for THE VIEW. The working title is "Into the blackbox - a tour of the Sametime Business Card system" and will discuss and describe the business card system, a.k.a. UserInfo, of Sametime and how to configure, mix and match blackboxes and how to write your own blackbox implementations. The article is a little less development focused than I'm used to but I still managed to sneak in some Java code... ;-)

No word yet on when it's gonna be out but I'm guessing the March/April 2008 issue.

Sametime 7.5.1 install on Domino with custom data directory

Hmmm... Installing Sametime 7.5.1 on Domino 7.0.3 still exhibits the previously discussed behavior with a little twist (directories still created but no files are copied to them). The install still works though.

Sametime 8 article

Get up to speed on Sametime 8 Entry, Standard, Advanced, Unyte and "Unified Telephony": The IBM Lotus Sametime V8 family: Extending the IBM unified communications and collaboration strategy

Discovering Notes 8: More default browser woes?

As blogged previously there are more than one way to set the default browser for your Notes 8 Standard installation. For some reason the preferences didn't take effect on my Microsoft Vista install so web links continued to open in IE much to my dismay. I finally found the solution to the issue with a little help from the trusted Notes 8 forum on developerWorks. Below is an excerpt from the solution.

"Hit windows button (start button), select "Default programs", "Set program access and computer defaults". Expand the "Custom" section, and set Firefox as default web browser and Lotus Notes as default e-mail program. If you reopen it, it will seem like your changes was not saved, but apparently they are."

Thanks to Stein Sebak for posting the solution.

New Sametime 8.0 Toolkit

The Sametime 8 SDK ships with a new toolkit called the Helper toolkit. The following is from the Sametime 8 SDK overview (Sametime_SDK_Overview.pdf).

"The Sametime Helper Toolkit is an API that provides an external interface to basic functionality of the Lotus Sametime Client. The Sametime Helper Toolkit is not intended to directly extend the capabilities of the Sametime Client. This toolkit differs from other Sametime client toolkits by providing an external interface to basic functionality exposed in the locally running desktop Lotus Sametime Client application. Applications that integrate the Sametime Helper API are essentially able to proxy the functionality of the locally running Sametime Client (Managing contacts, Starting chats, Alert notifications)."

Highlights of the Sametime Helper Toolkit
The Sametime Helper Toolkit exposes the following basic functionality of the Sametime Client:

  • Contact Management, Query, and Notification
  • Chat session initiation
  • Instant Share initiation

Deprecations
Be sure to review the API_Changes.txt file in the client/connect/doc directory of the SDK for changes in the public API.

YellowSphere

"Have you ever find out that you spent 3 days in something that could be done in 3 hours? Or maybe you just missunderstood some part of the documentation? Well, this space is created to avoid that. The main goal is to have a repository or Configurations, Workarounds and Technotes of the Lotus and WebSphere brands but from the user side. Documentation is the base, experience is the key."

YelloSphere

Procedural vs. OO in Notes/Domino Java

In a comment to my "Is the lack of Java adoption *still* the Achilles' heel of IBM?" post, Charles Ross has an interesting comment (emphasis *not* mine).

"I tend to learn by stealing and modifying/refactoring code. This is one kind of reuse. Most of the Java examples you find in the Lotus venues (LDD, Notes help, Sandbox, magazines etc) are not object oriented - not even structured. You can actually find more Lotuscript object oriented samples than Java ones. And at least in LS, the use of Subroutines is common practice in the Lotus templates. That's good stuff to steal.

That lack of Domino Java source examples is a sore point. One OO thing I worked with was I mapped the Headfirst design patterns Ducks classes (Strategy pattern example) into a Notes Library and agent. Not quite coding, but educational.

So what we need is some nice Domino application classes to steal, basically."

Something to think about... Maybe it's because code in Java is so convoluted and hard to read due to the way the program flow may not be obvious that it's easier to post Java snippets than full "programs". Maybe this means that the posted code doesn't lend itself to easy "stealing". Hmm...

Tags : ,

TDI 6.1 FP1 installation

I'm installing Lotus Connections 1.0.2 and during the installation I ran into an issue when upgrading Tivoli Directory Integrator 6.1 to fix pack 1. I was unable to upgrade the installation due to a locale issue. Fortunately there was a technote that explained how to solve the issue: IO07295: TIM IDI UPGRADE LOCALE PROBLEM

New screenshot tool in Sametime 8

Adam Gartenberg shows how the screenshot tool in Sametime 8 Standard can be used outside of an active chat. What have been a bit disappointing so far was the lack of additional annotations once the image had been captured (see my previously post called "A bit disappointed with Sametime 7.5.1 screen capture annotations").

So what I'm really excited about is that Adam came through for me/us. The tool now supports more annotation tools than simply freehand drawing. Now the tool supports annotations such as drawing shapes, arrows and setting the color. See the top of the two last screenshots in Adams post.

Localized versions of Notes 8 standard

For customers using languages other than English, French German or Japanese. A MUI install is necessary to get support for other languages. For more see the following post on Ed Brills blog (includes link to actual technote). For those speaking Spanish please read the comments on Eds blog as it could be that Spanish will be added to the mix.

Notes Client Multilingual User Interface (MUI) functionality changes for Notes 8.x

Tags : ,