OPPITUNTI 21 Palvelinympäristö

Koko: px
Aloita esitys sivulta:

Download "OPPITUNTI 21 Palvelinympäristö"

Transkriptio

1 21. Palvelinympäristö 365 OPPITUNTI 21 Palvelinympäristö Edellisellä tunnilla tutkimme tekniikoita, joiden avulla voidaan kommunikoida etäkoneiden kanssa ja saada tietoa käyttäjiltä. Tällä tunnilla käsittelemme ympäristöä uudelleen, nyt tutkimme tekniikoita, joita käyttäen voidaan ajaa ulkoisia ohjelmia omalla koneella. Tämän tunnin esimerkit on laadittu Linux-ympäristöön, mutta periaatteet ovat samat myös Windows-ympäristössä. Tämän tunnin aiheita ovat Kuinka tietoa voidaan putkittaa menemään ulkoisille sovelluksille ja kääntäen Muita keinoja lähettää shell-komentoja ja esittää tuloksia selaimella Turvallisuusnäkökohdat PHP-skripteistä käsin suoritettavissa sisäisissä prosesseissa

2 Palvelinympäristö Putkien avaaminen prosesseihin popen()-funktiolla Aivan samalla lailla kuin avaat tiedoston kirjoittamista tai lukemista varten fopen()-funktiolla, voit avata putken prosessiin popen()-funktiolla. Funktio ottaa argumentikseen polun komentoon ja merkkijonon, joka edustaa moodia (luku tai kirjoitus). Funktio palauttaa tiedosto-osoittimen, jota voidaan käyttää samalla lailla kuin fopen()-funktion palauttamaa tiedosto-osoitinta. Voit viedä popen()-funktiolle toisen kahdesta moodilipusta, jotka ovat "w" (kirjoitus prosessiin) ja "r" (luku prosessista). Et voi sekä kirjoittaa prosessiin että lukea prosessista saman yhteyden aikana. Kun olet lopettanut työsi popen()-funktion tiedosto-osoittimen avulla, sinun on suljettava yhteys kutsumalla pclose()-funktiota, joka vaatii sopivan tiedosto-osoittimen. Lukeminen popen()-prosessista on hyödyllistä, kun haluat jäsennellä tulostuksen prosessista rivi riviltä. Listaus 21.1 avaa yhteyden who-komennon GNUversioon ja jäsentelee sen tulostuksen ja lisää mailto-linkin kullekin käyttäjänimelle. Listaus 21.1 Unixin who-komennon tulostuksen lukeminen popen()-funktiolla 1: <html> 2: <head> 3: <title>listing 21.1 Using popen() to read the 4: output of the UNIX who command</title> 5: </head> 6: <body> 7: <h2>administrators currently logged on to the server</h1> 8: <?php 9: $ph = popen( "who", "r" ) 10: or die( "Couldn't open connection to 'who' command" ); 11: $host="zink.demon.co.uk"; 12: while (! feof( $ph ) ) 13: { 14: $line = fgets( $ph, 1024 ); 15: if ( strlen( $line ) <= 1 ) 16: continue; 17: $line = ereg_replace( "^([a-za-z0-9_\-]+).*", 18: "<a href=\"mailto:\\1@$host\">\\1</a><br>\n", 19: $line ); 20: print "$line"; 21: } 22: pclose( $ph ); 23:?>

3 21. Palvelinympäristö : </table> 25: </body> 26: </html> Saimme tiedosto-osoittimen popen()-funktiolla ja käytimme sitten while-lausetta jokaisen rivin lukemiseksi prosessin tuottamasta tulostuksesta. Jos tuotos on yksittäinen merkki, hyppäämme loppuosan yli. Muutoin käytämme ereg_replace()-funktiota HTML-linkin ja taulukon solujen lisäämiseen merkkijonoon ennen riviä. Lopuksi suljemme yhteyden pclose()-funktiolla. Kuva 21.1 esittää näytetulostuksen listauksesta KUVA 21.1 UNIX:in whokomennon tulostuksen lukeminen. Voit käyttää popen()-funktion avaamaa yhteyttä myös prosessiin kirjoittamiseen. Se on hyödyllistä komennoille, jotka ottavat argumenteikseen tietoa standardista syöttölaitteesta ja myös komentoriviargumenteista. Listaus 21.2 avaa yhteyden column-sovellukseen popen()-funktiolla. Listaus 21.2 Tiedon vieminen column-sovellukselle popen()-funktiolla 1: <html> 2: <head> 3: <title>listing 21.2 Using popen() to pass 4: data to the column command</title> 5: </head> 6: <body> 7: <?php 8: $products = array(

4 Palvelinympäristö 9: array( "HAL 2000", 2, "red" ), 10: array( "Tricorder", 3, "blue" ), 11: array( "ORAC AI", 1, "pink" ), 12: array( "Sonic Screwdriver", 1, "orange" ) 13: ); 14: $ph = popen( "column -tc 3 -s / > purchases/user3.txt", "w" ) 15: or die( "Couldn't open connection to 'column' command" ); 16: foreach ( $products as $prod ) 17: fputs( $ph, join('/', $prod)."\n"); 18: pclose( $ph ); 19:?> 20: </table> 21: </body> 22: </html> Listauksen 21.2 tarkoituksena on ottaa moniulotteisen taulukon elementit ja tulostaa ne tiedostoon ASCIItaulukkona. Avaamme yhteyden column-komentoon ja lisäämme mukaan komentoriviargumentteja. Argumentti -t vaatii, että tulostus muotoillaan taulukoksi, -c 3 määrittää sarakkeiden määrän ja -s / asettaa "/"-merkin kenttäerottimeksi. Varmistamme, että tulokset kirjoitetaan tiedostoon nimeltä user3.txt. Huomaa, että ostoskansion on oltava olemassa ja että skriptin tulee voida kirjoittaa siihen. Huomaa, että teemme tällä komennolla useamman kuin yhden asian. Kutsumme column-komentoa ja kirjoitamme tulostuksen tiedostoon. Itse asiassa suoritamme komentoja ei-vuorovaikutteisessa shellissä. Sen lisäksi, että putkitamme sisällön prosessiin, voimme alustaa myös muita prosesseja. Voimme vaikkapa lähettää column-komennon tulostuksen sähköpostilla: popen( "column -tc 3 -s / mail matt@zink.demon.co.uk", "w" ) Tällainen joustavuus voi kaataa järjestelmämme hautaan, jos viemme käyttäjän syöttämän tiedon PHPfunktiolle, joka suorittaa shell-komentoja. Tutkimme varoituksia ennen tämän tunnin päättämistä. Kun tiedosto-osoitin on saatu, käymme silmukassa läpi $product-taulukon. Jokainen arvo on itse taulukko, jonka voimme muuntaa merkkijonoksi käyttämällä join()-funktiota. Sen sijaan, että yhdistämme välilyöntimerkin mukaan, käytämme yhdistämisessä komentoriviargumenttina annettua "/"-merkkiä. Sen käyttäminen on välttämätöntä taulukon kohdalla, koska välilyönnit hämäisivät column-komentoa. Kun taulukko on yhdistetty, viedään tulosmerkkijono ja rivinvaihtomerkki fputs()-funktiolle. Lopuksi suljemme yhteyden. Nyt user3.txt-tiedosto sisältää nätisti muotoiltua tietoa: HAL red Tricorder 3 blue ORAC AI 1 pink

5 21. Palvelinympäristö 369 Sonic Screwdriver 1 orange Voisimme tehdä koodista siirrettävämpää muotoilemalla tekstin sprintf()-funktiolla, ja voitkin halutessasi tehdä niin. Komentojen ajaminen exec()-funktiolla Komentoja voidaan viedä shell-kerrokselle myös exec()-funktiolla. Funktio ottaa argumentikseen merkkijonon, jossa on ajettavan komennon tiedostopolku. Se ottaa myös valinnaisen argumentin, joka on taulukkomuuttuja, johon komennon tuottama tulostus voidaan sijoittaa, sekä toisen valinnaisen argumentin, johon sijoitetaan komennon palautusarvo. Saadaksemme esimerkiksi listauksen nykyisestä työhakemistosta, voimme viedä exec()-funktiolle merkkijonon "ls -al". Teemme niin listauksessa 21.3 ja tulostamme tuloksen selaimelle. Listaus 21.3 Hakemistolistauksen tuottaminen exec()-funktiolla 1: <html> 2: <head> 3: <title>listing 21.3 Using exec() to produce a directory listing</title> 4: </head> 5: <body> 6: <?php 7: exec( "ls -al.", $output, $return ); 8: print "<p>returned: $return</p>"; 9: foreach ( $output as $file ) 10: print "$file<br>"; 11:?> 12: </table> 13: </body> 14: </html> Huomaa, että ls-komento palauttaa arvon nolla, jos se onnistuu tehtävässään. Jos emme löydä kansiota tai emme voi lukea sitä, komento palauttaa arvon yksi. Olemme jälleen kerran keksineet pyörän uudelleen, ainakin osan siitä. Olisimme voineet käyttää opendir()- ja readdir()-funktioita hakemistolistauksen esittämiseen. On kuitenkin tilanteita, joissa järjestelmän komennolla saadaan aikaan toimintoja, joiden toteuttaminen PHP-koodilla olisi todella työlästä. Olet saattanut joskus luoda shell- tai Perl-skriptin tekemään monimutkaisen tehtävän. Jos kehittämisnopeus

6 Palvelinympäristö on tärkeää projektissasi, saatat harkita ulkoisen skriptin käyttämistä sen sijaan, että muokkaisit sen PHPmuotoon. Muista kuitenkin, että ulkoisen prosessin kutsuminen kuluttaa useimmiten lisää aikaa ja muistia. Kuva 21.2 esittää listauksen 21.3 tulostuksen. KUVA 21.2 Hakemistolistaus exec()-funktiolla. Ulkoisten komentojen ajaminen system()-funktiolla tai heittomerkkioperaattorilla Edellä esiteltyä exec()-funktiota muistuttava system()-funktio käynnistää sekin ulkoisen sovelluksen. Se ottaa argumentikseen komennon ja valinnaisen muuttujan, johon komennon palauttama arvo tallennetaan. Funktio tulostaa shell-komennon tuotoksen suoraan selaimelle. Seuraava koodi tulostaa man-komennon manuaalisivun: <?php print "<pre>"; system( "man man col -b", $return ); print "</pre>";?> Koodissa käytetään PRE-tageja, jotta selain voisi muotoilla sivun oikein. Käytämme system()-funktiota kutsumaan man-komentoa ja putkitamme tuloksen toiselle sovellukselle nimeltä col, joka muotoilee tekstin ASCII-muotoon. Sieppaamme shell-komennon palautusarvon muuttujaan $return. Funktio palauttaa tulostuksensa. Voit saada aikaan samanlaisen tuloksen heittomerkkioperaattorilla. Operaattori toimii siten, että shellkomento sijoitetaan gravis-merkkien (`) sisälle. Heittomerkkien sisällä oleva komento suoritetaan ja tulos palautetaan. Voit tulostaa tuotoksen tai tallentaa sen muuttujaan. Voimme kirjoittaa edellä olevan koodin uudelleen: print "<pre>";

7 21. Palvelinympäristö 371 print man man col -b ; print "</pre>"; Huomaa, että meidän on tulostettava palautusarvo ulkoisella print-komennolla. Turvallisuusaukkojen tukkiminen escapeshellcmd()- funktiolla Ennen kuin tutkimme escapeshellcmd()-funktiota, tutkimme vaarat, joilta funktiolla suojaudutaan. Haluamme antaa käyttäjille mahdollisuuden kirjoittaa manuaalisivujen nimiä tekstikenttään ja tulostaa sitten löydetyt sivut selaimelle. Kyseessä on helppo tehtävä. Älä kuitenkaan asenna allaolevaa koodia (listaus 21.4); siinä on suuri turvallisuusaukko. Listaus 21.4 Manuaalisivu selaimelle man-komennolla 1: <html> 2: <head> 3: <title>listing 21.4 Calling the man command. 4: This script is not secure</title> 5: </head> 6: <body> 7: <form> 8: <input type="text" value="<?php print $manpage;?>" name="manpage"> 9: </form> 10: <pre> 11: <?php 12: if ( isset($manpage) ) 13: system( "man $manpage col -b" ); 14:?> 15: </pre> 16: </table> 17: </body> 18: </html>

8 Palvelinympäristö Laajennamme nyt yllä olevaa esimerkkiä hieman lisäämällä tekstikentän ja laittamalla arvon lomakkeen lähettämisen yhteydessä system()-funktiolle vietävään shell-komentoon. Turvaudumme kuitenkin UNIXjärjestelmään, jossa epärehellinen käyttäjä voisi lisätä omia komentojaan manuaalisivukenttään, jolloin hän saisi rajallisen pääsyn palvelimelle. Kuva 21.3 esittää yksinkertaisen tavan käyttää skriptiä palvelimen käsittelyyn epärehellisin keinoin. KUVA 21.3 UNIX:in mankomennon suorittaminen. Epärehellinen käyttäjä on lähettänyt arvon xxx; ls -al lomakkeen kautta. Olemme tallentaneet arvon $manpage-muuttujaan. Kun yhdistämme tekstin system()-funktion argumentiksi, tulemme suorittaneeksi komennot: "man xxx; ls -al col -b" Nuo komennot laittavat shellin noutamaan manuaalisivun komennolle www, jota ei ole olemassa. Sen jälkeen suoritetaan hakemistolistaus ja ajetaan se col-komennon läpi. Jos et näe asiassa mitään pahaa, ajattele uudelleen. Vihamielinen vierailija voi luetella kaikki luettavissa olevat hakemistot. Hän voisi lukea jopa /etc/passwd-tiedoston lisäämällä lomakekenttään tekstin: xxx; cat /etc/passwd Onneksi salasanat kryptataan tiedostoon nimeltä /etc/shadow, jota vain root voi lukea; silti kyseessä on turvallisuusaukko. Emme voi sallia tällaista. Turvallisin keino suojautua tällaiselta on estää käyttäjän suora shell-käyttö. Lisäämme hieman turvallisuutta käyttämällä escapeshellcmd()-komentoa lisäämään kenoviivat jokaisen megamerkin eteen, jonka käyttäjä saattaa lähettää. Funktio ottaa argumentikseen merkkijonon ja palauttaa muunnetun kopion. Voimme nyt muuttaa koodiamme turvallisemmaksi (listaus 21.5).

9 21. Palvelinympäristö 373 Listaus 21.5 Käyttäjän syöttötiedon kiertäminen escapeshellcmd()-funktiolla 1: <html> 2: <head> 3: <title>listing 21.5 Escaping user input with 4: the escapeshellcmd() function</title> 5: </head> 6: <body> 7: <form> 8: <input type="text" value="<?php print $manpage;?>" name="manpage"> 9: </form> 10: <pre> 11: <?php 12: if ( isset($manpage) ) 13: { 14: $manpage = escapeshellcmd( $manpage ); 15: system( "man $manpage col -b" ); 16: } 17:?> 18: </pre> 19: </table> 20: </body> 21: </html> Jos käyttäjä yrittää antaa komennon "xxx; cat /etc/passwd " nyt, se muunnetaan muotoon "xxx\; cat /etc/passwd ", jolloin uutta komentoa ei voida suorittaa. Itse asiassa käyttäjälle esitetään cat-komennon manuaalisivu salasanatiedoston sijaan! Vaikka voitkin parantaa turvallisuutta tällä tavoin, vältä aina sitä mahdollisuutta, että käyttäjä voi antaa shellissä suoritettavia komentoja. Voisimme parantaa vieläkin tilannetta tekemällä luettelon kaikista manuaalin komennoista, jolloin voisimme tarkistaa ensin, onko käyttäjän syöttämä komento luettelossa ja antaa komennon vasta sitten system()-funktiolle. Teemme niin seuraavassa jaksossa. Ulkoisten sovellusten ajaminen passthru()-funktiolla Funktio passthru() on samanlainen kuin system() paitsi että shell-komennon tuotosta ei puskuroida. Näin funktio sopii komennoille, jotka tuottavat binääritietoa tekstitiedon sijaan. Funktio ottaa argumentikseen shellkomennon ja valinnaisen muuttujan. Muuttuja täytetään komennon palautusarvolla. Tehkäämme nyt esimerkki. Haluamme luoda skriptin, joka näyttää kuvat ikonikoossa ja jota voidaan kutsua HTML- tai PHPsivuilta. Listaus 21.6 esittää koodin, joka paikantaa kuvan ja tulostaa tiedon selaimelle.

10 Palvelinympäristö Listaus 21.6 Binääritiedon tulostaminen passthru()-funktiolla 1: <?php 2: if ( isset($image) && file_exists( $image ) ) 3: { 4: header( "Content-type: image/gif" ); 5: passthru( "giftopnm $image pnmscale -xscale.5 -yscale.5 ppmtogif" ); 6: } 7: else 8: print "The image $image could not be found"; 9:?> Huomaa, että emme käyttäneet nyt escapeshellcmd()-funktiota. Sen sijaan testasimme käyttäjän syöttämän tiedon file_exists()-funktiolla. Emme vie $image-muuttujaa shellille, jos kuvaa ei ole olemassa. Voisimme tehdä skriptistä turvallisemman siten, että rajoitamme käytettäviä tiedostotyyppejä ja annamme hakemiston, josta kuvien tulisi löytyä. Funktion passthru() kutsussa suoritetaan komento, joka kutsuu kolmea sovellusta. Huomaa, että skriptisi toimiminen järjestelmässäsi edellyttää, että sinulla on nuo kolme sovellusta käytössäsi ja niiden tulee olla tiedostopolussa. Kutsumme ensiksi sovellusta nimeltä giftopnm, jolle viemme $image-muuttujan. Se lukee GIF-kuvan ja tulostaa tiedon siirrettävässä anymapmuodossa. Tämä tuotos putkitetaan pnmscale-sovellukselle, joka skaalaa kuvan 50 prosenttiin alkuperäisestä koostaan. Tämä tuotos putkitetaan vuorostaan ppmtogif-sovellukselle, joka muuntaa tiedon GIF-muotoon ja juuri tuo tieto sitten esitetään selaimella. Voimme nyt kutsua tätä skriptiä miltä tahansa Web-sivulta. <img src="listing21.6.php?image=<?php print urlencode("/path/to/image.gif")?>"> Ulkoisen CGI-skriptin kutsuminen virtual()-funktion kautta Jos muunnat täysin HTML-pohjaista sivustoa PHP-kelpoiseksi, saatat havaita, että palvelinpuolen sisällyttämiset (SSI, Server-Side Include) eivät enää toimi. Jos ajat PHP-järjstelmää Apache-moduulina, voit käyttää virtual()-funktiota kutsumaan CGI-skriptejä, esimerkiksi Perl- tai C Web -laskureita ja sisällyttää niiden tuottamat tulokset sivuillesi. Jokaisen kirjoittamasi CGI-skriptin tulee tuottaa HTTP-otsikot. Kirjoittakaamme nyt yksinkertainen Perl CGI -skripti. Jos et tunne Perliä, älä murehdi asiaa. Se vain tulostaa HTTP-otsikon ja kaikki ympäristömuuttujat, jotka ovat sen saatavilla: #!/usr/bin/perl -w print "Content-type: text/html\n\n"; foreach ( keys %ENV ){ print "$_: $ENV{$_}<br>\n"; }

11 21. Palvelinympäristö 375 Olettakaamme, että tämä skripti tallennetaan suoritettavaan cgi-bin-hakemiston tiedostoon nimeltä test.pl. Nyt voit kutsua sitä virtual()-funktion avulla ja sisällyttää sen tuottaman tiedon PHP-asiakirjaasi: <?php virtual("/cgi-matt/test.pl");?> Yhteenveto Tällä tunnilla opit kommunikoimaan shellin kanssa ja käyttämään ulkoisia sovelluksia sen kautta. PHP on tehokas kieli, mutta joskus on nopeampaa kutsua sovellusta kuin luoda vastaava toiminto itse. Luvun myötä opit putkittamaan tietoa komennolta toiselle popen()-funktiolla. Tämä lähestymistapa on hyödyllinen käytettäessä sovelluksia, jotka ottavat vastaa standardia syöttötietoa ja silloin kun haluat jäsennellä tietoa. Lisäksi opit käyttämään exec()- ja system()-funktioita sekä heittomerkkioperaattoria, joilla viedään komentoja shellille. Sait tietää myös vaarat, jotka liittyvät tilanteeseen, jossa käyttäjän antama tieto on mukana suoritettavassa shell-komenossa; tilannetta voitiin parantaa ecscapeshellcmd()-funktiolla, joka tarjoaa hieman suojaa väärää syöttötietoa vastaan. Opit käyttämään passthru()-funktiota, jonka avulla voidaan suorittaa shell-komento, joka tulostaa binääritietoa. Luvun lopussa sait vielä tietoa palvelinpuolen ohjelmien sisällyttämisestä skripteihin virtual()-funktion avulla. K&V K Olet maininnut sanan turvallisuus monta kertaa tällä tunnilla. Mistä saan lisää tietoa Webiin liittyvästä turvallisuudesta? V Luultavasti asiantuntevin paikka, jossa Web-turvallisuus on esillä, on Lincoln Steinin FAQ-asiakirja (Lincoln Stein on kuuluisan Perl-moduulin, CGI.pm, tekijä). Kyseinen asiakirja löytyy osoitteesta K Milloin minun kannattaisi harkita ulkoisen prosessin hyödyntämistä oman skriptin luomisen sijaan? V Arviointikriteereinä kannattaa käyttää sellaisia tekijöitä kuin siirrettävyys, kehitysnopeus ja tehokkuus. Jos rakennat toiminnallisuuden skriptiisi luottamatta ulkoiseen prosessiin, skriptisi tulee suoriutua hyvin erilaisilla alustoilla tai järjestelmissä, jotka eivät sisällä käyttämääsi kolmannen osapuolen sovellusta. Yksinkertaisten tehtävien kohdalla (esimerkiksi hakemistolistauksen kohdalla) on todennäköisesti tehokkaampaa käsitellä ongelmaa koodissa, jolloin tehottomuudelta säästytään, kun toista prosessia ei tarvitse kutsua joka kerta, kun skriptisi suoritetaan.

12 Palvelinympäristö Toisaalta joidenkin tehtävien tekeminen PHP:llä voi olla vaikeaa tai hidasta tai itse ohjelmasta tulee hidas (esimerkiksi merkkijonon hakeminen suuresta tiedostosta). Näissä tapauksissa kannattaa tutkia työkaluja, jotka on tarkoitettu nimenomaan kyseisiin tehtäviin. Työpaja Työpaja tarjoaa joukon kertauskysymyksiä, joiden avulla voit tarkistaa, oletko ymmärtänyt materiaalin sisältöä. Yritä ymmärtää vastaukset ennen kuin jatkat seuraaviin lukuihin. Vastaukset ovat liitteessä A. Kysymyksiä 1. Millä funktiolla avaisit putken prosessiin? 2. Kuinka lukisit tietoa prosessista sen jälkeen kun olet avannut yhteyden? 3. Kuinka voit kirjoittaa tietoa prosessiin sen jälkeen kun yhteys on luotu? 4. Tulostaako exec()-funktio shell-komennon tuotoksen suoraan selaimelle? 5. Mitä system()-funktio tekee suorittamansa ulkoisen komennon tuotoksella? 6. Mitä heittomerkkioperaattori palauttaa? 7. Kuinka voit suodattaa käyttäjän syötön tehdäksesi sen hieman turvallisemmaksi ennen sen viemistä shellkomennolle? 8. Kuinka suorittaisit ulkoisen CGI-skriptin omasta skriptistäsi käsin? Toiminta 1. Luo skripti, joka käyttää UNIX:in ps-komentoa tulostamaan ajettavat prosessit selaimelle. Kun tiedät skriptin tehon, ei skriptiä tulisi antaa muiden käyttöön! 2. Tarkista ps-komennon manuaalisivulta ps-komentoon liittyvät lisäkytkimet. Lisää skriptiisi lomake, joka sallii käyttäjien valita muutamista lisäkytkimistä, joiden avulla he voivat muuttaa ps-komennon tuottamaan tulostusta. Älä lähetä mitään syöttötietoa suoraan komentoriville.

OPPITUNTI 10 Tiedostojen käsittely

OPPITUNTI 10 Tiedostojen käsittely 10. Tiedostojen käsittely 173 OPPITUNTI 10 Tiedostojen käsittely Tiedostojen testaaminen, lukeminen ja kirjoittaminen ovat yleisiä toimenpiteitä käytännön ohjelmissa ja niitä vastaava tekniikka on mukana

Lisätiedot

OPPITUNTI 11 DBM-funktioiden käyttö

OPPITUNTI 11 DBM-funktioiden käyttö 11. DBM-funktioiden käyttö 193 OPPITUNTI 11 DBM-funktioiden käyttö Jos sinulla ei ole pääsyä SQL-tietokantaan, esimerkiksi MySQL- tai Oracle-tietokantaan, sinulla on varmaankin mahdollisuus käyttää DBM-tyylistä

Lisätiedot

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja 6. Funktiot 85 OPPITUNTI 6 Funktiot Funktiot ovat hyvin laaditun skriptin perusta. Ne tekevät koodista helppolukuista ja uudelleen käytettävää. Laajoja projekteja on mahdotonta hallita ilman funktioiden

Lisätiedot

OPPITUNTI 3 Ensimmäinen skripti

OPPITUNTI 3 Ensimmäinen skripti 3. Ensimmäinen skripti 35 OPPITUNTI 3 Ensimmäinen skripti Kun olet asentanut PHP:n ja asettanut sen kokoonpanon, on aika laittaa ohjelmisto testaukseen. Tällä tunnilla luot ensimmäisen skriptisi ja tutkit

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla 20. Tilan tallentaminen istuntofunktiolla 353 OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla Edellisellä tunnilla tutkimme tilan tallentamista evästeiden ja kyselymerkkijonojen avulla. PHP4 on kuitenkin

Lisätiedot

Taustaa. CGI-ohjelmointi

Taustaa. 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ätiedot

Metropolia Ammattikorkeakoulu

Metropolia Ammattikorkeakoulu Metropolia Ammattikorkeakoulu UNIX-käyttöjärjestelmä TX00BW20 Sami Sainio sami.sainio@metropolia.fi Kurssin rakenne ja arvostelu 7 x luennot ja laboratorioharjoitukset Pieni projekti? Kurssin lopussa tentti

Lisätiedot

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 4. Timo Savola. 21. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto

Lisätiedot

OPPITUNTI 5 Ohjelman kulku

OPPITUNTI 5 Ohjelman kulku 5. Ohjelman kulku 67 OPPITUNTI 5 Ohjelman kulku Viime tunnilla luomamme skriptit olivat suoraviivaisia. Ohjelmalauseet suoritettiin aina samassa järjestyksessä, joten ohjelmissamme ei ollut lainkaan joustavuutta.

Lisätiedot

Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin.

Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin. Linux-harjoitus 9 Linuxin mukana tulevat komentotulkit (mm. bash, tcsh, ksh, jne ) sisältävät ohjelmointikielen, joka on varsin tehokas ja ilmaisuvoimainen. Tähän yhdistettynä unix-maailmasta tutut tehokkaat

Lisätiedot

Korpusten käsittely clt131, P Luento 4

Korpusten käsittely clt131, P Luento 4 Korpusten käsittely clt131, P2 2006 Luento 4 Nicholas Volk 24.11.2006 Humanistinen tiedekunta Säännölliset lausekkeet: ryhmittely Sulkujen avulla voidaan osoittaa määrällistäjille

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Korpusten käsittely clt131, P Luento 5

Korpusten käsittely clt131, P Luento 5 Korpusten käsittely clt131, P2 2006 Luento 5 Nicholas Volk 1.12.2006 Humanistinen tiedekunta Perl Perl niminen ohjelmointikieli mahdollistaa tekstin monipuolisen muokkaamisen helposti

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin 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ätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

OPPITUNTI 16 Tiedon käsittely

OPPITUNTI 16 Tiedon käsittely 16. Tiedon käsittely 283 OPPITUNTI 16 Tiedon käsittely Tällä tunnilla käsittelemme tarkemmin tiedon testaamista ja muokkaamista. Tutkimme uudelleen tietotyyppejä. PHP käsittelee tietotyyppejä automaattisesti

Lisätiedot

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN Tämän tehtävän tarkoitus on tutustuttaa ympäristöön sekä tutustuttaa wwwdokumenttien tekoon php:llä. Alkutoimet Varmistetaan, että verkkolevyllä on kansio

Lisätiedot

OSA III PHP:n käyttö. Oppitunti

OSA III PHP:n käyttö. Oppitunti OSA III PHP:n käyttö Oppitunti 9. Lomakkeiden käsittely 10. Tiedostojen käsittely 11. DBM-funktioiden käyttö 12. MySQL-tietokantojen integrointi 13. Pintaa syvemmältä 14. Dynaamisten kuvien käsittely 15.

Lisätiedot

OPPITUNTI15 Päivämäärien käsittely

OPPITUNTI15 Päivämäärien käsittely 15. Päivämäärien käsittely 269 OPPITUNTI15 Päivämäärien käsittely Päivämäärät kuuluvat niin usein jokapäiväiseen elämään, että niiden käsittely on rutiininomaista. Kalenterin käsittely ei aina ole kuitenkaan

Lisätiedot

ATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014

ATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014 19. syyskuuta 2014 IDL - INPUT/OUTPUT-rutiinit IDL pystyy lukemaan ja kirjoittamaan monentyyppisiä tiedostoja, esim. FORTRAN ja C-kielten ohjelmien tulostusta. Käytössä on myös monipuoliset tulostuksen

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja 8. Oliot 123 OPPITUNTI 8 Oliot Oliopohjainen ohjelmointi on vaarallista. Se muuttaa koodaamista koskevia ajatuksiasi ja kun uudet käsitteet ovat saaneet jalansijaa, ne eivät katoa mitenkään. PHP on Perlin

Lisätiedot

13. Pintaa syvemmältä 233

13. Pintaa syvemmältä 233 13. Pintaa syvemmältä 233 OPPITUNTI 13 Pintaa syvemmältä Tällä tunnilla tutkimme joitakin funktioita, joilla saamme informaatiota ympäristöstä tai kommunikoimme ulkoisen maailman kanssa. Tämän tunnin aiheita

Lisätiedot

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento Kieliteknologian ATK-ympäristö Viides luento Miikka Silfverberg Nykykielten laitos 3. lokakuuta 2011 Miikka Silfverberg (Nykykielten laitos) Kieliteknologian ATK-ympäristö: Luento 5 3. lokakuuta 2011 1

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento Kieliteknologian ATK-ympäristö Viides luento Miikka Silfverberg Nykykielten laitos 4. lokakuuta 2010 Miikka Silfverberg (Nykykielten laitos) Kieliteknologian ATK-ympäristö: Luento 5 4. lokakuuta 2010 1

Lisätiedot

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä. v1 081213 DTEK 1043 Opiskelun ja työelämän tietotekniikka [Jnix näyttökoe Tärkeää Naytt«ikokee(ssa/n) o saa hakea ohjeita Internetistä. o ei saa käyttää kurssimateriaaleja. o ei saa käyttää kirjallisia

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009

Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009 Verkkosivut perinteisesti Tanja Välisalo 11.2.2009 WWW-sivujen vieminen omaan kotisivutilaan yliopiston mikroverkossa https://salasana.jyu.fi Klikkaa painiketta Activate WWW Klikkaa painiketta Activate

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

Lisätiedot

Komentotulkki. Kysymyksiä

Komentotulkki. Kysymyksiä Komentotulkki Komentotulkki ja avustustoiminnot Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Miten työskentelen komentotulkilla? 2. Miten komennot annetaan ja käsitellään?

Lisätiedot

Palvelinpuolen ohjelmointi

Palvelinpuolen ohjelmointi Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset

Lisätiedot

OPPITUNTI 24 Esimerkki (Osa 2)

OPPITUNTI 24 Esimerkki (Osa 2) 24. Esimerkki (Osa 2) 429 OPPITUNTI 24 Esimerkki (Osa 2) Luvussa 23, "Esimerkki (Osa 1)" rakensimme ympäristön, joka sallii käyttäjien kirjoittautua palveluun ja lisätä kerho- ja tapahtumatiedot järjestelmään.

Lisätiedot

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet Unix-perusteet Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet Mikä on unix? Monen käyttäjän käyttöjärjestelmä Siis monta käyttäjää ja monta ohjelmaa jokaisella Kaikkiin koneisiin mikrosta supertietokoneeseen

Lisätiedot

Unix. Markus Norrena

Unix. Markus Norrena Unix Markus Norrena Kotitehtävä 1 Mikä on Unix? Kirjoittakaa lyhyesti 10 asiaa (väittämää) mitä Unix on, tai mitä Unix ei ole. Tehtävän 2. osa: Edellisen perusteella ryhmätyö jolla laajennatte Unix-tietämystänne

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

Lisätiedot

OPPITUNTI 12 MySQL-tietokannan käyttö

OPPITUNTI 12 MySQL-tietokannan käyttö 12. MySQL-tietokannankäyttö 211 OPPITUNTI 12 MySQL-tietokannan käyttö PHP-kieleen kuuluu olennaisesti tietokantojen käyttämisen helppous. Tällä tunnilla keskitymme MySQLtietokantaan, mutta samanlaisia

Lisätiedot

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 337 OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla HTTP on tilaton protokolla. Se merkitsee sitä, että jokainen

Lisätiedot

SeaMonkey pikaopas - 1

SeaMonkey pikaopas - 1 SeaMonkey pikaopas SeaMonkey on ilmainen ja yksinkertainen www-sivujen teko-ohjelma. Sillä on kätevää koostaa yksinkertaisia sivuja ilman, että täytyy tietää jotain HTML-koodista. Tämä opas esittelee sivuston

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

Luento 3. Timo Savola. 7. huhtikuuta 2006

Luento 3. Timo Savola. 7. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 3 Timo Savola 7. huhtikuuta 2006 Osa I Käyttöoikeudet Käyttöoikeudet Monen käyttäjän järjestelmä Prosessit kuuluvat eri käyttäjille Tiedostot kuuluvat

Lisätiedot

Juricon Nettisivu Joomlan käyttöohjeet

Juricon Nettisivu Joomlan käyttöohjeet Juricon Nettisivu Joomlan käyttöohjeet Sisällysluettelo Julkaisujärjestelmä hallinta... 3 Joomla-järjestelmän ylävalikolla on seuraavia:... 3 Valikot... 4 Kategoriat ja artikkelit... 5 Lisäosat ja moduulien

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

PHP:n alkeita ja taustaa. Markus Norrena

PHP:n alkeita ja taustaa. Markus Norrena PHP:n alkeita ja taustaa Markus Norrena PHP on ohjelmointikieli joka toimii yhteistyössä html:n kanssa PHP suoritetaan palvelimella Toisin kuin esim. JavaScript joka suoritetaan selaimessa Tästä syystä

Lisätiedot

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta. Tehtävänanto - Asenna ja testaa LAMP - Aiheuta vähintään 3 virhettä ja analysoi lokista - Tee nimipohjainen virtuaalipalvelin, joissa toimii myös www. (Karvinen, T. 23.09.2013) Työympäristö Tein tehtävän

Lisätiedot

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento, Ctl160 490160-0 Kolmas luento, 10.2.2003 Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 490160-0Kolmas luento, 10.2.2003 p.1/28 Unohtui viime kerralla... Skriptin ajaminen edellyttää

Lisätiedot

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan 7. Taulukot 105 OPPITUNTI 7 Taulukot Taulukot ja niiden käsittelyyn liittyvät toiminnot laajentavat suuresti PHP4-skriptien käyttöaluetta ja joustavuutta. Kun tunnet taulukot, voit tallentaa niihin monimutkaisia

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

JavaScript 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ätiedot

Luento 2. Timo Savola. 31. maaliskuuta 2006

Luento 2. Timo Savola. 31. maaliskuuta 2006 UNIX-käyttöjärjestelmä Luento 2 Timo Savola 31. maaliskuuta 2006 Osa I Prosessit Prosessien hierarkia Jokaisella prosessilla on numero (process ID, pid) Jokaisella prosessilla on

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje Muistio 1 (7) Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje Sisällys 1 Johdanto... 1 2 Suojatun viestin vastaanottaminen... 1 3 Suojatun viestin lukeminen... 2 4 Vastaanotetun

Lisätiedot

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen Webmailin käyttöohje https://mail.webhotelli.net sekä https://webmail.netsor.fi Ohjeen sisältö Sähköpostin peruskäyttö Lukeminen Lähettäminen Vastaaminen ja välittäminen Liitetiedoston lisääminen Lomavastaajan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Kun tulostuksessa ilmenee muotoiluvirheitä

Kun tulostuksessa ilmenee muotoiluvirheitä Kun työ lähetetään tulostimeen, tulostinajurilla voidaan määrittää, että työ säilytetään muistissa. Kun pidätetty työ halutaan tulostaa, se valitaan tulostettavaksi tulostimen käyttöpaneelista. Lisätietoja

Lisätiedot

Kirje -tasolla viestiliikenne suojataan automaattisesti SSL-salauksella, sekä viesti lukitaan Deltagon MessageLock -tekniikalla.

Kirje -tasolla viestiliikenne suojataan automaattisesti SSL-salauksella, sekä viesti lukitaan Deltagon MessageLock -tekniikalla. Luottamuksellinen sähköposti Lapin AMK:ssa Lapin AMK käyttää Deltagon Sec@GW -ohjelmistoa sähköpostin luottamuksellisuuden suojaamiseen. D-Envelope sovelluksen avulla viestien vastaanottaminen ei edellytä

Lisätiedot

Visma Business AddOn Tuotetarrat. Käsikirja

Visma Business AddOn Tuotetarrat. Käsikirja Visma Business AddOn Tuotetarrat Käsikirja Oppaan päiväys: 30.8.2012. Asiakaspalvelu: Helpdesk: www.visma.fi Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Julkaiseminen verkossa

Julkaiseminen verkossa Julkaiseminen verkossa H9T1: Tiedostojen vienti internetiin Yliopiston www-palvelin, kielo Unix käyttöjärjestelmästä hakemistorakenne etäyhteyden ottaminen unix-koneeseen (pääteyhteys) komentopohjainen

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet

Lisätiedot

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA Sisällysluettelo Luku 1 - Oman LABRA-sivutilan asennus ja käyttöönotto... 2 1.1 - LABRA-osoitteesi... 2 1.2 LABRA-tilan käyttö (verkko-asemana

Lisätiedot

OPPITUNTI 14 Dynaamisten kuvien käsittely

OPPITUNTI 14 Dynaamisten kuvien käsittely 14. Dynaamisten kuvien käsittely 249 OPPITUNTI 14 Dynaamisten kuvien käsittely Tässä luvussa käsiteltävät funktiot liittyvät avoimeen lähdekirjastoon nimeltä GD. GD-kirjasto on joukko työkaluja, joiden

Lisätiedot

Nettiposti. Nettiposti käyttöohje

Nettiposti. Nettiposti käyttöohje YKSIKÄÄN ASIAKAS EI OLE MEILLE LIIAN PIENI TAI MIKÄÄN HAASTE LIIAN SUURI. Nettiposti Nettiposti käyttöohje Tässä käyttöohjeessa kuvataan selainkäyttöisen Nettiposti sähköpostiohjelman toiminnot. Käyttöohje

Lisätiedot

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja. Pikaopas Microsoft Excel 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Komentojen lisääminen pikatyökaluriville Pidä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Julkaiseminen verkossa, esitysgrafiikkaa (laitteistosta, tietotekniikka ja tulevaisuus) H9T1: Tiedostojen vienti internetiin

Julkaiseminen verkossa, esitysgrafiikkaa (laitteistosta, tietotekniikka ja tulevaisuus) H9T1: Tiedostojen vienti internetiin Julkaiseminen verkossa, esitysgrafiikkaa (laitteistosta, tietotekniikka ja tulevaisuus) H9T1: Tiedostojen vienti internetiin Yliopiston www palvelin, kielo Unix käyttöjärjestelmästä hakemistorakenne etäyhteyden

Lisätiedot

Komentotulkki (SHELL) C- "perhe" - csh, alkup. C shell. Komentokieli. kieltä. - tcsh - edellisen laajennettu versio

Komentotulkki (SHELL) C- perhe - csh, alkup. C shell. Komentokieli. kieltä. - tcsh - edellisen laajennettu versio UNIX/LINUX-PERUSKURSSI, MUUTTUJAT JA KOMENTOKIELI 1. Komentotulkki Tämä dokumentti kuvaa Unixin komentotulkkien ominaisuuksia sekä johdatuksen Unixin komentokieleen ja komentoskriptien luomisen. Skriptikielenä

Lisätiedot

Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti

Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti Luottamuksellinen sähköposti Lapin yliopistossa Lapin yliopisto käyttää Deltagon Sec@GW -ohjelmistoa sähköpostin luottamuksellisuuden suojaamiseen. D-Envelope sovelluksen avulla viestien vastaanottaminen

Lisätiedot

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne Kotisivuohjeet Tässä ohjeessa käydään läpi kotisivujen tekemisen perusteet keskittyen html-koodiin ja sen ominaisuuksiin. Sivupohjissa ulkoasu ja rakenne on pääasiassa jaettu erilliseen css-tyylitiedostoon,

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia L6: linux linux linux: käyttäjän oikeudet Käyttäjällä, username, on käyttöoikeus rajattuun levytilaan du -h /home/username/ tulostaa käytetyn levytilan. Yhteenvedon antaa du -h /home/jetsu/ - -summarize

Lisätiedot

Kieliteknologian ATK-ympäristö Neljäs luento

Kieliteknologian ATK-ympäristö Neljäs luento Kieliteknologian ATK-ympäristö Neljäs luento Miikka Silfverberg Nykykielten laitos 27. syyskuuta 2010 Miikka Silfverberg (Nykykielten laitos) Kieliteknologian ATK-ympäristö: Luento 3 27. syyskuuta 2010

Lisätiedot

Google Cloud Print -opas

Google Cloud Print -opas Google Cloud Print -opas Tietoja Google Cloud Printistä Tulostaminen Google Cloud Printillä Liite Sisällys Tietoja oppaasta... 2 Oppaassa käytetyt symbolit... 2 Vastuuvapauslauseke... 2 1. Tietoja Google

Lisätiedot

Yksityiskohtaiset ohjeet. TwinSpacen käyttäminen

Yksityiskohtaiset ohjeet. TwinSpacen käyttäminen Yksityiskohtaiset ohjeet TwinSpacen käyttäminen Profiilin päivittäminen...3 Opettajien ja vierailijoiden kutsuminen TwinSpaceen...4 Oppilaiden kutsuminen TwinSpaceen...7 Blogin lisääminen TwinSpacen Harjoituksiin...10

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä. Pikaopas Microsoft Access 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Näyttökoon muuttaminen tai tietokannan sulkeminen

Lisätiedot

Using the QGIS Browser

Using the QGIS Browser Using the QGIS Browser QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Kari Salovaara This work is licensed under a Creative Commons Attribution 4.0 International

Lisätiedot