Giter VIP home page Giter VIP logo

radiotag-doc's People

Contributors

andybee avatar seanohalpin avatar

Watchers

 avatar  avatar  avatar  avatar

radiotag-doc's Issues

Widen the scope to TV? (VOD?)

Considering the benefits we've encountered from widening authentication to a x-media protocol, could we do the same with RadioTAG, to allow a single spec to adopt the previous work done with TV Tag.

If we took this initial step, it's easy to see it being extended further to encapsulate VOD too.

Could we abstract the radio-specific bits from the spec and develop a "tagging core" with appendix/additional docs that add the broadcast parameters in?

Change `station` to `resource_uri`

One possible way to resolve #7 and #8 and increase the scope of the project would be to abstract the current "station" parameter in favour of a URI.

A URI could then represent any one of a number of things:

It could even get very "abstract" as the URI could represent anything - a web page, a MBID, etc. The scope of accepted URIs would then be limited by the implementation (e.g. a radio class received only accepts broadcast and audio URLs in the realm of the broadcaster).

If we went down this route, time would become optional for items not in the time domain. We could incorporate time in the URI (e.g. "dab:ce1.ce15.c224.0#1312195118" or "dab:ce1.ce15.c224.0?t=1312195118") and vary it for different contexts (e.g. AOD is an offset not time "http://downloads.bbc.co.uk/podcasts/radio1/r1grimmy/r1grimmy_20140221-0157a.mp3#offset=116s")

Project name

The RadioDNS suite of applications are moving away from having "brands" (RadioTAG, RadioEPG) to having descriptive names to fit in more closely with ETSI specification-style titles. I'd like to propose retitling the specification in a similar fashion, such as "Simple interaction methodology for hybrid radio".

As an extension we could begin retiring "tagging" as a term as it has been a contentious issue throughout the project. This impacts things like the /tag endpoint; we could move to describing 'tags' as 'events' and so rebrand the endpoint /event (e.g. REST'fully
POST'ing an event to /event).

RadioTAG-Service-Provider header

If I remember correctly, this was a late addition for Frontier Silicon to ease implementation. It feels a little excessive to me to include this in every response.

I also think the value of this header is now equally covered by responses from the SP under the CPA protocol.

More than one button/interaction

BBC R&D have held several workshops around their Radio Dan project, inviting developers and members of the public to develop their "wrong radios". A recurring theme is the inclusion of at least two binary buttons; +/-, Like/Dislike, Vote Up/Vote Down.

10038749614_30a60b9aa2_b

10038785165_a78358b03c_b

10038787385_772cccc3d4_b

This has inevitably brought a number of people back around to the question of why RadioTAG is just a single button interaction, particularly if people thinking outside the constraints of an existing draft specification all favour a couple of buttons to be able to infer emotion around their interaction - positively or negatively.

I've thought a lot about this issue and I still believe the unique quality of RadioTAG is the simplicity of single button interaction. During Digital Radio Week in Geneva there was a reasonable amount of discussion about in-car listening and in particular the impact of new functionality from hybrid devices. On several occasions concerns were raised over the suitability of interactive controls to be used whilst operating a vehicle. Tag in it's current state overcomes this issue with a single button push.

By having a single button it's easier to make the argument to car manufacturers to integrate tag in to a steering wheel "stalk" control providing a safe option for in-car interaction. Similarly, it's easier to get a manufacturer of a very low cost device to put a single button in over multiple buttons.

I worry that even by opening the specification to allow additional interaction types, purely for devices that are suitable and capable, we confuse the user proposition of how the application works and it will be confusing for users if it behaves differently on certain devices to others.

Move all responses to JSON

I'm keen to ease understanding through consistency. General trends for APIs are favouring JSON responses over XML and, whilst we adopt an existing standard in using Atom for the responses, it does feel a bit "heavy" for the relatively simple outputs from RadioTAG. An alternative:

GET /tags HTTP/1.1↵
Content-Length: ?↵
Content-Type: application/json↵
Host: radiotag.bbc.co.uk↵
↵
{↵
  "total": 1,↵
  "start_index": 1,↵
  "tags": [↵
    {↵
      "title": "PM",↵
      "time": "2011-08-02T17:22:08+01:00",↵
      "description": "Eddie Mair presents the day's top stories.",↵
      "service": { "id": "0.c224.ce15.ce1.dab", "name": "BBC Radio 4" },↵
      "image_url": "http://radiotag.bbc.co.uk/images/episode/b012wjd3_150_84.jpg",↵
      "link_url": "http://www.bbc.co.uk/programmes/b012wjd3?t=1328"↵
    }↵
  ]↵
}

This could be extended to submissions too. Some examples:

POST /tag HTTP/1.1↵
Content-Length: ?↵
Content-Type: application/json↵
Host: radiotag.bbc.co.uk↵
↵
{ "station": "0.c224.ce15.ce1.dab", "time": 1312301004 }

Adoption of TV Tag "register ahead of use" flow?

There has been some suggestion of looking at the work undertaken in TV Tag with regard to a "register ahead of use" flow.

I still feel registration triggered by user intent is the best way to begin the process, as we did in the previous RadioTAG draft. Otherwise we get in to a "Why should I register?" situation with the user.

As a compromise, we could offer the option to enable "lookahead" should a manufacturer wish to add this facility. One possibility is to offer an endpoint to discover registration eligibility. This could either be: 1) Hit /tag without any parameters and observe the WWW-Authenticate headers or 2) create a new endpoint /status which returns either an OK or a Unauthorized with relevant WWW-Authenticate header.

This borders on being "larger" than just tag, it might be worth escalating this as an issue with the CPA group.

Button appearance - customisation?

Related to #5, if 'Tag' is such a contentious issue - should we either come up with a new name/icon/visual identifier for the button, or at least advise how it should be referred to, or leave it up to manufacturers to implement.

One exception I can vaguely see worthwhile to #4 is a way in the specification for the service provider to advertise an alternative name (and icon?) for the button for suitable UIs. We'd always have a default (maybe still "Tag" or "Mark" or "Favourite") and an icon (I'm still thinking a star).

But being adaptable (on compatiable device types) could allow the BBC, for example, to signal the button to be titled "Playlister" on their music networks and signal a suitable image asset of the Playlister logo. Smartphone apps or hybrid radios with colour touch screens could then show a Playlister button in place of Tag. I feel it would have to be an entirely optional part of the specification, both for client and server implementations.

Revisit Podcasts/AOD

Earlier tag specifications had some thought put in to how the application could work with AOD. I'd like to revisit this (with reasonable support).

Essentially, the previous specification replaced the broadcast parameters with a URI (something to identify which audio we're talking about) and an offset in seconds from the beginning of the audio.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.