Now that a little more time has passed from the time I was working on two huge final projects at once, I'm ready to start the project of making a decent interface for the program I mentioned on another thread.
For those who didn't read the thread, it helps you make lists by first letting you input all the albums you want to consider, then by picking four albums, and letting you rank those albums, repeating this until it has enough information to create your full list.
First I want to ask, does anybody have an FTP server they wouldn't mind letting me upload the files to when I finish? I'm not sure I want to put the password to my website on a public forum, unless I can figure out how to only give download access to a single folder.
Second, I thought I'd describe the program, my plans, and see if anybody wants to share their ideas for improving my design.
Right now, I have two main classes, 'AlbumRanker' and 'AlbumSuggester'. AlbumRanker takes all the data already input and uses something called a genetic algorithm to create the order that best represents the data. AlbumSuggester takes the data and finds the next matchup which will provide the most useful information. Right now they both take data from .txt files which you have to input yourself.
My idea is to make a GUI that will input data directly, and keep prompting you with new matchups until you're satisfied with the list.
Here's the issue though. Unless you have absolutely complete, un-debatable data already, every time you run it the result will be slightly different. (The closer you are to complete data, the less different.) So at any given point I want the GUI to show the current average ranking and standard deviation of each album. (Also with average standard deviation, so you can know how close you are and decide when you're satisfied). But, genetic algorithms aren't exactly very efficient, and especially with long lists may take several seconds. And if you had to wait for the whole algorithm to run two or three times every time you entered data it'd get annoying really quickly.
So my idea to get around this is to have AlbumRanker and AlbumSuggester running in separate threads, so you can keep entering matchups while the list is re-calculating.
If anyone has ideas about how to improve this design, I'd love to hear them.