31/5/2022

Databank structuur versie bijhouden in databank?

Filed under: — cybrarian @ 6:50 pm

Database versioning. Brainstorm.

Ontwerp
Ik maak een applicatie (bv in Gambas3), en gebruik een mariadb databank om de gegevens op te slaan.
Ik exporteer de structuur en bewaar die mee in de broncode om dat databank terug op te kunnen bouwen.
De vorige wordt overschreven, alleen de huidige, bij de software passende versie databank.sql wordt hier bewaard. Door het versiebeheersysteem (Git), kan je teruggaan naar oudere software versies, en dan heb je daar ook altijd de bijpassende databank struktuur bij.

Verandering
Als er een verandering gebeurt aan de code en aan de “database structure”, moet ik ergens kunnen bijhouden welke versie van de database struktuur dit is (zeker als mogelijk verschillende applicaties of versies van software gebruikt worden om die aan te spreken).

Een logische plaats zou zijn: in de database zelf.

De wijziging aan de database moet kunnen gedetecteerd worden door de software; en als maar 1 software die databank gebruikt, zou de software die ook (automatisch) kunnen aanpassen/opwaarderen, of de juiste aanpassing kunnen suggereren.
Upgrade/Downgrade: als er een upgrade script is, ook een downgrade script voor ingeval onverwachte problemen (in productie).

Het zou goed zijn als de toepassing de databank struktuur checkt bij het opstarten, dan kan er geen te oude code draaien met een niet meer kloppende nieuwere versie van de databank.

De software moet dus ook weten voor welke versie van databank ze gemaakt is; bv met een constante gedefinieerd in Main “dBVersion = 10”.

Als er een “library” gebruikt wordt om de database te benaderen kan dat daarin.

Vorm
Hoe gedetailleerd moet de database struktuur versienummering zijn?
bv:
Db is aangemaakt, is versie 1, Db v1
Db is aangepast, extra tabel, Db v 2
Db heeft extra index gekregen, Db v2.1
Nog een extra index gekregen, Db v2.2
Extra velden in tabel, Db v 3.0
Extra velden krijgen index, Db v 3.1
Tabel bijgemaakt, Db v 4.0
Velden bijgemaakt daarin, Db v 5.0
Nog een tabel extra Db v6.0

De hoofdversie vereist overeenkomstige wijziging aan de code die de data gebruikt.
Een minor versienummer levert bv een praktische versnelling op, maar geen code wijziging?

Waarschuwing
– major versienummer verschil: waarschuwing en afsluiten/readonly (?).
– minor versienummer verschil: waarschuwing en verderwerken.

Bij major aanpassing:
– telkens de database structuur bij de broncode, dan kan in principe vanaf die struktuur vertrokken worden bij nieuwe installatie van het geheel (dus ook nieuwe databank).
– de code om de database op deze stand te brengen vanuit de vorige toestand.
Dus bij de developer moet de database-wijziging gebeuren met code, dezelfde die mee geleverd wordt als upgrade code voor de gebruiker. Dat zal niet altijd kunnen, als er dingen uitgeprobeerd worden bij development; maar uiteindelijk moet de developer dan toch de vorige volle versie terugzetten en een upgrade script maken tot de gewenste toestand.

Bij minor aanpassing:
– telkens de database structuur bij de broncode, blijft.
– ook deze aanpassing als code meeleveren.

History?
– in database een history bijhouden van in gebruik geweeste versienummers, met datum, updaternaam enz.

Best eens een test maken om dat uit te proberen…

29/5/2022

Raspberry Pi weetjes

Filed under: — cybrarian @ 9:30 pm

Schermresolutie
Als je een klein scherm hebt aangesloten, kan je de scherresolutie (tijdelijk) verzetten; bv:
Scherm 7″ – > schermresolutie van “screen default” naar 640 x 480.
raspi-config, advandced options, A5 Resolution.

VNC

– Installeer VNC-viewer op je gewone computer.
– Op de Pi ga je de VNC verbinding toestaan, en kijken welk ip adres je Pi heeft.
(Bij instellingen stond hier VNC al enabled).
Rechtsboven is er een icoon van VNC. Als je daarop klikt, en je hebt netwerkverbinding, toont dat je ip-adres onder “connectivity”; zoniet niet.
bv 192.168.1.29
– Dat adres ga je op de andere computer ingeven in VNC viewer.
(Maar er is blijkbaar nog iets nodig, want voorlopig lukt het niet te verbinden. Het scherm klapt gewoon dicht en ik kan niet zien wat er fout ging. Ik probeer ssh; staat ook aan. Ping: werkt in beide richtingen).
– Scherm kiezen: doormiddel van een :0 of :1 vraag je het scherm.
– wachtwoord: je kan standaard unix (Linux) wachtwoord gebruiken, of je kan VNC server instellen op een zelfgekozen wachtwoord (instelling: VNC password).
Je kan op de remote computer vanaf de commandline werken om te starten (dan zie je in de output ook eventuele foutmeldingen):

cybrarian@copyleftbox:~>vncviewer 192.168.1.113:0
TigerVNC Viewer 64-bit v1.10.1
Copyright (C) 1999-2019 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
.
Mon May 29 23:42:33 2023
DecodeManager: Detected 4 CPU core(s)
DecodeManager: Creating 4 decoder thread(s)
CConn: Connected to host 192.168.1.113 port 5900
CConnection: Server supports RFB protocol version 5.0
CConnection: Using RFB protocol version 3.8
CConnection: Choosing security type VncAuth(2)
.
Mon May 29 23:42:38 2023
CConn: Using pixel format depth 24 (32bpp) little-endian rgb888

SSH
Bij instellingen stond ssh niet enabled? Klik aan.

sudo raspi-config

26/5/2022

Firefox: Create new profile?

Filed under: — cybrarian @ 12:33 pm

Na een systeemupdate (die, later gezien, fout was gegaan) krijg ik volgende vraag bij het opstarten van Firefox:

You’ve launched an older version of Firefox
Using an older version of Firefox can corrupt bookmarks and browsing history already saved to an existing Firefox profile. To protect your information, create a new profile for this installation of Firefox.

met twee knoppen: “Create New Profile” en “Quit”

Als je Quit kiest sluit Firefox, en krijg je de volgende keer weer dezelfde vraag.
Als je “Create New Profile” kiest, start Firefox met een “proper” profiel; zonder bookmarks, history, geen bewaarde wachtwoord ingaven enz.

Hetzelfde soort melding kan je ook krijgen met Thunderbird:

A newer version of Thunderbird may have made changes to your profile which are no longer copatible with this older version.

Met Thunderbird is het nog vervelender als je allerlei nieuwe account instellingen moet doen (mailserver, enz), dus ik doe “Quit”.

In dit specifieke geval heb ik de instellingen van de repositories nagekeken; er was een update gestart met “releasever”, maar in de repositories stonden nog de gewone vermeldingen van openSuse 15.2. Ik heb de instellingen aangepast, en terug een update gestart, waardoor het syteem nu effectief op 15.3 is beland. Ik kan Thunderbird nu starten, en ik krijg geen melding meer.

Doordat ik bij Firefox “New Profile” had gekozen, moet ik nu het oude profiel terughalen.

Start de profilekeuze door op de commandolijn:

firefox -p

Je kan dan instellen met welk profiel de browser moet starten, ik kies het oude / default profiel, en start Firefox: opgelost!

De profielen zitten in ~/.mozilla/firefox, en hebben daar een “willekeurige” naam, bv jrj2wsf.default-esr78 en ajb0s3zm.default-release.

Normaal komen deze meldingen enkel voor als je bv een developer versie afhaalt en naast een bestaande installeert.
Ik vermoed dat de oorzaak is: de oude opensuse 15.2 heeft zijn browser altijd ge-update. De nieuwe opensuse 15.3 is gemaakt voor 15.2 verviel, en de initiele browserversie is daar dus ouder dan de laatste browserversie uit de 51.2 udpates. Onmiddellijk na distributie upgrade van 15.2 naar 15.3, en vóór de updates van 15.3 zit je even in dit anachronisme.
Als ik een nog niet geupdate opensuse 15.2 vind probeer ik deze theorie te verifiëren…

Powered by WordPress