OPPITUNTI 21 Palvelinympäristö
|
|
- Pauliina Mattila
- 6 vuotta sitten
- Katselukertoja:
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
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ätiedotOPPITUNTI 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ätiedot6. 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ätiedotOPPITUNTI 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ätiedotIDL - 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ätiedotATK 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ätiedotOhjelmoinnin 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ätiedotOPPITUNTI 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ä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ätiedotMetropolia 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ätiedotLuento 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ätiedotOPPITUNTI 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ätiedotHieman 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ätiedotKorpusten 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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotKorpusten 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ätiedotHarjoituksen 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ätiedotTä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ä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ätiedotLuento 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ätiedotOhjelmoinnin 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ätiedotOPPITUNTI 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ätiedotVERKKOSOVELLUSTEN 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ätiedotOSA 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ätiedotOPPITUNTI15 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ätiedotATK 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ätiedot2 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ätiedot8. 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ätiedot13. 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ätiedotKieliteknologian 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ätiedotASCII-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ätiedotKieliteknologian 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ä.
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ä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ätiedot3.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ätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedotVerkkosivut 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ätiedotMaastotietokannan 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ätiedotLINUX-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ätiedotTAMPEREEN 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ätiedotTiedostot. 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ätiedotKomentotulkki. 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ätiedotPalvelinpuolen ohjelmointi
Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset
LisätiedotOPPITUNTI 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ätiedotXML 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ätiedot811120P 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ätiedotUnix-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ätiedotUnix. 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ätiedotJohdatus 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ätiedotMatriisit 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ätiedotOsa. 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ätiedotOPPITUNTI 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ätiedotOPPITUNTI 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ätiedotSeaMonkey 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ätiedotOhjelmassa 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ätiedotMerkkijono 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ätiedotSQL 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ätiedotLuento 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ätiedotJuricon 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ä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ätiedotOhjelmoinnin 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ätiedotPHP: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ätiedotKä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ätiedotCtl160 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ätiedot7. 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ätiedotZeon 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ä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ätiedotLuento 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ätiedotTietojen 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ätiedotJulkinen. 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ätiedotWebmailin 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ätiedotOhjelmoinnin 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ätiedotKieliversiointityö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ätiedotKun 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ätiedotKirje -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ätiedotVisma 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ä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ätiedotJulkaiseminen 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ätiedotC-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ätiedotPERL. 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ätiedotSELVITYSRAPORTTI 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ätiedotOPPITUNTI 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ätiedotNettiposti. 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ätiedotValintanauhan 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ätiedotOhjelmoinnin 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ätiedotJulkaiseminen 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ätiedotKomentotulkki (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ätiedotLuottamuksellinen 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ätiedotKotisivuohjeet. 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ätiedotPong-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ätiedotlinux 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ätiedot2 3 LIITE 2. Index.php 1 (10) 4 5 <?php 6 7 /*! \mainpage Artikkelihallintaohjelma 8 * 9 * \section intro_sec Introduction 10 * 11 * Tämän on
2 3 LIITE 2. Index.php 1 (10) 4 5
LisätiedotKieliteknologian 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ätiedotGoogle 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ätiedotYksityiskohtaiset 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ätiedot811120P 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ätiedotPikaopas. 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ätiedotUsing 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