<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
<title>wissel.net</title>
<description>Usability - Productivity - Business - The web - Singapore &amp; Twins</description>
<lastBuildDate>Thu, 31 May 2012 00:02:12 +0000</lastBuildDate>
<link>http://www.wissel.net/blog</link>
<language>en</language>

<image>
<title>wissel.net</title>
<url>http://www.wissel.net/blog/rss.gif</url>
<link>http://www.wissel.net/blog</link>
</image>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Wisselnet" /><feedburner:info uri="wisselnet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item>
<title>Understanding the Needs of the Next Generation Digital Consumer</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/pypMFYdFjXQ/SHWL-8USM86</link>
<description><![CDATA[ My friend Jonathan Wong published an article on infopier.sg titled "Understanding the Needs of the Next Generation Digital Consumer". In it he describes the three core needs of the digital consumer. I 100% second his point of view and would summarize it with ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8USM86?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8USM86?Open</guid>
<content:encoded><![CDATA[ My friend <a href="http://armchairtheorist.com/">Jonathan Wong</a> published an article on <a href="http://www.infopier.sg/blog/-/blogs/understanding-the-needs-of-the-next-generation-digital-consumer">infopier.sg</a> titled "<i>Understanding the Needs of the Next Generation Digital Consumer</i>". In it he describes the three core needs of the digital consumer. I 100% second his point of view and would summarize it with this little graphic:<br />
<a href="http://armchairtheorist.com/next-generation-digital-consumer/">
<img src="/blog/Images/SHWL-8USMWG/$File/MCE.jpg" border="0" alt="Mobile Connected Empowered" />
</a> ]]></content:encoded>
<pubDate>Wed, 30 May 2012 16:22:38 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Technology</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8USM86?Open</feedburner:origLink></item>
<item>
<title>Grow your Social Business Tree</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/sAbF34v6wiE/SHWL-8ULCVC</link>
<description><![CDATA[ Culture eats strategy for lunch is all the rave in #SocBiz land and it tops the 10 top tips from Sandy Carter. When your culture is about careful nurturing and grooming, this is for you:
Social Business is like a tree. It needs to grow healthy roots and its ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8ULCVC?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8ULCVC?Open</guid>
<content:encoded><![CDATA[ <a href="http://socialmediatoday.com/clifffigallo/352553/culture-eats-strategy-lunch-interview-ibms-sandy-carter">Culture eats strategy for lunch</a> is all the rave in <a href="https://twitter.com/#!/search/%23SocBiz">#SocBiz</a> land and it tops the <a href="http://www.socialbusinessnews.com/top-10-social-business-tips-from-ibms-sandy-carter/">10 top tips</a> from <a href="http://socialbusinesssandy.com/">Sandy Carter</a>. When your culture is about careful nurturing and grooming, this is for you:<br />
Social Business is like a tree. It needs to grow healthy roots and its crown needs to be balanced to sustain.<br />
<img src="/blog/Images/SHWL-8ULCUX/$File/SocialBusinessTree.jpg" title="Your social business tree" "border=0" /><br />
Bliss is being a gardener. ]]></content:encoded>
<pubDate>Thu, 24 May 2012 09:15:42 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>SocialBusiness</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8ULCVC?Open</feedburner:origLink></item>
<item>
<title>OAuth, HTTP and file size limitations</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/IOM1pQf-VQU/SHWL-8UL7TB</link>
<description><![CDATA[ In the brave new world of social file sharing HTTP(s) has won. From the humble webDAV specification to Sharepoint, IBM Connections, Dropbox, UbuntuOne or the emerging industry standard CMIS all use HTTPs to access files on the backends. Since HTTP(s) is the ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8UL7TB?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8UL7TB?Open</guid>
<content:encoded><![CDATA[ In the brave new world of social file sharing HTTP(s) has won. From the humble <a href="http://en.wikipedia.org/wiki/WebDAV">webDAV</a> specification to Sharepoint, IBM <a href="http://www-01.ibm.com/software/lotus/products/connections/">Connections</a>, Dropbox, <a href="https://one.ubuntu.com/">UbuntuOne</a> or the emerging industry standard <a href="http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services">CMIS</a> all use HTTPs to access files on the backends. Since HTTP(s) is the first thing that is available when a network connection is possible and quite often (especially in public hotspots) the only thing available, this success isn't surprising<br />
The more venerable protocols like <a href="http://en.wikipedia.org/wiki/CIFS">CIFS</a> (a.k.a. SMB), <a href="http://en.wikipedia.org/wiki/Network_File_System">NFS</a> or <a href="http://en.wikipedia.org/wiki/SSHFS">SSHFS</a> didn't stand a chance since (rightly?) security experts block them on the corporate firewalls to prevent data leakages.<br />
A lot of times the HTTP integration uses basic authentication, that is hazardous on HTTP, but OK on HTTPs. However providing applications with username and password makes it an update nightmare. Therefore <a href="http://oauth.net/">OAuth</a> became rapidly popular. But every fix for a problem comes with its own challenges. The challenge here is <a href="http://tools.ietf.org/html/rfc5849#section-3.2">OAuth session expiry</a>. While this is hardly an issue getting your latest tweets (140 char transmit in less that 30sec if if you only have 10 Byte/sec), is is an issue for large files.<br />
An <a href="https://bugs.launchpad.net/ubuntuone-servers/+bug/989157">open bug</a> in UbuntuOne explains it nicely: "<i>OAuth headers used to check the validity of the request contain the timestamp of the request to prevent reply attacks .... for requests taking less than 15 minutes (the default for oauth in updown). </i>". If 15 min is the default you need a lot of bandwidth depending on your file size:
<ul>
<li>9 kb/sec for 1 MB</li>
<li>217 kb/sec for 25MB</li>
<li>870 kb/sec for 100 MB</li>
</ul>
(That's effective bandwidth, not advertised one). Of course: you don't want to wait 15 minutes for a file, so your real bandwidth requirement might be actually much higher. And that's also the reason why online access to file sharing is nothing more than a band-aid, sync is the way to go. ]]></content:encoded>
<pubDate>Thu, 24 May 2012 04:56:25 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Software</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8UL7TB?Open</feedburner:origLink></item>
<item>
<title>Fun with TCPMon and Lotus Traveler</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/xFxjw1o6iSc/SHWL-8U7DJQ</link>
<description><![CDATA[ Martin Luther (the original) famously stated "man muss dem Volk aufs Maul schauen" (roughly translated: "you have to watch how people talk". What worked for a bible translation also works in IT.
While it is nice to have some documentation, quite often it is ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8U7DJQ?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8U7DJQ?Open</guid>
<content:encoded><![CDATA[ Martin Luther (the <a href="http://en.wikipedia.org/wiki/Martin_Luther">original</a>) famously stated "<i>man muss dem Volk aufs Maul schauen</i>" (roughly translated: "<i>you have to watch <b>how</b> people talk"</i>. What worked for a <a href="http://en.wikipedia.org/wiki/Weimarer_Ausgabe#Contents_of_the_division_.22German_Bible.22">bible translation</a> also works in IT.<br />
While it is nice to have some documentation, quite often it is inaccurate, incomplete, outdated, factual wrong or simply missing. So listening to "how applications speak" is an essential skill, mentioned <a href="/blog/d6plinks/SHWL-84NJED">here before</a>. In this little weekend project these skills get applied to Lotus Traveler. These are our ingredients:
<ol>
<li>Domino server with installed Traveler listening on http Port 80 (https won't do). Also make sure that compression is switched off in the internet site document for traveler, it's no fun to watch gzip encoded data</li>
<li><a href="http://ws.apache.org/commons/tcpmon/">Apache TCPMon</a> installed and listening on port 8888 in proxy mode</li>
<li>The <a href="http://developer.android.com/sdk/index.html">Android SDK</a>, installed with an Android device emulator. Alternative: a physical Android device (and your ports open on your machine)</li>
</ol>
We will configure the Android to use the PC as the proxy and then install Lotus Traveler and sync data. TCPMon will show us what's on the wire (Windows user could use <a href="http://www.fiddler2.com/fiddler2/">Fiddler</a> as alternative to TCPMon. Let's get started:
<ol>
<li>TCPMon needs to be configured in Proxy mode.<br />
<img src="/blog/Images/SHWL-8U9LGH/$File/SyncML01.png" border="0" alt="Setting up of TCPMon" /><br />
You can test if that is working by pointing your browser's proxy setting to <code>127.0.0.1:8888</code>. Note: you need the real IP in the Android phone or emulator. The TCPMon screen then nicely shows the outgoing requests and incoming responses:<br />
<img src="/blog/Images/SHWL-8U9LGH/$File/SyncML08.png" border="0" alt="TCPMon in action" />
</li>
<li>Time to configure an Android emulator. After installing the Android SDK you can launch <code>tools/android</code> from the install directory to download and install the various versions of the Android OS Emulations from 1.0 all the way to 4.0.3. In the Tools menu you can manage your AVD (Android Virtual Devices) and configure different images. The emulator comes with the option of snapshots, quickstart, cold boot etc.<br />
<img src="/blog/Images/SHWL-8U9LGH/$File/SyncML03.png" border="0" alt="Various Android Virtual Devices" /><br />
I found the 4.0.3 devices substantially slower than the 2.3.x devices, which might be based on the higher default screen resolution. Once you have configured the AVD, you could start it directly from the menu</li>
<li>However starting an AVD from the command line is much more practical, since it allows for a lot of parameters. Most notably the ability to cold-boot and the ability to define a proxy or even dump the whole TCP conversation into a dump file. So I started my AVDs with<br />
<code>android-sdk-linux/tools/emulator -avd MyPhone -http-proxy 192.168.88.170:8888</code> and <br />
<code> android-sdk-linux/tools/emulator -avd IcecreamPhone -http-proxy 192.168.88.170:8888</code> resulting in<br />
<img src="/blog/Images/SHWL-8U9LGH/$File/SyncML04.png" border="0" alt="Android 4.0.3 running" /></li>
<li>Along the way I encountered a few odities: some of the commands would ignore the proxy parameter and try to reach out directly. I got that sorted out by configuring the device to use the proxy in the access point settings.<br />
<img src="/blog/Images/SHWL-8U9LGH/$File/SyncML05.png" border="0" alt="Proxy settings in Android" /><br />
(Don't forget to use Menu - save when changing this). Important here is to clear out username, password and server which have a one character value. For a reason beyond my comprehension the initial configuration of traveler would not work with any proxy setting - could be the TCPMon here, with Fiddler it might work - so after downloading the installer, run the installer and download traveler I had to switch off both proxy settings for the initial configuration. The AMD can be just terminated and then called without the proxy parameter and it would resume where it left off</li>
<li>Make sure to have the proxy back in the HTTP stream to watch what is happening. It is quite enlightening</li>
<li>The first thing once the new device is ready is a request to fetch the configuration which against the current fashion is delivered as XML document that <b>very</b> closely resembles DXL. The request looks like this:<br />
<span style="font-family : Courier, Monospace; font-size : smaller">
GET http://yourtravelerserver:80/servlet/traveler?action=getConfig&deviceId=Android_somedeviceid HTTP/1.1<br />
Content-Type: application/x-www-form-urlencoded<br />
Host: yourtravelerserver:80<br />
Connection: Keep-Alive<br />
User-Agent: Lotus Traveler Android 8.5.2.1<br />
Authorization: Basic Base64EncodedUserNamePassword=</span></li>
<li>Then you can go on and watch the initial sync happening. To understand what device and server are talking to each other, you need to ask <a href="http://www.openmobilealliance.org/tech/affiliates/syncml/syncmlindex.html">OMA</a>, there the best documentation is available - you might have guessed: Traveler on Android is using SyncML. You can learn how "push" actually works</li>
</ol>
Next stop: repeat the above on a Mac. On the Mac Traveler uses <a href="http://en.wikipedia.org/wiki/ActiveSync">ActiveSync</a>, so you need to look elsewhere for the documentation. I'll share more about the protocols and findings in future posts (just hope it is raining again on a weekend here). ]]></content:encoded>
<pubDate>Sun, 13 May 2012 15:49:00 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Show-N-Tell Thursday</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8U7DJQ?Open</feedburner:origLink></item>
<item>
<title>In my inbox</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/wDma6bGsc2U/SHWL-8U6JPM</link>
<description><![CDATA[ One of the things I'm interested in after hours (challenge: what are my after hours) is personal well being and fitness. Since I love technology too I have the geeks view. When surfing at Amazon I came across Fitness for Geeks: Real Science, Great Nutrition, ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8U6JPM?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8U6JPM?Open</guid>
<content:encoded><![CDATA[ One of the things I'm interested in after hours (challenge: what are my after hours) is personal well being and fitness. Since I love technology too I have the geeks view. When surfing at Amazon I came across <a href="http://www.amazon.com/gp/product/B007UQN22A/ref=as_li_ss_tl?ie=UTF8&tag=wisselnetblog-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B007UQN22A">Fitness for Geeks: Real Science, Great Nutrition, and Good Health</a><img src="http://www.assoc-amazon.com/e/ir?t=wisselnetblog-20&l=as2&o=1&a=B007UQN22A" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> and added it to my wishlist.<br /> 
Opening my mailbox this morning I got pleasantly surprised:<br />
<a href="http://www.amazon.com/gp/product/B007UQN22A/ref=as_li_ss_tl?ie=UTF8&tag=wisselnetblog-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B007UQN22A"><img src="/blog/Images/SHWL-8U6JPR/$File/KindleGift.png" border="0" alt="Fitness for Geeks: Real Science, Great Nutrition, and Good Health"></a><br />
<a href="http://www.eknori.de/">Ulrich Krause</a> said thank you, so I say: Thank you Ulrich! ]]></content:encoded>
<pubDate>Thu, 10 May 2012 14:13:43 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Lotus</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8U6JPM?Open</feedburner:origLink></item>
<item>
<title>Getting a Job Done</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/zW-Q91CUPxM/SHWL-8U6BJF</link>
<description><![CDATA[ In a recent chat on the supersecret XPages &lt;/bitching&gt;&lt;doing&gt; chat Mark Hughes contributed an invaluable 3 liner, too good to miss. I added the 4th one:

You pay someone by the hour, they take longer than if you paid them for the job
You pay them ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8U6BJF?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8U6BJF?Open</guid>
<content:encoded><![CDATA[ In a recent chat on the supersecret XPages &lt;/bitching&gt;&lt;doing&gt; chat <a href="http://blog.hughesconnect.com/">Mark Hughes</a> contributed an invaluable 3 liner, too good to miss. I added the 4th one:<br />
<ul style="font-size: bigger; list-style : none; margin : 10px; border : 2px solid orange; padding : 5px; background-color : #F0F0F0">
<li>You pay someone by the hour, they take longer than if you paid them for the job</li>
<li>You pay them by the job and it will get rushed</li>
<li>You pay them a salary and they dont care if it gets done</li>
<li>You unleash their passion for the task - you get results</li>
</ul> ]]></content:encoded>
<pubDate>Thu, 10 May 2012 08:07:01 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>After hours</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8U6BJF?Open</feedburner:origLink></item>
<item>
<title>Prezi presentation style lessons</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/8FBGVBOQH9A/SHWL-8U5BPR</link>
<description><![CDATA[ While "Death by Powerpoint" is is talk of the town and Prof. Tufte is all against it


the alternatives are not without risks. As a colleague put it nicely: "Prezi is a presentation tool perfectly capable of making your audience sea sick". Presentation tools ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8U5BPR?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8U5BPR?Open</guid>
<content:encoded><![CDATA[ While "<i>Death by Powerpoint</i>" is <a href="http://www.google.com/search?q=Death+byPowerpoint">is talk of the town</a> and Prof. Tufte is <a href="http://www.edwardtufte.com/tufte/powerpoint">all against it</a><br />

<a href="http://www.edwardtufte.com/tufte/powerpoint title="The Cognitive Style of PowerPoint"><img src="http://www.edwardtufte.com/tufte/graphics/home_stalin_poster.jpg" alt="The Cognitive Style of PowerPoint" /></a><br />
the <a href="https://prezi.com/user/notessensei/">alternatives</a> are not without risks. As a colleague put it nicely: "<i>Prezi is a presentation tool perfectly capable of making your audience sea sick</i>". Presentation tools used wrongly leave you the choice between nausea and unconciousness. In case you haven't seen <a href="https://prezi.com/explore/">prezi</a> before: it is a Flash/Air based tool, that allows to create non-linear presentations that swifle, zoom and rotate through your materials: the cadence of Powerpoint replaced by a visual roller coaster.<br />
Working with it for a while I recognized that there are certain interaction/animation pattern that work well to convey a specific message:
<ul>
<li><b>Zoom in and out</b>: Going from the <i>big picture</i> into the details. E.g. you could state an agument and then zoom in to prove it. Same applies to keywords and explanations
</li>
<li><b>Move linear beween equal sized items</b>: lay out related items and aspects of a topic (often after zooming in). Try to make vertical and horizontal moves not zig-zag and diagonal 
</li>
<li><b>Rotate around a centre</b>: Reinforce a central topic you rotate around. The mental model here: add spokes to your hub argument to create a wheel (= rounded argument)
</li>
<li><b>Swifel slides</b>: Look at the same topic from a different view point, audience or vantage point. It is like different people look at an object from different angles
</li>
<li><b>Follow a path</b>:  You select a "<i>big picture</i>" as background (a mountain, a road, a plant etc.). You map out your argument along a visible line of that background. It conveys the message "follow my line of argument"
</li>
</ul>
Following these make your presentations more impactful, nevertheless you need to pay attention avoiding nausea. Interactions that negatively influence impact are: wild swiveling, zoom without master/detail relations or zig-zag movements. You still have to work out your message and the visuals. Of course: once you "got" the rules, you are free to break them.<br />
As usual YMMV ]]></content:encoded>
<pubDate>Wed, 09 May 2012 08:15:30 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Business</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8U5BPR?Open</feedburner:origLink></item>
<item>
<title>HSBC is starting to seriously annoy me #fail</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/6p0JGjSzoIo/SHWL-8TUHZ2</link>
<description><![CDATA[ End of last HSBC Singapore approached me and offered to upgrade my Credit Card to their shiny new VISA Infinite. Unsuspecting for what I was in for I agreed and the trouble started. To give you an idea, this is the content I sent to them on January 14 ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8TUHZ2?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8TUHZ2?Open</guid>
<content:encoded><![CDATA[ End of last <a href="http://www.hsbc.com.sg">HSBC Singapore</a> approached me and offered to upgrade my Credit Card to their shiny new <a href="~ 
 




÷ ƒ




◙

à












https://www.hsbc.com.sg/1/2/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4p3DPMHSZnFG8abeIboR6KImcYbm6IJGcQ7IkSC9AtyQ0Mjyh0VAdmOMwY!

¡ æ


à
https://www.hsbc.com.sg/1/2/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4p3DPMHSZnFG8abeIboR6KImcYbm6IJGcQ7IkSC9AtyQ0Mjyh0VAdmOMwY!


https://www.hsbc.com.sg/1/2/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4p3DPMHSZnFG8abeIboR6KImcYbm6IJGcQ7IkSC9AtyQ0Mjyh0VAdmOMwY!
">VISA Infinite</a>. Unsuspecting for what I was in for I agreed and the trouble started. To give you an idea, this is the content I sent to them on January 14 2012:<br /><br />
<i style="color : red">
From: Stephan Wissel &lt;stephan@wissel.net&gt;<br />
Date: Sat, Jan 14, 2012 at 7:25 PM<br />
Subject: Credit Card in eBanking<br />
To: direct@hsbc.com.sg<br />
Hi there,<br />
<br />
I'm using HSBC Credit Cards and I'm currently switching from a Visa Platinum to a Visa Infinite card.<br />
The process you have in place for this needs improvements. These are the problems I encountered so far:
<ol>
<li>The old card was canceled without notifying me when this will happen (a odd situation when you want to buy something)</li>
<li>The new card hasn't arrived when the old was canceled - you lost quite some money on provisions that way</li>
<li>I got a notification eMail that the new card was approved and that in a few days it will arrlive - I replied that you need to expedite that since I would travel - I never got a reply. If messages like these are sent from an unattended mailbox the mail needs to state that clearly</li>
<li>I logged into my eBanking and the old card has disappeared including the ability to retrieve statements and transfer the open balance. So I can't know what I owe and I can't pay that - rest assure, that I will not pay any late fees</li>
<li>The new card doesn't show in the Internet banking either (anyway I don't have the card with me - I left before it might have arrived at home)</li>
<li>the Internet banking lacks the ability to contact you, so I have to resort to the inherently unsave eMail (unless you can point me to encryption keys we can use)</li>
</ol>
All in all: I'm very disappointed! I will be back in Singapore next Monday. If you need to call: I'm currently in the GMT-6 timezone, call during daytime here.<br /> 
</i> 
I never got a reply. So I escalated to the sales lady who sold me in the first place. The matters couldn't be resolved. I never got the new card, so I paid the balance of the old (they sent a paper invoice in the end) and I terminated my customer relationship with HSBC. This didn't stop them sending me a credit card bill for a card I never had demanding the annual fee. So far I sent every invoice back with the statement: "bill for services not rendered, refuse to accept". Today - after they sent another one I replied with a formal letter:<br /><br />
<i style="color : red">
The Hongkong and ShanghaiBanking Corporation Limited<br />
Robinson Road PO Box 896<br />
Singapore 901746<br />
<br />
<br />
<br />
Credit card xxxx-xxxx-xxxx-xxxx<br />
<br />
<br />
To whom it may concern,<br />
<br />
today I received – again  – a credit card bill for above HSBC Visa Infinite card.<br />
This bill is NOT justified. The credit card was, based on your mishandling of customer service, never delivered and never activated.<br />
<br />
Due to the poor handling of this matter (e.g. canceling the existing card before verifying the new card arrived
and not reacting on my communication) I terminated all business relationship with your bank.<br />
<br />
Still you are sending bills for services not rendered. I notified you on that before.
It looks to me, that your process is not working and it is costing me my time.<br />
<br />
You will understand, that I have to bill you for my time lost, based on my commercial rate in  the market place.
Please do the following:
<ol>
<li>accnowledge that you have received this letter</li>
<li>stop sending unjustified bills</li>
<li>pay the enclosed invoice to compensate me for time spent</li>
</ol>
<br />
Best regards<br />
<br />
<br />
Stephan H. Wissel<br />
</i>
Curious what happens next. I wonder if I have to complaint to <a href="www.case.org.sg/">CASE</a> next. ]]></content:encoded>
<pubDate>Mon, 30 Apr 2012 13:37:36 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Business</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8TUHZ2?Open</feedburner:origLink></item>
<item>
<title>Extracting data from Domino into PDF using XSLT and XSL:FO (Part 4)</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/OXQtBfb1i9E/SHWL-8TSGKX</link>
<description><![CDATA[ This entry is part of the series Domino, XSL:FO and XSLT that dives into the use of XSLT and XSL:FO in IBM Lotus Domino.
So far we had a look at the all over process, some Java to convert FO into PDF and FO Basics. Time to get some Notes data exported. To ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8TSGKX?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8TSGKX?Open</guid>
<content:encoded><![CDATA[ This entry is part of the series <a href="/blog/htdocs/DominoXSLT">Domino, XSL:FO and XSLT</a> that dives into the use of <a href="http://www.w3.org/TR/xslt/">XSLT</a> and <a href="http://www.w3.org/TR/xsl/">XSL:FO</a> in <a href="http://www-01.ibm.com/software/lotus/products/domino/">IBM Lotus Domino</a>.<br /></br />
So far we had a look at <a href="/blog/d6plinks/SHWL-8TMM9D">the all over process</a>, <a href="/blog/d6plinks/SHWL-8TNLTV">some Java to convert FO into PDF</a> and <a href="/blog/d6plinks/SHWL-8TSDFY">FO Basics</a>. Time to get some Notes data exported. To make the task easier I created a little helper that allows convenient export into XML. Currently it works on a NotesDocument(Collection) basis, but it would be a small step to add a method that uses a view navigator for speed.<br />
The most complete rendering of a NotesDocument is done using the <code>.renderXML</code> method. For a collection you use a <code>NotesDxlExporter</code>. Unfortunatelty both methods are comparable slow. So I added an alternate approach (works only if you don't have RichText for the moment) and export lean XML.<br />
A <code>Form2XMLDefinition</code> class (optional) allows to pick which fields need to be picked in the XML file. It also allows to group those fields (more on that another time - or look at the source). So the methods are:
<div class="java"><span class="kw1">package</span> <span class="co2">com.notessensei.fop</span><span class="sy0">;</span><br />
<br />
<span class="kw1">import</span> <span class="co2">java.io.ByteArrayOutputStream</span><span class="sy0">;</span><br />
<span class="kw1">import</span> <span class="co2">lotus.domino.DocumentCollection</span><span class="sy0">;</span><br />
<span class="kw1">import</span> <span class="co2">lotus.domino.Session</span><span class="sy0">;</span><br />
<br />
<span class="kw1">public</span> <span class="kw1">interface</span> Notes2XML <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">abstract</span> <span class="kw4">void</span> addForm<span class="br0">&#40;</span>Form2XMLDefinition newForm<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">abstract</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abytearrayoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ByteArrayOutputStream</span></a> renderDocument2DXL<span class="br0">&#40;</span>lotus.<span class="me1">domino</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocument+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Document</span></a> doc<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">abstract</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abytearrayoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ByteArrayOutputStream</span></a> renderDocument2XML<span class="br0">&#40;</span>lotus.<span class="me1">domino</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocument+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Document</span></a> doc<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">abstract</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abytearrayoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ByteArrayOutputStream</span></a> renderDocumentCollection2DXL<span class="br0">&#40;</span>Session s, DocumentCollection dc<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">abstract</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abytearrayoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ByteArrayOutputStream</span></a> renderDocumentCollection2XML<span class="br0">&#40;</span>DocumentCollection dc, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> rootName<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
I expanded the <code>PDFReport</code> class with a convenience method: <code>getNotesXMLExporter()</code> to be able to reuse my managed bean (beginnings of a <a href="http://en.wikipedia.org/wiki/Facade_pattern">Facade pattern</a>). ]]></content:encoded>
<pubDate>Sat, 28 Apr 2012 14:25:00 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Show-N-Tell Thursday</category>
<category>XPages</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8TSGKX?Open</feedburner:origLink></item>
<item>
<title>Extracting data from Domino into PDF using XSLT and XSL:FO (Part 3)</title>
<link>http://feedproxy.google.com/~r/Wisselnet/~3/O-zqICZb6uk/SHWL-8TSDFY</link>
<description><![CDATA[ This entry is part of the series Domino, XSL:FO and XSLT that dives into the use of XSLT and XSL:FO in IBM Lotus Domino.
In Part 2 I introduced the Java code required to output PDF from XSL:FO and how that code can be called from an XAgent. Now lets have a ... ]]></description>
<dc:creator>Stephan H Wissel</dc:creator>
<comments>http://www.wissel.net/blog/d6plinks/SHWL-8TSDFY?Open</comments>
<guid isPermaLink="false">http://www.wissel.net/blog/d6plinks/SHWL-8TSDFY?Open</guid>
<content:encoded><![CDATA[ This entry is part of the series <a href="/blog/htdocs/DominoXSLT">Domino, XSL:FO and XSLT</a> that dives into the use of <a href="http://www.w3.org/TR/xslt/">XSLT</a> and <a href="http://www.w3.org/TR/xsl/">XSL:FO</a> in <a href="http://www-01.ibm.com/software/lotus/products/domino/">IBM Lotus Domino</a>.<br /></br />
In <a href="/blog/d6plinks/SHWL-8TNLTV">Part 2</a> I introduced the Java code required to output PDF from <a href="http://en.wikipedia.org/wiki/XSLFO">XSL:FO</a> and how that code can be called from an <a href="/blog/d6plinks/SHWL-7MGFBN">XAgent</a>. Now lets have a look at <a href="http://www.w3.org/TR/xsl/">XSL:FO</a> itself. It is a W3C defined standard to layout documents. You could consider it as competitor to <a href="http://en.wikipedia.org/wiki/PostScript">PostScript</a> or <a href="http://en.wikipedia.org/wiki/PDF">PDF</a>. XSL:FO contains both layout instructions and content. Since it is expressed entirely in XML, it is easy to manipulate (follow me for a moment and accept <i>XML is easy</i>) and - more importantly easy to split content and layout for reuse. Typically a complete XSL:FO document would be only an intermediate step in PDF production. The report design (without data) would be contained in an <a href=http://en.wikipedia.org/wiki/XSLT">XSLT</a> stylesheet that gets merged with XML data. You could consider XSLT the "templating language" of XSL:FO.<br />
A XSL:FO document has a single <code>&lt;fo:root&gt;</code> element. This contains one or more page-sequence elements, that contain the actual content and a layout-master-set, that defines the pages.<br />
<img src="/blog/Images/SHWL-8TSDFK/$File/layout-master-set.jpg" border="0" alt="XSL:FO layout-master-set" /><br />
Besides the page size (and content orientation) a <a href="http://www.w3.org/TR/xsl/#fo_simple-page-master">simple-page-master</a> defines header, footer, left and right column (called regions). You need to get your math right there. The margin and the regions are both substracted from the page size to compute the real margins. When you have a <code>margin="1cm"</code> and a <code>region-start</code> with 3cm width, then the left margin is 4cm. Read up the <a href="http://www.w3schools.com/xslfo">XSL:FO tutorial</a> on w3schools.com for more details.<br />
The main element <a href="http://www.w3.org/TR/xsl/#fo_region-body">region-body</a> allows to specify a <a href="http://www.w3.org/TR/xsl/#column-count">column-count</a> attribute that will create multi-column page layouts without the need for a table and a manual calculation of column content. You also could define alternating page masters, like left and right pages or different pages for a chapter beginning - read details in the <a href="http://www.w3.org/TR/xsl/#fo_repeatable-page-master-alternatives">repeatable-page-master-alternative</a> specification.<br /> 
Your main content is contained in one or more page-sequences.<br />
<img src="/blog/Images/SHWL-8TSDFK/$File/page-sequence.jpg" border="0" alt="page-sequence" /><br />
The page sequence contains the content. Don't get confused: a page-sequence represents content of n number of pages (n &gt;=1), not just one page. You need more than one page sequence only when you want the page layout to use a different master/style (of course using the alternatives mechanism described above you can achieve alternate styles inside a single page sequence). The page sequence contains one or more flows. A flow is targeted at a region (there are 5 of them) and contains block elements (think HTML div,p,table etc.) that contain the content. There are a huge number of specialised attributes and elements (stuff like watermarks or graphics) available you can learn about <a href="http://www.w3.org/TR/xsl/">in the specifications</a>.<br />
In practise you write a sample XSL:FO document and <a href="http://xmlgraphics.apache.org/fop/1.0/running.html">transform it into PDF</a>. Once you are satisfied with the results, you then convert the XSL:FO document into an XSLT stylesheet. This is easier than it sounds, you simply wrap <code>xsl:template</code> tags around your fo and replace your sample content with <code>xsl:apply-templates</code> statements. w3schools has a <a href="http://www.w3schools.com/xslfo/xslfo_xslt.asp">simple example</a>. Of course XSLT is a interesting topic on its own, go and read the <a href="http://www.amazon.com/gp/product/0470192747/ref=as_li_ss_tl?ie=UTF8&tag=wisselnetblog-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0470192747">XSLT 2.0 and XPath 2.0 Programmer's Reference</a><img src="http://www.assoc-amazon.com/e/ir?t=wisselnetblog-20&l=as2&o=1&a=0470192747" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> (also <a href="http://www.amazon.com/gp/product/B004QWZTSG/ref=as_li_ss_tl?ie=UTF8&tag=wisselnetblog-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B004QWZTSG">available on Kindle</a><img src="http://www.assoc-amazon.com/e/ir?t=wisselnetblog-20&l=as2&o=1&a=B004QWZTSG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />).
<br />Next stop: How to pull Notes data into XML for processing. ]]></content:encoded>
<pubDate>Sat, 28 Apr 2012 09:45:32 +0000</pubDate>
<slash:comments>0</slash:comments>
<category>Show-N-Tell Thursday</category>
<category>XPages</category>
<feedburner:origLink>http://www.wissel.net/blog/d6plinks/SHWL-8TSDFY?Open</feedburner:origLink></item>
</channel>
</rss>

