Android Remember right – Peli
Api harjoittelua ja ensimmäisen pelin luomista
* Android alustalle muistipeli jossa tarkoituksena muistaa värit esitetyssä järjestyksessä
* Hyödyntää SQLite tietokantaa, Jqueryä ja Javascriptiä, Cordovaa
Status: Released (Toimiva versio, peliä testattu Android Galaxy S3 puhelimella sekä Eclipse emulaattorilla)
Kuvaus pelistä:
Peli luo alkuun satunnaisen listan ja esittää tämän käyttäjälle, jonka jälkeen käyttäjän tulee muistaa esitetyt värit samassa järjestyksessä. Mikäli pelaaja onnistuu muistamaan samat värit oikeassa järjestyksessä pääsee pelaaja seuraavalle tasolle. Pelissä ei ole ylärajaa tasojen määrälle
Lähteet:
Terokarvinen.com
docs.phonegap.com
Sourcet:
Pelin lisenssi:
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
More info about license: http://creativecommons.org/licenses/by-nc-nd/3.0/
Hello Cordova Device
Hello Cordova Device
Tässä viestissä käydään lävitse yksinkertainen cordova api, joka tällä kertaa on connect api. Esimerkissä jos puhelimessa ei ole internet (3g/wifi) käytössä niin ohjelmaa ei käynnistetä.
Muista myös liittää cordova.js eli:
<script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script>
Jos et ole varma kuinka asennat Cordovan / Phonegapin voit katsoa tämän viestin tai Tero karvisen viestin
Seuraava koodi toimii Cordova 2.1.0 versiolla testatusti:
<script type="text/javascript" charset="utf-8"> document.addEventListener("deviceready", onDeviceReady, false); // Cordova is loaded and it is now safe to make calls Cordova methods // function onDeviceReady() { checkConnection(); } function checkConnection() { var networkState = navigator.network.connection.type; if (networkState == 'none') { alert('No connection'); } else { window.location.replace("varipeli.html"); // Jos netti kutsutaan haluttua sivua samassa kansiossa //alert('Connection type: ' + networkState); } } </script>
Koodi on suora muokkaus Phonegapin sivuilla esitetystä esimerkistä pienellä muokkauksella
Lähteet
Terokarvinen.com
http://docs.phonegap.com/en/2.0.0/index.html
Lisenssi
Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html
Jquery-remember-right-game
Jquery remember right game
Release version
<!doctype html> <html> <head> <title>Remember Right | Game</title> <script src="js/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="game.css"> </head> <body> <center> <b>Ohje:</b> Katso oikea järjestys ja valitse tämän jälkeen värit samassa järjestyksessä. <form> <input id="start" type="submit" value="Aloita peli" /> </form> </center> <div id="div1"><span id="w1">X<span></div> <div id="div2"><span id="w2">X<span></div> <div id="div3"><span id="w3">X<span></div> <div id="div4"><span id="w4">X<span></div> <script type="text/javascript"> // Game made by: Petri Mäki // http://www.petrimaki.wordpress.com // This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. // More info about license: http://creativecommons.org/licenses/by-nc-nd/3.0/ var rungame = false; var level = 1; var ms = ["#w1", "#w2", "#w3", "#w4" ]; var myArray = []; // contains right moves each round var sFull = ""; // max moves every round var s = 0; // current move $("#start").click(function(){ $(this).hide(); newGame(); return false; }); var move = ""; $( "#div1" ).click(function() { if(rungame) { move = "#w1"; checkMove(move); } }); $( "#div2" ).click(function() { if(rungame) { move = "#w2"; checkMove(move); } }); $( "#div3" ).click(function() { if(rungame) { move = "#w3"; checkMove(move); } }); $( "#div4" ).click(function() { if(rungame) { move = "#w4"; checkMove(move); } }); function checkMove(move) { if (myArray[ 0 ] == move) { s++; $("p").text("Oikea siirto! " + s + "/" + sFull); myArray.shift() //Remove 0 index from array } else { rungame = false; s = 0; $("p").text("Valitsit väärän värin! Peli ohitse. Pääsit tasolle: " +level); level = 1; $('#start').val('Haluatko yrittää uudestaan?'); $('#start').show(); } if (myArray.length == 0) { // Player won rungame = false; s = 0; level++; $("p").text("Muistit kaikki oikein! Seuraava taso on: " + level); $('#start').val('Siirry seuraavalle tasolle'); $('#start').show(); myArray = ["#w1", "#w2", "#w3", "#w4" ]; } } function newGame() { myArray = []; for (var w =0; w < level + 3;w++) { var n = Math.floor((Math.random()*4)); myArray.push(ms[n]); // Add random spans to array } sFull = myArray.length; var lastI = myArray.length - 1; $("p").text("Sinun tulee muistaa " + myArray.length+ " siirtoa. Taso: " + level); $.each(myArray, function(i, val) { setTimeout(function() { $(myArray[i]).fadeIn("normal", function() { $(this).fadeOut("normal"); if (i == lastI) { // If last array index let player start game rungame = true; $("p").text("Aloita!"); } }); }, i * 2500); }); } </script> </body> <html>
Demo
Lähteet
* Terokarvinen.com
* Jquery.com
Lisenssi
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
More info about license: http://creativecommons.org/licenses/by-nc-nd/3.0/
JQuery aloitus
Tässä viestissä käydään lävitse JQueryn asennus ja käyttöönotto, sekä yksinkertainen Hello World JQuerylla. Kaikki allaolevat koodit ovat vapaasti käytettävissä.
JQuery asennus ja käyttöönotto
Aluksi lataa JQuery osoitteesta http://www.jquery.com ja tallenna se. Itse tallensin kyseisen tiedoston /js kansioon index.html tiedoston alle, jonka loin samalla. Nyt olet asentanut JQueryn.
JQuery hello world
<!DOCTYPE html> <html> <head> <title>Hello JQuery world</title> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> </head> <body> <script type ="text/javascript"> $(document).ready(function(){ $("#msgid").html("Hello world from JQuery"); }); </script> <p>HTML text</p> <div id="msgid"></div> </body> </html>
Fadeout & Lomakkeen arvon lukeminen
Seuraavassa esimerkissä luetaan lomakkeesta arvo. Mikäli arvo on ”salainen” niin kerrotaan käyttäjälle että se on oikein. Muistathan että kyseinen ratkaisu ei ole tietoturvallinen salasanojen kyselyyn!
<!DOCTYPE html> <html> <head> <title>Hello JQuery world</title> <style>span {display:none;}</style> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> </head> <body> <form action="javascript:alert('Oikein!');"> <div> <p>Salainen sana: <input type="password" /><br> <span id="vinkki" ></span></p> <input type="submit" /> </div> </form> <span id="result"></span> <script> $("form").submit(function() { if ($("input:first").val() == "salainen") { $("#result").text("Oikein...").show(); //Tulostetaan span id="result" kenttään return true; } $("#result").text("Pieleen meni! Muista salainen").show().fadeOut(1000); //fadeOut = 1000 ms return false; }); $("p").focusin(function() { $("#vinkki").text("Vinkki: Salaisen sanan tulee olla salainen").show().fadeOut(6000); //fadeOut = 6000 ms }); </script> </body> </html>
Yksinkertaista lukujen kertomista
Syöttämällä 2 lukua JQuery kertoo ne.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Yksinkertaista kertomista</title> <style> p { color:blue; margin:8px; } </style> <script src="js/jquery-1.10.2.min.js"></script> </head> <body> Anna luku1: <input id="first" type="text" value="2"/><br><br> Anna luku2:<input id="second" type="text" value="3"/> <p></p> <script> $("input").keyup(function () { var firstValue = $("#first").val(); var secondValue = $("#second").val(); if($.isNumeric(firstValue)&&$.isNumeric(secondValue)) //Vain numeerisia arvoja { var result = firstValue * secondValue; $("p").text("Tulos: " + result); } else { $("p").text("Vain numeroita!"); } }).keyup(); </script> </body> </html>
Lähteet
http://api.jquery.com/
http://www.terokarvinen.com
Lisenssi
Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html
Oman Android ohjelman tekeminen
Tässä raportissa käydään lävitse onnistunut eclipse asennus, sekä Android Hello World. Lisää tietoa asennuksesta ja androidista löydät viestin lopusta ”lähteet” osiosta. Raportin lopuksi pystyt tehdä emulaattorissa Hello World ohjelman android alustalle.
Raportti tehtiin seuraavalla laitekokoonpanolla:
Prosessori: 2.4 GHz AMD Athlon II Dual-Core Processor N350
Keskusmuisti: 4 GB DDR3 (2 x 2048 MB)
Näytönohjain: ATI Mobility Radeon HD 5650 Graphics (switchable)
Kovaley: 640 GB SATA Hard Disk Drive 5400 rpm
Verkkokortti: Integrated 10/100/1000 Gigabit Ethernet LAN
Raportissa käytetty linux distro: Ubuntu 12.04.1 LTS
Asennus tehtii 31. elokuuta 2013 klo 12-13 välisenä aikana
Eclipse Asennus
Aloitin Eclipsen asentamisen pakentinhallinnasta
sudo apt-get -y install ia32-libs eclipse
Asennuksen jälkeen käynnistä Eclipse
Mene Eclipsessä Help -> Install new Software ja ”Install android eclipse plugin”
url kenttään syötä: https://dl-ssl.google.com/android/eclipse/
Paina Next aina niin kauan että asennus alkaa. Jos saat Security Warning ilmoituksen jossa kysytään haluatko asentaa ei-allekirjoitettuja tiedostoja valitse kyllä. Uudelleenkäynnistystä kysyttäessä käynnistä uudelleen.
Uudelleenkäynnistyksen jälkeen ruutu näyttää jotakuinkin tältä:
Valitse kohta ”Install Android 2.2” ja ota raksi pois kohdasta ”Install the latest available version..” Sitten Next. Send usage statics to google: NO ja sitten Finish. Seuraavassa ruudussa hyväksy ehdot ja paina Next. Kun päivitys on valmis sulje ohjelma.
Seuraavaksi suunnista android-sdks kansioon ja sieltä tools kansio josta käynnistät ohjelman android. Itselläni kyseinen kansiopolku oli: /home/user/android-sdks/tools ja nyt sinun pitäisi olla alla olevassa näkymässä:
Valitse Android SDK Build-tools pelkästään ja asenna tämä. Kun asennus on valmis niin käynnistä Eclipse jälleen.
Luo uusi Android projekti
Siirry File -> New -> Project ja sieltä Android kansion alta Android Application Project ja paina Next. Anna ohjelmalle nimi Esim: Hello Android ja jos et pääse eteenpäin muuta Theme kohta None. Muuten älä tee muutoksia. Paina next, next, next. Install Dependencies kohdassa valitse: Install/Upgrade. Hyväksy lisenssi ja paina Next
Projektin ajo
Valitse HelloAndroid projekti hiiren oikealla Valitse run -> Android Application. Seuraavaksi kysytään haluatko lisätä uuden laitteen, valitse kyllä. Seuraavaksi: Launc a new android virtual device -> Manager-> New.
AVD name: api8. Device: Valitse mieleisesi laite. Itse valitsin Nexus 4 (4.7″) j target: Android 2.2 – API Level 8 ja Ok.
Tämän jälkeen sulje ikkuna jolloin olet taas Android Device Chooser ikkunassa jossa näkyy juuri tekemäsi laite. Jos laite ei heti näy paina oikeassa laidassa Refresh nappulaa. Valitse tehty laite ja paina Start -> Launch jolloin emulaattori käynnistyy. Kun emulaattori on käynnistynyt ja olet kännykän käynnistä valikossa sulje emulaattori, sekä muut ruudut niin, että olet takaisin eclipsesen aloitusikkunassa. Tämän jälkeen aja ohjelma uudestaan Run nappulasta. Kun ohjelma on käynnistynyt avaa mahdollinen näppäinlukko ja ruudun tulisi näyttää kuten alla:
Jos ruutu ei heti käynnisty odota hetki. Jos tämänkään jälkeen mitään ei tapahdu voit esimerkiksi koittaa laittaa yhden välilyönnin koodiin ja tallentaa tämän uudelleen, jonka jälkeen voit uudestaan koittaa ajaa painamalla Run nappulaa. Jos ruudullasi lukee valkoisella pohjalla Hello Wolrd! Olet luonut ensimmäisen ohjelmasi.
Hello PhoneGap
Valitaan File -> New -> Project -> Android application. Next -> Application name: Run Cordova ja Theme: None -> Next, Next, Next, Finnish.
Tämän jälkeen konsolissa ajetaan:
cd; cd ”workspace/RunCordova/”
mkdir assets/www/
PhoneGap asennus:
$ wget https://github.com/phonegap/phonegap/zipball/2.1.0
$ unzip 2.1.0
$ rm 2.1.0
$ cp -i phonegap*/lib/android/cordova*.jar libs/
$ cp -i phonegap*/lib/android/cordova*.js assets/www/
$ cp -ri phonegap*/lib/android/xml/ res/
$ rm -r phonegap-phonegap*/
Tämän jälkeen siirry Eclipseen takaisin ja varmista laidassa olevasta Project Explorer ikkunasta, että libs/cordova*.jar kohdassa näkyy tiedosto. Muista päivittää näkymä (F5) tai hiiren oikealle Refresh.
Tämän jälkeen mene RunCordova projektin päälle ja paina hiiren oikealla Buid Path -> Configure build path. Valitse Libaries välilehti ja Add JARs… -> Valitse RunCordova projektista Libs/cordova*.jar ja ok. Seuraavaksi siirry muokkaamaan MainActivity.java tiedostoa Source kohdan alta seuraavin muokkauksin:
src/MainActivity.java:
import org.apache.cordova.*;
extends DroidGap
super.loadUrl(”file:///android_asset/www/index.html”);
Jolloin ruudun tulisi näyttää tältä:
Seuraavaksi sinunt tulee muokata AndroidManifest.xml tiedostoa joku löytyy project explorer ruudusta. Avaa tiedosto hiiren oikealle tekstikäsittelyohjelmalla ja liitä se täältä löytyvien ohjeiden mukaan tarvittavat oikeuden (löytyvät sivun keskivaiheilta). Jätä kuitenkin android:configChanges
linja lisäämättä. Lisää rivit AndoirdManifest tiedoston loppuun ennen </manifest> kohtaan, jolloin lopputulos tulisi olla jotakuinkin tämmöinen:
Seuraavaksi luo index.html tiedosto projektin assets/www/ kansioon (löytyy Project manager ikkunasta) ja kopio sinne tämä esimerkki
Seuraavaksi aja projekti -> Run -> Android Application
Kun ohjelma käynnistyy tulee seuraava ikkuna: Auto Monitor Logcat. Valitse Yes ja Higher than: error.
Saatat joutua käynnistämään ohjelman uudelleen. Toimiessaan ohjelma tulostaa seuraavat: Device name: sdk, Device version: 2.1.0 ja kuva näyttää tältä:
Lähteet:
Tero karvinen oppitunnit 29.8.2013 (Haaga-Helia)
– http://terokarvinen.com/2012/hello-phonegap-from-xubuntu-12-04-live-cd
– http://terokarvinen.com/2013/aikataulu-%E2%80%93-mobiilituotekehitys-bus4tn008-3-syksylla-2013
– http://docs.phonegap.com/en/2.1.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android
Lisenssi
Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html
Reading Arduino serial ports in Windows 7 with Python + Pyserial
Here i am going to show you 3 working examples on how to read Arduino serial ports with windows. You are going to need following programs / tools:
Installing Python + Pyserial to Windows
First you have ton install Python on your computer. This is just typical install with no big deal. When you have installed Python you may want to restart your computer. If you are not sure if your install was succesfull you can open your command prompt and type python or go to location where you installed python and run Python.exe. If everything works correctly your command prompt should look something like this:
After installing Python you can download Pyserial. Unzip pyserial to folder where you installed python and says lib. For me example to location was:
c:\Python27\Lib\pyserial-2.6\
After you have unzipped pyserial, you should start command prompt and go to location above. In there you can find setup.py named file, which you cn run by typing:
python setup.py install
Now you have installed Python + Pyserial
Reading Arduino serial ports with Pyserial
First code is basic ”Hello world” with arduino and python
Code for Arduino:
Hello world with serial ports
Arduino code:
void setup(){ // Open serial connection. Serial.begin(9600); } void loop(){ Serial.print("Hello world"); delay(10); // ms }
Next code for python: (Note that WordPress might break Pythons code blocks)
import serial import time ser = serial.Serial('COM3', 9600, timeout=0) while 1: try: print ser.readline() time.sleep(1) except ser.SerialTimeoutException: print('Data could not be read') time.sleep(1)
Arduino read data from Python
Arduino read data when user type something and prints it out byte by byte.
Arduino code:
int incomingByte = 0; void setup(){ // Open serial connection. Serial.begin(9600); } void loop(){ if (Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); // say what you got: Serial.print("I got: "); // ASCII printable characters Serial.println(incomingByte, DEC); } }
Python code:
import serial import time ser = serial.Serial('COM3', 9600, timeout=0) var = raw_input("Enter something: ") ser.write(var) while 1: try: print ser.readline() time.sleep(1) except ser.SerialTimeoutException: print('Data could not be read')
Arduino control led
Controlling 1 led light with arduino and pyserial by typing 0 or 1 to turn led on and off
Code for arduino:
int incomingByte = 0; int ledPin = 13; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ if (Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); // say what you got: if(incomingByte == 49) { // ASCII printable characters: 49 means number 1 digitalWrite(ledPin, HIGH); } else if(incomingByte == 48) { // ASCII printable characters: 48 means number 0 digitalWrite(ledPin, LOW); } } }
Code for python:
import serial ser = serial.Serial('COM3', 9600, timeout=0) while 1: var = raw_input("Enter 0 or 1 to control led: ") ser.write(var)
Reading data from sensor and printing that to computer
In this code we are going to use unknown light sensor for arduino. You can basically use any type of sensor you want since the principle is the same.
Code for arduino:
int lightPin = 1; float lightValue; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ lightValue = analogRead(lightPin); Serial.println(lightValue); delay(1000); }
Code for python:
import serial import time ser = serial.Serial('COM3', 9600, timeout=0) while 1: try: print ser.readline() time.sleep(1) except ser.SerialTimeoutException: print('Data could not be read') time.sleep(1)
Sources:
- Tero karvinen – HAAGA-HELIA teacher (http://terokarvinen.com/)
- http://botbook.com/
This page is licensed under a GNU General Public License v2
Measuring light and turning continuous rotation servos
I decided to use light measuring sensor and continuous rotation servo to turn servo based on the light ammount. I have released full code for free use.
Basic idea
Measure ammount of light and divide it with 5 to get speed for servo and then turn servo. This could be used to to automatically lower curtains when night comes maybe
//Petri Mäki
// 19.4.2013
// http://www.petrimaki.wordpress.com#include <Servo.h>
Servo myServo;float lightValue;
int lightPin = 1;
int servoPin = 2;
int delayTime = 1000; // msvoid setup(){
Serial.begin(9600);
myServo.attach(servoPin);
}void loop()
{lightValue = analogRead(lightPin);
Serial.print(”Light value: ”);
Serial.println(lightValue); //Print light value, not sure what the scales are. 1000 seems to be realy dark and close 0 means there is much light/* Turn light value to speed. I decide to divide light value
with 5 since i think it gives good accurate. e.g 1000 / 5 = 200
where 1000 would be realy dark light value and 200 is result
for speed*/
int newSpeed = lightValue / 5;
Serial.print(”Speed: ”);
Serial.println(newSpeed);
if(newSpeed > 90) {
if (newSpeed > 180) { // Speed can only be 180 MAX
newSpeed = 180;
}myServo.write(newSpeed);
} else {
if (newSpeed < 0) {
newSpeed = 0; //Speed cannot be -1
}
myServo.write(newSpeed);
}
delay(delayTime); //ms}
// Continuous rotation servos
// Controlling continuous rotation servos with servo.h
// 90 = servo wont move
// 0 = Full speed to left
// 180 = Full speed to rightvoid servoRight(int rotatingSpeed) { // Turn right based on value
myServo.write(rotatingSpeed);
}void servoLeft(int rotatingSpeed) { //Turn left based on value
myServo.write(rotatingSpeed);
}
What i used:
- Arduino UNO
- Breadboard
- Jumper Wires
- Light sensor (Unknown model)
- SpringRC SM-S4303R Continuous Rotation Servo
Source:
- Tero karvinen – HAAGA-HELIA teacher (http://terokarvinen.com/)
- http://botbook.com/
This page is licensed under a GNU General Public License v2
Arduino with blinking lights
Simple blinking light code with Arduino Uno. See code at the end.
Basic idea:
Light on the left side(alphaLed) blink first and after this light next to it starts and will be on until end of the loop. Then alpaLed blinks again and new light starts. This will go over and over until all lights are up. Then all light will be shutdown and loop starts over.
Working code
int alphaLed = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
int led5 = 8;void setup() {
// setup leds
// alphaLed should be the one most left and its the one that blinks in every turn.
// See the video.pinMode(alphaLed, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}void loop() {
// Blinking leds. AlphaLed is the first led in line that blinks. AlphaLed blink every time when new led lights up.
digitalWrite(alphaLed, HIGH);
delay(1000);
digitalWrite(alphaLed, LOW);
delay(1000);// leave led1 on High mode
digitalWrite(led1, HIGH);
delay(1000);digitalWrite(alphaLed, HIGH);
delay(1000);
digitalWrite(alphaLed, LOW);
delay(1000);// leave led2 on High mode
digitalWrite(led2, HIGH);
delay(1000);digitalWrite(alphaLed, HIGH);
delay(1000);
digitalWrite(alphaLed, LOW);
delay(1000);// leave led3 on High mode
digitalWrite(led3, HIGH);
delay(1000);digitalWrite(alphaLed, HIGH);
delay(1000);
digitalWrite(alphaLed, LOW);
delay(1000);// leave led4 on High mode
digitalWrite(led4, HIGH);
delay(1000);digitalWrite(alphaLed, HIGH);
delay(1000);
digitalWrite(alphaLed, LOW);
delay(1000);// leave led5 on High mode
digitalWrite(led5, HIGH);
delay(1000);// Turn off all leds and start all over
digitalWrite(alphaLed, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
delay(2000);}
What i used:
- Arduino
- 6 x Leds
- Breadboard
- Jumper Wires
This page is licensed under a GNU General Public License v2
Automaattinen kansio uusille käyttäjille ja helppo bash komento
Tässä artikkelissa käydään läpi, kuinka jokainen uusi käyttäjä tulee saaamaan automaattisesti public_html kansion ja sen sisällä index.html tiedoston jossa lukee ”Hei maailma”. Lisäksi käyttäjille luodaan mahdollisuus käyttää komentoa ”osoite” jonka avulla käyttäjä saa selville oman lähiverkon ip osoitteen
Kansion luonti käyttäjille
Aluksi luomme public_html kansion /etc/skel kansioon. Tällöin jokainen uusi käyttäjä saa samat kansiot tätä kautta. Jotta voit luoda tänne kansion tulee sinun käyttää sudo komentoa.
Kansioon on myös mahdollista luoda index.html tiedosto ja kirjoittaa tänne Hei maailma, jotta tiedämme sen toimivan.
Seuraavaksi tarvitsemme uuden käyttäjän joka saa nämä tiedsotot. Uuden käyttäjän luonti tapahtuu komennolla:
sudo adduser käyttäjänimi
Nyt jos sinulla on apache2 asennettu ja konfiguroitu oikein löydät virtasen hei maailma sivun osoitteesta:
localhost/~virtanen
Ja tästä eteenpäin jokainen uusi käyttäjä saa saman sivun kun tunnukset luodaan.
Bash komennon luonti
Seuraavaksi haluamme, että käyttäjät voivat käyttää komento ”osoite” saadakseen selville oman lähiverkon ip osoitteen. Aloitamme tämän luomalla helpon bash scriptin:
#!/bin/bash
ifconfig |grep ”inet addr:”
Tämä scipti ajaa komennon ifconfig ja poimii sieltä rivit joissa lukee ”inet addr:”. Seuraavaksi meidän tulee antaa tiedostolle oikeudet, jotta myös peruskäyttäjät voivat tätä ajaa ja siirtää ohjelma käyttäjien käytettäväksi. Oikeudet voit antaa komennolla:
sudo chmod ugo+x osoite
ja tämä jälkeen siirrämme osoite nimisen ohjelman oikeaan kansioon:
sudo cp osoite /usr/local/bin/
Nyt jokainen käyttäjä voi ajaa tätä komennolla: osoite