So we dropped ourself in it – sort of. There was a mention made on the April 1st episode of the Dr Who episode randomiser. Now the randomiser was a project idea that we had here at the bunker. So spurred on by the latest episode we started examining the options. The premise is that there is a piece of software that picks a random episode from Dr Who.
Sounds simple right? Create something that will search through a collection of episodes and return a random one from the list. But there were a number of design decisions that we needed to look at :
- The Data
The HooOnWho show looks at a subset of the available Dr Who episode. These episodes are classified as Classic Dr Who, rather than the newer episodes – but how do we classify these? We could use the Dr’s themselves. Now the original series went into hiatus under the stewardship of Sylvester McCoy, and he handed the torch to Paul McGann in the 1997 Movie.Does that mean that only episodes featuring those first 8 Doctors should be used? after all Peter Davison did appear in an episode (time crash) with David Tennant. - The Platform
The TitaniumBunker are primarily a PC house1 (with the exceptions of Rachel’s Iphone and Ipod) and I’m predominantly a Linux user. The Hooies are mainly macintosh. - The functionality
How should the program operate? Should the program only select from DVD’s that the HooOnWho Team have access to? Or should it provide any episode.
Now we do have access to a TitaniumBunker macintosh, but realistically we need to be able to develop on PC, under windows or Linux, and be able to distribute anywhere. Therefore I have made a few design decisions which I am documenting here.
Data and storage
SQLite seems an obvious choice. The advantage from this free format is that is supported on Android, IOS, macintosh, Windows and Linux Platforms, and a partially populated Database can be distributed with the application. A SQLite Database has been created with basic episode information stored within – for example which actors played the Doctor, and will eventually store an episode list, allowing the user to select random episodes from a particular Doctor’s reign.
The Platform
I am currently developing a prototype using Titanium – a Cross platform tool. Currently the plan is to build the application and make it work under Desktops. Desktop support is currently being spun off to a separate project. I personally think that this is a bad idea. I can see the justification behind such a decision, but I think that this drastically reduces one of the main points for the project. Primarily that once I am happy that the application works well, that I can make versions of that application available to all desktop and mobile platforms without needing excessive re-writes. the work to spin off the Desktop side is still work in progress, and nothing is available yet. Perhaps it will do the project good, but I do get the impression that cross platform desktop support was a happy accident of the Titanium model. There isn’t even intelli-sense support for Desktop, but this does seem to exist for Mobile.
By trade I am a .NET developer, so the idea that I’m going to abandon a strongly typed language in favour of a dynamically typed language hasn’t exactly filled me with joy – I suppose I have been spoiled by the benefits that the .NET development environment gave me. Maybe I’m just too much of a dinosaur.
The functionality.
I see the application allowing 2 modes of use. Primarily the user will be able to add episodes. Each episode will have a cast list, which can be edited later if needs be. In addition a DVD will be marked as to whether the DVD is owned by the user, and whether it has already been reviewed.
At some point the user may want to select the random episode. The user fills in some selection criteria – for example ticking a box for “Only select DVD’s that I have”, Additionally the Search can pick only episodes where a particular actor is involved. Initially the ACTORS table contains the 11 Doctors, but there would be nothing to prevent companions to be added to the list, allowing the user to pick a random Adric episode, or random . The User can also select whether to include or exclude DVD’s that have already been reviewed.
Now the interesting part – how do you select a random record from the episode list? Well a quick perusal of stack exchange revealed this suggestion :
SELECT * FROM table ORDER BY RANDOM() LIMIT 1;
This code allows the selection of potentially any number of random episodes – if you want to pull 10 episodes then replace the limit count with 10. It all seems so simple. Development under Titanium Studio is currently stalling a little due to issues I am currently having installing a Database.
I’ll try and keep this updated as I make progress.
1The exceptions to this are : Rachel’s 3rd generation Ipod, Rachel’s Iphone 3GS, and My Ipod Nano (I do run RockBox on it – so I count that as a moral victory)
Tags: development, Dr Who
Categories
- Android
- Announcements
- Art
- Articles
- Content Packaging
- Dr who
- Games
- Medical
- Movies
- OggCamp
- Open University
- Podcasting
- Privacy
- Programming
- python
- Quickly Ebook Template
- raspi
- Security
- Technology
- TweetUpdate
- Uncategorized
- whobuntu
Archives
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010

