Een groot deel van de software die ik in mijn vrije tijd schrijf, schrijf ik in bash. Waarom in bash? Omdat ik dat kan schrijven op mijn tablet zonder een compilator app nodig heb en de terminal emulator app die ik gebruik, gebruik(te) ik ook voor andere dingen. Daarnaast is het ook een leuke uitdaging om dingen voor elkaar te krijgen waar de taal eigenlijk niet helemaal voor bedoeld is. Net zoiets als met gekruiste armen fietsen. Niet helemaal zoals het bedoeld is, maar als het dan lukt is het best gaaf.
Ik heb een aantal scripts die ik voor iedereen beschikbaar stel. Voor Windows gebruikers kan ik WSL aanbevelen, maar waarschijnlijk werkt het ook prima met Cygwin of MinGW.
Patience is een kaartspel. Toen ik in de lijst met utf-8 karakters de kaartspelkarakters tegen kwam dacht ik meteen "hier moet ik iets mee" en ben ik met het maken van patience begonnen.
Ik publiceer de code voor patience onder de GNU agpl licentie (Engels).
De code voor patience kan je hier bekijken of meteen downloaden.
Het driedeurenprobleem, beter bekend als Monty Hall, is een voorbeeld van hoe kansberekening soms tegen het gevoel in kan gaan. Dit script heb ik tijdens een vlucht van Nederland naar Zweden geschreven en later wat verfijnd.
Ik publiceer de code voor Monty Hall onder de GNU agpl licentie (Engels).
De code voor Monty Hall kan je hier bekijken of meteen downloaden.
Dit is een van mijn eerste bash scripts en is gedurende een aantal jaar uitgegbreid om gebuiksgemak te vergroten. De hoofzakelijke toepassing is voor gebruik tijdens het debuggen van software. Zo kan bijvoorbeeld make aangeroepen worden iedere keer als main bijgewerkt word. Het script voert een commando uit iedere keer als een opgegeven bestand bijgewerkt wordt.
Ik publiceer de code voor run on save onder de GNU agpl licentie (Engels).
De code voor run on save kan je hier bekijken of meteen downloaden.
Een tijdje terug bedacht ik me dat het wel leuk zou zijn als ik Bash zou gebruiken voor iets waar het niet voor bedoeld is: machine learning (Zelflerende computers). Er zitten nog een paar oneffenheden in het programma, maar het kan gespeeld worden en het programma leert van eerdere spelrondes. De foutjes heb ik nog niet kunnen opsporen. Toch zet ik het online omdat ik de komende tijd een aantal andere hobbyprojecten oppak.
Deze versie van boter kaas en eieren is niet zo heel goed als je begint met spelen. Dit komt omdat het alleen de regels van het spel kent en niets weet van strategie. Het rekent ook niet alle mogelijke borden door. Nou ja, dat laatste is niet helemaal waar. Het programma doet dit wel, maar gedurende het spelen. Iedere keer als je speelt leert de computer welke zetten goed zijn en welke niet. Na een tijdje zullen alleen de goede zetten gekozen worden, en daarmee wordt de computer een betere speler.
Ik publiceer de code voor boter kaas en eieren onder de GNU agpl licentie (Engels).
De code voor boter kaas en eieren kan je hier bekijken of meteen downloaden.
Als ik code schrijf maak ik veelal gebruik van doxygen voor de documentatie. Doxygen heeft geen ondersteuning voor Bash, en de beschikbare scripts voldeden niet aan mijn wensen. Daarom heb ik mijn eigen geschreven. De consequentie is dat het voor nu vooral mijn eigen stijl ondersteund. In de toekomst hoop ik meer toe te voegen.
Zie de How to use paragraaf in de gegenereerde Doxygen documentatie :p.
De resulterende documentatie is hier te vinden. Dit is de documentatie van alle scripts die op deze pagina te vinden zijn.
Ik publiceer de code voor Doxygen filter voor Bash onder de GNU agpl licentie (Engels).
De code voor Doxygen filter voor Bash kan je hier bekijken of meteen downloaden.