Categoriearchief: Genealogie

Zoekfunctie voor Genealogische informatie op eigen computer

Zolang je de zoekfunctie, die vorige keer is beschreven, gebruikt op een webstek gaat alles prima. Maar op je eigen computer werkt het niet. Dat heeft te maken met een bescherming die internet-browsers bezitten. Die bescherming is er niet voor niets: het voorkomt dat hackers bestanden op uw computer kunnen openen waar ze niets mee te maken hebben. Er bestaan listen om deze beveiliging te omzeilen of zelfs uit te zetten maar dat is beslist niet aan te raden.

Op zoek naar een eenvoudiger methode onderzocht ik de mogelijkheid om de eigen computer als lokale webserver te gebruiken. Vele mogelijkheden bieden zich aan, maar de meeste daarvan zijn behoorlijk bewerkelijk en een aantal er van heeft dezelfde problemen als die we proberen te omzeilen. Het gaat er eigenlijk om de eigen computer als webserver te gebruiken maar niet voor gebruik van buiten de eigen computer (en daarmee toegankelijk vanuit het internet) maar uitsluitend van binnenuit.

De handigste manier is om de simple-http-server module van Python te gebruiken. Python is een eenvoudige programmeertaal die op bijna alle computers is geïnstalleerd … maar niet op Windows-computers. Om die reden zag ik er aanvankelijk van af. Maar eigenlijk is daar snel wat aan te doen, zeker als je Windows 10 gebruikt. In dat geval zit Python namelijk in de Microsoft Store en kan het programma eenvoudig geïnstalleerd worden, net als andere “apps”. Hoe je er komt? Gewoon bij de taakbalk bij de zoekbalk intikken “Python” en de rest gaat als gebruikelijk. Bij nader inzien is het beslist de eenvoudigste manier om de benodigde software binnen te krijgen. Voor oudere windows-versies gaat het installeren ook niet heel moeilijk, gewoon de instructies op de Python webstek volgen.

Het gebruik vereist wat kennis van zaken dus daar besteden we meer tijd aan. Eigenlijk gaat het om een bestandje dat we neerzetten op de plaats waar ook de html-bestanden van ProGen terecht komen. In dit geval is dat – voortbordurende op het voorbeeld van vorige keren – ..\PG35\TEXT\demo. Ik heb het bestandje server.bat genoemd maar elke andere naam is natuurlijk goed zolang de extensie maar .bat is. U kunt het bestandje eenvoudig maken met het notitieblok (notepad).

start python -m http.server 8080
start firefox -private-window localhost:8080

U ziet het, er zijn maar twee opdrachten in het bestandje. De eerste start de http-server en de tweede opent de internet-browser. Ik gebruik hier Firefox maar elke andere kan ook. Om het geheel handzaam te maken kunnen we een snelkoppeling (shortcut) er van maken en die op het werkblad (desktop) plaatsen. Die snelkoppeling kan van een ander icoontje worden voorzien, bijvoorbeeld het boompje van ProGen.

Door tweemaal op het icoontje te klikken openen zich twee vensters. De ene bevat de internet-browser en de andere is de http-server. Aanvankelijk leek me dat tweede venster vervelend maar al vrij snel kwam ik er achter dat het reuze handig is: het helpt enorm met het foutzoeken. En verder kan het geen kwaad: het werkt netjes in de achtergrond.

Voor de wat meer windows-onderlegden een korte uitleg:

  • In beide regels staat het commando start. De bedoeling is om daarmee zowel voor de http-server als voor de internet-browser een nieuw venster te openen. Nadat de twee opdrachten zijn uitgevoerd wordt het venster, dat met server.bat werd geopend, gelijk weer gesloten. Wat overblijft zijn de twee nieuwe vensters.
  • Het opdracht-bestandje is zo gemaakt dat het de map waarin het staat gebruikt om op te starten. Als er een index.html staat wordt dat opgestart, anders wordt een lijst met de lokale bestanden weergegeven. Wilt u meteen vanaf een ander html-bestand beginnen dan dient u dat in het opdrachtbestandje te veranderen.
  • Het tweede venster is van de internet-browser. Door een private-window te openen weten we zeker dat het altijd op dezelfde manier begint en dat er geen gebruik gemaakt wordt van al opgeslagen informatie (cache). Nadere beschrijving van de opties staan hier.
  • Het eerste venster is van de http-server. Elke aktie die de internet-server uitvoert wordt weergegeven, in bijna alle gevallen betreft dat het openen van html-pagina’s.
  • Het sluiten van het venster met de http-server betekent dat vanaf dat moment de internet-browser niet meer kan werken. Die kan dan net zo goed worden afgesloten. Als u dat niet doet en u start het opdrachtbestandje opnieuw dan komt er in de internet-browser een tweede tabblad. Dat is verwarrend maar werkt wel gewoon.

Als u wat verandert in de html-bestanden hoeft u daarna alleen maar de internet-browser te verversen. Opnieuw bovenstaande procedure uitvoeren is niet nodig. Wel als u opnieuw de computer aan heeft gezet.

Samengevat: er zijn éénmalig twee stappen nodig om van uw computer een lokale web-server te maken, namelijk (1) het installeren van Python en (2) het maken van een opdrachtbestandje. Als extra kunt u een handige snelkoppeling met een geschikt icoontje op uw werklbad maken. Een sessie begint met het dubbelklikken van het icoontje van het opdrachtbestandje of van de snelkoppeling. Daarna kunt u gebruik maken van de html-bestanden.

Tot slot: als u meerdere websites beheert kunt u voor elk van de mappen met html-bestanden een eigen opdracht-bestandje maken. Met verschillende icoontjes bij de snelkoppelingen op het werkblad kunt u die gemakkelijk uit elkaar halen.