New Technical Design

From FTWiki

Jump to: navigation, search

This is where we collaborate/discuss the design of the new features of the Freedom Toaster. If I ["Charles Oertel"] don't get any input, I will barrel along with whatever I put down here... ;-)

Contents

Structure of the New Version

The new version is about to be released, and here is a reference to the design decisions made in this release:

  1. The toaster runs on Ubuntu Hoary Hedgehog now. Do a server install, then apt-get package files for:
    • fvwm
    • firefox
  2. Some Perl modules need to be installed:
    • CGI
    • Cache::FileCache
    • XML::Simple
  3. All files live below the /srv directory:
    • /srv/isos is a separate very big partition holding the isos in a structure like this:
    • /srv/isos/ubuntu would be one distro directory. Inside it you have an xml file named after the directory (ubuntu.xml) and holding advantages and disadvantages of the distro.
    • The directory also has subdirectories for each version of the item (in this case 4.10 and 5.04)
    • Each version subdirectory has subdirectories called "DVD" and "CD" that contain isos for each medium
    • The system reads this structure and presents the user with a selection list of versions and media based on what is on the disk.
    • /srv/www holds the website files in a subdirectory called 'kiosk'.
    • /srv/www/kiosk/cgi-bin holds all the perl files (they used to be in /usr/lib/cgi-bin, but it is easier to keep the CGI with the site in question in my experience
  4. Most file paths and options, and the device files for the writers, is set in /srv/www/kiosk/cgi-bin/config.pl. This file is machine-specific, and should not be overwritten with updates to the system. As far as possible all hard-coded paths have been taken out of the system, with the exception of the html files ('cos they have no "brains").

Improvements in the new Version

Burning DVDs / CDRW

Ok, it burns DVDs, but does not do anything special with CDRW (i.e. it doesn't blank them yet).

There is a progress indicator that shows the percentage complete of the burning happening in each burner. It also gives a failed/success indicator at the end to show which CDs worked and which did not.

To burn a single disk in the middle of a whole set, just don't put CDs into the caddies until the one you want is requested. This will be improved in future.

Distro version numbers in the menu

When you get to the screen showing advantages and disadvantages of a given distro, if there are several versions or media types, there is a selection list next to the 'next' button that allows you to select which version and medium you want to burn.

Text based admin UI/or update mechanism

Nothing here yet.

Content Changes

  • References to MTN Science Centre etc have been removed.
  • The home page, when idle, cycles through about 7 pages with content along the lines of
    • Welcome to Freedom Toaster
    • Enhance and Secure your Windows PC
    • Burn a CD of Great Literature
    • Getting Started with Linux
    • Linux for Beginners
    • Linux for Intermediate Users
    • Linux for Advanced Users
    • A Free School Computer Lab
    • What do I need for this?
    • Each of the above pages has large buttons to different items to burn
    • The grey blocks at top and bottom of the screen with "burn a distro" and "know more" have been removed
    • Huge tracts of Javascript have been relegated to /dev/null where they belong

Further Proposals

  • MySQL database backend: This would allow data to be very dynamic, and easier to update than using a configuration file. Also, with a decent database design, you could have multiple versions of the same distro on a Freedom Toaster This begs the question: why not use a CMS for the front-end, and keep the perl code just for managing the toasting process? All we need to do is have a stripped-down kiosk template for a good CMS - plone or mambo.
  • Web based admin interface via SSL and login credentials: This would also make the administration easier, and would be used if the FT is hooked up to a network