Electra Entertainment
The advent of Freeview prompted a wave of new STBs to allow viewers to access the new digital channels.
Electra saw an opportunity to bundle interactive services on Freeview STBs. Electra based their system on Tao Group's Intent C/C++ middleware.

When a former boss called me up to get me on the project with the words,
"... they're putting together a new Interactive TV service... they just need some apps."
... I didn't know how deep the rabbit hole would go.
Tescos sold Dion and Technika Freeview boxes carrying Channel Zero


Developing Channel Zero
My first architectural decision was that UI should be data and not compiled code. The advantages include:
-
- Avoiding a compilation step means you can sit with a designer and make tweaks in near-real-time.
- It's easier to evolve towards having a GUI resource designer if you are using XML data rather than having to parse C++.
With that in place I still had the idea that each app would be a unique C++ app, but using a common library of UI classes to load and create UI. That would always be an option, but I experimented with how far you could get with data having a tree-like structure and getting UI to interact with a 'path' through the data:
-
- World News -> USA -> Climate summit
- FIlms this week -> Tuesday -> Dr Strangelove
- Regional weather -> SE -> London -> Today
Individual UI components could then populate themselves based on their relationship to the leaf node or absolute position in the path (rather like XPATH).
I was delighted when I later saw Microsoft's XAML had come to the same conclusion with their 'data context' idea in WPF.
With that Iris 'XML browser' was born.
Canister
Freeview entered our homes somewhat before the ubiquity of Wi-Fi. Electra solved the problem of getting data into the STB by using a Freeview data channel (channel Zero). Content would be prepared, bundled into a 'Canister' and the whole package would be trickled down to your STB overnight.
Alas the whole system had only one way communication - there was no return path. With no BARB ratings or web 'page impression' data, advertisers had no visibility of their reach. Premium phone lines and referal codes were the few monetization options available.
XML
It's not for everyone, but if you'd care to dive into the supporting XML formats, there's an example.

Iris Visual Designer
Although XML is 'human readable' it's not easy to navigate. The visual designer went a long way to help composite layouts and preview changes.

Retina
Iris apps had very clean separation of presentation and data layers. Retina allowed you to visually structure XML content data and images.

Service Editor
The top level menu for the service was easily configurable with the Service Editor.
Running Channel Zero
To run the service we needed to feed it with daily updates for each of our information based apps, including:
- Reuters News
- Met Office Weather
- Group On Deals
- Dealchecker Holidays
- What's On TV Magazine

Reuters News Ingest
One of several bespoke data ingestors - this one handling Reuters news feeds.
A later evolution of the ingest toolchain eliminated the need for custom tools - if the source was xml we could transform it into our format.
Group On deals integration was turned around in two days.

Met Office Weather Ingest

Canister Extractor
The whole service was built and packaged in a few clicks or (optionally) scriptable.










