As some of you might remember from a few months ago, I made a program to help me organize my thoughts into lists. I suggested maybe I'd make it available here but in the end didn't because it required you to input data directly and was kind of fluky and because when the data you entered was ambiguous it sometimes gave wildly different results.
Just recently I decided I wasn't satisfied with that program anymore, so I'm writing a new one. This one won't require you to access data files directly, and the new algorithm I'm working on looks like it'll yield more consistent results in ambiguous cases.
The way the program works, you add in lists like:
A > B > C and C > D > E, and it will then return the list A, B, C, D, E. (There will be a mode that will constantly prompt you with N number of albums, ask you to rank them, and keep doing that repeatedly until you're satisfied with the list).
When I'm finished I'll probably make it available to you guys. So I thought I'd ask you guys what sort of things you want to see for it.
Right now I'm designing it for my particular needs. When you enter an album it asks you for the album year and the date purchased, so then every time you enter a result that album A is better than album B, it weights that result differently depending on how long you owned the album at the time, and how long ago you made the rating. That way you can enter results over a long period of time and have your list dynamically upkept.
But, I'm wondering if having to enter all that data for each album might be annoying to some of you, and you might rather have a mode that just asks you for artist and album title, then weights all entries equally until you're done.
Any other ideas you may have are welcome.
This program will still be command line based, and you'll need java 1.5 or later to run it. (To check what version you have go to the command line and type 'java -version'.)
(Yes, I used Vector and Scanner classes because I'm lazy.)
The main class is 12 KB, then there are a bunch of other classes that are 4 KB each. I might try to bundle it in a jar to make it easier for command line-unfamiliar people to use.
If anyone's interested in the source code I can send that too, though I warn you, I have no intention of commenting it. ;)
Hm. So I didn't. I originally sent it accidentally to Henrik, reading his address accidentally from an old poll thread. I thought I sent it to you after realizing my mistake. Ok, well it's Bobthespirit@gmail.com.
Here's an update to the current status of the program:
All the scoring functions are set, and seem to work a lot more consistently and quicker than my old formula. But I haven't tested it with that large a sample group, nor balanced the weighting between long periods of time, so issues may come up later.
There are still a few places where if you put in a sort of input it didn't ask for it may crash.
There's one feature I haven't added yet, the function to suggest the next comparison to make. I'm still working out exactly what constitutes a good suggestion and mathematically how to implement it.
(Of course the program's tiny. It's got no graphics, and all it basically does is archive albums and comparisons between albums, then score the albums based on those comparisons!)
For fun, here's my top ten as calculated by the comparisons I've already put in: (It's designed to make 100 the best and 0 the worst.)
1) Portishead - Third 96.76
2) TV On The Radio - Dear Science 96.52
3) Hercules And Love Affair - Hercules And Love Affair 92.25
4) Drive By Truckers - Brighter Than Creation's Dark 92.00
5) Erykah Badu - New Amerykah Part One (Fourth World War) 87.71
6) Spiritualized - Songs In A&E 87.54
7) Blitzen Trapper - Furr 83.08
8) The Walkmen - You & Me 83.03
9) Lindstrom - Where You Go I Go Too 81.88
10) The Bug - London Zoo 78.52
11) Deerhunter - Microcastle 78.52