Flauto

From ICO wiki
Jump to navigationJump to search

Meeskond Flauto

  • Lelet Hollo

XML failis on valikuline info Eesti veinitootjate kohta. Loetelus on Google otsingu tulemusena leitud 5 suuremat veinitööstust, puuduvad väiketootjad ja veinitalud. Info internetis on veinitootjate kohta üsnagi puudulik, näiteks Tarco Vein AS toodetavate veinide osas teave praktiliselt puudub ja nende kodulehe viide infomaterjalides suunab lehele estiko.ee, mis on Tartu kinnisvara haldusega ning pakkematerjalide tootmisega tegelev ettevõte. Ka AS Karme (Karksi veinid) koduleht on uuendamisel ning nende veinide osas oli info saadaval vaid pildimaterjalina. Mitmed veinitööstused on ka tegevuse lõpetanud või mõne suurema ettevõttega ühinenud.

XML

XML

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="veinitootjad.xslt"?>
<veinitootjad>
  <veinitootja id="1" regKood="10215730">
    <nimi>Karme AS</nimi>
    <koduleht><![CDATA[www.karksi.com]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="11" maht="750" yhik="ml">Karksi Jõhvikavein</toode>
        <toode vol="11" maht="750" yhik="ml">Karksi Kirsivein</toode>
        <toode vol="11" maht="750" yhik="ml">Karksi Mustasõstravein</toode>
      </tooteLiik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="2" regKood="10034030">
    <nimi>Põltsamaa Felix AS</nimi>
    <koduleht><![CDATA[www.felix.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Tõmmu</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Punane</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Kuldne</toode>
        <toode vol="11" maht="750" yhik="ml">Põltsamaa Lossivein 19</toode>
        <toode vol="11" maht="750" yhik="ml">Põltsamaa Lossivein 28</toode>
        <toode vol="11" maht="750" yhik="ml">Põltsamaa Lossivein 85</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Kirsisuudlus</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Vaarikamusi</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Kuldne 2005</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa tõmmu</toode>
      </tooteLiik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[hõõgveinid]]></nimetus>
        <toode vol="14" maht="700" yhik="ml">Põltsamaa Klassikaline Glögg</toode>
        <toode vol="4.5" maht="1" yhik="l">Põltsamaa Glögg</toode>
        <tooteliik tyyp="vein">
          <nimetus><![CDATA[vahuveinid]]></nimetus>
          <toode vol="8.5">Põltsamaa Fest Classic</toode>
        </tooteliik>
      </tooteliik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="3" regKood="10229471">
    <nimi>Võhu Vein AS</nimi>
    <koduleht><![CDATA[www.vohuvein.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="12" maht="500" yhik="ml">Valgesõstravein</toode>
        <toode vol="12" maht="500" yhik="ml">Mustsõstravein</toode>
        <toode vol="12" maht="500" yhik="ml">Rabarberivein</toode>
      </tooteLiik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[viinamarjaveinid]]></nimetus>
      </tooteliik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[kangendatud puuviljaveinid]]></nimetus>
        <toode vol="19" maht="500" yhik="ml">Munga Kirsipisar</toode>
        <toode vol="18" maht="500" yhik="ml">Sõstravein Kange</toode>
        <toode vol="21" maht="500" yhik="ml">21 punane</toode>
        <toode vol="18" maht="500" yhik="ml">Wiru Karge Winemix Blackcurrant</toode>
      </tooteliik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[hõõgveinid]]></nimetus>
        <toode vol="13" maht="750" yhik="ml">Hõõguv Helbeke</toode>
      </tooteliik>
      <tooteliik tyyp="siider">
        <nimetus><![CDATA[siidrid]]></nimetus>
        <toode vol="5.5" maht="750" yhik="ml">Pirni Siider Fresh</toode>
        <toode vol="5.5" maht="750" yhik="ml">Õuna Siider Fresh</toode>
      </tooteliik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="4" regKood="10060078">
    <nimi>Tarco Vein AS</nimi>
    <koduleht><![CDATA[www.estiko.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="0" maht="0" yhik="0">Info puudub</toode>
      </tooteLiik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="5" regKood="10067318">
    <nimi>Valtu Vein AS</nimi>
    <koduleht><![CDATA[www.karastusjoogid.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja-marjaveinid]]></nimetus>
        <toode vol="11" maht="700" yhik="ml">Tegija Kirsi</toode>
        <toode vol="11" maht="700" yhik="ml">Tegija Vaarika</toode>
        <toode vol="11" maht="700" yhik="ml">Tegija Mustasõstra</toode>
        <toode vol="11" maht="700" yhik="ml">Tegija Jõhvika</toode>
        <toode vol="13" maht="700" yhik="ml">Pohlavein</toode>
        <toode vol="13" maht="700" yhik="ml">Kirsivein</toode>
        <toode vol="13" maht="700" yhik="ml">Valtu Mustasõstravein</toode>
        <toode vol="13" maht="700" yhik="ml">Valtu Jõhvikavein</toode>
        <toode vol="13" maht="700" yhik="ml">Valtu Ebaküdooniavein</toode>
        <toode vol="14" maht="500" yhik="ml">Rubiin</toode>
        <toode vol="14" maht="500" yhik="ml">Jõhvikavein</toode>
        <toode vol="14" maht="500" yhik="ml">Ebaküdooniavein</toode>
      </tooteLiik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[kangendatud puuvilja-marjaveinid]]></nimetus>
        <toode vol="19" maht="500" yhik="ml">Kõuts - kange õunavein</toode>
        <toode vol="19" maht="500" yhik="ml">Susi - kange sõstravein</toode>
        <toode vol="19" maht="500" yhik="ml">Sõnn - kange õuna-jõhvikavein</toode>
        <toode vol="19" maht="500" yhik="ml">Jäär - kange õuna-ebaküdooniavein</toode>
        <toode vol="18" maht="500" yhik="ml">Krants - kange õuna-kirsivein</toode>
        <toode vol="22" maht="500" yhik="ml">Kult - kange õuna-pohlavein</toode>
        <toode vol="22" maht="700" yhik="ml">Ardam</toode>
      </tooteliik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[hõõgveinid]]></nimetus>
        <toode vol="11" maht="700" yhik="ml">Glögg Talvenauding</toode>
        <toode vol="14" maht="700" yhik="ml">Hõõgvein Riina</toode>
      </tooteliik>
      <tooteliik tyyp="siider">
        <nimetus><![CDATA[siidrid]]></nimetus>
      </tooteliik>
      <tooteliik tyyp="viin">
        <nimetus><![CDATA[viinad]]></nimetus>
      </tooteliik>
    </tooteLiigid>
  </veinitootja>
</veinitootjad>

XML Skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="veinitootjad">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="veinitootja">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="nimi" type="xs:string" />
              <xs:element name="koduleht" type="xs:string" />
              <xs:element name="tooteLiigid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="tooteLiik">
                      <xs:complexType mixed="true">
                        <xs:sequence minOccurs="0">
                          <xs:element name="nimetus" type="xs:string" />
                          <xs:element maxOccurs="unbounded" name="toode">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="vol" type="xs:decimal" />
                                  <xs:attribute name="maht" type="xs:integer" />
                                  <xs:attribute name="yhik" type="xs:string" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="tyyp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" maxOccurs="unbounded" name="tooteliik">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                          <xs:element minOccurs="0" maxOccurs="unbounded" name="toode">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="vol" type="xs:decimal" />
                                  <xs:attribute name="maht" type="xs:integer" />
                                  <xs:attribute name="yhik" type="xs:string" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element minOccurs="0" name="tooteliik">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="nimetus" type="xs:string" />
                                <xs:element name="toode">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="vol" type="xs:decimal" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="tyyp" type="xs:string" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="tyyp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:positiveInteger" use="required" />
            <xs:attribute name="regKood" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XML stiilifail 1

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="html" indent="yes"/>
    <xsl:template match="/">
      <html>
        <head>
          <title>Eesti veinitööstus</title>
        </head>
        <body>
          <h2 style="text-decoration:underline">Eesti veinitootjate lühikirjeldus</h2>
          <xsl:for-each select="veinitootjad/veinitootja">
            <h2 style="color:#660066"><xsl:value-of select="nimi"/></h2>
             Koduleht: <xsl:value-of select="koduleht"/>
            <br></br>
            <br></br>
            Tooteliigid:
            <br></br>
            <xsl:for-each select="tooteLiigid//nimetus">
              <ul>
              <li><xsl:value-of select="."/>
                <xsl:text> </xsl:text>
              </li>
              <br></br>
              </ul>
            </xsl:for-each>
          </xsl:for-each>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Vaatefail: Eesti veinitootjad

XML stiilifail 2

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="/">
    <html>
      <head>
        <title>Eesti veinid</title>
      </head>
      <body>
        <h2>Eesti veinitootjate veinid</h2>
        <xsl:for-each select="veinitootjad/veinitootja">
          <h3 style="color:#660066">
            Tootja: <xsl:value-of select="nimi"/>
          </h3>
          <table border="1" cellpadding="4">
            <tr bgcolor="#FF6666">
              <th>Nimetus</th>
              <th>Kangus, vol</th>
              <th>Maht</th>
              <th>Ühik</th>
            </tr>
            <xsl:for-each select="tooteLiigid//toode">
              <tr>
                <td>
                  <xsl:value-of select="."/>
                </td>
                <td>
                  <xsl:value-of select="@vol"/>
                </td>
                <td>
                  <xsl:value-of select="@maht"/>
                </td>
                <td>
                  <xsl:value-of select="@yhik"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Vaatefail: Eesti veinid

Retsensioon meeskonnale "Anonüümsed koodikommentaatorid"

Võtan endale raske ülesande retsenseerida ideaalilähedaselt ja perfektselt teostatud kodutööd meeskonna Anonüümsed Koodikommentaatorid teostuses. Esmalt väike tähelepanek, et väga sarnane antud tööga on meeskond Vertigo kodutöö, mis on samuti (küll isiklikult pikemalt süvenemata, ent olemasoleva retsensiooni põhjal otsustades), hästi ning korrektselt teostatud.

Anonüümsed Koodikommentaatorid lähevad aga mõne sammu veel rohkem süvitsi elementide dimensioonide osas ning erinevusena nende xml-elemendid on eestikeelsed. Samuti on lisatud faili kasutamist rikastavad meediaelemendid.

Analüüsitaval xml-failil on 6 dimensiooni, 3-l elemendil on kasutatud atribuute (film, naitleja, pilt), kõik õppejõu poolt soovitu on seega täidetud. XML fail on elementide ning sisu poolest väga mitmel erineval moel kasutatav ning infot on palju, see ei ole lihtsalt kodutöö „ärategemise“ eesmärke täitev dokument. Sisu erineval moel kasutamist on oskuslikult ära kasutatud ka stiilifailides.

Ainus mulle sisuliselt arusaamatuks jääv asi on näitleja potentsiaalne jagamine erinevatesse rollidesse. Esiteks on failist näha, et ühe näitleja esinemine mitmes rollis näites olevate filmide kohaselt ei ole põhjendatud ning teiseks ka reaalelus ei meenu mulle kuigipalju (hetkel ühtegi) filmi, kus ühel näitlejal oleks mitu rolli. See on rohkem teatrilavade omapära. Siiski - „pigem karta kui kahetseda“ - ning veaks ei saa seda kuskilt otsast lugeda, väikese eelarvega filmis võib sellist jagunemist siiski vaja minna.

Skeemifaili osas samuti probleeme ei leia, jällegi sisuliselt võib arutleda, kas <xs:attribute name="peaosa" use="required"> puhul „required“ on põhjendatud. Mõnede filmide puhul (nt Tarantino) võib olla peaosaliste määratlemine mõnevõrra raskendatud, nimekiri võib saada pikk või valikuliselt näitlejate nimetamine olla ebaõiglane. Samas kuna peaosaline on siiski filmi tõmbenumber, on tema esiletoomine oluline.

Ja last but not least – selle töö kõige magusam osa on põhjalikult ette võetud ja kaunilt teostatud kujundus. Stiilifailides on täiendava lisajõuna kasutatud eraldi css-faili, mis võimaldab visuaalses plaanis ilmselgelt mõnevõrra rohkem. Ainus asi, mis silma häirima jääb (kui vigu otsida), on <li> elementide (atribuut aasta ning element zanr) ette Mozilla ning Explorer brauseris tekkivad „täpikesed“ ehk listi punktid. Chrome neid mingil põhjusel ei ilmuta. Ülejäänud brausereid ei proovinud. Kehtib mõlema stiilifaili puhul.

Pisimärkustest hoolimata on tegu väga heatasemelise tööga, mille puhul jääb mulje, et tehnika ühtki loomingulist ideed ei kammitse ning kõik, mida ette võtta on soovitud, on lendleva kergusega ka realiseeritud.

ps. wiki lehekülje ajalugu näitab, et kõik materjal on üles pandud Olle Miku poolt. Küsimus panustamise osas konkreetselt selles kodutöös jätab seega küsimärgid seinale ;)

Veebiteenus

Veebiteenuse "pakend" asub dropboxis: https://www.dropbox.com/s/eqe1tsg8oyah2c9/Taimeravi.rar?dl=0

Kirjeldus

Info ravimtaimede kasutusvõimaluste kohta erinevate haigusnähtude või probleemide korral. Teenusel on esialgsete plaanide kohaselt 2 tüüpi kasutajad: administraator(id) ja tavakasutajad. Tavakasutaja saab teha otsingu nii taime nime kui näidustuse järgi, samuti saab ta ise lisada ravimtaimi koos vastava näidustusega. Teatud tabelitesse saab infot lisada ainult administraator. Algusjärgusolevate plaanide kohaselt peavad kindlalt eksisteerima järgmised olemid:

  • ravimtaim
  • näidustus
  • raviviis
  • ravimine
  • autor
  • allikas
  • viitamine
  • kasutaja

Olemid

Ravimtaim

  • nimetus eesti keeles
  • nimetus ladina keeles

Siin tabelis võib probleem tekkida taimede erineva võimaliku nimetusega, näiteks kas "naistepuna" või "liht-naistepuna". Seetõttu igaks juhuks ka ladina keelne nimi, mis ei ole siiski kohustuslik. Sisestamisel peab teenus pakkuma andmebaasis olevaid vasteid sisestatavale nimele. Küsimus on, millisel hetkel ja kui varakult ta peaks juba hakkama sarnasust tabelist otsima.

Näidustus

  • nimetus

Siin tekib sama küsimus, mis taimenimede puhul, et ühel haigusel võib sisuliselt olla mitu nimetust. Ja kas saab ühte patta panna näiteks peavalu ning migreeni ? Samuti võib kirjutada üldiselt "nahaprobleemid" või spetsiifilisemalt "ekseem", "psoriaas", "akne" jms.

Raviviis

  • nimetus
  • valmistamine

See saab tõenäoliselt olema library-tüüpi loetelu, mida täidab ainult administraator. Nimetuse variandid on näiteks: tee, leotis, tõmmis, tinktuur, ekstrakt, keedis jms. Valmistamise korral on lühikirjeldus ilma kogusteta ning valmistusajata, näiteks keedise saamine eeldab taime keetmist, tinktuur eeldab taime segamist viinaga jne.

Ravimine

  • tarvitamine
  • kommentaar
  • tüüp
  • alates ?
  • kuni ?

Ravimine paneb kokku taime, näidustuse, raviviisi, viite ja lisab sellele konkreetsel juhul toimiva kirjelduse, kuidas tarvitada. St koostisosade kogused ning valmimisaeg. Samuti kui sageli ja millistes kogustes tarvitada. Kasutaja sisestab selle kõik nö vabas vormis. Kommentaar pakub kasutajale võimalust jagada oma kogemusi või anda muud täpsustavat informatsiooni. Tüübi all mõtlen kas seespidiselt või välispidiselt kasutamist. Kuna Raspel soovitab ainult sisenevate otsadega olemile lisada ka "alates" ja "kuni", siis võibolla lisan ka need väljad.

Autor

  • eesnimi
  • perenimi
  • amet
  • kommentaar

Esialgu ma ei tekita ühtset "person" tabelit, vaid eraldi on siiski autor ja kasutaja, kuna mõlemal juhul olulised andmed on üsna erinevad. Autor näitab informatsiooni päritolu. Võib olla ka suuline pärimus, näiteks info vanaemalt. Autor lisab informatsioonile usaldusväärsust. Autori lisamine ei ole siiski kohustuslik.

Allikas

  • pealkiri
  • tüüp
  • avaldatud
  • kommentaar

Tüüp on library-tüüpi loetelu, mille sisestab administraator. Võimalikud valikud on näiteks: raamat, artikkel, veebileht, raadio, televisioon, suuline pärimus. Avaldatud ei ole võibolla kõige parem sõna, aga hetkel parem puudub. Selle all mõeldakse kas aastat (raamat) või formaati kuupäev/kuup/aasta (artikkel, raadiosaade vms).

Viitamine

Liidab tabelid "allikas" ja "autor".

Kasutaja

  • eesnimi
  • perenimi
  • kasutajanimi
  • parool
  • email
  • telefon
  • tüüp
  • alates ?
  • kuni ?

Kasutajaid on nagu öeldud 2 tüüpi: administraator ja tavakasutaja, kes võib olla nii lugeja kui sisestaja. Iseenesest vist peaks olema lisaks veel ka autentimata kasutaja, kes saab lihtsalt andmeid lugeda ?