Search

Mobile tag

About Me

I am the "IBM Collaboration & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.
Reach out to me via:
Follow notessensei on Twitter
(posts)
Skype
Sametime
IBM
Facebook
LinkedIn
XING
Amazon Store
Amazon Kindle

Twitter

Domino Upgrade

VersionSupport end
5.0
6.0
6.5
7.0
Upgrade to 8.5x now!
(see the full Lotus lifcyle) To make your upgrade a success use the Upgrade Cheat Sheet.
Contemplating to replace Notes? You have to read this! (also available on Slideshare)

Languages

Other languages on request.

Visitors

Useful Tools

Get Firefox
Use OpenDNS
The support for Windows XP is coming to an end and has . Time to consider an alternative to move on. sounds like a lot of time, but, like an object in a mirror, it is closer than you think.

25/05/2009

Java ClassLoader fun with getResource()

Category
DXLMagic will have a Java UI. To be flexible I store my UI definitions inside the JAR file and load them at runtime. I learned a few lessons in the process:
  • When you use Class.getResource() inside a static method of a class you won't get access to any of the resources in the JAR. You need to have a normal instance of a class.
  • Instantiating an object inside a static method doesn't help either.
  • Class.getResources("*") doesn't return anything even if you have valid resources in the JAR. So wildcards either don't work or work very different.
  • It really pays off to change the editor preferences in Eclipse to nag more about coding style and potential code problems
  • Crap4J and PMT are your friends, as are Coverclipse
  • Debugging in fun in Eclipse unless you only have one smallish monitor
As usual: YMMV.

25/05/2009

Solving (Math) Problems

Category
Over the weekend Anthony and I tried to figure out why his latest Math test results didn't match his grasp of Mathematics (nice way to say: he did badly and had a lot of "slips of the pen"). He loves to jump right into the calculation skipping the "Due diligence" part. So we came up with a mind map to outline the steps he needs to take. It turns out, that this map serves as a general guideline to problem solving (admitting high level). Here you go:
8 Steps to solve a math problem
Update: Forgot one rule (thanks to Steve Pridemore): Don't do mental math at 1am

24/05/2009

On the hunt for the perfect travel backback

Category
I travel a lot. When I travel there is mostly a flight and one or more overnight stays involved. So far I was using a Tumi backpack, which served me well. After 10 years of service it is showing its age and I'm looking to retire it. Turns out the hunt for a replacement is far more difficult than I expected. I'm looking for the ultimate backpack for the frequent traveller. I thought my criteria are not uncommon:
  • Robust and torture resistant: I carry heavy loads and long distances (mostly running to gates to catch that flight) and don't need a strap coming off. It also shouldn't look -after a month of use- worn out like 19th century gold digger equipment.
  • Fit under an airline seat (which is kind of a contradiction to the amount of stuff I need to carry
  • Carry the corporate Lenovo T61 (no Macbook anytime soon) and its little brother
  • Well organized space for: 2 power supplies, 2 international adapters, various cables, business cards, phone, passport, wallet for second currency, tickets, external disks, iPod etc.
  • Carry a folder with reference materials (and the bill collection) and a book
  • Have space for shirt, underwear and toothbrush (many trips are overnight)
  • Umbrella -- best outside so it doesn't soak the stuff inside after use
  • Ability to be locked
  • Needs to offer service/warranty in Singapore (I can buy it anywhere)
  • I like black, but that's optional
  • Needs to be sold in a place I can have a look (means: any airport/city in AP). Singapore would be an advantage
Meet the contestants, the first two come from the luggage industry, the later a backback experts:
  • The incumbent brand sends its model Alpha T-pass Business Class Briefpack:
    Tumin Alpha
    Having a track record and an excellent customer service is clearly and advantage. Tumi is in the upper price quadrant.
  • Samsonite offers the Pro-DXL2 Laptop backpack
    Samsonite Pro-DXL2
    The Samsonite offers a dedicated garment compartment that even features a hanger for a jacket.
  • Booq sends in 2 models which I quite liked and examined yesterday: the BOA3M and the Phython XM:


    Problem with both of them: Since Booq has no luggage heritage they don't feature zips that can be locked. A big disadvantage for international travel.
  • Timbuk2 Patrol
    Timbuk2 Patrol
    The website states it is sold in Singapore, but I haven't found a shop yet.
  • Others (seen online, but haven't touched them yet): Spire Meta, Megalopolis Aero, Brain Bag and Wenger's Swiss Gear
On the hunt I came across a number of interesting looking messenger bags too. Should I challenge my assumption that a backpack is best for my needs? What's your take? Backpack yes/no and what model to pick?
Update (14 July 2009): A new contestant entered the race which looks like a good compromize:

Travelpro executive first backpack
. It features 9 externally accessibe compartments, 2 of them lockable, plenty of storage space and TravelPro's sturdy ballistic nylon. I already have one of their products and was quite happy, so I'll go with that for now.

21/05/2009

Using the IBM OneUI in your XPages applications - now with CSS class picker

Category
In his outstanding XPages tutorial Declan Lynch used IBM's OneUI for designing the layout and colors. This is very smart since it releaves you from thinking about all this and allows you to focus on the functionality. If you haven't worked through that tutorial, go there now and have a look. One thing Declan had a hard time with is to figure out what exactly the CSS classes are that the OneUI makes available - He did a great job here - (and then what to use where) since the CSS style picker doesn't show the classes available in the Themes, but only in the CSS you added to the page directly.
I thought that's not that nice and needs fixing. And here you go: Import the OneUIDummy.css into your database and add it to your pages. The file contains all classes used in the OneUI version on the Domino 8.5 server but no style definitions by its own. You now can pick the classes from the style picker and actually use the definitions in the server-side OneUI Theme. A little step for a developer and a big step for convenience. (You still need to learn what class to use where).
oneUICSS.gif
As usual: YMMV.

21/05/2009

XPages advanced challenges (at least for me)

Category
I pride myself with being able to help students quickly over their stumbling blocks. But is made me stumble:
Domino Designer for Eclipse Traditional Chinese
A good spatial memory and an aptitude for icons helps a lot. We are definitely having fun here.

20/05/2009

Help needed: copy Eclipse IResource from/to files using ANT

Category
In Eclipse 3.0 one big change was the transition from a physical file system to a virtual file system. Instead of Java File Eclipse is using IResource to access file systems. Of course using files still works. As far as I know the Eclipse ANT task is working on files not on IResources. I'm looking for a way to use Ant to copy from IResource to File and back. Could be a custom ANT task. If someone wants to write it (and contribute it back to the ANT contrib project) I'm willing to make a donation <g>. Ideally it would use the same syntax as the ANT copy task.
Update: It is done, not in a generic way but suitable for Domino Designer. One can download the Import/Export Plug-in for Domino Designer from OpenNTF. The plug-in has an ANT interface.

20/05/2009

XPages Workshop in Taipei

Category
The XPages workshop in Taipei is well under way. We have 32 participants at the IBM Education center happily coding away on Domino Designer 8.5. The joy of travel is to experience all the little cultural differences. Like the coffee bar:
What type of tea would you like?
Only one of the cans actually contains coffee. The other 3 (x2) cans offer you different sorts of tea freshly brewed. I like that much better than the tea bags you find in other locations. Maybe that's the reason why the class is so fully focused.
A full classroom of future XPages developers
There will be more workshops in Taiwan, Cory Ma knows the details.

20/05/2009

全体德国人是恐怖分子 - All Germans are Terrorists

Category
There has never been an international planned terrorist attack in Germany (we had our share of domestic terrorism). But now it became clear that Germany is housing 82 million terrorists, at least when you gauge it by the level of observation these 82 million are subjected to. See for yourself:

Du bist Terrorist (You are a Terrorist) English subtitles from lexela on Vimeo.

Via vowe

20/05/2009

I want one - 2009 Part 3

Category
This one:
Moto Guzzi Le Mans III
Actually: I had one when I was wearing a younger man's cloth. With the driving style in Singapore I don't see me on a motorbike any time soon.

19/05/2009

This morning @ NotesBench.org

Category  
NotesBench.org is the place where performance benchmarks for Lotus Domino servers are published. However this morning I was greeted in Japanese:
This
Which translates to: This is "notesbench.org".

We are ready, please wait.

19/05/2009

I want one - 2009 Part 2

Category
The designers run wild now that foldable or even textile displays are a not so distant possibility. Yanko design has a really nice one.
Mobile Internet Device

14/05/2009

How CRAPpy is your Java code?

Category
I do a lot of code review lately. LotusScript, JavaScript, Java etc. When I encounter code that is difficult to understand I'm usually met with the defence "But it is working". Funnily it is self-defeating. I never do code review (short of the we-have-fixed-it-now-have-a-look types) of code that works well. Asking us to do code happens because there are problems (I really would love to do a the-proud-code-parents-want-to-show-off-their-really-pretty-baby review once in a while). The typical problems are:
  • Poorly documented code
  • Lack of decomposition
  • Slow code (e.g. getNthDocument)
  • Lack of separation between user time and backend time
  • Lack of caching/object reuse (e.g. Connection pools, Profile Fields)
For LotusScript there is Teamstudio profiler. For Java you can use Crap4J. Crap4J is not a profiler but analyses your code complexity and coverage. Complex code translates into application risk. You get a nice benchmark and a detailed report on the individual methods, so you know how to fix it. Crap4j runs as an Eclipse plug-in. Go get it.

05/05/2009

Example of a sidebar helper

Category  
Once you work for/with an international community or organization time zone pain becomes immediately a pressing problem. In Firefox I use the FoxClocks plug-in. In Notes 8.x I just got a new alternative for the sidebar:
When is it now
It is an IBM internal plug-in named "When-is-it-now" that not only shows you the current time at your selected locations, but also indicates with a traffic light how likely it is to reach someone based on business hours. Nice touch. The brain decodes a color signal so much faster than the time mixed with the question "is this a business hour".

05/05/2009

SmartDraw

Category
I've been asked by various people what I use to create the diagrams and illustrations in my blog here. I am using SmartDraw. It makes it easy for people like me (who know what they want to show but lack graphical talent) to create stunning resonably good looking business graphics. Have a look at some samples, their tutorials or follow their blog. My only grieviance is, that they don't have a Mac or native Linux version (and it doesn't work with Wine either). The other graphical tools I use regularily are Shutter for screenshots and Buzan's iMindMap for mindmaps. While SmartDraw does mindmaps too, iMindMap draws that wonderful organic connectors - and runs on Mac/Linux too. Occasionaly I also use Dia, Inkscape or Gimp.

03/05/2009

Notes pattern : Inversion of logging

QuickImage Category
A typical requirement in applications is to keep a log of changes. The simplest form is to keep fields with the author and date/time of the latest change (which has the distinct disadvantage not knowing what has been changed by whom). The next level would be to keep the list of all authors and change times (still leaving the question "what unanswered) followed by very sophisticated tools like Audit Manager or similar home grown solutions.
All these solutions have in common, that they "merely" record changes made (typically in a query or post save event) after they happened (From a big picture perspective, a log on query-save is technically before, but after the trigger that will commit the change). While this works reasonable well for audit, adding another typical requirement calls for a different solution. More often than not the parts of a (workflow) document which can be altered by any given user change in the course of an [workflow] application. While Author fields protect a document at large, safeguarding individual fields becomes more tedious, especially when you can't group them in access controlled sections (e.g. in a web application).
In a related use case: documents could be updated by users, who have current information, but don't "own" the documents. Typically they send an email to the document owner (if that is visible) asking for the update of that information. Asking somebody to update data into some other system, that involves copy & paste from an eMail *is* a sign of a broken process. The solution to that seemingly contrary requirements: "update of certain fields" only and "update by anybody" can be solved using a pattern that I christianed "Inversion of Logging":
Instead of logging what has changed an application using this pattern creates a change request, stating what will be changed. This request is then processed by a central system and checked against system constraints. If an authorized user requests a change, the changes are applied without further user interaction. The change request is kept as record. If an unauthorized user requests a change a workflow is kicked of to determine if the request is suitable for approval to be then routed to the data owner (or data guardian) for approval. Once approved the changes are applied to the main document.
Flow of Inversion of Logging
To make this internal flow transparent and pleasant to the users a few considerations need to be made:

02/05/2009

Delivering Outstanding Presentations

Category
(Technical) professionals are caught in an interesting dilemma. We are asked to contribute to events, customer meeting or internal presentations because we know a lot about a topic. We are supposed to transfer this wealth of knowledge to our customers, audience and participants. We love to show [off] our knowledge. In lucky places like Lotusphere this works well. For everywhere else however human attention span, especially in a crowd, is severely limited. Ten minutes is all you got. One-Zero minutes. After 10 minutes the crowd moves on. If you are lucky - or smart - the crowd moves on to your next topic (like the Lotusphere speed geeking sessions <g>).
But where do that 10 minutes come from? The present moment is 3 seconds and attention spans are reported from 3-20 min. I picked the 10 minutes rule from the book Brain Rules after having seen it in a number of places. So if 10 minutes is all you got, how to fill the remaining 35-50 minutes your are given to present? The conclusion is simple: you have to deliver a new presentation every 10 minutes. That doesn't mean you have to pull a new slide deck out of your presentation software or start with your introduction. You just have to introduce a new tiger every 600 seconds (because that is what our brains are watching out for anyway - and they are not too far in my part of the world). Loaded with technical details and deep knowledge limiting ourself to 5 big ideas forms a nice challenge. The solution is to pack all the details into the umbrella of an idea. You need to tell your audience upfront what it is, so your audience doesn't get lost in the details (believe me *nobody* is interested in your setup screens or installation prompts, skip them). Just ask the preacher at [insert-favorite-place-of-worship] how a sermon gets delivered: "Who doesn't walk in the light of [insert-subject-of-worship-here] will go to hell. To hell you will go because [insert-long-list-of-misdeeds]. But there is hope, [insert-subject-of-worship] offers salvation... ". While you don't need to summon Angels and Demons to make your point you can learn from the structure:
  1. Summarize your statement
  2. Expand the problem challenge at hand
  3. Offer the solutions
  4. Expand the solution
  5. Tie back to your summary
The above structure is part of your presentation body. It is wrapped into an introduction in front as well as a preliminary conclusion Q & A session and final conclusion at the end. This is called a "classical" speech structure (anybody wants to claim presentations are not speeches?). One of the best investment you can make is LeeAundra Temescu's "The Contrary Public Speaker" eBook (also available as audio-book). Helped me to score high even deep in "enemy territory". As LeeAundra urges: keep your slide decks light. I second that and add: get ZEN inspiration and get extreme.

02/05/2009

Fixing a Notes database - Addressing Fragementation and a Linux edition

QuickImage Category
One popular entry in this blog is "Fixing a Notes database" Which provides a small MS-Windows command file to clean-up a notes database when your server or client isn't running. While it works very well, it has two caveats: For one on a MS-Windows system you might encounter severe fragmentation on your drive (thank NTFS for that), two it is MS-Windows only.
For the first problem you have three possible actions short of moving to an OS with less fragmentation problems for large files:
  1. use Windows build in Defrag
  2. use DominoDefrag on OpenNTF
  3. use Defrag.nsf from our Australian Business Partner Preemptive Consulting
I haven't used the later two (since they were not available when I left the MS-Windows camp). Both apparently use the Windows defrag API while defrag.nsf also does some clever things around size and index allocation (so they claim). I'll report on my experiences soon.

So where does that leave a Linux user? There is a lot of discussion around the need, or the lack thereof for Linux defragmentation, so I leave that to the individual reader. It isn't as easy on Linux, since you have a choice of file systems: EXT3/4, Raiser, JFS, XFS, ZFS etc. (I run JFS). However having that little script mentioned in the post above comes in handy, so here we go:
Notes Edition
/opt/ibm/lotus/notes/fixup -L -F -Y $1
/opt/ibm/lotus/notes/compact -D -c -i  -n -v -ZU $1
/opt/ibm/lotus/notes/updall -R $1
/opt/ibm/lotus/notes/updall -X $1
Domino Edition
/opt/ibm/lotus/domino/latest/fixup -L -F -Y $1
/opt/ibm/lotus/domino/latest/compact -D -c -i  -n -v -ZU $1
/opt/ibm/lotus/domino/latest/updall -R $1
/opt/ibm/lotus/domino/latest/updall -X $1
You might need to adjust the path to the executables if you have installed them elsewhere. Create a file in /usr/local/bin with the above content and make it executable (you don't need a file extension):
gksu gedit /usr/local/bin/fixnotesdb
sudo chmod +x /usr/local/bin/fixnotesdb

Make sure that your notes.ini contains CREATE_R85_DATABASES=1
As usual: YMMV.

Disclaimer

This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)
© 2003 - 2013 Stephan H. Wissel - some rights reserved as listed here: Creative Commons License
Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type. Code samples and code downloads on this site are, unless otherwise labeled, made available under an Apache 2.0 license. Other license models are available on written request and written confirmation.