Pääsivulle | TIETOTEKNIIKAN PÄÄSIVULLE
Herbaario-sovellus
YLEISTÄ
Sovellus on tarkoitettu kasvien kerääjän apuvälineeksi ja
varsinaisen näyte- ja valokuva-kokoelman lisäksi. Se esittää
luetteloita, näyttää kuvia ja kirjoittaa muistivihkoja. Sovelluksen
täydelliseksi käyttämiseksi on tarpeen ottaa digikuvia kasveista,
skannata valokuvia tai negatiiveja, skannata näytteitä ja siirtää
kyseiset tiedostot ohjelmiston käyttöön.
Olen tehnyt sovelluksen sekä Windows- että macOS -ympäristöön.
Molemmat versiot käyttävät samaa SQLite-tietokantaa. MacOS-sovellus
on hieman suppeampi toiminnallisuuksiltaan.
Kasvit voivat olla fyysisinä näytteinä tai valokuvina, tai sitten
pelkästään digikuvana. Näytteet ja fyysiset valokuvat voidaan
tallentaa myös skannattuina kuvina. Lisäksi vanhempien valokuvien
negatiiveista on tieto kannassa.
Sovellus tarvitsee käynnistyäkseen tiedoston Herbaario.ini jossa on
eräiden tiedostojen nimet ja niiden sijainnin polut. Katso tarkemmin
jäljempänä. Tämän ini-tiedoston tulee sijaita samassa kansiossa
sovellustiedoston Herbaario.exe (tai Herbaario.app) kanssa.
Kaikkien herbaariosovelluksella hoidettavien kuvien tulee olla
samassa kansiostossa, eli ini-tiedoston määrittelemässä kansiossa
alikansioina (kansiorakenne saa olla syvä). Itse kuvat ovat
tavanomaisessa kansiorakenteessa, eli niitä ei ole viety tietokannan
tauluihin, ei myöskään thumbnailejä. Sovellus tukee seuraavia
kuvatiedostoja: jpg, jpeg, bmp, tif, tiff, png (tiedostopääte saa
olla pienaakkosilla tai suuraakkosilla).
Windows-ympäristön sovellus on tehty työkalulla Visual Studio
Community 2017 ja se toimii Windows 8.1:ssa ja Windows 10:ssä.
Sovellus toimii sekä 32- että 64-bittisessä versiossa.
Ohjelmointikieli on C#. Sovellus on tehty WPF-käyttöliittymällä.
MacOS-ympäristön sovellus on tehty Xcode:lla käyttäen
ohjelmointikielenä Swiftiä. Aiempi versio oli tehty Objective-C:llä.
Päivitän sovelluksen heti uusiin Mac-ympäristöihin, kun uusia
käyttöjärjestelmä- ja Xcode-versioita ilmestyy.
Windows-kehitysympäristö minulla on sekä 32-bittisessä että
64-bittisessä Windowsissa. Exe-tiedostojen käytössä ristiin ei ole
ongelmia. Sovellustyökalusta johtuu, että työasemassa on oltava
asennettuna dotnet Framework 4.6.1. Windows 8.1 ja Windows 10
sisältävät sen jo valmiiksi ilman eri toimenpiteitä. Lisäksi
kehityskoneeseen tulee purkaa sopivaan paikkaan SQLite-ohjelmiston
versio sqlite-netFx46-binary-Win32-2015-1.0.105.0.zip
Mac-ympäristössä Herbaario.app ja HerbaarioMac.ini on kopioitu
kansioon /Applications/Herbaario. Muita asennustoimenpiteitä ei
tarvita. SQLite on osa macOS:ää. Tämän hetken (22.6.2017) ympäristö
on Xcode 8.3.3 ja macOS 10.12.5.
Omassa tietokannassani on tätä riviä kirjoitettaessa
(22.6.2017) 2431 kohdetta, 1892 havaintoa ja 1004 eri kasvia.
TAULURAKENNE
Tauluja Kasvit, Havainnot ja Kohteet ylläpidetään siten, että niissä
on vain olemassa olevia kohteita vastaavat rivit. Tauluissa Heimot
ja Suvut voi olla muitakin rivejä eikä näistä tauluista poisteta
mitään kasveja päivitettäessä.
Taulusta Paikat poistetaan ylimääräisiä rivejä silloin kun
päivitysten yhteydessä havaitaan paikka jota mikään havainto ei
tarvitse, mutta ylimääräisiä rivejä voi olla eli uusi paikka voidaan
tehdä vaikka ei olla tekemässä havaintoa.
Uuden kasvin voi viedä tietokantaan vain uuden havainnon tekemisen
yhteydessä, mutta kannassa voi olla kasveja ilman havaintoa. Niitä
voi jäädä havainnolle tehdyn muutoksen yhteydessä.
Tässä on keskeiset taulut ja niiden yhteydet. Kaaviokuva on hieman
vanhentunut eikä se oli tietoteknisesti viimeistelty, mutta siitä
saa hyvän käsityksen perusratkaisusta.
Suurempi kuva
Havainnot: keskeisin taulu. "Havainto" on samana päivänä samasta
paikasta kootut saman kasvin eri versiot (eri näytteet, kuvat jne.)
Kohteet: yksittäinen kokoelmaan viety kohde samasta
havainnosta
Kasvit: kasvin määrittely
Suvut: kasvin suku, esimerkiksi Ranunculus
Heimot: kasvisuvun heimo, esimerkiksi Ranunculaceae
Paikat: mistä kasvi otettu kokoelmaan, tai tarkemmin sanoen
havaintopaikka
Alueet: havaintopaikan kasvimaantiteellinen alue Suomessa, ja karkea
jaottelu ulkomailla
Laadut: miten laadukas kohde on
Lajit: näyte, digikuva, valokuva, negatiivi
ini-TIEDOSTO
Sovellus tarvitsee ini-tiedoston (Herbaario.ini), joka on
sijoitettava samaan kansioon itse sovelluksen (Herbaario5.exe)
kanssa. Sovellus löytää tiedoston sieltä. Sovellus ei kirjoita
siihen mitään. Lisäksi samassa kansiossa sovelluksen kanssa on
oltava joukko kirjastotiedostoja.
Tässä esimerkkitiedosto Windows- ja Mac-koneelle. Tiedostossa on
oltava nämä rivit, eli jokaiselle avaimelle omansa.
-----Windows------
kuvapolku#
E:\HERBAARIO\Kuvat
muokkaa# Joo
tuotantokanta# E:\HERBAARIO\Herbaario_tuotanto.db
testikanta# E:\HERBAARIO\Herbaario_testi.db
karttapolku# E:\HERBAARIO\Kartat
latauskuva# E:\HERBAARIO\Latauskuva.gif
latauskuva_test# E:\HERBAARIO\Latauskuva_testi.gif
javapolku# E:\HERBAARIO\Kartat\JAVA
------Mac-----
kuvapolku# /Users/Erkki/Pictures/Herbaario
muokkaa# Joo
tuotantokanta#
/Users/Erkki/Pictures/Herbaario/Herbaario_tuotanto.db
testikanta# /Users/Erkki/Pictures/Herbaario/Herbaario_testi.db
karttapolku# /Users/Erkki/Pictures/Herbaario/Kartat
javapolku# /Users/Erkki/Pictures/Herbaario/Kartat/JAVA
-----------
kuvapolku#
kertoo minkä kansion alla on kaikki kuvat
Jos kuvapolku on juurikansiossa, pitää olla esimerkiksi
(Windows): kuvapolku# E:\
muokkaa#
kertoo saako käyttäjä muokata tietokannan sisältöä: Joo / Ei
tuotantokanta#
kertoo missä sijaitsee tuotantokanta ja mikä sen nimi on
testikanta#
kertoo missä sijaitsee testikanta ja mikä sen nimi on
karttapolku#
kertoo kansion minne tallennetaan kasvien löytöpaikkoja esittävät
karttakuvat
latauskuva#
kertoo alun menunäytön kuvan sijainnin ja nimen, itse kuvan pitää
olla kooltaan leveys x korkeus = 640x512
latauskuva_test#
kertoo testikannan menunäytön kuvan kuten edellä.
javapolku#
kertoo kansion missä on Maanmittauslaitoksen maastokarttojen
katsomiseen tarvittavat omat ja OpenLayers3-kirjaston tiedostot
Karttanäytöt: Sovellus tallentaa havaintopaikan koordinaatit ja
näyttää paikan sijainnin Googlen kartalla.Sovelluksessa voidaan myös
katsoa paikkaa Maanmittauslaitoksen maastokartalla, jos paikka on
Suomessa. Katso koodiesimerkki.
SOVELLUKSEN OMINAISUUKSIA JA NÄYTTÖJÄ
Sovelluksen keskeiset toiminnallisuudet ovat monipuolinen haku ja
luonteva uusien havaintojen tuonti.
Tässä niihin liittyviä kuvia Windows-sovelluksesta:
Uuden havainnon tuonti, aloitus:
Suurempi
kuva
Uuden havainnon tuonti, kasvi ja paikka jo
annettu:
Suurempi
kuva
Uusi havainto valmiina:
Suurempi
kuva
Hakutulosten katsominen kohdetta haettaessa:
Suurempi kuva
Oheisena Mac-sovelluksesta pari kuvaa:
Kohteiden haku:
Suurempi kuva
Havainnon tiedot:
Suurempi kuva
Käyttöliittymästä pääsee myös hallinnoimaan perustauluja kuten
Heimot ja Suvut.
Lisäksi sovelluksesta saa ulos lukumäärätietoja kokoelman
laajuudesta eri muuttujien suhteen.
Sovellus tietokantoineen on helppo siirtää toiseen työasemaan tai
varmistusta varten ulkoiselle kiintolevylle.
HISTORIAA
Tätä sovellusta olen kehittänyt koko tietokoneharrastukseni ajan
läpi kaikkien käyttämieni alustojen ja tietokoneiden.
Versio 13 Macciin toukokuussa 2018: Swift 4, lisätty uusia luokkia,
koodia tehostettu ja päivitetty laajasti
Versio 13 Windowsiin toukokuussa 2017: C# WPF, SQLite 3, Visual 2017
Studio Community
Versio 12.3.1 Pikkukorjauksia macOS 10.12:n kirjastomuutosten takia
Versio 12.3: Maanmittauslaitoksen maastokarttanäkymät ohjelmoitu
käyttöön syyskuussa 2016
Versio 12.0 Macciin, kielenä Swift, ja toiminnallisia muutoksia.
Valmistunut tammikuussa 2015.
Versio 12.0 Windowsiin, paljon pieniä kehittämisiä, dotnet Framework
4.6, valmistui 22.6.2016
Uusi versio 11.0 Macciin syksyllä 2012 ja Windowsiin keväällä 2013
- vain tärkeimmät ominaisuudet toteutettu Macciin
- uusi tietokanta-alusta SQLite
Muutokset 9.4 -> 10.0 keväällä ja kesällä 2011
- tietokantapohjaksi SQL Server Compact SP2
- luettelonäytön muutokset
Muutokset 9.1 -> 9.4 (Windows 7 vuosina 2009-2010)
- Visual C# 2010 Express sovelluskehittimeksi, ja
pääkehitystyö Windows 7:ssa
- Accessista poistettiin tallennetut kyselyt joita
ei sovellus siis enää käytä
- DotNet Framework 3.5
- lukuisia käyttöliittymän pieniä kehittämisiä
- hakutuloksena eräissä näytöissä kuvajoukko
Muutokset 9.0 -> 9.1 (Windows Vista kesällä 2007)
- Visual C# 2008 beta2 sovelluskehittimeksi
- sovelluksen kehitys Nummella Vista-ympäristössä
- raportit saatu kuntoon
- lukuisin bugikorjauksin luotettavuus saatu nyt
hyväksi
Tässä välissä tutkin seuraavaa:
- jospa tekisin selainkäyttöliittymän? Työkaluna
Visual Studio Web Developer 2005 Express. Syntyi pieni demo
- jospa ottaisin tietokannaksi SQL Server 2005
Express? Tämä on otettu pitkälti huomioon koodissa, menuun lisäsin
mahdollisuuden valita SQL Serverin tietokannaksi. Mutta datasisältö
on ajantasainen Accessissa
Muutokset 8.0 -> 9.0 (Windows XP maalis-heinä 2006)
- Visual Studio C# Express 2005
sovelluskehittimeksi
- paljon pieniä täydennyksiä ja korjauksia
- edelleen Access tietokantana
Muutokset 7.1 -> 8.0 (vuonna 2005)
- SharpDevelop sovelluskehittimeksi
- ohjelmointikieleksi C#
- dotnet Framework 1.1
- uudet näytöt
- löytöpaikan karttakuva voidaan tallentaa
- tutkin ottaisinko MySQL:n tietokannaksi, mutta
päädyin pysymään Accessissa
Muutokset 6.0 -> 7.0 ja 7.1 (Windows 2000 vuosina
2002-2004)
- tehtiin sovellus Windows 2000:lle käyttäen Javaa
- otettiin käyttöön Access tietokannaksi
- koodi kirjoitettiin edelleen tekstieditorilla
TextPad
- kasvi voi olla tuntematon tai nimetön
Muutokset 5.1 -> 6.0 (Linux PC tammi-heinä 2000)
- uusi versio tehtiin Linuxilla PC:lle (Gnome/GTK)
- tietokannan rakenne (tekstitiedostot) uusittiin täysin, ja nyt
samasta kasvista voi olla
useita näytteitä, valokuvia ja digikuvia
- tietokannan rakenteessa ideoijana Oraclen tietokantojen
perusrakenteet
- ulkonäkö muuttui kokonaan, se tehtiin käyttäen Gnome:n
perusrakenteita
- monet haut ja logiikat tehtiin niin, että ne ovat ensisijaisesti
yksinkertaisia ja ymmärrettäviä
Muutokset 5.0 -> 5.1 (Amiga maalis 1998)
- loka-marraskuussa -98 korjattiin bugeja ja lisättiin
arvovarmistuksia
- kaikkien avaintaulukoiden korjaus poistojen ja muutosten
yhteydessä
- kesävihkojen tulostus korjattiin
- muutama rakenteellinen korjaus
Muutokset 4.2 -> 5.0 (Amiga joulu 1997)
- lisättiin negatiivit, löytöpaikan koodaukset ja löytöpaikan
hakuikkuna
- korttien dynaaminen varaus
- poistettiin aakkostusta varten olleet muodot sukunimi lajinimi
- korjattiin bugeja
Muutokset 4.1 -> 4.2 (Amiga joulu 1996)
- korjattiin bugeja
- ohjelman rakennetta virtaviivaistettiin
- ikkunan avaava aliohjelma pääsääntöisesti myös sulkee sen
- vähennettiin external -muuttujia
- käyttöön ikut[]- ja drg[]- taulukot avonaisille ikkunoille
Muutokset 4.0 -> 4.1 (Amiga tammi 1996)
- korjattiin bugeja
Muutoksia 3.2 -> 4.0
- uudet värit, oma ulkonäkö ikkunoihin
- doku kuntoon
Muutoksia 3.1 -> 3.2
- 2. tietokortti (tiedosto) lisättiin
- joitain gadgetteja ohjelmoitiin uusiksi
- ohjelmasta kaksikielinen (suomi/englanti), kokeilu 3.2
Muutoksia 3.0 -> 3.1 (Amiga):
- Muistivihon Taitto toimii nyt 705 kasviin asti
- lisättiin vaihtoehdoiksi valokuva ja digikuva
- kortin ulkonäköä kohennettiin
- lisää luetteloita
Muutoksia 2.2 -> 3.0 (Amiga 1988):
- kielen vaihto: AmigaBasic -> Lattice C 3.03
- ikkunat uusiksi
- kuvafailin nimi lisättiin
- nimen koolle jne ei enää rajoituksia
- Kasvidata on nyt ascii-faili
Muutoksia 2.0 -> 2.1 -> 2.2 (Amiga):
- input kirjoitetaan suoraan kortin riveiksi
- tekstin input yhtenäistettiin
- sort on nyt konekielinen
Muutoksia 1.2 -> 2.0 (Amiga):
- failit kopioidaan ensin -> ram: ja käytetään sieltä
- kortin kentille lisää tilaa
- muistikirjan sisältöä laajennettiin
Muutoksia 1.0 -> 1.1 -> 1.2 (1987):
- C64 Basic-ohjelma siirrettin Amigaan ja muunnettiin ->
AmigaBasic
Ohjelman ensimmäinen versio tehtiin Commodore 64:llä noin vuonna
1983.
-------------------------------
(sivua muokattu 18.12.2019)