Usability - Productivity - Business - The web - Singapore & Twins

By Date: January 2006

On dates, time and time zones

Lotus Notes calendaring is fully aware of time zones. It allows to enter and view appointments in different time zones. So it seems to be the solution for a small planet. If there weren't users like me . I'm juggling time zones every day - for remote and online activities: phone calls, sametimes, instant messages and skype. However for physical events I switch back to "no time zone mode". So it is "We meet online 1pm your time/8pm my time" and "We meet 7pm at the gym".
When I was planning my Lotusphere attendance I was in "no time zone mode", since it is obvious WHERE the sessions will be (at least from a time zone perspective). When I switched my gadgets (Laptop, PDA) to Orlando time, I had some "Session is starting" wake-up call pretty much 11h 10min instead of 10min before. So obvious from a users (that's me) perspective, there is a time, that is neutral to the time zone. E.g. lunch is at 2pm, whatever time zone that might be. Would a check box "Don't change time on time-zone change" in the calendar help? I'm not so sure, since calendaring is already complex enough. What a petty, that Swatch beat never took off (At least they could fix their unusable design).

Posted by on 24 January 2006 | Comments (0) | categories: Software

BOF101 - IBM Lotus Domino as a File System -- SourceForge/OpenNTF as Lotus Domino WebDAV

It was my turn. The Sandpiper room in the Swan hotel 5:45pm - I was nervous like an actor before his very first curtain. I arrived 5:20 and already 20 people were waiting to hear what I had to say. At 5:30 we were 30+ so I started the session. Since the BoF rooms didn't provide audio visual equipment I didn't bore the attendees with yet another powerpoint. I used the flip chart and my favourite very fat markers. First I walked them thought the rational of what we tried to achieve:
a) Provide round-trip editing capabilities for web based attachments
b) Let file oriented workers see Notes documents (not just attachments) through the file system
c) Provide report capabilities against Notes documents and views
After that I explained the extensions webDAV incorporates compared to standard http and what you are in for when you want to mix browser access and webDAV. (In short: unless you use our webdav:// protocol you are in for a lot of support calls since users tend to mix up click - for opening read only and right click/open with for read write operation.
It seems that the webdavhelper tool was of some interest too.
All in all I was quite happy about the turnout and the interactivity of the session. So goal for next year: upgrade myself from BoF to full session.
In case you have no idea what I'm talking about in this post: head over to SourceForge and check it out.

What I liked:
Good questions from the audience and a nice confirmation, that we do something interesting.

What I didn't like:
Domino WebDAV is not as finished as I wish, so there is a lot of work to catch up.  

Posted by on 24 January 2006 | Comments (2) | categories: Lotusphere

AD215 - Advanced Coding Techniques for IBM Lotus Domino in J2EE

Bob Balaban walked us through the perils of coding Java locally and remote against a Domino server. In essence he reminded us, that there is no silver bullet or magic bean. When deciding how to code one must establish metrics for the task at hand to find the fastest solution. One lesson learned: obtaining a local session is very time consuming compared to keep a remote session open. However if your operation is long, that might not matter.
Bob raised hope, that he might release his famous session manager as OpenSource.

What I liked:
Bob's presentation style is a ingenious blend of deep technical understanding with a dry humor. He makes his points crystal clear.

What I didn't like:
The insight, that I know less than I wished for

Posted by on 24 January 2006 | Comments (1) | categories: Lotusphere

BP303 - Big-Time Tips and Tricks for Your IBM Domino Web Applications: The Great Code Giveaway!

Rob and Victor from SNAPS demonstrated gold nuggets of tools to solve common problems. Their selection criteria:
- must solve a real problem
- must be usable in a different context than the original purpose
- must have been developed already
- must not be for sale

The first tool was a all Java Image resizing application done as a pure Java agent. Typical solutions require external tools and are platform dependent. The Java agent runs in R6++ and isn't dependent on anything else.

The second tool is a fix for the web native calendar views. Using CSS, XML and Ajax they fixed it with even the ability to show multiple calendars merged into one. The calendar takes care of timezones and pulls the time zone from the $preferences.nsf. All updates are done in memory, so no refresh is needed.

The third tool is a Sametime Bot, that changes its online status when new relevant content is added. So instead of bombarding you with an email or an instant message, the bot simply goes online. This is a very subtle way to notify a user of availability new content.

Before the forth tool was shown Rob teased it as the "Next level of Domino development". What they showed was nothing less than editable views for the web. A pretty complete solution for web views. Rob took us down to the memory lane how views evolved on the web up to today before he presented the final solution. They separated views data and presentation and added a drop in enhancement capabilities for any ordinary Domino developer. The functionality is incredible feature rich, so go check it out.

What I liked:
Real world code I can put to use. Pretty good walk through focusing on the real relevant pieces of code.

What I didn't like:
Can't think of anything here, other than I'd like to have more more more . Very cool session!

Posted by on 24 January 2006 | Comments (3) | categories: Lotusphere

AD306 - Advanced Techniques with IBM Workplace Designer

After Sunday's introduction session into the Workplace Designer I got more curious, so AD306 won over AD219. IBM is pushing the JavaScript boundaries with Workplace Designer. JavaScript is both used on the client and the server to provide rich interaction. As mentioned before it falls short in terms of local (Ajax powered) interaction. However a quick glimse on 3.0 shows that that will be fixed then.
The JavaScript object model on the server is very rich. A context object provides JavaScript a wealth of information about the session, the user, the document and other context information. The presenters spend a good amount of time to explain where Workplace Designer is similar to the Domino Designer and where they differ. The learning curve for a Domino developer will be much smoother than going to J2EE.

What I liked:
Relative painless skill expansion for Domino developers (Lifelong learning anybody?)

What I didn't like:
Painful to build Ajax enabled applications, so a lot of page refreshes. I'm not sure if going all JavaScript is that great. The quality of the debugger will show

Posted by on 24 January 2006 | Comments (0) | categories: Lotusphere

AD204 - Power Programming: Examine and Manipulating IBM Lotus Domino Application Design

The session first walked through the build in classes that allow design element access to show what you can do and what you can't. Then they switched over to DXL and what you can do there. The first example was to export images files. In DXL binary files are Base64 encoded, so they used a NotesMimeEntry to create the byte stream. Then they showed how to change database properties that are read only in the object. This was followed by a demo of DXL round trip engineering. As an interesting note, the presenters preferred JDOM over the DOM implementation in Lotus Script.

What I liked:
Good practial tips.

What I didn't like:
I would like to see more code!

Posted by on 24 January 2006 | Comments (0) | categories: Lotusphere

A visit to the Lotus Usability lab

After Snapps excellent session I wandered a little around in the research and the meet the developers lab. There I was "lured" by IBM staff into the usability lab. I did a test drive of IBM's productivity tools. The tools are IBM's take on business applications like text, presentation, spreadsheets and projects. Based on OpenOffice the tools a good for the casual office users.
What intrigued me, was the attention the researchers paid to detail and the way I interacted with their tool. We discussed quite a number of features and hiccups on my way to create a presentation. The researcher ended up with a full page of notes. A nice experience -- half an hour of someone paying 100% attention to me

Posted by on 24 January 2006 | Comments (0) | categories: Lotusphere

BP314 - Web Services and IBM Lotus Domino 7 - How to be a good consumer

The SNAPPS team walked us through the highs and lows of Web services. Using a single source of web service from Domino 7 they showed a number of clients that consume this service. I was impressed. They started off with some online sites, that can be used to test webservices, continued with a Lotus Notes Client, a MS Word document, a portlet, a midlet in a mobile form and finally a Yahoo widget (the artist formerly known as Konfabulator).

What I liked:
Clear examples, good to understand, nice balanced view on what you can do and where the caveats are.

What I didn't like:
My list of things to learn just got longer

Posted by on 24 January 2006 | Comments (0) | categories: Lotusphere

CERT701 - Certification Prep session: 701 Application Development Update

Jason Collier of CertFX was walking an overflowing session room through the perils of the update exam. Most of the IT exams are a different beast to tame, than your day to day business. Jason managed to energize a tired crowd with his British style of humour and his tendency to poke fun on everybody including himself. I'm feeling much more confident, that I'll pass the exam on Wednesday, I signed up for since I got a free voucher. Of course I won't depend on my luck alone and spend time in the evening to go through the materials and the exam preparation software.

What I liked:
Comprehensive overview what the exam is all about, funny engaging presentation

What I didn't like:
Room to small, I had to sit outside

Posted by on 22 January 2006 | Comments (0) | categories: Lotusphere

JMP302 - Workplace Designer 101

IBM Workplace is coming of age. Version 2.6 released just a few days ago seems to be the first one suitable to do some real world application. At the core of Workplace designer is XML and JavaScript. To make the transition from existing Domino skills easier Workplace Designer provides a host of visual layout and @Formulas wrapped into JavaScript.

What I liked:
All data in Workplace Designer is defined in XML Schema. IBM did embrace this open standard instead of creating something proprietary. The biggest advantage there is, that you can reuse industry standard schemata and base your Workplace applications on them. Why does that matter? First it shortens the definition phase of your data format, since other people defined it for you. Secondly it makes your application more portable between platforms and customers.
Deployment in a development environment is pretty easy and quite fast. While e.g. MyEclipseIde offers a similar speed of deployment for J2EE Workplace designer also takes care of the database and updates loss free the table structure.

What I didn't like:
There is a strict separation between JavaScript that is running on the client and running on the server. In reality that means, that in a lot of cases you send back the whole page to refresh just a part of it. With all the buzz around Ajax for web applications, this looks a little backward. But there is always the next version.
Deployment into development is pretty manual, with the capability to loss free updating the database.

As usual YMMV.

Posted by on 22 January 2006 | Comments (0) | categories: Lotusphere

BDD403 - Integrating IBM Workplace forms with ... the rest of the pack

IBM last year acquired Pureedge, and their xForms application. It now is called IBM Workplace forms. Being build on an open standard workplace forms looks like Domino on steroids. On steroids not so much in terms of programmability, but in terms of data structure. Workplace forms have XML schemata as their data model and thus support hierarchical structured data. Data that would require multiple parent child relations when build in a RDBMS.
What is so special about that: Using xForms and open schemata (like UBL -- see previous ports) you can build form processes that transient your corporate boundaries. Using XML Signature and Encryption a business document can travel between all parties involved with the relevant sections being protected against alteration. This is a clear departure from the redundancy free mental model towards a process and document centric view of business processes. To add to the confusion: Workplace Forms and Workplace Designer seem to have some overlap. The biggest differentiator: Workplace Forms don't require Workplace to run, so they can "travel".

What I liked:
It's great to see IBM embracing forms based on W3C's open standards

What I didn't like:
The integration scenario with Domino was kind of blurry and there seems some internal competition between Workplace and Workplace forms  

Posted by on 21 January 2006 | Comments (0) | categories: Lotusphere

Fun at Tokyo's airport

What do you do on an airport when you have a few hours to kill? No shopping is not the answer. It's reading email, surfing, updating the Blog. Here they have little desk areas with sockets, so laptop users gather there. I got to chat to a lady sitting next to me. It is planet earth as I like it: A German living in Singapore talking in Japan to a Taiwanese both on their way to the USA. I helped her to get through the login (unfortunately wireless is not free at the airport) and we talked about software. She was using Internet Explorer, so I quickly showed her Firefox with tabbed browsing and the skinnable UI. She decided on the spot to migrate. Oddly enough Mozilla.com suggested to download a French Firefox version rather than the traditional Chinese version more appropriate for a Taiwanese windows. The mystery resolved when she exclaimed quite puzzled: "How do they know that I'm learning French right now?"
One more happy Firefox camper.

Update: Not so fun. My flight just has been delayed from 5:30pm to 9:30pm. I will have 60 minutes in New York to clear immigration and catch my connecting flight to Orlando. That will be interesting, given the list of visas in my passport: China, Vietnam and a host of Islamic countries: Indonesia, Malaysia, Brunei, Pakistan and best of all - Iran.

Update 2: Immigration clearance was a snap. I watched the officer carefully flipping though my passport. He had a look at the Chinese entry and the Indonesian but flipped over the Iranian. Pfehwwww.

Posted by on 20 January 2006 | Comments (1) | categories: OpenSource

The Development Of Vitality

No one can force you into transformation.
No force in the universe can change you
Without your personal consent.
No force, nothing.
So you have a lot of choices to make.
You have a lot of consent to grant.
You have a lot of fears that need to be relaxed.
You have a lot of suffering that needs to be disregarded.
You have a lot of anger,
A lot of hatred,
It is nothing but a burden to you.
It requires your dropping in,
Your willingness to let go,
To take a chance,
To trust.
These choices are all that stand between you
And the Rimpoche consciouness... ...
Consciousness to be in a precious place,
As wonderful as a dream.

Shantam Dheeraj (in Where does the World come from)

Posted by on 20 January 2006 | Comments (0) | categories: After hours

Tell me how many stars there are...

The headline is the beginning of an old children's song (crudely translated to English). When looking at my favourite IDE, Eclipse it aren't stars I count but plug-ins. It seems that my old hunting-gathering instinct breaks through when it comes to plug-ins. Most of the plug-ins come with an update URL, so updating is fairly easy. My only "local" plug-ins are: fatjar, checklipse and eclipseme (eclipseme has an URL but the site currently seems to have problems). My other plug-ins are listed below. I'll talk about them from time to time.
If you have been bitten by the Ajax bug, have a close look at "InterAKT Online" They provide a free JavaScript editor, that recognizes your own objects and their methods. It also features an extensive JavaScript help facility.

My Eclipse Update URL parade:
Plugin Location
DomEclipse http://www.domiclipse.com/update/site.xml
Oxygen XML http://www.oxygenxml.com/InstData/Eclipse/site.xml
Improve C# http://www.improve-technologies.com/alpha/updates/site.xml
xtremeJ http://www.xtremej.com/updates/
Eclipse J2ME http://www.eclipseme.org/updates/
Flow4J http://flow4jeclipse.sf.net/update
CCT C/C++ http://update.eclipse.org/tools/cdt/releases/new
Mevenide http://mevenide.codehaus.org/release/eclipse/update/site.xml
Subversion http://subclipse.tigris.org/update
Log4E http://log4e.jayefem.de/update
Eclipse Goodies http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-ui-home/updates
Sunshade Tools http://sunshade.sourceforge.net/update
IBM Alphaworks ETTK Update Site http://awwebx04.alphaworks.ibm.com/ettktechnologies/updates
Eclipse Colorer http://colorer.sf.net/eclipsecolorer/
Koders.com http://www.koders.com/Special/Plugins/Eclipse/Update/site.xml
Objectweb OPS Studio http://www.orbeon.com/download/oxf/studio-update/
Eclipse Batik http://www.dlsc.com/updates
Eclipse Extended Presentation http://andrei.gmxhome.de/eclipse/
Bycycle Aestetic Programming http://priki.org/svn/byecycle/trunk/updatesite/site.xml
Ruby Development Tools http://rubyeclipse.sf.net/updatesite
Eclipse XUL http://eclipsexul.sourceforge.net/update-site
Eclipse Updates http://update.eclipse.org/updates/3.1
WSMO Studio http://www.wsmostudio.org/updates
Mimo Logfile viewer http://www.mimo.ch/update
Design Patterns PlugIn http://ernie.icslab.agh.edu.pl/~shogun/iosr/site/eclipse
eBOB Object Workbench http://ebob.sourceforge.net/update
Quick RegEx http://www.bastian-bergerhoff.com/eclipse/features
InterAKT Online http://www.interaktonline.com/
EMF/SDO/XSD Secondary Update Site http://download.eclipse.org/tools/emf/updates/
UML2 Update Site http://download.eclipse.org/tools/uml2/updates/
Logfile tools update site http://www.mimo.ch/update
Visual Editor update site http://update.eclipse.org/tools/ve/updates/1.0/
Eclipse.org update site http://update.eclipse.org/updates/3.0
Andrei Loskutov plugins site http://andrei.gmxhome.de/eclipse/
Oxygen Discovery site http://www.oxygenxml.com/InstData/Eclipse/
Subclipse update site http://subclipse.tigris.org/update_1.0.x
InterAKT Online http://www.interaktonline.com/
Eclipse Colorer site http://colorer.sf.net/

Posted by on 18 January 2006 | Comments (0) | categories: OpenSource

From command lines and URLs

The line between URLs and fileshares are blurring. In any browser you type file:/// to open a file. In Konqueror you type smb:// to address a windows share and most file open dialogues allow to specify a file location starting with http://. However there are subtle differences. Unless your web server supports the webDAV protocol chances are high, that the files will be read only. MS Exchange and MS Sharepoint both use webDAV (This might be the reason why it is depreciated in Exchange 12 - you love to rewrite your apps anyway).
A big headache still remains. When clicking on a link in the browser, the document behind will be downloaded to temp and then opened. Even if you could write it back, your Office application wouldn't know where to write it to. So the drill for e.g. Sharepoint users is: "Right Click - Open With". You can count the support call logs......
I'm working on a strategy to solve that. A tiny helper application webDAVhelper.exe will "listen" to webdav:// URLs, look for the application matching the file extension and then call this one with http:// on the command line. so the URL webdav://myserver/files/BigFatCalculation.xls translates to excel.exe http://myserver/files/BigFatCalculation.xls.
Works like a charm... almost.
In fact we are using the command line and hope that an URL would work. So far it looks promising: OpenOffice and Microsoft Office master opening the files very well. Microsoft Office even issues a webDAV lock to hold on to the file. Paintshop Pro 8, Winzip 9SR1, Acrobat 6 all fail to take an URL on the command line, they only allow to specify it in the File - Open dialogue. I will investigate a little more. Nevertheless it is quite strange, that reading the file from the command line has been implemented differently from using File - Open.
In case you are interested in the little tool, drop me a note.  

Posted by on 17 January 2006 | Comments (0) | categories: Software

Fixing a Notes database

When upgrading a server or moving datbases I like to apply a little hygiene to my notes databases. So you can find a little cmd file in the notes data directory, that fixes what needs to be fixed:

nfixup -L -F -Y %1
ncompact -D -c -i -n -v -ZU %1
nupdall -R %1
nupdall -X %1

Running the script with the server down has the advantage, thay you can fix the address book as well. On R8.5 you want to have CREATE_R85_DATABASES=1 in the notes.ini. The only disadvantage: you need to type the password 4 times (unless your server doesn't need one). If you don't have a password, you could add:
net start "domino (lotusnotesdata)" <-- be sure to check your services for your settings!
at the end of the script and it would relaunch your server after it has run. YMMV.

Update: There is a Linux version too.
Update 2: There is a Mac version too

Update 3: for R9.0.1FP8 onwards you want to use ncompact -D -c -i -n -v -ZU -nifnsf -LargeSummary %1

Posted by on 16 January 2006 | Comments (4) | categories: IBM Notes Lotus Notes

7 steps to p**s off a consultant

Step 1: Create a project with an incredible tight deadline and hire him as a subcontractor
Step 2: make sure access to internal resources is limited below agreed threshold
Step 3: let him re-engineer an application with hidden gems of bad engineering
Step 4: ask him to work weekends and public holidays clocking in >100h in 8 days
Step 5: don't communicate management decisions in time  
Step 6: tell him that the customer likes the code he creates
Step 7: tell him, that you won't compensate for extra effort

But maybe I wake up, Friday the 13th is gone and everything is a bad dream.  

Posted by on 12 January 2006 | Comments (1) | categories: Business

The contractors dilemma

I'm doing a lot of reviewing/re-engineering of Notes applications lately. I made a number of interesting observations how applications are done here in the region. Most of them were developed by developers placed into the customers environment by contracting companies or professional service firms. Once the developer is with the client they face an interesting dilemma: The client pays only for hours on the job to the contracting company. So they want their employee to stay on the job as much as possible; training gets cut short. The client doesn't consider the contract staff to be part of the firm, so no training there either. I met a number of developers who didn't get any training for 5 years, not even off days to go for their own training. While senior developers can stomach that and learn on their own, junior people will have a hard time getting the experience when they are placed into an environment where they don't have access to experienced developers The experienced ones are more expensive (nobody looks into efficiency), so quite often a bunch of newbies end up on site cut off from the experts.
As a result a lot of the code I saw was full of hacks. Hacks of someone desperately trying to figure out some something works, not hacks of someone who exactly knows what he was doing. And a lot of the code is rather fragile and won't survive an extension. Of course you could ague: a developer should take personal responsibility if not pride in the delivered results. However from the work slave's contract staff's perspective it looks different: Why should (s)he care if no one cares for him/her? On top of that: once the application is completed, (s)he moves on to the next project and so hardly face the need to maintain they system (s)he has build before, so why write maintainable code?
Here Notes and Domino are cursed. Since you can get something going very fast and Domino is rather forgiving with whatever you do, you end up with a lot of messy code. And then people say "Notes sucks". I would say: "Not training your staff sucks". I think IBM has to play some catch up to make better Notes training en vogue again.
And for code quality this is my advice: "Write your code as if the one who has to maintain it is a maniac with a gun who knows you address." (I would like to attribute that quote correctly, but I can't find the source where I did read it)

Update: I met some of my ex-colleagues from my Deutsche Bank Singapore days, who are all working for professional service firms. This little rant made the round very fast. They unisono confirmed, that they haven't seen any training for years. Luckily some of them remember the days we worked together, so they know that better quality is more fun to do.

Posted by on 10 January 2006 | Comments (3) | categories: IBM Notes Lotus Notes

Hotels in Singapore

When you stay in Singapore, both as a resident or a visitor hotels are an integrated part of daily live. While it is obvious for visitors, it is also true for residents. A lot of training and sales events happen there. Also it is quite common to meet in a hotel lobby or the restaurant for a business meeting. My weekly meeting of my Rotary club is in a hotel (the Regent) too. Hotels also offer weekend deals for Singaporeans who want to escape the life in their HDB flat for a while. Have you ever booked a room for yourself in the city you live? So it is no surprise, that we have a lot of them. The bigger chains (Marriott, Hilton etc.) are world class and not really local - you could easily take the building and put it into any other city without noticing it. Our local flagship is the Raffles Hotel. This is a truly local one with a very authentic colonial building. In its long bar the famous Singapore Sling was invented (only 2 get served per person, since you are supposed to still walk by yourself). Unfortunately also the prices are world class too and you can spend USD 2000 or more a night for the best suites in the house. If that is a little above your budget but you would like to stay in an authentic place you can look for boutique hotels. My favourite is Perak Hotel in the middle of Little India and close to the city core. Their rates start as US 55++ and you have a very private atmosphere. The Hotel has been converted from an old shop house, so you stay will be as authentic as it can get here. So when you stop by here, give them a try (unless you want to stay on our guest mattress to experience a HDB sleep over <vbg>).
Did I mention, that their booking page is powered by Domino? <g>.

Posted by on 07 January 2006 | Comments (2) | categories: Singapore

New Years Resolutions

I'm not a person of big plans, so I usually resent making New Years Resolutions. However it seems to me I could try to be "a man with a plan" for a change. So this is what I came up with:  
  • Shield my boys from the rigor of our education system by reaffirming the notion, that learning is fun and an adventure.  
  • Going on a Holiday (hadn't had one since I started TAO Consulting) with the family.  
  • A dance class with the best of my wifes (Don't tell her it is a surprise)  
  • Shedding some pounds and do more sport (getting below 88 kg)
  • Restart my Chinese lessons  
  • Get my PMP certification from PMI  
  • Learn a new language (Ruby and Fabric are the main contenders)  
  • Restart the Lotus User Community in Singapore  
  • Work on some exiting and well paid projects
  • Have at least one release each of my SourceForge projects

... and thousand things more.  

Posted by on 02 January 2006 | Comments (3) | categories: After hours