<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Tim.Wienk.name</title><link href="https://tim.wienk.name/" rel="alternate"></link><link href="https://tim.wienk.name/nl/atom.xml" rel="self"></link><id>https://tim.wienk.name/</id><updated>2017-03-12T00:00:00+01:00</updated><entry><title>Tweede Kamerverkiezingen 2017</title><link href="https://tim.wienk.name/nl/articles/dutch-elections-2017" rel="alternate"></link><published>2017-03-12T00:00:00+01:00</published><updated>2017-03-12T00:00:00+01:00</updated><author><name>Tim Wienk</name></author><id>tag:tim.wienk.name,2017-03-12:/nl/articles/dutch-elections-2017</id><summary type="html">&lt;p&gt;Een politiek artikel op mijn website, dat had ik zelf niet
zien aankomen. In het licht van de Tweede Kamerverkiezingen
over een paar dagen, heb ik besloten mijn eigen antwoorden
op de StemWijzer-stellingen in een stuk tekst te verwerken.&lt;/p&gt;</summary><content type="html">&lt;section id="stemwijzer-resultaten"&gt;&lt;h2&gt;&lt;span&gt;StemWijzer-resultaten&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Allereerst, het resultaat van mijn uiteindelijke StemWijzer-antwoorden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Piratenpartij NL (80%)&lt;/li&gt;
&lt;li&gt;SP (67%)&lt;/li&gt;
&lt;li&gt;Partij voor de Dieren, De Burger Beweging (63%)&lt;/li&gt;
&lt;/ol&gt;
&lt;aside&gt;
&lt;h3 id="stemwijzer"&gt;&lt;span&gt;StemWijzer&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;De &lt;a href="https://home.stemwijzer.nl/over-stemwijzer/"&gt;StemWijzer&lt;/a&gt; is een applicatie in Nederland die kiezers probeert te
helpen een keuzes te maken (of bevestigen) voor Tweede
Kamerverkiezingen.  Dit wordt in Nederland sinds 1989 op papier
uitgebracht, en sinds 1998 ook op internet.&lt;/p&gt;
&lt;p&gt;Bij de laatste verkiezingen, in 2006, 2010 en 2012, werd de StemWijzer
door tussen de 4,2 miljoen en 4,8 miljoen mensen gebruikt.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Ik heb besloten om mijn resultaten en antwoorden op de
StemWijzer-stellingen hier te verwerken, om een aantal redenen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bij veel stellingen neigde ik naar "geen van beide" omdat ik van veel
   onderwerpen details miste, maar ik wilde toch een mening vormen over
   veel van de onderwerpen, om tot een relevant resultaat te komen.
   Door deze tekst te schrijven had ik een extra reden om over een
   aantal onderwerpen meer na te denken of uit te zoeken.&lt;/li&gt;
&lt;li&gt;Ik was verbaasd over het feit dat de PPNL er als hoogste resultaat
   uitkwam, vooral omdat de stellingen niet echt direct te maken hebben
   met de redenen dat ik al in deze partij geïnteresseerd was.&lt;/li&gt;
&lt;li&gt;De PPNL krijgt relatief weinig aandacht in Nederland, en ik vond mijn
   StemWijzer-resultaat positief voor de partij. Als ook maar één ander
   persoon deze tekst leest en daardoor serieus over de PPNL nadenkt, is
   dat mooi meegenomen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section id="piratenpartij-nl"&gt;&lt;h2&gt;&lt;span&gt;Piratenpartij NL&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Zoals ik noemde, was ik al geïnteresseerd in de &lt;a href="https://piratenpartij.nl/"&gt;PPNL&lt;/a&gt;, met name omdat
ze als belangrijkste uitgangspunten digitalisering en privacy hebben,
twee onderwerpen waar ik dagelijks mee in aanraking kom tijdens mijn
werk en die ik (mede daardoor) ook erg belangrijk vind.&lt;/p&gt;
&lt;p&gt;Daarnaast is er naar mijn mening in de politiek (nog steeds) veel te
weinig kennis van en aandacht voor alle zaken rondom ICT en
digitalisering. Door zelfs maar één zetel voor een partij die hier vol
op in zet, zullen de onderwerpen in ieder geval meer in de Tweede Kamer
ter sprake worden gebracht, waardoor de andere partijen duidelijker
standpunten zullen moeten innemen en er inhoudelijker mee om moeten
gaan.&lt;/p&gt;
&lt;p&gt;Ik was verbaasd dat de PPNL als eerste partij uit de StemWijzer kwam.
Na verder uitzoeken en na de reacties van de partij op de stellingen te
hebben gelezen, moet ik concluderen dat mijn overwegend positieve mening
over de PPNL eigenlijk te negatief was. Ik vond ze al interessant, maar
ze hebben een beter uitgedacht en vollediger programma neergezet dan ik
tot nu toe door had, en ze hadden op alle stellingen een doordacht
antwoord. Deze antwoorden komen daarbij niet in alle maar wel in veel
gevallen overeen met de mijne.&lt;/p&gt;
&lt;aside&gt;
&lt;h3 id="verkiezingsprogramma-2017"&gt;&lt;span&gt;Verkiezingsprogramma 2017&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;De PPNL heeft een erg goed leesbaar &lt;a href="https://tk2017.piratenpartij.nl/wp-content/uploads/sites/12/2017/02/PPNL-Verkiezingsprogramma-2017-verkort.pdf"&gt;verkort verkiezingsprogramma&lt;/a&gt;
beschikbaar gemaakt. Alleen het lezen van de titels geeft al een goed
beeld van de gedachtegang van de partij.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Wat ik niet zo gek maar wel jammer vind, is dat ik het idee heb dat de
Piratenpartij door veel mensen niet serieus wordt genomen door de naam,
hopelijk wordt dat beter als we er met tijd aan wennen. Ik wist
natuurlijk al dat de partij wel serieus is en het zich ook wel breed
heeft neergezet, maar dat blijkt beter te zijn dan ik dacht. De PPNL is
wel degelijk serieus, er is &lt;a href="https://pp-international.net/"&gt;internationale samenwerking&lt;/a&gt; met andere
Piratenpartijen en het is zeker het "one issue"-stadium voorbij.&lt;/p&gt;
&lt;p&gt;Ik denk dat de PPNL voor veel links-progressief-georiënteerde kiezers
die extra waarde hechten aan de "we doen alles op internet"-effecten een
goede optie is.&lt;/p&gt;
&lt;/section&gt;&lt;section id="stellingen-en-antwoorden"&gt;&lt;h2&gt;&lt;span&gt;Stellingen en antwoorden&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Dit zal het langste deel van dit artikel zijn, hieronder vind je alle
dertig stellingen uit de StemWijzer met mijn antwoorden en uitleg van
die antwoorden.&lt;/p&gt;
&lt;section id="1-bindend-referendum"&gt;&lt;h3&gt;&lt;span&gt;1. Bindend referendum&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet een bindend referendum komen, waarmee burgers door het
parlement aangenomen wetten kunnen tegenhouden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Natuurlijk ben ik voor inspraak door "het volk" in beslissingen, maar
het probleem met referenda is dat er aan mensen, die in veel van de
zaken niet thuis zijn, wordt gevraagd om een mening te geven over
vraagstukken waarvan alleen (of soms niet eens) de oppervlakkige delen
zichtbaar zijn.&lt;/p&gt;
&lt;p&gt;Dit is wat mij betreft juist de reden dat we in onze democratie
vertegenwoordigers kiezen. Deze vertegenwoordigers zijn dagelijks met
dit soort zaken bezig en hebben daardoor wél de mogelijkheid zich een
goede mening te vormen, en om dus een goede beslissing te nemen.&lt;/p&gt;
&lt;section id="hoe-moet-het-dan-wel-werken"&gt;&lt;h4&gt;&lt;span&gt;Hoe moet het dan wel werken?&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;De gekozen vertegenwoordigers hebben ten opzichte van hun kiezers wat
mij betreft in ieder geval de volgende twee taken:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Zich uitgebreid en genuanceerd op de hoogte stellen en houden van de
    (politieke) vraagstukken en oplossingen daaromtrent, om op een goede
    en eerlijke manier hun kiezers te vertegenwoordigen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hun kiezers eerlijk en duidelijk informeren over deze vraagstukken
    en zich op de hoogte houden van de meningen van de kiezers die zij
    vertegenwoordigen.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Wanneer dit goed wordt gedaan, is een landelijk referendum niet nodig en
worden de politici niet opgezadeld met ondoordachte beslissingen die
door "het volk" worden genomen.&lt;/p&gt;
&lt;p&gt;Wanneer een volksvertegenwoordiger of partij deze taken niet uitvoert
(door alleen populistische en/of oppervlakkige uitleg te promoten, of
überhaupt geen navraag te doen bij hun achterban), is deze niet erg
vertegenwoordigend bezig, en verdient verdient deze naar mijn mening
geen zetel.&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;section id="2-maatschappelijke-dienstplicht"&gt;&lt;h3&gt;&lt;span&gt;2. Maatschappelijke dienstplicht&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet een maatschappelijke dienstplicht voor jongeren komen. Zij
kunnen dan dienen in het leger, bij de politie of in de zorg.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Dit soort verplichtingen zijn naar mijn mening inefficiënt en onnodig.
(Jonge) mensen verplicht maatschappelijk werk te laten uitvoeren terwijl
zij er niet voor kiezen, werkt niet motiverend en zal daardoor ook niet
tot kwaliteit leiden.&lt;/p&gt;
&lt;p&gt;Als deel van het onderwijssysteem komt men door stages en/of
(af)studeeropdrachten bij organisaties of bedrijven terecht die wél
aansluiten bij de ideeën en interesses van de persoon in kwestie.&lt;/p&gt;
&lt;/section&gt;&lt;section id="3-anoniem-solliciteren"&gt;&lt;h3&gt;&lt;span&gt;3. Anoniem solliciteren&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Om discriminatie op basis van de naam te voorkomen, moet anoniem
solliciteren bij de overheid en bij openbare instellingen de regel
worden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Discriminatie op deze manier proberen tegen te gaan is
symptoombestrijding, het is hetzelfde als elke dag zonder na te denken
pijnstillers slikken omdat je hoofdpijn hebt: het is beter om uit te
zoeken waarom je hoofdpijn hebt. Het daadwerkelijke probleem wordt
hiermee eigenlijk alleen verborgen.&lt;/p&gt;
&lt;p&gt;Om deze reden vind ik dat anoniem solliciteren niet de (of een) regel
hoeft te worden, maar het moet ook geen probleem zijn als een
organisatie dit wel wil inzetten. Elke organisatie (overheid of niet)
moet zelf kunnen beslissen of anoniem solliciteren voor hen een
meerwaarde heeft.&lt;/p&gt;
&lt;p&gt;Als een overheidsorganisatie zich schuldig maakt aan discriminatie op
naam (of op andere vlakken), is er wat mij betreft een ander probleem om
op te lossen dan een sollicitatie-probleem.&lt;/p&gt;
&lt;/section&gt;&lt;section id="4-groepsbelediging"&gt;&lt;h3&gt;&lt;span&gt;4. Groepsbelediging&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Belediging van groepen op grond van ras, godsdienst of geaardheid moet
niet langer strafbaar zijn.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Het openlijk en bedoeld beledigen van groepen draagt bij aan een
samenleving waarin vooroordelen, discriminatie en misschien zelfs haat
op basis van het horen bij een groep normaal is.&lt;/p&gt;
&lt;p&gt;Op dit moment is het erg populair om van allerlei dingen maar een groep
de schuld van te geven, of het nou homoseksuelen of buitelanders zijn.
Het lijkt mij erg onlogisch om in deze tijd de regelgeving hierom te
versoepelen.&lt;/p&gt;
&lt;/section&gt;&lt;section id="5-teelt-en-verkoop-wiet"&gt;&lt;h3&gt;&lt;span&gt;5. Teelt en verkoop wiet&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De teelt en verkoop van wiet moet legaal worden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Het huidige gedoogbeleid rondom wietteelt is naar mijn mening onlogisch
en ongezond.&lt;/p&gt;
&lt;p&gt;Door het te legaliseren kunnen er voorschriften en kwaliteitseisen komen
en kan er zelfs accijns op geheven worden, zoals op alcohol. Op die
manier kan er beter en efficiënter worden gecontroleerd en komt het de
kwaliteit van de producten (en dus volksgezondheid) ten goede.&lt;/p&gt;
&lt;/section&gt;&lt;section id="6-vervroegde-vrijlating"&gt;&lt;h3&gt;&lt;span&gt;6. Vervroegde vrijlating&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De vervroegde vrijlating onder voorwaarden van gevangenen moet
stoppen. Zij moeten hun straf helemaal uitzitten.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Allereerst is het belangrijk om te benadrukken dat de vervroegde
vrijlating een voorwaardelijke vrijlating is, en kan dit alleen bij
straffen van langer dan een jaar.&lt;/p&gt;
&lt;p&gt;Verder is het natuurlijk zo dat rechters bij het bepalen van een straf
de vervroegde vrijlating al meerekenen, aanpassen maakt in feite dus
huidige straffen langer dan bedoeld.&lt;/p&gt;
&lt;p&gt;Ik denk/hoop dat, door criminelen een uitzicht te geven op vervroegde
vrijlating, er een (extra) reden om is zich te verbeteren en weer
normaal in de maatschappij te kunnen functioneren. Wel lijkt het mij
goed om na te gaan of er niet vaker of meer vrijheidsbeperkende
voorwaarden moeten worden gesteld bij vervroegde vrijlatingen.&lt;/p&gt;
&lt;/section&gt;&lt;section id="7-vennootschapsbelasting"&gt;&lt;h3&gt;&lt;span&gt;7. Vennootschapsbelasting&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De belasting over de winst van ondernemingen (vennootschapsbelasting)
moet omlaag.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Door dit logisch te beredeneren kom je er al snel op uit dat het
verlagen van deze belasting een groot effect op multinationals en een
veel kleiner effect op kleine ondermeningen. Deze insteek lijkt me dan
ook niet de juiste.&lt;/p&gt;
&lt;p&gt;Als er belastingverlichting moet komen voor ondernemingen, dan zijn er
andere belastingen om te bekijken (zoals de inkomstenbelasting), waar
ook de werknemers voordeel van kunnen merken, of andere opties (zoals
atrekposten), waar juist kleine ondernemers meer effect van zullen
hebben.&lt;/p&gt;
&lt;/section&gt;&lt;section id="8-belasting-hoogste-inkomens"&gt;&lt;h3&gt;&lt;span&gt;8. Belasting hoogste inkomens&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De hoogste inkomensgroepen moeten meer belasting gaan betalen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Deze stelling is wel erg simpel verwoord, het lijkt opgezet op een
manier dat iedereen met een laag- of middeninkomen gelijk "ja" kan
zeggen.&lt;/p&gt;
&lt;p&gt;Naar mijn mening hoeven de hoogste inkomensgroepen niet per se meer te
betalen, maar de lage- en middeninkomens wel minder.&lt;/p&gt;
&lt;p&gt;Misschien (maar waarschijnlijk niet) is het zelfs zo simpel als de
belastingpercentages op de lage en middelste schijven verlagen, en die
op de hoogste schijf verhogen, waardoor mensen met lage en
middeninkomens minder betalen en hoogste inkomensgroep ongeveer
hetzelfde blijft betalen.&lt;/p&gt;
&lt;p&gt;Daarnaast heb ik verschillende politieke partijen horen praten over het
bestrijden van belastingontduiking, een hogere belastingverhoging voor
die mensen is er niet te bedenken.&lt;/p&gt;
&lt;/section&gt;&lt;section id="9-tijdelijke-arbeidscontracten"&gt;&lt;h3&gt;&lt;span&gt;9. Tijdelijke arbeidscontracten&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De periode waarbinnen je meerdere tijdelijke arbeidscontracten na
elkaar kunt afsluiten, moet langer worden dan twee jaar.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Als een bedrijf iemand twee jaar in dienst heeft, is de positie van deze
werknemer niet meer echt tijdelijk te noemen, en na twee jaar kan een
bedrijf een bepaald vertrouwen in de werknemer hebben.&lt;/p&gt;
&lt;p&gt;Het lijkt me dan ook eerlijk dat dit dan ook als een stuk zekerheid voor
de werknemer in het arbeidscontract wordt verwerkt.&lt;/p&gt;
&lt;/section&gt;&lt;section id="10-aow-leeftijd-65"&gt;&lt;h3&gt;&lt;span&gt;10. AOW-leeftijd 65&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De AOW-leeftijd moet weer 65 jaar worden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Hier ben ik het in principe mee eens, hoewel ik liever zou zien dat er
meer zou worden aangepast aan de AOW-regeling (of onnodig moet worden
gemaakt door het invoeren van een basisinkomen).&lt;/p&gt;
&lt;p&gt;Zo lijkt het mij logisch om de AOW-leeftijd te koppelen aan het aantal
werkjaren. In de praktijk begint men met fysiek zwaardere beroepen
meestal op vroegere leeftijd te werken, terwijl de fysiek minder zware
beroepen een langere vooropleiding hebben, waardoor in de praktijk de
AOW-leeftijd voor de fysiek zwaardere beroepen gemiddeld lager zou
liggen.&lt;/p&gt;
&lt;p&gt;Daarnaast vind ik dat iemand zelf moet kunnen kiezen of hij/zij op
65-jarige leeftijd (of na het bepaalde aantal werkjaren) wil stoppen met
werken. Voor de "extra" jaren dat iemand doorwerkt (en geen AOW
ontvangt), kan de latere AOW-uitkering worden aangepast.&lt;/p&gt;
&lt;/section&gt;&lt;section id="11-verzekering-zzpers"&gt;&lt;h3&gt;&lt;span&gt;11. Verzekering zzp'ers&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet een verplichte verzekering tegen arbeidsongeschiktheid en
ziekte komen voor alle zelfstandigen zonder personeel (zzp'ers).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Als zelfstandig ondernemer kies je juist voor bepaalde vrijheden en
verantwoordelijkheden, waaronder ook de vrijheid en verantwoordelijkheid
voor keuzes rondom deze verzekeringen. Risico's inschatten is een groot
deel van ondernemen, daar hoort dit ook bij. Het lijkt mij daarom niet
wenselijk dat de overheid hier verplichtingen aan gaat stellen.&lt;/p&gt;
&lt;p&gt;Voor zover ik heb begrepen, is dit vooral een probleem bij
schijnzelfstandigen. Schijnzelfstandigheid is een probleem wat op
zichzelf moet worden aangepakt, niet door een extra verzekering te
verplichten.&lt;/p&gt;
&lt;/section&gt;&lt;section id="12-leenstelsel-studenten"&gt;&lt;h3&gt;&lt;span&gt;12. Leenstelsel studenten&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Het leenstelsel voor studenten moet worden afgeschaft. De basisbeurs
moet weer terugkomen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Onderwijs is heel erg belangrijk voor onze toekomst en moet toegankelijk
zijn voor iedereen met een zo laag mogelijke drempel. Het huidige
leenstelsel werkt juist averechts, mensen voelen extra stress en
onzekerheid over de fincanciële gevolgen van studeren.&lt;/p&gt;
&lt;p&gt;Het terug invoeren van de basisbeurs vind ik een logische stap na dit
mislukte "experiment".&lt;/p&gt;
&lt;p&gt;Daarnaast ben ik wel van mening dat het studentenreisproduct zou moeten
worden aangepast om alleen voor een specifiek traject te gelden, in
plaats van landelijk geldig te zijn, en dan kan dat wellicht zonder de
week-of-weekend-beperking.&lt;/p&gt;
&lt;section id="leerkrediet-in-plaats-van-eerste-vier-jaar"&gt;&lt;h4&gt;&lt;span&gt;Leerkrediet in plaats van eerste vier jaar&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Ik ben zelf best onder de indruk van het Vlaamse leerkrediet-systeem,
wellicht kan dat systeem als inspiratie kan dienen voor het bepalen van
de hoogte van de beurs en het meer passend te maken op
deeltijdopleidingen.&lt;/p&gt;
&lt;p&gt;In dit systeem begint een student begint met 140 punten welke tijdens de
studieloopbaan worden gebruikt en (als alles goed gaat) terugverdiend,
op basis van deze punten is een student gesubsidieerd.&lt;/p&gt;
&lt;p&gt;In het Nederlandse systeem zou men de hoogte van de beurs kunnen bepalen
aan de hand van een gelijkaardig krediet, waarbij voor elke ingeschreven
ECTS-credit een punt wordt gebruikt en bij 60 punten in een schooljaar
de maximale beurs wordt uitgekeerd. Punten worden terugverdiend door het
bijbehorende vak succesvol af te ronden in een schooljaar. Als men een
vak niet succesvol afrond, zijn de punten verloren. Zo lang iemand 60 of
meer punten heeft, kan hij/zij dus nog steeds aanspraak maken op een
volledige beurs, mits ingeschreven voor 60 ECTS-credits.&lt;/p&gt;
&lt;p&gt;In het Vlaamse systeem worden de eerste 60 terugverdiende punten dubbel
terugbetaald, en wordt er na het afronden van een studie 140 punten
afgetrokken van het totaal. Bij een perfecte score zou een student dus
nog precies 60 punten over hebben voor een eventuele tweede studie.&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;section id="13-geld-cultuur"&gt;&lt;h3&gt;&lt;span&gt;13. Geld cultuur&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet meer geld naar kunst en cultuur.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Geen van beide.&lt;/p&gt;
&lt;p&gt;Hierover heb ik zelf niet echt een mening gevormd, vooral omdat ik geen
goed beeld heb van de huidige verdeling van het uitgegveen geld.&lt;/p&gt;
&lt;p&gt;Het beeld dat door een groot deel van de politieke partijen wordt
geschetst is dat vooral de verdeling moet worden verbeterd, maar dat er
niet per se extra geld nodig is.&lt;/p&gt;
&lt;/section&gt;&lt;section id="14-islamitische-immigranten"&gt;&lt;h3&gt;&lt;span&gt;14. Islamitische immigranten&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Nederland moet de grenzen sluiten voor islamitische immigranten.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Mensen weigeren op basis van religie gaat in tegen erg belangrijke
waarden van Nederland (en van mijzelf): de vrijheid van godsdienst en
het recht op een gelijke behandeling.&lt;/p&gt;
&lt;/section&gt;&lt;section id="15-kinderpardon"&gt;&lt;h3&gt;&lt;span&gt;15. Kinderpardon&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;In Nederland opgegroeide kinderen van asielzoekers moeten hier kunnen
blijven (kinderpardon).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Hiervan zijn de precieze details niet gemakkelijk, maar in algemene zijn
geldt wat mij betreft: kinderen moeten beschermd worden.&lt;/p&gt;
&lt;p&gt;Als een kind is opgegroeid in Nederland, is dat zijn of haar thuisbasis.
Door deze gezinnen Nederland te laten verlaten, terwijl de kinderen
Nederlands spreken en deel zijn van de Nederlandse maatschappij, worden
ze een groot deel van hun leven afgenomen.&lt;/p&gt;
&lt;p&gt;Natuurlijk moeten er wel een voorwaarden zijn waaraan voldaan moet
worden, met name door de ouders, maar deze moeten wel eerlijk en
haalbaar zijn. De manier waarop de ouders zich hebben opgesteld tijdens
hun verblijf in Nederland kan daarvoor als uitgangspunt dienen, maar dan
moet dat vanaf het begin ook voor hen duidelijk zijn.&lt;/p&gt;
&lt;/section&gt;&lt;section id="16-onderdak-illegalen"&gt;&lt;h3&gt;&lt;span&gt;16. Onderdak illegalen&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De regering moet gemeenten verbieden illegale vreemdelingen onderdak
te geven.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Wanneer mensen illegaal in Nederland verblijven (reden daargelaten),
moeten ze op een correcte manier worden begeleid om Nederland te
verlaten. Mensen geen onderdak meer (mogen) aanbieden lijkt mij niet een
goede manier om dit te regelen.&lt;/p&gt;
&lt;p&gt;Afgezien van het onmenselijke aspect van het verbieden van het geven van
onderdak, wordt ook het uitzettingsproces bemoeilijkt als deze mensen op
straat moeten leven, en veroorzaakt het juist overlast voor mensen die
hier wel legaal verbijven.&lt;/p&gt;
&lt;/section&gt;&lt;section id="17-hypotheekrente"&gt;&lt;h3&gt;&lt;span&gt;17. Hypotheekrente&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De regeling voor de aftrek van de hypotheekrente moet niet verder
worden aangetast.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;De hypotheekrenteaftrek is samen met de rest van de hypotheekregels,
voor zover ik kan inschatten, nu voor het grootste deel goed geregeld.&lt;/p&gt;
&lt;p&gt;Echter ben ik wel van mening dat er voor de hypotheekrenteaftrek een
maximum mag worden gesteld aan de hoogte van een hypotheek en/of koopsom
waarvoor een hypotheek is aangevraagd, zodat het voordeel bij de juiste
mensen terecht komt.&lt;/p&gt;
&lt;/section&gt;&lt;section id="18-verhuurdersheffing"&gt;&lt;h3&gt;&lt;span&gt;18. Verhuurdersheffing&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Woningcorporaties moeten meer goedkope huurwoningen bouwen. Daarom
moet de belasting die zij betalen over huurwoningen
(verhuurdersheffing) worden afgeschaft.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Geen van beide.&lt;/p&gt;
&lt;p&gt;Van de details rondom deze verhuurdersheffing weet ik niet veel, vooral
om die reden "geen van beide".&lt;/p&gt;
&lt;p&gt;Ik ben het er wel mee eens dat er meer goedkope huurwoningen beschikbaar
zouden moeten komen, maar ik ben er niet van overtuigd dat deze heffing
moet worden afgeschaft. Het lijkt mij logischer als er in plaats daarvan
een gerichtere heffingskorting zou zijn die het gewenste beleid (dus op
het vlak van type en prijs van woningen, maar ook op het vlak van
duurzaamheid en milieuvriendelijkheid) stimuleert.&lt;/p&gt;
&lt;/section&gt;&lt;section id="19-schiphol"&gt;&lt;h3&gt;&lt;span&gt;19. Schiphol&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Luchthaven Schiphol moet kunnen uitbreiden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Elk bedrijf, dus ook Schiphol, moet kunnen uitbreiden en groeien, zo
lang ze zich aan de gestelde regels houden. Voor een luchthaven zijn
er daarbij met name regels over omgevingsfactoren belangrijk, maar zo
lang Schiphol zich daar aan houdt, vind ik het niet nodig dat de
overheid dit zou tegenhouden.&lt;/p&gt;
&lt;p&gt;Als de gestelde regels niet goed genoeg zijn, is dat een ander punt, en
moet daar over worden gepraat.&lt;/p&gt;
&lt;/section&gt;&lt;section id="20-kilometerheffing"&gt;&lt;h3&gt;&lt;span&gt;20. Kilometerheffing&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De regering moet niet het bezit van de auto, maar het aantal gereden
kilometers belasten.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Wat mij betreft is het belangrijk om brandstofverbruik te belasten, niet
kilometers, en dat gebeurt met de accijns op brandstof al.&lt;/p&gt;
&lt;p&gt;Vervuiling heeft te maken met het type en hoeveelheid gebruikte
brandstof, niet direct met het aantal kilometers. Het constant optrekken
en afremmen in een stad is bijvoorbeeld erg vervuilend, maar dat zijn
niet veel kilometers. Door brandstofgebruik te belasten, wordt het
gebruik van zuinigere en minder vervuilende brandstof gebruikende auto's
gestimuleerd.&lt;/p&gt;
&lt;p&gt;Daarnaast is het invoeren van een degelijk systeem waarin niet
gefraudeerd kan worden erg complex en duur, zou er allerlei extra
informatie bij de overheid terecht moeten komen die nu privé is, en
betwijfel ik of dit het autoverbruik van de "grootverbruikers" zou
verminderen. Investeren in het openbaar vervoer lijkt mij meer zinvol.&lt;/p&gt;
&lt;/section&gt;&lt;section id="21-nieuwe-wegen"&gt;&lt;h3&gt;&lt;span&gt;21. Nieuwe wegen&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet meer geld naar de aanleg van nieuwe wegen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Ook hiervoor geldt wat mij betreft dat investeringen in het openbaar
vervoer meer zinvol zijn.&lt;/p&gt;
&lt;p&gt;Op dit moment is het in veel gevallen zo dat je zekerder bent van je
aankomsttijd door met de auto in de file te staan, dan door met de trein
te reizen. Door de vertragingen en gerelateerde problemen op te lossen,
kunnen mensen het openbaar vervoer meer vertrouwen.&lt;/p&gt;
&lt;p&gt;Verder is in de meeste gevallen reizen met auto goedkoper zo gauw je met
meer dan één persoon in een auto zit.&lt;/p&gt;
&lt;p&gt;Het openbaar vervoer moet betrouwbaarder en aantrekkelijker.&lt;/p&gt;
&lt;/section&gt;&lt;section id="22-kolencentrales"&gt;&lt;h3&gt;&lt;span&gt;22. Kolencentrales&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Alle kolencentrales mogen voorlopig open blijven.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Ik snap dat niet alle kolencentrales in een keer gesloten kunnen worden,
maar het lijkt me zeker niet de bedoeling om ze allemaal open te houden.&lt;/p&gt;
&lt;p&gt;Stukje bij beetje, maar zo snel als mogelijk, zouden de kolencentrales
moeten worden gesloten en vervangen door duurzame alternatieven.&lt;/p&gt;
&lt;/section&gt;&lt;section id="23-btw-tarief-vlees"&gt;&lt;h3&gt;&lt;span&gt;23. Btw-tarief vlees&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Voor vlees moet het hoge btw-tarief van 21 procent gaan gelden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Vlees eten op zich is niet ongezond en vlees kan ook op een duurzame
manier worden geproduceerd. Het feit is echter wel dat voor veel mensen
minder vlees eten wel gezonder zou zijn dan de hoeveelheid die ze nu
eten.&lt;/p&gt;
&lt;p&gt;Mensen zouden hiervan bewust worden gemaakt, en zouden moeten leren
herkennen wat hun lichaam nodig heeft, dat is voor iedereen anders.&lt;/p&gt;
&lt;p&gt;Helemaal geen vlees eten is dus wat mij betreft niet nodig, dat is aan
iedereen zelf. Het belastingtarief verhogen naar 21% vind ik daarom geen
goed idee, vlees valt "gewoon" onder voedingsmiddelen en het tarief
hiervoor verhogen zou het minder toegankelijk maken.&lt;/p&gt;
&lt;p&gt;Wat ik wel graag zou zien, is dat de lokale duurzame productie van
voeding wordt gestimuleerd. In plaats van specifiek vlees te belasten,
zie ik daarom liever kortingen voor lokaal en goed geproduceerd voedsel
in het algemeen.&lt;/p&gt;
&lt;/section&gt;&lt;section id="24-voltooid-leven"&gt;&lt;h3&gt;&lt;span&gt;24. Voltooid leven&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Ouderen die vinden dat hun leven voltooid is moeten hulp kunnen
krijgen om een einde aan hun leven te maken.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Als iemand besluit niet meer te willen leven, is dat zijn of haar keuze
die gerespecteerd moet worden, en dat geldt wat mij betreft niet alleen
voor ouderen.&lt;/p&gt;
&lt;p&gt;Wanneer met genoeg zekerheid kan worden vastgesteld dat deze keuze uit
eigen overwegingen is gemaakt en niet op basis van druk of oplosbare
problemen voortkomt, vind ik dat iemand ook hulp moet kunnen krijgen het
leven te beëindigen.&lt;/p&gt;
&lt;p&gt;Wel snap ik dat niet iedereen hier hetzelfde over denkt. In geval van
gewetensbezwaren moet een arts dit wat mij betreft kunnen overdragen aan
een collega-arts.&lt;/p&gt;
&lt;/section&gt;&lt;section id="25-afschaffing-eigen-risico"&gt;&lt;h3&gt;&lt;span&gt;25. Afschaffing eigen risico&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Het eigen risico in de zorg moet worden afgeschaft, ook als dat
betekent dat de premies omhoog gaan.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Een eigen risico heeft in beginsel het doel om een verzekerde
voorzichtiger te laten omgaan met hetgeen verzekerd is. Dit gaat voor
een zorgverzekering niet op, zorg is juist nodig om "voorzichtig" met je
lichaam en geest om te gaan en zou niet belemmerd moeten worden.&lt;/p&gt;
&lt;p&gt;Het eigen risico heeft verschillende ongewenste bijeffecten. De
belangrijkste zijn naar mijn mening:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;mensen met een laag inkomen zijn minder snel geneigd om behandeling
    te zoeken uit angst voor te veel kosten,&lt;/li&gt;
&lt;li&gt;chronisch zieken weten aan het begin van elk jaar al dat ze het
    eigen risico bij de zorgkosten moeten optellen, waardoor voor deze
    mensen het eigen risico feitelijk gewoon een hogere premie betekent.&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;&lt;section id="26-landelijk-zorgfonds"&gt;&lt;h3&gt;&lt;span&gt;26. Landelijk zorgfonds&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet een landelijk zorgfonds komen, zodat het stelsel van
particuliere zorgverzekeraars kan verdwijnen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Eens.&lt;/p&gt;
&lt;p&gt;Het huidige stelsel met particuliere zorgverzekeraars werkt niet goed.
Zorgverzekeringen zijn ontzettend duur en sprake van marktwerking is er
op papier wel maar in de praktijk niet.&lt;/p&gt;
&lt;p&gt;Door de basiszorgverzekering via een landelijk zorgfonds te regelen,
heeft iedereen tegen een eerlijke vergoeding (weer) toegang tot zorg, en
kan gelijk ook de discussie rondom vrije zorg-/ziekenhuiskeuze worden
afgesloten.&lt;/p&gt;
&lt;/section&gt;&lt;section id="27-defensie-uitgaven"&gt;&lt;h3&gt;&lt;span&gt;27. Defensie-uitgaven&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;De uitgaven voor defensie moeten de komende jaren fors omhoog naar 2
procent van het nationale inkomen (de NAVO-norm).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Geen van beide.&lt;/p&gt;
&lt;p&gt;In principe hebben we met de andere NAVO-lidstaten de afspraak gemaakt
om 2% van het Bruto Binnenlands Product te besteden aan defensie, in de
praktijk zijn er echter maar enkele landen die dit halen, de meeste
Europese landen zitten tussend de 1% en 1,5%.&lt;/p&gt;
&lt;p&gt;Daarnaast is het met de huidige opstelling van Rusland en Noord-Korea,
het voorbereid moeten zijn op eventuele anti-terroristische ingrepen en
het volgens vele berichten verouderde en achterstallig onderhouden
legermaterieel wel te verklaren dat er meer geld beschikbaar zou moeten
komen voor defensie.&lt;/p&gt;
&lt;p&gt;Echter kan ik met de informatie die ik heb niet inschatten hoeveel
daadwerkelijk nodig is (en dus ook niet of die 2% van BBP reëel is) om
voor ons en onze NAVO-bondgenoten alles veilig en in vrede te houden,
want dat moet het doel blijven: de vrede bewaren.&lt;/p&gt;
&lt;/section&gt;&lt;section id="28-europees-leger"&gt;&lt;h3&gt;&lt;span&gt;28. Europees leger&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Er moet een Europees leger komen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Hoewel dit als een plan klinkt waarmee tijd en geld bespaard kan worden,
en waarmee Europa serieuzer kan optreden wanneer dat nodig is, denk ik
dat dit in de praktijk niet zo zou uitpakken. Met name door de
onzekerheid rondom de EU op dit moment, denk ik dat een project als dit
nu opstarten eerder zal leiden tot extra meningsverschillen en meer
anti-Europa-gevoelens bij de burgers.&lt;/p&gt;
&lt;p&gt;Het lijkt mij wel een goed idee om te kijken naar nauwere samenwerking
met de Europese landen op dit vlak, en misschien kunnen gezamenlijke
legerplannen eerst op een kleinere schaal (zoals de BeNeLux) worden
ervaren.&lt;/p&gt;
&lt;/section&gt;&lt;section id="29-ontwikkelingshulp"&gt;&lt;h3&gt;&lt;span&gt;29. Ontwikkelingshulp&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Nederland moet meer geld uitgeven voor de ontwikkeling van arme
landen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Geen van beide.&lt;/p&gt;
&lt;p&gt;Met mijn beperkte kennis over het huidige effect en de verdeling van
uitgaven voor ontwikkelingshulp kan ik niet aangeven of er meer of
minder uitgegeven moet worden.&lt;/p&gt;
&lt;p&gt;Zo lang de ontwikkelingshulp is gericht op de lange termijn, door het
vergroten van de kennis en verbetering van de marktpositie van een
ontwikkelingsland, zodat een land dit op termijn geheel zelf verder kan
doorzetten, denk ik dat het geld goed besteed is.&lt;/p&gt;
&lt;/section&gt;&lt;section id="30-eu-lidmaatschap"&gt;&lt;h3&gt;&lt;span&gt;30. EU-lidmaatschap&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Nederland moet uit de Europese Unie (EU) stappen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Antwoord:&lt;/strong&gt; Oneens.&lt;/p&gt;
&lt;p&gt;Ik denk dat een verenigd Europa heel belangrijk is voor een klein land
als Nederland. De interne markt en het vrije verkeer van personen en
goederen is van groot belang voor ons, dit kwijtraken zou dan ook een
groot verlies zijn.&lt;/p&gt;
&lt;p&gt;Daarnaast is de onderhandelingspositie van een verenigd Europa met
andere grote partijen, zoals de Verenigde Staten, een stuk beter als het
aankomt op handelsverdragen en het grootschalig aanpakken van de
milieuproblematiek.&lt;/p&gt;
&lt;p&gt;Dat betekent niet dat ik vind dat de EU op dit moment goed werkt.&lt;/p&gt;
&lt;p&gt;Ik ben, bijvoorbeeld, van mening dat het huidige breed verspreide
anti-vluchtelingen-sentiment voor een groot deel te wijten is aan
slechte voorbereiding en daardoor ad-hoc gemaakte beslissingen binnen de
EU. Omdat het gaat om mensen die van buiten de EU-grenzen komen, en er
een oplossing moet zijn waar alle EU-leden mee kunnen en willen helpen,
vind ik dat het de taak van de EU is om haar leden hier voldoende op
voor te bereiden.&lt;/p&gt;
&lt;p&gt;Er zijn veranderingen nodig, allereerst op het vlak van transparantie,
maar binnen de EU moet ook zeker beter voorbereid en geanticipeerd
worden op toekomstige gebeurtenissen, zodat beslissingen gezamenlijk
kunnen worden gemaakt voor de tijd.&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;</content><category term="article"></category></entry><entry><title>Ch-ch-ch-ch-changes</title><link href="https://tim.wienk.name/nl/articles/website-changes" rel="alternate"></link><published>2017-03-04T00:00:00+01:00</published><updated>2017-03-04T00:00:00+01:00</updated><author><name>Tim Wienk</name></author><id>tag:tim.wienk.name,2017-03-04:/nl/articles/website-changes</id><summary type="html">&lt;p&gt;Mijn (nieuwe) website is ondertussen een paar maanden
online, ik ben redelijk tevreden met de uitkomst en wilde
daarom uitleggen hoe deze website tot stand is gekomen, met
aandacht voor de redenen en technische details van een
aantal beslissingen.&lt;/p&gt;</summary><content type="html">&lt;section id="curriculum-vitae"&gt;&lt;h2&gt;&lt;span&gt;Curriculum vitae&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Zo nu en dan wordt je weer eens herinnerda an je cv, soms door jezelf en
soms omdat andere mensen om je heen op zoek zijn naar een baan en/of
zelf hun cv bijwerken. In de meeste gevallen besluit ik dat ik mijn cv
ook moet bijwerken maar doe dat uiteindelijk toch niet. Echter, deze
keer, misschien omdat er veel dingen om mijn heen (gaan) veranderen de
komende tijd, is het me toch eindelijk gelukt.&lt;/p&gt;
&lt;p&gt;Mijn verouderde CV was achteraf niet eens zo slecht als ik had verwacht.
Wat ik vond was een document met een half afgeronde LaTeX-lay-out, met
het standaard (niet erg mooie) Latin Modern-lettertype, en werkervaring
totaan een aantal jaren gelden. Na het herschrijven van een aantal delen
van de cv, heb ik de lay-out afgerond en de inhoud ook verder
bijgewerkt.&lt;/p&gt;
&lt;aside&gt;
&lt;h3 id="mijn-geupdatete-cv"&gt;&lt;span&gt;Mijn geüpdatete cv&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Je kunt mijn cv vinden op &lt;a href="/nl/cv"&gt;een aparte pagina&lt;/a&gt;, maar voor het geval je
geïnteresseerd bent, is het hier ook te vinden:&lt;/p&gt;
&lt;ul class="section"&gt;
    &lt;li&gt;
        &lt;span class="language"&gt;Nederlands&lt;/span&gt;
        &lt;span class="separator"&gt;–&lt;/span&gt;
        &lt;a class="title" href="https://tim.wienk.name/media/cv/timwienk-cv-nederlands.pdf"&gt;Download cv&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;span class="language"&gt;Engels&lt;/span&gt;
        &lt;span class="separator"&gt;–&lt;/span&gt;
        &lt;a class="title" href="https://tim.wienk.name/media/cv/timwienk-cv-english.pdf"&gt;Download cv&lt;/a&gt;
    &lt;/li&gt;
&lt;/ul&gt;


&lt;/aside&gt;
&lt;p&gt;Als volgende stap wilde ik mijn CV op mijn persoonlijke website
beschikbaar maken om er ook snel bij te kunnen. Goed idee, behalve dat
mijn website er nogal... "oud" uit zag. Het bevatte nauwelijks nuttige
informatie en zag er nog niet eens fatsoenlijk uit.&lt;/p&gt;
&lt;p&gt;Mijn vorige website was oorspronkelijk gebouwd met &lt;a href="https://keetology.com/"&gt;Mark "keeto"
Obcena&lt;/a&gt;'s &lt;a href="https://github.com/keeto/raccoon"&gt;Raccoon&lt;/a&gt; framework, wat erg interessant was op dat
moment, maar na een aantal serververhuizingen, is mijn website
uitgekleed en werd het aangeboden via een oude testinstallatie van het
platform dat we ontwikkelen bij het bedrijf waar ik werk: niet ideaal.&lt;/p&gt;
&lt;p&gt;Gezien ik nu bij was met mijn "nieuwe" cv, besloot ik om dat als
basisconcept te gebruiken voor een nieuwe website. De website hoefde er
niet geweldig uit te zien, maar het moest er wel redelijk uitzien,
simpel zijn en als belangrijkste zorgenvrij.&lt;/p&gt;
&lt;/section&gt;&lt;section id="zorgenvrij"&gt;&lt;h2&gt;&lt;span&gt;Zorgenvrij&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Vanwege mijn historie met het beheren van mijn eigen website, wilde ik
dat mijn nieuwe website simpel zou zijn en niet meer onderhoud nodig zou
hebben dan het toevoegen van inhoud (voor het geval ik dat wel zou
doen). Echter wilde ik het wel nog steeds zelf hosten, zodat ik anderen
niet hoef te vertrouwen er goed mee om te gaan.&lt;/p&gt;
&lt;p&gt;Dit heeft me even aan het denken gezet.&lt;/p&gt;
&lt;p&gt;Hiermee had ik bij voorbaat het gebruik van diensten van derde partijen
al uitgesloten, en ook het gebruik van iets experimenteels, iets dat
geregeld veiligheidsupdates nodig heeft of iets dat op een andere manier
onstabiel zou kunnen zijn. Het betekende feitelijk dat ik de meeste
bestaande website-software niet kon gebruiken.&lt;/p&gt;
&lt;p&gt;Ik trok hieruit de conclusie dat wat ik nodig had een statische website
is. Gelukkig betekent een statische website niet dat het niet
gegenereerd kan worden door iets minder statisch, en er is tegenwoordig
een behoorlijke hoeveelheid software om uit te kiezen.&lt;/p&gt;
&lt;aside&gt;
&lt;h3 id="statische-websites"&gt;&lt;span&gt;Statische websites&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;De meeste websites tegenwoordig worden "on the fly" gegenereerd door een
dynamisch systeem: een webrequest komt binnen, informatie wordt uit een
database gehaald, door verschillende lagen gestuurd en aan het einde
komt er HTML uit.&lt;/p&gt;
&lt;p&gt;Bij statische websites, echter, is de HTML van te voren al opgeslagen in
bestanden, en het enige wat er hoeft te gebeuren voor een webrequest is
het opsturen van dat van te voren gemaakte HTML-bestand.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Een statische website zou zorgen voor een gemakkelijke en efficiënte
website, zonder dat er iets speciaals nodig is dat kapot kan gaan. Zo
lang de webserver werkt, werkt de website, wat erg handig is gezien ik
toch al andere redenen heb om mijn servers te onderhouden, waardoor het
feitelijk geen extra werk is.&lt;/p&gt;
&lt;p&gt;Het enige dat ik nu moest doen was software vinden om de statische
website mee te genereren dat aan mijn wensen voor flexibiliteit voldoet.&lt;/p&gt;
&lt;/section&gt;&lt;section id="pelican"&gt;&lt;h2&gt;&lt;span&gt;Pelican&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Na wat zoeken en vergelijken, ben ik uitgekomen op een Python-gebaseerde
statische website generator genaamd &lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;. Het lijkt vrij stabiel
en goed georganiseerd, het is erg uitbreidbaar en is vrij gemakkelijk te
gebruiken en configureren.&lt;/p&gt;
&lt;aside&gt;
&lt;h3 id="pelican_1"&gt;&lt;span&gt;Pelican&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt; is een statische website generator, geschreven in Python,
die geen database of server-side logica nodig heeft. Een aantal
kenmerken zijn:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;schrijf je inhoud in reStructuredText-, Markdown- of AsciiDoc-formaat,&lt;/li&gt;
&lt;li&gt;volledig statische uitvoer die gemakkelijke overal te hosten is,&lt;/li&gt;
&lt;li&gt;thema's die kunnen worden aangepast via Jinja templates,&lt;/li&gt;
&lt;li&gt;inhoud kan gepubliceerd worden in verschillende talen,&lt;/li&gt;
&lt;li&gt;atom-/RSS-feeds,&lt;/li&gt;
&lt;li&gt;codesyntaxismarkering,&lt;/li&gt;
&lt;li&gt;importeren van WordPress, Dotclear, RSS-feeds en andere diensten,&lt;/li&gt;
&lt;li&gt;modulair pluginsysteem en bijbehorende plugin-repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Documentatie is beschikbaar op &lt;a href="https://docs.getpelican.com"&gt;docs.getpelican.com&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;De manier waarop het meerdere talen voor pagina's en artikelen
implementeert, werkt goed en is flexibel genoeg om in templates gebruikt
te worden op de manier waarop ik het wil, wat belangrijk is omdat ik
de website-inhoud in zowel Nederlands als Engels wil hebben.&lt;/p&gt;
&lt;section id="installatie"&gt;&lt;h3&gt;&lt;span&gt;Installatie&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Mijn webserver heeft Python 2.7 geïnstalleerd met PIP 1.5.6, de versies
beschikbaar in Debian Jessie. Het &lt;code&gt;python-pip&lt;/code&gt;-pakket installeren is
genoeg als dit nog niet is geïnstalleerd.&lt;/p&gt;
&lt;p&gt;Om met Pelican te beginnen heb ik een virtualenv opgezet en heb
vervolgens daarin de benodigde Python-pakketten geïnstalleerd:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python -m virtualenv ~/website/env
. ~/website/env/bin/activate

pip install pelican Markdown
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;De in Debian Jessie beschikbare versie van PIP geeft twee
compilatiefouten bij het installeren, terwijl deze fouten in nieuwere
versies van PIP niet getoond worden. De fouten zijn niet belangrijk en
je hebt er geen last van.&lt;/p&gt;
&lt;p&gt;De situatie hierbij is dat Jinja2 een aantal optionele functies heeft
die syntaxis gebruike die alleen geldig is in Python 3.5+, omdat alle
bestanden worden gecompileerd tijdens de installatie, worden er fouten
gegenereerd bij de bestanden met deze functies (&lt;code&gt;asyncsupport.py&lt;/code&gt; en
&lt;code&gt;asyncfilters.py&lt;/code&gt;).&lt;/p&gt;
&lt;/section&gt;&lt;section id="de-website-genereren"&gt;&lt;h3&gt;&lt;span&gt;De website genereren&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Ik heb de website opgezet in &lt;code&gt;~/website/srv&lt;/code&gt; (meer over de configuratie
hieronder). Wanneer de configuratie is uitgevoerd en er inhoud
beschikbaar is, is het genereren van de website niets meer dan &lt;code&gt;pelican&lt;/code&gt;
aanroepen binnen de virtualenv.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;. ~/website/env/bin/activate
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/website/srv
pelican
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Echter, gezien ik er niet elke keer aan wil moeten denken om de
virtualenv te activeren en gezien ik de website ook wil kunnen genereren
vanuit een andere directory waar ik toevallig op dat moment bezig ben,
heb ik een simpel &lt;code&gt;run&lt;/code&gt;-script opgezet.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="ch"&gt;#!/home/tim/website/env/bin/python&lt;/span&gt;
&lt;span class="c1"&gt;# -*- coding: utf-8 -*-&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pelican&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;directory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;realpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__file__&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;directory&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getcwd&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pelican&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pelican&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Om de website te genereren, roep ik nu gewoon aan:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;~/website/srv/run
&lt;/pre&gt;&lt;/div&gt;


&lt;/section&gt;&lt;section id="configuratie"&gt;&lt;h3&gt;&lt;span&gt;Configuratie&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Na het installeren, is de initiële configuratie erg gemakkelijk op te
zetten met &lt;code&gt;pelican-quickstart&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkdir ~/website/srv
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/website/srv

pelican-quickstart
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ik heb "nee" geantwoord op vragen over extra scripts, en had daarna de
volgende bestanden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;content&lt;/code&gt; &lt;em&gt;(directory)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;output&lt;/code&gt; &lt;em&gt;(directory)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pelicanconf.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;publishconf.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ik zag geen reden voor een losse publicatie-configuratie in mijn geval,
dus ik heb de instellingen van &lt;code&gt;publishconf.py&lt;/code&gt; toevoegd aan
&lt;code&gt;pelicanconf.py&lt;/code&gt; en daarna de eerste verwijderd.&lt;/p&gt;
&lt;p&gt;De documentatie over de configuratie is goed en uitgebreid en de
configuratie is op zichzelf ook vrij logisch. Je kunt mijn &lt;a href="https://github.com/timwienk/website/blob/master/pelicanconf.py"&gt;configuratie
op Github&lt;/a&gt; vinden, maar ik zal er ook hier verder op in gaan (vooral
voor het geval ik zelf toch nog een herinnering nodig heb - maar
misschien helpt het iemand anders ook).&lt;/p&gt;
&lt;p&gt;Aan het begin heb ik een &lt;code&gt;plugins&lt;/code&gt;-directory gemaakt als toevoeging aan
de bestaande directories en heb de volgende basis-instellingen gedaan:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;AUTHOR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Tim Wienk&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;SITENAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Tim.Wienk.name&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;SITEURL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://tim.wienk.name&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;RELATIVE_URLS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;

&lt;span class="n"&gt;PATH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;content&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;PLUGIN_PATHS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;plugins&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;OUTPUT_PATH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;output/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;DELETE_OUTPUT_DIRECTORY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;

&lt;span class="n"&gt;TIMEZONE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Europe/Amsterdam&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;DEFAULT_LANG&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;en&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;DEFAULT_DATE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;fs&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;DEFAULT_DATE_FORMAT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%Y-%m-&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ik wilde de website in zowel Nederlands als Engels en ik besloot dat ik
veel van Pelican's standaardpagina's niet nodig had.&lt;/p&gt;
&lt;p&gt;Het leek mij het meest logische om de website gewoon op te delen in een
&lt;code&gt;nl&lt;/code&gt;- en een &lt;code&gt;en&lt;/code&gt;-sectie, om alle Markdown-bestanden in een directory
per sectie te hebben, en ik wilde een "afgeschermde" directory om
informatie in te bewaren voor eventuele plugins.&lt;/p&gt;
&lt;p&gt;Verder leek het me gemakkelijk om alle pagina's (en artikelen) op te
laten slaan als &lt;code&gt;index.html&lt;/code&gt;-bestanden in hun eigen directories. Als ik
dan wilde, kan ik gemakkelijk paden herschrijven in de
webserver-configuratie om de &lt;code&gt;/&lt;/code&gt;- en &lt;code&gt;/index.html&lt;/code&gt;-achtervoegsels er af
te halen.&lt;/p&gt;
&lt;p&gt;Om deze dingen te bereiken, heb ik de volgende configuratie toegevoegd:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;PAGE_PATHS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;en&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;nl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;ARTICLE_PATHS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;en/articles&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;nl/articles&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;STATIC_PATHS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;STATIC_EXCLUDES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;ARTICLE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{lang}&lt;/span&gt;&lt;span class="s1"&gt;/articles/&lt;/span&gt;&lt;span class="si"&gt;{slug}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;ARTICLE_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{lang}&lt;/span&gt;&lt;span class="s1"&gt;/articles/&lt;/span&gt;&lt;span class="si"&gt;{slug}&lt;/span&gt;&lt;span class="s1"&gt;/index.html&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;ARTICLE_LANG_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ARTICLE_URL&lt;/span&gt;
&lt;span class="n"&gt;ARTICLE_LANG_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ARTICLE_SAVE_AS&lt;/span&gt;
&lt;span class="n"&gt;DRAFT_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{lang}&lt;/span&gt;&lt;span class="s1"&gt;/articles/&lt;/span&gt;&lt;span class="si"&gt;{slug}&lt;/span&gt;&lt;span class="s1"&gt;/draft.html&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;DRAFT_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{lang}&lt;/span&gt;&lt;span class="s1"&gt;/articles/&lt;/span&gt;&lt;span class="si"&gt;{slug}&lt;/span&gt;&lt;span class="s1"&gt;/draft.html&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;DRAFT_LANG_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DRAFT_URL&lt;/span&gt;
&lt;span class="n"&gt;DRAFT_LANG_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DRAFT_SAVE_AS&lt;/span&gt;
&lt;span class="n"&gt;PAGE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{lang}&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{slug}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;PAGE_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{lang}&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{slug}&lt;/span&gt;&lt;span class="s1"&gt;/index.html&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;PAGE_LANG_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PAGE_URL&lt;/span&gt;
&lt;span class="n"&gt;PAGE_LANG_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PAGE_SAVE_AS&lt;/span&gt;
&lt;span class="n"&gt;ARCHIVES_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;AUTHOR_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;INDEX_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;AUTHORS_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;CATEGORY_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;CATEGORIES_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;TAG_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;TAGS_SAVE_AS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Als volgende punt wilde ik er voor zorgen dat ik niet meer informatie
per pagina hoef aan te geven dan nodig, maar daarbij wilde ik er wel nog
volledige controle over.&lt;/p&gt;
&lt;p&gt;Ik heb een aantal opties voor categorieën uitgeschakeld en hoopte om
alle relevante informatie uit het pad te kunnen halen met de
&lt;code&gt;PATH_METADATA&lt;/code&gt;-instelling. Zoals verwacht bleek niet alles op die
manier te doen, dus is er ook nog extra metadata geconfigureerd.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;USE_FOLDER_AS_CATEGORY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;span class="n"&gt;DISPLAY_CATEGORIES_ON_MENU&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;span class="n"&gt;DEFAULT_PAGINATION&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;span class="n"&gt;DEFAULT_CATEGORY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;article&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;SLUG_SUBSTITUTIONS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;and&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;PATH_METADATA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;(?P&amp;lt;lang&amp;gt;[a-z]&lt;/span&gt;&lt;span class="si"&gt;{2}&lt;/span&gt;&lt;span class="s1"&gt;)/(?:articles/(?P&amp;lt;date&amp;gt;\d&lt;/span&gt;&lt;span class="si"&gt;{4}&lt;/span&gt;&lt;span class="s1"&gt;\d&lt;/span&gt;&lt;span class="si"&gt;{2}&lt;/span&gt;&lt;span class="s1"&gt;\d&lt;/span&gt;&lt;span class="si"&gt;{2}&lt;/span&gt;&lt;span class="s1"&gt;)\.)?(?P&amp;lt;slug&amp;gt;.*)\.[a-z]{1,4}&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;EXTRA_PATH_METADATA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/index.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;en/index.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;en&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;nl/index.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;nl/index.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;nl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/error/400.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;error/400.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;status&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hidden&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/error/401.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;error/401.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;status&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hidden&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/error/403.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;error/403.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;status&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hidden&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/error/404.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;error/404.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;status&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hidden&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/error/410.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;error/410.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;status&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hidden&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;en/error/500.md&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_as&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;error/500.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;status&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hidden&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Natuurlijk was het allemaal te makkelijk geweest als dit allemaal zomaar
zou werken. Ik liep tegen een probleem op waarbij Pelican fouten
teruggaf bij het genereren van pagina's zonder een datum in het pad,
ookal was de datum als optioneel onderdeel aangegeven in de reguliere
expressie.&lt;/p&gt;
&lt;p&gt;Om hier omheen te werken, heb ik de relevante functie lokaal aangepast
("monkey patching") in het &lt;code&gt;run&lt;/code&gt;-script dat ik heb gemaakt om de
website-generatie heen. (&lt;strong&gt;Aanpassing&lt;/strong&gt; - Ondertussen heb ik &lt;a href="https://github.com/getpelican/pelican/pull/2117"&gt;deze patch
ingediend&lt;/a&gt; bij het Pelican-project.)&lt;/p&gt;
&lt;aside&gt;
&lt;h4 id="monkey-patching"&gt;&lt;span&gt;Monkey patching&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Met "monkey patching" wordt bedoeld het aanpassen van code van een derde
partij (meestal een deel van een klasse of module) om lokaal om een
specifieke kwestie heen te werken.&lt;/p&gt;
&lt;p&gt;Dit leidt vaak tot problemen bij het bijwerken van software, dus
voorzichtigheid is geboden bij het maken van dit soort lokale
wijzigingen.&lt;/p&gt;
&lt;/aside&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pelican&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse_path_metadata&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="n"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;basename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;splitext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;subdir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;checks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;FILENAME_METADATA&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;PATH_METADATA&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;source_path&lt;/span&gt;&lt;span class="p"&gt;)]:&lt;/span&gt;
            &lt;span class="n"&gt;checks&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;USE_FOLDER_AS_CATEGORY&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;checks&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?P&amp;lt;category&amp;gt;.*)&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subdir&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;regexp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;checks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;regexp&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;regexp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="c1"&gt;# .items() for py3k compat.&lt;/span&gt;
                    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdict&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
                        &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# metadata must be lowercase&lt;/span&gt;
                        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                                &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                            &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt;

&lt;span class="n"&gt;pelican&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readers&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse_path_metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parse_path_metadata&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Nu er een werkende basis was, ben ik door de (vrij uitgebreide)
verzameling van plugins gegaan. Ik heb daarvan "neighbors", voor
volgende/vorige artikel-functionaliteit, en "touch", zodat bestanden een
relevante wijzigingsdatum hebben (nuttig voor browser caches)
toegevoegd.&lt;/p&gt;
&lt;p&gt;Voor het genereren van een sitemap, de projectenpagina en ondersteuning
voor HTML-secties heb ik nog wat specifieker werk gedaan:&lt;/p&gt;
&lt;section id="sitemap"&gt;&lt;h4&gt;&lt;span&gt;Sitemap&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Voor het generern van een sitemap heb ik de "sitemap"-plugin genomen en
gedeeltelijk aangepast om meer differentiatie toe te voegen voor de
gebruikte veranderingsfrequenties en prioriteiten gebaseerd op het type
pagina of bestand.&lt;/p&gt;
&lt;/section&gt;&lt;section id="github-bijdragen"&gt;&lt;h4&gt;&lt;span&gt;Github-bijdragen&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Een aanvullende functie die ik wilde, om de projectenpagina er wat
interessanter uit te laten zien, was een lijst met daadwerkelijke
Github-project-bijdragen, in plaats van alleen een lijst met projecten
of de activiteit van projecten. Hiervoor heb ik een simpele
"githubcontributions"-plugin gemaakt, welke de relevante informatie
ophaalt (en in een cache bewaard).&lt;/p&gt;
&lt;p&gt;De reden voor de cache is dat ik tegen een situatie opliep bij inactieve
repositories, waarbij de eerste keer aanroepen geen informatie
teruggeeft en de volgende keer aanroepen een paar seconden moest
wachten, waardoor het ophalen van deze informatie voor alle projecten
erg lang kon duren, wat er weer voor zorgde dat het genereren van de
website zelf erg lang kon duren.&lt;/p&gt;
&lt;/section&gt;&lt;section id="html-secties"&gt;&lt;h4&gt;&lt;span&gt;HTML-secties&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Ik heb een simpele &lt;a href="https://github.com/timwienk/website/blob/master/plugins/markdown_customsection/__init__.py"&gt;"customsection"-extensie&lt;/a&gt; voor Markdown gemaakt,
deels gebaseerd op een bestaande "sections"-extensie, om delen van de
inhoud in secties te kunnen indelen en om titelniveaus te hernummeren.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;PLUGINS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;neighbors&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;githubcontributions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;touch&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sitemap&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;theme&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;THEME_STATIC_DIR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;MARKDOWN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;extensions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;extra&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;headerid&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;meta&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;plugins.markdown_customsection&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;extension_configs&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;codehilite&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="s1"&gt;&amp;#39;linenums&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;&amp;#39;guess_lang&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;&amp;#39;css_class&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;code&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;output_format&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;xhtml5&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;JINJA_ENVIRONMENT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;extensions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;jinja2.ext.i18n&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;FEED_ALL_ATOM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;atom.xml&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;CATEGORY_FEED_ATOM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;span class="n"&gt;AUTHOR_FEED_ATOM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;span class="n"&gt;AUTHOR_FEED_RSS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;span class="n"&gt;TRANSLATION_FEED_ATOM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s1"&gt;/atom.xml&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;SITEMAP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;format&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;extra_files&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;media/cv/timwienk-cv-nederlands.pdf&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;media/cv/timwienk-cv-english.pdf&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Het enige wat nog overblijft is wat andere configuratie die wordt
gebruikt door plugins of in thema-templates. Voor de volledigheid:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;date&lt;/span&gt;

&lt;span class="n"&gt;SOCIAL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;GitHub&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://github.com/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;LinkedIn&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.linkedin.com/in/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/in/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Twitter&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://twitter.com/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;@timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Facebook&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.facebook.com/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Google+&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://plus.google.com/+TimWienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;+timwienk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;GITHUB_USER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;timwienk&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;FACEBOOK_USER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;timwienk&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;TWITTER_USER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;timwienk&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;FIRST_YEAR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1989&lt;/span&gt;
&lt;span class="n"&gt;LAST_YEAR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;today&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;

&lt;span class="n"&gt;GOOGLE_ANALYTICS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;UA-7267499-1&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;GOOGLE_ANALYTICS_ID_SCRIPT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/scripts/id&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;/section&gt;&lt;/section&gt;&lt;section id="thema"&gt;&lt;h3&gt;&lt;span&gt;Thema&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Pelican-thema's bestaan uit een verzameling van statische bestanden en
Jinja2-templates. Ik vond het erg gemakkelijk op te zetten, en omdat je
specifieke templates kunt instellen voor specifieke pagina's, is het
makkelijk om verschillen aan te brengen voor "speciale" pagina's met de
&lt;code&gt;extends&lt;/code&gt;- en &lt;code&gt;block&lt;/code&gt;-templatefuncties.&lt;/p&gt;
&lt;p&gt;Ik heb besloten om geen dingen als gettext toe te voegen om vertalingen
netjes te organiseren, omdat mijn website vrij klein is en ik niet
verwacht meer talen of vertaalbare vaste tekst toe te voegen. Misschien
verander ik dit in de toekomst nog, maar voor nu vond ik het goed genoeg
hiervoor taalafhankelijke dingen in de template te doen.&lt;/p&gt;
&lt;p&gt;Ik denk niet dat het helpt om verder de diepte in te gaan over het
thema, je kunt het &lt;a href="https://github.com/timwienk/website/tree/master/theme"&gt;thema op Github&lt;/a&gt; vinden indien je geïnteresseerd
bent in de details.&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;section id="apache-http-server"&gt;&lt;h2&gt;&lt;span&gt;Apache HTTP Server&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Om mijn website beschikbaar te maken, ben ik bij de Apache HTTP Server
gebleven. Ookal vind ik Nginx's manier van werken erg goed en heeft het
zich bewezen als erg snel en efficiënt, vond ik deze dingen toch niet
erg belangrijk in mijn geval, en gezien op mijn webserver de Apache HTTP
Server al draaide voor andere projecten, was de keuze niet zo moeilijk.&lt;/p&gt;
&lt;p&gt;Het grootste deel van de configuratie was alleen het opzetten van een
VirtualHost met de juiste instellingen:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="s"&gt;*:443&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nb"&gt;ServerName&lt;/span&gt; tim.wienk.name
    &lt;span class="nb"&gt;ServerAdmin&lt;/span&gt; webmaster@localhost

    &lt;span class="nb"&gt;DocumentRoot&lt;/span&gt; &lt;span class="sx"&gt;/srv/www/tim.wienk.name/http&lt;/span&gt;

    &lt;span class="nb"&gt;ErrorLog&lt;/span&gt;  ${APACHE_LOG_DIR}/error.log
    &lt;span class="nb"&gt;CustomLog&lt;/span&gt; ${APACHE_LOG_DIR}/access.log combined

    &lt;span class="nb"&gt;SSLEngine&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;
    &lt;span class="nb"&gt;SSLHonorCipherOrder&lt;/span&gt;   &lt;span class="k"&gt;on&lt;/span&gt;
    &lt;span class="nb"&gt;SSLUseStapling&lt;/span&gt;        &lt;span class="k"&gt;on&lt;/span&gt;
    &lt;span class="nb"&gt;SSLCertificateFile&lt;/span&gt;    &lt;span class="sx"&gt;/srv/acme/certs/tim.wienk.name.crt&lt;/span&gt;
    &lt;span class="nb"&gt;SSLCertificateKeyFile&lt;/span&gt; &lt;span class="sx"&gt;/srv/acme/private/tim.wienk.name.key&lt;/span&gt;
    &lt;span class="nb"&gt;BrowserMatch&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;MSIE [2-6]&amp;quot;&lt;/span&gt; nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    &lt;span class="nb"&gt;BrowserMatch&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;MSIE [17-9]&amp;quot;&lt;/span&gt; ssl-unclean-shutdown
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Over het algemeen probeer ik de gegevens te bewaren op de in FHS
bepaalde locaties, dat houdt alles duidelijk en interoperabel. Dat
gezegd hebbende, &lt;code&gt;/srv/www/tim.wienk.name/http&lt;/code&gt; is in dit geval een
symbolische link naar &lt;code&gt;/home/tim/website/srv/output&lt;/code&gt; om de dingen in
mijn home-directory te houden.&lt;/p&gt;
&lt;aside&gt;
&lt;h3 id="filesystem-hierarchy-standard"&gt;&lt;span&gt;Filesystem Hierarchy Standard&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;De bepaalde directory-structuur voor Unix-achtige besturingssystemen.
Het voorziet in scheiding op basis van het doel van de opgeslagen
informatie, waardoor het makkelijker is om de veiligheid van informatie
te beheren en voorspellen en waardoor ook het scheiden van
bestandssystemen makkelijker wordt.&lt;/p&gt;
&lt;p&gt;Als voorbeeld, het &lt;code&gt;/srv&lt;/code&gt;-bestandssysteem is bedoeld voor het bewaren
van informatie voor diensten die door het systeem geleverd worden.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Voor SSL heb ik gekozen voor het de Let's Encrypt ACME-opzet, hoewel ik
het certificaatbeheer wel zo veel mogelijk heb losgekoppeld van de
webserver.&lt;/p&gt;
&lt;aside&gt;
&lt;h3 id="automatic-certificate-management-environment"&gt;&lt;span&gt;Automatic Certificate Management Environment&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;ACME is een protocol om te helpen bij het automatiseren van de aanvraag,
authenticatie en uitgifte van (gratis) SSL-certificaten, ontworpen als
onderdeel van de "HTTPS overal"-initiatieven. Voor zover ik weet, wordt
het op dit moment alleen gebruikt door de ontwerper &lt;a href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Als deel van de Pelican-opzet heb ik een aantal simpele foutdocumenten
gegenereerd, deze zijn ook hier ingesteld:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nb"&gt;ErrorDocument&lt;/span&gt; &lt;span class="m"&gt;400&lt;/span&gt; &lt;span class="sx"&gt;/error/400.html&lt;/span&gt;
    &lt;span class="nb"&gt;ErrorDocument&lt;/span&gt; &lt;span class="m"&gt;401&lt;/span&gt; &lt;span class="sx"&gt;/error/401.html&lt;/span&gt;
    &lt;span class="nb"&gt;ErrorDocument&lt;/span&gt; &lt;span class="m"&gt;403&lt;/span&gt; &lt;span class="sx"&gt;/error/403.html&lt;/span&gt;
    &lt;span class="nb"&gt;ErrorDocument&lt;/span&gt; &lt;span class="m"&gt;404&lt;/span&gt; &lt;span class="sx"&gt;/error/404.html&lt;/span&gt;
    &lt;span class="nb"&gt;ErrorDocument&lt;/span&gt; &lt;span class="m"&gt;410&lt;/span&gt; &lt;span class="sx"&gt;/error/410.html&lt;/span&gt;
    &lt;span class="nb"&gt;ErrorDocument&lt;/span&gt; &lt;span class="m"&gt;500&lt;/span&gt; &lt;span class="sx"&gt;/error/500.html&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Als volgende wilde ik een aantal extra headers toevoegen voor de goede
orde: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options"&gt;X-Content-Type-Options&lt;/a&gt; en &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options"&gt;X-Frame-Options&lt;/a&gt; voor alle
pagina's, en een &lt;code&gt;Link&lt;/code&gt;-header voor de "homepage" om aan
niet-menselijke bezoekers uit te leggen wat er aan het gebeuren is:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nt"&gt;&amp;lt;IfModule&lt;/span&gt; &lt;span class="s"&gt;mod_headers.c&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always set Link &lt;span class="s2"&gt;&amp;quot;&amp;lt;https://tim.wienk.name/&amp;gt;; rel=canonical; hreflang=x-default&amp;quot;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;expr=%{REQUEST_URI}==&amp;#39;/&amp;#39;&amp;quot;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always append Link &lt;span class="s2"&gt;&amp;quot;&amp;lt;https://tim.wienk.name/&amp;gt;; rel=alternate; hreflang=x-default&amp;quot;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;expr=%{REQUEST_URI}==&amp;#39;/&amp;#39;&amp;quot;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always append Link &lt;span class="s2"&gt;&amp;quot;&amp;lt;https://tim.wienk.name/en&amp;gt;; rel=alternate; hreflang=en&amp;quot;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;expr=%{REQUEST_URI}==&amp;#39;/&amp;#39;&amp;quot;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always append Link &lt;span class="s2"&gt;&amp;quot;&amp;lt;https://tim.wienk.name/nl&amp;gt;; rel=alternate; hreflang=nl&amp;quot;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;expr=%{REQUEST_URI}==&amp;#39;/&amp;#39;&amp;quot;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always set X-XSS-Protection &lt;span class="s2"&gt;&amp;quot;1; mode=block&amp;quot;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always set X-Content-Type-Options &lt;span class="s2"&gt;&amp;quot;nosniff&amp;quot;&lt;/span&gt;
        &lt;span class="nb"&gt;Header&lt;/span&gt; always set X-Frame-Options &lt;span class="s2"&gt;&amp;quot;DENY&amp;quot;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;En als laatste heb ik regels toegevoegd voor het herschrijven van paden,
zodat alle pagina's beschikbaar zijn zonder &lt;code&gt;/&lt;/code&gt;- of
&lt;code&gt;/index.html&lt;/code&gt;-achtervoegsel, met een speciale conditie op basis van de
&lt;code&gt;Accept Language&lt;/code&gt;-header voor de homepage en een aantal extra
doorverwijzingen voor het geval mensen inhoud proberen te bereiken
zonder taal-voorvoegsel:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nb"&gt;RewriteEngine&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;

    &lt;span class="nb"&gt;RewriteCond&lt;/span&gt; %{HTTP:Accept-Language} ^nl [NC]
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/?$                       &lt;span class="sx"&gt;/nl&lt;/span&gt;             [R=302,QSA,L]
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/?$                       &lt;span class="sx"&gt;/en&lt;/span&gt;             [R=302,QSA,L]

    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/about/?$                 &lt;span class="sx"&gt;/en/about&lt;/span&gt;       [R=301,QSA,L]
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/articles/?$              &lt;span class="sx"&gt;/en/articles&lt;/span&gt;    [R=301,QSA,L]
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/contact/?$               &lt;span class="sx"&gt;/en/contact&lt;/span&gt;     [R=301,QSA,L]
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/cv/?$                    &lt;span class="sx"&gt;/en/cv&lt;/span&gt;          [R=301,QSA,L]
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/projects/?$              &lt;span class="sx"&gt;/en/projects&lt;/span&gt;    [R=301,QSA,L]

    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/(.*)/(index.html)?$      /$1             [R=301,QSA,L]

    &lt;span class="nb"&gt;RewriteCond&lt;/span&gt; &lt;span class="sx"&gt;/srv/www/tim.wienk.name/http/&lt;/span&gt;%{REQUEST_URI}/index.html -f
    &lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ^/(.*)$                    /$1/index.html  [QSA,L]
&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Het eindresultaat is wat je nu ziet, een werkende, simpele website. Er
is nog steeds niet erg veel inhoud, maar dat komt misschien nog in de
toekomst, in ieder geval heb ik de optie nu zonder me over de website
zelf zorgen te hoeven maken.&lt;/p&gt;
&lt;/section&gt;</content><category term="article"></category></entry></feed>