wissel.net

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

By Date: October 2011

Moving a NSF from one server to another


I will never FTP a NSF
And no copying with Explorer or SSH either. Moving from one server to another is called replication. If it doesn't work as you expected you have a problem at hand that you need to fix that moment or it will bite you soon enough! (Picture courtesy of Bart Simpson Generator)

Posted by on 26 October 2011 | Comments (d) | categories: IBM Notes Lotus Notes

Upcoming XPages Training 2011


There are 68 days left in 2011 and quite some of them will be filled with XPages trainings and chat. Here is the current list of my public XPages sessions in case you want to join:
  • 7/8 November 2011, XPages class, Melbourne Australia (with Lotus beer 8th evening). Register with Geoff Cates (event full, still feel free to join for the LotusBeer)
  • 9 Nov 2011: available in Melbourne for 1:1 discussions (coordinate with Geoff Cates)
  • 10 Nov 2011: availabe in Canberra for 1:1 discussions (coordinate with Stuart Hickson)
  • 11 Nov 2011: available in Sydney for 1:1 discussions (coordinate with Stuart)
  • 24/25 November 2011, XPages class, Singapore. Register online
  • 01/02 15/16 December 2011, XPages class, Manila Philippines. Register online
  • n.n. Dec 2011, Shanghai, China. Register with Xu Gang
Given demand we probably can squeeze in one or two more locations, so pester ask nicely your local IBMer to organize a session.
See you there!

Posted by on 24 October 2011 | Comments (4) | categories: XPages

XML Helper class for XAgents


When rendering your own output in XPages agent style (a.k.a XAgents) you might want to render XML as output. While you easily can try String concatenations to get your output, you will very fast hit the wall once you deal with special characters and double byte. One way to render proper XML is building a DOM Document. This can get very memory intensive if you have a large output. The alternative is to use the SAX Parser as I recommended before. The only catch is that you have to take care of XML nesting yourself. Since I use that quite often I created a little helper class long ago, that makes XML output a snap. Here is a sample XAgent code:
var exCon = facesContext. getExternalContext ( ) ;
var response = exCon. getResponse ( ) ;
var out :javax. servlet. ServletOutputStream = response. getOutputStream ( ) ;
var d :biz. taoconsulting. xmltools. SimpleXMLDoc d = new biz. taoconsulting. xmltools. SimpleXMLDoc ( ) ;
d. setOut (out ) ;
// Top level
d. openTag ( "Demo" ) ;
// Inside Demo
d. addSimpleTag ( "Client" , "ACME Inc" ) ;
d. addSimpleTag ( "Location" , "RoadRunner Valley" ) ;
// And done
d. closeDocument ( ) ;
resulting in this XML send to the caller:
<?xml version="1.0" encoding="UTF-8"?>
<Demo>
  <Client>ACME Inc </Client>
  <Location>RoadRunner Valley </Location>
</Demo>
The helper class has methods for: Opening Tags, simple Tags, empty Tags, CDATA content and closing a specific number of tags. It supports DocTypes and a stylesheet instruction but currently no namespaces. Have fun with it.
As usual: YMMV

Posted by on 18 October 2011 | Comments (2) | categories: XPages

Documenting Validation in XPages


The last thing in a developer's mind is documentation since developers believe that hardly anyone reads it as long as nothing goes wrong or needs to be changed. What works comparable well is the generation of documentation out of code. JavaDoc, JSDoc and LSDoc are examples for such tools. They work well when the code has little external dependencies. When validating form submissions however documenting what field gets validated would be missing. I'm advocating to use validators rather than onSubmit code, since they allow to generate this documentation easily (at least when you wrap your head around XML and XSLT). Since an XPage or a custom control is XML we can use XSLT to generate documentation (how exactly the transformation could run is subject to a future post). You can end with a report like this:
Validator Documentation
The (not covering all types of validators yet) stylesheet looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
   xmlns:xp="http://www.ibm.com/xsp/core"
   exclude-result-prefixes="xd"
   version="1.0">
    <xd:doc scope="stylesheet">
        <xd:desc>
            <xd:p><xd:b>Created on: </xd:b> Oct 17, 2011 </xd:p>
            <xd:p><xd:b>Author: </xd:b> Stephan H. Wissel </xd:p>
        </xd:desc>
    </xd:doc>
   
    <xsl:output method="html" indent="yes"/>
    <xsl:param name="filename">XPage </xsl:param>
    <xsl:template match="/">
       
        <html>
            <head>
                <title>Validators for <xsl:value-of select="$filename"/></title>
                <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
            </head>
            <body>
               
                <h1>Validators for <xsl:value-of select="$filename"/></h1>
               
                <table>
                    <thead>
                        <tr>
                            <th>Control </th>
                            <th>Validator </th>
                            <th>Code </th>
                            <th>Message </th>
                        </tr>
                    </thead>
                    <tbody>
                        <xsl:apply-templates select="descendant::*[xp:this.validators]"></xsl:apply-templates>
                    </tbody>
                </table>          
            </body>
        </html>
    </xsl:template>

<xsl:template match="xp:this.validators">
    <xsl:variable name="rowspan" select="count(child::*)+1"></xsl:variable>
    <tr class="fieldname">
        <td  rowspan="{$rowspan}" class="fieldname"><xsl:value-of select="ancestor::*[1]/@id"/></td>
        <td class="fieldtype" colspan="3">
              <xsl:value-of select="name(ancestor::*[1])"/> -
            <xsl:value-of select="count(child::*)"/> validator(s)
        </td>
    </tr>
    <xsl:apply-templates />
</xsl:template>
   
    <xsl:template match="xp:validateRequired">
        <tr class="validator">
            <td class="validatortype">Required </td>
            <td class="validatorcode"></td>
            <td class="validatormessage"><xsl:value-of select="@message"/></td>
        </tr>
    </xsl:template>
   
    <xsl:template match="xp:validateExpression">
            <tr class="validator">
                <td class="validatortype">Expression </td>
                <td class="validatorcode"><xsl:value-of select="xp:this.expression"/></td>
                <td class="validatormessage"><xsl:value-of select="@message"/></td>
            </tr>
    </xsl:template>
   
    <xsl:template match="xp:validateLength">
        <tr class="validator">
            <td class="validatortype">Length </td>
            <td class="validatorcode">min: <xsl:value-of select="@minimum"/> max: <xsl:value-of select="@maximum"/></td>
            <td class="validatormessage"><xsl:value-of select="@message"/></td>
        </tr>
    </xsl:template>

    <!-- Catch validators we don't know exclude types as you add them above-->
    <xsl:template match="xp:this.validators/*[name(.) != 'xp:validateLength' and name(.) != 'xp:validateRequired' and name(.) != 'xp:validateExpression']">
        <tr class="validator">
            <td class="validatortype"><xsl:value-of select="name(.)"/></td>
            <td class="validatorcode">please check source code! </td>
            <td class="validatormessage"><xsl:value-of select="@message"/></td>
        </tr>
    </xsl:template>
   
</xsl:stylesheet>
As usual YMMV

Posted by on 17 October 2011 | Comments (0) | categories: XPages

How long does your Enterprise Social Data (needs to) live?


The Internet does not forget, neither does Facebook. Before the rise of the social Intranet corporate policies were easy: When an employee left, a copy of the eMail (database) was given to compliance and then all existence of the gone member purged: the PC reformatted, the mail deleted and (eventually) contributions made as part of a corporate role assigned to the successor (typically in an ECM or WCM). With social media it isn't that easy any more. There are a number of interesting questions to be asked and answered:
  • Should a user profile be kept as is (with the exit date added), deleted or reduced? The profile serves as the anchor for all the other entries, so a removal would result in a lot of "profile not found" errors. Eventually a reduction to: Name, time in corporation and last title/position and, if the employee agrees, destination makes most sense
  • What happens to the network relations? Are they invalid when an employee moves on, after all there are two ends to it?
  • Are status updates and their comments to be purged? Would comments made on my "wall" suddenly disappear when the commenter leaves? Would my comments disappear from other boards when I leave? This would "rewrite" corporate social history. Doesn't sound right to me
  • Would blog entries be purged? Suddenly all incoming links became invalid. Quite often blog entries are referenced in "check this out, it describes what you need" ways. That knowledge gets lost if purged. Same question arises for blog comments
  • For WIKI contributions the situation is even more complicated: what happens to entries entirely created by an leaving employee (delete them?), what with all the edits and what if they were the last changes made to a WIKI page, undo them?
  • For files there are several categories: files uploaded, but never shared, files uploaded and made public, with the subcases: "never downloaded" and "downloaded" and files shared with someone specific. Should files be purged unless someone takes ownership? How would such a ownership handover look like? What about files shared in Extranet (e.g. LotusLive) settings?
  • In communities I see the need for a "past members" section. When a user leaves the community (s)he can decide to be listed there, with the default to YES. The exit workflow needs to cater to ask the question
  • Activities don't seem too much of a problem since they expire once completed, still orphan entries need to be avoided, so some orderly handover is needed
  • How would one handle an employee coming back. This happens in IBM quite often. Sometime through an acquisition, sometimes through regular hire. Common practise today (in IBM) is to get the employee ID back. Should that hold true for relations, communities and other social data?
  • What is the right balance between keeping and purging? Purging leads to "corporate Alzheimer" while keeping costs money and effort and increases cost and risk for a legal discovery phase
All these need to be checked against national privacy laws, signed agreements (depending on country eventually driven by employee representatives like a union), compliance requirements, potential discovery cost etc. Interestingly for source code that question has been settled: you leave, your code stays. I see happy smiling lawyers at work.

Posted by on 16 October 2011 | Comments (3) | categories: Business

I'm an IBMer


When you ask someone what they do for a living, you typically get answers like " I am a [insert-profession-here] and work for [insert-company-name-here]". If the profession isn't clearly defined you might just get the company name or the industry (best one " I work in the F&B industry on high quality standard product delivery" for flipping burgers at one of the large chains --- common mis-perception that quality = uniform delivery without variance at work).
When you ask someone working for IBM, more often than not you get the answer " I'm an IBMer"
So what makes IBM so unique to get people to this level of identification (besides "IBMer" being way more catchy than Microsoftler, HPer, Googler, Forder etc)? Having worked most of my professional live independently (giving me the opportunity to peek into countless organisations) and just over 5 years for IBM, I came to the conclusion it is IBM's constitution. Since IBM isn't a country it is called IBM core values:
  1. Dedication to every client's success
  2. Innovation that matters, for our company and for the world
  3. Trust and personal responsibility in all relationships
They are phrased so Kant's Categorical Imperative would truly take pleasure in. Like every great constitution it is under constant threat being drowned in perceived daily necessities, fashions of the day and the hardship of sticking to the facts . So they need to be defended from time to time. IBM is as much a for profit business as nation states strive for hegemony (at least over their territory and subjects). Constitutions and core values form the checks and balances to that strive. So what do our core values mean to me:
  1. Dedication to every client's success
    Dedication requires passion. As the old Zen saying goes: "If you are a sweeper, sweep. Be the best true sweeper that can be". If you don't care what you do, you can't care for the outcome. Success comes in many forms and shapes. If I want to be dedicated to success, I need to be able to grasp it. In the easiest form it could be "Reach the stated criteria", but that wouldn't be dedication, it would be a mere correctly "making plan". Dedication mandates to go deeper, challenge and refine the criteria for true success and question if a stated outcome qualifies as success. For measurable outcomes it can be simple: "Reduce operational cost by x percent" or "Improve system response time by y percent". For broader goals measurements can be tricky: "Make the organisation more attractive for new hires" or "Improve collaboration". For me the elusive goals pose the more rewarding challenges. I like to get things right rather than hitting the correct number.
    A client's success isn't a closed deal (that's the seller's success), but a successful implementation and frictionless adoption is. Making the number doesn't qualify either.
    In practise that means that I won't shy back from challenging the validity of goals (as too optimistic, unrealistic, to cautious or not bold enough) or push back overly enthusiastic sellers, if the mismatch of product to be sold and desired success becomes obvious. This has earned me a repudiation as "no nonsense German" (memento bene: no-nonsense != no-fun). On the other hand I try to "hang the basket higher". Is there more that can be achieved? Can the solution be more flexible, more productive, more cost efficient? Can a game be changed?
  2. Innovation that matters, for our company and for the world
    Innovation is applied invention. Sometime the innovation is a first time application of inventions, sometimes it is a new combination of existing products and technologies. IBM is a treasure trove of inventions, second to none in patent applications and Nobel price winning employees. Keeping in touch with IBM research, our labs and customers lets me connect the dots. Contributing to conferences and presenting topics others didn't think of (like webDAV for Domino data, Sharepoint in XPages, PushReplication for Notes clients) I can offer innovation that can matter. I know the contributions aren't big (I don't have a solution for world hunger or conflict), but they can matter once they are in the open and can truly be seen. Stepping back and looking at a problem from a different angle is near and dear to me (something you learn in Germany's law schools). Ideas need breathing space, so I vent them whenever I can and listen to others venting theirs.
    On the other hand "Does it matter" is a good question to ask when proposing products and projects internally or to customers. What difference will an action make? It is the strongest contraception for blindly following the rules
  3. Trust and personal responsibility in all relationships
    There is a reason why IBM's products don't require online activation: Trust. Unlike other industries IBM doesn't carry the idea that customers are by default notorious infringers. That doesn't mean, that IBM doesn't care for compliance, just ask any company who "enjoyed" a compliance audit. Trust has clear advantages, e.g.: trusting employees allows for flexi-work (work anywhere), reducing office cost. But the value also states responsibility. Responsibility generates and limits trust. If one is responsible, (s)he can be trusted upon. Responsible evaluation of a situation will reveal the limits of trust. Trust works as the antidote for micro-management, while responsibility doesn't "leave a comrade behind". Again responsibility != no-fun. My colleagues can trust me, that I will be there when they need me, but not necessarily when they want me (and I'm not a nanny but a mentor). By default I trust other IBMers that they stand by their words (a trade IBMers share with Rotarians: trust by association). After all we drank the blue cool-aid during the Bluewash (a.k.a IBM corporate orientation training). For customers and partners I'm willing to spend effort to earn their trust within a responsible limit of course (pun fully intended)
I think these maxims of action can work for any organisation. Off I go, defending true values another day.

P.S.: In case you wonder about my use of true/right and correct you read this for enlightenment.

Posted by on 16 October 2011 | Comments (1) | categories: IBM

Single category views and tagging


Tagging is en vogue and its proponents see it as alternative to the classical folder approach. One alleged advantage of tagging is that you can have multiple tags but only one folder where a document is in. That's true for the file system and certain other mail applications but neither for Lotus Notes nor gMail. In gMail there is actual no differentiation between folders and labels (as they call the tags). What is new - and I like that a lot are better visualisations for folders/labels/tags: The infamous tag cloud and little labels in views and document denoting how it has been tagged.
In Domino showing documents with a certain tag is as easy as having a single category view with the tag field (that would be multi-value) as category. Not so fast. One of the really nice UI features of tagging is the ability to drill down: first show all documents that are tagged by one label, then by two etc. So our single category view needs to show all the combinations. So I gave it a first stab. This is what I came up with (note: the field name for the tags in "Tags" and they are space separated):
  1. @If (Tags= "";@Return ( "#no Tags" ); "" );
  2. trueTags := @Sort (Tags );
  3. results := "";
  4. tagCount := @Elements (trueTags );
  5. @For (n := 1;n < tagCount;n := n + 1;
  6. workElement := trueTags [n ];
  7. workTag := @Implode ( @Subset (trueTags;n ); " " );
  8. workList := @Subset (trueTags;n-tagCount );
  9. set1 := (workElement + " " ) *+ workList;
  10. set2 := (workTag + " " ) *+ workList;
  11. set3 := @Subset (trueTags;n ) *+ ( " "+ @implode (workList; " " ) );
  12. results := results : set1 : set2 : set3
  13. );
  14. @Trim ( @Unique (trueTags:results: @Implode (trueTags; " " ) ) );
You could sprinkle in some @Lowercase if that makes sense for you.
  • In line 1 I weed out untagged documents. Depending on the business requirements you might want to weed them out in the view selection formula, so you can skip line 1.
  • In line 2 the tag names get sorted, since that looks much better further on.
  • The loop from line 5 to 13 builds different combinations of tags (I wonder if I got them all covered).
    • Line 6 gets the current tag in the loop
    • line 7 the current tag plus as its ancestors as a single string
    • line 8 grabs the rest of the remaining elements
    • In line 9, 10 and 11 the two elements are then combined with each remaining element in the list (the *+)
    • and appended to the result in line 12
  • Line 14 adds the individual elements as well as the concatenation of all of them to the final result
Check it out if it works for you. Ideally the tag cloud would adjust too only showing the possible tags for the existing selection - but that's subject to an XPages post about the tag cloud.
As usual YMMV (waiting for the howling about 40k limits)

Posted by on 12 October 2011 | Comments (0) | categories: Show-N-Tell Thursday

Converting Notes Names into Internet Addresses


With IBM Connections en route to many Notes shops an interesting problem arose: Many users want to convert their private mailing list into an IBM Connections community (making IBM sales happy, since you need to upgrade to full Connections for that).
I think that is a terrific idea - moving away from occasional mail blast to a rich online collaboration. Unfortunately IBM connections allows the bulk upload of member information only using their Internet addresses, but not the Notes Names that are in the private group documents. The solution is simple:
Go to File - Pre ferences... - Toolbar Customize and add a new button. In this button add this formula:
result := "";
realresult := "";
@For (n := 1;n <= @Elements (Members );n := n + 1;
look := @Trim ( @NameLookup ( [Exhaustive ];Members [n ]; "InternetAddress" ) );
realresult := @Trim ( @Unique (realresult:look ) );
result := @Trim ( @Unique (result : @If (look= "";@Name ( [Abbreviate ];Members [n ] );look ) ) ) );

FIELD comment := @Implode (result;@NewLine );

@Prompt ( [Ok ]; "Members " + @Text ( @Elements (Members ) ); "Found " + @Text ( @Elements (realresult ) )+ " emails for "+ @Text ( @Elements (Members ) )+ " Notes Names" )
Now open your personal address book (a.k.a Contacts) and select a group in the group view. The button now looks up the internet addresses in the Domino directory for you. It will update the comment field, you you might want to adjust that to your needs. Use the button in the view, not when the document is open. If an eMail is not found (e.g. since it *is* an eMail already, the name will be copied 1:1 into the new list.
Update: When you want to save the list to a file to import them into Connections, you need to add 2 (two) empty lines on top. Otherwise it won't accept the import
As usual YMMV

Posted by on 12 October 2011 | Comments (2) | categories: Show-N-Tell Thursday

1000


On 1st January 2003 I converted my static mindmap homepage into a blog and published my first entry titled Predictions for 2003. I came a long way since then. This posts marks my 1000th entry here. Some entries, predating Twitter, are close to Twitter's 140 characters limit, so I could add my 4723 tweets to the list . The 1000 entries have attracted 1577 comments, with the first comment going to Singapore resident Ramasamy. The crown for most comments goes to Nathan Freeman of Lotus 911 fame with 31 comments. The post that attracted the most comments was Web Agents XPages style with 25 unique comments.
It also is one of the most popular posts together with Building a high performance Domino Server, Notes / Domino upgrade cheat sheet and Communicating with IBMers and Lotus professionals using Sametime.
I'm grateful for the ideas provided by all the sessions with customers, partners, colleagues, friends and brothers-in-arms. Without being challenged with (sometimes not so) new questions every day this blog would not have been possible. Today I can use it in many sessions as reference. During an upgrade I carelessly lost a few blog entries. Luckily the Internet never forgets and I was able to recover them. What is behind this blog:
  • The blog runs on Lotus Domino on a Ubuntu server using the Blogsphere Template V3 created by the awesome Declan Lynch
  • The skin is a modification of Dan Archibald "Orange Keys" design (can't remember where I got it from)
  • Search is provided by a custom Google search
  • Initially I used Julian's code hosted by Joe Litton to highlight LotusScript. Later I switched to Quick Highlighter since it supports all the languages I usually use including XML and XSLT
  • Screen shots are created with Shutter including the boxes, arrows, blurred text, numbers and occasional 3d rotation
  • Besides the Notes client I use Scribe Fire to create blog posts. This is very convenient when researching topics in the web
  • Some of the graphics were created using InkScape and DIA, but since I'm not much of an artist, I settled for SmartDraw that provided to be invaluable for the type of illustrations I want to create
  • The MindMaps are drawn using Tony Buzan's iMindMap mainly for the beautiful branches it allows to draw
  • The screen mockups are build with the awesom Balsamiq Mockups by our Italian friend Peldi
  • Graphic fine tuning (croping, resizing, filters) is done using GIMP
  • I started using Prezi for some more dynamic presentations / posts
Thank you for your readership!

Posted by on 11 October 2011 | Comments (a) | categories: After hours

Filing eMail doesn't make you more productive - really?


IBM research published an interesting study titled Am I wasting my time organizing email? A study of email refinding. It has been picked up in various places and looks like a field day for the "don't bother with organizing anything eMail" crowd. I think the paper is solid research for the question asked and the observations made.
However, I sense that a number of question haven't been asked that might change the producvtivity bottom line in favor of a different approach. I fully agree that hitting search or simply scrolling through a list of messages (often sorted by subject or sender) is a very efficient way to find a specific message. Also having a message thread is invaluable. I used message theads already in R7 when they only displayed when you open a message. So what did the study not look at (to be clear: I'm not saying they should have looked at these, but I'm saying you need to look at thse to gauge all over productivity):
  • Impact on productivity of a full inbox. How much time do I loose to every time I look at the inbox to decide: that's a message I dealt with, this needs my attention?
  • In Lotus Notes (other than Outlook) you can file a single message in as many folders as you like, so it is closer to tagging that "classical" folders. Once users know that, would they use it?
    E.g. I have a folder 1Action2Day and then customer folders. I move messages often into both. When I dealt with it I just remove it from 1Action2Day. Folders in Notes are equivalent to the tags in GMail, they could be a little more prominent in the mail UI (we do have the @Formula to show)
  • In Notes I can at any time scroll and search in the "All Documents", so I don't need to settle for one or the other strategy. Depending on my needs different strategies work better.
  • Difference in search strategy depending on short or long term tasks. E.g. I file "Thank you" eMails in a specific folder, so I can pull them out at review time. They are elusive to search since there are so many ways to say thank you (made my day, your'e the hero, awsome job etc). Also I use topic folders (e.g. a customer project) to review "what happened on the messaging wire". Using tags/folders I only need to make that association once when I process the message and not everytime when I search. So there's a huge difference between: "looking for a specific message" and "getting an overview what happened to {insert-filing-topic-here}"
  • Knowing that search is available, does "remove from folder" shorten filing time (I use that quite a bit)?
  • Impact of filing assistance tools. The paper mentioned one for Outlook and overlooked that we deliver one for Notes for a very long time: SwiftFile (unfortunately Windows only)
  • Impact of ad-hock filing strategy. I didn't really create labels/folder upfront but create them as I go. I also do not file everything. But I do remove everything from the inbox
The interesting pointers at the end of the paper can be translated: classifying messages is boring (true), automated tools can/should help (true), more people information might help to (good topic for a follow on research). I would conclude: good meta data would be best (aka "What is the context of this message"), if it wouldn't be so unconvenient to create them.

Posted by on 10 October 2011 | Comments (1) | categories: IBM Notes Lotus Notes Show-N-Tell Thursday

Omnisopie - mankind according to Dueck


I just finished Gunter Dueck's famous book Omnisophie (Sorry, German only). Dueck develops a unifying philosophy standing equal to Plato, Aristotle and Epicurus. While the three Greek gentlemen tried to define and devise a philosophy that can be applied to all of mankind, presuming everybody "ticking" equal, Dueck reveals that there are 3 archetypes of people: the correct people, the true people and the natural people, with each of them represented by one of the philosophers.
There are 3 types of people: Correct, True and Natural
The difference stems from the primate of thinking in the types: left brain (the computer), right brain (the neural network) or body brain (the gut feeling). Only when recognising these three fundamental types a philosophy that does justice to all can be developed. On close to 450 pages he dives deep into explanation and details for this distinction.
In today's world the correct people, who run systems and ensure orderly conduct, are the majority (and thus considered to be "normal"), while the true people are confined to science, philosophy and the occasional guru (of whatever discipline). The natural people have been tamed and can run their instincts in the "fun society" which is expensive enough, so they need to subdue to the system, to be able to afford it.
Everybody uses an internal seismographic/sensory system, that indicates what needs attention. Based on the personality type we are initially equipped with a different set of sensors and thus needs and priorities. Over time with experience and education new sensors are planted, that fire off on different input. This way parents, teachers, role models and the society at large can alter the behaviour of any individual and overlay the natural tendencies. But it will never be more than an overlay and the true nature will try to get through.
This mechanism stems from our oldest part of the brain from a time where a split second decision "freeze, flee, attack" could decide over life and death and "thinking it through" was an unaffordable luxury and mostly deadly. Since speed is of essence the sensory system is drilled to act on incomplete data. Just a high enough probability, not a certainty, is "pulling the trigger". It works pretty much like Pavlov's dogs. So if something looks like "as if", the trigger is pulled and the alarm goes off. A constant fire of these sensors brings us into, how Dueck calls it, the flash mode, where we react more than we act.
The three archetypes have four common strategies: The ruler, the hunter, the eremite (Dueck calls this strategy "the wren", but I like eremite better) and the castle builder. That results in 12 core patterns of how we tick and what is important to us. Together with additional 5 criteria Dueck distinguishes 60 types (details on that warrants an additional post), that are very unequally present, with correct people in majority. One insight out of this is, that Maslov's hierarchy of needs needs to be rewritten for each of the types. The current model puts people in a hierarchy where first needs (natural) need to be fulfilled, then one integrates into a system (correct) before the maximum of self realisation (true) could be achieved. For Maslov, a true person, it was natural (pun intended) that "truth" represents the highest value.
Our educational system is designed to produce correct people, as it was necessary for the industrial revolution, where a large number of people was needed to fulfil well defined task, literally "fit into the system". Today, with an abundance of factual knowledge, that is an outdated model. Anything clearly defined and repeatable can and will be handled by automated systems. The new needs are creativity, deeper insights and gut decision making abilities. Dueck advocates that after (mathematical) intelligence, emotional intelligence now the time has come for Professional Intelligence (Sorry German only).
So we live in a time where the correct people need to hand over the reign to the true people. Could that be the Age of Aquarius coming? Naturally that isn't without friction and some of the current turmoil could be related to that.
Dueck builds his argument on a broad foundation citing not only above gentlemen, but also Confucius (a correct philosopher), Kirkegaard (a natural philosopher), Lao Zhe (a true philosopher), Freud (a correct psychologist), Carl Jung (a true psychologist), Carl Rogers (a natural psychologist), Kant (a correct philosopher), The Buddha (a true teacher of detachment), The Jesus (a natural teacher of love) and many more.
I tremendously enjoyed reading the book, it is full of insights and "bingo" moments. Here a two of them: To become the master of one's seismic trigger mechanism one has to enter silence and detach from the world to reach a state of Awareness (yes - with a capital A), an insight available to mystics since the beginning of time (I strongly recommend: go on a retreat with members of your faith to practise stillness. Don't have a faith? Go with the Buddhists, they won't try to proselytise you).
The second one: the most successful form of government, with its idea of separation of powers, closely resembles the trinity of correct, true and natural: The government are the doers (a natural property), the parliament ensure due process, so everything is correct and the judiciary ensures that everything stays true to the spirit of the democratic idea.
The concept of a trinity is very pervasive in religion. For Christians the trinity stands for The Father (correct), The Son (natural) and The Holy Spirit (true). For Buddhists it is The Buddha (true), The Dhamma (correct) and The Sangha (natural). I'm sure you can find that elsewhere too. Stay tuned for more on Omnisophie in future posts.

Posted by on 09 October 2011 | Comments (0) | categories: Intercultural Omnisophie

One or two click mobile approvals?


With Mobile First being the parole of the day more emphasis needs to be spend creating good mobile user interfaces. As much as the web is not print, mobile is not just a small desktop. Nevertheless we apply lessons learned from desktop interfaces to mobile devices and learn as we go along. Especially corporate development managers dream of write once, run everywhere (while we know that the best achievable case is write once, test everywhere). Some of the critical differences:
  • Your screen is small
  • Your pointer is big
  • Your network is unpredictable
  • You want to swish
  • You aim is weak (especially when in a bus, train, plane or ship)
  • You rather select than type
  • You really want to focus on essentials only
So your UI needs to cater for that. On the other hand you could just have one UI based on mobile that you use on the desktop too. However short of using a widget tile, that approach looks silly and is less productive than a well designed desktop interface. One interesting facet surfaced this morning when discussing a mobile approval application:
Approval with 2 buttons Approval with a radio and one button
Is the typical pattern with an Approve and a Reject button the right approach for mobile? Surly it would feature one click decisions, a god sent for time plagued managers, of course only until you hit the wrong button due to a road bump. So alternate approaches are needed. One as pictured above would be to have a radio button (or its mobile equivalent) and the button. Another possibility would be to switch from the request screen to one that lets the decision maker add a comment and finalise the answer:
Finalizing the answer
Still the challenge remains what contextual information to show with a request, but that's a story for another time.

Posted by on 05 October 2011 | Comments (0) | categories: XPages