Radio 794

dure hobby van enkele enthousiastelingen...

Met het aanbreken van het nieuwe jaar heeft de gemeente Epe dan eindelijk het heuse eigen radiostation. Nou ja... een eigen radiostation? Het is een samenwerking met radio Heerde.

Na een lange voorbereidingstijd en veel gesteggel over zendmasten en subsidies wordt er dan nu eindelijk uitgezonden. Reden voor mij om eens op hun site naar de programmering te kijken. En daar word ik niet zo vrolijk van.

De lijst ziet er indrukwekkend uit, maar als je het programma-aanbod nader bekijkt, valt het eigenlijk fors tegen. Een greep uit het aanbod.

De toppers zijn zonder twijfel de sportprogramma´s op de zaterdag- en zondagmiddag. Op zaterdag een vier uur durend en op zondag een drie uur durend programma met verslagen van sportevenementen in de gemeenten Epe en Heerde. Ik denk dat dit de terechte vlaggenschepen van de zender zijn.

Ook interessant zijn de praatprogramma´s: Koffietijd en Koffietijd 55+, Infomix en Op de Praotstoel. Deze programma´s worden in de loop van de week ook nog enkele keren herhaald.

Dan brengt de zender enkele muziekprogramma´s. Daarvan is er eigenlijk maar één die iets met de regio te maken heeft (Non-stop Streektaal muziek). De andere programma´s zijn niet specifiek lokaal.

En tot slot de in mijn ogen buitenproportionele hoeveelheid religieuze programma´s: Non-stop Geestelijke muziek, Loof den Heer, Desire, Kinderen zingen voor de Heer en Niet alleen op zondag. Dat lijkt mij vrij veel van het goede. Als je weet dat een aantal van deze programma´s ook nog wordt herhaald, zou je bijna gaan spreken over een relizender in plaats van een lokale zender.

Zelf ben ik vier keer in verschillende uitzendingen bij Radio Heerde geweest. Het was altijd gezellig en ik kon altijd prima mijn boodschap kwijt: over de Stichting Vrienden Hongarije, de Wereldwinkel of het fotoboek Epe! kwijt. Maar leverde dat ook daadwerkelijk reacties op? Eén keer ben ik aangesproken door iemand die het programma had gehoord. Ik weet het… dit is niet representatief, maar het zette me wel aan het denken.

Op de website claimt de zender dat 90% van de inwoners van Heerde de voorloper kende. Dat getal wil ik wel geloven. Meer twijfels heb ik bij de claim dat 50% van de inwoners beweerden tenminste één dag in de week te luisteren. Dat lijkt mij erg sterk en meer ingegeven door sociaal wenselijk dan door feitelijk gedrag.

Ik betwijfel sterk of de nieuwe zender met deze programmering veel luisteraars gaat trekken. Het is allemaal té gezellig en veel te weinig spraakmakend. Waarom zijn er bijvoorbeeld geen stevige actualiteiten- en opinieprogramma´s in het aanbod opgenomen? Waarom ook geen programma waar burgers hun hart kunnen luchten over zaken die ze bezighouden en waar beleidsmakers live op moeten reageren? De succesvolle programma´s van de publieke en commerciële zenders komen boven het maaiveld uit vanwege spraakmakende interactieve formats én een duidelijke doelgroepprogrammering. Deze zaken mis ik bij onze lokale zender.

En als ik dan toch kritiek spui, wil ik ook nog wel even lokaal navelstaren. Waar vind ik de Eper inbreng in de programmering? Zoals ik het nu zie, is het een voortzetting van de programmering van Radio Heerde waar waarschijnlijk ook Eper onderwerpen aan de orde komen. Epenaren zijn echter andere mensen dan Heerdernaren. Door alles te vermengen, loop je als zender het risico dat straks niemand zich (meer) echt herkent in de programmering en dan raak je de luisteraars kwijt. Als ik een programmering had mogen maken, dan was in ieder geval een expliciet programma voor Epe én een expliciet programma voor Heerde opgenomen in het aanbod. Daarmee kun je op maat inspelen op specifieke lokale luisteraars. Voor de gemeente Epe zou je zelfs kunnen kiezen voor een eigen programma voor Vaassen. Daar leeft Epe al bijzonder weinig, laat staan dat ze daar iets met Heerde hebben. Dat zal vice versa niet veel anders liggen.

Als ik heel eerlijk ben, vind ik de programmering flinterdun en vraag ik mij sterk af of dat de enorme investeringen in zenders en zendmasten rechtvaardigt. Het feit dat de zender bovendien de grootste moeite heeft om vrijwilligers te krijgen, zegt ook wel iets over het draagvlak. Het lijkt een dure hobby van enkele enthousiaste radiomakers.

De gemeente Epe zou er goed aan doen om de kat uit de boom te kijken alvorens ze er nog meer geld in gaan steken. Het lijkt mij dat het geld voor deze zender veel beter op andere manieren kan worden besteed. Bij de beoordeling of er meer geld komt, zou ook de programmering moeten worden betrokken. Waarom zoveel ruimte voor Christelijke en helemaal geen aandacht voor andere religies? En waarom zenden via de ether? Dat is erg ouderwets en duur. Doorgifte via de kabel of via Internet is veel goedkoper. Natuurlijk mis je dan (nog) een deel van de bewoners in het buitengebied, maar de Nederlanders kiezen in raptempo voor breedband Internetverbindingen. Nu surft al 80% van de Internetters via breedband kabel of ADSL. Dat cijfer zal in de gemeenten Heerde en Epe niet heel veel anders liggen en het zal alleen maar verder toenemen. Een zendmast is zooooo 2006.

Andere artikelen over de lokale omroep
- Gekibbel bij Radio 794
- Epe gaat uitzenden

© Harold Makaske 1 januari 2007 to allow skipping count when used in template (ie to not count on click in main page) V1.4 - Fixed ignoe same IP count problem V1.5 - Added views_log table and changed plugin performance to check for unique visits by IP address. [gRegor] - Added option to set the length of time before re-counting hits from the same IP address (default: 2 hours) [gRegor] V1.6 - Added plugin menu to display all view count, w/ counter reset function - Delete view counter and log for deleted item V1.7 - use sql_query V1.8 - Admin page enhancement to preserve order and sort info v1.9 - Added item title in admin menu v1.9.1 - ignore draft in admin menu */ class NP_Views extends NucleusPlugin { // Note: I never run this plugin on 2.0 and have no idea whether it // wil work on <2.5. A user can simply chnage it to return // '200' and see if it works (likely will). I will gladly // change the min version to 2.0 and add the sql_table fix // upon such report. 8) function getMinNucleusVersion() { return '250'; } function getName() { return 'Views'; } function getAuthor() { return 'Rodrigo Moraes | Edmond Hui (admun) | gRegor Morrill'; } function getURL() { return 'http://www.tipos.com.br'; } function getVersion() { return '1.9.1'; } function getDescription() { return 'This plugin counts how many times an entry has been displayed.'; } function getEventList() { return array('PostAddItem', 'QuickMenu', 'PostDeleteItem'); } function supportsFeature($what) { switch($what) { case 'SqlTablePrefix': return 1; default: return 0; } } function getTableList() { return array( sql_table('plugin_views'), sql_table('plugin_views_log') ); } function install() { sql_query('CREATE TABLE IF NOT EXISTS ' . sql_table('plugin_views') . ' (id int(11) NOT NULL default "0", views int(15) NOT NULL default "0")'); sql_query('CREATE TABLE IF NOT EXISTS ' . sql_table('plugin_views_log') . ' (id int(11) NOT NULL auto_increment, ip varchar(20) NOT NULL default "", itemid int(11) NOT NULL default "0", viewtime varchar(32) NOT NULL default "", PRIMARY KEY (id) )'); $this->createOption('silent','Silent mode - No #Display shown in Item (still need to add the skinVar, for use with MostViewed)','yesno','no'); $this->createOption('deletetables','Delete this plugin\'s table and data when uninstalling?','yesno','yes'); $this->createOption('timespan', 'Hours to wait before re-counting visitors', 'text', '2'); } function unInstall() { if ($this->getOption('deletetables') == 'yes') { sql_query('DROP TABLE ' . sql_table('plugin_views') ); sql_query('DROP TABLE ' . sql_table('plugin_views_log') ); } } function hasAdminArea() { return 1; } /** * Adds an entry to the 'Quick Menu' on the Nucleus administration pages. * The entry will link to the commentcontrol admin page */ function event_QuickMenu(&$data) { global $member; if (!($member->isLoggedIn() && $member->isAdmin())) return; array_push( $data['options'], array( 'title' => 'View Counts', 'url' => $this->getAdminURL(), 'tooltip' => 'See the view count of all items' ) ); } function doTemplateVar(&$item, $input) { $itemid = $item->itemid; $remote_ip = ServerVar('REMOTE_ADDR'); $timespan = $this->getOption('timespan') * 3600; $now = time(); // get the current Views count $query = "SELECT views FROM " . sql_table('plugin_views') . " WHERE id=" . $itemid; $result = sql_query($query); $row = mysql_fetch_object($result); $views = intval($row->views); // Only do count updates if "skipcount" is not set if ($input != 'skipcount') { // This takes care of previous items if (mysql_num_rows($result) == 0) { $query = "INSERT INTO " . sql_table('plugin_views') . " (id, views) VALUES('$itemid', '1')"; sql_query($query); //$views = 0; } // end if // Check the views_log table to see if this IP has a viewtime for this item $query = "SELECT viewtime FROM " . sql_table('plugin_views_log') . " WHERE ip='" . $remote_ip . "' AND itemid=" . $itemid; $result = sql_query($query); // No views from this IP in the past X hours, so update the Views count if (mysql_num_rows($result) == 0) { $views++; $this->_updateViewsCount($itemid, $views); $this->_addViewsLog($itemid, $remote_ip, $now); } // end if else { $viewtime = mysql_result($result, 0, 'viewtime'); // It's been longer than X hours, so recount if (($now - $timespan) > $viewtime) { $views++; $this->_updateViewsCount($itemid, $views); $this->_updateViewsLog($itemid, $remote_ip, $now); } } // end else } // end if // Clear logs that are more than X hours old $time = $now - $timespan; $query = "DELETE FROM " . sql_table('plugin_views_log') . " WHERE (viewtime < $time)"; sql_query($query); if ($this->getOption('silent') == 'no') { echo $views; } // end if } function event_PostAddItem($data) { $itemid = $data['itemid']; $query = "INSERT INTO " . sql_table('plugin_views') . " (id, views) VALUES('$itemid', '0')"; sql_query($query); } function event_PostDeleteItem($data) { $itemid = $data['itemid']; $query = "DELETE FROM " . sql_table('plugin_views') . " WHERE id=". $itemid; sql_query($query); $query = "DELETE FROM " . sql_table('plugin_views_log') . " WHERE itemid=". $itemid; sql_query($query); } function _updateViewsCount($itemid, $views) { // update the Views table with the new count $query = "UPDATE " . sql_table('plugin_views') . " SET views='$views' WHERE id=$itemid"; sql_query($query); } function _addViewsLog($itemid, $ip, $time) { // add IP and itemid to views_log table so it won't be recounted for X hours $query = "INSERT INTO " . sql_table('plugin_views_log') . " (ip, itemid, viewtime) VALUES ('$ip', '$itemid', '$time')"; sql_query($query); } function _updateViewsLog($itemid, $ip, $time) { // update the views_log viewtime so it won't be recounted for X hours $query = "UPDATE " . sql_table('plugin_views_log') . " SET viewtime='$time' WHERE ip='$ip'"; sql_query($query); } function doAction($actionType) { global $CONF, $member; if (!($member->isLoggedIn() && $member->isAdmin())) return 'Sorry. not allowed'; if ($actionType == 'resetview'){ $id = requestVar('id'); $query = "UPDATE " . sql_table('plugin_views') . " SET views=0 WHERE id=$id"; sql_query($query); } else if ($actionType == 'resetallview') { $query = "UPDATE " . sql_table('plugin_views') . " SET views=0"; sql_query($query); } $order = requestVar('order'); $sort = requestVar('sort'); header('Location: ' . $CONF['PluginURL'] . 'views/index.php?sort=' . $sort . '&order='.$order); } } ?> - Hoofdstuk: 10. Epe