Boebrief

van een rechtse beeldbuiskijker...

Met een zekere regelmaat word ik aangesproken over mijn columns. Vaak is het positief, maar ik krijg ook zeker regelmatig commentaar. Dat is het leuke van het geven van je mening: het is voer voor discussie en soms merk ik dan ook dat ik wellicht niet helemaal duidelijk ben geweest. Dat kun je dan nog eens uitleggen. Ik ben dan ook blij met kritische reacties want die geven aan hoe mijn columns worden geïnterpreteerd. Soms worden teksten heel anders gelezen dan ze zijn bedoeld.

En vanmiddag was daar ineens iets nieuws. Er zat een brief in de brievenbus. Een rechtse boebrief over mijn verhaaltje over het goochelen met postcodes. De brief is een heel verhaal en omdat het te lang is om hier in de tekst te plakken, kun je het lezen door HIER te klikken. Ik had die brief kunnen negeren, maar ik vind het voor de lezers interessant om te laten zien wat voor reacties ik krijg en kies er dus voor om hem openbaar te maken.

De schrijver – een meneer Bouwmeester – heeft het niet zo op zure linkse mensen en dus ook niet op mij. Tja meneer Bouwmeester: ik ben inderdaad vaak erg duidelijk en vaak ook cynisch, maar ik ben helaas niet echt links. Omdat er bij andere lezers misschien ook wel misverstanden bestaan, vindt u het vast niet erg als ik uw brief even doorneem en enkele passages uit mijn verhaal nader zal toelichten?

U schrijft dat het betreffende artikel ´vast een grappig bedoelt stukje moet zijn´. Ik moet u teleurstellen. Het stukje was niet grappig bedoeld, maar wel met een stevige knipoog naar onze ´blanke´ gemeente geschreven. Ik ben oprecht verbaasd dat er zoveel mensen op Geert Wilders stemmen terwijl we amper buitenlanders om ons heen hebben hier. Die verbazing wilde ik in mijn column naar buiten brengen. Hoewel ´zoveel onzin bij elkaar´ volgens u niet serieus is te nemen, was het dus wel zo bedoeld. In uw brief zoek ik naar de argumenten waarmee u mijn ´zoveel onzin bij elkaar´ probeert aan te tonen. Tot mijn spijt heb ik eigenlijk geen enkele link tussen uw brei aan rechtse sentimenten en mijn artikel gevonden. Zo schrijft u over salonsocialisten, over Volkert van der Graaf, over Wim Kok, over Marcel van Dam, over de grachtengordel, over de rampzalige multiculturele samenleving en de miljoenen die gepompt zijn in de criminele Molukse wijk in Vaassen. Maar bijna niets over de zaken waar ik het in mijn verhaal over had.

Ik kan u zeggen: het zakkenvullen van socialisten vind ik volkomen dubbelhartig, Volkert van der Graaf had Fortuyn echt niet mogen vermoorden en uitwassen in iedere woonwijk (Moluks of niet) moeten keihard worden aangepakt! Daar zijn we het snel over eens. Maar er zijn ook enkele opmerkingen waar ik het helemaal niet mee eens ben.

U wekt bijvoorbeeld de suggestie dat ik Geert Wilders een racist en/of xenofoob heb genoemd. Ik heb dertien jaar met veel plezier als naaste collega met Geert Wilders bij de VVD-fractie aan het Binnenhof heb gewerkt. Ik ken Geert sinds 1989 persoonlijk, heb met hem gestapt in Den Haag, hij is ook bij mij thuis geweest en ik zal hem nooit een racist noemen. Geert is namelijk geen racist. Hij heeft wel een enorme hekel aan het moslimgeloof. Hij ziet de opmars van de moslimreligie in het westen als een grote bedreiging. Ik zie de multiculturele samenleving een beetje minder zwart-wit. Maar wel met een duidelijke kanttekening. Leest u bijvoorbeeld dit verhaal of dit verhaal van mijn hand, dan weet u dat ik geen enkel pardon heb met mensen die onze grondrechten aantasten. Ik heb ook een overduidelijke mening over jongeren die overlast bezorgen... keihard aanpakken. Dan maakt het mij geen bal uit wat voor nest ze komen. U wijst in uw brief naar de problemen in de Molukse wijk, maar ik vraag me af waarom u de ´blanke´ Nederlandse hangjongeren in Epe buiten beschouwing laat. Die veroorzaken ook regelmatig overlast. Mogen zij dat wel van u?

Geschreven teksten hebben een nadeel en een voordeel. Laat ik beginnen met het nadeel. Je moet ze wel goed lezen en soms lees je te makkelijk over nuances heen. Lees bijvoorbeeld deze passage uit het door u gewraakte artikel nog een keer goed door: "In de delen van het dorp Epe met de postcode 8161 woonden op 1 januari 2006 6585 mensen, waarvan 205 niet-westerse allochtonen (3.1%). In de postcode gebieden 8162 woonden op dezelfde datum 8975 mensen, waarvan 450 niet-westerse allochtonen (5%). Racisten en xenofoben kunnen dus het beste uitkijken naar een woning met een 8161 postcode. In het postcode gebied 8166 van Emst zullen zij zich nog meer thuis voelen, omdat daar op 1 januari 2006 3045 mensen woonden, waarvan er maar 20 niet-westerse allochtonen zijn (0.7%). Toch wel opvallend dat de kiezers in Emst het niet zo op lijken te hebben met buitenlanders. Maar liefst 5,4% van de kiezers in Emst stemde op de partij van Geert Wilders (Partij voor de Vrijheid)."

'Het niet zo op lijken te hebben met buitenlanders' is wel iets heel anders dan ´racisten´. Als ik die bewoners racisten had gevonden dan had ik die zin veel harder geformuleerd. Ik vind in zijn algemeenheid de stemmers op Geert Wilders geen racisten, maar u gaat toch niet ontkennen dat de kiezers op de PVV voor die partij hebben gekozen vanwege zijn ferme uitspraken over de Islam? De eerste kiezer die op Geert stemde vanwege bijvoorbeeld de paragraaf over dierenwelzijn in zijn partijprogramma moet ik nog tegenkomen. De relatie tussen de stem op de PVV en de angst voor de islam lijkt mij evident en niet te ontkennen. De toon in uw brief ondersteunt mijn mening. Verder verwijs ik in het betreffende artikel naar wetenschappelijk onderzoek over de relatie tussen stemgedrag en aantal allochtonen in de wijk uit de jaren tachtig. Dat onderzoek is onomstreden en ik signaleer dat de uitkomst in de gemeente Epe de suggestie wekken dat dezelfde mechanismen bij de kiezers nog steeds werken. Waarom reageert u daar niet op? Dat kunt u echt niet afdoen als grote onzin.

Het is dus van belang om teksten goed te lezen. Dat geldt ook voor mijn opmerking over Oene: het dorp met de school met de dichtgeplakte ramen. Ik heb nergens geschreven – zoals u suggereert - dat alle ramen in Oene zijn dichtgeplakt. De betreffende passage was vet (en bij geo bovendien geel) weergegeven... dat betekent dat het een link is waar u op kunt klikken. Dan had u kunnen lezen dat ik verwees naar de kwestie omtrent het geschrapte moskeebezoek. Dit speelde vorig jaar.

Het voordeel van teksten is, dat je ze nog eens rustig kunt overlezen. Ik raad u aan om nog een keer in alle rust door mijn tekst te gaan. Lees ook mijn andere columns en mijn verhalen op mijn eigen site eens dan ziet u wellicht een rode draad. Ik leg in mijn columns de vinger op zere plekken. Daarbij maak ik absoluut geen onderscheid tussen links en rechts. Deze week heb ik nog een stevig verhaal geschreven over de hypocriete milieubeweging en een bekende Nederlander met een dubbele moraal (en portemonnee). Ik kan u verder nog verzekeren dat ik het niet zo heb op subsidiesponzen en georganiseerde boe-roepers. Van alle keren dat ik in het stemhokje stond, heb ik voor zeker negentig procent op de VVD gestemd. Echt links kunt u mij dan ook niet noemen. Wat ben ik dan wel? Een liberaal, maar geen VVD conservatieve boekhoudliberaal. Ik ben een liberaal die de mens centraal stelt en daarbij ook oog heeft voor de uitwassen van de vrije markt. Daarom heb ik de laatste keer de VVD in het stemhokje de rug toegekeerd. Ik beschouw mezelf als een permanent zwevende kiezer.

Blijf ik nu nog een beetje zitten met uw welgemeende advies om wat meer te lachen, van de natuur te genieten, lange wandelingen of fietstochten te maken en positief te denken. Mensen die mij kennen, weten dat ik meerdere malen per dag lach en veel in de natuur vertoef. Maar misschien is het wel aardig, gelet op de negatieve toon richting de maatschappij en vooral uw angst voor de multiculturele samenleving, dat u eens met mij meegaat. Dan kan ik u tijdens een wandeling rustig uitleggen dat de maatschappij waar u zo bang voor bent niet meer zal verdwijnen en dat u er beter het beste van kunt maken.

Meer boebrieven van Bouwmeester:
- over criminaliteit

© Harold Makaske 5 februari 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: 5. Losse gedachten