[mythtv] Same old mind reading crud.

Michael T. Dean mtdean at thirdcontact.com
Sat Apr 14 16:28:41 UTC 2007

On 04/14/2007 10:21 AM, Marco Nelissen wrote:
>> For example, if I were recording The Office from 8:30 to 9:00 and CSI 
>> and Supernatural from 9:00 to 10:00 and I had a conflict because of a 
>> 2-minute start early/end late on each, the /right/ way to fix the 
>> conflict is to allow end late on The Office (2 minute end late) and 
>> start CSI 2 minutes late (-2 minute start early).  The wrong ways 
>> (notice the plural) are to a) drop end late from The Office and drop 
>> start early from CSI (I miss part of The Office, but don't mind missing 
>> part of CSI), b) drop end late from The Office and drop start early from 
>> Supernatural (I miss part of The Office /and/ Supernatural--the two I 
>> care about), and c) keep end late from The Office and start late on 
>> Supernatural (I miss a whole bunch of Supernatural).
>> Now please show me the code for an algorithm that knows this /and/ knows 
>> my personal preferences for handling all other possible scheduling overlaps.
>> Could we make these changes automatic based on priority?  Sure, if we 
>> want to encode some meaning into priority that's /far/ more complex for 
>> the user to understand than simply, "Tell Myth to start the one you care 
>> least about late..."  As a matter of fact, I spend a lot of time in 
>> Myth's code (and figuring out how Myth works), and I /know/ I would be 
>> confused by a priority-based approach (which, incidentally, would be 
>> completely broken--after I spent so much time getting my priorities 
>> straight--when some network decides to change the timeslot for a show).
> I don't see how how a priority-based approach (i.e. "I care more about
> THIS show than about THAT show") is confusing.
> In the example you gave, your priorities would be (1) The Office,
> (2) Supernatural, (3) CSI (you said you cared about about The Office 
> and Supernatural). So what would would/should happen is that it would
> start recording The Office early and finish late. It would also start
> recording Supernatural 2 minutes early and end 2 minutes late on your
> second tuner. CSI, being the least important show, would start 2 minutes
> late and end 2 minutes late. If I'm not mistaken, this is exactly what
> you described as being "the /right/ way".

So, are you going to create the "How to schedule your recordings for 
Myth" matrix and post it where people can print it off for use when 

The right way is the way I decide to resolve this specific conflict.

With three shows, it's a "tractable" problem.  When you start to include 
other shows, it becomes a mess.  So, When you realize that My Name is 
Earl comes on before The Office and Grey's Anatomy comes on after The 
Office and one of my local independent stations airs Scrubs reruns 
before and during The Office (and Scrubs is actually more important to 
me than The Office, but the Scrubs reruns aren't).  And then there are 
the shows in the 10:00pm timeslot...

7:00-7:30 - According to Jim (reruns)
7:30-8:00 - According to Jim (reruns)
8:00-8:30 - My Name is Earl
8:00-8:30 - Scrubs (reruns)
8:30-9:00 - The Office
8:30-9:00 - Scrubs (reruns)
9:00-10:00 - CSI
9:00-10:00 - Grey's Anatomy
9:00-10:00 - Supernatural
9:00-9:30 - 30 Rock
9:30-10:00 - Scrubs (new)
10:00-11:00 - Shark
10:00-11:00 - Secrets of the Dead]
10:00-10:30 - The King of Queens (reruns)

OK.  It's getting more complex...  I need to ensure that Scrubs has a 
/very/ high priority.  But, I need to ensure that the Scrubs reruns 
don't prevent my recording The Office when they overlap, so I'll need 
two differently-prioritize Scrubs recordings.  Oh, but those Scrubs 
reruns are shown on Wed night, too, and I'd rather get them than Bones, 
which is followed by According to Jim (new episodes) that are important 
to me and Criminal Minds where I don't mind missing a few minutes at the 
beginning, which is followed by Lost, CSI: NY, and Medium.  OK, so the 
priority of my Scrubs reruns must be greater than the priority of Bones 
and Criminal Minds and Criminal Minds must be higher than Bones but 
Criminal Minds must be less than Lost and CSI: NY but what about 
Medium?  I don't care if I miss time in Criminal Minds or Medium, but...

Which means that my prioritization must be done while factoring in 
schedule--which is bound to change very frequently throughout the 
season.  In truth, prioritization is /supposed/ to be independent of the 
schedules.  The, er, recording schedules are supposed to be based on the 
schedules.  So, perhaps we could have a way to specify on a 
per-scheduled-recording rule basis that this show--which is followed by 
stuff of which I don't care if I miss a few minutes--should record for 
an extra 2 minutes...  But, what if the schedules change?  Well, I'll 
notice it when I do my fortnightly schedule review and see a conflict.

My point is that it's impossible for Myth to always do what you want it 
to do unless you tell it what you want it to do.  If you try to take the 
"proactive" approach--I'll define what should be done in every possible 
situation--you have to provide too much information (and it becomes very 
complex for the user).  (When I'm asked by a survey to prioiritize the 
"six most important ..." I generally put the first two in order and then 
just put numbers in the others.  I personally don't believe humans can 
do absolute prioritization well at all--however, they do very well at 
relative prioiritization.  I know /I/ couldn't provide an absolute 
priority for each of my 77 recording rules.)  If, instead, you provide a 
"look up to 2 weeks out in your schedule and react to the conflicts" 
approach, the user simply has to specify what to do in the few 
situations where there's an issue.  And, with 52 weeks in a year, that's 
26 times a user would need to take 2 minutes to verify his schedule 
throughout the year (although I typically do it at least once a week).  
That's not so difficult.

The best way to see the issues is to write the code to do this and post 
it so others can critique it.  (Everyone thinks they all want the same 
things, but they actually want different things.)  I will promise that I 
won't write this code (even if you change my mind as to the feasibility 
of some approach--because I don't need it), and I'm relatively certain I 
could name a few Myth devs who won't write it, so until someone else 
writes the code, it's probably not worth the discussion.


More information about the mythtv-dev mailing list