Skip to content

Instantly share code, notes, and snippets.

@lamp
Created January 22, 2010 22:39
Show Gist options
  • Save lamp/284232 to your computer and use it in GitHub Desktop.
Save lamp/284232 to your computer and use it in GitHub Desktop.
USER JOURNEY
a) Always have a primary presentation that represents the entire embeddable journey (our current semantic)
b) User journey - point in time - observer pattern lifecycle
- separate service for comet etc - scales properly
c) Preview image -> test card -> stream -> other states -> VOD
-- need to check for bifurcation
d) (v2) licensed streams - placeholder stream like trailers in JTD
(LSPOC - matt g to review)
e) (v2) automatic conditional insertion at time periods (overlays) - secondary concern
----
overlay for vod?
- vod production still an open piece of analysis (given business problem)
- soundtrack licenses are different
- buy for february - SMIL - clothes popup - clicking on them opens product store at the relevant page - pauses presentation when needed
- e-commerce journey - how do we cope with lost product codes - single landing page?
----
manual failover control for streams - still fits the generalized PIT SMIL injection (with comet notification model) - but there needs to be an available 'note' of the failover SMIL
(V2) - audio failure => overlay message?
dynamic overlays can be a content stream - named regions
---
Admin Journey
** Creation **
1. create stream references using enpoints (prior knowledge)
2. create user journey (event sequence)
3. distribute embed code
** Updates **
1 & 2
3. Timing interface
---
Design
- Merb app?
- service that can keep track of per-seed per-presentation time-sequenced events - that can be polled / comet
- tracks current UUID? of step (so player can minimally know current stage and next one)
- contains SMIL templates and affords them via UI ('queue up a pre-roll for 16:00'...)
- updates SMIL on core (as appropriate) - actually updates the presentation object with a hash (as things like :title may need to change as well as :document_content etc...)
(V2) - need to consider whether presentations managed in this way are somehow 'soft-locked' to prevent accidental editing from two different apps
- maintain domain model of preferred order of redundant sources (so we can have a big red 'switch to backup button')
---
Adam's Notes
- Archiving;
- Publish to first Highwinds origin (record as backup)
- Publish to second Highwinds origin (record as VOD)
- Grab second VOD file from Highwinds, use in presentations
- CDNetworks (Paris) used as backup
- Highwinds origin (closest to encoder) used as primary
- Second Highwinds set (using a different origin location) as second backup
- Getting the url out of the panel (when the permission is denied);
Seed.first(:name=>"burberry").inside{ pres = Presentation.get(37); @vids= pres.document.assets.select{ |a| a.kind_of? Asset::Video}; @vids.map{ |v| AssetVendor.url(v) } }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment