People@Ephox

People@Ephox brings together both official and unofficial blogs about Ephox. The aim is to provide a central place to learn about the people, products and culture of Ephox.

Australia’s iPhone plans are bad, but not horrible

Andrew Herron - July 05, 2008 03:48 PM


I’ve been thinking long and hard about the iPhone, but I wasn’t getting my hopes up because I knew the data plans would suck in Australia. There have been a lot of complaints floating around that the iPhone 3G is expensive, and plan prices outside of the US are utterly crap. Well, as I suspected, you can add Australia’s iPhone plans to that list.

The first out was Telstra - it looks like they’re following the US model of data packs attached to your mobile plans. I won’t bother listing the phone or voice prices, because their data prices are fracking outrageous.

A couple of days ago, Optus joined in with their announcement. A little bit better, but notice a trend here? No unlimited data, just like the home internet plans in this country. Optus give you unlimited data for the first month if you sign up in August, but I can see that leading to a mountain of customer complaints when the September bills skyrocket.

So here’s my comparison. According to gizmodo, the cheapest iPhone TCO is $1975. At the current exchange rate that’s $2050. There are a wide range of TCO options on Optus, but the plan I’m considering is the $59/month regular Optus plan (not the cap plan, look further down) because it has the best balance of data vs price. The 24-month TCO to is $1464 (or $1584 for 16gb).

There are arguments that can be made both ways on if this is a good deal or not. Let’s look at the differences.

  • No up front cost on the Australian plan. This is actually pretty normal for phone deals over here, and is nice. On a 24 month contract, the handset repayments only total $168 on the 16gb phone!
  • Australian plans bundle voice and SMS together. However, text costs 25c a pop.
  • 450 minutes on the American plan, if you send zero texts and use the right plan bonus the $60 Australian plan will come out to around 100-150 minutes at 2 calls a day (we pay a 25c flagfall just for the privilege of calling someone).
  • 700mb Data. WTF?

I can’t find anywhere that gives a good indication of average monthly data usage on an iPhone, but it seems to me that an iPhone without an unlimited data plan isn’t much better than an iPod touch.

The one good point in all this is the “relatively” low 35c per MB data overcharge. To any normal person this is expensive, but most Australian providers (including Optus on prepaid) charge you 2.2c per kilobyte, so this is an amazing deal by comparison.

We still have the third iPhone provider, Vodafone, to announce their prices - but considering it will cost me $55 if I cancel the Optus contract I’m on, it would have to be an outstanding deal to tempt me.

I think that either way, I’m almost certainly going to cave and get a 16gb. I have less than 9gb of music and only add ~250mb a month; even with the 3gb of podcasts I have queued up there would still be plenty of headroom. In theory my data requirements dictate I should wait for an eventual 32gb model announcement, but waiting for hardware updates only leads to pain and frustration (WTB mac mini update!)

Quarterly Product Update Recording Available

Ephox Weblog - July 04, 2008 12:08 PM

Below is the recording of the July Quarterly Product Update for those who missed it. This was a recording of the North American time slot, hosted by Michael Fromin our Director of Products.

Backups Of The Cloud

Adrian Sutton - July 04, 2008 11:36 AM

Mike Gunderloy provides an overview of the terms and conditions from three of the popular online office applications and questions who owns your documents? The more important point that comes out of it though is who is backing up your documents? When people move data into “the cloud” the often forget that ultimately having backups is their problem and they should only trust themselves to do it.

One thing that’s clearly missing is any sort of backup guarantee. While you may feel more secure storing your documents on Google’s or Zoho’s or Adobe’s servers than your own, that security is not something that you’re promised. Any of the three can lose your documents or terminate your ability to get to them at any time for pretty much any reason, and you’re out of luck.

That’s precisely why I ensure that any data in a hosted solution of any kind is also backed up locally. I’ve already been through the experience of hosts going broke, or just plain stuffing up their backups and having to restore from my local copy and in time everyone will.

Vendors providing these services need to start thinking this through better too - how are your users going to get a full backup of all their data? In most systems it means going in a manually exporting each individual document and in many systems it’s just not possible at all.

Top 10 Tips of Digital Entrepreneurs

Andrew Roberts - July 03, 2008 01:34 AM

Brad Howarth spent some time talking to a variety of entrepreneurs, including me, on what it takes to be successful for an article in SmartCompany. The collection of secrets are:

  1. Make every dollar count
  2. Become a global economist
  3. Don't lose focus
  4. Listen, adapt and change
  5. Cultivate free advice
  6. Learn to sell
  7. Become a name dropper
  8. Keep your team informed
  9. Be wary of consultants and advisers
  10. Be talked about

My original three 'tips' I sent to Brad for the story were:

1. Focus
Initially Ephox targeted the broadest possible market we could. As a start-up in Australia this meant the small business market before trying the education market. Both of these efforts resulted in some great media coverage but few sales. When we started to focus on partnering with larger software companies such as IBM, Oracle and Vignette we were able to access much larger opportunities, build alliances and tailor our product development. Large customers do see value in the ‘next big thing’ but more often than not their concerns are around more mundane issues such as integration costs, reference sites and quality.

2. Sales Execution
Despite being a highly technology-oriented founder I always had a great appreciation of the importance of sales and marketing. However, appreciating the need for sales and marketing and translating that through to significant sales was another thing. We wasted a lot of business development and marketing activities on opportunities that were difficult or impossible to translate into sales. It is critical for a startup to have a professional discipline around the sales process and the day-to-day execution of sales.

3. Think Long Term
Continuous improvement of product, sales, marketing, engineering and operations takes time to add up and take hold. Ephox took three years to get its first $1m in sales, 18 months to get the next million, 12 months for the third million, 10 months for the fourth, 8 months for the fifth, 6 months for the sixth, 4 months for the seventh and is now on course for its first $1m month. I have always had an unshakable belief that if we improve every part of the business every day of every year our efforts will translate into superb results over time. In my experience, the cliché that starting a business is a marathon and not a sprint is completely true. A smart, committed and passionate team who share a view of the long term is essential.

Getting the URI to a image or file component with the IBM WCM APIs

Ephox LiveWorks! - July 01, 2008 03:00 PM

In order to create a link to a file or image component in the WCM repository, there is a 4 step process.

  1. Create a renderer
  2. Set the default context on the renderer to a site area.
  3. Render out a link tag that references the component.
  4. Get the actual desired url using a regex

The code which you can use as a starting point for doing this is included below:

//create a renderer
workspace.createRenderingContext(
    portletRequest, portletResponse, Collections.EMPTY_MAP);
//set the rendered content to a site area
renderingContext.setRenderedContent(siteArea);

//render the component (which will create an a tag)
String linkToComponent = workspace.render(
    renderingContext, fileOrImageComponent);

//get the url for the component (using the below code)
result = getUrl(linkToComponent));

//regular expression that can be used to refer to the rendered link
public static final Pattern IMG_SRC_PATTERN =
        Pattern.compile(
        "<\\s*img\\s[^>]*src\\s*=\\s*\"([^\\\"]*)(\")[^>]*>");

//used a regex to get the url for the component
String getUrl(String url) {
	String result = "";
	Matcher matcher = IMG_SRC_PATTERN.matcher(url);
	boolean found = matcher.find();

	if (found) {
		result = matcher.group(1);
	}
	return result;
}

 

Old Skool UI Design

Brett Henderson - July 01, 2008 03:20 AM

Andy recently pointed me at an interesting article, “The Paper Version of the Web” that shows some great examples of UI designs sketched on paper. In the article Sean collects together some of the publicly available UI sketches for well known websites like Flickr and Twitter.

At Ephox, we have quite a lot of UI design required and as such we’ve tried a few different things from quick Java mock-ups to Photoshopped images. To me however the best solution is the paper sketch. Why, well other than it being pretty cheap to develop and modify, anyone can do it, including the “client”. Finally, there’s also no chance you will be tempted to use the “prototype/mockup” as the basis for the final version.

CMS and Mac

Adrian Sutton - June 30, 2008 01:22 PM

Some time ago now, James Robertson blogged about the poor state of Mac support in CMS products. Quite rightly he identified the WYSIWYG editor as the most common problem area which of course got my attention. It’s over six years ago now that Ephox switched over to Java from ActiveX to get support for Mac and it’s probably the smartest thing we’ve ever done. Not because we have vast numbers of Mac users, but because it only takes one Mac user to sink a deal.

It’s taken me so long to post because just talking about your Mac support has no credibility, so I wanted to show copy and paste on Mac - the precise task that James found so many problems with. So I present for your entertainment, copy and paste from Word on a Mac, the 30 second demo, complete with cheesy music. Naturally in QuickTime with iPhone optimized versions built in.

I had wanted to go over the top and do it all in the style of an old silent movie but there’s only so much time I can justify on this…

Ephox's Quarterly Product Update Webinars in July

Ephox Weblog - June 26, 2008 05:23 PM

Get the most out of your Ephox investments by attending our Quarterly Product Update Webinar. See the latest enhancements to EditLive! and find out what is coming in the future.

The update will cover:

  • The recent release of EditLive! 6.4 and what it can do for you today
  • Our newly released integration with RedDot
  • The upcoming EditLive! Enterprise Edition package with a collection of useful add-ons regardless of which system you're using. 
  • A sneak peak at the upcoming integration with Lotus Quickr
  • A brand new product from Ephox that brings simplicity, productivity and the best technologies from Web 2.0 to your CMS

The webinar is hosted by Ephox's CTO, Adrian Sutton, Product Manager, Damien Fitzpatrick and Director of Products, Michael Fromin - who are directly tasked with steering Ephox's product strategy. There will also be plenty of opportunity for you to provide your feedback and ask questions of our product team.

To cater to a worldwide audience, the webinar will be run in three time zones, register for the most convenient one below:

Europe, July 2 10:00 AM – 11:00 AM BST (London Time): https://www2.gotomeeting.com/register/623785051

US,  July 2 11:00 AM – 12:00 PM PDT (California Time): https://www2.gotomeeting.com/register/800101784

Australia, July 3 11:00 AM – 12:00 PM EST (Sydney Time): https://www2.gotomeeting.com/register/399057551

Australians Fatter

Andrew Roberts - June 25, 2008 10:18 PM

In a high steaks competition Australians are now apparently out-eating Americans at the Obesity Games.

Bloody hell, lighten up!

ACT Split in two

Robert Dawson - June 25, 2008 04:51 AM

The Australian Capital Territory can be considered to have two parts. The first (well known) part is halway between Sydney and Melbourne, and is the site of Canberra (see below map of the ACT).


View Larger Map

The second is Jervis Bay. (see below map of Jervis Bay).


View Larger Map

Certificate Expired Warning Dialog Appears

Ephox LiveWorks! - June 24, 2008 03:00 PM

Symptom

When loading EditLive! for the first time in a browser session, a security warning dialog appears stating that the certificate has expired. Note that this is slightly different to the initial security warning dialog which states that the certificate is valid - that’s normal and users should choose to “Always Accept” the certificate to prevent it reappearing.

Cause

For security reasons, the EditLive! applet is signed with a digital certificate that verifies that the applet is provided by Ephox and that it hasn’t been modified maliciously. This lets users know that it is safe to run the applet. The digital certificates used to do this are issued by a trusted issuer who verifies that Ephox is a legitimate company, however the certificate can only be issued for a specific period of time - usually two years.

The security warning appears once the digital certificate used to sign the editlivejava.jar file has expired.

Solution

The simplest solution is to update to the latest version of EditLive! which will be signed with a valid certificate (we renew the certificate some time before it expires to help avoid this issue).  Alternatively, users can simply choose to always accept the certificate again and the warning will not reappear.

Subversive government seems to be the in thing these days

Andrew Herron - June 24, 2008 01:33 PM


It looks like the doomsday predictions from a couple of weeks ago were true - Britain pushed the Lisbon treaty through, it took a rich old guy suing them saying it’s illegal without a referendum to stop it (and even that will probably only last a week).

It’s not just Europe though, apparently Americans are putting all kinds of things into their housing bills these days. Seriously, it should be illegal for politicians to sneak something into a Bill that has nothing to do with the main topic of the Bill.

It’s no wonder the governments in power are so unpopular (we all know about Bush, but Brown has his problems too). As the internet becomes more pervasive, so does all the information people dig up.

EditLive! for IWWCM 5.1.0.x 3.2.1.14

Ephox Releases - June 24, 2008 03:19 AM

Includes EditLive! version 6.4.1.49.

EditLive! for IWWCM 6.0+ 3.2.1.20

Ephox Releases - June 24, 2008 03:17 AM

Includes EditLive! version 6.4.1.49.

Can the Government be Agile? - discussion with a PMP PM

Robert Dawson - June 22, 2008 10:55 PM

I’ve enjoyed my relationship with my brother-in-law for a long time. We’ve often talked about business and career, sharing where we are at, and the directions we are taking.

Over the past few years Paul has been doing a great job as a project manager in Canberra, in particular his involvement with the Department of Defence in the successful and ambitious e-voting project (Remote Electronic Voting Federal Election 2007). It has been great hearing about his work, and some of the stories around it. He has also been sharing his growing understanding of project management, and some of the courses and information he has been collecting, and applying. I have been listening with interest, and a degree of skepticism, thinking that much of what he has been learning would not apply directly to me, as it seems to be focused on heavyweight/rigorous methods, and I very much prefer working in Agile environments, where good smart people are encouraged to do great work.

So it was with great interest that I was recently listening to him discussing and presenting some of his recent thinking and work around scrum. Paul has been looking at how to apply scrum to government projects, and has some great ideas about this. I was particularly interested to hear what he saw as the strengths that scrum would bring, and the advantages he saw in outcome based results (delivery of working software that meets outcomes) versus delivery based results (traditional waterfall delivery of documentation is part of the results).

I look forward to seeing Paul’s work going forward, and to seeing how he continues to apply agile techniques to his work. If you are in Canberra, and are looking for a great contract or consultant project management, it is well worth talking to Paul and the team at Barton Institute of Management.

Auto coloring of child nodes using Prototype

Suneth Mendis - June 19, 2008 07:32 AM

Inspired by David F. Miller's work in 2004 to color alternate table rows (Just like iTunes) I wrote this simple Prototype based script to do the same and a little but more. This script will color any list given that the list belong to a single parent. 

Check out the demo where the script is applied to a table and an unordered list. 

The script 
function Zebra(parentNode, styles) {
    this.colorMe(parentNode, styles);
}

Zebra.prototype = {
    colorMe: function(parentNode, styles) {
        if (parentNode && styles) {
            var styleList = styles.split(",");
            var parents = $$(parentNode);
            for (var i=0; i < parents.length; i++) {
                var currentParent = parents[i];
                var children = currentParent.childElements();
                for (var j=0; j < children.length; j++) {
                    var currentChild = children[j];
                    var k = (j + (styleList.length)) % styleList.length;
                    currentChild.addClassName(styleList[k]);
                }
            }
        }
    }
}
Usage

Usage is pretty simple.

new Zebra(ParentNode, List of styles you like to alternate);

Example
.odd { background: #fff; }
.even { background: #edf3fe;}

new Zebra('ul','odd,even');

The beauty of it is that since its CSS driven, you can have any color imaginable and any number of colors to alternate.

Backups pt 2

Dylan Just - June 15, 2008 01:25 PM


My previous backup rant was a prelude to my actual problem: I need a new home backup solution.

Previously, I’ve been using Vembu Storegrid (see prev post) to backup between my two windows PC’s.. and it worked quite well. One of these machines died, and I restored the backup no worries. Yay Vembu! Said machine was replaced with a Mac… so it can Time-Machine its little heart out… but I need something for my server and vista box.

Backup between Windows and Linux is a bit tricky. I can do a “client push” with software on the PC, to a samba share… works well enough… except that I have yet to find anything of that description which doesn’t suck.

I recently tried out Genie Backup Manager… it had favourable reviews, and I was quite impressed by it but it failed a few tests mentioned on my previous post. Can’t quite remember - I think it was a “reporting fail”, a “network share password” fail or a “actual backup fail”.

Vembu is still in the running. Unfortunately, the free version is windows only. Their “professional” version supports Linux, though, so I’m trialling a demo of it at the moment. It’s a little expensive - will cost me either $100/year, or $200. Not too bad, though. The real problem is trying to actually get it to run on my Linux box. I found one (confirmed) bug in their installer, then hit an issue starting the daemon. Hopefully, their techs can resolve that one. It smells like one of those “god everything is 10x more painful in Linux” type of issues.

The other main contender is Windows Home Server, which looks pretty cool. I’ve got a the new Power Pack 1 Release Candidate set up on a spare box to test out. Its based on Windows 2003, which is cool - win2k3 for $200 is definitely cool. My checklist for it would be:

  • Is its backup any good?
  • Can I set a disk aside for vmware, so I can run Linux? I’d like to keep running Linux for SVN, Apache and MySQL.
  • Drive pooling - just want to see it in action.
  • Will I have to ditch AD? I probably want to do that anyway.

If that’s all good, I’ll consider changing my Ubuntu server over to WHS.

My girlfriend thinks its strange that I’m thinking of moving towards windows…. but, if the shoe fits. It comes down to what I use the server for: web development, fileserving, backups.

  • Web dev: I need both windows and linux.
  • Fileserving: File sharing is simple on windows; painful on Linux.
  • Backups: …. this is the key, I guess. I have yet to find a whole lot of backup software I’m happy with, on either platform. Currently, its vembu vs whs, and its neck-and-neck.

I’ll be playing with Time Machine soon on my girlfriend’s macbook. I have high hopes. I worry, though, that I won’t like it, and, well, maybe I’ll never like any backup software. :)

Buddha would tell me that the real problem is that I have too much data. If I had little or no data, this problem would go away quite quickly. If only I were a buddhist :)

Backups pt 1

Dylan Just - June 15, 2008 12:54 PM


Backing up has always been something I’ve taken very seriously, so I’ve spent a lot of time investigating backup software. A couple of years ago I trialled about a dozen freeware/demo products (mostly from download.com) and deemed them all to be awful, except for vembu storegrid.

Storegrid is a peer-to-peer backup system - each node acts as backup server and client. You allocate a certain amount of space on each node for backups, create schedules, and it happily backs things up for you. The thing I like most about it is its architecture. Each machine runs a web UI (php+apache) with a system service that does the file transfers etc (using rsync). Its solid and it works. I still have a few gripes, but overall it does the job. Its cross-platform, and has a demo version that lets you use 3 hosts.

It doesn’t sound like much, but in the free/cheap market, there are so many very common and stupid mistakes. Here are the common ones I’ve found:

  1. Not running as a service.
    This drives me nuts. Say, it has a tray icon. You close its window, and its still running. It might even have scheduling. It looks like a service. But if you log out, it closes. Ludicrous.
  2. No logging/reporting.
    I have to know if it works or not. If it doesn’t - get in my face.
  3. Nagware
    Don’t get in my face too often!
  4. Using the windows scheduler.
    Now, sometimes this is ok. The old ntbackup did this, and that was kinda ok… but at least the setting of the schedule was internal. I should not have to look up command-line options and create entries myself.
  5. Not having a scheduler at all.
    Hey, manual backup works for lots of people, but I have a lot of data and I want it backed up automatically.
  6. Scheduling without asking for credentials.
    Ok, so you’re going to fire up at 3am when I’m not logged-on… so what user credentials are you going to use? Did you think of that? “Local/network Service” user is fine, but give me an option for that.
  7. Backing up to a network drive, without asking for network credentials.
    Again, firing up at 3am, nobody logged in, connecting to network share. What if I don’t have SSO to that? Who you going to auth as?
  8. Too many/too few options
    This is a hard one to balance. Everybody backup needs are different, so it needs to be configurable. However, it needs to be simple, otherwise people will not use it - scare a beginner user, and they’ll just not bother backing up at all. Vista’s built-in backup is too simplistic - I can pick the source drive(s) and location, but that’s it. And I have to include the system drive - that’s about the only drive I don’t care about. Giving fine-grained options is standard. Its interesting that having separate basic/advanced modes actually works in backup software, whereas its generally frowned upon in most other areas.
  9. Proprietary formats
    Some use these for security, which is fair enough, but if I have to recover from a disaster, plain old files are much less error-prone.
  10. It just doesn’t work.
    I have zero tolerance for software that fails a backup for no apparent reason. This is software whose #1 requirement is to be reliable. Inexcusable.

So, those are my gripes. What’s my wish list? And what have I seen that I like?

1. I would like to see “schedules” dissappear, in favour of something more intelligent.

Schedules encouraged to do your backups at, say, 1-6am when you’re computer’s not usually being used. This encourages you to keep the machines on, wasting energy. And what about laptops? They just don’t get left on overnight.

But why do we have backup schedules? The main reason is so that performance isn’t degraded during a period of normal use. So, we guess a time of day when there’s likely to be low usage.

There are better ways of determining when a computer is not in use:

  • Its locked.
  • Its not logged in.
  • No user input for x seconds
  • Screensaver is running
  • CPU/disk/network load is low
  • Just ask the user. “Hey, I’d like to start a backup. Is that ok, or do you need every ounce of performance right now?” Or, let the user flick a switch saying “off limits”.

Don’t get me wrong - schedules do have benefits. You take a predictable performance hit at a known time. You have a discrete process that starts and finishes. That’s cool - but give me the option.

I’ve seen some software offer a “continuous” backup option - I think this is along similar lines. I’ve also seen antivirus software with settings that let it scan more agressively during screen saver.

I think this “continuous” backup scheme is an ideal replacement to the “daily” backups, but scheduled weekly/monthly etc backups would still be desirable.

2. Simple, elegant storage

I tried out “Second Copy”. While it failed the “run as service” requirement, it met the “no proprietary formats” requirement quite nicely. It kept the most recent backup in one folder, in plain files in the same structure as the originals. So, to restore from this, its just a file-copy. Older versions of files were stored in a different folder (not sure of the exact structure). The software could still restore from any point in time from the “incrementals” folder. Such a simple scheme, and effective.

I’ve seen some software use plain old files, but store in a versioned structure (eg myfolder/1/67/123/myfile.txt). This is ok for single-file restores, but you lose the structure. Sure, if you use the backup software to restore, it doesn’t make a difference what format its in, so long as it can restore… but plain files are more reliable.

3. Reliable file copying

Back to vembu - I like that it doesn’t use the OS’s file copy mechanism. Particularly with what we’ve seen from Vista, but, in general, an OS’s file copy isn’t designed for the performance and reliability that backup software requires. Its designed for usability and simplicity. But, you don’t want to reinvent the wheel… so Rsync is a perfect candidate.

4. Drive pooling

Backups take space. A backup could have many copies of the one identical file - might as well only have one (i.e. incremental backups or single-instance store).  But, yet, it is a backup - its good to have several copies. So, put the different copies of different disks.

iFrame dynamic resizing revisited

Suneth Mendis - June 05, 2008 07:03 AM

Its time to revisit the burning question once again!

“Is there a reliable way to dynamically resize the iFrame height according to its contents?”

Well according to my previous post I thought I nailed it! But I soon found out it wasn’t all that reliable! :( So it wasn’t the silver bullet I was hoping for. 

So as a part of “E2″ development, my mate Rob and I started on a journey to conquer this once and for all! Our findings were some what disturbing!

First of all, there ISN’T a silver bullet that solves the problem for all the browsers. The basic problem is that iFrames (along with applets) are handled differently on browsers as compared to other elements. In fact iframes are not handled by browsers at all, but by the OS. So the solution will never be the same for all the browsers. So heres what we found. 

IE 6/7

The solution is a nasty CSS hack. Until yesterday I have not heard about this trick. The trick is to have an expression like this in your CSS.

.iframe { height: expression(document.documentElement.clientHeight + "px"); }

IE being a special browser, it detects this expression and resize your iFrame accordingly. But there is a down side to this. Having expressions in your CSS affects your site’s performance. But having battered by this issue for days and nights, I am willing to go down this path for now!

FireFox 2 and 3 / Safari 3

Yes, they both behave the same way! So trick here is to wrap your iframe with a DIV tag and assign an  absolute positioning to the DIV. 

<div id="iframe_wrap"><iframe scrolling="auto" id="iframe" name="iframe" class="iframe" frameborder="0" src="source_page.html" width="100%" height="100%"></iframe></div>

And then apply styles to the DIV tag like below. 

#iframe_wrap {
position:absolute;
top: 60px;
left: 0;
right: 0;
bottom: 0;
}

This nice trick will get ride of the “double scrollbar” phenomenon as well. 

So there you go. The job is done!!! (At least for now) Special thanks to Rob for doing most of the “googling”!

Product Releases and 20% Time

Brett Henderson - June 04, 2008 05:18 AM

At Ephox we introduced the concept of Creative Coding Afternoons (or CCA) back in 2006 based loosely on the Atlassian and Jotspot Hackathons. Occuring Friday afternoon every 2 weeks, the original idea was to develop plugins for our editor based on the public APIs. Essentially do things that our clients could do. The best of these were posted on our LiveWorks! site as freely downloadable components.

Our CCAs are evolving into more advanced research that resemble 20% time, with projects spanning many CCAs. So when Atlassian announced it was going to emulate the Google’s 20% time model I was keen to see how it worked out for them.

It was with interested then that I read the recent followup on the progress over the last 10 weeks. In the post Charles reflected on their progress to date with a series of questions put to the developers.

The one I was most interested in was “How much time have you had to work on it?”. Charles summarised the responses by saying

almost all the responses were in the 2-3 day mark, and none higher.

This is closer to 4-6% for the 10 weeks they’ve been going than 20%. Why is this low?

In theory, saying to developers you can devote 20% of your time to do research/personal projects should result in 20% time being spent. The problem, as I see it, is that most project are on tight deadlines, and developers are committed to completing those project related tasks. A fact that seems to be borne out by the following response 

 …the biggest problem for developers finding time to work on their projects was fitting it around their scheduled work

So what’s the real problem? Well your projects are planned but no time is set aside in the schedule for 20% time activities. When your developers start working on 20% time, the schedule starts to slip, eating into “buffer” time. If the features then require that buffer time, how does the project manager deal with it? Easy, cancel 20% time.

How do we deal with this? The answer I think lies in a response to the question “if you could improve 20% time in any way, how would you?” 

“Mandate that particpants (sic) have to spend 2 days a fortnight on it, otherwise it's difficult to keep the pace up to 20%”

So, when planning a project, not only do we need to put aside time for feature overruns, but also time to accommodate 20% time. Again, all good in theory but at the end of the day, as a product company, we need to deliver product. The trick is to balance the successful delivery of new releases with the obvious benefits that can come from 20% time. 

I’ll be very interested in how Atlassian handles this over the remainder of their trial.

 

Brisbane JAOO - Conference Day 2 - Morning Keynote

Doug South - May 31, 2008 11:39 AM

The morning keynote was given by Erik Meijer,Why Functional Programming (Still) Matters.

Creating software is all about abstraction, which is reducing information and retaining only relevant information. Unfortunately the industry has been abstracting the wrong details for the last 50 years...

There are 5 Dilemmas:

1) Useful versus Useless

I'm not sure I really understood the point Erik was trying to make here, but it was along the lines of the things that makes programs useful are the things that make them vulnerable to misuse, such as data as code and component interaction leads to XSS, buffer overruns, virus and BSOD.

2) Rich versus Reach

Flash, Silverlight and Java are rich (proprietary) whereas HTTP, HTML and JavaScript have reach (open standards). Whatever :)

3) Local versus Remote

Local is easy and remote hard. Local is what is taught in school. Remote is interesting and more like real life development. Erik defined attributes of local as:
  • compositional
  • sequential deterministic
  • implicit
  • synchronous
  • homogenous
and remote as :
  • concurrent
  • nondeterministic
  • explicit
  • asynchronous
  • heterogenous
  • noncompositional
4) Change versus Inertia

Geeks like to build cool things. People just want to get things done. Marketing tries to make people believe that the cool new things that the geeks built are the things they need to get stuff done.

Geeks p(success) = F(10 X improvement * Moore's Law)
People p(success) = F(perceived crisis / perceived pain of adoption)

see "The Change Function"

The fifth dilemma seems to be Erik's main point...

5) Pure versus Impure

Erik gives an example of some code (in C#?) that does a couple of queries including output that outputs in an order that is non-intuitive. The issue is that the code can be read as local yet the code is remote and the side effect of this is that things don't occur in the order that they have been coded.

Another couple of examples (C# again?) shows an unchecked exception happening beyond where it would appear it should occur and a file being disposed before it is used, again local versus remote.

The main point of all of these examples is that there are side effects occurring that are not obvious from the code, i.e. the relevant information has been abstracted away.

Erik continues highlighting side effects by stating that even object creation has side effects, i.e. two different heap spaces are set aside for two different objects of the same class.

Code has side effects which are not obvious from reading the code, that is the side effects of code are as important as the parameters and the return value. But you can't get rid of side effects.

Erik states that Fundamentalist Functional Programming is the answer (pure functions with explicit effects) where a functional language is defined as a language where functions are first-class citizens and given a function and a set of parameters, the function returns the same value ever time it is called with the set of parameters (equality-preserving, i.e no side effects). I believe it is here that he also makes the point that parameter evaluation should be lazy, but I have to admit that where this was mentioned or the importance of it was lost to me.

Monads allow the declaration of a functions side effects and he gives a few examples of what this means the mapping to and from functions with monads.

Then Erik considers whether or not normal programmers can understand what is required and can functional programs interact with legacy code. He gives some examples though all a little bit underwhelming in convince me that either is possible without much pain and gnashing of teeth.

He concludes by giving a litmus test for determining whether or not a language is a fundamental functional language and suggests buying a Haskel book and helping to persuade MS to produce a fundamental functional language.

While I found the talk interesting, it was rather unconvincing in its final conclusions for me. I'm in no rush to run out and buy yet another language book and I doubt I'll ever tell anyone what language they should implement. Erik's real crisis is just a perceived crisis and I doubt the industry would change to Haskel anytime soon based on the evidence from this talk. In the end, this talk just seems like an intellectual exercise to get people to think...

Brisbane JAOO - Conference Day 3

Doug South - May 31, 2008 03:17 AM

Day three, pretty much the same as day 2, which is a good thing. I'll follow up later, but two snipets of the day.

Bob Martin talking about Clean Code: "Code in a try block is living in a fantasy world where nothing goes wrong."

End of the day chatting with Erik, Gregor, Patrick and Joe and then being invited out for dinner! (Sadly I was too tired to take up the offer :( ).

Formula 1 Software

Damien Fitzpatrick - December 20, 2007 02:12 AM

Don't you just love analogies?  Well I hope you do because if you're about to be on the receiving end of one.  I was watching an episode of the British car show Top Gear yesterday with a segment featuring Richard Hammond attempting to drive a Formula 1 car.  Now if you're like me, or Richard Hammond as it turns out, you'd be sitting there thinking, "driving a car, even if it is a Formula 1 car, how hard can it be?"  It turns out that, the answer is "very!"

This particular situation struck me as having parallels with our development of EditLive! and web based rich text editors in general.  At the highest level EditLive! is basically a word processor for the web.  It's got most of the features that you might find in Microsoft Word or Open Office with some tweaks to make them more applicable to web documents e.g. generating standards compliant HTML for starters.

At the outset this doesn't sound difficult, after all we've had many of these features in Microsoft Word, Open Office or even the browser (when it comes to rendering) for years.  Yet that apparent ease doesn't parallel with Ephox's experience in development.  We have been, and still are, developing EditLive! in its present form for 6 years now, since I started at Ephox in fact.  However, that's nothing compared with MS Office that's been around for over 20 years!  The features that we all take for granted in Microsoft Office are (mostly) well designed and the result of the significant levels of investment that you'd expect from Microsoft.  It's when you take a much closer look at the web standards and user behaviour that you start to realize how complex the task of creating a word processor is (cue the Formula 1 analogy).

As the product manager for EditLive! I've experienced this effect for several years now when defining the specifications for EditLive!.  Whether it's a specification for track changes, how specific keys work in various situations (e.g. "Enter" or "Tab") or even down to the level of how text renders on the screen each area has a surprising amount of detail to consider and nuances to implement.  For instance, in HTML try checking out the difference between PTs, PXs and EMs for fonts and did you know that PXs can be considered a relative measurement?

At Ephox we've put a lot of investment into these little things in the past because we believe the little things are important for authors.  The fact that the tab key indents a list in some cases and in others navigates a table or adds a table row - important.  The use of the Enter key to insert a paragraph in some cases, a <br> in others and in others still a list item - important.  The ability to resize every aspect of a table inline instead of via a dialog - important.  I could go on as there are many, many more of these small items that are important to all the web content creators out there.  However, the most important thing I think you could expect from a rich text editor is that it, and the team behind it, realize the importance of all these little items.

Creating a word processor is much more difficult than it seems just like driving a Formula 1 car and the most important thing in both cases is attention to detail.  In the coming months you'll see that attention to detail coming through yet again in our latest release of EditLive!.  We've been paying attention to rendering, to font sizes, to keyboard behaviour and many other areas.  I'm confident it will be another fantastic release and if you'd like a sneak peek, just head over to LiveWorks!'s Early Access Release and check the latest in EditLive! 6.4 out for yourself.  Improvements to date have focused on CSS rendering for floats and getting sizing correct for different units and there's more to come.

EditLive! 6.Performance

Damien Fitzpatrick - August 16, 2007 11:49 AM

It’s been a while since I’ve written an article about EditLive! so I thought that I’d better put one out there about what the team has been working on recently and what we are currently working on.

Since the introduction of the major new functionality of the 6.0 release we’ve been working on performance.  “Performance, but EditLive! is a Java applet!?” I hear you say.  That’s right, we’ve been finding some great new ways to get Java to stand up and perform.  And performing it is.  I now routinely experience EditLive! load times of less than 3 seconds!  That’s less than most JavaScript based editors out there (BTW that’s because of the number of HTTP requests they perform). 

In the EditLive! 6.Performance releases (that’s 6.1, 6.2 and 6.Next) we’ve incorporated a whole range of caching routines that people can take advantage of, particularly with 6.1 and 6.2.  In order to take advantage of these things you will have to make some code changes to your integrations, but they are minor and if you have any questions check out the information on LiveWorks! or get in touch with our ever-helpful support team.

As always, we’re running all these improvements on our internal systems as part of our commitment to continual testing.  The performance improvements are outstanding, of course I’m somewhat biased as the EditLive! Product Manager, so please, check out the improvements for yourself.

We’ve also incorporated the new Inline Editing functionality of EditLive! with our EditLive! for ILWCM integration and we’re getting rave reviews from those who’ve rolled it out.  In particular we’ve had a major client shift from using IBM’s JavaScript-based editor to EditLive! and they’ve cut their page load times from over 30 seconds to 3.

The engineering team has definitely pulled some rabbits out of their collective hats and they’re not done yet.  EditLive! 6.Next will contain more improvements.  At this stage I’m not going to spoil the surprise, but I think there will be many out there who appreciate it.

So check out the latest release of EditLive! and experience just how fast Java can be.  Also stay tuned for what’s coming up in the next few months, there are some exciting improvements just around the corner.

The power of messaging: Letters from Iwo Jima

Antony Awaida - May 18, 2007 06:39 PM

In a recent article, I talked about the shifting roles of sales and marketing in Enterprise 2.0: marketing is increasingly taking on tasks historically performed by sales. As a result, I see many marketers focused on tactical marketing and they seem to have forgotten one of the cornerstones of effective marketing: messaging. A typical comment I hear: “we will do it later, we need to deliver leads for the sales team now”.

The trouble is that when messaging is not delivered by marketing, it will still be delivered - by the sales team. To use a military analogy: Messaging is the air cover provided by the air force before the marines’ invasion of a beachhead. If the air cover is not provided to soften the beachhead, the marines will have to do it – using hand grenades. Not a pretty sight….

Speaking of messaging and military strategy, I recently watched the movie “Flags of our fathers” which was shot back to back with Oscar winner “letters from Iwo Jima”. “Flags” depicts the trials of the Iwo Jima flag bearers who came back to the US to help the FDR administration with its 7th war bonds fund raising. Both movies are excellent and I highly recommend them – but I am transgressing…

I was particularly inspired by the war bond campaign. It was (and still is) the largest and most successful borrowing from the American public in history at $26B. To put that amount in perspective the total US budget in 1946 was $56B. Some pundits argue that this is one of most successful campaigns ever.

A key factor in the success of the campaign was the powerful messaging – embodied in the famous photo of the Iwo Jima flag-raising. While messaging may not have been a marketing concept in 1946, its central importance was crucial in the execution of the campaign. As I dissected the ingredients that made the war bond campaign a great success, I put together my “Guy Kawasaki‘sh” top rules for campaign messaging:

Rule #1: Start with what the people want. In Feb 1946, Roosevelt picked up a copy of The New York Times. "There it is again!" he thought as he eyed the photo of the flag raising. He was amazed how many times the newspapers were reprinting the AP newsphoto. Then the idea hit him. He called his secretary of the treasury: "Hank, I've got it. I've got the symbol, the theme for the Seventh Bond Tour. It's the flag raising picture. People love it. FDR understood deeply why the photo was so popular with Americans. It represented victory and the end of war. His genius is that he was able to tap into this powerful yearning and connect it with the war fund raising effort.

A company I recently worked with told me that their campaign message was:” we offer the best open source….”. This may be a good mission statement but it is not an effective campaign message. As a general rule, avoid the word “we” in campaign messaging.

Rule #2: Get the executives involved – Roosevelt had a lot on his mind in 1946 with a war being waged in the pacific and the remnants of a war in Europe. Yet he obviously had been thinking about the message of the campaign when he said: ”I’ve got it, I’ve got the symbol”.

If Roosevelt can spare time to get involved in messaging, surely the company’s executives can. Get them involved in the process. It is that important!

Rule #3: Make it a mantra. During the first two months of the seventh bond tour, everyone in America would see the flag bearer’s picture anywhere they went. You couldn't avoid it. It hung in: 
1,000,000 Retail Store windows
16,000 Movie Theaters
15,000 Banks
200,000 Factories
30,000 Railroad Stations
5,000 Large Billboards

Furthermore, The message was also aired on thousands of radio commercials. While the medium and location may have changed, the message was the same. Consistency is key to successful messaging! 

Too often companies keep changing their messages – often because they believe the messaging is not working, or because the company – not the customers - got tired of it. Messaging needs both volume and time to work.

Rule # 4. KISS or Keep it simple, stupid. (Incidentally, it was another democratic president – Bill Clinton – who used a famously related expression in his successful 1992 campaign: “It’s the economy stupid”). The text used in the war bonds posters was simple: “Now All Together”. No mention of the bonds interest rates. No mention of the amount needed to wage the war. None of that. It was not needed: The photo was the message and it was worth a thousand words!

Here is an example of a simple yet very effective message used by Dell: “Purely you!”. Very short but powerfully conveys what Dell is all about.

Rule #5: Make it emotional. Rosenthal, the photographer who took the picture was asked to explain why his picture touched a national nerve. “What we do in war, the cruelty is almost incomprehensible” he says. “But somehow we need to make sense of it. The right picture can win or lose a war. I took a lot of other pictures that day, but none of them made a difference. Looking at it (the picture), you could believe the sacrifice was not a waste”.

Rule #6. Don’t let details get in the way of a good story. Rosenthal’s photo actually captured the second flag-raising event of the day. A US flag was first raised earlier in the morning. However this flag was too small to be seen easily from the nearby landing beaches. Therefore a larger flag was raised the second time and Rosenthal captured that moment in the photo. Rosenthal was accused of having staged the picture or covering up the first flag raising. Of course, none of those details made a difference in the fund raising effort. The photo captured a great moment in history and the American people did not want to hear any of the controversy.

Translated: don’t let the fine print or the lawyers get in the way of a great marketing message.

Those rules worked back then and resulted in arguably one of the most successful campaigns of all times. They work equally well today. For those readers who are thinking – come on, software marketers have written the book on marketing and have nothing to learn from politicians. I say – hogwash – politicians have written all the books when it comes to marketing. They have been selling the same – repackaged – goods for years. And that, not even the software industry marketers could pull off!

How to make your website "salesperson of the year"

Antony Awaida - February 07, 2007 10:30 PM

In the first part of this article, I discussed how my son’s 5th grade class learned the importance of getting into the customer’s head and how this lesson could have saved a tycoon millions of dollars. In this article, I discuss how this task, traditionally performed by sales, is increasingly the responsibility of marketing and what innovative companies are doing about it.

Back in the 90s, it was the salesperson’s job to get into the customers head. Salespeople – at least the better ones – spent the majority of their time asking questions and understanding their customers’ needs. Only after they figured out those, they would talk about products, features and functions. Back then, most salespeople used the old rule of thumb: “You have two ears and one month” – in other words you should be listening twice as often as you speak to be successful in sales (As I learned later, this rule should be applied not just in sales, but in any conversation, particularly at home, but this is the subject of another article!)

But in enterprise 2.0, software is often sold on the web. Even when software is sold person to person, usually by telesales, conversations are brief and tend to happen at the tail end of the customer’s information gathering process – often too late to influence the customer’s decision. It is not uncommon that customers make an emotional decision early on in the process and then spend a lot of time justifying their early decision. The initial encounter of a customer with a company – usually through the website - is therefore critically important.

I was recently talking to a friend of mine – a VP of marketing at an enterprise software company. He was complaining that the company’s website is essentially a billboard. He later went on to state that the marketing department is the caboose – slowing the company down. Of course, in my view, there is a very strong and direct correlation between the two! A website should not be billboard or a marketing brochure. A website should be a salesperson - Not just a salesperson, it should be the “salesperson of the year”. A website should not only meet and greet most of your prospects, but it should engage them in a consultative sales cycle. Here are some techniques and technologies that innovative companies are using to adjust to this new reality:

1- A key piece of information to start a consultative website conversation is: what led the customer to the company’s website? If it was through a search engine, what keywords did the customer use? If it was affiliate marketing, what was the referring website? A customer will spend, on the average, 8 seconds on a website before returning to his previous link. Unless the landing page covers relevant topics that align strongly with the customer’s search for information, the opportunity to sell to this customer is likely to be missed.

2- There has been much talk about the use of personas in website design (personas are representations of typical users of a website). As experienced salespeople know, the best prospects are those who have a clear and well defined problem and the job of the salesperson is to help them buy. Similarly, marketing folks should interview prospects who have a clear and well defined problem to develop a primary persona for the website. Further, the buying process of those personas should be defined and documented. The website’s conversion processes are then designed to match the persona’s buying process. A common mistake I often see is trying to close the sale while the customer is in an information gathering process on the website.

3- A customer will often spend quite a bit of time on a website before he makes the dreaded call to the sales department (dreaded by the customer that is – a salesperson I worked with would often ask his customer: “what is so bad in your business that you are willing to talk to a salesman”). Rather than waste precious time asking customers situational questions, the salesperson should be armed with this information - gathered while the customer was on the website: what keywords did the customer use to find the website?   What pages did he visit?  What papers did he download?  And what emails did he click on? New technologies such as Eloqua and Salesgenius make this possible today.

4- Metrics, Metrics, Metrics. It is the old adage: “You can not manage what you can not measure”. This is perhaps the most important but least understood part. As a website incorporates a set of processes that engage and convert visitors, it is critical to continuously measure and improve those. Too often marketers assume that a new “cool” improvement to a website will result in an improvement in conversions. More often than not, they are surprised with the outcome. A change to a campaign may result in tactical improvements (e.g. more visitors) but a deterioration in medium and long term goals (e.g. trials and sales). It is important to instrument, measure, benchmark all processes of the marketing/sales funnel.

In Enterprise 2.0 the sales team may not have the opportunity to get into the customer’s head the old fashioned way. But through the use of new techniques and technologies, innovative companies are able to engage the customer in a consultative sales process that starts with the website. By doing so they are able to boost their sales and lower their cost of sales. Yet another reason to turn your website into “salesperson of the year”.