[mythtv] Interesting Comparison

Chris Pinkham cpinkham at bc2va.org
Fri Mar 3 09:21:58 UTC 2006


> I have just completed my web-based equivalent of MythTV.

I've just completed my soap-box derby equivalent of a Lamborghini.

> The only things missing at this stage are all the extras (which
> I can hardly see myself using since I have a computer) like phone,
> browser, etc.

The only things missing at this stage are all the extras (which I
can hardly see myself using since I ride the bus) like an engine,
comfortable seats, etc..

> It is interesting to make a comparison.
> MythTV has about 112,792 lines of code.
> My implementation has about 1731 lines of Perl.

It is interesting to make a comparison.
A Lamborghini has a few thousand bolts and weighs over a ton.
My soap-box derby car has a few dozen nails and weighs in just under
120 pounds.

> Additionally, my implementation has the following features:
> 
> 	- the only interface is via browser (which I didn't have to write)
> 	- there is no database, only plain text files
> 	- there is no XML
> 	- it is fast
> 	- it is highly configurable with all configuration in plain files
> 	- the recording format can be whatever anyone chooses

Additionally my implemtation has the following features:

    - It's cheap (cause I don't have any money)
    - It's easy to drive (cause I have no clue what that pole sticking
      out of the floor with the numbers and the letter 'R' in an H
      pattern is for).
    - It is fast (going down big hills that are straigth and don't have
      any bumps)
    - I get to wear a cool helmet while I drive.
    - It's a convertible (this is why I want the helmet)
    - Tires are cheaper since I have a few old lawnmowers rusting out
	  in the back yard.
    - The stearing wheel is also made from an old tire, so it doubles
      as a spare and a steering wheel.
    - It doesn't use any gas at all.
    - I don't have to worry about getting the doors dinged when I take
      it to the playground with me.

> Some of the implementation details which have helped keep it simple are:
> 
> 	- Hardware contention is only resolved at record time.
> 	  I use a simple lockfile containing pid and priority.
> 	  When a conflict occurs a lower priority job can preempt running job.
> 	  Or a higher priority job will lock out a lower priority job, but
> 	  it will still possibly run for a reduced duration.
> 	  At scheduling time there is absolutely no possibility of conflict.
> 	
> 	- Instead of XML the program guide information is in simple
> 	  column-delimited format, with first line being the column definitions.
> 	  Times are in UTC. That is all that is needed.
> 
> 	- All configuration data is simple "name = value" expressions.
> 	  But to allow 1:n relationships I simply look for plural names.
> 	  So that "guides = fta-%Y%m%d other-%Y%m%d", for example,
> 	  generates a Perl array.
> 	  Wont work for foreign languages but I reckon it would have
> 	  been simpler for the whole world to convert to English rather
> 	  that have every programmer die in agony anyhow.

Some of the implementation details which have helped keep it simple are:

    - I got the wood from an old crate I found on the side of the road
      the other day.
    - My side-business repairing lawnmowers has left me with a huge number
      of spare wheels so I never have to spend any money.
    - Use of nails instead of bolts helped save me time because I didn't
      have to turn any nuts with a wrench, I just hit the suckers with
      a hammer and they went right in.
    - I didn't have to spend any money an an alarm system because nobody
      in their right mind would steal my ride.

> I intend to add a few more features, mainly with respect to the automated
> recording selection plus some alternate tv guide sources.

I intend to add a few more features, mainly with respect to the overall
safety and roadworthiness of the vehicle.  I think that if I cut a big
enough hole in the floorboard, I can put my feet out through the hold
to both provide additional braking while trying to stop and useful
acceleration while going downhill.  I am going to add spinners to my
wheels made out of some old lawnmower blades trimmed down and sharpened
up.

> KISS to all you MythTV developers.

KISS to all you losers who fly by me on the interstate.


More information about the mythtv-dev mailing list