Apache, MySQL en PHP
Arnout van Kempen over rommelen in een digitale wereld.
Als je vrolijk aan het coderen bent geslagen, in C, Python, of welke taal je maar wilt, loop je al snel tegen een praktische kwestie aan. Alles wat je maakt, werkt op je Raspberry Pi en alléén op je Pi. Leuk, dat we alle mogelijke tools hebben om de Pi aan de iPad te verbinden, maar uiteindelijk voegt dat wel een mooie interface aan de Pi toe, maar geen echte kracht aan je iPad.
Apple laat je nauwelijks toe om puur voor jezelf te programmeren voor de iPad. Je kunt wel apps bouwen die je vervolgens via de app-store kan publiceren, maar dat is veel te professioneel en daar zitten we hier niet voor. We zijn hier om te klooien tenslotte. Gelukkig biedt Apple daar wel een oplossing voor: een website. Als we een website kunnen bouwen die de functionaliteit heeft die wij willen, dan kan je daar een soort fake-app van maken door de site te openen in Safari, voor exporteren te kiezen via het vierkantje waar een pijl uit komt (rechtsboven) en dan te kiezen voor de optie Zet op beginscherm.
Maar dat is het einde van het verhaal. Het begint ergens anders. Om op deze manier functionaliteit van de Pi beschikbaar te maken op de iPad, heb je wel eerst een website nodig die op de Pi draait. Daar is een web-server voor nodig en de populairste is Apache. Dus die gaan we installeren, met deze instructie.
Let op: Niet alleen de Apache-server, want dan kom je niet verder dan eenvoudige html. De instructies gaan verder over hoe ook PHP te installeren. PHP is een taal die redelijk op C lijkt en die gebruikt kan worden om een dynamische website mee te bouwen. Als je de instructies volgt tot en met het extreem simpele voorbeeld programma om datum en tijd weer te geven, dan heb je genoeg om je eerste, vrij nutteloze app je te schrijven. Volg letterlijk de instructies, ga dan in Safari op je iPad naar x.x.x.x/example.php (waarbij x.x.x.x het IP-adres van je Pi is), maak er een icoon van op je beginscherm en je hebt zomaar een klokje gemaakt!
Oké, niet heel indrukwekkend, maar wie fantasie heeft ziet de mogelijkheden al.
Wil je serieus met iets aan de gang waarbij je veel data gaat verwerken, bijvoorbeeld je eigen grootboek-app, dan heb je al heel snel een relationele database nodig. Opnieuw zou ik hier kiezen voor wat in de praktijk heel erg veel gebruikt wordt en dat betekent MySQL. Instructies vind je hier en daarna hier.
SQL is een extreem makkelijke taal om relationele databases mee te benaderen op de manier waarop mensen denken; SQL zorgt voor alle vertaling naar hoe de computer met data werkt. En je kunt SQL naadloos in PHP integreren. En wie nu denkt: maak eens een keuze? Python, C, nu weer PHP en SQL? Houdt het nooit op? Nee, waarschijnlijk niet. Maar bedenk dat iedere taal handig is voor specifieke toepassingen en minder voor andere. Maar je kunt ze allemaal laten samenwerken en vrij makkelijk integreren.
Het aardige van SQL gebruiken is trouwens dat het je helpt te leren denken in relationele databases. Ik hoor al jaren van accountants “je moet leren denken in journaalposten” en dat is terecht. Maar even terecht is het dat je als accountant moet leren denken in SQL-statements, als je wilt begrijpen wat echt in de informatiesystemen van je klant gebeurt. En hier is dus een mooie kans!
Gerelateerd

De TSR en protected mode
Arnout van Kempen over rommelen in een digitale wereld.

IBM-pc en MS-DOS
Arnout van Kempen over rommelen in een digitale wereld.

Nogmaals ons programmaatje
Arnout van Kempen over rommelen in een digitale wereld.

De uitdagingen van de 8086
Arnout van Kempen over rommelen in een digitale wereld.

Programmeren van de 8080
Arnout van Kempen over rommelen in een digitale wereld.