Announcing Angora Public Beta – Online Collaboration

For about the last 10 months I've been working on a new web-based collaboration platform from Rabbitsoft, codenamed Angora.

Angora provides online workspaces where you can collaborate with other people to create and share content, manage tasks and organise events.

Features include:

  • Wiki
  • Task management
  • Event management
  • File sharing & viewing
  • Microblogging
  • Search
  • Permissions
  • Commenting
  • Tagging
  • Versioning

With Angora you can create a workspace for a project or shared area of interest and invite people to join you online. You can then collaboritively author and track versions of online pages which you can publish to the web. You can assign tasks to people and invite them to events. You can keep up to date with your friends or colleagues by posting regular status updates and you can search entire workspaces including the contents of files. You also get a personal dashboard where you can keep track of all of your workspaces from one place, with a unified activity feed and a list of your upcoming events and tasks.

We've recently launched a public beta of the product at angora.rabbitsoft.com which I'd encourage you to try out. We'd love to hear your feedback and you can report any problems, comments or suggestions using a big blue "Feedback" button at the top of the screen.

Angora is an enterprise class web application built on J2EE, the Spring Framework and Jackrabbit content repository. We're committed to supporting open standards so that you can easily integrate it with your existing systems, we already support RSS, iCalendar and JSR-283.

I'd also personally love to know whether you're finding Angora useful so please, get in touch.

Google TV

At their annual I/O developers event last week, Google announced "Google TV", an open platform for TV-related devices based on their Android mobile OS and Chrome browser.

Many people have tried in the past to combine the web and TV experiences, but none have been hugely successful. Google claims that the reason Google TV will succeed is that unlike previous efforts, they are not trying to re-create the web for the TV, they want to bring the existing web to the TV. They're also working with an impressive array of partners including Sony, Intel, Logitech and Bestbuy.

Google TV consists of a hardware specification and a software platform. The hardware specification includes Wifi & Ethernet for broadband Internet access, HDMI to connect to an existing set-top box and an Infra-red transceiver for remote control. Also included is an Intel Atom processor, a dedicated DSP for high definition audio & surround sound and a GPU which can handle advanced 2D & 3D graphics. Input devices will all include a keyboard and pointing device to enable web page navigation and can use an IP-based remote control protocol to communicate with the Google TV device. Also mentioned was an IP protocol to communicate with cable/satellite/terrestrial set-top boxes for integrations such as retrieving TV listings and setting a recording schedule.

The first Google TV devices will include a TV from Sony and a set-top box from Logitech and will be available in the Autumn.

The software platform is based on Google's Android mobile OS with their Chrome web browser and Adobe Flash. Existing android apps should already run on Google TV as long as they don't rely on any missing hardware or software and a full SDK will be available in early 2011. As well as Android apps, the device will run HTML5 apps over the web. Any web application should work but guidelines have already been issued for optimising web apps for the TV form factor. Web APIs will be issued along with the Android SDK early next year and will probably include standard ways to control web apps from the Google TV input devices. You will be able to control the first Google TV devices from Android phones and install apps from another web-connected device.

Google hopes to open source all of the software through the Android and Chrome projects by summer 2011.

My initial impressions of Google TV are that on its own it isn't anything hugely innovative, similar things have been done before. But with a powerful hardware stack, a proven open software platform and some big brands behind it, Google TV could finally be the platform which successfully merges the web and TV and enables a new generation of innovative services. If HTML5 lives up to its promise then native Android apps one day be redundant as HTML5 matures and provides an equivalent user experience in a more open way.

With HTML5 support building on netbooks, smartphones, tablets and now TVs & set-top boxes I'm excited about the potential of future web applications on this new range of form factors. I think that in a couple of years time the web is going to be even more graphical, even more interactive and even more ubiquitous than ever before and the desktop PC will no longer be the primary means of accessing online content.

Are you ready for the web on your TV?

Sponsored walk for Bowel Cancer UK – please donate

Bowel cancer is not something a lot of people like to think about, but unfortunately for some people it's something very real they have to deal with.

That was the case for my girlfriend Laura's dad this year who was diagnosed by chance after a routine checkup with his doctor. Bob was lucky because they caught the cancer early and it has now been fully treated. He still has a long road to full recovery after the operation but he's on the mend.

In support of Bob, to raise awareness about bowel cancer and to provide practical support and advice for other people in the same situation, Laura and I are walking the 5km "Bringing up the rear!" sponsored walk in just over a week's time. this walk has been organised by Peterborough and Stamford Hospitals NHS Foundation Trust (Bob was treated by the fantastic staff at Peterborough hospital) and will raise money for Bowel Cancer UK.

If you live in the Peterborough area and you're free on Sunday 25th April then you've still got time to join us on this walk, but if not then we'd be extremely grateful if you could make a donation via our JustGiving web page. This web site makes it quick and easy for you to donate, allows you to automatically claim gift aid on your donation and have 100% of your donation sent to the charity.

Thanks for taking the time to read this and please, donate now with whatever you can afford.

 

The iPad is Awesome, but the Web Can Do Better

Journalists and bloggers seem divided when it comes to Apple's recently announced "iPad". Some seem disappointed that after all the hype leading up to the launch of the so-called "Jesus Tablet" it didn't turn out to be an event akin to the coming of the Messiah! Many have passed it off as just "an oversized iPod touch" or "a laptop without a keyboard" or highlighted its shortcomings such as a lack of multi-tasking and Adobe Flash support. On the other side of the fence loyal followers of the Cult of Apple are quick to evangelise the product, hailing the beginning of a new era.

Now that the dust has settled a little I'd like to take my seat on the fence between these two camps and share some opinions about what I think is great about the iPad and ultimately what I'd like to see replace it.

Beautiful Hardware

The first thing you might notice about the iPad is that it demonstrates exactly the kind of minimalist design and engineering excellence we've come to expect from Apple products. This beautiful device is thin and light and is made from an aluminium unibody case and high quality glass multi-touch screen. Apple has developed its own custom components like the ARM-based "A4" CPU and a lithium-polymer battery to squeeze out every last drop of performance and battery life.

Intuitive Software

Something I find very interesting is the way in which Apple has re-designed the user interface of practically its entire Mac software suite to be better suited to this new form factor. Photos are presented in stacks which can be exploded with a pinching action, eBooks are stored in a bookcase and can have their pages turned with a natural dragging action and the address book is presented as an actual book. The user interface uses real world objects as design metaphors much more successfully than we've seen before.

The incredibly tactile nature of this new mode of interaction certainly makes for impressive demos and initial reactions from people who have used the device indicate it's just as impressive to use in real life. For the first time it's really feasible to reach out and touch your media directly on the screen rather than being separated from it by a perpendicular plane of interaction on your desktop or laptop keyboard and pointing device.

If nothing else, I think the iPad is going to change how we think about user interface design. Apple's UX design guidelines for the iPad talk about styling UI components to be an integral part of the graphical design of software to make them less conspicuous and more of an integral part of the "physical dimension" of the application. They also discourage modality and full-screen transitions, suggesting designers flatten their "information hierarchy".

Appliance, not Desktop

Of course tablet PCs have been around for many years, but the iPad really comes across as more of a versatile information appliance than a desktop PC. Microsoft tried to adapt their desktop environment to the tablet PC, but Apple has instead started from the base of the iPhone platform. The iPad is not a desktop computer but a tablet which can be instantly transformed into a wide range of tools for different types of information or task. User interfaces are not composed of "windows" of conventional UI elements like menus and buttons, they tend to more heavily use design metaphors of real-world objects which directly represent the content or task, with a single tool filling the screen at any one time.

The Ultimate Proprietary

I think the exceptional user experience achieved by Apple is down to the tight vertical integration of proprietary hardware, software and services. Apple makes their own components, develops their own software and delivers apps and content via their own services. They control nearly every part of the chain between the design, implementation and delivery of their products – including the content and apps consumed on them.

The downside of this tightly integrated approach is that it's an incredibly closed environment. If a software developer wants to develop software for the iPad, that software will not run on any device from any other manufacturer and will only be allowed to run on the iPad if Apple approves its inclusion in their own App Store. If a consumer wants to use a service from one of Apple's competitors, they may find that it's not possible because Apple has blocked apps from that provider. In other words, the iPad is ultimate proprietary computer.

If the iPhone is anything to go by, the app store model will be very successful for Apple in the medium term. People will flock to the iPad and its related services because of the superior user experience, and of course because they have Apple's name on them!

Why the Web can do Better

In the longer term lots of devices will inevitably emerge which imitate the iPad, in fact it has already begun. I think companies who attempt to a shoehorn a desktop environment into these devices will meet the same limited success of the Windows tablet PCs of old. However, I think a new breed of tablet devices descended from netbook and nettop form factors will eventually show more success. Mockups have already surfaced which hypothesise what a Google tablet running Chrome OS might look like for example. There will probably be a range of different devices based on a Linux kernel, but ultimately the user won't care what underlying OS they're using.

Emerging web standards like HTML5, SVG and X3D are going to make it possible in future to create web applications with the same kind of experience of Apple's iPad software suite. I think eventually this standards-based world and a Software-as-a-Service model will displace Apple's proprietary app store model. As seamless as they have made the experience, the app store model still fundamentally relies on users downloading and installing software on their local device. If they want to use the same app on three different devices they will have to install three times, and potentially pay three times as well!

Web applications have the advantage that they can be used from any web-enabled device and developers only need to write once, run anywhere. With the offline capabilities of HTML5 applications will work offline without needing to be installed and data will seamlessly be synced between the local device and the cloud.

Conclusions

In conclusion then, the iPad is an awesome device even if it is only a evolution rather than a revolution. In part due to Steve Jobs' "reality distortion field" and the preaching of the Cult of Apple, the iPad could be as successful as the iPod and the iPhone have been. Lagging behind their competitors in terms of raw features never hurt either of these devices, and with the apparent exceptional user experience of the iPad it's reasonable to think the same will be true of this latest addition to Apple's product line. New versions of the iPad will probably fill in these gaps anyway, once it becomes feasible to pack extra hardware in whilst retaining the low price point.

Once currently emerging web standards become widely supported and web application developers catch on to this new style of UI design, web applications may displace the app store model currently used by Apple. At this point the tablet computer itself could become more of a commodity, turning into a web client rather than a platform for local applications.

I look forward to a time when the web can provide an experience as rich and intuitive as Apple has made the iPad.

Chrome OS Overview – new details emerge

In a previous blog post I mentioned Chrome OS, Google's lightweight operating system. Yesterday Google held a press event where they announced the open-sourcing of Chrome OS as the Chromium OS project and released more details about the features and design of the software. Whilst consumer products running the OS won't be available for another year, the source code is available for developers to download and all development from now on will happen in the open. Design documents and UI "experiments" are also already available online.

The product manager Sundar Pichai identified trends in computing which Chrome OS is designed to address. These include the move from laptops and phones to netbooks and tablets and the move of software into the "cloud". A marketing video stated that Chrome OS is an operating system designed for the age of the Internet and explained the software at a high level. In Chrome OS every application is a web application and all of the user's data is stored in the cloud with local storage merely acting as an offline cache.

New Web Standards & Extensions

The focus of Chrome OS is said to be on speed, simplicity and security.

The OS will implement emerging HTML5 APIs which will give web applications direct access to hardware for accelerated 3D graphics, audio/video, processor multithreading and local storage as well as providing standard user notifications. These APIs hold the promise of much more powerful web applications which can really take advantage of device hardware to deliver the kind of rich multimedia experience currently limited to desktop apps.

Developers will be able to create extensions for the OS which use web technologies and take advantage of automatic updates.

Speed

The aim is that using Chrome OS devices should feel more like using a TV than using a computer. A demo of the OS running on an off-the-shelf Eee PC booted to a login screen in 7 seconds and the aim is to bring this boot time down even further.

One contributing factor to this speed is that all Chrome OS devices will boot from SSD (solid state storage) rather than a hard disk. Also because the OS doesn't run local applications it doesn't need to load all the background services a desktop operating system would require.

Simplicity

One of the proposed UI designs for Chrome OS (there are several slightly different possibilities) reduces the "chrome" down to a single bar of interface elements. This includes tabs, special "pinned" application tabs, a menu containing search and web application shortcuts, a combined web search and address bar and icons you'd expect such as wireless network signal, battery and clock.

There are no floating, overlapping, re-sizeable 2.5-dimensional windows like most desktop UIs. Instead you can view multiple web resources at a time with a split screen and "panels" allow you to multi-task by running a music player or chat application in a "lightweight window" which is docked to the bottom of the screen.

Tabs are grouped into windows which resemble workspaces from Mac and Linux desktop environments. An overview mode shows all the open windows and thumbnails of the tabs opened in those windows.

Security

The fact that users don't install binaries on Chrome OS means that quite a unique security model is possible. Unlike a desktop OS every application is treated as un-trusted and runs within a sandbox. In fact the security model is so paranoid that Chrome OS doesn't even trust itself. Every part of the OS – the firmware, kernel and root filesystem is cryptographically signed and is verified every time the device boots. If a single bit is out of place the system is re-imaged from an up to date version online.

For extra protection the root partition is kept completely separate from user storage and is set to read-only. This gives an extra layer of protection to ensure no web application can modify local system files or change settings. The user partition is fully encrypted and all user data is synced to the cloud so local storage is really just an offline cache

Automatic updates do not require user intervention so the system is guaranteed to always have the latest security patches.

Devices

No Chrome OS devices are due for another year, but Google has already announced that it's "working with a number of technology companies to design and build devices that deliver an extraordinary end user experience" This includes Acer, Adobe, ASUS, Freescale, Hewlett-Packard, Lenovo, Qualcomm, Texas Instruments, Toshiba and others.

To achieve the speed and reliability they want, Google is working closely with hardware companies to tightly couple their software with hardware, even going as far as to specifiy individual components OEM devices should contain. All devices will use SSD rather than hard disks.

How Open is Open?

Chrome OS is a fully open source operating system which heavily promotes open web standards. All development is going to happen in public and contributions are welcomed from the open source community. But just how open is the software in reality?

The Register has a characteristically negative take on Chrome OS. They accuse Google of creating "another monoculture", drawing comparisons with Apple's proprietary approach to tightly coupling the entire vertical stack of hardware, software and services.

There are strong technical arguments for this tight integration. Mac OS X demonstrates the kind of performance and reliability that can be achieved when the software developers only have one hardware platform to worry about. Microsoft's Windows and desktop GNU/Linux distributions have to maintain drivers for a huge range of hardware and architectures which can result in patchy peformance and ultimately a frustrating experience for the end user. By locking down Chrome OS to specific devices in a similar way to Android phones, Google neatly sidesteps this issue.

The tight integration of hardware, firmware and software is also what enables Google's innovative security model. Google has control over every byte of software on the device and can therefore guarantee its integrity.

Technical arguments aside, this tight integration doesn't really contribute to the "open" image. Although Chrome OS is open source, all code contributions naturally have to be accepted by Google employees. In addition to this, Google has stated that consumers won't be able to just download Chrome OS and run it on any machine, they will have to by a Google-approved Chrome OS device from one of its partners.

There are clear advantages for users when their data is synced to the cloud, but it also requires the user to let go of a certain amount of control over their data. There's something re-assuring about local storage you have physical control over.

Open Source licenses guarantee the liberty of software with licenses which perpetuate openness of the source code. But this model fundamentally relies on the fact that any project can theoretically be "forked" if the original supplier disappears, takes the software in a direction not favoured by the community or turns "evil". It's questionable whether any group of people other than Google would have the resources to effectively fork Chrome OS. The vertical integration and dependence on update servers would require a huge amount of infrastructure for any potential fork.

Closing Comments

Chrome OS truly is a fundamental paradigm shift in computing and is another genuinely innovative product from the innovation powerhouse that is Google. The company is keen to push the "open" aspects to the software and they don't yet seem to have an intended revenue model for the product.

In my view Chrome OS is an invevitable evolution in computing as a result of the success of the World Wide Web and one I've been anticipating for about five years. Although I didn't think of even half the clever and innovative features packed into this announcement, I am surprised it's taken this long for a browser-based OS to emerge. If Google delivers on all of its promises for Chrome OS then it will have been well worth the wait.

I applaud Google's open approach, their brave "web apps only" system and bold design decisions. However, I am also quietly cautious about just how open a vertically integrated system such as this can really be. For many of the open source hackers who lovingly created the very software Chrome OS itself is built on, this new approach to software will be a hard pill to swallow due to the control they are losing over their own computer systems by buying into this new paradigm.

Chrome OS is simultaneously a massive boost for open technologies on the web and the birth of a new class of proprietary computer system.

Vivaty defects to Flash for Vivaty Scenes Lite

This is a very sad day for open standards on the 3D web.

I'm devastated to hear that the X3D poster child that is Vivaty has stooped to shoe-horning a feature-limited version of its service into a proprietary 2D graphics plugin as a misguided attempt at achieving cross-platform support.

Yes, I'm a Mac (and Linux) user who would like to be able to use Vivaty, no I don't want to use a stripped down version hacked into Flash.

I wonder what great things could have been achieved if the engineering effort put into hacking together a 3D application in a 2D graphics engine had instead been ploughed into supporting and improving Unix/Linux-based implementations of X3D, the ISO standard for 3D graphics on the web. The Web3D community would benefit considerably from Vivaty's contribution to standardising and promoting the innovations they have made with the Vivaty Player, AJAX3D being one example.

I'm not angry at Vivaty's misguided efforts which were no doubt driven by business decisions, I am instead disappointed that they felt that the open standards route was not a viable cross-platform option for a company which has previously championed the standards movement.

Google Chrome OS

In my last blog post I outlined a design concept for a "graphical shell for the web", a replacement for a desktop environment for devices dedicated to browsing the web. On Tuesday Google announced  the "Google Chrome OS" project which appears to be an implementation of a very similar idea.

Google says that Chrome OS will be "an open source, lightweight operating system that will initially be targeted at netbooks" and is their attempt to "re-think what operating systems should be", with a focus on "speed, simplicity and security". Chrome OS will essentially be Google Chrome running on a Linux kernel.

After the announcement several people contacted me with messages along the lines of "have you heard about this? It sounds like what you've been banging on about for years!". I agree, and I think this is a significant development in the transition from applications installed on a desktop PC to services provided over the web.

I'm eager to see what the Chrome OS user interface will look like, the blog post mentions a new windowing system and I hope the UI doesn't resemble a desktop environment. Ideally it would be as simple as possible with only the minimal user interface elements required for browsing the web and operating the host device.

I think that devices based on this OS will have a range of benefits over the traditional Personal Computer:

  • Reliability – Solid state devices like netbooks and nettops have no moving parts and with a solid Linux-based OS could be exceptionally reliable.
  • Maintenance -With a significantly reduced complexity on the client-side software stack and potentially automatic updates, maintenance will be greatly reduced.
  • Security – With a new security model and a UI designed only for using the web, the risk of malicious software or malicious unauthorised use could be greatly reduced.
  • Environmental impact – Netbook and nettop computers tend to have a much lower power consumption than traditional PCs. The power usage of computing shifts to the "cloud", with a focus on efficiency and the use of renewable energy in centralised data centres.
  • Cost – Low cost hardware, no software license costs and low power consumption, with no vendor lock-in.

I look forward to hearing more about the Google Chrome OS and the devices it will run on.

A Graphical Shell for the Web

I'd like to ask for feedback on a draft of a design concept I've been working on since 2006. The idea is "a graphical shell for the web" and it is intended to act as a replacement for a desktop environment for devices dedicated to accessing the web. Target hardware platforms might include netbook and nettop computers, mobile internet devices, set top boxes and internet kiosks.

I would appreciate comments either here on my blog, on the krellian-webtop mailing list or by contacting me personally if you prefer.

Work towards implementing this design concept has already started at krellian.org. In addition I am thinking of creating an interactive mockup of the user interface using SVG because, as Jef Raskin eloquently put, existing UI building tools "enshrine current paradigms and thus unduly limit the scope of what you can do".

Please let me know what you think.

Dashboards and Collaboration

In response to Luke Barton's question from Rabbitsoft:

 "Do dashboards have a pivotal role in collaboration? How could a dashoard be executed on a WebOS platform where apps are optional?"

First, what I assume you mean by that:

  • Dashboard – "Dashboard is a term now being used generally to refer to a web-based technology page on which real time information is collated from various sources in the business."–Wikipedia
  • WebOS – A desktop environment and window manager implemented as a web application.
  • Application – a piece of computer software dedicated to a particular type of information or task.

To answer the first part of the question, I think dashboards can have a pivotal role in collaboration but that their usefulness extends beyond collaboration. A dashboard provides an overview of information about the business which is relevant to a particular user to allow them to keep their finger on the pulse of the business and be alerted to timely information. This includes (but is not limited to) information about what other members of the organisation are doing or saying and this is the dashboard's contribution to collaboration – allowing the user to keep a light touch on a large amount of information from a number of other users. If not carefully configured, a dashboard can also be a source of distractions for users which could actually reduce productivity, but if done well can enhance the flow of information within the organisation and keep members well informed.

To address the second part of the question, surely a platform without any apps at all is useless to the user? Therefore the apps aren't optional. Or maybe there are parts of the system which are not referred to as apps but which could be classed as apps by a wider definition. Even if there are not specifically any apps installed directly on the platform,  a "WebOS" can draw resources from third parties over the Internet. The dashboard might start off empty, but the user can fill it up with widgets for these external resources.

An example of what I'd call a web based dashboard is Google's personalised homepage, iGoogle. It's similar to Apple's dashboard in OS X, but with a slightly different UI. "Widgets" or "Gadgets" are arranged in a grid on the homepage and each widget gives an overview of the most relevant information from an external web application or resource. Other similar services exist such as Netvibes and there's even a W3C recommendation for "Widgets", though oddly their specification is not really applicable to a web-based implementation.

I think that a dashboard for a WebOS should therefore be implemented as a container for widgets which provide a short overview of information from an external application or resource. Examples might include recent changes to the company intranet or wiki, the most urgent tasks in a project, recent microblog entries by members of the organisation or today's agenda from the corporate calendar. Each widget could be described with a standard XML format and when rendered to the dashboard should aggregate data from an external resource via HTTP – be that from application on the platform itself or from elsewhere.

I actually think that a dashboard can be so useful that it could replace the "desktop" altogether! Widgets are much more meaningful and useful than simple icons and a dashboard makes a more useful homepage than a "desk top" covered in "wallpaper". A dashboard provides an interface which is centered on tasks and information rather than on applications. That's really a different topic which I would be happy to discuss elswhere.

O3D – Google's 3D JavaScript API

I've been dying to talk about this since last summer when I joined the trusted testers programme, but the public release has finally arrived. Google has released an Open Source JavaScript API for creating interactive 3D graphics in the browser called O3D. It is currently a browser plugin for Internet Explorer, Firefox, Safari, and Chrome that works on Windows, Mac OS X, and Linux – but Google would ultimately like to see native support in browsers.
 
Although Google have been working on this project for two years, they're billing this as an early release as "part of a conversation with the broader developer community about establishing an open web standard for 3D graphics". With reference to Khronos' Initiative to Create Open Royalty Free Standard for Accelerated 3D on the WebMatt Papakipos (Engineering Director at Google) has previously said "with more and more content moving to the web and JavaScript getting faster every day, the time is right to create an open, general purpose API for accelerated 3D graphics on the web. Google looks forward to offering its expertise in graphics and web development to this discussion".
 
CNET article on O3D also quotes Papakipos. 'Google believes that it's possible that multiple 3D interfaces will be supported in browsers of the future. "Ultimately, there's going to be at least two," Papakipos said, pointing out that 2D graphics in the browser has two technologies at present, SVG and Canvas'. Having personally discussed X3D with Matt Papakipos, I have high hopes that he may be referring to X3D here, or perhaps a derivative of X3D. When I discussed X3D with members of the O3D team (known internally by a different name) last summer, they said they didn't know a great deal about X3D at the time, but they seemed to have some reservations about parts of the standard – apparently enough to warrant taking their own approach to the problem.
 
I am encouraging Web3D Consortium members to engage in this discussion. As Google has recently become a browser vendor and a member of the Khronos group, I would also be interested to hear the consortium's views on Google's recent release. Their new API is yet another example of an imperative approach in contrast with X3D's declarative approach.
 
Please note that I am not currently an employee of Google, I was only an intern there last summer, any opinions expressed are my own.