The Service Cloud

I continue to be impressed by the vision, capability, and reach of the platform.

The following video was taped at the 1/15/09 Service Cloud Launch event.

The first 23 minutes or so of the following video is a good “State of the Union” message for overall delivered by Mark Benioff Chairman & CEO of

The rest of the presentation describes the announcement of the “Service Cloud” extensions to the existing capabilities of the Service and Support Applications and extensions to the platform.

While the underlying concepts behind the idea of using the Internet to engage in conversations with your customers have been with us for some time (Cluetrain Manifesto) the growth of social networks like Facebook provide leverage to apply these concepts in ways that were not possible in the past.

It will be interesting to see how quickly companies move to embrace this level of engagement with their customers.


Installing Ubuntu 9.04 beta Under VMware Fusion

This morning I installed the recently released Ubuntu 9.04 Beta in virtual machine under VMware Fusion on OS X.

I usually download the “Alternate Install” ISO so that I have an image that will work for the widest variety of hardware and situations.

The installation went fine, but after the first boot following the installation the automatic installation of the VMware tools did not work and continued to fail. Initiating the “Install VMware Tools” function from the menu caused an ever increasing number of instances of Nautilus file browser windows to be opened. (Note: If this is happening to on your system use the “Cancel Install of VMware Tools” function from the menu.)

The first thing I tried was to run the Update Manager to apply any updates since the beta ISO was released. Sadly, despite applying about 165MB in updates the problem remained.

Next, I opened a Terminal session and ran the following command to ensure that I had an adequate minimal build environment for the installation of the tools. I thought that perhaps a build component was missing that VMware Tools was expecting to find.
$ sudo apt-get install build-essential

When that did not work I decided to try manually installing the tools.

I started by initiating the “Install VMware Tools” function from the VMware Tools menu, and then opened a Terminal window and performed the following actions:

  • $ df -v (to see the mount point of the virtual cdrom image that contains the install tools archive)
  • $ cd /media/cdrom (use the actual mount point on your system)
  • $ cp VMwareTools-7.9.3-146107.tar.gz ~/Desktop (use the actual filename on your system)
  • Clicked “Cancel the VMware Tools Installation” from the VMware Tools menu and went back to the Terminal
  • $ cd ~/Desktop
    $ tar xvfz VMwareTools-7.9.3-146107.tar.gz
    $ cd vmware-tools-distrib
    $ sudo ./
    and take the defaults to each question.

So far everything else seems to be functioning normally.

The next step is to begin working on a 9.04 release of pywebdev package.

Ubuntu v9.04 Beta under VMware Fusion
Ubuntu v9.04 Beta under VMware Fusion

Review: Balsamiq Mockups

Balsamiq Logo


Balsamiq Mockups is a cross-platform (Windows, OS X, Linux) application that is great at creating quick and dirty, back of the napkin style (in a very good way) user interface wireframes.

Example Mock-Up

The mockups created by the application are essentially electronic sketches composed of both pre-built and user constructed user interface components.


The application is capable of running as a browser based application or a standalone desktop application.

The desktop application requires the Adobe Air runtime. Since I already had installed the Air runtime on the two platforms that I tested Balsamiq Mockups (Windows XP and Mac OS X), installation simply consisted of downloading the “MockupsForDesktop.air” file and double-clicking on the downloaded file (in my case version 1.5.33) to start the installation.


Before running the application for the first time I quickly perused the available online help. The online help does a good job of covering the features and functions of the tool and because it is presented in a single web page it is easy to search and print if necessary .

Within 10 minutes of using Balsamiq I felt like I’d gotten the hang of the application and had produced my first complete mockup.

If you’ve used almost any kind of a drawing tool the features of Balsalmiq will be familiar and work as expected (e.g. guides, snap to grid, grouping elements, auto-alignment options, locking regions and layering).

The pre-installed library of UI components covers a range of common scenarios. Also there are more components that the Balsamiq community has developed available for download at One suggestion I have for anyone trying the application is to use the “Quick Add” feature, once discovered, I found that I used is almost exclusively to locate the components that I wanted to add to my mockup.

One interesting and positive characteristic of the mockup files themselves is that they are straightforward XML files. This opens up the oppportunity to translate the mockups into other formats.

Example Mockup XML:

<mockup version="1.0" skin="sketch" measuredW="631" measuredH="585">
    <control controlID="0" controlTypeID="com.balsamiq.mockups::BrowserWindow" x="43" y="18" w="588" h="567" measuredW="450" measuredH="400" zOrder="0" locked="false" isInGroup="-1">
    <control controlID="1" controlTypeID="com.balsamiq.mockups::TabBar" x="66" y="105" w="550" h="392" measuredW="256" measuredH="100" zOrder="1" locked="false" isInGroup="-1">
    <control controlID="2" controlTypeID="com.balsamiq.mockups::VideoPlayer" x="119" y="172" w="458" h="204" measuredW="300" measuredH="200" zOrder="2" locked="false" isInGroup="-1"/>

Mockups can also be exported into nice looking PNG files for inclusion into the document of your choice.

One item that would be a good addition to the product would be to add the concept of a master template where a master template would include all of the design elements that are repeated between screens (or pages). An ability to define a master template for a mockup would greatly simplify changes across a related set of mockups. Another welcome addition would be some way to organize a set related mockups together. Perhaps this could be accomplished by defining a set of container elements in the mockup XML files.

The application also has support for functioning as a Jira plugin. At work we are moving to Jira so perhaps I’ll have the opportunity to test that aspect of the product next.


The application is an easy to learn and easy to use tool to create user interface “sketches” that convey the essential aspects of a design without the inclusion of unnecessary detail. This is a tool that is effective for hashing out the form and function of an interface without obsessing about the look and feel.

For large scale user interface prototyping the lack of a master template is potentially limiting. Because of the usefulness this kind of a feature I wouldn’t be surprised to find out that this feature is on the radar for a future release.

The bottom line is that I’m looking forward to using this tool on future projects.

Tim Bray on the Future of the Web

An interesting interview with Tim Bray on The Future of the Web.

The topics covered are fairly wide ranging with the more interesting questions and answers in the last two thirds of the interview.

One of my favorite web frameworks Django is mentioned favorably several times.

I completely agree with his position regarding REST/WOA as being the architectural pattern that matters today.

On the topic of cloud computing Mr. Bray talks about the alignment of agile methods, open source, and cloud computing working to deliver “monetization at the point of value”. This seems to be a recurring theme.

He poses three questions concerning adoption of the cloud computing.

  1. What is the right level of abstraction for the cloud?
  2. How can one avoid vendor lock-in?
  3. How can one ensure security is handled appropriately?

Noting that the economics of cloud computing are compelling but the above questions need to be addressed.

His comments about enterprise adoption of what is currently today’s startup technology platforms is also interesting.

Being a Software Curator

Very interesting presentation by Jason Fried of 37Signals on software design.

Vodpod videos no longer available.

He begins by talking about how software is different from the physical world and outlines the following concepts:

Nice things about software development.

  • Low cost to change.
  • No physical constraints.
  • Can be created anywhere, no location dependency.

But a significant disadvantage that he describes is that you don’t have the same type of feedback loop as physical objects do. This means that bad design in the physical world is often “obvious” and bad design in the software world may not be quite as obvious.

He discusses the notion that good design is as much about making the right decision about what gets left out as what gets put in and describes the process as being a good Software Curator.

You must make your software a museum of careful decisions. You must make it a collection and not a warehouse.

He stresses the notion that you need to remember that you’re building for a group of users and not just a small (but vocal) minority.

“Bloat” is identified as a condition that once reached is irreversible and that you are better off starting over with a new product.

Some of what he is referring to has also been called The Second System Effect first coined by Mr. Brooks.

Next he mentions is the need to translate a customer’s request from what they are literally saying into what they are trying to say or intending to say.

I love the part in the Q&A that follows the presentation where he describes how it is easy to request a feature but hard to actually build things and that you should tell people who aren’t happy with your decision to not include a feature to try to build it themselves. I absolutely agree with his argument about the need to attach costs to requests.

So in order to be successful he argues that you may need to say “no” more frequently than you say “yes”.

Steve Jobs is mentioned as the ultimate curator in the industry today.

The philosophy expressed in this talk has a great deal in common with John Gruber’s Auteur Theory of Design a.k.a. Why Bad Taste Rules in Business talk. Mr Gruber’s talk is recommended viewing for anyone interested in this topic.

Note: Found at Trev’s Blog.

Sun unveils their Cloud Computing Platform

On Wednesday March 18th Sun unveiled their Cloud Computing Platform. Comprehensive coverage of the event is available from Sun.

The announcement has received coverage from such different outlets as NPR and Business Week.

One of the more interesting aspects of the platform is a commitment to a set of open APIs.

As part of the company’s commitment to building communities, Sun also announced the release of a core set of Open APIs, unveiled broad partner support for its cloud platform and demonstrated innovative features of the Sun Cloud. Sun is opening its cloud APIs for public review and comment, so that others building public and private clouds can easily design them for compatibility with the Sun Cloud. Sun’s Cloud API specifications are published under the Creative Commons license, which essentially allows anyone to use them in any way. Developers will be able to deploy applications to the Sun Cloud immediately, by leveraging pre-packaged VMIs (virtual machine images) of Sun’s open source software, eliminating the need to download, install and configure infrastructure software. To participate in the discussion and development of Sun’s Cloud APIs, go to

I hope to have some time to take a look at the APIs in more detail and compare them to other Cloud API standardization initiatives but the notion of virtual machine image portability and a standardized set of meta-data about application deployment and configuration to a cloud is certainly appealing.

In addition, the linked video is a demonstration by Dave Douglas and Lew Tucker on the ability for cloud users to create a “Virtual Data Center” (VDC) by dragging and dropping system components from a palatte and linking them together into a service.

More information about the overall initiative can be found here and also my complete list of bookmarks about the platform.