Java appletit

Jdk-kit asennus

Java kitin asennus tapahtuu linuxin terminaalista seuraavasti:
Ennen pakettien lataamista, päivitä pakettilista komennolla:
$ sudo apt-get update

Asenna javakit:

$ sudo apt-get install openjdk-7-jdk

Koska minulla oli jo javakit asennettuna asensin Eclipsen (joka asentaa jdk-kitin toimiakseen), jolla on
mukavaa väsäillä javan parissa:

$sudo apt-get install eclipse

Eclipse on helpompi valinta, jos haluaa tehdä javalla appletteja, sillä
toisin kuin esimerkiksi netbeansissa, voit ajaa appletit suoraan run as
java applet.

Hei maailma appletilla:

Eclipsellä on helppo kokeilla appletteja. Ensin luodaan uusi javaprojekti, johon tehdään uusi java luokka (new java project -> new Class).
Seuraava koodi eclipseen:


import java.applet.Applet;
import java.awt.Graphics;

public class Apletti extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25); // draws "String" to x - y coordinates
}
}

Sitten vain yläpalkista run as applet (shift+alt+X A)

Appletti aukeaa ruudun yläkulmaan:

applet

Päädyin lopulta tekemään henkilötunnuksen tarkistajan. Appletti kysyy käyttäjän henkilötunnusta ja tarkistaa onko se normaalimuodossa. Tarkistus tapahtuu regular expressionin avulla. Jos käyttäjä on syöttänyt henkilötunnuksen oikein, ohjelma toteaa sen olevan kelvollinen tunnus:


import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class HenkiloTunnus extends Applet implements ActionListener {
Button nappi;
TextField laatikko;
Label teksti1, teksti2;

public void init() {
setSize(400,250);
teksti1 = new Label("Kirjoita henkilötunnuksesi: ");
teksti2 = new Label("Tarkastuksen tulos:");
add(teksti1);
add(laatikko = new TextField(24));
add(nappi = new Button("Tarkista"));
add(teksti2);
nappi.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
String hetu = laatikko.getText();

if (hetu.matches("\\d{6}[A+-]\\d{3}[A-Z0-9]") == true) {
teksti2.setText("Annoit kelpaavan henkilötunnuksen");
}else{
teksti2.setText("Annoit kelpaamattoman henkliötunnuksen");
}
}

}

Hyviä java linkkejä:

http://docs.oracle.com/
Kasapäin documentaatiota ja manuaalia!
Oraclen nettisivuilta ladattavissa myös viralliset javaversiot.

http://javatester.org/version.html
Testaa onko selaimessasi java käytössä. Kertoo myös javan version.

C++ toimimaan terminaalissa

Asennus

Terminaalissa c++ toimimiseen tarvitaan Linux/Unix ympäristössä GCC-kääntäjää. Asennus terminaalista:

$ sudo apt-get install g++

Testaus
Asennuksen jälkeen voidaan valittuun hakemistoon luoda ohjelma. C++ tiedoston pääte on cpp. Seuraavaksi luodaan ”Hei Maailma”-ohjelma. Tiedoston voi luoda haluamallaan tekstieditorilla. Itse käytin nanoa:

$ nano heimaailma.cpp

Tekstieditoriin kirjoitetaan:

#include
using namespace std;
int main()
{
cout << "Hei Maailma!" ;
}

Tekstieditori tallennetaan ja suljetaan (ctrl + x). Seuraavaksi tiedostosta tehdään ohjelma:

$ g++ heimaailma.cpp

Tämä luo kansioon tiedoston nimeltä a.out. Tiedosto on sinun luomasi c++ -ohjelman ja se voidaan ajaa:

$ ./a.out

Jos kaikki meni oikein terminaali tulostaa: Hei Maailma!.
Tiedosto kannattaa kuitenkin nimetä omalla nimellä. Suosittelen tätä tehtävän kun cpp-tiedosto on luotu tekstieditorilla:

$ g++ heimaailma.cpp -o omanimi

Tiedoston voi ajaa samalla lailla:

$ ./omanimi

Thats it!

Xampp ympäristön asennus

XAMPP ympäristön asennus.

Käyttämäni järjestelmä xubuntu 12.04 32-bit versio.

XAMPP ohjelmisto löytyy osoitteesta sourceforge.net/projects/xampp/ , josta voi ohjelmiston ladata painamalla download painiketta. Download painikkeesta sivusto lataa automaattisesti sinulle uusimman toimivan version. Tämänhetkinen versio on xampp-1.8.1 (linux).

XAMPP asennus aloitetaan purkamalla pakattu tiedosto opt kansioon. Puran sen terminaalin kautta, sillä näin voin käyttää super-user oikeuksia. Purku on tehtävä käyttäjän ollessa samassa kansiossa tiedoston kanssa. Pakettini sijaitsee Downloads kansiossa (cd /home/username/Downloads/).

Paketin purku:


$sudo tar xvfz xampp-linux-1.8.1.tar.gz -C /opt

Avaan ohjelman komennolla:

$sudo /opt/lampp/lampp start

Sulkeminen:

$sudo /opt/lampp/lampp stop

Kun xampp on käynnissä voit tarkistaa sen toiminnan localhostista:

http://localhost

Jos ympäristö toimii oikein, tulisi localhostilla selaimessa xamppin aloitusruutu.

Heti xamppia käyttäessä kannattaa muuttaa salasanat ympäristölle. Tämä tapahtuu terminaalista komennolla:

$sudo /opt/lampp/lampp security

Sarjaportilta viestejä tietokoneelle

Minulla oli käytössä pelkkä arduino uno, joten tein vain osan tehtävästä.

Kokeilin ensin, että serial monitor toimii. Laitoin serialmonitorin alkamaan 115200 bt/s, koska se on yleisin nopeus joka toimii useimmilla arduinoilla.
Koodi:

void setup(){

Serial.begin(115200);

}

void loop(){
Serial.print(”Hello! ”);
delay(100);
}

Monitorissa tulostui Hello! jatkuvasti.

Tietokoneelle viestejä serialmonitorilta

Linuxista löytyi python valmiina, joten tein uuden kansion mkdir puuton ja sinne nano tespuuton.py
Kirjoitin tiedostoon:

print(’Hello World!’)

Sitten komentokehotteessa vielä python tespuuton.py ja komentokehotteeseen tuli iloisesti Hello World!

muutin tespuuton tiedoston koodin seuraavaksi:

import serial

ser = serial.Serial(’/dev/ttyACM0’, 115200)

while 1:
try:
print ser.readline()
delay(100)

Koitin ajaa tiedostoni python tespuuton.py, mutta komentokehotteeseen tuli errorviesti:

serial.serialutil.SerialException: could not open port /dev/ttyACM0: [Errno 13] Permission denied: ’/dev/ttyACM0’

Koitin muuttaa oikeuksiani

sudo usermod -a -G dialout xubuntu

http://arduino-er.blogspot.fi/2013/03/serialserialutilserialexception-could.html

Tämäkään ei auttanut..
Vaivuin epätoivoon usean yrityksen jälkeen.
Koitin päivittää pythonin, ei auttanut sillä oli jo päivitetty.

Python: Milloin kuolet? -laskuri

Tehtävään käytetyn tietokoneen tiedot löytyvät täältä.

Laskurin teko

Taustaa:

Googletin suomalaisen naisen ja miehen elinajanodotteen ja laskin keskiarvon (n.80v)

Aloitin luomalla tiedoston puuton.py kansioon koodit.

Python -ohjelmani yksinkertaisuudessaan miinustaa elinajanodotteesta(80v) sinun ikäsi. Lopullinen koodi näyttää tältä:

#!/usr/bin/python

name=raw_input(”Name:”)
age=int(raw_input(”Age:”))

expectancy=80-age

if expectancy <= 0:
print(”God DAMN %s, DIE ALREADY!”)% (name)

else:
print(”Hello %s! You are %s-years old. You will die approximately in %s-years from now.”) % (name, age, expectancy)

Kohta name=raw_input(”Name:”)
age=int(raw_input(”Age:”)) ottaa käyttäjältä tiedot (nimi ja ikä.

Kohta expectancy=80-age laskee oman elinajanodotteesi käyttämällä age kohdassa ottamiaan arvoja

Jos käyttäjän ikä on sama tai yli 80, ohjelma ystävällisesti muistuttaa käyttäjäänsä vaipumaan mullan alle: if expectancy <= 0:
print(”God DAMN %s, DIE ALREADY!”)% (name)

Jos käyttäjä on alle 80 -vuotias, laskee ohjelma else kohdassa käyttäjän eliniänodotteen verrattaessa suomalaisen keski-ikään.

Lähteet:

http://python.about.com/od/gettingstarted/u/Basic-Python.htm

http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/ifstatements.html

Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.htmla

”Hei maailma!” -kolmella eri ohjelmointikielellä

Tehtävään käytetyn tietokoneen tiedot löytyvät täältä.

Ennen pakettien lataamista, päivitin pakettilistan komennolla:
$ sudo apt-get update

Java
Päätin tehdä ensimmäiseksi hei maailman javalla:
sudo apt-get install openjdk-7-jdk

Tein kotihakemistooni kansion koodit ja sinne tiedoston HelloWorld.java. Tiedostoon kirjoitin:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hei, maailma!");
    }

}

Käänsin sen komennolla:

$ javac HelloWorld.java

Ajoin:

$ java HelloWorld

Joka tulosti:

Hei, Maailma!

Python

Python löytyi vakiona linuxista.

Loin tiedoston kansioon koodit, nimellä pyyttonhei.py ja kirjoitin tiedostoon:

print(”Hei, maailma!”)

Ajoin ohjelman komennolla python puuttonhei.py ja komentokehote tulosti

Hei, Maailma!

Ruby

Viimeiseksi päädyin ruby nimiseen kieleen. Ansensin ohjelman:

sudo apt-get install ruby

Loin koodit kansioon tiedoston heiW.rb ($ nano heiW.rb)

Kirjoitin tiedostoon:

puts ‘Hello world’

Ajoin tiedoston:

ruby helloruby.rb

Profit:

Hei, Maailma!

Lähteet:

 http://en.wikibooks.org/wiki/Ruby_Programming/Hello_world

http://python.about.com/

http://introcs.cs.princeton.edu/java/11hello/HelloWorld.java.html

Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen

Tätä dokumenttia saa ko pioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

SSH:n käyttö monella käyttäjällä

Tehtävään käytetyn tietokoneen tiedot löytyvät täältä.
Openssh:n asennus

20.26

Aloitetaan päivittämällä pakettilista.

$ sudo apt-get update

20.28

Sitten asennetaan openssh demoni:

$ sudo apt-get install openssh-server

Uuden käyttäjän lisääminen

20.29

Seuraavaksi haluamme luoda uuden käyttäjän järjestelmäämme. Se hoituu komennolla:

$ sudo adduser

20.35
Jostain syystä tietokoneeni herjaa, etten voi tehdä uutta käyttäjää:
adduser: Only one or two names allowed.

Pystyn kuitenkin luomaan graafisella käyttöliittymällä uuden käyttäjän. Luon käyttäjän ericam ja kirjoitan salasanan vanhanaikaisesti paperille, sillä se on turvallisinta.
SSH-yhteys toisella käyttäjällä

20.43

Ensin haluan tietää oman ip-osoitteeni, jotta voin yhdistää tietokoneeseeni ssh-yhteydellä:

$ ifconfig

Kopioin ruudulta ip-osoitteeni ja käytän komennolla ssh käyttäjänimi@ip-osoitteeni pääsen käyttämään tietokonettani etäältä:

$ ssh ericam@127.0.0.1

Komentokehotteessa kysytään vielä: The authenticity of host ’127.0.0.1 (127.0.0.1)’ can’t be established.

ECDSA key fingerprint is 54:38:67:32:5b:71:e6:b9:93:fc:de:64:52:cc:d9:1c.

Are you sure you want to continue connecting (yes/no)?, johon vastaan yes. Sitten vain käyttäjän salasana kehiin ja etäkäyttämään!

20.53

Suljen ssh:n komennolla exit

 

SSH:n automatisointi

(18.9.2012)

17.40

SSH: käyttö vaatii aina salasanaa, mutta automatisoinnin jälkeen on mahdollista päästä etäkäyttämään tietokonetta ilman salasanan näpyttelyä. Tämä onnistuu public/private rsa avainparilla. Avainpari luodaan koneelle komennolla:

$ ssh keygen

Avainparin generoinnin jälkeen public id kopioidaan ssh:lle komennolla:

$ ssh-copy-id käyttäjänimi@ip-osoite (ip-osoitteen saa komennolla ifconfig)

SSH kysyy vielä salasanaani ja sen jälkeen ilmoittaa, että kirjautumiseni pitäisi nyt onnistua ilman salasanaa.

Testataan:

$ ssh iiro@127.0.0.1

Ja ilman salasanoja sisään:
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-23-generic i686)

* Documentation:  https://help.ubuntu.com/

SSH:n voi automatisoida toiselle käyttäjälle aivan samalla tavalla, mutta nyt ei enää tarvitse generoida uutta avainparia:

$ ssh-copy-id ericam@127.0.0.1

Ja ruudulle pompsahtaa:

Now try logging into the machine, with ”ssh ’ericam@127.0.0.1′”

SSH -yhteys suljetaan komennolla exit.
Lähteet:

Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen

http://terokarvinen.com/2005/add-ssh-account-for-public-key-authentication-4

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Openssh asennus ja yhteys myy palvelimelle

Openssh asennus

Tehtävään käytetyn tietokoneen tiedot löytyvät täältä.

19.30

Päivitän pakettilistan komennolla

sudo apt-get update

Etsin openssh tiedostoja komennolla:

sudo apt-cache search openssh

Listalta löytyy openssh-server, jonka kuvauksena lukee secure access from remote machines .

19.40

Asennan demonin openssh-server:

sudo apt-get install openssh-server

Yhteys myy -palvelimelle

19.50

Tämän jälkeen otan yhteyden myy -palvelimelleni:

ssh käyttäjänimi@myy.haaga-helia.fi

Tämän jälkeen komentokehotteeseen tulee viesti:

The authenticity of host ’myy.haaga-helia.fi (193.166.9.27)’ can’t be established.

RSA key fingerprint is bb:15:70:cd:5f:85:f0:67:25:01:f2:b4:6a:79:41:20.

Are you sure you want to continue connecting (yes/no)?

Tähän vastaan kyllä (yes), sillä luotan haaga-helian myy -palvelimeen. Jonka jälkeen tulee tämä huomautus:

Warning: Permanently added ’myy.haaga-helia.fi,193.166.9.27’ (RSA) to the list of known hosts.

Komentokehote siis kertoo, että luotan kyseiseen palvelimeen.

Tämän jälkeen kirjoitan vain salasanani ja pääsen sisäään myy palvelimelleni.

20.05

Suljen yhteyden komennolla exit.

Lähteet:

Openssh: http://www.openssh.org/

Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

-Iiro Nurmi

PHP:n asennus ja käyttö

Tehtävään käytetyn tietokoneen tiedot löytyvät täältä.

Asennetaan apache

PHP vaatii toimiakseen apache demonin. Asennus tehdään samoin kuin tällä sivulla.

15.30

Asennuksen jälkeen luodaan kotihakemistoon public_html kansio ja html tiedosto. Tarkemmat ohjeet täältä.

15.40

Kun on tarkistettu, että apache toimii päästään PHP:n asennukseen.

PHP:n asennus

15.45

Asennetaan PHP:

sudo apt-get install libapache2-mod-php5

17.10

Seuraavaksi muokataan PHP:n modeja:

sudoedit /etc/apache2/mods-available/php5.conf

Muutetaan risuaidalla tiedostoa. Lopuksi tiedosto näyttää tältä:

<IfModule mod_php5.c>

<FilesMatch ”\.ph(p3?|tml)$”>

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch ”\.phps$”>

SetHandler application/x-httpd-php-source

</FilesMatch>

# muutoksia tehty 9.9.2012 iiro nurmi

# To re-enable php in user directories comment the following lines

# (from <IfModule …> to </IfModule>.) Do NOT set it to On as it

# prevents .htaccess files from disabling it.

#<IfModule mod_userdir.c>

# <Directory /home/*/public_html>

# php_admin_value engine Off

# </Directory>

#</IfModule>

</IfModule>

Muutoksien jälkeen käynnistetään vielä apache uudelleen:

Sudo service apache2 restart

Hei maailma php:llä

17.20

Jotta voitaiisin testata php:n toimivuutta kannattaa sitä kokeilla hei maailmalla.

Luodaan public_html kansio kotihakemistoon

$ mkdir public_html

Kansioon luodaan index.php

index.php -tiedostoon kirjoitan seuraavaa:

<html>
<head>
<title>PHP helloworld</title>
</head>
<body>
<?php echo '<p>HEI MAAILMA!</p>'; ?>
</body>
</html>

17.30

Tallennan tiedoston ja kokeilen sen toimivuutta internet-selaimessani. Osoitteeksi kirjoitan: localhost/~käyttäjänimi(iiro)

Internet-selain tulostaa ruudulleni HEI MAAILMA!

– Iiro Nurmi

Lähteet

http://php.net/manual/en/tutorial.firstpage.php

http://wiki.ubuntu-fi.org/LAMP_Asennus

Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Apache

Apache weppipalvelimen asennus

Tehtävään käytetyn tietokoneen tiedot löytyvät täältä.

Apache demoni asennetaan tietokoneelle aivan samalla lailla, kuin asentaisi normaalia ohjelmaa. Ensin on kuitenkin muistettava, että on päivittänyt paketit (sudo apt-get update), jotta ladataan apachen uusin päivitys.

18.20

Aloitan Apachen asennuksen komennolla:

sudo apt-get install apache2

18.25

Asennuksen jälkeen koetan selaimen avulla (firefox), toimiiko apache demoni. Kirjoitan selaimeeni http://localhost. Firefoxiin ilmestyy teksti: “It works This is the default web page for this server.

The web server software is running but no content has been added, yet.”

Apache todellakin toimii!

Userdir serverille

18.30

Seuraavaaksi mahdollistetaan käyttäjän oma hakemisto serverille komennolla:

sudo a2enmod userdir

Jonka jälkeen apache vaatii moduulien konfingraation takia käynnistämään apachen uudelleen:

sudo service apache2 restart

Testaillaan kotisivuja

19.50 (ruokailu tehtävän välissä)

Tarkistan komentokehotteessa sijaintini pwd komennolla. Olen oikeassa sijainnissa (/home/iiro )

Luon kotihakemistooni public_html nimisen kansion:

mkdir public_html

Tarkistan ls komennolla, public_html kansio löytyy ja löytyyhän se.

19.55

Siirryn komentokehotteessa kansioon:

cd public_html

Tarkistan sijaintini pwd, ja luon kansioon tekstitiedoston komennolla nano.

Tekstitiedostooni kirjoitan seuraavaa:

<DOCTYPE!html>

<head>

<title>Hello Internet</title>

</head>

<body>

<p>Hello World!</p>

</body>

</html>

Tallennan tekstitiedoston html:läksi nimellä index.html

20.10

Kokeilen nettiselaimella toimiiko, juuri luomani sivu. Kirjoitan osoitteeksi localhost/~iiro/

ja selaimeni näyttää luomani hello internet sivun.

Lokimerkinnät apachessa

20.14

Apachen lokitiedostot sijaitsevat kansiossa /var/log/apache2/ Tähän sijaintiin pääsen cd-komennolla (cd /var/log/apache2/)

Kansiossa sijaitsee jo normaalin sivunlatauksen lokitiedot (access_log) sillä testasin nettisivuilleni pääsyä onnistuneesti. Lokissa ne käyntini näkyvät tekstinä:

127.0.0.1 – – [04/Sep/2012:20:08:16 +0300] ”GET /~iiro HTTP/1.1” 301 551 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0)$ :15.0) Gecko/20100101 Firefox/15.0”

127.0.0.1 – – [04/Sep/2012:20:08:16 +0300] ”GET /~iiro/ HTTP/1.1” 200 436 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0$v:15.0) Gecko/20100101 Firefox/15.0”

Lokitekstissä näkyy ip-osoitteeni, nettiselaimeni, mihin osoitteeseen halusin mennä.

20.25

Tehtävänä oli myös aiheuttaa sivua ei löydy virhe. Sen tekeminen ei ole vaikeaa. Nettiselaimessa sitä voi kokeilla kirjoittamalla localhostin perään olemassaolematon sivusto. Päädyin kirjoittamaan http://localhost/~iiro/k

Sijaintia k ei ole olemassa, joten nettiselain ilmoittaa: Not Found

The requested URL /~iiro/k was not found on this server.

Virheeni löytyy apachen error.logista (/var/log/apache2/error.log)

[Tue Sep 04 20:21:27 2012] [error] [client 127.0.0.1] File does not exist: /home/iiro/public_html/k

Yhteys apacheen telnetillä

20.43

Otan yhteyden apacheen telnetillä komennolla

telnet localhost 80

Aluksi en kirjoitellut mitään ja hetken päästä minun yhteyteni katkaistaan.

Seuraavalla yrittämällä rämppäilen näppäimiä ja sama lopputulos:

iiro@iirominipc:/$ telnet localhost 80

Trying 127.0.0.1…

Connected to localhost.

Escape character is ’^]’.

Connection closed by foreign host.

iiro@iirominipc:/$ telnet localhost 80

Trying 127.0.0.1…

Connected to localhost.

Escape character is ’^]’.

fgdfgdggdgd cvbvcb JEE JEEJEJEJAJ JEJEJEJEJoJAOfOajdfkköjdkjfdjklflkfdsljkjjk’¨mdfConnection closed by foreign host.

Päätän raporttini 22.47

Lähteet:

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

-Iiro Nurmi