SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android

Size: px
Start display at page:

Download "SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android"

Transcription

1 SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android Sandro Gržičić Zagreb, lipanj 2012.

2 iii

3 Sadržaj 1. Uvod 1 2. Android Operativni sustav za prijenosne uređaje Scala Programski jezik modernog programera HelloWorld Osnovne karakteristike Funkcijski aspekti Kolekcije Ostale mogućnosti Vanjske biblioteke Unfiltered SBT Scala na Androidu Protocol Buffers Implementacija u Scali: ScalaBuff SenseGrid Android klijent Senzori Poslužitelj Mrežna komunikacija Upotreba Zaključak 19 Literatura 20 iv

4 A. Pokretanje SenseGrida 21 v

5 1. Uvod Meteorološke postaje sadrže instrumente koji precizno i točno bilježe atmosferske uvjete; međutim, takvih postaja postoji ograničen broj. Alternativa je koristiti brojne mobilne uređaje s operativnim sustavom Android čiji broj daleko nadmašuje broj fiksnih meteoroloških postaja. Gotovo svaki takav mobilni uređaj posjeduje velik broj različitih senzora, od kojih je određen broj koristan za opažanje okoline. SenseGrid je projekt koji omogućava korištenje takvih senzora radi suradničkog opažavanja okoline: sastoji se od klijentske aplikacije za mobilne uređaje s operativnim sustavom Android koja šalje poslužitelju podatke sa senzora i prikazuje dobivene podatke sa poslužitelja na intuitivnoj karti, te poslužitelja koji dobivene podatke skuplja i predaje klijentima. Android platforma veoma je fleksibilna, te za pisanje aplikacija podržava jezike koji se izvršavaju na Javinoj virtualnoj mašini (Java VM ), što (uz Javu) uključuje programski jezik Scalu. U radu će biti objašnjene osnove rada operativnog sustava Android, ukratko će se objasniti programski jezik Scala zajedno s kratkim opisom korištenih biblioteka te će biti opisana sâma aplikacija i poslužitelj. 1

6 2. Android Prepoznavajući potrebu za univerzalnim operativnim sustavom za mobilne uređaje, tvrtka Google je odlučila napraviti takav sustav. Vlasnici tvrtke su primjetili rad startup tvrtke Android Inc. na takvoj platformi godine, te je nakon kupnje startupa Google ubrzano nastavio razvoj na operativnom sustavu Android. Dvije godine kasnije je napravljen Open Handset Alliance, konzorcij velikog broja tvrtki s ciljem napredovanja mobilnih platforma preko razvoja otvorenih standarda. U isto je vrijeme konzorcij predstavio javnosti prvu verziju sustava Android. Google je također predstavio Android Open Source Project, otvoreni projekt čiji je cilj poboljšavanje i nadograđivanje otvorenog operativnog sustava Android Operativni sustav za prijenosne uređaje Android je operativni sustav primarno namijenjen prijenosnim (mobilnim) uređajima, u koje spadaju pametni mobiteli (smartphone) i tableti (mala prijenosna računala). Početne verzije su se izvršavale na uređajima koji nisu bili jako različiti od običnih mobitela, no uskoro počinju izlaziti napredniji i prikladniji modeli pametnih mobitela. Verzija 2 i njezine podverzije donose brojna poboljšanja te moderniziraju sustav. Verzija 3 je napravljena radi podrške za veće ekrane koji se nalaze na tabletima, a verzija 4 unificira verzije 2 i 3, kako bi postojala jedna verzija za sve prijenosne uređaje, te dakako nosi brojne nove mogućnosti i poboljšanja. 1 1 Detaljnije o verzijama: 2

7 3. Scala 3.1. Programski jezik modernog programera Neki se programski jezici danas primarno koriste za pisanje velikih poslovnih aplikacija. S druge strane, neki se uglavnom koriste za pisanje kraćih skripti - malih programa koji automatiziraju izvođenje radnji koje bi inače morale biti izvedene ručno. Programski jezici koji su više omiljeni kod programera obično imaju dinamički tipski sustav (dynamic typing), tj. provjera tipova se izvodi prilikom izvođenja programa, što je gotovo uvijek sporije od statičkog tipskog sustava (static typing). Ipak, većina jezika sa statičkim tipskim sustavom zahtijeva od programera puno više napisanog kôda u usporedbi s programskim jezikom s dinamičkim tipskim sustavom. Bez obzira na sirovu brzinu izvođenja, dinamički jezici obično nisu toliko skalabilni kao statički 1. Funkcijski jezici su programski jezici u u kojima programer piše slijed matematičkih izračuna, bez podrške za promjenjivim stanjem i promjenjivim podacima. Takvi su jezici najviše rašireni u akademskoj zajednici, no u zadnje vrijeme su sve popularniji i među širom programerskom zajednicom. Takvi jezici obično nemaju podršku za koncepte zastupljene u oblikovno orijentiranom programiranju, poput klasa, metoda, nasljeđivanja ili nadjačavanja (overloading). Korištenje takvih jezika je obično veoma zahtjevno za programere naučene na raširenije proceduralne ili objektno orijentirane jezike. Scala je programski jezik koji kombinira najbolje karakteristike svih kategorija jezika: ima snažan statički tipski sustav, no ne zahtijeva definiranje tipa svake varijable radi type inferencinga, tj. tipski sustav može samostalno zaključiti koji je statički tip varijable bez eksplicitnog definiranja. Pogodan je za pisanje velikih aplikacija kao i vodeći jezici u toj kategoriji, no zbog određenih karakteristika 1 Među ostalim, neki popularniju dinamički jezici imaju podršku samo za jednu nit izvođenja u isto vrijeme. 3

8 koje smanjuju potrebnu količinu kôda jednako se lako može koristiti za pisanje manjih skripti. Podržava funkcijsku paradigmu, međutim ne odbacuje objektno orijentirane mogućnosti. Scala se može nazvati duhovnim nasljednikom Jave: izvršava se na Java virtualnom stroju (Java Virtual Machine), kompatibilna je s postojećim Java programima i bibliotekama te je pogodna za korištenje na operativnom sustavu Android. Prevedeni (compiled) programi su gotovo identični Javinim prevedenim programima; glavna je razlika u tome što Scala programi zahtijevaju biblioteku Scalinih klasa (scala-library.jar) prilikom izvođenja. Za razliku od čistih funkcijskih jezika, učenje i korištenje Scale nije zahtjevno niti komplicirano, bez obzira na prijašnje programersko iskustvo. Slično kao i korištenje dinamičkih jezika, korištenje Scala je jednostavno i intuitivno HelloWorld Primjer 3.1: Hello World program u Scali 1 object BokSvijete extends App { 2 println("bok, svijete!") 3 } Kôd na prvi pogled donekle podsjeća na Java kôd, no primjećuju se određene razlike: Za razliku od Jave, Scala ne podržava static modifikator. Ključna riječ object uzrokuje kreiranje točno jedne instance klase, čiji se sadržaj može koristiti kao statički dio klase u Javi. Svaka Scala klasa ima primarni konstruktor, koji se nalazi u tijelu klase. Ostali (sekundardni) konstruktori moraju zvati primarni konstuktor. Scala klase i objekti uvijek imaju na raspolaganju sve definicije koje se nalaze u objektu Predef u paketu scala. Među njima se nalazi definicija metode println(string). Kao i sav ostali sadržaj scala paketa, u njemu je uvijek dostupan i App trait koji (korištenjem DelayedInit marker traita) prebacuje tijelo klase (tj. konstruktor) u standardnu JVM main metodu, kako bi se kôd mogao jednostavno izvršiti bez potrebe za definicijom takve metode. 4

9 Scala podržava, no ne zahtijeva točku sa zarezom na kraju svakog izraza. Korištenje tog interpunkcijskog znaka nije preporučeno, jer gotovo nikada ne pridonosi čitljivosti kôda Osnovne karakteristike Primjer 3.2: Demonstracija osnovnih karakteristika 1 class DemonstracijskiPrimjer ( 2 val konstanta: Int, 3 var varijabla: Double, 4 opisnik: String = "" 5 ) { 6 7 def ispišibroj(broj: Int) { 8 println(broj) 9 } 10 def udvostruči(broj: Int) = broj * konstanta def primjeni(funkcija: (Int) => Int)(broj: Double) = funkcija(broj toint) println(opisnik + ": " + primjeni(funkcija = udvostruči)(varijabla)) 15 } Tip varijable slijedi njeno ime te je odvojen dvotočkom, za razliku od Jave. Parametri klasa, metoda i funkcija mogu imati default vrijednost koja se koristi ako vrijednost parametra nije navedena prilikom pozivanja. Moguće je imenovati parametre prilikom poziva metode radi lakše čitljivosti kôda. Između definicije metode i tijela mora stajati znak jednakosti = ukoliko metoda ima povratnu vrijednost; u suprotnom Scala pretpostavlja da metoda nema povratnu vrijednost, odnosno povratna vrijednost je Unit (slično kao void u Javi). Točka između objekta nad kojim pozivamo metodu i poziva metode je opcionalna ako metoda prima točno 0 ili 1 parametar. Scala razlikuje četiri vrste identifikatora: val (value) predstavlja konstantu, odnosno varijablu čiji se sadržaj ne može mijenjati (immutable) 5

10 lazy val predstavlja konstantu čiji se sadržaj ne evaluira na mjestu definicije, nego tek pri prvom pristupu var (variable) predstavlja uobičajenu promjenjivu varijablu (mutable) def (definition) predstavlja definiciju metode Scala prati Uniform access principle; metode ne moraju imati zagrade, pri čemu ne postoji razlika u pristupanju metoda bez argumenata (npr. def vraća2 = 2) i varijabli (val vraća2 = 2). Štoviše, oba imena (vraća2 ) se nalaze u istom prostoru imena, te bi takva dvostruka definicija uzrokovala grešku prilikom prevođenja. Ovaj princip omogućuje primjerice inicijalno definiranje neke varijable, te naknadnu zamjenu iste metodom, bez promjene klijentskog kôda. Neki jezici imaju slične mogućnosti, no u Scali je ovo maksimalno pojednostavljeno. [9] Svaki blok naredbi predstavlja izraz (expression) koji se može pridjeljivati varijablama, što znači da je kôd poput val dva = {val jedan = 1; jedan + 1} valjan. Zadnji izraz predstavlja povratnu vrijednost bloka naredbi, pa nije potrebno ni preporučljivo na kraju bloka koristiti ključnu riječ return; tada nije potrebno definirati povratni tip, već će on biti automatski zaključen na temelju zadnjeg izraza u bloku. Primitivni tipovi kao što su int ili float ne postoje, već su svi takvi tipovi punopravne klase: Int, Float, itd. Prevoditelj prepoznaje u kojem se kontekstu tipovi koriste, te ovisno o tome generira brži kôd koji koristi primitivne JVM tipove, bez da se programer brine o takvim detaljima. Svi tipovi nasljeđuju klasu Any; primitivni tipovi nasljeđuju klasu AnyVal, dok svi ostali (referentni) tipovi nasljeđuju AnyRef. Sve klase prevedene Scala prevoditeljem nasljeđuju klasu ScalaObject Funkcijski aspekti Kontrola toka pomoću ključne riječi if funkcionira jednako kao u Javi; međutim, pošto je svaki blok naredbi ujedno i izraz sa povratnom vrijednošću, jednako tako i if statement ima povratnu vrijednost: Primjer 3.3: if uvjet 1 val rezultat = if (1 + 1 == 2) "Procesor radi normalno." else "?!?" Tip definirane nepromjenjive varijable rezultat je automatski zaključen prilikom prevođenja: String. Ukoliko ne definiramo else granu, tip će biti najopćenitiji 6

11 mogući: Any. While petlja radi identično kao i u Javi. Primjer 3.4: while petlja 1 var brojač = 0 2 while (brojač < 10) { 3 brojač += 1 4 println(brojač) 5 } Operatori koji povećavaju ili smanjuju vrijednost neke varijable za 1 (pre/post increment/decrement nisu podržani, pošto takav kôd nije u duhu funkcijskog programiranja. Standardna for petlja je izbačena: umjesto nje postoji for comprehension, odnosno for izraz. Riječ je o naprednijem obliku uobičajene for petlje, koji se oslanja na određene metode koje implementiraju sve Scala kolekcije po kojima je moguće iterirati. Primjer 3.5: for izraz i lambda funkcije 1 val programskijezici = List("Scala", "Haskell", "D") 2 3 for (jezik <- programskijezici) { 4 println(jezik) 5 } 6 7 def mojprintlnmetoda(nekitekst: String)) { nekitekst => println(nekitekst) } 8 9 val mojprintlnfunkcija: (String) => Unit = nekitekst => println(nekitekst) programskijezici.foreach(jezik => println(jezik)) programskijezici foreach((jezik) => mojprintlnfunkcija(jezik)) programskijezici foreach(mojprintlnfunkcija(_)) 16 7

12 17 programskijezici foreach { jezik => 18 mojprintlnmetoda(jezik) 19 } Kao što je vidljivo, for comprehension se oslanja na postojanje metode foreach u kolekciji po kojoj iteriramo. Metoda prima funkciju koja ima točno jedan parametar, jednakog tipa kao što je i tip kolekcije, a rezultat funkcije se odbacuje. Ako metoda prima funkciju kao parametar, radi bolje čitljivosti moguće je i preporuča se korištenje vitičastih zagrada. Funkcije se mogu definirati samostalno pridjeljivanjem funkcije varijabli, no u tom slučaju je bolje definirati pravu metodu pošto je takvu sintaksu jednostavnije čitati. Funkcije se najčešće definiraju unutar poziva neke metode kao lambda funkcije; tada obično nije potrebno definirati tipove parametara i povratne vrijednosti, pošto ih prevoditelj zaključuje na temelju potrebnih tipova metode. Lambda funkcije se vrlo jednostavno definiraju, te u slučaju 1 parametra nije potrebno imenovati parametar, kojem se jednostavno pristupa wildcardom _ (podcrtom). Moguće je koristiti anonimne parametre i u slučaju više parametara; tada svaka podcrta predstavlja jedan parametar, redom. Ukoliko imenujemo parametre, oni se obvezno okružuju običnim zagradama ukoliko ih ima više i odjeljuju od tijela lambda funkcije znakovima =>. Primjer 3.6: Ključna riječ yield 1 val imena = List("Tamara", "Iva", "Ana") 2 3 val prvaslova = for (ime <- imena) yield ime.head 4 prvaslova foreach { println(_) } 5 6 (for (ime <- imena) yield ime.head) foreach (println(_)) Moguće je iskoristiti for comprehension i za kreiranje nove kolekcije iz postojeće: ako na kraju dodamo ključnu riječ yield, iteracija početne kolekcije će u svakom koraku dodavati po jedan svježe generiran element u novu kolekciju, a rezultat cijelog for comprehensiona je upravo ta nova kolekcija. Filtriranje elemenata je moguće ostvariti dodavanjem if uvjeta. Rezultat je ekvivalentan korištenju metode filter nad kolekcijom. Iz vidljivog, očito je moguće povući paralelu s Haskellovim list comprehension sintaksnim šećerom. 8

13 1 val raspon = 1 to 10 Primjer 3.7: if unutar for izraza 2 3 val parnibrojevi = 4 for (broj <- raspon if (broj % 2 == 0)) 5 yield broj 6 println(parnibrojevi) // Vector(2, 4, 6, 8, 10) 7 8 val parnibrojevi2 = raspon filter(_ % 2 == 0) 9 println(parnibrojevi2) // Vector(2, 4, 6, 8, 10) 3.5. Kolekcije Kolekcije podataka su veoma inteligentno napravljene i dovoljno razgranate da pokriju većinu potreba [8], no istovremeno su vrlo jednostavne za upotrebu [7]. Najosnovnije strukture su lista (List), skup (Set) i mapa (Map). Scala podržava nekoliko podvrsta tih struktura za različite upotrebe, uključujući nepromjenjive (immutable), promjenjive (mutable), konkurentne (concurrent) i paralelne (parallel) verzije. Većina kolekcija implementira uobičajene metode funkcijskih jezika: map, fold, reduce, foreach, head, tail, take, drop, itd. Također je moguće kolekcije pretvarati iz jednog tipa u drugi; točni rezultati operacija ovise o tipu kolekcije. Primjer 3.8: Primjer kolekcija 1 1 until 10 // collection.immutable.range 2 1 to 10 // collection.immutable.range.inclusive 3 List(1, 2, 3) // collection.immutable.list 4 Set(1, 2, 3) // collection.immutable.set 5 Map(1 -> a ) // collection.immutable.map 6 Seq(1, 2, 3) // collection.immutable.list 7 IndexedSeq(1, 2) // collection.immutable.vector 8 Traversable(1, 2) // collection.immutable.list 9 10 // collection.parallel.immutable.parvector 11 (1 to ).toList.par Kolekcije su fundamentalno izmjenjene izlaskom Scale 2.8. Verzija 2.9. je donijela nove paralelne kolekcije [2], a verzija 2.10 uvodi konkurentnu kolekciju 9

14 TrieMap koja omogućuje konkurentni pristup kolekciji bez potrebe za vanjskom sinkronizacijom (concurrent lock-free) [3]. Iako se radi o veoma naprednoj i kompleksnoj strukturi, korištenje je izuzetno jednostavno Ostale mogućnosti Naprednije mogućnosti tipskog sustava uključuju: objekte (object - posebne jedinstvene statičke instance klasa), traitove (trait - mixin - sučelje sa implementacijama metoda), složene tipove (compound types), apstraktne tipove, gornje i donje granice generičkih tipova, kovarijantne i kontravarijantne tipove te implicitno zaključivanje o tipovima. Korisne mogućnosti za funkcijsko programiranje su: lambda funkcije, imenovani parametri, lokalne metode, rekurzija, repno-rekurzivna optimizacija (tailrecursive call optimization), parcijalne funkcije, currying, parcijalno primjenjene funkcije, type classes te širok i koristan skup metoda kolekcijskih klasa koje dolaze iz čisto-funkcijskih jezika. Jedinstvene mogućnosti Scale su: operatorske metode 2, implicitne konverzije, implicitni parametri, magične metode apply i update, manifesti, jednostavna konstrukcija DSL-ova 3 kombinacijom operatorskih metoda i izostavljanja točke kod poziva takvih metoda Vanjske biblioteke Iako Scala podržava sve postojeće biblioteke napisane za Javu, u zadnjih nekoliko godina se pojavio veliki broj različitih vanjskih biblioteka (third party libraries) različitih autora koje omogućuju pisanje jednostavnijeg, čitljivijeg i lakše održivog kôda u odnosu na Javine biblioteke. Najpoznatije biblioteke su: Web: Lift, Play!, Scalatra, Bowler REST: Spray, BlueEyes, Dispatch, Unfiltered Baze podataka: Squeryl, ScalaQuery, O/R Broker, Scalandra, Anorm Raspodijeljeno računanje: Akka, Kestrel, Spark, Swarm Testiranje: ScalaTest, Specs2, ScalaCheck 2 imena metoda mogu sadržavati operatorske znakove, npr. +, -, *, itd. 3 Domain Specific Language - jezik napisan za određenu usku primjenu. 10

15 Ostalo: Scalala, Scalaz Unfiltered Unfiltered je biblioteka koja omogućuje jednostavno postavljanje HTTP poslužitelja. Nathan Hamblen također je autor biblioteke Dispatch, koja služi za slanje HTTP zahtjeva odgovarajućem poslužitelju, pa je moguće jednostavno kombinirati Dispatch na strani klijenta s Unfiltered poslužiteljem. 4 Biblioteka obrađuje zahtjeve pomoću planova (plan) i namjera (intent). Namjera je parcijalna funkcija (PartialFunction 5 ) koja prima dolazni HTTP zahtjev te na njega odgovor ukoliko je za taj zahtjev definirana (ukoliko niti jedna funkcija nije definirana za neki zahtjev, Unfiltered automatski vraća HTTP grešku 404). Plan je trait koji spaja parcijalnu funkciju sa poslužiteljskim sučeljem; svako sučelje ima vlastiti plan. Moguće je napisati vlastiti poslužiteljski kôd koji će preko odgovarajućeg Unfiltered sučelja odgovarati na zahtjeve; ipak, biblioteka dolazi s nekoliko poslužiteljskih sučelja i ugrađenih poslužitelja koji se vrlo jednostavno koriste - nije potrebno konfigurirati ili pokretati vanjske programe. Postoje sučelja za: Java Servlet API (Servlet Filters), Java Servlet 3.0 asinkroni API (Asynchronous Servlet Filters te Netty mrežne kanale (channels). Ugrađeni poslužitelji su: Jetty, Jetty-AJP (Apache JServ Protocol) i Netty SBT Simple Build Tool autora Marka Harraha preporučen je alat za izgradnju Scala projekata. Aktivno se razvija te ga koriste gotovo svi Scala projekti. Glavna prednost korištenja SBT-a za prevođenje izvornih datoteka u odnosu na direktno korištenje Scala prevoditelja je to što eliminira vrijeme potrebno za pokretanje Java virtualnog stroja, pošto drži prevoditelj cijelo vrijeme pokrenut u stanju čekanja (warm standby). Ima širok spektar mogućnosti: prevodi izvorne datoteke napisane u Scali i Javi 4 Dispatch (0.8) ima određene probleme s Android platformom, koji će biti riješeni tek u idućoj verziji biblioteke, Dispatch Reboot (0.9). Zato trenutno nije preporučljivo koristiti Dispatch na Android platformi. 5 Klasa PartialFunction[A, B] predstavlja funkciju s jednim parametrom tipa A koja ne mora biti definirana na cijeloj domeni tog tipa, a vraća rezultat tipa B. 11

16 automatski preuzima odgovarajuće verzije Scale i svih potrebnih biblioteka o kojima ovisi projekt koristeći Apache Ivy opisnik projekta je napisan u Scala DSL-u sadrži ugrađenu ljusku za jednostavnije korištenje koja omogućuje: prevođenje i pokretanje programa pokretanje Scala REPL-a 6 automatsko pozadinsko prevođenje i pokretanje programa prilikom izmjene izvornih datoteka mogućnost korištenja korisnih alata: ProGuard 7 i JRebel 8 pomoću odgovarajućih dodataka (plugin) SBT se može koristiti u sklopu drugih alata; poznati primjer je Scala IDE za Eclipse, koji koristi SBT za izgradnju Scala projekata Scala na Androidu Kao što je rečeno, Scala klase se mogu koristiti iz Jave; potrebno je samo uključiti Scalinu biblioteku, scala-library.jar. Ipak, dotična je biblioteka relativno velika i sadrži velik broj klasa; radi toga nije preporučljivo jednostavno pakiranje navedene biblioteke u izlaznu Android aplikaciju, već ju je potrebno prvo obraditi pomoću ProGuarda, kako bi se samo korištene klase zadržale u izlaznoj APK datoteci 9. Navedeni postupak je dugotrajan (30-60 sekundi, ovisno o brzini procesora) i nije skalabilan (Proguard ne može koristiti više jezgri procesora), te je razlog duljem čekanju između izmjene u izvornicima programa i uspješnom pokretanju na emulatoru ili uređaju prilikom korištenja Scala klasa. Moguće rješenje je instalacija Scala biblioteke među sistemske biblioteke na uređaju; navedeni postupak zahtijeva rootani Android uređaj, no sam postupak instalacije je veoma jednostavan, ako se koristi Scala Standard Library Installer 6 Read-Evaluate-Print-Loop, ljuska u kojoj je moguće izravno izvršavati naredbe jezika te odmah vidjeti rezultate izvođenja 7 ProGuard je alat koji obrađuje izlazne Java klase: može ih smanjiti, optimizirati, obfuscirati te pre-verificirati. 8 JRebel omogućuje instantne izmjene pokrenutih klasa u memoriji nakon ponovnog prevođenja bez ponovnog pokretanja programa 9 Preciznije, kako bi se samo korištene klase predale Android Dex alatu. 12

17 aplikacija, dostupna na Google Play Storeu 10. Nakon instalacije potrebno je ugasiti Proguard korak u odabranom sustavu izgradnje aplikacije, nakon čega će prevođenje i pokretanje Scala aplikacije biti puno brže (5-15 sekundi). Za SBT sustav izgradnje aplikacije postoji nekoliko dodataka koji olakšavaju rad s Androidom: Jan Berkel sbt-android-plugin pfn Android SDK Plugin Prvi plugin zahtijeva više predinstalacijskih koraka, više konfiguracije, te nije jednostavno prilagodljiv za rad s IDEom. Drugi je plugin je veoma sličan, no jednostavniji za konfiguraciju, uz nešto manje dostupnih mogućnosti. Oba dodatka za SBT ostvaruju sve korake koji su potrebni da se izvorni kôd Android aplikacije prevede, optimizira, zapakira, potpiše s debug ili release ključem, poravna (align), instalira na uređaju/emulatoru te pokrene. Alternativno, moguće je koristiti sustav izgradnje nekog od IDE programa koji imaju podršku za Android, direktno ili pomoću dodataka: jedan od takvih IDEa je IntelliJ IDEA, s direktnom podrškom za Android. Uz Scala plugin, IDE omogućuje izgradnju Android aplikacija na sličan način kao i neki od SBT dodataka s podrškom za Android, uz grafičko sučelje Protocol Buffers Za izmjenu strukturiranih podataka (poruka) između klijenata i poslužitelja preko protokola HTTP najraširenije su dvije osnovne vrste formata: tekstualni kojem pripadaju XML, JSON, YAML i slični; binarni kojem pripada npr. Javina serijalizacija. Poruke (strukturirani podaci) su često jednostavne za ručno čitanje i pisanje, pošto je s njima moguće raditi u bilo kojem tekstualnom editoru. Ipak, radi korištenja tekstualnog formata, za njihovo čitanje je potrebno koristiti posebni (relativno spori) parser, što usporava program koji ih koristi za izmjenu podataka; za pisanje se koristi također relativno spori prevoditelj. Takve poruke gotovo uvijek zauzimaju nešto više prostora; moguće je rješenje korištenje on-the-fly kompresije, no to dodatno usporava rad s porukama scalainstaller 13

18 Različiti binarni formati, uključujući nativnu Javinu serijalizaciju, omogućuju nekoliko reda veličine brže slanje i primanje poruka. Takve poruke su obično minimalne moguće veličine, no ovisno o formatu, postoje mnogi problemi: najveći problem je nemogućnost direktnog pregleda poruke prilikom prijenosa. Protokol Protocol Buffers tvrtke Google kombinira najbolje karakteristike tekstualnih i binarnih formata: prvo se definira struktura poruka u posebnoj.proto datoteci, a zatim se ta datoteka prevede u strukturu podataka (klasu) koja se može direktno koristiti u jeziku u kojem pišemo naš program. [6] Službeni Protocol Buffers (protobuf ) prevoditelj može prevoditi.proto datoteke u Java, C++ i Python klase, a postoje različiti dodaci i biblioteke za prevođenje u gotovo svaki korišteni programski jezik. 11 Primjer 3.9: Definicije Protocol Buffers poruka 1 package com.example; 2 message ProbnaPoruka { 3 required int64 id = 1; 4 required ImePrezime ime_prezime = 2; 5 optional float prosjek = 3; 6 repeated string telefonski_broj = 4; 7 } 8 message ImePrezime { 9 required string ime = 1; 10 required string prezime = 2; 11 } Implementacija u Scali: ScalaBuff Do ljeta godine nije postojala podrška za prevođenje.proto datoteka u klase kompatibilne sa Scalom. ScalaBuff 12 je upravo takav prevoditelj, nastao za vrijeme programa Google Summer of Code ScalaBuff je program napisan u Scali koji ulazne.proto datoteke prevodi u valjane Scala klase čije je sučelje kompatibilno s Java klasama koje generira službeni Googleov prevoditelj; generirane klase se mogu koristiti jednako kao i Java verzije, no postoje određena poboljšanja, tako da je Scala klase puno lakše koristiti (uz to, količina generiranog Scala kôda je za red veličine manja)

19 Primjer 3.10: Jednostavna poruka 1 message DvaBroja { 2 required int32 prvi_broj = 1; 3 required float drugi_broj = 2; 4 } Primjerice, Java klasa generirana iz navedene.proto datoteke ima 461 liniju generiranog kôda, dok Scala klasa ima samo 76 linija, te je puno jednostavnija za korištenje. Razlika je tim veća što je poruka složenija. Primjer 3.11: Korištenje poruke DvaBroja u Scali i Javi 1 import {scala.dvabroja => DvaBrojaScala} 2 import {java.dvabroja => DvaBrojaJava} 3 4 val prvibroj = 1 5 val drugibroj = 0.5f 6 7 val scalaporuka = DvaBrojaScala(prviBroj, drugibroj) 8 9 val javaporuka = DvaBrojaJava 10.newBuilder() 11.setPrviBroj(prviBroj) 12.setDrugiBroj(drugiBroj) 13.build() Klasa koja je popunjena podacima se može slati kao poruka preko mreže veoma jednostavno; moguće ju je zapisati kao polje byteova, u OutputStream, itd. Primatelj također veoma jednostavno može učitati popunjenu poruku iz polja byteova, InputStreama, itd. 15

20 4. SenseGrid SenseGrid omogućava korištenje senzora ugrađenih u mobilne uređaje s ciljem suradničkog opažavanja okoline. Programska implementacija se sastoji od klijentske aplikacije za mobilne uređaje s operativnim sustavom Android te poslužitelja koji dobivene podatke skuplja i predaje klijentima. Ipak, ukoliko klijent koristi HTTP za komunikaciju i SenseGrid Protocol Buffers poruke, moguće je napisati vlastitog klijenta za bilo koju platformu koja će komunicirati sa SenseGrid poslužiteljem Android klijent Klijentska aplikacija je napisana za Android platformu te podržava verzije operativnog sustava (API verzija 10) i više; konkretno, verzija 4.0 je u potpunosti podržana. Aplikacija automatski prepoznaje dostupne senzore te osluškuje njihova stanja radi slanja poslužitelju. Glavni način pregleda podataka sa senzora ostalih korisnika aplikacije je jednostavna karta koja prikazuje trenutne lokacije korisnika Senzori Podržani senzori uključuju sve senzore korisne za promatranje okoline: temperaturni senzor magnetometar senzor tlaka (Android verzija 4.0 ili viša) senzor relativne vlažnosti (Android verzija 4.0 ili viša) Poslužitelju se šalju samo podaci sa senzora koji postoje na uređaju, kako bi se minimizirala količina poslanih podataka. 16

21 Rosište (dew point) i apsolutna vlažnost mogu se izračunati kombinacijom temperaturnog senzora i senzora relativne vlažnosti; potrebno je da uređaj ima oba senzora, te Android verziju 4.0 ili višu. Računanje rosišta uz poznatu temperaturu t (u C) i relativnu vlažnost RV: t d (t, RV ) = gdje je (uz a = , b = C): γ(t, RV ) = b γ(t, RV ) a γ(t, RV ) a t RV + ln b + t 100% Računanje apsolutne vlažnosti (u g/m 3 ) moguće je korištenje formule: d v = gdje je A = hpa, a = RV 100% A exp a t t n+t t (4.1) (4.2) (4.3) 4.2. Poslužitelj Poslužitelj je napisan u Scali i koristi Unfiltered biblioteku za primanje, obradu i odgovor HTTP zahtjeva. Koriste se Netty plan uz Java NIO kanale (channels) i Netty asinkroni poslužitelj. Za pohranu podataka u memoriji koristi se konkurentna mapa ConcurrentTrieMap koja omogućuje izuzetno brzo konkurentno pisanje i čitanje. Ključ mape je jedinstveni identifikator prijenosnog uređaja, kako bi se struktura mogla osvježiti novim podacima bez iteracije kroz cijelu strukturu, a vrijednost su podaci u obliku Protocol Buffers poruka koje sadrži dotični prijenosni uređaj Mrežna komunikacija SenseGrid Android klijent i poslužitelj koriste protokol Protocol Buffers za međusobnu izmjenu poruka preko standardnog protokola HTTP; koristi se ScalaBuff za generiranje Scala klasa iz.proto opisnika. 1 val message = Sensors(deviceID, activity.lat, activity.long, activity.accuracy, System.currentTimeMillis, Vector(messages.filter(_!= null): _*) 2 ) 3 4 message.writeto(httpconnection.getoutputstream) 17

22 5. Zaključak Moderan svijet se sve više fokusira na prijenosne uređaje. Meteorologija zato ne treba zaostajati: povećavajući broj mogućih prijenosnih mini-meteoroloških postaja dobivamo preciznije i aktualnije podatke o trenutnim vremenskim uvjetima kako u našoj okolini, tako i u cijelom svijetu. Operativni sustav Android i njegova platforma omogućuje jednostavno korištenje senzora prijenosnih uređaja. SenseGrid koristi te senzore kako bi omogućio jednostavno suradničko opažanje okolinskih uvjeta na inovativan i zanimljiv način. Moguća poboljšanja projekta uključuju: više društvenih aspekta u Android aplikaciji, izradu klijenata za ostale mobilne platforme, izradu web sučelja prema poslužitelju te dodatak poslužiteljskog modula koji će na neki način pametno obrađivati pristigle podatke u stvarnom vremenu. Također je moguće dodati podršku za vanjske senzore, koji se prijenosnim uređajem spajaju preko vanjskog sučelja, primjerice bežično preko protokola Bluetooth ili direktno preko USB konektora. Korisnost aplikacije bi se dodatno povećala primjerice podrškom za senzore koji mjere radioaktivnost. 18

23 Literatura [1] Joel Abrahamsson. Learning Scala, URL com/entry/learning-scala. [2] Heather Miller Aleksandar Prokopec. Parallel Collections Library. EPFL, Switzerland, URL parallel-collections/overview.html. [3] Phil Bagwell Martin Odersky Aleksandar Prokopec, Nathan G. Bronson. Concurrent Tries with Efficient Non-Blocking Snapshots, URL http: //lampwww.epfl.ch/~prokopec/ctries-snapshot.pdf. [4] Scala Standard Library API Documentation. École Polytechnique Fédérale de Lausanne, Switzerland, URL current/. [5] Alex Payne Dean Wampler. Programming Scala. O Reilly Media, URL [6] Protocol Buffers Developer Guide. Google. URL google.com/protocol-buffers/docs/overview. [7] Lex Spoon Martin Odersky. The Scala 2.8 Collections API, URL http: //docs.scala-lang.org/overviews/collections/introduction.html. [8] Lex Spoon Martin Odersky. The Architecture of Scala Collections, URL architecture-of-scala-collections.html. [9] Bertrand Meyer. Uniform Access. Eiffel Software, URL eiffel.com/general/column/2005/sept_october.html. Idem u školu. 19

24 Dodatak A Pokretanje SenseGrida Sve što je potrebno za ispravnu instalaciju je dostupnost Javinog virtualnog stroja, odnosno java naredbe; nije potreban Javin javac prevoditelj (JDK) niti instalacija Scale. Moguće je preuzeti i podesiti recentnu verziju Simple Build Toola ( 1, no preporučena verzija tog alata se već nalazi u distribuciji programa u direktoriju sbt. U slučaju korištenja postojećeg SBT-a, potrebno ga je pokrenuti prebacivanjem trenutnog direktorija u direktorij projekta, te izvršavanjem naredbe sbt/sbt (inače je dovoljna samo naredba sbt). Prvim pokretanjem SBT-a će proći neko vrijeme dok se ne preuzmu sve potrebne biblioteke (uključujući android-sdk-plugin dodatak za SBT). Dolaskom do ljuske SBT-a moguće je izvršavati naredbe; trenutnu je naredbu moguće dovršiti pritiskom tipke TAB. Korisne naredbe uključuju: exit za izlaz help za pomoć devices za popis trenutno spojenih Android uređaja device <ID> za odabir zadanog spojenog Android uređaja android:run za pokretanje aplikacije na trenutno spojenom Android uređaju project <projekt> za odabir projekta (android ili server) run za pokretanje projekta Naredba run će prije pokretanja prevesti izvorišne datoteke u izlazne, ukoliko izlazne datoteke ne postoje ili su se izvorišne datoteke promijenile u odnosu na posljednje prevađanje. 1 android-sdk-plugin dodatak u obliku gotove binarne biblioteke u repozitoriju postoji samo za SBT verziju , pa je u slučaju novije verzije potrebno ručno izgraditi dodatak. 20

25 Za pokretanje Android aplikacije potrebno je odabrati projekt naredbom project android, nakon čega će android:run pokrenuti aplikaciju na trenutnu odabranom spojenom uređaju. Pokretanje poslužitelja se odvija odabirom poslužiteljskog projekta - project server - te pokretanjem trenutno aktivno projekta: run. Poslužitelj se gasi pritiskom bilo koje tipke. Unutar SBT-a je moguće pokrenuti interaktivnu Scalinu konzolu (REPL) naredbom console, iz koje se izlazi kombinacijom CTRL+D. Cijeli ovaj postupak je moguć radi toga što SBT pokretač (kompatibilan s Javom) prvo preuzme potrebnu verziju Scalinih biblioteka (2.9.1) i definirane dodatke (u ovom slučaju sbt-android-plugin), zatim pokrene upravo preuzeti SBT koji onda preuzme projektnu verziju Scalinih biblioteka (2.9.2) i sve ostale projektne biblioteke. 21

26 SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android Sažetak U radu se opisuje projekt SenseGrid čija je namjena suradničko opažanje okolinskih uvjeta. Projekt se sastoji od aplikacije za operativni sustav Android i poslužitelja, napisanih u programskom jeziku Scala. Komunikacija klijentskog programa i poslužitelja se odvija preko mreže, koristeći Scala implementaciju Protocol Buffera za razmjenu poruka, ScalaBuff. Ključne riječi: android, scala, sensegrid, mobilni uređaj, pokretna mreža, opažanje okoline, praćenje uređaja, kolaboracija, scalabuff SenseGrid: Collaborative environment observation using mobile devices with the Android operating system Abstract The result of this study is the SenseGrid project, with the goal of collaborative environment observation using mobile devices. The project consists of an application for the Android operating system and a server, both of which are written in the Scala programming language. The client application and the server communicate via network, using the Scala implementation of Protocol Buffers for message sending, ScalaBuff. Keywords: android, scala, sensegrid, mobile device, mobile network, environment observation, device tracking, collaboration, scalabuff

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

More information

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

More information

VRIJEDNOSTI ATRIBUTA

VRIJEDNOSTI ATRIBUTA VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not

More information

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()

More information

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete

More information

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365 Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog

More information

Sberbank Business Online na Mozilla FireFox

Sberbank Business Online na Mozilla FireFox Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI

More information

Naredbe za kontrolu toka

Naredbe za kontrolu toka Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku

More information

PROGRAMIRANJE. Amir Hajdar

PROGRAMIRANJE. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u

More information

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uputa za instaliranje programske potpore za operativni sustav WINDOWS ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

PARALELNO PROGRAMIRANJE

PARALELNO PROGRAMIRANJE Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom

More information

Vežbe - XII nedelja PHP Doc

Vežbe - XII nedelja PHP Doc Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje

More information

Prva recenica. Druga recenica.

Prva recenica. Druga recenica. Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta

More information

dr. sc.. Josip Musić Originalne slideove izradio:

dr. sc.. Josip Musić Originalne slideove izradio: Uvod u programiranje Programiranje 1 (450) Poglavlje 1 Uvod u računala, Microsoft.NET i VB.NET (dio 2 od 2): Pregled.NET platforme dr. sc.. Josip Musić jmusic@fesb.hr 1 Originalne slideove izradio: Teo

More information

Upute za postavljanje Outlook Expressa

Upute za postavljanje Outlook Expressa Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete

More information

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family

More information

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, Case Study Hrvatska pošta: Korisničko iskustvo iz snova Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, 27.12.2018. Sadržaj Hrvatska pošta prije projekta Izazovi projekta Tehnologije korištene

More information

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0. Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new

More information

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje

More information

PKI Applet Desktop Application Uputa za instalaciju programske potpore

PKI Applet Desktop Application Uputa za instalaciju programske potpore 1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI

More information

VDSL modem Zyxel VMG1312-B10A/B30A

VDSL modem Zyxel VMG1312-B10A/B30A VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,

More information

RAČUNARSKI PRAKTIKUM II

RAČUNARSKI PRAKTIKUM II Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 07 - Uvod u PHP 4. svibnja 2015. Sastavio: Zvonimir Bujanović PHP PHP Interpretirani skriptni

More information

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if

More information

VB komande. Programiranje 1

VB komande. Programiranje 1 VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj

More information

Uputstvo za korišćenje logrotate funkcije

Uputstvo za korišćenje logrotate funkcije Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen

More information

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list. Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016

More information

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike

More information

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme INFOTEH-JAHORINA Vol. 12, March 2013. Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme Igor Dujlović Elektrotehnički fakultet Banja Luka Banja Luka, BiH dujlovic@gmail.com Zoran Đurić Elektrotehnički

More information

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,

More information

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133 Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost

More information

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Sustavi za praćenje i vođenje procesa Seminarski rad LOGIČKI ANALIZATOR (PC kao instrument) 26. svibnja 2007. Ivan Grubišić 0036404380 1. Logički analizator Logički

More information

GUI - događaji (Events) i izuzeci. Bojan Tomić

GUI - događaji (Events) i izuzeci. Bojan Tomić GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša

More information

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I 1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends 2. Kada je funkcija clanica definisana izvan

More information

VMware Workstation. VMwareWorkstation ESX ($) (vmotion, DRS, HA, Storage vmotion) vcenter Server ($) Server. Guest OS

VMware Workstation. VMwareWorkstation ESX ($) (vmotion, DRS, HA, Storage vmotion) vcenter Server ($) Server. Guest OS VMware Workstation ESX ($) vcenter Server ($) (license manager) Server hardware (vmotion, DRS, HA, Storage vmotion) ESXi (freeware) (ESXi freeware is managed by the Virtual Infrastructure (or vsphere)

More information

SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS

SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS DOI: 10.19279/TVZ.PD.2016-4-3-11 SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS SUSTAV ZA IZRADU ANDROID APLIKACIJE ZA KOMUNIKACIJU S MIKROUPRAVLJAČEM NAMIJENJEN STUDENTIMA

More information

Uputstvo za podešavanje mail klijenta

Uputstvo za podešavanje mail klijenta Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno

More information

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti

More information

Izrada VI laboratorijske vježbe

Izrada VI laboratorijske vježbe Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box

More information

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa

More information

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2 Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 Baze podataka 2 Web: http://www.fpmoz.ba/gkraljevic Pitanja, primjedbe,

More information

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija

More information

Nove značajke u Liferay portalu v6.2. Ivica Čardić Senior Software Engineer, Liferay Inc.

Nove značajke u Liferay portalu v6.2. Ivica Čardić Senior Software Engineer, Liferay Inc. Nove značajke u Liferay portalu v6.2 Ivica Čardić Senior Software Engineer, Liferay Inc. Fokus u Liferay v6.2 Mobilna platforma Poboljšano web iskustvo Kolaboracijska platforma Aplikacijska platforma Mobilna

More information

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.

More information

Što ćete naučiti. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML PHP, ASP.NET

Što ćete naučiti. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML PHP, ASP.NET PHP, ASP.NET Što ćete naučiti Internet općenito HTML CSS XML XHTML Javascript DOM DHTML AJAX jquery PHP ASP.NET Ruby On Rails MS Silverlight FLASH, SMIL, SVG... 2 1 PHP i ASP.NET Uvod u PHP i ASP.NET Samo

More information

ETHERNET LOKALNA MREŽA. I. Podešavanje mrežnih postavki računala u Linux operacijskom sustavu

ETHERNET LOKALNA MREŽA. I. Podešavanje mrežnih postavki računala u Linux operacijskom sustavu ETHERNET LOKALNA MREŽA I. Podešavanje mrežnih postavki računala u Linux operacijskom sustavu Za umrežavanje računala potrebno je: - imati ugrađenu i podešenu Ethernet mrežnu karticu (instaliran pogonski

More information

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije Iskustva u razvoju i implementaciji ADF aplikacije Sadržaj Opis aplikacije za AZ Mirovinski Fond Internacionalizacija aplikacije Integracija sa Oracle Reports Iskorištenje postojeće PL/SQL logike Kreiranje

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

KLASIFIKACIJA JELENA JOVANOVIĆ.   Web: KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti

More information

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) Geant2 - JRA1 Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) 21.11.2007, CUC2007, Rijeka Što je to JRA1? Glavni zadatak JRA1 (Performance

More information

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Packages Reference objekata Inheritance nasljeđivanje Exceptions Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler

More information

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu

More information

Uvod, varijable, naredbe, petlje

Uvod, varijable, naredbe, petlje 8. JavaScript Uvod, varijable, naredbe, petlje M. Zekić-Sušac 1 Što je JavaScript? JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer,

More information

IBM Endpoint Manager. Maja Kehić. security

IBM Endpoint Manager. Maja Kehić. security IBM Endpoint Manager Maja Kehić security IBM Endpoint Manager Endpoints Jedinstven agent Desktop / laptop / server endpoint Mobile Purpose specific Jedinstvena konzola Zajednička infrastruktura Jedan server

More information

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije } 1. FUNKCIJE I STRUKTRUE PROGRAMA Složeni problemi lakše se rašavaju ako se podele na manje celine koje mogu nezavisno da se rešavaju. Rešenje celokupnog složenog problema dobija se kombinovanjem rešenja

More information

KURSORI BAZE PODATAKA U ORACLE 11g

KURSORI BAZE PODATAKA U ORACLE 11g KURSORI BAZE PODATAKA U ORACLE 11g SAŽETAK Kursor baze podataka je privatno SQL područje u kojem se čuvaju informacije za procesiranje određene SQL naredbe. Oracle PLSQL jezik koristi implicitne i eksplicitne

More information

Sveučililište J.J. Strossmayera u Osijeku Odjel za matematiku. Davor Kolarević JavaScript na poslužiteljskoj strani. Diplomski rad

Sveučililište J.J. Strossmayera u Osijeku Odjel za matematiku. Davor Kolarević JavaScript na poslužiteljskoj strani. Diplomski rad Sveučililište J.J. Strossmayera u Osijeku Odjel za matematiku Davor Kolarević JavaScript na poslužiteljskoj strani Diplomski rad Osijek, 2018. Sveučililište J.J. Strossmayera u Osijeku Odjel za matematiku

More information

Alen Prodan. Standby DB tehnologija na Oracle SE bazi podataka

Alen Prodan. Standby DB tehnologija na Oracle SE bazi podataka Alen Prodan Standby DB tehnologija na Oracle SE bazi podataka Agenda Uvod u standby database tehnologiju Standby baza podataka na Oracle Standard Edition platformi Automatizacija postupka održavanja standby

More information

Računarske osnove Interneta (SI3ROI, IR4ROI)

Računarske osnove Interneta (SI3ROI, IR4ROI) Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)

More information

Push(3,&S) 3 1 S Uvijek trebamo paziti da ne zovemo Pop nad praznim stogom.

Push(3,&S) 3 1 S Uvijek trebamo paziti da ne zovemo Pop nad praznim stogom. tog (tack) tog je posebna vrsta liste: od svih operacija dozvoljeno je ubacivanje, brisanje i gledanje sadržaja elementa samo na jednom kraju liste koji zovemo vrh stoga. tog zovemo i lifo last in first

More information

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Stipe Gorenjak, Kineziološki fakultet Sveučilišta u Zagrebu e-mail: stipe.gorenjak@kif.hr Sponzori Ugasite mobitele. Hvala.

More information

NIZOVI.

NIZOVI. NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata

More information

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija

More information

16. Sigurnije programiranje

16. Sigurnije programiranje 16. Sigurnije programiranje 16.1 Pretvorba tipova Pretvorba realnog broja u cijeli broj se može izvršiti naredbama: int i; double d; ili: i = (int) d; i = int(d); U cilju bolje kontrole pretvorbe tipova

More information

Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora).

Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora). SCHEME Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora). Sheme se uglavnom koristi kao intepreter. Koristit ćemo Petit Chez Scheme. Petite

More information

Jezik Baze Podataka SQL. Jennifer Widom

Jezik Baze Podataka SQL. Jennifer Widom Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

More information

JavaScript i HTML DOM

JavaScript i HTML DOM 4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.

More information

ILM implementacija DWH baza u T-mobile

ILM implementacija DWH baza u T-mobile ILM implementacija DWH baza u T-mobile Bojan Šumljak, PS Consultant Hrvoje Dubravica, PS Head Consultant www.snt-world.com 1 Što je ILM? - information Lifecycle Management praksa primjenjivanja pravila

More information

Blokovska struktura C++ programa ima četiri razine:

Blokovska struktura C++ programa ima četiri razine: Blokovska struktura C++ programa ima četiri razine: 1. razina datoteke (temeljna kompilacijska jedinica) 2. razina definicije (tijela) funkcije 3. razina bloka kontrolnih struktura (sekvenca, iteracija,

More information

PREDNOSTI I NEDOSTACI UPORABE Node.js PLATFORME

PREDNOSTI I NEDOSTACI UPORABE Node.js PLATFORME SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I TELEKOMUNIKACIJA Stručni studij PREDNOSTI I NEDOSTACI UPORABE Node.js PLATFORME Završni rad Roberta Raguž Osijek,

More information

9. RAD S DATOTEKAMA PODATAKA

9. RAD S DATOTEKAMA PODATAKA Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo

More information

Što ćete naučiti. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML. AJAX jquery PHP ASP.NET Ruby On Rails MS Silverlight FLASH, SMIL, SVG...

Što ćete naučiti. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML. AJAX jquery PHP ASP.NET Ruby On Rails MS Silverlight FLASH, SMIL, SVG... PHP, ASP.NET Što ćete naučiti Internet općenito HTML CSS XML XHTML Javascript DOM DHTML AJAX jquery PHP ASP.NET Ruby On Rails MS Silverlight FLASH, SMIL, SVG... 2 PHP i ASP.NET Uvod u PHP i ASP.NET Samo

More information

Primjer ispisuje rečenicu "Dobro dosli na brzi tecaj C-a" na ekranu

Primjer ispisuje rečenicu Dobro dosli na brzi tecaj C-a na ekranu Osnove programiranja p. 1/27 Brzi tečaj C-a Primjer ispisuje rečenicu "Dobro dosli na brzi tecaj C-a" na ekranu Programiranje se sastoji od nekoliko koraka - pisanje programa u tekstualnom editoru (joe,

More information

TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom. Priručnik za korištenje i brzu instalaciju

TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom. Priručnik za korištenje i brzu instalaciju TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom Priručnik za korištenje i brzu instalaciju Sadržaj ŠTO JE TP-LINK TL-WPA4220... 3 KAKO KORISITI TP-LINK TL-WPA4220...

More information

UNIX & UNIX-u slični OS Uvod u Linux

UNIX & UNIX-u slični OS Uvod u Linux UNIX & UNIX-u slični OS Uvod u Linux Željko Jeričević, Ph.D. www.riteh.hr/~zeljkoj/zeljko_jericevic.html zeljkoj@medri.hr UNIX Što je UNIX i zašto je važan Povijesni pregled Osnove Linux-a 2 November 2009

More information

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SMTP autentikacija

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SMTP autentikacija SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD IZ PREDMETA SUSTAVI ZA VOĐENJE I UPRAVLJANJE PROCESIMA SMTP autentikacija Dejan Božić 0036376981 Zagreb, 05.06.2005. SADRŽAJ 1.

More information

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju Staša Vujičić Čas 9 Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju sve od početka. Odgovarajuće funkcije

More information

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni diplomski studij matematike, smjer: Matematika i računarstvo

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni diplomski studij matematike, smjer: Matematika i računarstvo Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni diplomski studij matematike, smjer: Matematika i računarstvo Danilo Šormaz Razvoj mobilnih aplikacija Seminarski rad Kolegij : Softversko

More information

NEKE OBJEKTNE OSOBINE ORACLE PL/SQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java)

NEKE OBJEKTNE OSOBINE ORACLE PL/SQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java) NEKE OBJEKTNE OSOBINE ORACLE PLSQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java) SAŽETAK Oracle korporacija je 1997. godine objavila Oracle 8.0 verziju baze i nazvala ju objektnorelacijskom.

More information

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB 10 th International Scientific Conference on Production Engineering DEVELOPMENT AND MODERNIZATION OF PRODUCTION KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

More information

Programska podrška

Programska podrška Programska podrška Sadržaj operativni sustav (OS) pojmovi komponente os-a tipovi os-a datotečni sustav organizacija podataka Stranica 2/53 Operativni sustav Operativni sustav je svojevrsna baza na kojoj

More information

PROGRAMING LANGUAGE Alaska Xbase++ and express++ and other Tools

PROGRAMING LANGUAGE Alaska Xbase++ and express++ and other Tools PROGRAMING LANGUAGE Alaska Xbase++ and express++ and other Tools Instalacioni fajl: Alaska_Xbase_190355sl1_Tools_Setup.exe 1 KAKO SE INSTALIRA Alaska Xbase ++ SA DODATNIM ALATIMA ZA RAZVOJ KNJIGOVODSTVENOG

More information

Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 2. Što je klasa u programskom jeziku?

Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 2. Što je klasa u programskom jeziku? Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj: Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog

More information

Informacioni sistemi i baze podataka

Informacioni sistemi i baze podataka Fakultet tehničkih nauka, Novi Sad Predmet: Informacioni sistemi i baze podataka Dr Slavica Kordić Milanka Bjelica Vojislav Đukić Rad u učionici (1/2) Baze podataka (db2015): Studentska korisnička šema

More information

2. Linijska algoritamska struktura

2. Linijska algoritamska struktura Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,

More information

VIŠEPLATFORMSKA MOBILNA APLIKACIJA U XAMARINU

VIŠEPLATFORMSKA MOBILNA APLIKACIJA U XAMARINU SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni preddiplomski studij računarstva VIŠEPLATFORMSKA MOBILNA APLIKACIJA U XAMARINU

More information

Programiranje Internet aplikacija

Programiranje Internet aplikacija Programiranje Internet aplikacija Čas 8 - HTML 5 Dražen Drašković, Sanja Delčev Neka pravila HTML 5 Nove mogućnosti treba da se zasnivaju na HTML-u, CSS-u, DOM-u i JavaScript-u. Smanjiti potrebu za eksternim

More information

Pametna komunikacija na Internetu preko REST protokola

Pametna komunikacija na Internetu preko REST protokola Pametna komunikacija na Internetu preko REST protokola Davor Lozić, dr. sc. Alen Šimec Tehničko veleučilište u Zagrebu, Vrbik 8, 10000 Zagreb, Hrvatska, dlozic@tvz.hr, alen@tvz.hr Abstract - REST protokol

More information

Operacijski sustavi. Laboratorijska vježba 2. Petra Lončar, mag. ing. el., asistent FESB, 2016.

Operacijski sustavi. Laboratorijska vježba 2. Petra Lončar, mag. ing. el., asistent FESB, 2016. Operacijski sustavi Laboratorijska vježba 2 Petra Lončar, mag. ing. el., asistent ploncar@fesb.hr FESB, 2016. Linux procesi procesi su programi koji se izvršavaju i pritom zauzimaju sredstva sustava (spremnik,

More information

Računalne mreže. Analiza Grafičkog mrežnog simulatora GNS3

Računalne mreže. Analiza Grafičkog mrežnog simulatora GNS3 Sveučilište u Zagrebu Fakultet prometnih znanosti Vukelićeva 4, Zagreb Programski zadatak iz predmeta: Računalne mreže Tema: Analiza Grafičkog mrežnog simulatora GNS3 Mentor: Ivan Grgurević, dipl. ing.

More information

VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8?

VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8? VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8? SAŽETAK Višestruko nasljeđivanje klasa je dosta dugo vremena neopravdano držano kao kompleksno i nepotrebno. Vjerojatno je jedan od glavnih razloga taj što je

More information

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša. JavaScript. Završni rad. Pula, 2015.

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam Dr. Mijo Mirković Marino Pereša. JavaScript. Završni rad. Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša JavaScript Završni rad Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr.

More information

Desktop IKONE START MENI. TASK BAR traka zadataka RADNA POVRŠINA

Desktop IKONE START MENI. TASK BAR traka zadataka RADNA POVRŠINA Windows XP Windows XP Operativni Sistem koji podržava multi-tasking Kompatibilan sa prethodnim verzijama Windows-a Koristi grafičko okruženje Jednostavan za instalaciju i upotrebu Desktop IKONE START MENI

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 12: NASLEĐIVANJE Miloš Kovačević Đorđe Nedeljković 1 /17 OSNOVNI KONCEPTI - Statički i dinamički tipovi podataka - Prepisivanje metoda superklase - Polimorfizam

More information

VHDLPrimeri Poglavlje5.doc

VHDLPrimeri Poglavlje5.doc 5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0

More information