Smart Duck computeren en andere dingetjes ...

Bejeweled By Nathalie

Al een tijdje ben ik bezig met de webstek van mijn vrouw. Versie 2 heb ik vandaag gelanceerd.

De site is van nul af opgebouwd met vanilla PHP, javascript, HTML en CSS. Ik heb hierbij gebruik gemaakt van mijn eigen SwirlJS bibliotheek. De web site is responsive, deze past zich aan op een smart phone, tablet of op een pc/laptop.

De web versie:

undefined

De mobiele versie:

undefined

 

Lighttpd user dir

Om lokaal binnen je eigen user account te kunnen werken, zodat je niet elke keer als root moet inloggen om je nieuwe bestanden op de webserver te verplaatsen, kun je een user dir maken.

In je eigen home directory maak een directory public_html

$ mkdir public_html

Vervolgens log in als root en voer de volgende regels uit:

# lighty-enable-mod userdir

# service lighttpd force-reload

# exit

$ cd public_html

$ nano index.html

<htm>
<head>
<title>Hello world!</title>
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>

CTRL+O en CTRL+X

Start je browser en ga naar http://localhost/~<jouw gebruikersnaam>/

Denk aan de ~ voor je naam.

Als het goed is gegaan zie je nu de webpagina Hello world! .

 

Webserver op Devuan (LLMP)

In vogelvlucht een webserver opzetten op Devuan Linux. Op een terminal en...

Inloggen als root

$ su

Wachtwoord intypen.. en de volgende commando's uitvoeren:

Lighttpd installeren

# apt-get install lighttpd

Start Firefox (of een andere browser) en type in de adresbalk http://localhost

Nu zul je een startpagina van Lighttd moeten zien.

 

PHP installeren

# apt-get install php php-gd php-mysql php-fpm
# nano /etc/php/7.0/fpm/php.ini

De regel ;cgi.fix_pathinfo=1 opzoeken en ; weghalen

CTRL+O om de wijziging op te slaan, en CTRL+X om af te sluiten.

De juiste gebruiker op je webserver directories zetten:

# cd /var/www
# chown www-data:www-data html

Testscriptje om PHP te testen aanmaken:


# cd html
# nano info.php

Type:
<?php
echo phpinfo();
?>

CTRL+O CTRL+X

# lighty-enable-mod fastcgi
# lighty-enable-mod fastcgi-php
# service lighttpd force-reload

Start Firefox (of een andere  browser) en type in de adresbalk http://localhost/info.php

Nu zul je een overzichtspagina van de PHP configuratie moeten zien.

MySQL database installeren

# apt-get install mysql-client mysql-server

# mysqladmin -u root password <gewenste wachtwoord>

Het gewenste wachtwoord heb je nodig om via PHP een databaseconnectie te kunnen opzetten.

Download PhpMyAdmin van https://www.phpmyadmin.net/

PhpMyAdmin maakt het beheren van je database wat gemakkelijker.
Pak het bestand uit in je Download directory.

Maak een directory aan in /var/www/html:

# mkdir phpmyadmin

Kopieer de bestanden:

# cp -R /home/<gebruikersnaam>/Download/<phpmyadmin directory>/* /var/www/html/.

Vervang gebruikersnaam en phpmyadmin directory door de namen die het op jouw systeem heeft.

# chown -R www-data:www-data phpmyadmin

# chmod -R 0755 phpmyadmin

Start Firefox (of een andere browser) en type in de adresbalk http://localhost/phpmyadmin/

Nu zul je de login pagina van PhpMyAdmin moeten zien.

Je kunt hier inloggen met root en het wachtwoord wat je hebt gekozen met mysqladmin.

Standaard heb je geen root rechten op PhpMyAdmin en krijg je de foutmelding #1698 - Access denied for user 'root'@'localhost'.
Dit is te omzeilen door root anders te laten authenticeren:

Open een terminal en type:

# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 47
Server version: 10.1.37-MariaDB-0+deb9u1 Debian 9.6

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SELECT User, Host, plugin FROM mysql.user;
+------+-----------+-------------+
| User | Host | plugin |
+------+-----------+-------------+
| root | localhost | unix_socket |
+------+-----------+-------------+
1 row in set (0.00 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit

Hierna moet je kunnen inloggen in PhpMyAdmin.

 

 

Overstap naar Devuan Linux

Deze week ben ik overgestapt van Ubuntu Studio naar Devuan als OS. Ubuntu Studio is op mijn oude ThinkPad toch wel wat traag. Kwa installatie is Devuan wat meer werk. Zeker voor een beginner met Linux wat moeilijker dan Ubuntu. Je moet dan wel het een en ander weten over partities aanmaken op een harde schijf, begrippen zoals bootloader, grub, wat een root account is.

Een stukje achtergrond van Devuan. Devuan is een afsplitsing van Debian Linux. Debian stapte over op een ander initsysteem. Simpel gezegd is een init een dienst (service) die er voor zorgt dat andere services opstarten zodat je je hardeschijven, toetsenbord, muis, tekentablet, geluid etc. kunt benaderen en gebruiken. Een aantal ontwikkelaars waren het er niet mee eens dat Debian overstapte op systemd en zo is Devuan ontstaan.

Ik heb ook nog een poging met Slackware en Vector Linux gedaan. Vector Linux gebruik ik nog wel op mijn back-up/pruts laptop. Bij deze twee moet je best veel uitzoeken om bepaalde programma's geinstalleerd te krijgen. Voor mij moet mijn laptop voor allerdaagse dingen te doen toch wel wat gemak bieden. Slackware is mij te veel werk om iets werkends te krijgen en vandaar Devuan. Een mooie middenweg.

Devuan is te downloaden van: https://devuan.org/

Ik heb de desktop-live iso gebruikt en die op een USB stick gezet. Na herstarten van de laptop met de stick er in kom je in een live omgeving waarin je Devuan kunt proberen. Op het bureaublad is er een icon die je kunt aanklikken om een installatie op je harde schijf uit te voeren.

Devuan na opstarten van de desktop-live: (na installatie heb je exact dezelfde situatie)

undefined

Devuan gebruik Xfce als desktop omgeving. Alles zit er bij om je computer te beheren; Thunar (je verkenner), menu met al je geinstalleerde programma's, tools om je beeldscherm(en) in te stellen etc. Synaptic gebruik je om nieuwe programma's te installeren of te verwijderen. Kwa extra programma's zijn o.a. meegeleverd: Firefox browser, LibreOffice office pakket met o.a. Writer voor document, Calc voor je berekeningen, Draw om te tekenen en Impress om presentaties te maken. Gimp zit er bij om complexe tekeningen te maken. Twee programma's om muziek en films af te spelen. Alleen het e-mail programma Mutt is een slechte keuze om standaard mee te leveren. Ik heb hiervoor Sylpheed geinstalleerd. Er zit nog meer bij aan programma's, bovenstaande is om een idee te geven.

Mijn bevindingen tot nu toe. Prima vlotte Linux distributie om elke dag mee te werken. Programma's starten snel, alles reageert lekker vlot. Gimp start op mijn oude laptop sneller dan onder Windows 10 op mijn nieuwe laptop van mijn werk. De Xfce omgeving laat je het bureaublad en looks gemakkelijk wijzien naar je eigen smaak (kleuren, lettertypes en stijl van de vensters).

Frameworks

Frameworks worden te pas en te onpas gebruikt. Er lijkt wel een soort wildgroei van allerlei raamwerken te zijn voor de programmeur. Frameworks om sites te bouwen, denk aan Symphony voor PHP, Ruby on Rails, Django en template engines zoals Smarty. En op javascript gebaseerde frameworks zoals React en Angular. Ik ben hier op terug aan het komen en in eerste instantie not to framework.

Een framework lijkt in eerste instantie vaak een geweldige tool en bereik je in korte tijd een leuk resultaat. Echter moet je je er van bewust zijn dat het framework wat je toepast niet het eeuwige leven heeft. Je bent afhankelijk van de ontwikkelaars van het framework dat je toepast. De makers van deze frameworks en engines hebben een bepaald doel voor ogen gehad wat voor hun blijkbaar werkte en die filosofie moet ook werken voor jouw team en projecten. Sommige frameworks hebben daarnaast een best hoge leercurve. Kijk bijvoorbeeld naar Angular (2 en hoger). Je bent daar best een tijdje mee bezig voordat je alle facetten van het framework door hebt en productief bent. Je leert er eigenlijk een taal en werkwijze bij.

Nog even over template engines waarvan Smarty een mooi voorbeeld is. Niet echt een framework maar kan wel in dezelfde 'categorie' meegenomen worden. Je hebt PHP, een prima taal om dynamische websites te bouwen. Je maakt een HTML pagina en plaats op bepaalde plekken dynamisch informatie met PHP. Dus de HTML pagina kun je zien als template die je vult met een scripting taal PHP. Waarom dan Smarty (een template engine) gebruiken? Je hebt al een template engine en dat is je PHP. Met PHP maar ook in andere scripttalen kun je prima een scheiding maken tussen inhoud, opmaak en dynamische elementen. Template engines zijn in mijn ogen dan ook kul.

Mijn advies is, bij kleine projecten not to framework. Creeer je eigen structuur in welke taal je ook prettig vind. Met een framework voeg je onnodig complexiteit toe en dat is voor kleine websites overkill. Bij grote complexe projecten kan een framework voordeel bieden. Het dwingt jou en/of je team in een bepaalde structuur te werken. Hiermee kun je gemakkelijker afdwingen dat iedere ontwikkelaar op de zelfde manier nieuwe onderdelen in het project bouwt. Kies dan wel voor een framework dat zich al min of meer bewezen heeft in de laatste jaren en waar actief aan wordt ontwikkeld zodat je ook de komende jaren op het gekozen framework kunt bouwen.

Melanotaenia parkinsoni

Dit artikeltje heb ik in de jaren '90 geschreven voor aquarium vereniging Ichthus te Zevenaar.

Deze prachtige vis is voor het eerst beschreven in 1980 door Dr. Gerald R. Allen, deze man houdt zich al sinds 1972 bezig met het ontdekken en beschrijven van Regenboogvissen uit Australië en Nieuw Guinea.

Vindplaats
Deze soort werdt gevangen in het Zuid-Oostelijke puntje van Papua Nieuw-Guinea vlakbij de hoofdstad Port Moresby door Brian Parkinson. In 1978 hadden deze vissen hun weg al gevonden naar liefhebbers. Maar alleen in zeer kleine aantallen, het is altijd moeilijk geweest om aan deze soort te komen via de aquarium-handel.

Uiterlijk
De vis kan groter worden als 13cm. De rug is meestal glanzend olijfkleurig/paars, in het midden verschijnt er soms een wazige zwarte streep, onder deze streep is het lichaam metaalachtig blauw, de buik heeft bij de mannetjes een oranje oplichtende gloed. De schubbenrijen worden van elkaar gescheiden door oranje, paarse of groene lijnen. Het spektakulairste van de mannetjes zijn de fel gele of oranje vinnen met een brede zwarte zoom. Bij uitzondering zijn er ook mannetjes die inplaats van geel of oranje, felrode vinnen krijgen. Wanneer de dieren wat ouder worden breidt de gele, oranje of rode kleur zich uit over het achterste deel van het lichaam.

Inrichting aquarium
De soort wordt gehouden in een groep van minimaal 10 dieren in een aquarium van af 150cm (200 liter inhoud en meer) om genoeg beweging te hebben. Zorg er voor dat er meer vrouwtjes als mannetjes zijn (bijvoorbeeld: 4 mannetjes en 6-8 vrouwtjes). De bak richt men in met een grote open zwemruimte voorin en langs de achterwand fijnbladerige planten. Als dekoratie zijn fraaie stenen of stukken wortelhout heel geschikt. Geschikte planten soorten zijn: Cabomba, Hoornblad, Javamos maar ook Javavarens, Vallisneria's en Anubias soorten behoren tot mijn favorieten. Als gezelschap zijn levendbarende, andere regenboogvissen en meervallen op hun plaats. Zuid-Amerikaanse zalmen, barbelen en diverse modderkruipers en grondels geven ook geen problemen. Plaats er alleen geen rustige of heel kleine visjes bij, die hebben al heel gauw te veel stress van de snelle zwembewegingen van deze levendige Parkinsoni's en het voer wordt voor hun "neus" weg gekaapt. Als heel nuttig heb ik Corydoras-soorten ervaren, die ruimen namelijk voedsel restjes van de bodem op die de regenbogen laten liggen. Regenboogvissen eten niet graag voedsel van de bodem.

Water kwaliteit
Melanotaenia Parkinsoni is een sterke vis en kan bij verschillende waterkondities worden gehouden. Het meeste plezier van deze vissen heb je als de temparatuur tussen de 25-30 °C is en de pH tussen de 7 en 8. Regelmatig water verversen 20% per twee weken is zeker nodig, afhankelijk van het aantal dieren en grootte van het aquarium.

Voer
In de natuur leven de dieren van in het water gevallen insekten, zaden, en algen. Als basis geeft men een plantaardige voersoort (bijvoorbeeld: TetraPhyll), daarnaast is het geven van twee of meer keer per week levend voer of diepvries voer een belangrijke aanvulling. Regenboogvissen eten niet al het voer in een keer op, het is dus beter om vaker kleine beetjes te geven.

Kweek
Dit gaat bij een goede verzorging vanzelf, ook in de gezeldschapbak. De eieren (klein en glazig met een plakkerig draadje) worden afgezet op een fijnbladerige plant en kunnen met plant en al uit het aquarium worden genomen. De jongen zijn bij het uitkomen na 8-10 dagen bij 27°C heel klein (3-4mm) en groeien langzaam. Na een jaar zijn zij ongeveer 6-7cm lang en in staat tot voortplanting. Voer de jongen de eerste twee weken met microscopische algen, en probeer het daarna met heel fijn speciaal droogvoer of vloeibaar voer. De jonge vissen hebben nog lang niet de mooie kleuren van de ouders. Regenboogvissen zijn pas op kleur als zij hun volle lengte en volwassen stadium hebben bereikt.

Copyright © 2018 Marcel Beekman

Home ← Oudere berichten