wissel.net

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

By Date: April 2011

A custom control that should be on top of every page


This idea is shamelessly ripped from an XPages chat with Nathan who will contribute a <crashie6 ../> control to the Extension library soon. Go to the navigator view and create these 2 files in custom controls :
The xsp:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
  <!--[if lt IE 7]>
 <div style='border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative;'>
   <div style='position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;'><a href='#' onclick='javascript:this.parentNode.parentNode.style.display="none"; return false;'><img src='http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg' style='border: none;' alt='Close this notice'/></a></div>
   <div style='width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;'>
     <div style='width: 75px; float: left;'><img src='http://www.ie6nomore.com/files/theme/ie6nomore-warning.jpg' alt='Warning!'/></div>
     <div style='width: 275px; float: left; font-family: Arial, sans-serif;'>
       <div style='font-size: 14px; font-weight: bold; margin-top: 12px;'>You are using an outdated browser</div>
       <div style='font-size: 12px; margin-top: 6px; line-height: 12px;'>For a better experience using this site, please upgrade to a modern web browser.</div>
     </div>
     <div style='width: 75px; float: left;'><a href='http://www.firefox.com' target='_blank'><img src='http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg' style='border: none;' alt='Get Firefox 3.5'/></a></div>
     <div style='width: 75px; float: left;'><a href='http://www.browserforthebetter.com/download.html' target='_blank'><img src='http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg' style='border: none;' alt='Get Internet Explorer 8'/></a></div>
     <div style='width: 73px; float: left;'><a href='http://www.apple.com/safari/download/' target='_blank'><img src='http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg' style='border: none;' alt='Get Safari 4'/></a></div>
     <div style='float: left;'><a href='http://www.google.com/chrome' target='_blank'><img src='http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg' style='border: none;' alt='Get Google Chrome'/></a></div>
   </div>
 </div>
 <![endif]-->
</xp:view>
 

Read more

Posted by on 28 April 2011 | Comments (4) | categories: XPages

Know your deal!


When negotiating with a client about a deal it would be foolish to see it in a single dimension: " how much". There are many factors at work: Price, Delivery Schedule, Product Options, Service/Support, Training, Contract Duration, Contract Volumne, Payment Terms and Resources, just to name a few. E.g what point does it have to find a birthday cake supplier who is a cheaper, if he can't deliver in time. The factors are interdependent, so altering one dimension in a proposal or request will most likely influence one or more other factors. One example is shipping of goods: if you want your stuff faster (Delivery Schedule), your price on the logistics component goes up. A customer who tightly manages the cash flow can be enabled to commit to a larger contract volume if the payment terms can be adjusted to their management practises. Visualising the specifics of a deal can help to gain clarity in preparation of negotiation sessions.
Price sensitive customer
If the problem you will solve for the client is critical for their business then price might not be the primary driver anymore. Speedy delivery, capable implementers and fitness for purpose take centre stage. Only with clarity about the situation you can spot these opportunities. Eventually you need to educate your customer on the priority of the other parameters.
Time and capability sensitive customer
All charts have been drawn using the rGraph HTML library.
A variation of the multi-dimension chart is the old IT joke: "We can make your software fast, cheap, bug-free - pick any two".
As usual YMMV.

Posted by on 26 April 2011 | Comments (0) | categories: Business

Installing additional software in Ubuntu


I'm a happy camper running Ubuntu as my main desk operating system. IBM has done a great job in providing internal repositories that add all the IBM software I would want to the Ubuntu software centre for point and click install (actually I prefer the command line with apt-get, but that usability consideration will be topic of a future post). However there is are some tools I use/evaluate that are neither in the standard Ubuntu nor in the IBM provided repositories. Ubuntu provides for independent tools or "the next version" a nice platform named LaunchPad. It hosts so called "Personal Package Archives" (PPA) that are repositories for additional software like the very useful screen shot tool Shutter. Since I help colleagues and friends to move on I keep that list of repositories close:
##############################################################################
# PPA List for Update function
# This file MUST NOT have empty lines. Lines with # in the beginning are OK
# Commented out repositories are either not yet or no longer available
##############################################################################
deb http://dl.google.com/linux/deb/ stable non-free
deb http://dl.google.com/linux/deb/ testing non-free
ppa:ailurus/ppa/ubuntu
ppa:alecive/antigone
ppa:am-monkeyd/nautilus-elementary-ppa
ppa:and471/kazam-daily-builds
# ppa:anders-kaseorg/subversion-1.6/ubuntu
ppa:banshee-team/ppa
ppa:bisigi
ppa:bisigi/ppa
ppa:bisigi/ppa/ubuntu
ppa:cardapio-team/unstable
ppa:chromium-daily/ppa/ubuntu
ppa:c-korn
ppa:compiz
ppa:cybolic/vineyard-testing
ppa:docky-core/ppa
# ppa:do-core/ppa/ubuntu
# ppa:doctormo/barry-snapshot
ppa:doctormo/ppa
ppa:drizzle-developers/ppa/ubuntu
ppa:elementaryart
ppa:elementaryart/elementarydesktop
ppa:ferramroberto/gimp
ppa:flozz/flozz
# ppa:gdm2setup/gdm2setup
ppa:geod/ppa-geod
# ppa:globalmenu-team/ubuntu
# ppa:gloobus-dev/covergloobus
ppa:gloobus-dev/gloobus-preview
# ppa:gnome-colors-packagers/ppa/ubuntu
ppa:gnome-media-player-development/development
ppa:gnomenu-team/ppa
# ppa:gtg/ppa/ubuntu
ppa:iaz/battery-status
ppa:jconti/recent-notifications
ppa:jimjimovich/starry-hope-uploader
ppa:jkakavas/creepy
ppa:jonoomph/openshot-edge
ppa:kilian/trimage
ppa:kubuntu-ppa/backports/ubuntu
ppa:kubuntu-ppa/staging/ubuntu
ppa:libreoffice/ppa
ppa:me-davidsansome/clementine-dev
ppa:mozillateam/firefox-stable
ppa:murrine-daily/ppa
ppa:network-manager/ppa
ppa:nijel/ppa
ppa:nilarimogard/webupd8
ppa:n-muench/programs-ppa
ppa:n-muench/vlc
ppa:osmoma/audio-recorder
ppa:pdfmod-team/ppa
ppa:rabbitvcs/ppa
ppa:realtime.sunlight.wallpaper/rsw
# ppa:ricotz/testing
ppa:robert-ancell/simple-scan
ppa:rye/ubuntuone-extras
ppa:screenlets-dev/ppa
ppa:shnatsel/gimp-paint-studio
ppa:shutter/ppa/ubuntu
ppa:sikon/steadyflow
ppa:tehnick/tehnick
ppa:testdrive/ppa
ppa:tgm4883/ppa/ubuntu
# ppa:the-board-team/dev-snapshots
ppa:tiheum/equinox
ppa:tldm217/tahutek.net
# ppa:tp-fan/ppa
ppa:tualatrix/ppa
ppa:ubuntu-packaging-guide-team/ppa
ppa:ubuntu-wine/ppa
ppa:ubuntu-x-swat/x-updates
ppa:vincent-c/nevernote
ppa:webkit-team/epiphany/ubuntu
ppa:webupd8team/themes
ppa:webupd8team/ubuntu-font-family
ppa:webupd8team/unstable
ppa:webupd8team/y-ppa-manager
# ppa:wvengen/ppa
ppa:xsisqox/ppa
ppa:zeitgeist/ppa
Using a short script all these repositories are added to your repository list and made available. Be careful! Some of the repositories contain newer releases in test form of existing applications and might break applications. I don't mind using beta software, it comes with my job, but you might and probably will mind. So I strongly recommend you exercise caution, install and use the ## Y-PPA Manager that makes it very easy to get rid of unwanted repositories. The bash script to read in all these
#!/bin/bash
##############################################################################
# Adds a lot of VERY useful PPA and other repositories
# No warranties whatsoever, check carefully what reporsitories you are ready to use
# List of repositories partly suggested by http://guvnr.com/pc/lucid-repositories/
# Adding a repository doesn't install any software, but enables additional software
# sources. They can be used with apt-get and they show up in the software center
# Some minimal tools get installed for making the batch UI more workable
##############################################################################

##############################################################################
# Phase 0 - Setup the script environment, ensure all files / apps needed are there
##############################################################################

if [ [ $EUID -ne 0 ] ]; then
    echo "."
    echo "."
    echo "."      
    echo "Sorry, but the installrepositories.sh script requires to be run in super user mode."
    echo "."
    echo "."  
    echo "Use:"
    echo "sudo ./installrepositories.sh"
    echo "to run this script. You will be prompted for your password."
    echo "If you are not sure about this, view the script source and ask your Linux expert."
    echo "."  
    echo "Thank you for using this script!"
    echo "."
    echo "."      
    exit 1
fi

#Capture the current release
ubunturelease=$ (lsb_release -cs )

#Ensure we have zenity
type -P zenity &>/dev /null || { echo "I require zenity, installing it" >& 2; apt-get -fmy install zenity; }

#Check that the list of PPA repositories is there
if [ ! -e pparepositories.txt ]; then
    zenity --error --text "Sorry\!\nThe file pparepositories.txt is missing, I need that\!"
    exit 1
fi

##############################################################################
# Phase 1 - get the repositories that need to be downloaded manually and that
#           are used in that script
##############################################################################

# Ensure we have the place to put auxiliary files
if [ ! -e additionaldeb ]; then
    mkdir additionaldeb
fi

#GetDEB repositories --- great alternate source for any DEB package
if [ ! -e additionaldeb /getdeb-repository_0.1- 1~getdeb1_all.deb ]; then
    wget http: //archive.getdeb.net /install_deb /getdeb-repository_0.1- 1~getdeb1_all.deb -O additionaldeb /getdeb-repository_0.1- 1~getdeb1_all.deb
    http: //archive.getdeb.net /install_deb /playdeb_0.3- 1~getdeb1_all.deb additionaldeb /playdeb_0.3- 1~getdeb1_all.deb
    dpkg -i additionaldeb /getdeb-repository_0.1- 1~getdeb1_all.deb
    dpkg -i additionaldeb /playdeb_0.3- 1~getdeb1_all.deb
fi

# Medibuntu: Repository for Media related stuff
if [ -e /etc /apt /sources.list.d /medibuntu.list ]; then
    rm /etc /apt /sources.list.d /medibuntu.list
fi
wget --output-document= /etc /apt /sources.list.d /medibuntu.list http: //www.medibuntu.org /sources.list.d / $ubunturelease.list

#We must make sure we have apt-fast
add-apt-repository ppa:tldm217 /tahutek.net

echo run initial update
apt-get update -o Acquire::http::No-Cache=True

# After the first update we can install the mediubuntu key ring
apt-get --allow-unauthenticated install -fmy medibuntu-keyring zenity apt-fast

##############################################################################
# Phase 2 - apt-add-repository adds a lot of interesting ppa
##############################################################################

cat pparepositories.txt | while read aline; do
    if [ ! "${aline:0:1}" = "#" ] ; then
        add-apt-repository "${aline}"
    fi
done

#Now the repositories that have version specific information in them!
add-apt-repository "ppa:wvengen/ppa/ubuntu ${ubunturelease} main"

#Partner repository
add-apt-repository "deb http://archive.canonical.com/ ${ubunturelease} partner"

# Tor network
add-apt-repository "deb http://deb.torproject.org/torproject.org ${ubunturelease} main"

# Boot screen manager
add-apt-repository "deb http://www.sourceslist.eu/repo/ubuntu ${ubunturelease} main non-free"

# Nautilus-dropbox
add-apt-repository "deb http://linux.getdropbox.com/ubuntu ${ubunturelease} main"

# PlayOnLinux
add-apt-repository "deb http://deb.playonlinux.com/ ${ubunturelease} main"

# Daily is for adventurers only
# echo add-apt-repository ppa:ubuntu-mozilla-daily/ppa/ubuntu $ubunturelease main

#Final update without cache
apt-get update -o Acquire::http::No-Cache=True

###########################################
# End of the repository installer
###########################################
As usual YMMV.

Posted by on 26 April 2011 | Comments (0) | categories: Linux

The 5 questions a venture captialist will ask you


Of course you need a sound idea you have pitched, you need a well structured Business Plan and an energetic team. That's just for starters. Then be ready for the 5 questions:
  1. How much: The king questions. Are you looking for a few thousand, some hundred thousands or will you suck in millions. Closely followed by when do you need the money. You won't need it all upfront.
  2. How long: It doesn't matter if it is a loan, a grant or venture capital. How long will the money be committed. The interesting point here are: when will the startup turn cashflow positive, so money is coming back and when will the investment be concluded.
  3. How risky: the majority of startups fail. While you are convinced that you will make it, the VC most likely has a more cynical realistic view. There are many reasons, so you need to have thought about them. Know your market and competitors well
  4. How to exit: What is your end-game? Will it be an IPO, will "Google|{insert-company-here} just knock and buy us"? (are there other options?)
  5. How to exit early: What is the earliest point to tell that it isn't working. This is an interesting and important point in time. The general rule is: try to fail early. Once you know it, you can save everybody's time and money. Plan the checkpoint well. If the culture you live in permits: wear the badge of early failure with pride
These are deep questions, that require sound answers. The answers need to be prepared in different granularity: the one word napkin answer up to the research backed dossier. The more money for the longer period you seek for a risky business the better prepared you need to be.

Posted by on 22 April 2011 | Comments (2) | categories: Business

LotusLive Symphony, Google Docs, Office 365


In school my gentlemen are supposed to use Google Docs, I'm testing LotusLive Symphony at work and Microsoft just started Office 365. I will not (at least for now) compare features and functionality here. So all the large vendors seem to believe that "Cloud Office" is ready for prime time. It certainly highlights some trends and changes in our work culture. Here are my observations:
  • The browser as primary interface is dominating (this is NOT about where the data comes from). While some cling to specialised eMail clients, the reality is HTML (I still would make the case for Lotus Expeditor but mostly to join HTML interface snippets that come from different places). Spolsky was right about The API War (and that is 7 years ago)
  • We hardly write documents for print anymore (the only thing I print are routing slips for travel claims), so the notion of a page becomes less and less important
  • The online editors take a "good enough" feature set approach which seems good enough for me (YMMV). Anyway my future favorite HTML based editors have different use and purposes
  • They solve a very old problem that was highlighted first in About Face (the first book, out of print for a long time): Users don't want to bother about saving and locations. It would be subject to a comparison to see how the contestants fare.
  • Since the output format is more likely electronic, print formatting options aren't that important anymore, but the capability to output to WIKI, Blog, websites and (my current favourite): eBooks.
  • More and more important are versioning and collaborating up to the level of concurrent co-editing. All these has been traditionally been handled outside of the Office applications, so the interesting question: will we get back the component idea sported by OCX/ActiveX where one could embed office components in custom applications, but now with web standards (didn't take off before)
  • Meta data handling is still a little thin
But what would it take to make it fully successful? What about:
  • OneUI (pun intended): I don't want to go back and forth between different applications that do the same thing. So if I switch to a HTML based editor I want to do that wholesale. Just give me a local server with the editor on it. And I expect it to update itself. Also don't bother me locally with files and directories to look after (unless I want to), just sync them properly
  • Private cloud support: A lot of documents I'd rather NOT store on a US based server regardless how much I trust my vendor, so the application should work in my own data center too
  • Wiki style version control: I don't want to save whatever.v1, whatever.v2whatever.v3, whatever.v4. GIT and Wave know how to do versioning and I expect a decent UI to show the history
  • Interoperability: Can I invite external parties to one document (and its related actions)?
  • Deep reuse: can I mix sides or cell ranges from multiple sources either by copying or subscribing (so changes there are reflected in my doc too)
Of course there are much more ideas to think about... in due time.

Posted by on 21 April 2011 | Comments (3) | categories: Software

Add a "Collapse All" button/link to your categorized view


Quick tip for today. The XPages View control allows to display categorized views. While I don't like them in web applications one still wants to use them. In the Notes client categorized views have a handy "expand all" / "collapse all" SmartIcon pair which is missing in XPages. The shortest way to get these is to add an output script to your page:
XSP.attachPartial("#{id:viewColumn1}__shrink:1", "#{id:collapseAllElement}", "#{id:viewPanel1}", "onclick", function(){}, 0, "#{id:viewPanel1}_OUTER_TABLE");
You need to adjust the names in bold red. Works like a charm. Left to the reader: figure out the command for Expand all (or create a toggle control).
As usual YMMV.

Posted by on 20 April 2011 | Comments (5) | categories: XPages

Messaging Routing Puzzle - sharpen your pencils


How good is your grasp of routing structures and Domino configuration settings? Put it to a test. ACME corporation finally wants to replace their aging legacy eMail with a shiny new Domino 8.5. But like in every larger organisation they are very careful and opt for a prolonged co-existence between the legacy server and the new collaboration platform. So only one location shall migrate and depending on their success the others will follow. Here are the constraints:
  • Acme hates SPAM and viruses. So ALL messages from and to internet eMail need to be routed through servers/services provided by MessageLabs
  • Only one Internet domain acme.com shall be used.
  • The servers can see each other on a VPN connection
  • Users (at least on Domino) should see ALL users in the address book
Getting Routing right shouldn't be too difficult isn't it?
Now they wonder about:
  • Should both servers have public IP addresses? The MX obviously points to the MessageLabs servers
  • What connection documents with what settings do they need?
  • What Domain documents with what settings do they need?
  • Is a Smarthost configuration needed?
  • How does an entry of a legacy user in the Domino directory need to look like?
  • How can they eliminate the risk of circular routings?
  • Which server should mails get delivered to when coming from MessageLabs?
  • Which server (or both) should send out messages to MessageLabs?
  • How should messages from the Internet to Domino get routed?
  • How should messages from the Internet to the legacy mail get routed?
  • How should messages from the legacy mail to Domino get routed?
  • How should messages from Domino to the legacy mail get routed?
  • Should MessageLabs have access to the user list (so messages to unknown users can be rejected at lab level)?
  • What else can you recommend to watch out for? Obviously keeping coexistence short, but politics might prolong it
Can you help them?
Update: We are only interested in mail routing. No calendar, groups or migration. Plain routing only. The larger group of people are in the "S location" that also has better bandwidth.

Posted by on 06 April 2011 | Comments (3) | categories: Show-N-Tell Thursday

IBM's eMail endgame plan


When IBM announced Project Vulcan last year is was a not so specific vision of the future of collaboration. With the announcement of the IBM Social Business Toolkit at Lotusphere 2011, that vision got its technical underpinning: it is based on a number of open standards like OpenSocial, ActivityStreams, AtomPub and others. But hidden in the Press release is IBM's eMail end game plan. While the Notes R8.x mail client was a big step forward there is still that perception (I'm not discussing the validity of that perception here!) that MS-Outlook is the better mail client. I stated before: " Exchange mail servers are the collateral damage of users wanting Outlook", (Again: I'm not judging that "want"), just compare deployment diagrams. So what would happen if Outlook is out of the picture:
  1. Customer deploys the new Vulcan platform (whatever it will be called) on premise, in the cloud or in a hybrid model
  2. Collaboration improves dramatically using IBM Activities and the integration of Activity streams from SAP and other line of business applications
  3. eMail notifications are replaced by Activity streams
  4. Whatever email (Notes, Exchange) surfaces as Social Mail in the new UI. Traditional eMail clients become ghosts of Christmas past
  5. Office documents are moved to LotusLive Symphony (There is no reason why it needs to stay a cloud only solution) or other browser based editors
  6. Suddenly eMail becomes a "backend only" decision since the UI doesn't change when you swap your server. And in backends IBM has really big boxes that are very efficient.
I wonder if that works? (Keep in mind: IBM's plays are large enterprise plays, SMB always has been an afterthought)

Posted by on 01 April 2011 | Comments (3) | categories: Software

Google, IBM to back Kenya programming language for Swarm Computing


Since Oracle went loggerheads with Google over Java and James Gosling, its inventor, joining Google it was obvious that something is in store for the Java programming language. Now IBM and Google are joining forces for the next generation of programming language. Both partners have vast experience in building virtual machines (IBM with their J9 JVM, Google with the Dalvik VM) and operating systems (IBM with AIX, OS/390, z/OS and a few others, Google with Android and their undisclosed GoogleOS that powers Google search).
IBM Distinguished Engineer Noah Mendelsohn explains in an internal blog entry: " Everything comes together nicely. With J9 we have the VM experience, Dalvik runs on small devices, Websphere SMASH (a.k.a project zero) did prove that a VM can host multiple languages with different personalities and our Rational Tool family is ready to deliver. We took a close look at Microsoft's Singularity operating system and their general approach of modelling their tools after existing platforms and concepts. You could say: dotNet started as "Java minus the historic baggage", so now we create "Java reloaded" which will be the best of both worlds".
On the search for a new approach Gosling wanted to stay with his beloved beans, so Google and IBM approached Robert Chatley to expand on the excellent Kenya Programming language. Naturally Robert was thrilled to see his work entering the limelight. While you already can download and play with Kenya 4.6 and Kenya for Eclipse, the real interesting release will be KenyaNG (NG stands for " Next Generation") initially expected in Beta in Q4 2011. The list of features is impressive:
  • The KenyaNG VM will be able to run directly under a hypervisor, no additional OS required. Planned are version for Android compatible phones, tablets, Laptops and Desktops, x86 Servers as well as big Iron running on AIX or z/OS' hypervisor
  • The KenyaNG VM will support all Android APIs and extend them with parallel clustering capabilities. So intensive computations could be distributed over a swarm of mobile devices or a swarm of KenyaNG runtimes running in a cloud. Eliminating the overhead of a classical operating system makes it possible to move from cloud to swarm computing further optimising the use of computational resources
  • KenyaNG is completely running in managed code, so most attack vectors (buffer overflows, code morphing etc.) run empty
  • There will be various language bindings for the KenyaNG runtime, Java being the most obvious. Confirmed are: JavaScript, PHP and Python. In discussion: LUA, Erlang, Lisp, ADA and Cobol
  • Miguel de Icaza has announced that his team will port the Mono project to KenyaNG thus making it a viable destination for dotNet applications
  • Besides the KenyaNG core there are extension layers planned that seamlessly extend the platform with standardised capabilities around data, processes and workflows. The KenyaNG data kernel will offer a unified access to large scale data by directly storing structures defined in UML diagrams. The KenyaNG process engine will provide workflow capabilities that are based on BPML definitions
Kenya co-author Prof. Susan Eisenbach, head of "Distributed Software Engineering" at the Imperial College London is very pleased: " IBM's and Google's endorsement of Kenya shows that we have been on the right track for years using Kenya to teach programming to our student. The probably rapidly growing demand for Kenya skills will provide our students a competitive advantage in the job marked and further enhance the college's reputation for visionary work.". Wikipedia is still a little short on the language, but that will change very soon. And I hope we see XPages running on a Kenya core rather soon.

Read more

Posted by on 01 April 2011 | Comments (0) | categories: Business Software

I know what you did last summer


What sounds like an old horror flick becomes reality. While geeks joke about it, privacy advocates see a loosing battle taking place. But it gets really Creepy when an application written as a thesis is the perfect stalking companion. Ubuntu users do:
sudo add-apt-repository ppa:jkakavas/creepy
sudo apt-get update
sudo apt-get install creepy

Your mileage might vary

Posted by on 01 April 2011 | Comments (0) | categories: After hours Software