Description

Ignite is meant to help anyone who wants to create backup copies of a large group of files into any kind of media (cd's, dvd's, hd's, etc...). It distributes the given set of files through the medias in a way to minimize the number of needed medias.

The problem of arranging a group of objects of different sizes into the smallest possible number of recipients is known as the bin packing problem as it has been proved to be impossible to crate an algorithm that would give an optimal solution for every case, thus, Ignite uses an aproximation algorithm know as Best Fit Decreasing.

The program (yet under development) will have a system of profiles that will allow almost anything in it to be user-configurable, which means it will have a lot of options and will be applicable for many purposes.

Used technology

Ignite is mainly written in SmallTalk, using the non-commercial release of Cincom VisualWorks. SmallTalk provide an easy to use object-oriented interface, and is exactly what we need to manage our profiles, medias and files.

The only part that is not handled by SmallTalk is actually solving the bin packing problem, which is accomplished through an auxiliar prolog program, compiled with SWI-Prolog. As mentioned, this program, uses the Best Fit Decreasing algorithm to output a very good solution in most cases (sometimes not that good, sometimes excelent).

Goals and ideas

Our intention with Ignite is to provide a full featured, well documented, easy to use and yet highly configurable tool that would help many users in a lot of different situations. Having that in mind, these are a few of our ideas that should be implemented on it:

  • Profiles: the mean through which configurations will be generated and handled during execution. Profiles are probably going to be binary files that can be shared among different Ignite users.
  • Graphical User Interface (GUI): although not a priority at this early stage of development, a GUI would be an essential feature if we want to have all kinds of users burning their media through Ignite.
  • Portability to other OS's: this software is developed by Linux users for Linux users, however, we will try our best to make it available for all Unix systems.
  • Multiple bin packing solutions support: as we can't assure an optimal solution for a given set of files, we plan on implementing other algorithms to solve the bin packing problems. This way, specific cases that are badly handled by BFD might still be arranged using an alternative method.

Documentation

There is currently little documentation on Ignite as it is a very young project (first code line written in November, 2004); as a matter of fact, this page is all the documentation will you will find on it at the present date, however, we are working on that and more information should be available soon.

Sources availability

Since late December/2004, Ignite is a SourceForge project. For news, downloads, etc, please visit us at: https://sourceforge.net/projects/ignite.

Copyright and warranty

Ignite is free software; we encourage you to redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Authors and contact information

This software is currently being developed by:

  • Ricardo Birmann ()
  • Roberto Winter ()
  • Fernando Freire ()

...please check the forums hosted by SourceForge before emailing any of us for support.

We would be glad to hear from you if you have used Ignite and found it useful or if you are willing to change it, so do email us in any of these situations.