JWT 2016 luento 10. ti klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari
|
|
- Tuula Ahola
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 JWT 2016 luento 10 ti klo Aulikki Hyrskykari PinniB
2 Viime luennolla o Funktioista JavaScriptissä Tänään o AJAX ja JSON o Harjoitustyön tehtävänanto o Vierailuluento "Avoin data Tampereen seudulla" tietohallintoasiantuntija Joonas Dukpa, Tampereen kaupunki 2
3 AJAX ja JSON o Ennen web-sovellusohjelmat (palvelimella) keskustelivat selaimen kanssa staattisten sivujen välityksellä HTTP GET CSS HTML HTTP POST Client Server Database 3
4 Asynkroninen toiminta o Ongelma sivunpäivityspyyntö palvelimelle tuo koko sivun sivulle tarvittava uusi tieto mahdollisesti vain pieni osa sivulla selain jähmettyy odottaessaan että uuden sivun tiedot saadaan muodostetuksi ja tuoduksi selaimeen odotanko lieden vieressä, että vesi kattilassa alkaa kiehua? EN. Haluan tehdä jotain muuta sen aikaa o Ratkaisu haluan olla asynkroninen! 4
5 AJAX (Asynchronous JavaScript and XML) o Ajax on joukko tekniikoita: HTML, DOM, JSON/XML, XMLHttpRequest mahdollistaa vuorovaikutteisemmat web-sovellukset selainohjelma noutaa pieniä tietomääriä palvelimelta vain sivun osaan lataamatta koko verkkosivua uudelleen asiakaskone selain (client) vastauksen odottelu ei lopeta sivun muuta toimintaa Palvelin (server) 5
6 Tiedon välittäminen AJAXia käyttäen o Lähetetään pyyntö tiedon noutamiseksi palvelimelta o Tiedon saavuttua puretaan (jäsennellään) tieto niin että sitä voidaan käyttää o Päivitetään niiden elementtien sisällöt käyttäen hyväksi tarvittavia osia saadusta tiedosta ja DOM-puuta o Siirrettävä tieto voi olla esimerkiksi vastaus käyttäjän tiedonhakupyyntöön esim. hae seuraavat juna-aikataulut ennakointi käyttäjän mahdollisesti tulevaan tiedonhakupyyntöön esim. Google maps ennakoi kartan vierityspyyntöön noutamalla seuraavat alueet jo valmiiksi etukäteen 6
7 Tiedonvälityksessä käytetyt formaati o Tieto voidaan saada HTML-koodina + helppo näyttää sivulla, ei tarvetta sen kummempaan lisäkäsittelyyn - HTML-koodi tulee tuottaa jo palvelimella valmiiksi - huono siirrettävyys: soveltuu vain selain-ympäristössä käytettäväksi - tieto välitettävä samalta palvelimelta XML + joustava formaatti, hyvä siirrettävyys - runsassanainen formaatti, saattaa vaatia paljon lisäkäsittelyä - tieto välitettävä samalta palvelimelta JSON + kompakti formaatti, tietoa voi hakea muiltakin palvelimilta (JSONP) + helppo muunnos JavaScript-olioksi - tarkka formaatti, puuttuva pilkku tai lainausmerkki rikkoo koko tiedon 7
8 JSON (JavaScript Object Notation) o Nykyisin paljon käytetty tiedonsiirtoformaatti (merkkijono) lähes sama formaatti jota käytimme aiemmin literaaliolioiden luomiseksi literaaliolio var kirja = {aihe: 'JavaScript', julkaistu: 2011}; sama JSON-muotoisena (huomaa lainausmerkkien käyttö!) var kirjaasjsstr = '{"aihe": "JavaScript", "tekija": 2011}'; // olio // merkkijono o JavaScriptissä valmiit metodit esitysmuotojen välisiin muuntoihin var olio = JSON.parse(mjono); // konvertoidaan JSON-merkkijonosta olio var olioasjsstr = JSON.stringify(olio); // konvertoidaan oliosta JSON-merkkijono 8
9 Datan noutaminen palvelimelta 1. Luodaan tiedon siirrosta huolehtiva olio olio XMLHttpRequest on selaimissa valmiiksi toteutettu olio var req = new XMLHttpRequest(); 2. Sidotaan oliolle pyyntöön vastaamista kuunteleva käsittelijäfunktio vastauksen käsittelijä sidotaan käyttäen olion onreadystatechange -metodia req.onreadystatechange = tiedonkasittelija; 3. Avataan yhteys palvelimelle ja lähetetään pyyntö req.open('get', 'polku-tietoon-palvelimella', true); // req.send(); GET määrittää siirtoyhteyden tyypin (toinen mahdollinen on POST) toinen parametri osoite johon pyyntö kohdistuu (tiedosto palvelimella boolean-arvo määrittää käsitelläänkö pyyntö asynkronisesti 9
10 Vastauksen käsittely o XMLHttpRequest-olion oliomuuttuja readystate kertoo missä vaiheessa tiedon hakun on, kun tiedon haku on suoritettu sen arvo == 4 req.readystate == 0 //uninitialised req.readystate == 1 //loading req.readystate == 2 //loaded req.readystate == 3 //interactive req.readystate == 4 //complete oliomuuttuja status kertoo, onnistuiko haku req.status ==200 liitetty onreadystatechange-kuuntelija tarkastaa 10
11 Koodi yhteen koottuna req = new XMLHttpRequest(); // jos tiedon siirto on tehty loppuun if (req.readystate == 4) { // jos tiedon siirto onnistui if (req.status == 200) { // tähän noudetut tiedot kasittelevä funktio tai sen kutsu } else { // käsitellään virhetilanne, virhekoodi oliomuuttujassa req.statustext } } req.open("get", "palvelimelta-noudettavan-tiedoston-url", true); req.send(); 11
12 Esimerkki: Juna-aikataulujen noutaminen palvelimelta o Halutaan hakea aikataulutietoja sivulle päivittämättä koko sivua muu sivu säilyy, noudetaan vain tiedot taulukkoon sivu voisi olla monimutkainen ja noudettu tieto esim. vain yksi junamatka jokin ohjelma tai tietokantakysely muodostaisi json-tiedon palvelimella tällä kurssilla ei palvelinpuolen ohjelmointia, joten json-tieto tallennettu tiedostoksi 12
13 o Funktio haeuusitieto(), jota kutsutaan, kun sivulla painettaan jotain painikkeista aamu, aamupäivä, iltapäivä, ilta function haeuusitieto(mika) { // haetaan pyydetyt tiedot - normaalisti tiedot tuottaisi jokin ohjelma, tietokantakysely, // tms. mutta nyt esimerkin vuoksi palvelimelle on tallennettu neljä json-tekstitiedostoa: // "data/aikataulu1.json", "data/aikataulu2.json", "data/aikataulu3.json", "data/aikataulu4.json" // ============================================================================================== var url = "data/aikataulu" + mika + ".json"; // luodaan XMLHttpRequest-olio req = new XMLHttpRequest(); // ja sidotaan siihen kasittelijaksi funktio, joka käsitteleen haetun tiedon req.onreadystatechange = function () { // jos tiedon siirto req-olioon suoritettu if (req.readystate == 4) { // jos tiedon siirto tapahtui onnistuneesti if (req.status == 200) { tuotiedottaulukkoon(); // noudettu tieto löytyy req-olion responsetext-oliomuuttujasta } else { kirjoitaviesti("tiedon noutaminen ei onnistu (error code: "+ req.statustext + ")"); } } } } req.open("get", url, true); // avataan yhteys palvelimelle ja lähetetään req.send(); // sinne yllä muodostettu HTTPRequest -olio 13
14 Esimerkki noudetusta json-tiedostosta o Esimerkki yhdestä (tässä tapauksessa sivulle valmiiksi tallennetusta) JSON-merkkijonosta "data/aikataulu1.json" { "aikataulu": { "paiva": "perjantai", "pvm": "22 hutikuuta 2016", "mista": { "paikka": "Tampere", "koodi": "TRE" }, "minne": { "paikka": "Helsinki", "koodi": "HKI" }, "juna": [ { "lahtee": "04:30", "saapuu": "6.47", "kesto": "2:17", "vaihtoja": "1" },... { "lahtee": "08.07", "saapuu": "09:52", "kesto": "1:45", "vaihtoja": "0" }, { "lahtee": "08.34", "saapuu": "10:47", "kesto": "2:13", "vaihtoja": "1" } ] } } 14
15 Muunnokset JSON-merkkijono JavaScript-olio o JSON-olio, jolla metodi: JSON.parse(mjono) muuttaa JSON-tekstin JavaScript-olioksi (muunnos toisin päin olisi JSON.stringify(olio)) function tuotiedottaulukkoon() { // req-olion responsetext-kentassa palvelimelta noudettu JSON-muotoinen merkkijono noudettutieto = JSON.parse(req.responseText); } // nyt JSON-muotoisena tekstinä saadusta tiedosta on muodostettu // JavaScript-olio noudettutieto, jota ohjelmassa voi käyttää kuten mitä tahansa oliota // oliosta löytyy esimerkiksi taulukko // aikataulu.juna, jossa jokaisessa taulukon alkiossa aikataulu.juna[i] on yhden junavuoruon aikataulut... toteutus on hiukan rautalankaversio kun olet selvittänyt itsellesi miten se toimii, voit katsoa, miten globaaleista muuttujista pääsee eroon (versio 2) 15
16 Harjoitustyö Menoksi! Käy katsomassa Tampereen kaupungin sivustoa vierailijoille: 16
17 Oma yksinkertaistettu versio sivustosta o SPA (Single Page Application) informaatiosovellus Tampereen seudun tapahtumista Tampere music academy: student concert Conservatory students play music. Vinyl club Bar Huurupiilo hosts the vinyl club. Conservatory students play music The Paladins at Tampere Hall: The temperature will rise sky high at the Tampere Hall, when The Paladins start playing at Sorsapuistosali! Warm-ups by Swing Team and Mr Breathless. Honest rock n roll, dance and dedicated people. tehtävänanto raporttipohja 17
18 VisitTampere tapahtumatietojen rajapinta o Swagger-liittymä dataan: Voit kokeilla millaisia tietoja erilaisilla parametreilla saadaan noudettua. Tätä dataa käyttävä, kaupungin toteuttama Visit Tampere -palvelu 18
19 Käytettäviä tekniikoita o Harjoitustyössä hyödynnetään (pakolliset) kaupungin tarjoamaa rajapintaa avoimeen VisitTampere -dataan Google Maps JavaScript API -rajapintaa jquery JavaScript-kirjastoa o Lisäksi harjoitustyössä hyödynnetään seuraavia tekniikoita (jos haluat nostaa harjoitustyön pisteitä läpipääsyn ylittäviin pisteisiin) Local Storage - selaiman paikallinen muistia, HTML5 rajapinta Bootstrap - websivujen toteutuskehys (front-end framework) Firebase NoSQL pilvitietokantaa 19
JWT 2017 luento 10. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari
JWT 2017 luento 10 to 20.4.2016 klo 12-14 Aulikki Hyrskykari PinniB 1096 1 Viime luennolla o Funktiot JavaScriptissä, callback, IIFE, sulkeumat ja Module pattern Tänään o AJAX (Asynchronous JavaScript
LisätiedotJWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
LisätiedotAJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
LisätiedotJärjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML
Järjestelmäarkkitehtuuri (TK081702) Ajax 2000-luvun alkuvuosina selainsotien rauhoituttua ohjelmistotalot alkoivat kehittää selainten luoman uuden ohjelmointiympäristön käyttötapoja. Syntyi AJAX (Asynchronous
LisätiedotDigitaalisen median tekniikat. Luento 4: JavaScript
Digitaalisen median tekniikat Luento 4: JavaScript Luennot 1. Intro 2. XHTML 3. CSS 4. JavaScript Historia Syntaksi Dom Esimerkki: kuvagalleria 5. JavaScript-kirjastot & AJAX 6. Käytettävyys & saavutettavuus
LisätiedotHarjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)
Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript) Kurssin toisessa harjoitustyössä tutustutaan verkkosivujen toiminnallisuuden toteuttamiseen JavaScript:n avulla. Lisäksi käydään läpi verkkosivuston
LisätiedotJärjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
LisätiedotWeb Service torilla tavataan!
Web Service torilla tavataan! Jari Putula Avarea Oy COPYRIGHT BY AVAREA 2009 1 Google Trends COPYRIGHT BY AVAREA 2009 2 1 1. Mahdollistajat 2. Web service? 3. KISS 4. Miksi? 5. Analogia 6. Ajax 7. Esimerkki
LisätiedotTietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.
Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa
LisätiedotVarmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke
Versio 1.0 Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke Varmennepalvelu Rajapintakuvaus 2 (13) Versiohistoria Versio Päivämäärä Kuvaus 1.0 Dokumentti julkaistu. Varmennepalvelu
LisätiedotToimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)
LTC-Otso Myyjän työkalu (POC) Toimintaympäristön kuvaus 21 toukokuu, 2015 Sisältö 1 Johdanto... 3 1.1 Dokumentin tavoite... 3 1.2 Dokumentin yleiskuvaus... 3 2 Järjestelmälle asetetut vaatimukset... 3
LisätiedotOHJ-1151 Ohjelmointi IIe
Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-1151 Ohjelmointi IIe Harjoitustyö Tomaattisota Välipalautus / Loppudokumentaatio Assistentin nimi Välipalautusaika (päivä ja kellonaika) ja
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotMOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT
MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa
LisätiedotWWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys
WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000
LisätiedotETÄTERMINAALIYHTEYS SELAIMELLA
Opinnäytetyö (AMK) Tietotekniikan koulutusohjelma Sulautetut ohjelmistot 2017 Akseli Aarnio ETÄTERMINAALIYHTEYS SELAIMELLA OPINNÄYTETYÖ (AMK) TIIVISTELMÄ TURUN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma
LisätiedotEMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.
EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...
LisätiedotDOM ja Ajax. Jaana Holvikivi Metropolia. J.Holvikivi
DOM ja Ajax Jaana Holvikivi Metropolia Sisältö Client - server communication Javascriptin käyttö DOM XMLHTTP pyyntö Ajaxin toiminta Esimerkkitapauksia Sivujen haku HTTP:llä Selain: HTML, Skriptit, Plug-in
LisätiedotTekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
LisätiedotTekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotIlmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit
Ilmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit Pertti Koskela Kasvatuksen ja koulutuksen toimiala Tietohallinto, Ict-kehityspalvelut Mukana : Espoon työväenopisto, Esbo
LisätiedotVarmennepalvelu Rajapintakuvaus Tulorekisteriyksikkö
Versio 1.02 Varmennepalvelu Rajapintakuvaus Tulorekisteriyksikkö Varmennepalvelu Rajapintakuvaus 2 (15) Versiohistoria Versio Päivämäärä Kuvaus 1.0 30.10.2017 Dokumentti julkaistu. 1.01 15.12.2017 Dokumenttia
LisätiedotT-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot
T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotInternet-pohjaisen oppimisympäristön laadinta. Luento 3
Internet-pohjaisen oppimisympäristön laadinta Luento 3 Aiheena tänään Toteutustekniikoista yleisesti Selainriippumattomuudesta Hot Potatoes -ohjelmasta JavaScriptin perusteista 31.01.2013 IPOPPLA 2 Toteutustekniikoista
LisätiedotJavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos
LisätiedotMultiSender -mobiilisovellus
MultiSender -mobiilisovellus Mikko Makkonen Opinnäytetyö Joulukuu 2017 Tietotekniikka Ohjelmistotekniikka TIIVISTELMÄ Tampereen ammattikorkeakoulu Tietotekniikka Ohjelmistotekniikka Makkonen Mikko: MultiSender
LisätiedotRich Web Applications in Server-side Java without Plug-ins or JavaScript
Rich Web Applications in Server-side Java without Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like web apps New configs, taglibs
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotKanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka
Kanta PHR:n CapabilityStatement ja REST-API Eeva Turkka PHR:n kaksi osaa: tietosisältö ja käyttöluvat Resurssipalvelin FHIR REST-rajapinnat CapabilityStatement kuvaa toiminnot Resurssisäilö Auktorisointipalvelin
LisätiedotREST an idealistic model or a realistic solution?
REST an idealistic model or a realistic solution? 17.10.2006 Jari Aarniala jari.aarniala@cs.helsinki.fi Johdanto Representational State Transfer, eli REST Arkkitehtuurinen tyyli hajautetuille (hypermedia)järjestelmille
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen
LisätiedotTulorekisteri: Varmenne Visma Fivaldi
Tulorekisteri: Varmenne Visma Fivaldi 1(15) Sisällysluettelo Yleistä 2 Muu tulorekisteri-dokumentaatio 2 Varmenne 3 Palvelusopimuksen tekeminen ja varmenteen tilaaminen 4 Varmenteen noutaminen 9 Asiakasyrityksen
LisätiedotAlkuun HTML5 peliohjelmoinnissa
Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
LisätiedotString-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1
String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotILMAINEN KARTTATIETO
ILMAINEN KARTTATIETO MIKÄ ON MUUTTUNUT? Täydellinen vallankumous tietojen vapautumisessa GPS alkuna TIETOJA LÖYTYY PALJON: EROJA SIINÄ, MITEN TIETOA KÄYTETÄÄN. PELKÄSTÄÄN REITTIHAKUUN JA PAIKKOJEN ETSINTÄÄN
LisätiedotSivuston nopeus. Tiivistämällä resursseja gzip- tai deflate-koodilla voit vähentää verkon kautta lähetettävien tavujen määrää.
Sivuston nopeus 40 / 100 Nopeus Pitäisi korjata: Ota pakkaus käyttöön Tiivistämällä resursseja gzip- tai deflate-koodilla voit vähentää verkon kautta lähetettävien tavujen määrää. Pienennä seuraavien resurssien
LisätiedotVerkkosivujen toiminnallisuus (JavaScript)
Verkkosivujen toiminnallisuus Selainohjelmointi (JavaScript) (JavaScript) T-111.1100 Digitaalisen median työvälineet (3 op) ME-C2300 Verkkojulkaisemisen perusteet (5 op) Juuso Lappalainen DI Markku Laine
Lisätiedot582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen
LisätiedotHarjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)
Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript) Kurssin kolmannessa harjoitustyössä tutustutaan verkkosivujen toiminnallisuuden toteuttamiseen JavaScriptin avulla. Harjoitustyö koostuu kahdesta
LisätiedotREST rajapintana mobiilikehityksessä
REST rajapintana mobiilikehityksessä Django & WP7 Jonne Räsänen 2011 jonne.rasanen@jyu.fi Case iscope Hälytyspalvelu Web-palvelu Mobiilisovellus REST (REpresentational State Transfer) Aikojakin vanhempi
LisätiedotTaustaa. CGI-ohjelmointi
Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus 66 / 100 Nopeus Pitäisi korjata: Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä Sivullasi on 2 estävää ohjelmaresurssia ja 1 estävää CSS-resurssia. Tämä viivästyttää
Lisätiedot(JavaScript) Aleksi O Connor DI Informaatioverkostot. Markku Laine Mediatekniikan laitos
Selainohjelmointi Verkkosivujen toiminnallisuus (JavaScript) (JavaScript) T-111.1100 CS-C1180 Digitaalisen Verkkojulkaisemisen median työvälineet perusteet (5 (3 op) op) Aleksi O Connor DI Informaatioverkostot
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotSivuston nopeus. Sivullasi on 2 uudelleenohjausta. Uudelleenohjaukset viivästyttävät sivun lataamista.
Sivuston nopeus Mobiili 56 / 100 Nopeus Pitäisi korjata: Älä käytä aloitussivun uudelleenohjauksia Sivullasi on 2 uudelleenohjausta. Uudelleenohjaukset viivästyttävät sivun lataamista. Vältä aloitussivun
LisätiedotSisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen.
Sisällys 12. Monimuotoisuus Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen. Parametrinvälitys eräs monimuotoisuuden sovellus.. Rajapinnat
LisätiedotWindows Live SkyDrive - esittely
Windows Live SkyDrive - esittely Microsoftin SkyDrive on pilvipohjainen tiedostojen säilytys- ja jakopalvelu. SkyDrive tarjoaa 25 Gb ilmaista säilytystilaa tiedostoille ja valokuville. Voit käyttää SkyDriven
LisätiedotTekstiviestipalvelun rajapintakuvaus
Tekstiviestipalvelun rajapintakuvaus Sisällysluettelo 1. Yleistä... 1 2. Lähtevien viestien rajapinta... 1 2.1. Rajapinnan tekniset tiedot ja parametrit... 1 2.2. Rajapinnan paluuarvot... 3 2.3. Rajapinnan
LisätiedotSivuston tiedotsiteoptimer.com
Sivuston tiedotsiteoptimer.com Luotu Helmikuu 22 2019 07:16 AM Pisteet65/100 SEO Sisältö Otsikko SEO Optimization tools and web page analyzer - siteoptimer.com Pituus : 62 Täydellistä, otsikkosi sisältää
LisätiedotSivuston tiedotemreemir.com
Sivuston tiedotemreemir.com Luotu Maaliskuu 10 2019 18:41 PM Pisteet66/100 SEO Sisältö Otsikko Emre Emir, Full-Stack Web Developer Pituus : 35 Täydellistä, otsikkosi sisältää väliltä 10 ja 70 kirjainta.
LisätiedotVeronumero.fi Tarkastaja rajapinta
Suomen Tilaajavastuu Oy Veronumero.fi Tarkastaja rajapinta Rajapintakuvaus veronumeroiden tarkastamiseen ja henkilötietojen noutamiseen Suomen Tilaajavastuu Oy Muutoshistoria Päivämäärä Tekijä Muutos 11.2.2013
LisätiedotDatanhaku www-käyttöliittymästä Mikko Parviainen, Ilmatieteen laitos / tietojärjestelmät mikko.parviainen@fmi.fi
Helsinki Testbed tutkijankäyttöliittymä Datanhaku www-käyttöliittymästä Mikko Parviainen, Ilmatieteen laitos / tietojärjestelmät mikko.parviainen@fmi.fi 7.4.2006 Taustaa Helsinki Testbed on Ilmatieteen
LisätiedotSuuli api dokumentaatio
Suuli api dokumentaatio Rajapinnan käyttöä varten tarvitset avaimen. Suulissa on käytössä kaksi rajapintaa: jäsen-, vene- ja venepaikkarajapinta sekä laskurajapinta. Näille on erilliset avaimet. Seuran
LisätiedotPeltotuki Pron Lohkotietopankkimoduli tärkkelysperunalle
Peltotuki Pron Lohkotietopankkimoduli tärkkelysperunalle Versio 2008.1 15.10.2008 ohje 15.10.2008 Asennus, käyttöönotto ja päätoiminnot Ohjelmiston tarkoitus Ohjelmiston tarkoitus on yhdistää Peltotuki
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus 78 / 100 Nopeus Pitäisi korjata: Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä Sivullasi on 3 estävää ohjelmaresurssia ja 3 estävää CSS-resurssia. Tämä viivästyttää
LisätiedotSivuston nopeus. (vanhentumista ei ole määritetty)
Sivuston nopeus 76 / 100 Nopeus Pitäisi korjata: Hyödynnä selaimen välimuistia Asettamalla umpeutumispäivän tai enimmäisiän staattisten resurssien HTTP-header-osissa neuvot selainta lataamaan aiemmin ladatut
LisätiedotJavascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia
Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia HTML - sivun rakenne ja osiot HTML HEAD STYLE SCRIPT STYLEsheet Javascript file BODY Javascript
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus Mobiili 66 / 100 Nopeus Pitäisi korjata: Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä Sivullasi on 2 estävää ohjelmaresurssia ja 2 estävää CSS-resurssia. Tämä viivästyttää
LisätiedotSivuston nopeus. Sivullasi on 3 uudelleenohjausta. Uudelleenohjaukset viivästyttävät sivun lataamista.
Sivuston nopeus 70 / 100 Nopeus Pitäisi korjata: Älä käytä aloitussivun uudelleenohjauksia Sivullasi on 3 uudelleenohjausta. Uudelleenohjaukset viivästyttävät sivun lataamista. Vältä aloitussivun uudelleenohjauksia
LisätiedotSivuston tiedotprintersupportnu mbercare.com
Sivuston tiedotprintersupportnu mbercare.com Luotu Kesäkuu 22 2019 20:58 PM Pisteet65/100 SEO Sisältö Otsikko HP Printer Support Phone Number +1-855-924-8222 Printer Support Pituus : 63 Täydellistä, otsikkosi
LisätiedotMVVM-mallin toteutus KnockoutJS-kirjastoa käyttäen
MVVM-mallin toteutus KnockoutJS-kirjastoa käyttäen Heikkilä, Jukka 2015 Kerava Laurea-ammattikorkeakoulu Laurea Kerava MVVM-mallin toteutus KnockoutJS-kirjastoa käyttäen Jukka Heikkilä Tietojenkäsittelyn
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus 61 / 100 Nopeus Pitäisi korjata: Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä Sivullasi on 14 estävää ohjelmaresurssia ja 7 estävää CSS-resurssia. Tämä viivästyttää
LisätiedotSivuston tiedotmysiteworthcheck.com
Sivuston tiedotmysiteworthcheck.com Luotu Huhtikuu 26 2019 09:24 AM Pisteet59/100 SEO Sisältö Otsikko Check you website value Pituus : 23 Täydellistä, otsikkosi sisältää väliltä 10 ja 70 kirjainta. Kuvaus
LisätiedotJWT 2017 luento 6. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari
JWT 2017 luento 6 to 23.3.2017 klo 12-14 Aulikki Hyrskykari PinniB 1096 1 Viime luennolla o JavaScriptin perusteet Tänään o Edellisestä luennosta taulukoista, viittausalue-esimerkkejä DOM (Document Object
LisätiedotAsko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen
Asko Ikävalko, k0201291 22.2.2004 TP02S-D Ohjelmointi (C-kieli) Projektityö Työn valvoja: Olli Hämäläinen Asko Ikävalko LOPPURAPORTTI 1(11) Ratkaisun kuvaus Käytetyt tiedostot Tietuerakenteet Onnistuin
LisätiedotPythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b
Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')
LisätiedotSivuston tiedotqbsupportcustom erservice.com
Sivuston tiedotqbsupportcustom erservice.com Luotu Kesäkuu 04 2019 09:57 AM Pisteet69/100 SEO Sisältö Otsikko Quickbooks Customer Service 800-329-0391 QB Phone Number Pituus : 58 Täydellistä, otsikkosi
LisätiedotDigitaalisen median tekniikat Luento 1: Intro
Digitaalisen median tekniikat Luento 1: Intro Web Mahtava alusta tiedon välittämiseen! Information Superhighway! Web Archive! Gutenberg! DEMO Kirjasto ja analoginen media digitaaliseksi Julkaisutekniikan
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
Lisätiedot815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
LisätiedotTietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke
Versio 1.0 Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Vastaanottokuittaus 2 (10) Versiohistoria Versio Päivämäärä Kuvaus
Lisätiedot52 / 100 Nopeus. Sivuston nopeus. Pitäisi korjata: Hyödynnä selaimen välimuistia. Mobiili
Sivuston nopeus 52 / 100 Nopeus Pitäisi korjata: Hyödynnä selaimen välimuistia Asettamalla umpeutumispäivän tai enimmäisiän staattisten resurssien HTTP-header-osissa neuvot selainta lataamaan aiemmin ladatut
LisätiedotSuvi Junes Tietohallinto / Opetusteknologiapalvelut 2012
Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata
LisätiedotVarmennepalvelu - testipenkki. Kansallisen tulorekisterin perustamishanke
Varmennepalvelu - testipenkki Kansallisen tulorekisterin perustamishanke 2 (9) SISÄLLYS 1 Johdanto... 3 2 Testimateriaali... 3 2.1 Testipenkin palveluissa käytettävät parametrit... 3 2.2 Testipenkin yhteysosoite...
LisätiedotAvoin metsätieto - Rajapintapalvelut
Avoin metsätieto - Rajapintapalvelut 1 Johdanto Tässä asiakirjassa kuvataan lyhyesti Suomen metsäkeskuksen Avoin metsätieto -rajapintapalveluiden (AMT-rajapintapalvelut) sisältö ja käyttö. AMT-rajapintapalvelut
Lisätiedot1 Visma L7 päivitysaineiston nouto
1 Visma L7 päivitysaineiston nouto Tässä ohjeessa kerrotaan, kuinka Visma L7 -järjestelmän master-ympäristö päivitetään etäpäivitysohjelman avulla. 1.1 Etäpäivitysohjelman asennus/päivitys Saat etäpäivitysohjelman
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus 66 / 100 Nopeus Pitäisi korjata: Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä Sivullasi on 8 estävää ohjelmaresurssia ja 10 estävää CSS-resurssia. Tämä viivästyttää
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotCabas liitännän käyttö AutoFutur ohjelmassa 4.1.2012
Cabas liitännän käyttö AutoFutur ohjelmassa 4.1.2012 Liitännän aktivointi Liitäntä on ohjelma lisämoduuli. Ensin asetetaan käyttöön FuturSoftilta saatu Liitäntä WinCabas rekisteröintikoodi. Mennään kohtaan
LisätiedotTilaajavastuu.fi. Muutoshistoria. Suomen Tilaajavastuu Oy. Raporttinoutaja Rajapinta yritysten tilaajavastuutietojen tarkistamiseen
Suomen Tilaajavastuu Oy Tilaajavastuu.fi Raporttinoutaja Rajapinta yritysten tilaajavastuutietojen tarkistamiseen Suomen Tilaajavastuu Oy Muutoshistoria Päivämäärä Tekijä Versio 21.11.2013 Sami Sinisalo
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus 67 / 100 Nopeus Pitäisi korjata: Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä Sivullasi on 2 estävää ohjelmaresurssia ja 4 estävää CSS-resurssia. Tämä viivästyttää
LisätiedotSivuston tiedotgoogle.com
Sivuston tiedotgoogle.com Luotu Tammikuu 14 2019 10:26 AM Pisteet37/100 SEO Sisältö Otsikko Google Pituus : 6 Ihannetapauksessa, sinun otsikkosi pitäisi sisältää väliltä 10 ja 70 kirjainta (välilyönnit
LisätiedotOpera Hotel Edition. Arvonlisäverokantojen muutos Operaan 01.07.2010. Finland. Toukokuu 2010 MICROS-Fidelio Finland Oy, Hotel Systems HelpDesk
Opera Hotel Edition Arvonlisäverokantojen muutos Operaan 01.07.2010 Toukokuu 2010 MICROS-Fidelio Finland Oy, Hotel Systems HelpDesk Sivu / Page: 1 / 15 Document revision history Version Revision Author
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotSivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä
Sivuston nopeus 54 / 100 Nopeus Pitäisi korjata: Lyhennä palvelimen vastausaikaa Palvelimesi vastausaika oli testissämme 0,69 sekuntia. Useat tekijät voivat hidastaa palvelimen vastausaikaa. Suosituksistamme
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotInformaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006
TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa
LisätiedotLaajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus
Laajuus 5 op Luennot: 12 x 2t 11.3.2014 29.4.2014 Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus Lähiopetuksen jäkeen harjoitustyö ja tentti Aulikki Hyrskykari
Lisätiedot13. Luento: Esimerkki: Symbianympäristö. Tommi Mikkonen,
13. Luento: Esimerkki: Symbianympäristö Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Ydin Resurssien hallinta Aktiiviset oliot Dynaaminen muisti Sovellusmalli Laajennokset Yhteenveto Symbian OS
LisätiedotLisenssin hakeminen PTC:n verkkosivun kautta
10.4.13 (rev. 2) Lisenssin hakeminen PTC:n verkkosivun kautta Kun haetaan ensimmäisen kerran Mathcad-lisenssi, sen voi tehdä PTC: kotisivulta. Kun konetta vaihdetaan, voi Mathcadin lisenssin voi käydä
Lisätiedot63 / 100 Nopeus. Sivuston nopeus. Pitäisi korjata: Hyödynnä selaimen välimuistia. Mobiili
Sivuston nopeus Mobiili 63 / 100 Nopeus Pitäisi korjata: Hyödynnä selaimen välimuistia Asettamalla umpeutumispäivän tai enimmäisiän staattisten resurssien HTTP-header-osissa neuvot selainta lataamaan aiemmin
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotLisätehtävät. Frantic 2015 sivu 1 www.frantic.com
Lisätehtävät Frantic 2015 sivu 1 www.frantic.com Fontit - Google fonts Fonttien käyttäminen verkossa ilman uusien fonttien lataamista on melko rajattua, sillä koskaan ei voi tietää mitä fontteja vastaanottajan
Lisätiedot