{"id":2361,"date":"2008-03-28T15:37:19","date_gmt":"2008-03-28T19:37:19","guid":{"rendered":"http:\/\/ok-cleek.com\/blogs\/?p=2361"},"modified":"2008-03-28T15:37:19","modified_gmt":"2008-03-28T19:37:19","slug":"the-list-2008-preliminaries","status":"publish","type":"post","link":"https:\/\/ok-cleek.com\/blogs\/?p=2361","title":{"rendered":"The List, 2008 Preliminaries"},"content":{"rendered":"<p>It's been two years since I did my last <a href=\"https:\/\/ok-cleek.com\/blogs\/?cat=8\">100 Favorite Albums<\/a> post, so it's time to do a new one. <\/p>\n<p>But first, the geeky preliminaries! <\/p>\n<p>The last time round, I made the list by picking 120 or so records and painstakingly ordered them by-hand - I probably spent a week, on and off, sorting them. I posted them in batches of ten over the course of a few weeks, and I continued to arrange them as I posted each batch. Even the last batch wasn't set until I posted it. <\/p>\n<p>I did this one a little differently...<\/p>\n<p>Supreme Geekitude Follows!<br \/>\n<!--more--><br \/>\nI took the 2006 list, added a few more records to it, then sorted it alphabetically, to destroy the old order. Then I did a rough ordering by-hand, just to get a feel for what was there. Then I automated the process, somewhat, by writing a little C++ program to help sort them.<\/p>\n<p><font face=\"Courier New\"><br \/>\nbool recComp(const string &a, const string &b)<br \/>\n{<\/p>\n<ul>\n\tprintf(\"n \"%s\" > \"%s\" ?\", a.c_str(), b.c_str());<br \/>\n\tstring yns;<br \/>\n\tcin >> yns;<\/p>\n<p>\treturn (toupper(yns.at(0))=='Y');\n<\/ul>\n<p>}<\/p>\n<p>int main(int argc, char* argv[])<br \/>\n{<\/p>\n<ul>\n\tvector < string > file;<br \/>\n\tstring line;<br \/>\n\tfile.clear();<\/p>\n<p>\tifstream infile (\"c:\/temp\/records_list.txt\", std::ios_base::in);<br \/>\n\twhile (getline(infile, line, 'n'))<br \/>\n\t{<\/p>\n<ul>\n\t\tif (line.length() > 0)<br \/>\n\t\t{<\/p>\n<ul>\n\t\t\tfile.push_back (line);\n<\/ul>\n<p>\t\t}\n<\/ul>\n<p>\t}<\/p>\n<p>\tstd::sort(file.begin(), file.end(), recComp);<\/p>\n<p>\tofstream outFile(\"c:\/temp\/outrecords.txt\", std::ios_base::out);<\/p>\n<p>\tfor (vector < string > ::iterator it = file.begin(); it != file.end(); it++)<br \/>\n\t{<\/p>\n<ul>\n\t\toutFile << (*it) << \"n\";\n<\/ul>\n<p>\t}<br \/>\n\treturn 0;\n<\/ul>\n<p>}<br \/>\n<\/font><br \/>\nGeek out!<\/p>\n<p>Basically, it went through the list of 124 records asking me questions like this:<\/p>\n<ul>\n\"Big Star : Radio City (1974)\" > \"Bob Dylan : Highway 61 Revisited (1965)\" ? y\/n<br \/>\n\"Pavement : Crooked Rain Crooked Rain (1994)\" > \"Spoon : Girls Can Tell (2001)\" ? y\/n<br \/>\n\"Talking Heads : Remain In Light (1980)\" > \"Spoon : Girls Can Tell (2001)\" ? y\/n<br \/>\n\"Talking Heads : Remain In Light (1980)\" > \"Pavement : Crooked Rain Crooked Rain (1994)\" ? y\/n<br \/>\n\"The Pretenders : The Pretenders (1980)\" > \"Spoon : Girls Can Tell (2001)\" ? y\/n<br \/>\n\"Pink Floyd : Dark Side Of The Moon (1973)\" > \"Spoon : Girls Can Tell (2001)\" ? y\/n<br \/>\n\"Sea And Cake : Nassau (1994)\" > \"Spoon : Girls Can Tell (2001)\" ? y\/n<br \/>\n\"Sea And Cake : Nassau (1994)\" > \"Pink Floyd : Dark Side Of The Moon (1973)\" ? y\/n<br \/>\n...(my actual answers removed)\n<\/ul>\n<p>... for close to two hours. It doesn't compare every record to every other record, it uses <A href=\"http:\/\/en.wikipedia.org\/wiki\/Introsort\">a smarter algorithm<\/a> than that, but it still took a hell of a long time to get through the 1000+ comparisons. Also, I'm pretty sure subjective input is terrible for this kind of thing, since I certainly contradicted myself more than once: <\/p>\n<p>A > B<br \/>\nB > C<br \/>\nC > A<br \/>\n?<\/p>\n<p>But, it kept on chugging through the list, and didn't complain. And at the end, I had a sorted list of records! While I find some of the placements <em>surprising<\/em>, I can see how they make sense in the grand scheme of things. And so that order is what I'm posting here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It's been two years since I did my last 100 Favorite Albums post, so it's time to do a new one. But first, the geeky preliminaries! The last time round, I made the list by picking 120 or so records and painstakingly ordered them by-hand - I probably spent a week, on and off, sorting [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[],"class_list":["post-2361","post","type-post","status-publish","format-standard","hentry","category-the-list-08"],"_links":{"self":[{"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=\/wp\/v2\/posts\/2361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2361"}],"version-history":[{"count":0,"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=\/wp\/v2\/posts\/2361\/revisions"}],"wp:attachment":[{"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ok-cleek.com\/blogs\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}