I am a geek!
Jan. 20th, 2007 10:30 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I've been pondering how to do the assignments for the Multi-Fandom Lyric Wheel, thinking that surely there must be some software out there to make it easier. Or some way I could write a script to make it easier. Because I didn't really fancy juggling pieces of paper on the floor...
Well, I was right; both things were true.
I looked on http://freshmeat.net to see if there were any existing programs which would do what I needed, but didn't find any.
So I've just written a perl script which takes the person + fandom lists, and outputs what people each person can write for, how many fandoms they have in common, and what those fandoms are. Okay, so that's a help, but that's only one step in the process.
I thought maybe a mind-map might help to let me visualize the connections between potential writers and potential recipients, but they're designed to be a radiating tree structure, not some way of saying "Person A writes for Person B, Person B writes for Person C and Person C writes for Person A".
Then it occurred to me that what I needed was some easy way of doing connected graphs, so I thought I'd try out GraphViz, and it does exactly what I need! Whee!
What I do is look at the output of my script, and say, okay, so Person A can write for Person B, Person C and Person E; in the graph notation that would be
A -> B;
A -> C;
A -> E;
Then I do that for everyone, and then look at the resultant graph. I'd also make the graph-edges where people have more fandoms in common be in another colour, so they stand out. Then I start eliminating graph-edges, and when I have a graph where every node has one arrow pointing to it and one arrow pointing away from it, then that's an assignment-set that works. It's cool!
So I'm all prepared to do the assignments when the sign-ups are done. I do hope we get more than six people!
Well, I was right; both things were true.
I looked on http://freshmeat.net to see if there were any existing programs which would do what I needed, but didn't find any.
So I've just written a perl script which takes the person + fandom lists, and outputs what people each person can write for, how many fandoms they have in common, and what those fandoms are. Okay, so that's a help, but that's only one step in the process.
I thought maybe a mind-map might help to let me visualize the connections between potential writers and potential recipients, but they're designed to be a radiating tree structure, not some way of saying "Person A writes for Person B, Person B writes for Person C and Person C writes for Person A".
Then it occurred to me that what I needed was some easy way of doing connected graphs, so I thought I'd try out GraphViz, and it does exactly what I need! Whee!
What I do is look at the output of my script, and say, okay, so Person A can write for Person B, Person C and Person E; in the graph notation that would be
A -> B;
A -> C;
A -> E;
Then I do that for everyone, and then look at the resultant graph. I'd also make the graph-edges where people have more fandoms in common be in another colour, so they stand out. Then I start eliminating graph-edges, and when I have a graph where every node has one arrow pointing to it and one arrow pointing away from it, then that's an assignment-set that works. It's cool!
So I'm all prepared to do the assignments when the sign-ups are done. I do hope we get more than six people!