<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;Ck8HQHY9fip7ImA9WhVUFUU.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632</id><updated>2012-05-21T08:13:51.866+02:00</updated><category term="mod_rewrite" /><category term="mobile" /><category term="detection" /><category term="redirect" /><category term="iphone" /><category term="android" /><category term="ipod" /><category term="nginx" /><category term="config" /><title>AndriesLouw.nl - Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/andrieslouw" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="andrieslouw" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CU8ESHs4cSp7ImA9WhRWGUk.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-4786357893263498814</id><published>2012-01-06T16:00:00.001+01:00</published><updated>2012-01-07T14:43:29.539+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-07T14:43:29.539+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="mod_rewrite" /><category scheme="http://www.blogger.com/atom/ns#" term="nginx" /><category scheme="http://www.blogger.com/atom/ns#" term="detection" /><category scheme="http://www.blogger.com/atom/ns#" term="config" /><category scheme="http://www.blogger.com/atom/ns#" term="redirect" /><category scheme="http://www.blogger.com/atom/ns#" term="ipod" /><category scheme="http://www.blogger.com/atom/ns#" term="iphone" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Serving mobile users with nginx</title><content type="html">Using &lt;a href="http://wiki.nginx.org/Main"&gt;nginx&lt;/a&gt;, and don't want to use PHP to redirect mobile users to your mobile-optimized site? Well, it's perfectly possible to do detect and redirect them with some nginx configuration file magic.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;This is the setup I came up with:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;nginx configuration file&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;location / {
    set $mobile_request '1';
    
    if ($http_user_agent ~* "(windows|linux|os\s+[x9]|solaris|bsd)"){
        set $mobile_request '';
    }
    
    if ($http_user_agent ~* "(spider|crawl|slurp|bot)"){
        set $mobile_request '';
    }

    if ($http_user_agent ~* "(acer\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|blackberry\ 9800|cupcake|docomo\ ht\-03a|dream|htc\ hero|htc\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|kindle|lg\-gw620|liquid\ build|maemo|mot\-mb200|mot\-mb300|nexus\ one|nokia|opera\ mini|samsung\-s8000|series60.*webkit|series60/5\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\-mobile\ mytouch\ 3g|t\-mobile\ opal|tattoo|webmate|webos)") {
        set $mobile_request '1';
    }
    
    if ($arg_mobile ~ 'false') {
        set $mobile_request '';
    }
    
    if ($mobile_request = '1') {
        rewrite ^/$ http://m.an3s.com/ redirect;
    }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;It works as follows&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Set the default to the mobile-optimized version&lt;/li&gt;
&lt;li&gt;Filter desktops&lt;/li&gt;
&lt;li&gt;Filter crawlers like Googlebot&lt;/li&gt;
&lt;li&gt;If somehow a mobile browser slipped through, because it was detected as desktop, for example, because it reported to run Linux (like Android does), mark it again as mobile&lt;/li&gt;
&lt;li&gt;Filter requests that have ?mobile=false&lt;/li&gt;
&lt;li&gt;Point anything left to the mobile-version of the site, using an 302 Temporary redirect header&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
If your user decides it wants to use the non-mobile version, you can simply point him to the ?mobile=false link.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt;
Surf with your mobile browser to &lt;a href="http://www.andrieslouw.nl/"&gt;http://www.andrieslouw.nl/&lt;/a&gt;, it should redirect you to &lt;a href="http://m.an3s.com/"&gt;http://m.an3s.com/&lt;/a&gt;. You can use the third link on that page to go to the non-mobile version, or simply use &lt;a href="http://www.andrieslouw.nl/?mobile=false"&gt;http://www.andrieslouw.nl/?mobile=false&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Remarks&lt;/b&gt;&lt;br /&gt;
This version lacks an option to remember the setting (mobile/non-mobile) the user prefers. You could make such thing yourself, by setting an cookie and reading it in the configuration file.&lt;br /&gt;
&lt;br /&gt;
Any additions are welcome, you can post them in the comments!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-4786357893263498814?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/4786357893263498814/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2012/01/serving-mobile-users-with-nginx.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/4786357893263498814?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/4786357893263498814?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2012/01/serving-mobile-users-with-nginx.html" title="Serving mobile users with nginx" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0UARn87eCp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-5411697840782399740</id><published>2011-06-05T01:03:00.002+02:00</published><updated>2011-12-31T16:27:27.100+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:27:27.100+01:00</app:edited><title>Het leven</title><content type="html">Het leven staat zelden stil, en na een jaar Deventer, keer ik terug naar Sneek. Dag stad, dag werk, dag studie. Bedankt.&lt;br /&gt;
&lt;br /&gt;
Ik ga lopen, lopen tot de zon komt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-5411697840782399740?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/5411697840782399740/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2011/06/het-leven.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/5411697840782399740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/5411697840782399740?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2011/06/het-leven.html" title="Het leven" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0UHR3Y-cSp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-9013087598652479508</id><published>2011-02-10T23:25:00.001+01:00</published><updated>2011-12-31T16:27:16.859+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:27:16.859+01:00</app:edited><title>De dood</title><content type="html">Nee, zeker niet een vrolijk onderwerp, noch een waar je je graag in verdiept, of over nadenkt, en ook zeker niet een onderwerp dat ik hier zo uit eigen beweging bespreek omdat het mij bezighoudt, integendeel, ik sta volop in het leven.&lt;br /&gt;
&lt;br /&gt;
Nee, het ging om een vraag die ik stelde: &lt;em&gt;If you could see into the future, would you do it different now?&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Waarop iemand, wellicht gekscherend, mij antwoordde: &lt;em&gt;Ofcourse I would. Unintentionally, though. I'd probably kill myself. What's the point in living, then?&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Waarna ik de persoon in kwestie niet geheel begreep, indien je het anders had gedaan, en je er nu niet meer was, was dat een gewenstere situatie dan degene waarin je nu bent, en je dat niet wenst? Ik weet niet of het streven naar leven, leven zelf definieert, maar toch.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Want wat als zo'n situatie toch niet als gewenster, of beter wordt beschouwd, is het dan nog steeds hetgeen wat je zou willen doen, streef je naar een mindere uitkomst, en wat zegt dat over hetgeen je nu hebt, is dat beter?&lt;br /&gt;
&lt;br /&gt;
Of als het het wel is, een gewenstere situatie, die je toch niet gekozen hebt destijds, is het dan niet alsnog een bevestiging van hetgeen je nu hebt gekozen, een situatie waarin je nog zaken kunt veranderen. Of is het het bewijs van dat je liever nog een 3e weg had ingeslagen, en is het enkel een overdrijving van het spijt hebben van datgeen je tot dusver hebt gedaan?&lt;br /&gt;
&lt;br /&gt;
Men moet in mijn opinie de dood niet zien als uitweg voor het leven, het is in zekere zin vluchtgedrag, dus onbezonnen, en lichtelijk overdreven. Tenzij de nullijn niet te bereiken valt op een andere manier, wanneer de pijnen hevig zijn, en een mogelijke uitkomst niet lang, men niet enigszins fier, naar een toekomst kan zien, en men is zeker niet bang, dan kan men geluk uitzetten tegen tijd, het overwegen om lengte in te ruilen voor kwaliteit.&lt;br /&gt;
&lt;br /&gt;
Zolang die kwaliteit niet op een andere manier is na te streven, want de dood volgt altijd nog, maar het is pas dood na een leven.  Opdat het anders geen dood kan heten, maar &lt;a href="http://nl.wikipedia.org/wiki/Levenloos"&gt;levenloosheid&lt;/a&gt;, niet hebben geademt, noch hebben bewogen, noch hebben gegeten.&lt;br /&gt;
&lt;br /&gt;
Het doet je toch denken, wat als degene het serieus bedoelde, en niet gekscherend?&lt;br /&gt;
&lt;br /&gt;
Degene wist te antwoorden: &lt;em&gt;Als je de toekomst kent, geeft het naar mijn idee geen voldoening meer. Het is dan niet zozeer een leven leiden, maar een leven leven. Het feit dat je de toekomst kent betekent dat al je keuzes al vast liggen. Op het moment dat je gaat voorspellen kan je er nog iets tegen doen. De enige motivatie die dan nog rest is het leven leven als behoud van een goed leven voor je geliefden.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Wat mij deed denken; er zijn ongetwijfeld mensen die het doen, &lt;em&gt;leven leven als behoud van een goed leven voor je geliefden&lt;/em&gt;. Of dat voldoening geeft? Ik denk dat het feit dat men het doet, er zich voldoende over uit laat.&lt;br /&gt;
&lt;br /&gt;
Mag dit argument omgedraaid worden? Halen mensen die het niet doen, geen voldoening uit het geven van een goed leven aan de geliefden? Ik ben van mening dat het een afweging is, en zoals alle keuzes, niet een die je iemand mag aanrekenen, omdat je niet weet, en opdat je het nooit zult weten, wat verdere factoren zijn geweest.&lt;br /&gt;
&lt;br /&gt;
Daarvoor moet je de andere kant van het verhaal kunnen horen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-9013087598652479508?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/9013087598652479508/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2011/02/de-dood.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/9013087598652479508?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/9013087598652479508?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2011/02/de-dood.html" title="De dood" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0UGR3w4fSp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-598953050944818694</id><published>2011-02-07T00:52:00.001+01:00</published><updated>2011-12-31T16:27:06.235+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:27:06.235+01:00</app:edited><title>Een jaar</title><content type="html">Voor eenieder die zich afvraagt waarom ik hier niet meer zo actief ben; wel, ik ben op de een of andere manier druk geweest met andere zaken. Wat ik nu exact allemaal gedaan heb in dit jaar weet zelfs ik niet meer, maar om een korte opsomming te geven, in chronologische volgorde: Rijbewijs gehaald, &lt;a href="http://www.facebook.com/album.php?aid=15164&amp;id=100000447554962&amp;l=3ce1f66740"&gt;in de krant gestaan&lt;/a&gt;, eerste auto gekocht, &lt;a href="http://www.facebook.com/album.php?aid=14879&amp;id=100000447554962&amp;l=396680b47e"&gt;verhuisd naar Deventer&lt;/a&gt;, geslaagd voor examen, &lt;a href="http://www.prodes.nl/over-prodes/de-medewerkers.html"&gt;volledig gaan werken&lt;/a&gt;, &lt;a href="http://www.facebook.com/photo.php?pid=300617&amp;l=d0ceb6a22d&amp;id=100000447554962"&gt;vakantie gevierd&lt;/a&gt;, en begonnen aan &lt;a href="http://saxion.nl/bi/deeltijd/deventer/kort"&gt;een studie&lt;/a&gt;. &lt;a href="http://www.facebook.com/photo.php?pid=311012&amp;l=3f204a54a0&amp;id=100000447554962"&gt;Plezier gehad op het water&lt;/a&gt;, &lt;a href="http://www.facebook.com/photo.php?pid=286024&amp;l=5dccecc665&amp;id=100000447554962"&gt;op het werk&lt;/a&gt;, &lt;a href="http://www.facebook.com/photo.php?pid=347076&amp;l=63c00f5c5e&amp;id=100000447554962"&gt;en aan de zijlijn&lt;/a&gt;. &lt;a href="http://www.prodes.nl/portfolio/overzicht.html"&gt;Mooie&lt;/a&gt; &lt;a href="http://www.facebook.com/photo.php?pid=352013&amp;l=54f1fe33c7&amp;id=100000447554962"&gt;dingen&lt;/a&gt; gemaakt, heel veel moois gezien. Kilometers gereden, &lt;a href="http://www.facebook.com/album.php?aid=40462&amp;id=100000447554962&amp;l=93690b0fcb"&gt;en eentje met wat op de teller gekocht&lt;/a&gt;. Gepoogd eens &lt;a href="http://www.facebook.com/alwolthuizen"&gt;internationaal sociaal&lt;/a&gt; te zijn, &lt;a href="http://www.vvd.nl/"&gt;politiek actief geworden&lt;/a&gt;, en toch &lt;a href="http://www.praatmarfrysk.nl/"&gt;blijven staan achter dat wat behouden moet blijven&lt;/a&gt;. Al dat ik nog vergeten ben, zal ik jullie besparen, opdat dit niet jullie tijd verspilt tot in de lengte van jaren.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Tot slot&lt;/strong&gt;&lt;br /&gt;
Sinds een paar weken speelt er weer iets wat ik &lt;em&gt;bijna&lt;/em&gt; tot een herinnering van 2009 had gerekend, het begin van een toekomst samen! Degene over wie ik het heb, weet wat ik bedoel, en degene die weten wat ik bedoel, weten over wie ik het heb.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-598953050944818694?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/598953050944818694/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2011/02/een-jaar.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/598953050944818694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/598953050944818694?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2011/02/een-jaar.html" title="Een jaar" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0UFRn04eCp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-8706493601947670445</id><published>2010-02-23T18:35:00.004+01:00</published><updated>2011-12-31T16:26:57.330+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:57.330+01:00</app:edited><title>De werkplek en het kunstwerk; Mobo aan de muur</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-k5_Ec_5eYrQ/Tv8a4HgD3gI/AAAAAAAAAw4/C_geVtNyWW0/s1600/100_00171-1024x768.jpg" imageanchor="1"  style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-k5_Ec_5eYrQ/Tv8a4HgD3gI/AAAAAAAAAw4/C_geVtNyWW0/s480/100_00171-1024x768.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Y6NZIpki1VI/Tv8biCZbbkI/AAAAAAAAAxE/uAQ-IsU9e4o/s1600/100_00241-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-Y6NZIpki1VI/Tv8biCZbbkI/AAAAAAAAAxE/uAQ-IsU9e4o/s480/100_00241-1024x768.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Q91TLe-73zk/Tv8b-RhgBRI/AAAAAAAAAxQ/BUXxNPopEyg/s1600/100_00341-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-Q91TLe-73zk/Tv8b-RhgBRI/AAAAAAAAAxQ/BUXxNPopEyg/s480/100_00341-1024x768.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Ach ja, men moet toch wat met zijn oude hardware. Idee komt van tweaker &lt;a href="http://gathering.tweakers.net/forum/list_messages/1059137/"&gt;Terw_Dan&lt;/a&gt;, die er een &lt;a href="http://www.andrieslouw.nl/v5/wp-content/uploads/2010/02/Img_9438.jpg"&gt;hele muur&lt;/a&gt; mee bekleedde.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-8706493601947670445?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/8706493601947670445/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2010/02/de-werkplek-en-het-kunstwerk-mobo-aan.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/8706493601947670445?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/8706493601947670445?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2010/02/de-werkplek-en-het-kunstwerk-mobo-aan.html" title="De werkplek en het kunstwerk; Mobo aan de muur" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-k5_Ec_5eYrQ/Tv8a4HgD3gI/AAAAAAAAAw4/C_geVtNyWW0/s72-c/100_00171-1024x768.jpg" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0UERncyeCp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-4579921527967939356</id><published>2009-12-16T23:00:00.004+01:00</published><updated>2011-12-31T16:26:47.990+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:47.990+01:00</app:edited><title>Koning winter is er; Sneeuwballen met Wytse</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Szs5sqcYYSA/Tv8dHYKeP3I/AAAAAAAAAxc/-JN4MgEcnrA/s1600/M5113578-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" width="480" src="http://1.bp.blogspot.com/-Szs5sqcYYSA/Tv8dHYKeP3I/AAAAAAAAAxc/-JN4MgEcnrA/s480/M5113578-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_SmLiCjklwY/Tv8dTkI0eFI/AAAAAAAAAxo/mzXlmYahR6Q/s1600/M5113582-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" width="480" src="http://4.bp.blogspot.com/-_SmLiCjklwY/Tv8dTkI0eFI/AAAAAAAAAxo/mzXlmYahR6Q/s480/M5113582-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-4579921527967939356?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/4579921527967939356/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/12/koning-winter-is-er-sneeuwballen-met.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/4579921527967939356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/4579921527967939356?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/12/koning-winter-is-er-sneeuwballen-met.html" title="Koning winter is er; Sneeuwballen met Wytse" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Szs5sqcYYSA/Tv8dHYKeP3I/AAAAAAAAAxc/-JN4MgEcnrA/s72-c/M5113578-1024x768.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0YNSXoyeyp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-499692507199908862</id><published>2009-09-20T21:11:00.007+02:00</published><updated>2011-12-31T16:26:38.493+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:38.493+01:00</app:edited><title>Mijn zondagsbesteding (2)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0RNZHwjh-Ao/Tv8eqO77BjI/AAAAAAAAAx0/3J57qgAB_dQ/s1600/20092009-768x1024.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="480" width="360" src="http://1.bp.blogspot.com/-0RNZHwjh-Ao/Tv8eqO77BjI/AAAAAAAAAx0/3J57qgAB_dQ/s360/20092009-768x1024.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p style="clear:both;"&gt;&lt;strong&gt;Locatie: &lt;/strong&gt;Snekermeer&lt;/p&gt;In het kader van "wat doe jij op zondag", dit keer er even alleen met de hond en de sloep op uit. En met een trui aan is het nog prima vertoeven op het water, zo in de nazomer, heerlijk toch?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-499692507199908862?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/499692507199908862/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/09/mijn-zondagsbesteding-2.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/499692507199908862?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/499692507199908862?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/09/mijn-zondagsbesteding-2.html" title="Mijn zondagsbesteding (2)" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-0RNZHwjh-Ao/Tv8eqO77BjI/AAAAAAAAAx0/3J57qgAB_dQ/s72-c/20092009-768x1024.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0YNQXg8fyp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-2554502887278293845</id><published>2009-08-30T19:43:00.002+02:00</published><updated>2011-12-31T16:26:30.677+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:30.677+01:00</app:edited><title>Mijn zondagsbesteding; Zon, zee, wind en Wytse</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-kDcaMtTZejA/Tv8gCLO1A7I/AAAAAAAAAyA/776zea4jbRs/s1600/30082009001-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" width="480" src="http://3.bp.blogspot.com/-kDcaMtTZejA/Tv8gCLO1A7I/AAAAAAAAAyA/776zea4jbRs/s480/30082009001-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p style="clear:both;"/&gt;&lt;strong&gt;Locatie:&lt;/strong&gt; Den Oever&lt;/p&gt;En wat is het dan heerlijk om over de dijk te rennen, en ook zelf (stiekem) even uit te waaien. Zeker met het weer van vandaag!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-2554502887278293845?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/2554502887278293845/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/08/mijn-zondagsbesteding-zon-zee-wind-en.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/2554502887278293845?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/2554502887278293845?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/08/mijn-zondagsbesteding-zon-zee-wind-en.html" title="Mijn zondagsbesteding; Zon, zee, wind en Wytse" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-kDcaMtTZejA/Tv8gCLO1A7I/AAAAAAAAAyA/776zea4jbRs/s72-c/30082009001-1024x768.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0YMQ3c9cSp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-56940953980416107</id><published>2009-08-30T19:37:00.005+02:00</published><updated>2011-12-31T16:26:22.969+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:22.969+01:00</app:edited><title>Racks; Hele dure opslagruimte</title><content type="html">Zo nu en dan moet je wel eens het datacentrum in, zo ook vrijdag de 21-ste, dit keer was ik er om wat nieuwe servers in te hangen. En dan kan ik het op zo'n dag ook niet laten om even bij "de buren" te kijken..&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zpmJq8OccJ0/Tv8hKe41jSI/AAAAAAAAAyw/nwtOt_RqcnQ/s1600/21082009004-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-zpmJq8OccJ0/Tv8hKe41jSI/AAAAAAAAAyw/nwtOt_RqcnQ/s200/21082009004-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4dxfLjFjg5A/Tv8hJ_4EANI/AAAAAAAAAyM/JuXZ47Yl2EI/s1600/21082009-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://1.bp.blogspot.com/-4dxfLjFjg5A/Tv8hJ_4EANI/AAAAAAAAAyM/JuXZ47Yl2EI/s200/21082009-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NzaEel1bLec/Tv8hKAK-OFI/AAAAAAAAAyU/3Ue6kA2SMj8/s1600/21082009001-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-NzaEel1bLec/Tv8hKAK-OFI/AAAAAAAAAyU/3Ue6kA2SMj8/s200/21082009001-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0tlmj3NzIm4/Tv8hKPXbbMI/AAAAAAAAAyc/1zcGetGpPrY/s1600/21082009002-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://1.bp.blogspot.com/-0tlmj3NzIm4/Tv8hKPXbbMI/AAAAAAAAAyc/1zcGetGpPrY/s200/21082009002-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br style="clear:both;" /&gt;&lt;br /&gt;
Wat ik daar aantrof was op zijn minst merkwaardig te noemen, niet alleen die switch die daar scheef staat, maar ook dat er 4 racks werden gebruikt om gewoon wat spullen in op te slaan. Voor de duidelijkheid: 1 rack kost hier €550 p/mnd, dus dit is €2200 p/mnd voor de opslag van wat (oud) spul.. Ik laat de mening aan de lezer over.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-56940953980416107?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/56940953980416107/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/08/racks-hele-dure-opslagruimte.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/56940953980416107?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/56940953980416107?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/08/racks-hele-dure-opslagruimte.html" title="Racks; Hele dure opslagruimte" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-zpmJq8OccJ0/Tv8hKe41jSI/AAAAAAAAAyw/nwtOt_RqcnQ/s72-c/21082009004-1024x768.jpg" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0YDRH47cCp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-468234660172315771</id><published>2009-08-20T14:03:00.002+02:00</published><updated>2011-12-31T16:26:15.008+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:15.008+01:00</app:edited><title>Spam weren, maar dan voor phpBB</title><content type="html">Ramon Fincken heeft speciaal voor phpBB forum's een prachtige antispam plugin gemaakt, welke onder andere gedeeltes uit &lt;a href="http://blog.andrieslouw.nl/2009/06/spam-weren-maar-dan-zonder-captcha.html"&gt;mijn vorige tutorial&lt;/a&gt; gebruikt, maar nog veel &lt;a href="http://www.phpbbantispam.com/viewtopic.php?t=166" rel="nofollow"&gt;meer nuttige toevoegingen&lt;/a&gt; heeft en ook actief onderhouden wordt! Meer info vind je op &lt;a href="http://www.phpbbantispam.com/" rel="nofollow"&gt;PhpBBantispam.com&lt;/a&gt;, of op &lt;a href="http://sourceforge.net/projects/phpbbantispam"&gt;SourceForge&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Ik moedig dit idee zeker aan, en wellicht kunnen je hem helpen bij de ontwikkeling ervan, of de plugin porten naar je eigen applicatie! Want samen staan we sterker tegen spam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-468234660172315771?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/468234660172315771/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/08/spam-weren-maar-dan-voor-phpbb.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/468234660172315771?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/468234660172315771?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/08/spam-weren-maar-dan-voor-phpbb.html" title="Spam weren, maar dan voor phpBB" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0YCRn86cCp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-7211357377505939860</id><published>2009-08-14T23:39:00.002+02:00</published><updated>2011-12-31T16:26:07.118+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:26:07.118+01:00</app:edited><title>Subtropisch weer? We zijn er klaar voor!</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Z1Qa4E3P6N0/Tv8hx0ekN5I/AAAAAAAAAy8/uKYWfie4mEg/s1600/14082009001-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" width="480" src="http://1.bp.blogspot.com/-Z1Qa4E3P6N0/Tv8hx0ekN5I/AAAAAAAAAy8/uKYWfie4mEg/s480/14082009001-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-7211357377505939860?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/7211357377505939860/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/08/subtropisch-weer-we-zijn-er-klaar-voor.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/7211357377505939860?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/7211357377505939860?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/08/subtropisch-weer-we-zijn-er-klaar-voor.html" title="Subtropisch weer? We zijn er klaar voor!" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Z1Qa4E3P6N0/Tv8hx0ekN5I/AAAAAAAAAy8/uKYWfie4mEg/s72-c/14082009001-1024x768.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0YBRn87eip7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-8072019060631097428</id><published>2009-07-11T15:19:00.003+02:00</published><updated>2011-12-31T16:25:57.102+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:25:57.102+01:00</app:edited><title>Hé jongens! Sleepje nodig?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-S8qOIu4JvA0/Tv8iNzJbpeI/AAAAAAAAAzI/WfFZLgZ0438/s1600/09072009001-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" width="480" src="http://4.bp.blogspot.com/-S8qOIu4JvA0/Tv8iNzJbpeI/AAAAAAAAAzI/WfFZLgZ0438/s480/09072009001-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Ook ik heb soms mijn aardige momenten. Hier draag ik de verantwoording/zorg voor 5 Lelievletten, en 18 "pubers", al snel zo'n 40-50 meter sleep. Ik stuur de voorste, en de rest zit in die 4 vletten achter me.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-h2Xy7zRhip4/Tv8iWVXS0JI/AAAAAAAAAzU/PtqUG-Hjvwc/s1600/09072009-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="360" width="480" src="http://1.bp.blogspot.com/-h2Xy7zRhip4/Tv8iWVXS0JI/AAAAAAAAAzU/PtqUG-Hjvwc/s480/09072009-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-8072019060631097428?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/8072019060631097428/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/07/he-jongens-sleepje-nodig.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/8072019060631097428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/8072019060631097428?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/07/he-jongens-sleepje-nodig.html" title="Hé jongens! Sleepje nodig?" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-S8qOIu4JvA0/Tv8iNzJbpeI/AAAAAAAAAzI/WfFZLgZ0438/s72-c/09072009001-1024x768.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0YARnw7fSp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-4923069853267882716</id><published>2009-06-18T19:44:00.008+02:00</published><updated>2011-12-31T16:25:47.205+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:25:47.205+01:00</app:edited><title>Eventjes met de hond uit</title><content type="html">Zoals jullie in de vorige post dus zagen, bestaat het huishouden hier ook uit een hondje. De naam is Wytse overigens, wat afgeleid is uit de Friese woorden voor klein en wit (resp. &lt;a href="http://fy.wiktionary.org/wiki/lyts"&gt;lyts&lt;/a&gt; en &lt;a href="http://fy.wiktionary.org/wiki/wyt"&gt;wyt&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Zo nu en dan is het, na een dag hard werken of school, natuurlijk prachtig om even de zinnen te verzetten. En omdat alleen wandelen ook zo gek lijkt, is Wytse voor mij een mooi excuus. Daarbij is het ook geweldig om te zien hoe zo'n kleine rakker zo veel plezier kan hebben buiten.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-lA7uOovRKn0/Tv8jWCvlzjI/AAAAAAAAAzg/9OuKPOGmA5U/s1600/18062009005-1024x768.jpg" imageanchor="1" style="clear:right; float:right;margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://3.bp.blogspot.com/-lA7uOovRKn0/Tv8jWCvlzjI/AAAAAAAAAzg/9OuKPOGmA5U/s200/18062009005-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Blij man dat ik ben, beschik ik hier op 100 meter lopen over een zee van rust.  Ik woon net aan de grens van Sneek, wat betekend dat mijn uitzicht, zo ver het reikt, bestaat uit weilanden en wateren.&lt;br /&gt;
&lt;br /&gt;
Voor Wytse betekent dit onbezorgd rennen, zo ver als zijn pootjes hem dragen.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Ju2vnR-WeQw/Tv8jhKI-85I/AAAAAAAAAzs/cnwALf80Is4/s1600/18062009007-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-Ju2vnR-WeQw/Tv8jhKI-85I/AAAAAAAAAzs/cnwALf80Is4/s200/18062009007-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;En zoals jullie zien, is hij niet het enige dier hier in de omgeving.&lt;br /&gt;
&lt;br style="clear:both;" /&gt;Goed, na een 700 meter rennen krijgt zo'n hond natuurlijk ook wel eens dorst,  en omdat Friesland te boek staat als de provincie waar geen gebrek is aan water, komt dat mooi uit.&lt;br /&gt;
&lt;br /&gt;
Helaas vergist ook een hond zich wel eens. Vandaag betekende dat dus kopje onder. Geen probleem voor Wytse, want hij is een geoefend zwemmer ondertussen.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-zXG4jmd337s/Tv8j80m-BRI/AAAAAAAAAz4/ZUXscFF9qBM/s1600/18062009014-1024x768.jpg" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://3.bp.blogspot.com/-zXG4jmd337s/Tv8j80m-BRI/AAAAAAAAAz4/ZUXscFF9qBM/s200/18062009014-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Wel werd mijn helpende hand zeer gewaardeerd, want klimmen is niet zijn ding, en het water was toch wel wat koud.&lt;br /&gt;
&lt;br /&gt;
Daar zit je dan, beetje beduusd, afvragend hoe je vacht ineens zo nat komt, maar o zo blij dat de zon schijnt.&lt;br /&gt;
&lt;br /&gt;
En heerlijk weer was het vandaag zeker, getuige ook het feit dat Wytse na een kwartiertje rennen alweer droog was.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6-9_-lZaq9U/Tv8kGKnyG4I/AAAAAAAAA0E/yp5cUkIKrE4/s1600/18062009015-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-6-9_-lZaq9U/Tv8kGKnyG4I/AAAAAAAAA0E/yp5cUkIKrE4/s200/18062009015-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Op de terugweg kwam ik nog een mooi stukje natuur tegen, wat je niet vaak tegenkomt zo midden in een woonwijk. Ik denk dat de foto wel voor zich spreekt.&lt;br /&gt;
&lt;br /&gt;
Rustig lopend ben ik de familie eend gepasseerd, want het laatste wat je wilt is ze storen.&lt;br /&gt;
&lt;br /&gt;
En als je dan thuis komt, en ziet dat je hond behoorlijk wat natuur mee naar binnen heeft genomen, dan zit er maar 1 ding op, in bad. Ik laat wederom de foto's spreken.&lt;br style="clear:both;" /&gt;&lt;br /&gt;
&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-FzX46rML-Vw/Tv8kSOCLgqI/AAAAAAAAA0Y/9cFISwJZfvk/s1600/18062009018-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://1.bp.blogspot.com/-FzX46rML-Vw/Tv8kSOCLgqI/AAAAAAAAA0Y/9cFISwJZfvk/s200/18062009018-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-_yc8X3XPtrc/Tv8kR_J2dxI/AAAAAAAAA0Q/J_Tv5W7qtrg/s1600/18062009017-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://3.bp.blogspot.com/-_yc8X3XPtrc/Tv8kR_J2dxI/AAAAAAAAA0Q/J_Tv5W7qtrg/s200/18062009017-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br style="clear:both;" /&gt;Ja, dit is een vreemd exemplaar, hij lijkt soms zelfs te genieten van het water.&lt;br style="clear:both;" /&gt;&lt;br /&gt;
&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ypyHKaNGxtA/Tv8kiGHT1gI/AAAAAAAAA00/LJH3s_YHd1g/s1600/18062009024-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://1.bp.blogspot.com/-ypyHKaNGxtA/Tv8kiGHT1gI/AAAAAAAAA00/LJH3s_YHd1g/s200/18062009024-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="float:left; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DQ33FDgCmJY/Tv8kh1LV6VI/AAAAAAAAA0o/wZB8iwcGKp8/s1600/18062009023-1024x768.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://2.bp.blogspot.com/-DQ33FDgCmJY/Tv8kh1LV6VI/AAAAAAAAA0o/wZB8iwcGKp8/s200/18062009023-1024x768.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br style="clear:both;" /&gt;Eventjes met de hond uit, soms een klein avontuur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-4923069853267882716?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/4923069853267882716/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/06/eventjes-met-de-hond-uit.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/4923069853267882716?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/4923069853267882716?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/06/eventjes-met-de-hond-uit.html" title="Eventjes met de hond uit" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-lA7uOovRKn0/Tv8jWCvlzjI/AAAAAAAAAzg/9OuKPOGmA5U/s72-c/18062009005-1024x768.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0YHSX45fSp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-44342708659581632.post-7932351251180456447</id><published>2009-06-15T21:28:00.009+02:00</published><updated>2011-12-31T16:25:38.025+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:25:38.025+01:00</app:edited><title>Spam weren, maar dan zonder CAPTCHA</title><content type="html">We herkennen het probleem allemaal wel, die eindeloze stromen welke binnenkomen in gastenboeken, op blogs, op forums. Zo'n beetje elke plaats op het internet waar gebruikers zelf iets kunnen toevoegen lijkt er aan te moeten geloven: Spam.&lt;br /&gt;
&lt;br /&gt;
Natuurlijk zijn we allemaal zeer geïnteresseerd in die ge-wel-dige aanbiedingen van die Russische pillenboer, de echte Zwitserse uurwerken voor een dumpprijs, of die mooie business proposals van een Nigeriaanse neef. Maar wat als je, net als ik, niks te klagen hebt, en al ruim voorzien bent?&lt;br /&gt;
&lt;br /&gt;
Voor de meeste webmasters is het antwoord al snel: Een &lt;abbr title="Completely Automated Public Turingtest to tell Computers and Humans Apart"&gt;CAPTCHA&lt;/abbr&gt; implementeren. Het grootste nadeel is bekend; een goede dient moeilijk te zijn voor computers, maar is dit helaas ook steeds vaker voor een mens.&lt;br /&gt;
&lt;br /&gt;
Gelukkig is er een andere oplossing; spamfilters. Wie Wordpress gebruikt kent vast Akismet wel, een plugin die alle berichten controleert op spam-woorden. In deze post doe ik uit de doeken hoe je zelf zoiets maakt in PHP.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;strong&gt;Achtergrond informatie&lt;br /&gt;
&lt;/strong&gt;Maar eerst wat meer achtergrond informatie, ik was op zoek naar een anti-spam-oplossing die aan een aantal voorwaarden moest voldoen:&lt;br /&gt;
&lt;p style="padding-left: 30px;"&gt;1. De gebruiker mag er geen last van ondervinden.&lt;br /&gt;
2. De oplossing moet snel zijn.&lt;br /&gt;
3. Berichten mogen niet in een queue belanden.&lt;br /&gt;
4. Bij het plaatsen moet voor de gebruiker direct bekend zijn of een bericht goed-, of afgekeurd wordt.&lt;/p&gt;Ik had kunnen kiezen om een implementatie te schrijven voor Akismet, een bewezen oplossing binnen de blog wereld. Probleem bij Akismet is echter de wachtrij, het kan een hele poos duren voordat het bericht er door is.&lt;br /&gt;
&lt;br /&gt;
Daarom heb ik besloten zelf een spamfilter te schrijven, maar waar moet je dan beginnen? Ik heb voor mezelf een klein lijstje gemaakt waar een typische spam-post uit bestaat:&lt;br /&gt;
&lt;p style="padding-left: 30px;"&gt;1. Er staan vaak 1 of meerdere links in.&lt;br /&gt;
2. Deze links worden op allerlei manieren ingevoegd in een bericht, bijv.: &lt;em&gt;[url], &amp;lt;a&amp;gt;, [link], http://&lt;/em&gt;, of enkel &lt;em&gt;www&lt;/em&gt;.&lt;br /&gt;
3. Men plaatst ze onder een valse, gegenereerde naam.&lt;br /&gt;
4. Hetzelfde geld voor de e-mailadressen.&lt;br /&gt;
5. De inhoud bestaat veelal uit dezelfde Engelse woorden.&lt;br /&gt;
6. Vaak worden ze geplaatst via proxies, om IP-blokkeringen te voorkomen.&lt;br /&gt;
7. Veelal wordt er maar wat gegist qua input velden.&lt;/p&gt;Dit laatste punt vereist wat meer uitleg, het is zo dat elk formulier bestaat uit &amp;lt;input&amp;gt;-velden, deze hebben allemaal een name-attribuut waarop je ze in je code kunt aanspreken. Een spammer heeft echter vaak geen tijd/zin om uit te vogelen welke name-attributen je hebt meegegeven.&lt;br /&gt;
&lt;br /&gt;
Wat hij daarop doet is simpel: Hij probeert zo veel mogelijk uit. Dus stuurt hij niet alleen een &lt;em&gt;e-mailadres&lt;/em&gt; mee, maar ook een &lt;em&gt;e-mail&lt;/em&gt;, &lt;em&gt;email&lt;/em&gt;, &lt;em&gt;mail&lt;/em&gt;, &lt;em&gt;mailadres&lt;/em&gt;, &lt;em&gt;emailadres&lt;/em&gt;, enz. In de hoop dat 1 van de velden geaccepteerd wordt.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;De oplossing&lt;/strong&gt;&lt;br /&gt;
Vervolgens ben ik voor elk punt bij langs gegaan hoe ik zo'n controle het eenvoudigst in code kon omzetten.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;POST-velden&lt;/strong&gt;&lt;br /&gt;
Om even bij het name-attribuut voorbeeld te blijven, dit is bijvoorbeeld simpel te controleren door te kijken of een poster niet meer velden opgeeft, dan je formulier uit bestaat:&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
if(count($_POST)&gt;5){
    //Vermoedelijk spam, te veel POST-velden
}
?&amp;gt;
&lt;/pre&gt;Hiermee controleer je dus of er niet meer dan 5 velden worden meegestuurd, in mijn project werd er een naam, e-mail, website en bericht meegestuurd. De geoefende rekenaar telt er hier maar 4, en dat klopt, want ook een &lt;em&gt;Verzenden&lt;/em&gt;-knop telt mee in $_POST, waarmee we dus op 5 uitkomen.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Een geldig e-mailadres&lt;/strong&gt;&lt;br /&gt;
Dan het volgende punt, controleren of een e-mailadres wel geldig is, alhoewel de meeste spammers hier wel aan denken, is het natuurlijk ook wel handig voor de bezoeker om hem te laten weten dat zijn e-mailadres niet juist is. Een simpele controle daarop luid:&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
if(!ereg('^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$',$_POST['email'])){
    //Het e-mailadres is ongeldig
}
?&amp;gt;
&lt;/pre&gt;Ik ga er verder niet op in hoe deze zgn. regexp precies werkt, en neem voor het gemak aan dat het name-attribuut van je e-mail veld "email" heet.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Wat is de ratio van jouw naam?&lt;/strong&gt;&lt;br /&gt;
Dan de naam, hoe controleer je nu of een naam "echt" of "nep" is? We zouden het bevolkingsregister kunnen raadplegen, maar omdat ik dan ruzie krijg met het &lt;abbr title="College Bescherming Persoonsgegevens"&gt;CBP&lt;/abbr&gt;, zal ik hier een andere oplossing uitleggen.&lt;br /&gt;
&lt;br /&gt;
Het is namelijk vrij simpel om de ernstige gevallen eruit te filteren, vaak lange willekeurige tekenreeksen zoals: YGaWqnXskCNidzp. Zelfs een kind van 6 ziet gelijk dat dit geen naam is, maar hoe leer je een computer dit?&lt;br /&gt;
&lt;br /&gt;
De oplossing is wederom niet erg lastig; tel het aantal hoofdletters, het aantal kleine letters, en kijk wat de ratio ertussen is. Ik vind een ratio van 0.3 wel aardig klinken. Dat betekend dus 3 hoofdletters op 10 tekens, niets meer (maar wel minder).&lt;br /&gt;
&lt;br /&gt;
Om te voorkomen dat onze geliefde "Jan" ineens wordt uitgesloten van reageren (immers, zijn naam kent een ratio van 0.33), controleren we ook of we &lt;em&gt;voldoende naam hebben om te beoordelen&lt;/em&gt;. Laten we stellen dat men minimaal 8 letters moet hebben ingevuld om in aanmerking te komen voor onze razzia naar spam-namen.&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
$name = $_POST['name'];

$uppercased = preg_match_all('/[A-Z]/', $name, $null1);
$allcased = preg_match_all('/[A-Za-z]/', $name, $null2);
$namelen = strlen($name);

$ucratio = $uppercased/$allcased;
if($namelen &gt; 8 &amp;&amp; $ucratio &gt; 0.3){
    //Waarschijnlijk een spam-naam
}
?&amp;gt;
&lt;/pre&gt;Ik hoop dat de code voor zich spreekt, maar mocht er behoefte aan uitleg zijn, dan wil ik één en ander wel uitdiepen in de reacties.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Proxy-servers&lt;/strong&gt;&lt;br /&gt;
Dan nu over op intercity-tempo, het controleren op proxy servers kan in PHP onder andere door:&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
if ((isset($_SERVER['HTTP_X_FORWARDED_FOR']) || isset($_SERVER['HTTP_VIA']) || isset($_SERVER['HTTP_COOKIE2']) || isset($_SERVER['HTTP_X_FORWARDED_SERVER']) || isset($_SERVER['HTTP_X_FORWARDED_HOST']) || isset($_SERVER['HTTP_MAX_FORWARDS']) || isset($_SERVER['HTTP_PROXY_CONNECTION']))){
    //Gebruiker gebruikt een proxy server
    $myscore += 5;
}
?&amp;gt;
&lt;/pre&gt;&lt;strong&gt;Scores toekennen aan regels&lt;/strong&gt;&lt;br /&gt;
De oplettende lezer spot gelijk "$myscore" (als je hem niet zag, en er problemen mee hebt: &lt;a href="http://www.korrelatie.nl/" rel="nofollow"&gt;0900-1450&lt;/a&gt;), hiermee ken ik dus een score toe aan een controle.&lt;br /&gt;
&lt;br /&gt;
Zo kan ik stellen dat het hebben van een ongeldige naam, minder zwaar gerekend wordt dan het gebruik van een proxy server. Uiteindelijk kun je dan &lt;em&gt;een drempelwaarde&lt;/em&gt; instellen waarboven een post als spam wordt aangemerkt. (Daaronder val je met &lt;em&gt;de deur&lt;/em&gt; in huis, en staat je bericht direct online!)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;De woordenfilter&lt;/strong&gt;&lt;br /&gt;
Dan het belangrijkste onderdeel van onze spamfilter, de woordenfilter. Omdat we al met scores werken, lijkt het me handig om onderscheid te maken in 2 groepen: Hard-spam-woorden en Soft-spam-woorden (en ja, dat is redelijk vergelijkbaar met de classificatie in bepaalde natuurfilms).&lt;br /&gt;
&lt;br /&gt;
Om te voorkomen dat ik straks heel populair ben in Google op deze spam-termen, heb ik een voorbeeld lijstje, wat ik gebruik, &lt;a href="http://static.weserv.nl/v5/spam-words-list.txt" rel="nofollow"&gt;onder deze link geplaatst&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
In mijn lijstje staan ook links onder de "hard"-classificatie, dit omdat ik voor het project heb gekozen gebruikers niet links te laten plaatsen in de comments, en dit ook duidelijk heb vermeld. Hiermee wordt al een hele hoop spam geweerd. En de gebruiker die graag zijn link wil zien, kan deze bij "website" invullen.&lt;br /&gt;
&lt;br /&gt;
Vervolgens vullen we het lijstje aan met de volgende code:&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
$comments = $_POST['comments'];

foreach($spam_words_hard as $sw){
    if(strpos($comments,$sw) !== false){
        $myscore+=7;
    }
}

foreach($spam_words_soft as $sw){
    if(strpos($comments,$sw) !== false){
        $myscore+=3;
    }
}
?&amp;gt;
&lt;/pre&gt;Hard krijg dus 7 punten, en soft 3 punten per woord. Een beetje spam bericht telt zo al lekker op, en ik ben &lt;em&gt;in productie&lt;/em&gt; dan alleen op dit punt al scores boven de 50 tegengekomen.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Tot slot&lt;/strong&gt;&lt;br /&gt;
Voor mensen die liever lui dan moe zijn, heb ik de door mij gebruikte functie online gezet op: &lt;a rel="nofollow" href="http://dev.andrieslouw.nl/antispam.phps"&gt;dev.andrieslouw.nl/antispam.phps&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Een iets uitgebreidere versie van deze functie heeft tot nu toe in mijn project, een website met meer dan 12000 unieke bezoekers per maand, waaronder een 100-tal spambots, nog geen enkel spam-bericht doorgelaten (drempelwaarde van $myscore is bij mij 10).&lt;br /&gt;
&lt;br /&gt;
Maar belangrijker is nog, dat de gebruikers er zelf geen last van ondervinden, de meesten merken niet eens op dat hun bericht door een filter gaat.&lt;br /&gt;
&lt;br /&gt;
Ik wil iedereen wel van harte aanmoedigen om deze functie als basis te gebruiken, en niet zo maar &lt;em&gt;in productie&lt;/em&gt; in te zetten. Het is natuurlijk aan jou om te bepalen wat er wel of niet met spam berichten gebeurd, welke woorden je filtert, welke score je toekent per onderdeel,  en welke score je als drempelwaarde gebruikt.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt; Ramon Fincken heeft &lt;a href="http://blog.andrieslouw.nl/2009/08/spam-weren-maar-dan-voor-phpbb.html"&gt;een implementatie voor phpBB&lt;/a&gt; geschreven&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/44342708659581632-7932351251180456447?l=blog.andrieslouw.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andrieslouw.nl/feeds/7932351251180456447/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://blog.andrieslouw.nl/2009/06/spam-weren-maar-dan-zonder-captcha.html#comment-form" title="6 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/7932351251180456447?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/44342708659581632/posts/default/7932351251180456447?v=2" /><link rel="alternate" type="text/html" href="http://blog.andrieslouw.nl/2009/06/spam-weren-maar-dan-zonder-captcha.html" title="Spam weren, maar dan zonder CAPTCHA" /><author><name>Andries Louw Wolthuizen</name><uri>https://profiles.google.com/105291271959076568663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-jFXsdzuLa4o/AAAAAAAAAAI/AAAAAAAAAmE/wgkuIwCLT-g/s512-c/photo.jpg" /></author><thr:total>6</thr:total></entry></feed>

