Blijkbaar zat er nog ergens een klein foutje in mijn code, waardoor het plaatsen van een reactie in de blog niet goed werkte. Het wordt helemaal lastig als je ook helemaal geen enkele foutmelding terugkrijgt, zelfs de lerror-logs van Apache gaven helemaal niks terug. Tja dan is het gewoon heel lastig zoeken.
Maar voor dit soort situaties heb ik zo mijn truukjes wel om te achterhalen in welke hoek ik ongeveer moet zoeken. Door gewoon op bepaalde plekken een echo "Test"; in je code op te nemen, kun je erachter komen of dat deel van je code wel wordt uitgevoerd. Als dat het geval is, zie je ergens op het scherm de tekst "Test" staan.
Op een gegeven moment zag ik alleen een leeg scherm, met de header van de website en de tekst "Ok." verschijnen. Dat was net voor het punt dat de informatie uit het reactieformulier opgeslagen zou gaan worden in de database. Daar ging iets dus niet goed. Alle velden werden wel gevuld, dus dat was het probleem niet, maar het bleek dat 1 veld niet op het juiste formaat werd gevuld, waardoor ie dus vastliep. Na dat verholpen te hebben, werkte het weer en verscheen er weer meer test en plaatjes op het scherm. Pfff en dan ben je een halve dag aan het zoeken en uitproberen. Snel dat "Ok" weer weggehaald en het lijkt weer alsof er niets gebeurd is, maar de code werkt weer. Weer een fout verholpen.
Ondertussen ben ik vandaag ook weer flink opgeschoten met de backend, het administrator gedeelte van de website(s). Ook her en der wat kleine foutjes verholpen en wat nieuwe functionaliteit toegevoegd, waaronder in de blokkeerlijst. De database heb ik uitgebreid met een aantal nieuwe velden, zoals het id nummer van de website die dat IP adres heeft geblokkeerd en een veld met de werkelijke reden. Zodat het voor mij als hoofdbeheerder een stuk duidelijker wordt, wie en waarom IP's blokkeert. Op het moment van schrijven staan er 37 IP adressen in de blokkeerlijst, die ik in de loop van de tijd heb toegevoegd omdat ze dingen deden die mij niet aanstonden. De hoofdreden was wel het verzenden van spam naar 1 van mijn emailadressen.
Een andere reden kan zijn het plaatsen van ongewenste of ongepaste reacties in de blog van 1 van de websites. Maar omdat die mogelijkheid pas net werkt staan die er nog niet in en hopelijk blijft dat natuurlijk ook zo en worden er alleen gepaste en gewenste reacties geplaatst. Alle reacties worden natuurlijk gecontroleerd door de beheerder en die kan besluiten om een reactie toe te staan of te weigeren. Heeft iemand het te bont gemaakt in de ogen van de beheerder, kan hij of zij het I adres direct laten blokkeren. Ik zie dan alleen dat het IP geblokkeerd is door een bepaalde website en dat er een ongepaste reactie geplaatst was, het hoe of wat gaat mij verder niet aan en die informatie zie ik dan ook niet. Ik heb alleen een antwoord op mijn vraag, waarom er zoveel IP's in de lijst staan.
Sinds ik dit blokkeersysteem werkend heb, is het alweer een stuk rustiger geworden, wat het ontvangen van spam betreft, een teken dat mijn aanpak werkt en z'n vruchten afwerpt. Helaas kan ik niet garanderen dat het systeem ook waterdicht is, dat is het pas als alle IP adressen van het internet in mijn database staan ;-) haha
Binnenkort maar weer eens een code cleanup gaan doen, dat moet zo nu en dan eens even om de boel duidelijk en overzichtelijk te houden, waardoor het systeem nog beter gaat werken en het zoeken naar fouten nog makkelijker wordt. Sinds ik meerdere websites op 1 codebase laat draaien scheelt dat me al heel veel zoekwerk en dus tijd, tijd die ik veel beter kan besteden aan het bedenken van nieuwe functies en manieren om het nog makkelijker te maken. Iedere keer als ik ermee bezig ben merk ik dat het systeem steeds beter gaat lopen en er steeds professioneler uit gaat zien. We komen zo steeds dichter bij de lancering van SikkesWeb MultiSite voor het grote publiek.
Het ontwikkelen van zo'n groot project in je eentje kost nu eenmaal heel veel tijd en geduld. En sinds ik alles ontwikkel op draaiende websites, helpt het mij om redelijk snel de fouten eruit te halen, je ziet het immers live de mist in gaan en dan kun je meteen gaan zoeken. Meestal gebeurt dat in delen waar ik in bezig ben en soms kom je bij toeval ook andere vervorgen gebreken tegen die je dan ook meteen te lijf kunt gaan. Geloof me, geen enkele code is perfect, er zitten altijd wel fouten in software. Kijk maar bijvoorbeeld eens naar het besturingssysteem waar je nu mee werkt, hoe vaak verschijnen er wel niet updates? Vaak zijn dit probleemoplossingen, er worden problemen opgelost, maar vaak ook weer nieuwe gemaakt, al is dat laatste niet helemaal de bedoeling, maar het gebeurt. ICT is best wel complex, zeker met al die verschillende apparaten en al hun verschillende configuraties. Geen enkele telefoon of computer is hetzelfde en daar moet je als programmeur zoveel mogelijk rekening mee houden en dat lukt niet altijd even goed, zo blijkt maar weer.
Programmeurs zijn altijd op zoek naar verbeteringen en dat gaat meestal gepaard met behoorlijk wat veranderingen in de code, waardoor andere zaken dan weer niet goed willen samenwerken. Daarom zijn er allerlei standaarden uitgevonden, waar programmeurs zich aan kunnen houden, maar sommigen zijn behoorlijk eigenwijs en gaan gewoon hun eigen weg en slaan alle standaarden in de wind. Het gevolg is dat je behoorlijk onwillende en eigenwijze programma's hebt die niet lekker werken. Dat laatste zie ik tegenwoordig steeds meer op de telefoon en tablet.
Apps zijn leuk, als ze werken, maar tegenwoordig geven ze mij in ieder geval steeds meer frustraties, want de meesten werken niet lekker samen met VoiceOver of TalkBack, voorzieningen die gebruikt worden door blinden en slechtzienden. Maar ook zie ik de maker van het besturingssysteem steeds vaker de fout in gaan met nieuwe updates in een poging de boel te verbeteren. Maar meestal na een update werken er standaard een aantal dingen niet meer of niet lekker meer. Dat duurt dan weer een tijdje totdat alles weer op 1 lijn zit, maar dan komt de maker weer met een nieuwe update en begint alles weer van voren af aan..... zucht.
Soms denk ik weleens, waarom iedere keer al die nieuwe functies die in de praktijd bijna niemand gaat gebruiken? Zorg eerst eens dat je de basis een keer goed hebt en als je dat goed hebt, kun je voorzichtig eens na gaan denken over nieuwe functies. Op de huidige manier wordt het alleen maar steeds lastiger om de boel draaiend te houden. Maar ja ik weet wel wat er achter zit, een verdien model, er moet brood op de plank komen en er moeten nieuwe telefoons en tablets en computers verkocht worden en die hebben vaak weer nieuwere hardware en uitgebreidere functionaliteiten, waardoor je je programma weer uit moet breiden met instabiele code.
Een telefoon, tablet of computer is natuurlijk niet te vergelijke met een website, de server krijgt niet ineens nieuwe hardware, die is vrij nieuw en recent en kan nog jaren mee. Het enige wat er misschien eens gaat veranderen is meer geheugen, een grotere SSD of een andere harde schijf. Ook qua software zal er niet zo heel veel veranderen, het besturingssysteem blijft Linux en de configuratie blijft ook grotendeels gelijk, het enige wat zo nu en dan gaat veranderen is nieuwere versies van de programma's zoals PHP en Apache. Ik heb voor Debian gekozen omdat dat systeem superstabiel is, niet al te vaak updates nodig heeft, zoals Ubuntu, wat iedere week met een nieuwe kernel komt. Ik geloof dat Debian maar 1 keer per maand met een update komt en dat heeft niet zo'n grote impact op het systeem. Dat geeft wel aan dat het behoorlijk stabiel is.
Ik wil niet zeggen dat Ubuntu slecht of instabiel is, maar het geeft wel te denken, waarom kom je anders zo vaak met een update van de kernel (de basis, het hart van het systeem)? Om mijn punt nog duidelijker te maken, neem nou de webbrowser die je gebruikt, waarschijnlijk is dat Google Chrome, hoe vaak wordt die wel niet geupdated? Best wel vaak, bijna iedere week is er wel een nieuwere versie. Hebje nou bijvoorbeeld FireFox, die komt lang zo vaak niet met een update. Tja en zo kan ik nog wel even doorgaan, maar dat ga ik maar niet doen.
Updates zijn leuk, maar het moet niet te vaak op elkaar gebeuren en zeker niet elke keer je systeem overhoop halen, als iets goed werkt, waarom zou je het dan nog weer veranderen? Never change a winning team is een oud gezegde en gaatnog steeds op.
Mijn project, SikkesWeb MultiSite is nog in ontwikkeling en draait alleen nog mijn eigen websites en ik ga het ook niet eerder vrijgeven dan dan alles goed en stabiel werkt, ik wil namelijk geen rommel verkopen, ik wil goed spul leveren, waar mensen ook echt wat aan hebben. Rijk hoef ik er niet van te worden, er zit geen verdienmodel op en dus ook geen tijdsdruk. Het gaat mij erom dat alles goed en stabiel werkt en dat mensen er iets aan hebben. Ik maak het wel voor een doelgroep, die er goed mee moet kunnen werken. Ik weet als geen ander hoe lastig het is om als blinde of slechtziende om een computer te bedienen en zeker om een website draaiende te houden in een visueel ingestelde wereld en ik kan je zeggen dat valt echt niet mee. Met MultiSite hoop ik dat probleem grotendeels de wereld uit te helpen.