Below you will find pages that utilize the taxonomy term “Ephox”
Moving on from Ephox
I joined Ephox back in May 2002 and over the past eight-and-a-half years have had the pleasure of working with some of the most talented, dedicated, passionate and supportive people I’m ever likely to work with. It’s been an incredibly exciting time doing my small part to grow the company from a small team in Brisbane, Australia, though some very tight times to a very rapidly growing team with offices on three continents that’s firing on all cylinders.
Congratulations Yonas – First TinyMCE Patch
Ephox has had Yonas working on with us on various TinyMCE related stuff for a while but mostly outside of the core source code on plugins for various clients. Today however, his first patch made it through both Ephox QA and the Moxiecode review into the mainline TinyMCE codebase. It will ship as part of the 3.4 release along with a bunch of other Ephox developed fixes and lots of good stuff in general.
Customizing EditLive! in Documentum Web Publisher
Lisa Hill from Blue Fish has published an excellent article covering how to customize the EditLive! rich text editor in Web Publisher. It includes many of my favorite ways to get the most out of EditLive! as well.
Ephox Enterprise TinyMCE
The new Ephox Enterprise TinyMCE site has now gone live, a result of our new partnership with Moxiecode, the company behind everyone’s favorite open source editor TinyMCE. I’m really excited about the potential of this partnership and have really enjoyed the opportunity to work with the Moxiecode team so far.
What We’re Adding…
We think we can bring a lot to the TinyMCE community, the things below are just where we’re starting.
Ephox in the IBM Cloud
Ephox EditLive! is now part of the IBM cloud offering on Amazon Web Services. EditLive! OEM edition is bundled in the cloud offering of IBM WCM. This means you can now quickly run up a new instance of IBM’s WCM system on Amazon EC2 and configure it to use EditLive! as the editor.
If you want to take advantage of the extra benefits of the Enterprise Edition (track changes, commenting, accessibility checking, image editing and more), you can install that as normal once the system is running. Currently Ephox doesn’t have per-hour pricing through Amazon but you can contact our sales team so they can discuss the options available.
Name the New Ephox Mascots
The other day a couple of surprise packages arrived in the Ephox UK office – our new squishy conference giveaways! The ever popular red sports cars are out and in their place are a cute little Koala and a Kangaroo pair.
It was quickly suggested that we need names for them, so here’s your chance to go down in Ephox history. What should we call them?
Wanted: Open Source Evangelist/TinyMCE Guru
From the job description:
We are seeking a Software Developer who is experienced in creating sophisticated, highly interactive, JavaScript applications. Ideally we desire someone that has experience in TinyMCE or has experience working as part of an open source project. The right person will have the ability to work remotely in a highly collaborative manner with virtual teams. I’m pretty excited about this new opening within Ephox. Lots of great stuff to come out of it hopefully, but in particular helping Ephox to start working better with Open Source communities and developing some awesome stuff with JavaScript. While TinyMCE experience is something we’re particularly keen to have “ready to go” if possible, whoever fills this role is going to become a web content editor expert in general from Tiny to CK, Dojo and of course our personal favourite EditLive!
Conversion for the Web
Andrew Shebanow in Open Government and PDF:
The issue at hand is not whether governments should pick HTML or PDF. The issue at hand is whether governments are capable of publishing information at all. Show me an HTML creation tool that creates high quality, standards conformant markup from a Word document or any of the zillions of editing tools that government employees use. Now add in all the tools used by people who submit documents to the government. And all the versions of those tools released in the last 20 years. Now make sure that the HTML/XML works correctly even when the user doesn’t have the right browser or the right fonts installed. I’ve actually worked with a number of government departments who were looking to move more content online and the content conversion problem is definitely a time consuming and challenging part of the problem. That’s precisely why I wind up getting involved, since EditLive! lets you easily copy and paste content from Word documents and produce clean, compliant XHTML. It can even (optionally) strip out inline formatting and leave just the structure like headings, tables and lists.
A Great Team
I’ve spent the last couple of weeks in Australia for my baby sister’s wedding and while I was there I worked out of Ephox’s Brisbane office where our engineering team is based. It’s been nearly 18 months since I left there to move over to the UK and this is the first trip back since. What was most striking about the trip is just how awesome the team is down there. Technically speaking they are one of the most talented groups of engineers you’re ever likely to come across and pull off some seriously amazing stuff, but more importantly they are a truly great team.
The Point of Surveys
Every so often while using NetSuite, it pops up and asks me to fill in a quick little survey – basically how likely are you to recommend NetSuite and why? This is annoying when your in a rush but on balance not a bad way for them to ensure their customers are happy.
There’s just one catch – every single time I tell them that I’d never recommend NetSuite and that they should improve product quality, specifically they should handle escaping XML tags correctly. As a company that makes HTML editors, we quite often send and receive emails that talk about HTML tags rather than just including them. Unfortunately, NetSuite for the past 5 years or more has happily messed these emails up and we’ve had to come up with complicated ways to get the original email text back out. We’ve reported this to them on multiple occasions and at one point had to actually put in a XSS exploit to get them to understand how big a problem it was. Over time they’ve shifted where the correct HTML will appear in the system, but never actually fixed it entirely.
EditLive! for ILWCM OEM Edition Released
As promised, a few days ago IBM shipped the OEM edition of EditLive! It’s available to all existing WCM clients on Portal 6.1 or later from passport advantage.
Mostly for my own benefit of having an easier place to find this, it’s version 6.5.3.55 of EditLive! which is a little older than I was expecting, but still quite recent. Enterprise Edition clients (direct from Ephox) have access to the 6.6.2.6 release from early March, which includes a bunch of new features like the inline table toolbars, but my understanding is that IBM will be providing updates fairly regularly which is nice.
Obama Needs EditLive!
Sam Ruby notes that the White House feed contains a fair bit of debris:
Also noted in the process: the feed itself contains a fair amount of debris. A sytle attribute? A meta tag? o:p is common in content carelessly copy/pasted from Microsoft Word. Ah the good old o:p crud from Word. I know a fantastic html editor they could use that would fix that up for them. Clean copy and paste from Word is probably the most popular feature in EditLive!
Logging
Our support team live and die by the logs we get from clients. It’s simply the only way you can work out what happened and get complete and reliable information on the environment and usage of our products in the moments before a problem occurred.
I always knew EditLive! was quite verbose in debug mode – deliberately so, but I was a little surprised that in 30 minutes of usage we output 45362 lines of debug output, totalling 5.2MB. Mostly, that’s because I was running up a lot of instances of EditLive! rather than just using a single instance for a long time so in more normal usage that would be a lot less.
Ephox EditLive Editor Will Change The World
Ephox EditLive Editor will change the world. Well maybe not the world, but it will make WCM content easier to format. I couldn’t agree more. This is of course in response to the news coming out of Lotusphere that IBM has licensed EditLive! as a standard part of their WCM offering. Ephox has been an IBM business partner for quite a few years now and has built up a lot of relationships with their technical and sales teams as well as selling EditLive! as a third party add-on to a lot of WCM clients. It’s very exciting to see this go up a step and have EditLive! as a standard part of the offering. I don’t have an exact ship date for the OEM version yet, but my understanding is that it will come as an update to Portal 6.1.
LiveWorks! is Dead – Long Live LiveWorks!
With LiveWorks! turning two it’s gone through a major stage of growing up and now sports the official Ephox website look rather than it’s more youthful green tinge. The different look was originally put in place because LiveWorks! was designed to hold a bunch of unofficial, unsupported, experimental stuff – most of which is still there but has gradually become more supported and much less scary to use in actual production systems. In the mean time, we’ve added a ton of new, really useful, very much supported (i.e. used as answers to support questions) content which we want users to find and use.
A Scary Thought
While reviewing some screen mockups for EditLive! today, it occurred to me just how limited an environment we’re forced to work in. It turns out that the default, and thus most common, size of a rich text area in IBM WCM is 740×450 (note to Ephoxians, I mistakenly quoted this as 740×360 earlier so we have slightly more vertical space than I thought). Even in my blog’s editing interface, the editor is 718×600.
Ephox Meme: 5 Favorite Features
The Ephox bloggers have been way too quiet lately (myself included) so I thought I’d start an Ephox meme. What’s your 5 favorite features of any of Ephox’s products? They might be built in or plugins that we’ve developed, maybe even features of our internal systems that make your life easier, but preferably something that our clients could get hold of (teasing people just isn’t nice).
Here’s my list:
- Built-in Image Editor. Particularly being able to resize an image and add rounded corners and drop shadow.
- Pop out window mode. More editing space is always good.
- Automatically detecting URLs on the clipboard and using them as the default value in the hyperlink dialog.
- Styles menu. Not that I use it on this blog, but having access to classes in the site style sheet make it so easy to apply some really nice formatting with just a couple of clicks. The styles package prototype we use internally a lot is particularly useful for this.
- The extensible APIs. It’s so nice to be able to quickly add support for footnotes, a shiny button generator or whatever I happen to want this week. I wish more clients used this functionality to make life easier for their users – even if it was just by providing a handful of simple templates they could insert.
One Line Toolbar
I was going to write a post around accessibility and WCAG 2.0 but got annoyed once again about the EditLive! toolbar taking up two lines instead of one. I’d already removed a whole bunch of stuff from it but it was still wrapping around by a few buttons.
It occurred to me that there are a range of functions that I had on the toolbar because I use them frequently, but that aren’t actually required because I always use the keyboard shortcut. In particular, I have no need for cut, copy, paste, undo or redo because without exception I use keyboard shortcuts. I could probably apply the same logic to strong, em and insert hyperlink as well but my toolbar fits on one line with them so they may as well stay.
What People Want
Ephox provides a bunch of different sites with feeds to help people keep up to date about what’s happening with our software and the company. For example, LiveWorks! helps you learn more about our products and get the most out of them, the releases blog keeps you up to date with the latest stuff and the official Ephox blog has all the company news. Then of course there’s a range of blogs by Ephox employees like this one and they’re all gathered up at People@Ephox. So guess which feed is the most popular by far?
Build vs Join
I know I must sound like a broken record on this point, but the message just isn’t sinking in. What’s it going to take for people to “get” this? A million dollars or 10 million dollars. It doesn’t matter. The people are not coming. You have to go to them. It’s pretty simple actually. The thing is, corporate thinking is all about owning stuff. So the natural tendency is to want a community that you “own” and thus you have to build a new community and get people to come. It’s nice to see some studies highlighting how rarely that actually works though.
Content In The Mobile World
I had two of our keen young developers (Dylan and Suneth) email me overnight to ask my CTO-ish opinion of trends in the mobile space and how they might apply to Ephox. It’s a very good question – with the advent of BlackBerrys first and now even more so with the iPhone, mobile internet is finally moving from “the future” to “the now”, even if it’s not evenly distributed yet. Of course, Ephox is squarely placed in the enterprise content creation business so no matter how popular the mobile world becomes we’re very unlikely to bring out a mobile phone game or a tip calculator. So here’s my take one where the mobile world is with regard to enterprise content creation.
Ephox Is Hiring
From Brett, our engineering manager extraordinaire:
With Ephox’s recent sales growth we are expanding the R&D team and are currently looking for two outstanding Java developers to join the team in our Brisbane office.
We develop in both Swing and J2EE using agile techniques and have a set of values based on the XP values. We have a fun workplace and are looking for the right people to join us.
This is a great opportunity for someone who wants a fulfilling and rewarding position that takes their careers to the next level.
Pain vs Pay-Off
Doug’s discovered a way to improve the effectiveness of simian to avoid adding more duplication to a code base:
The solution is very simple. The simian-report is a an xml file, so I wrote a SAX2 DefaultHandler that was able to parse the number of duplications at the different threshold levels. Putting this into a trivial ant task then gave us a task to help make things no worse even at levels below what the simian-check was doing! Within the first week, the new legacy-check was breaking the build (where the simian-check would never have) and focusing the teams attention on how to make things better. The solution is simple and really cool. I have no doubt that it will have a big impact on the amount of duplication and the overall quality of our code. The trouble is, Simian’s normal reporting is really, really lousy and Doug’s extra check highlights just how useless Simian is at telling you where the duplication is instead of just detecting that there is duplication.
The Value Of Criticism
CMSWire: Vendor Criticism of CMS Watch
In an industry whereby most of the “independent analysts” are heavily dependent on revenues from the very firms they claim to be “independent” of, it’s unusual to see truly critical research get published. So it becomes a surprise to both buyers and sellers when they read such criticism. In our reports we widely distribute the compliments and brickbats — if something is truly terrible we will tell you.
EditLive! 6.4 Is Out
I’ve said this internally to Ephox already but I want to give a big congratulations to the team on getting EditLive! 6.4 out the door. We have a lot of customers who have been waiting quite a long time for the features in that release and only a year or two ago they were thought to be effectively impossible given the Swing Text APIs that EditLive! is built on. It’s a testament to the team that this can be done at all, let alone with such high quality.
Firewall To Split A Subnet
We’ve found a cheap little NetGear router that can roughly load balance and fail-over between our two internet connections to hopefully get a little bit more speed. Of course, the simplest thing to do is to set it up so that from the inside it looks just like the old modem and then on the WAN side set it up to look like a client using that old modem as it’s router. Of course, that means that the inside and outside of the router are in the same subnet (192.168.0.0) in this case and the new router’s internal IP is also the IP of the WAN router it forwards on to.
Off To Lotusphere (and London) I Go
I’m setting off on a fairly major trip, firstly to Lotusphere in Orlando (20-24 Jan) where I’ll be facilitating a BOF session (BOF112) titled “Mashup Web 2.0 with Web Content Management”. Sadly it’s been scheduled for 7am Thursday, 24 Jan which seems like a rather silly time to expect people to be up, out of bed and ready for intelligent discussion. So if you’re around I’d really appreciate you getting out of bed early and coming along to make sure it’s not an empty room. Ephox will have a booth on the show room floor and cosponsor a couple of parties as well (details here). I’m really looking forward to actually getting to meet some of our clients and partners – they don’t tend to drop by Australia very often and pretty much never come as far north as Brisbane.
EditLive! on Leopard
For those who both use EditLive! and were very quick to upgrade to Leopard, you might want to grab the latest early access build of EditLive! With old builds on Tiger, our toolbar didn’t respond well to the darker background color:
Fortunately, Apple introduced some new rendering styles for buttons with Leopard that we could leverage to get a much nicer, much more OS X look:
Another Employee, Another Blog
Tomorrow is a day I’ve been looking forward to for quite a few years. Dylan Just, one of my best mates from uni, is starting at Ephox. He’s not yet on Planet Ephox but I think we’re fixing that tomorrow morning.
Indeed that has been fixed. Welcome on board Dylan! Any other Ephox folk who want to start blogging – just let me know!
BUSTED: EditLive! Dynamic
So it seems that our super secret project “EditLive! Dynamic” has been outed somehow. Apparently Andrew Frayling is on the case (twice in fact) but I have no idea where the source of the leak would have come from. Any bets on how long it will be until we get a “Ephox Rumors” (and the associated “Crazy Ephox Rumors”) site?
Oh and it’s never hard to get contact details of Ephox people, a large number of us blog, and there are plenty of contact details floating around (including my details in the sidebar of this blog). Trying to get information about EditLive! Dynamic out of us will be much more difficult – it’s so secret, most of the company won’t know it exists. We’ll talk endlessly about Rythmyx integrations, and anything else we know about though.
Openness Really Does Pay
I got some really positive feedback on the various community/openness projects that I’ve been spearheading within Ephox from one of our OEMs today. Apparently they’ve discovered our early access program and are already trying out our brand new Express Edit functionality1. It’s really nice to actually hear from clients that these elements are useful as we haven’t really managed to build up a community, even if we are seeing gradually increasing traffic. For a while now we’ve had potential new employees commenting on Planet Ephox which is great, but we haven’t really heard from clients taking advantage of it, even if we’ve seen some of the indirect effects via analytics and support cases.
Pub Lunches Are Back At Ephox
When I first joined the company it was tradition that the engineers (and often the CEO, CTO and COO who were in the same country back then) headed down to the Paddo tavern for a pub lunch. Sadly a while back the quality of their roast lunch started to reflect the $4 price tag and we abandoned the concept. With the new renovations to the Paddo and rumors of improved quality we’ve started heading down the street for a roast lunch and a beer again.
Well Done Andy!
I was just thinking to myself this morning how good it is to see Andy really stepping up, taking responsibility and showing great initiative to keep the team moving forward. Turns out the rest of the business agrees – he’s officially acquired the “Senior” title.
Well done Andy!
Redefining My Role
A while back, Ephox restructured product management to better focus on developing new products and directions. As with most things, it rarely turns out the way you originally plan and we’ve morphed the team into something quite different to what we originally envisioned. It’s always good to adapt roles to best fit people’s talents, but while it’s happening it can make it difficult to know that you’re doing a good job or even the right job. We’ve reached the point now where what people’s roles are stable but involve a lot of “yeah I really should do more of that” kind of comments. Normally that means the things you’re not doing are either outside your comfort zone or outside of your interest – in my case mostly both.
Integrating The Editor
The Ephox Weblog pointed me to James Robertson’s comments on Seth Gottlieb’s article, “Homebrew CMS” all of which is good reading. The key part for me is:
Editing environment. If the authors can’t easily and efficiently get their words onto the site, you’re toast. There’s a huge amount that goes into a good editing tool, including table support, CSS, images, spell checking, and clean cut-and-pasting from Word. Even if you chose to use one of the commercial editing tools (a good idea!), it still needs to be tightly integrated into the CMS.
Dependency Management
If ever there was a problem that just wouldn’t die it has to be inter-project dependency management. If your code depends on external libraries, it’s pretty simple to pick whichever solution you prefer – either grabbing a version from a repository or checking jars into your source control. However, if you depend on a project that you control, it gets so much messier.
If the projects are small, it’s probably a good idea to just set up the build system to build them all together – effectively making them separate projects even if for development purposes you can just build this bit or that bit and utilize precompiled versions of the dependencies.
Clever Spam Reduction Technique
I discovered one of our client’s company blogs1 tonight because they mentioned they’d just upgraded to EditLive! 6. Reading through the backlog I discovered they’ve found a clever way to reduce the impact of form spam that I hadn’t come across before2 – only accept the submission if it uses multipart/form-encoding not just a plain post. Like most techniques it won’t work if everyone does it but it’s another interesting way to differentiate.
Daily Deployment
One of the challenging practices in XP is daily deployment – it requires your development team to have a very low defect rate and completely automated build and deployment tools. In an off the shelf software scenario it has the additional challenge that you can’t actually get your customers to upgrade every day.
At Ephox we’ve adhered to this practice pretty well in the past by automatically deploying builds to all our internal systems, including our corporate wiki, website CMS and even this blog. Of course, that’s still just a small subset of the kind of environments that we’re actually used in and it’s not actually getting out to real customers. To take the next logical step, we need to make those builds available to any customers who feel like checking out what’s new – maybe not every day, but between all our customers hopefully regularly enough to give us good feedback.
The Corporate Blog Adoption Cycle
It’s been interesting watching the blog adoption cycle here at Ephox. For a long time I think I was the only person actively blogging, and just from the positive effects of blogging that I’d experienced other people got interested. Our CEO was pressured into getting back into blogging again1, the engineering team started up an internal blog to share some of the cool stuff we found which never really took off and then the CEO started an internal blog2 which has helped the rest of the company get more of a grip on where he’s going. Andy started a blog and we had a couple of hires who had blogs lying dormant that they were then pressured into getting back into and suddenly there was a critical mass of people blogging – enough to have a conversation between us on the blogs.
Ousted!
Two very interesting things I’ve learnt today:
- Ousted is a real word.
- Suneth has a blog.
Apparently Andy discovered him within a few hours. By the time I got back to reading feeds this morning both he and Brett had ousted him. Of course, I’ve now added him to Planet Ephox.
Some Good News For The Week
I’ve been in our San Mateo office the past week working with the sales and marketing folk which has been great, but also challenging and often frustrating. The challenge is in getting a grip on my new job as product manager, the frustrating from the initial objections we often get from clients as they try and guess what the reaction will be from their users instead of actually finding out. It’s fair enough, that’s all they have to go on but it’s frustrating to have to try and share the experiences that we’ve seen with users giving our software rave reviews. It’s also frustrating to hear negative things about software you’ve written – I always get so attached.
Why You Should Use A Good Editor
While most of the Ephox folk use EditLive! to edit their blog entries, there are some poor saps who are using a blog hosting service and can’t (we’ve got some interns working on a standalone blog editor with EditLive!, but that’ll take a while yet). This morning Antony learnt the value of a great editor the hard way when he copied and pasted from Microsoft Word into Typepad’s default editor:

Now I understand why so many of our users think our Microsoft Word filtering is so good…
The Benefits Of Open Sourcing Java For Developers
There was an interesting panel discussion at JavaOne today about the open sourcing of Java. The panel was made up of folks developing open source JVMs and a representative from Sun. Compatibility is obviously a common theme to these discussions and there were a number of mentions to just how bug for bug compatible the alternative JVMs are trying to be. It occurs to me though that if all the implementations wind up behaving in precisely the same way, there’s not really any point to having multiple implementations. Yes multiple licenses are nice for particular niches but for the average Java developer, what’s the benefit?
My New Favorite Comment
One of our board members left a comment on Brett’s blog this morning and I love the way it meshes with my thinking that employee blogs is a crucial tool for senior management to keep up with the directions, understanding and thoughts of the rank and file:
Well, my friend I gotta say that whilst reading board papers a link to a blog is a welcome relief. I get the feedback I crave and welcome and also get a general sense of what is on the minds of your team.
The Last Click Is The Easy Bit
I’m sitting here in Auckland airport transitioning through to San Francisco and there’s an interesting synergy to the stuff that’s coming through. First of all, I see that my rash of Twitter subscriptions (my twitter page) and my mentioning twitter in my last post has caused a few people to add me to Twitter and check out my blog.
In turn, at least one of them read a post mentioning Planet Ephox and posted it to their delicious account. That in turn prompted someone else to invite me to CommunityOne (a lead-up event to JavaOne which I’ll try to get to if I can – my flight arrives about 1pm so I’ll miss half of it). What’s most interesting there is that these extra contacts, invites and awareness of Ephox are completely impossible to track. Even if you had a sophisticated cookie system across all the sites involved, you really need to know what the people are thinking to see if you’re having any effect or whether they see good things or bad things etc. If and when you get to the point that someone makes a purchase, there is likely to be a huge range of influencing factors that caused them to get there.
Server Problems Here And With Some Ephox Sites
In case people are wondering, there was a major failure at our hosting provider which is causing down time. Both this server and the server that hosts the Ephox release blog, LiveWorks!, people.ephox.com and the internal Ephox wiki and JIRA installations have been affected. While (obviously) this site is back up, the Ephox sites didn’t fair so well and are still down.
We’ll get them back up and running as soon as possible. In the mean time, if you see any problems here please let me know. For a short while after the system came back WordPress switched to the default theme (but with all other settings in tact) so I really don’t know what else might have been damaged.
RSS Feed For Product Pages
I’ve noticed something I’ve been doing with some consistency lately – when I come across a product that I have some interest in, but can’t or don’t want to start using straight away, I try to add the product page to my RSS feeds. With the proliferation of RSS support in browsers these days it seems to me that every product page should include a link tag pointing to the product updates feed. Ephox doesn’t currently do this, but its something that we should fix pretty quickly to help people find the Releases Blog and stay up to date with all the latest features and fixes.
How In Touch Should I Keep?
As of next week I’ll officially be a product manager instead of an engineer. I’ll no longer be spending my days coding and for our core products I won’t be allowed to make changes to them. I will however be doing a bunch of prototypes and smaller integrations of our products etc so it’s still a hands on role.
Obviously I need to keep my general technical skills really high so that I can quickly whip up prototype integrations and stay on top of new technologies etc. For general technology issues like that I’ll probably need to be more on top of things than I am now, and I’ll wind up working in a much wider range of languages and with a much wider range of technologies. Definitely interesting stuff ahead. What I’m not sure about though is how in touch I should keep with the Ephox development team and how they are going about developing our products. I clearly need to know what the new features they’ve added are, but I’m not sure how much of the implementation details I’ll need.
Another Ephox Blogger
Welcome to the blog world Brett! It’s about time. Brett’s the engineering manager at Ephox and we’ve been nagging him to blog for some time now. I’m biased, but you really should go check out the theme – apparently he’s working on a post to explain the hamster….
After the whole Andy fiasco, we’re making sure we out Brett’s new blog early and often. So who’s going to be the next Ephox blogger?
Improving The Applet Startup Experience
I’ve spent most of this week working on making the start up experience for our applet better. It should look better, take longer and most importantly feel fast to the user. The first step is obviously to profile and optimize – the faster the start up time actually is, the easier it is to make it feel fast for users. There were a few things we could do to help out there, but nothing that really made a dramatic difference.
Product Management and Community
As part of a restructure of the engineering team last week I was moved into a product management role, focussing on our ready-made integrations with third party products (eg: our Alfresco integration) and to be formally in charge of LiveWorks! There’s a bunch of details regarding what the new role entails that I’m still not completely clear on, but I’m sure they’ll be worked out soon enough. I expect there will still be a fair bit of technical work so I’ll still be hands on to a reasonable degree, but what I currently see the job being about is community. There are a number of aspects to this:
Developing Plug-Ins For Applets
One of the new features in EditLive! 6.1 that we released today is a plug-in architecture that handles deployment of extensions to the editor. Plug-ins in Java apps are pretty common these days, but there aren’t all that many applets that have them so I thought it would be worth documenting some of the challenges we faced and how we overcame them.
The biggest differences between plug-ins for applications vs applets are:
Pushing The Big Red Button
One of the things we’ve been wanting to do for ages was automate our release process so that with the click of a button we’ve deployed a new version out to customers. Today, at least for EditLive! itself, that became a reality, with the “autodeployer” being tested out with it’s new release capabilities.
At first glance it looks like releasing a commercial product like ours would be really straight forward, but there’s a surprising amount to it. No one step is difficult, but there are a lot of different systems involved from our main web site, to our source control, build machine, release notification system, integrations, demos etc. As usual for automation projects, the biggest challenge is working out exactly what you are doing manually. Finding the right way to automate it tends to be pretty simple once you understand what you actually do.
The Futility Of Remind and Later
Most issue tracking/customer relation/todo list things have a concept of resolving an issue for later or a remind me later option. The idea is that you don’t want to or can’t deal with the issue straight away, but you need to come back and review it or follow up later.
Unfortunately, it turns out that marking an issue for later tends to mean “make this disappear so I have no chance of remembering it” because the issue disappears from all the open issues lists forever. Many systems have an option to e-mail you regularly about issues that are marked as remind or later, but the e-mails are hit and miss – usually they remind you about the issue too early and you just get used to ignoring them.
Interpreting Usage Data
There is an awful lot of money spent on user interface research, carefully tracking what users do with an application and trying to find ways to improve based on that. It’s a shame that so much of it is wasted because the captured data is misinterpreted.
The Office 2007 Ribbon is a classic example of this, it was clear that Microsoft had real world data to back up their decisions about the Ribbon, they’d spent millions on it. Yet somehow it just didn’t seem right to me. Turns out at least Damien agrees with me. It turns out that despite the fact that usage data shows that users work in different modes, designing an interface that reflects those modes isn’t ideal.
On Life At Ephox
Rob posted about his second month at Ephox and it made me realize it’s been a while since I’ve taken the time to reflect on how things are going for me. Warning, lots of rambling ahead with no attempt at editing.
Towards the end of last year it had gotten too long between holidays and I was getting stressed out and generally sick of work in general. Fortunately, if you haven’t taken holidays for a long time you also have a lot to take, so I took all of January off to recuperate. Since then I’ve been working on my own for the most part with the rest of the team tied up with other projects. I must admit, I quite enjoy going off and coding stuff on my own, still doing TDD and all the other XP practices except of course pairing. It does however tend to let the odd thing slip through and we’ve seen a few issues crop up that we’ve had to fix. Fortunately, since we run the latest builds internally the problems were caught before clients saw them. I’m really not sure if a pair would have picked them up anyway, but it may have helped.
Pimp Your Office
Nice article from the Chief Happiness Officer this morning on pimping your office. Most of the things listed are just over the top, but I really did like the look of Softwall. If Ephox winds up moving offices we should definitely think about using these – it’d let us have an open plan development environment with the flexibility to close off sections as needed.
Very cool.
How Our Editor Empowered Our Wiki
For a couple of years now, Ephox has been very successfully using a wiki to provide communication within the company and helping to bridge the gap between our two offices on opposite sides of the pacific. Central to the success of the wiki has been the successful integration and configuration of EditLive! as the editor. It certainly helped that we have a high quality editor with lots of attention to detail but the most important aspect was the amount of attention we paid to correctly configuring the editor.
A Productive Day
According to our stats, yesterday I deleted over a thousand lines of code – sounds like a productive day to me. Hopefully today I’ll find another thousand lines to delete. It’s amazing how unused methods can build up without you noticing. Eclipse will tell you about unused private methods, but not about public ones that aren’t used anymore. Most of them had unit tests even, just that the entire functionality had become unneeded. There’s probably some duplication in there as well that will let us delete more lines of code.
Creating Great Documentation
We’ve been struggling with ways to improve our documentation for quite a while, but we’re still finding that our documentation just isn’t good enough. The biggest frustration with the current tool is that you can’t link to a specific page on our web site so our support team has to tell people to go to the manual, click this then that then this other thing and scroll half way down the page. I think there was also a complaint that they look ugly.
It’s The Editor, Stupid!
From the Creating Passionate Users blog:
Do you know what the “comma-stupid” phrase is for your product or service? In other words, do you know what is most meaningful for your users? Because whatever that word or phrase is (i.e. the part that comes before the “, stupid!”), it should be driving everything from product development to documentation to support and marketing.
More and more I’m seeing people value the editor in a system over anything else. When Rob joined Ephox he switched to WordPress because among other things:
Oh Happy Day!
I’ve been on holidays for the past four weeks (life is tough sometimes) and away from internet connectivity so I’ve been blissfully unaware of what’s been happening in the tech world. Catching up with the RSS feeds this morning though, I’ve discovered many wonderful things:
- Robert Dawson has started with Ephox. I’d forgotten he was starting while I was away.
- Someone in the engineering team managed to work out how to add Robert to Planet Ephox. I left instructions on the various systems I’d set up before I left but this is the first time someone else has had to try to follow them.
- Our integration with the open source Alfresco CMS has been released on LiveWorks! There are two great things about this, first that it’s out and second that it’s another system that someone else has successfully picked up.
- New releases of some of our products have gone out and the change logs have been posted to the Ephox Releases blog!
- Downside, for some reason the major update to our IWWCM Integration didn’t get a mention on the releases blog, could someone fix that ASAP please?
- The main Ephox website now has a link to LiveWorks! Yay! Now we just need to add a link to the releases blog.
The best part though, is that I still have another two weeks holidays. I’ll be back in the Ephox office on the 5th of February.
A Christmas Present From Ephox
It’s taken quite an effort to get everything up and ready to go, but just in time for Christmas we’re ready to announce the availability of Ephox LiveWorks! The grand plan is to give our clients and the public in general better insight into what’s going on in the Ephox labs and give them the ability to shape the company’s direction.
The site is starting off small, with just a few neat little plug-ins for EditLive!1 available and a mailing list, but I’m really excited about it. Ephox’s products are used by nearly all the big name CMS vendors, so the direction our products takes has a huge impact on the CMS industry as a whole. Getting more people involved with that process is going to make a big difference. We’re hoping to ramp up the site over time, following what user’s want, but we’re thinking along the lines of early access releases, providing integrations into open source systems and eventually weekly builds of our products to let our clients take advantage of new functionality as soon as possible.
Planet Ephox Goes Official – Now With Release Info
Ephox took a couple of leaps forward today in terms of being more open and accessible to our clients. Firstly the planet instance that I’ve had running as a proof of concept for a while has been moved over to an actual Ephox server and is now at http://planet.ephox.com/ If you’re subscribed to the old feed your client should automatically switch to the new domain now but please do check it as test.symphonious.net will probably go away at some point.
Doug’s Excited…
So Doug is excited about how we took our first steps in a new product and how well it went. Personally, I’m impressed with the way that we presented all the usual engineering setup tasks to the client in a client focussed manner. We could have done it better by not discussing up front all the engineering tasks we were hiding behind the suggested first story, but that’s okay. The first story was that we wanted to ship a distribution of the new product. It’s really quite backwards to think of things that way – normally you build the product then work out how to package and distribute it, but it’s impossible to ship anytime if you don’t build the distribution mechanism at the start.
Web 2.0 vs Word
I’d love to know what you think? Does any of the Office 2.0 vendors have a chance to edge in on Microsoft’s market?
Edge in – sure, it’s been happening for at least the past 5 years or more. I’ve lost count of the number of times we’ve sold EditLive! to companies who were replacing Word to make life more pleasant for users. Notably though, these aren’t situations in Word’s core target market – creating documents destined for print. Word has picked up a lot of market share in all kinds of weird and wonderful content creation scenarios that it wasn’t designed for and it’s picked up features to make it work quite well there. Despite that, these fringe areas are ripe for competitors to specialize in and provide solutions that fit better with the user’s intentions.
EditLive! 6.0 And Track Changes Officially Out The Door
While a couple of people got ahead of things and announced the engineering release of EditLive! 6.0 – the marketing team completed deployment of the web site updates today and so EditLive! 6.0 final is officially available to everyone.
Now we just need to get better at updating the official Ephox Weblog instead of just our own blogs…
Testing Planet Ephox
I spent some time yesterday playing around with Venus to aggregate the various Ephox related blogs. The result is current at test.symphonious.net but will either disappear or move somewhere more official depending on how we like it. I’m keen to see what people think of it. Hopefully we can encourage a few more Ephox people to make the leap into blogging.
Another Job Opening At Ephox
Ephox is looking for a software engineer in our San Mateo office.
Roles and Responsibilities
- Provision of advanced technical support to prospects and clients via phone and email;
- Development of solutions to both internally and externally reported bugs including the development of automated regression tests;
- Provision of professional services including custom development and product enhancements;
- Provide quality feedback to the rest of the business for the most common use cases for our products, potential new areas and feature requests and the most common problems and problem areas clients are encountering;
Other work includes
Importance Of A Good Authoring Environment
James Robertson mentions the importance of a good authoring environment in CMS solutions.
Considering that the primary purpose of a web content management system is to help staff to write and publish content, the editor has to be front-and-foremost when it comes to selecting a product. And yet, many organisations specify little more than “the CMS must provide a web-based WYSIWYG editor”.
I also found Seth Gottlieb’s comments on the subject interesting, particularly:
Stop With The Releases Already!
I’m in the middle of doing platform testing for EditLive! 6.0 which involves setting up and testing a huge array of OS, browser and JVM combinations to run through and manually verify that everything is working as it should be. Normally this is hard enough to do, but at the moment it seems every tech company has either just released a new version or is about to. We’ve got FireFox 2.0, IE 7, Windows Vista beta, OS X Leopard beta, Java 6 beta, OS X Java 6 beta, Office 2007 beta and who knows what Linux and Solaris is going to do to me.
WYSYIWYG Editors, The Back Button and a Monkey
The back button has been a great challenge for a lot of modern web applications and WYSIWYG editors are certainly no exception. Way back before I can remember, someone had the fantastic idea of preserving content entered into text fields and restoring it if the user hit the back button to return to the page. Unfortunately, with the advent of WYSIWYG editors, this was generally lost because the browser reruns the JavaScript in the page again, providing no indication that the user was returning to the page. I could be wrong, and I’d love to hear of other examples, but I don’t believe there is a WYSIWYG editors available today that preserves content when the user hits the back button. I find it somewhat interesting that despite the huge amount of user angst this causes1, there doesn’t seem to be a lot of interest in solving the problem.
Marketing Sun’s Project Blackbox
To Jonathan Schwartz,
The Ephox engineering team saw the really cool work you’ve done on project blackbox and we’ve come up with a marketing idea that would help you show just how portable blackboxes really are.
In essence, the idea is to take a blackbox on a travelling road show around to Sun’s potential clients to show off what it’s capable of. The trouble is, there’s no point in just dumping a container outside their door and saying “cool, huh?” – it’s got to actually do something cool when you put it there. That’s where we come in.
Track Changes Beta Released
After much hard work and gnashing of teeth, the beta of our next major release is finally out, including the new productivity pack and track changes. The internet Gods tried to stop us by cutting off our oxygen, er internet supply but the files finally made it across the pacific to our main servers. You can check it all out in the productivity pack section of Ephox.com. It’s a real beta in that we haven’t done any real testing on it and so it’s likely to have stability problems that we’ll iron out before the final release. We’re very keen to get feedback on the release, both in terms of any bugs you find and in terms of how to improve the UI, extra APIs to add for integrating it into backend systems etc.
Best Practices For Subversion In VMWare?
We’re looking to move most of our servers into VMWare so that we can easily back up the entire system and restore it in case of hardware failure. We’ve moved our Jabber server and now buzilla into VMWare and the next most likely candidate is our Subversion server. I’m wondering if it makes sense to store large amounts of data in the VM directly or if we should look at putting the actual data store on the host machine, but all the configuration stuff in the VM.
Telecommuting And Ephox
In a comment on Software Teams Must Gel, James C. McPherson asks:
Given your brief description of the Ephox interview process, it would appear that you’re not in favour of people who work from home or are even more remote from your office. I’ve spent a long time working with remote management and geographically distributed teams.
There is, of course, no solitary correct solution, attitude or approach to building and gelling a successful software engineering or development team. I would be interested to find out what the Ephox perspective in on remoteness.
Enterprise Just Isn’t Exciting To Consumers
I find it somewhat amusing that Scoble is discovering the enterprise market at the SAP conference. One quote in particular stuck out for me:
SAP is no Web 2.0 business. The cool kids like Mike Arrington don’t follow its every move like, say, the way we follow Google or Microsoft. On the other hand, name the business and it probably runs on SAP.
Ephox is like that – tiny little company that no one seems to have heard about, but you name the big enterprise CMS and we’re probably in it. We have a client list that most companies would kill to get their hands on and unlike most Web 2.0 businesses – we not just burning VC.
Where Should You Deploy From?
Once you have an automated build, the next step is to automate deployment1. A lot of people take this to mean that you should be able to check out the code, compile it and deploy it all from your local work station. I think this is largely a really bad idea.
Firstly, if you have deployment system that needs to vary, or might in the future need to vary, based on the version of the product, then your deployment scripts have to be in source control with the product and be branched and versioned just like the actual source code. If your product just spits out a zip file that is uploaded to a web server for clients to download, you my want to separate the deployment of that zip file from the code base since it will change based on changes to the web server, not changes to the code. You should however still be able to build the zip file from scripts that are versioned with your source code.
Footnotes
Every fortnight or so the Ephox engineering team lets off steam by taking a couple of hours on a Friday afternoon to do cool stuff with our products using just the publically available APIs. Theres been some cool prototypes come out of it that may be turned into features later on but mostly it allows us to get a sense of what our customers go through when they try to extend or customize our products. You should see a number of improvements to our API appearing in future versions because of this experience1.
Setting Up Jabber Build Notifications
We took a little time this morning to set up Jabber notifications of build failures since we now have a dedicated pairing machine with no email account (plus the sooner you find out about a failed build the better really).
It’s all pretty straight forward to set up, the latest CruiseControl includes a jabber publisher so you just put the details in an it all happens. I’d suggest you put it inside an onfailure element to avoid getting a message every time a build occurs (and if you’re checking in regularly that will be often).
Using Ant As An Installer
Since its inception, our IWWCM integration has been a bit of a pain to install – the instructions differed based on which version of IWWCM you where running and which version of WebSphere or Workplace you used and you had to move and edit files in various locations. Nothing difficult but it was just too easy to forget a step and have things go wrong.
The simplest way to improve things – provide an installer that automates the process. The problem is, most installer tools are ridiculously complex to work with because they attempt to provide a way to do anything you could ever want. It would have taken us days just to get our heads around how to use the tools.
Ephox Is Hiring
Ephox current has two job openings available – a technical role in our Brisbane (Australia) office and an administrative type role in our San Mateo (US) office.
Application Support Analyst (Brisbane Office)
- Combine your software engineering skills with extensive client contact
- Work with a dynamic, innovative team doing eXtreme Programming
- Particpate in developing the Client Services team for a growing international business
Overview
We are looking for an Application Support Engineer with excellent communication and problem solving skills to join our technical team. With a focus on client service, your role will be varied and challenging and will include analysis of client’s integrations of EditLive!, provide advanced technical support, liaising with Sales, and provide professional services directly to customers or partners, mainly remotely. Some limited amount of travel may be required.
Pasting Images Into EditLive! for Java
I got some nice feedback over night on an old post about WYSIWYG editors:
# Pedja Says:
June 6th, 2006 at 11:49 pmYou are the greatest.
You are the only web rich text control where I can simply paste image from clipboard.
Congratulations!
I had forgotten about that feature – it has often been one of my favorites, particularly when I want to include screen shots in technical documentation I’m writing.
Publishing MathML
Ah the synergies, Sam Ruby talk about getting MathML supported in planet, and the Ephox weblog talks about getting EditLive! for Java to automatically upload image versions of MathML equations so they render in any browser. The nice thing about this function of EditLive! is that you can still just double click the equation image to edit it again – the MathML is stored as an encoded attribute so that information isn’t lost.
Hamachi Is Cool
We’ve begun testing out Hamachi at work as a substitute for our defunct VPN and it’s showing a lot of promise. It sets up a peer-to-peer VPN which is quite clever and simple to get working. When combined with installing Bonjour on the Windows boxes (Macs have it pre-installed) and tweaking the DNS settings to add .local to the search domains, the DNS look-up works brilliantly cross-platform as well.
I’ve now got access to all the important stuff from work to tinker with my little side-projects while still being able to store them in the work subversion repository so others can join in if they want. It’s an awful lot simpler to work with than the old VPN stuff too.
Performance Tests
Useful tool for writing performance tests: Japex. Must remember to use that when we do our next round of profiling. Doug’s suggestion is that once we identify a bottleneck in the code, we write a performance test for it with Japex then try to optimize it until we reach the desired performance level. I’m not sure that our codebase is likely to see performance regressions in the same area again (I can’t ever recall having to reoptimize the same section of code), however having the test would be able to quantify how much of a performance benefit we get which would be a useful metric to know.
Automated GUI Testing With Mocks
I’ve been developing some custom views (javax.swing.text.View subclasses) in the last few days. These are right up the alley of GUI code that people tend to find difficult to test but I’ve been pushing forward with test driven development with a fair bit of success. The main approach I’ve been using is to mock out pretty much everything the view interacts with and test it’s logic more than it’s actual rendering. In fact, this particular view doesn’t do any rendering of it’s own, but it does do a lot of layout of child views etc.
Specs Are Boring
I’ve discovered why I’m lacking motivation for our Software Design Document at work. It’s tedious. It isn’t the creative part of the effort. It’s boring!
The trouble with boring design documents is not just that they’re boring to write, they’re boring to read as well – so noone does.
In our most recent round of design documents at Ephox, we took some advice from Joel on Software and started injecting humor into the docs. So instead of just anyone inserting a table into a document, now it’s Miss Piggy creating a table of Kermit’s good and bad points – complete with a picture of Miss Piggy and Kermit. At one point we actually had half the engineering team rushing off to read the specification documents just so they could laugh at the stories.
Help Is For Experts
Jensen Harris: Help Is For Experts
One of the most interesting epiphanies I’ve had over the last few years seems on the surface like a paradox: “help” in Office is mostly used by experts and enthusiasts.
How can this be? I think my biased assumption was that experts know how to use the software already and eager novices would be poring over the documentation trying to learn how to be more effective using it.
Making Wikis Work
Jonathan Boutelle talks about how he made a wiki work with his software developers:
- Start off maintaining existing documents
- Make it easy to login
- Insist on Wysiwyg
So, so true. The first two could be a little more generalized: Start with a reason to use the wiki and make it easy. Making it easy encompasses insisting on Wysiwyg but the editor is the most important touch-point of a wiki that it’s worth stating separately.
Job Opening At Ephox
If you’re looking for a job in sunny Brisbane, Australia, and the job description below sounds appealing, send me a resume at adrian@ephox.com.
Position Description
Title
Senior Software Engineer
Description
Ephox, a world-leading, content-authoring software provider seeks to employ a Senior Software Engineer for its Paddington office in Brisbane. The position responsibilities include writing technical specifications, collaborate in design/architectural recommendations of overall systems, implement software QA practices and be the technical lead in the Ephox development team. The position offers the opportunity to work with leading technologies and software vendors including content management providers. The successful applicant may be expected to provide professional services directly to customers or partners both on and off site. They will also be expected to actively participate in other areas of the business including requirements gathering for new and existing products, mentoring and pre-sales support.
CVS Is Outta There!
I pulled the big red lever on CVS this morning and converted over to Subversion at work. It’s gone pretty smoothly though one of the engineers is complaining that Eclipse is now freezing up a lot. Not sure if that’s related to the Subversion change of if something else is going on but it’s something I’ll have to investigate some more.
It’s sad but I get a buzz out of being able to move things around in the repository right from within Eclipse and knowing that the history is being preserved.
Watching The Product Release Notices Go Out
It’s interesting to watch our press release about the release of EditLive! for Java 5.0 flowing around the various news agencies via a Feedster search. I really should circle back with the guy pushing out the notifications to see which ones he actively submitted and which ones it flowed around to by itself. It’s pretty amazing what you can track these days.
Converting From CVS to Subversion
For the past few weeks I’ve been investigating and planning a move from CVS (CVSNT actually) to Subversion at work. Hopefully this week I’ll be able to do the actual conversion and see what mess it makes.
The main thing that’s missing from Subversion is an exact equivalent for CVS’s meta-modules. Subversion’s externals are good but need to support relative URLs so that branching is simple. Even so, it’s not that hard to go back and re-edit the externals property after branching and it can probably be automated with a small script. It might actually be a good opportunity to automate adding new branches to our automatic build setup as well so whenever we create a new branch the build machine (affectionately known as Bob) automatically starts building it.
On Ephox Licensing
I noticed Evan made a side-comment about Ephox licensing which I wanted to clarify and since he doesn’t have comments enabled but does have trackback on I’m posting it here. Ephox products are available both in limited seat licenses as well as on per-server terms with unlimited users. The server licenses make it much easier to deploy in big organizations as you don’t have to deal with the overhead of ensuring you have enough user licenses etc (which is what Evan was originally talking about).