{"id":35,"date":"2006-10-15T13:39:00","date_gmt":"2006-10-15T13:39:00","guid":{"rendered":"http:\/\/adam.rosi-kessel.org\/weblog\/free_software\/code\/randomplay_0.60_released.html"},"modified":"2007-01-28T21:11:53","modified_gmt":"2007-01-29T02:11:53","slug":"randomplay_060_released","status":"publish","type":"post","link":"https:\/\/adam.rosi-kessel.org\/weblog\/2006\/10\/15\/randomplay_060_released","title":{"rendered":"randomplay 0.60 released"},"content":{"rendered":"<p> Today I released version 0.60 of <a href=\"http:\/\/adam.rosi-kessel.org\/weblog\/free_software\/code\/randomplay.html\">randomplay<\/a>, my command-line shuffle-recall-swiss-army-knife music player. It will never make Winamp users happy, but it\u00e2\u20ac\u2122s a good substitution for complex combinations of find\/grep\/xargs\/sort that people sometimes use to pick tracks to play. If you can\u00e2\u20ac\u2122t see why you\u00e2\u20ac\u2122d use it, you probably don\u00e2\u20ac\u2122t need it.<\/p>\n<p>The latest version adds two new command-line options, \u00e2\u20ac\u201dolder-than and \u00e2\u20ac\u201dnewer-than. These can be used to limit the songs included in the shuffle on the basis of the file modification date. The syntax is fairly flexible, and resembles that used by rdiff-backup for restoration commands. For example:<\/p>\n<p>Randomly play music under the ~\/music directory that were added in the past week:<\/p>\n<p><code>randomplay --newer-than 1W ~\/music<\/code><\/p>\n<p>Play in order music that is from before this year:<\/p>\n<p><code>randomplay --norandom --older-than '1\/1\/2006'<\/code><\/p>\n<p>Give a list of filenames of music that were added in the past 6 months, but haven&#8217;t been played in the last three months:<\/p>\n<p><code>randomplay --names-only --newer-than 6M --days 3M<\/code><\/p>\n<p>Play, but don&#8217;t record in the playing history, music added in the first three months of 2004:<\/p>\n<p><code>randomplay --noremember --newer-than '1\/1\/2004' --older-than '4\/1\/2004'<\/code><\/p>\n<p>Unfortunately, this new feature is pretty slow, because it <a href=\"http:\/\/www.rocketaware.com\/perl\/perlfunc\/stat.htm\" title=\" Aware to Perl stat FILEHANDLE\">stat<\/a>s each file individually on the initial spidering of the directories to be played. In fact, the startup is always fairly slow if you are searching a large directory hierarchy, since randomplay does not preserve any file index but checks anew on each execution. If you are searching tens of thousands of tracks over NFS (as I do), this can take a minute or so. Suggestions for improving the perfomance of the file modification time detection or of the whole startup are welcome. At some point, I will probably implement an indexing feature, but I like the simplicity of it now where it works basically like the shell find command.<\/p>\n<p>Version 0.60 should show up in Debian unstable shortly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I released version 0.60 of randomplay, my command-line shuffle-recall-swiss-army-knife music player. It will never make Winamp users happy, but it\u00e2\u20ac\u2122s a good substitution for complex combinations of find\/grep\/xargs\/sort that people sometimes use to pick tracks to play. If you can\u00e2\u20ac\u2122t see why you\u00e2\u20ac\u2122d use it, you probably don\u00e2\u20ac\u2122t need it. The latest version adds [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17],"tags":[],"_links":{"self":[{"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/posts\/35"}],"collection":[{"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":0,"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"wp:attachment":[{"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adam.rosi-kessel.org\/weblog\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}