{"id":236,"date":"2013-10-07T08:00:19","date_gmt":"2013-10-07T08:00:19","guid":{"rendered":"http:\/\/jsndev.net\/?p=236"},"modified":"2013-10-07T08:00:19","modified_gmt":"2013-10-07T08:00:19","slug":"new-wxry-fm-playlist","status":"publish","type":"post","link":"https:\/\/2022.jasonrikard.com\/?p=236","title":{"rendered":"New WXRY-FM 99.3 Playlist"},"content":{"rendered":"<p>Lately I&#8217;ve been building large applications and haven&#8217;t had a chance to do any small units of work so when I saw this post on Facebook, I decided it&#8217;d be a fun thing to try.<\/p>\n<p><a href=\"http:\/\/jsndev.net\/wp-content\/uploads\/2013\/10\/ceti-facebook.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-238\" alt=\"ceti-facebook\" src=\"http:\/\/jsndev.net\/wp-content\/uploads\/2013\/10\/ceti-facebook.png\" width=\"421\" height=\"295\" srcset=\"https:\/\/2022.jasonrikard.com\/wp-content\/uploads\/2013\/10\/ceti-facebook.png 421w, https:\/\/2022.jasonrikard.com\/wp-content\/uploads\/2013\/10\/ceti-facebook-300x210.png 300w\" sizes=\"auto, (max-width: 421px) 100vw, 421px\" \/><\/a><\/p>\n<p>A local non-profit radio station in Columbia, <a href=\"http:\/\/www.wxryfm.org\/\" target=\"_blank\" rel=\"noopener\">99.3 WXRY-FM<\/a>, was looking for a volunteer to make a searchable playlist for their WordPress website. \u00a0Having been involved with music for a long time and a chance to help a non-profit through programming, I volunteered and built them a new playlist. \u00a0They had an existing playlist that wasn&#8217;t searchable and only showed the last 10 tracks played. \u00a0So, I whipped up a quick solution that has logged almost 20,000 tracks so far and lets you search for tracks as far back as the implementation date. \u00a0Check it out the new playlist\u00a0<a href=\"http:\/\/www.wxryfm.org\/playlist-5\/\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<figure id=\"attachment_240\" aria-describedby=\"caption-attachment-240\" style=\"width: 639px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.wxryfm.org\/playlist-5\/\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-240\" alt=\"WXRY-Playlist\" src=\"http:\/\/jsndev.net\/wp-content\/uploads\/2013\/10\/Screen-Shot-2013-10-07-at-10.03.21-AM.png\" width=\"639\" height=\"582\" srcset=\"https:\/\/2022.jasonrikard.com\/wp-content\/uploads\/2013\/10\/Screen-Shot-2013-10-07-at-10.03.21-AM.png 639w, https:\/\/2022.jasonrikard.com\/wp-content\/uploads\/2013\/10\/Screen-Shot-2013-10-07-at-10.03.21-AM-300x273.png 300w\" sizes=\"auto, (max-width: 639px) 100vw, 639px\" \/><\/a><figcaption id=\"caption-attachment-240\" class=\"wp-caption-text\">The new playlist. They play an assortment of alternative rock music.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>The technical details of the project consist of a WordPress page with an iframe of a jQuery <a href=\"http:\/\/datatables.net\/\" target=\"_blank\" rel=\"noopener\">Datatable plugin<\/a> that loads resources from a remote API hosted on the music server. \u00a0The API is a modification of the <a href=\"http:\/\/datatables.net\/examples\/data_sources\/server_side.html\" target=\"_blank\" rel=\"noopener\">server-side ajax<\/a> feature of the Datatable plugin. \u00a0It&#8217;s an endpoint that sends back JSON to the page to be parsed. \u00a0The Shoutcast music server routinely outputs an XML file to the filesystem so I created a cronjob to store the playlist records in MySQL which provides the datasource for the Datatable plugin. \u00a0The cronjob runs every minute to load the XML playlist, get the last few tracks from MySQL using the timestamps and if they are not stored, store the new track.<\/p>\n<p>The project took about a week in my spare time and was a satisfying unit of work. \u00a0I&#8217;m happy I was able to provide something of value for a non-profit using my programming skill set and not general IT knowledge. \u00a0In exchange for my volunteer work, the station gave me two tickets to see The Killers. \u00a0They also let me promote my local food app, <a href=\"http:\/\/grubbly.com\" target=\"_blank\" rel=\"noopener\">Grubbly<\/a>, on the playlist. \u00a0I encourage you, if you&#8217;re in the Columbia metro area, to check out 99.3 WXRY-FM. \u00a0Also, try to volunteer every now and then.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lately I&#8217;ve been building large applications and haven&#8217;t had a chance to do any small units of work so when I saw this post on Facebook, I decided it&#8217;d be a fun thing to try. A local non-profit radio station in Columbia, 99.3 WXRY-FM, was looking for a volunteer to make a searchable playlist for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[17,21,22,23,25],"class_list":["post-236","post","type-post","status-publish","format-standard","hentry","category-development","tag-jquery","tag-mysql","tag-volunteer","tag-wordpress","tag-wxry"],"_links":{"self":[{"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=\/wp\/v2\/posts\/236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=236"}],"version-history":[{"count":0,"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=\/wp\/v2\/posts\/236\/revisions"}],"wp:attachment":[{"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2022.jasonrikard.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}