Rocnikove projekty

Napady: electrical builder jako hru, gpska pro mobila.

Windows

Program na screenshoty *velkeho* okna.

Linux

Java pro mobilni telefony


Smile to talk

Tivo pro radio
- melo by umet streamovat
- melo by umet chytat streamy
- ovladani by melo jit i po webu, podpora schedulingu podle programu

Napsat shuffle jako patch do sortu, sort by mel umet desetiny cisla.
Ten svetovy cas by se hodil i na desktop.

GUI pro ispell/pridavani diakritiky
- umoznovat uzivateli libovolne editovat
- miru jistoty diakritiky vyjadrit barvou, kontrolu provadet na pozadi
- Editor by mel mit emacsi ovladani, hledani, search&replace, moznost
  "skoc na dalsi chybu a nabidni opravy". (Alternativne to udelat do
  xemacsu).
- rozpoznavat veci jako jsou url-ka a ignorovat je?
- pamatovat si co uz jsem kontroloval a graficky to znazornit

Do torcs pridat mod pro autoskolu
- cizi auta jezdi podle predpisu
- dej prednost v jizde
- sterace, blinkry, spojka
- omezeni rychlosti, jednosmerky
- panel ze skodovy 

Dostat do flashgearu mapu CR vcetne vysky
- (nebo jenom obrazek prahy?)

JAVA diktafon

Navrh softwaroveho projektu Intronet

Pavel Machek

e-mail: pavel@ucw.cz

7. 5. 2005

Cil projektu

Cilem projektu bude vytvorit nastroje pro pohodlnou praci se vzdalenym pocitacem pomoci weboveho browseru. Na rozdil od ssh by mel byt pohodlne pouzitelny i na linkach s velkou latenci a mel by byt uzivatelsky vice privetivy nez textove ssh. Mel by mit vyrazne nizsi naroky na sit nez X Window System nebo VNC, a mel by byt pouzitelny i z weboveho browseru na mobilnim zarizeni (Opera na 240x320 display). Na druhou stranu se predpoklada vytvoreni specialnich aplikaci s webovym rozhranim tam, kde to dava smysl.

Intronet by mel podporovat praci pres http i https. Mel by umoznovat login pomoci systemoveho jmena a hesla, nebo (volitelne) pomoci zadaneho hesla.

Mel by umoznovat spousteni radkovych aplikaci. Bez dalsiho zadavani hesla by melo byt mozne spustit VNC a ssh klienta.

Mel by umoznovat beznou praci se soubory (mazani, kopirovani, presuny, prejmenovani, zmenu prav), operace by melo byt mozne provadet jen na vybranych souborech. Melo by byt mozne hledat soubory podle beznych kriterii (maska jmena, obsah slov, data, velikost).

Mel by obsahovat textovy editor, schopny editovat velke soubory s hledanim, nahrazovanim a podporou schranky.

Mel by umet prohlizet soubory ve formatech .txt, .html, .jpeg, .gif, .png, ...

Mel by obsahovat "Today" zobrazeni ocekavanych udalosti, todo listu, prichozich mailu.

Mailovy klient, kalendar, adresar.

Zobrazeni zakladnich informaci o systemu (vytizeni cpu, stav baterie, zatizeni sitovych rozhrani, nalogovani uzivatele)

Aplikace by mely byt spustitelne z programu bezicich v terminale.

Prohlizeni map.

ouch, see www.horde.org ;-).

Platforma

Linux. Projekt by melo byt mozne nainstalovat uzivatelem i spravcem systemu (pro vsechny uzivatele).

Resitele

Projekt je urcen pro 4-6 studentu, predpoklada se znalost webovych technologii, C a skriptovacich jazyku.

Navrh softwaroveho projektu MobiWeb

Pavel Machek

e-mail: pavel@ucw.cz

17. 1. 2005

Cil projektu

Cilem projektu bude vytvorit prohlizec webu pro mobilni telefon, ktery by mel byt pouzitelny take na cteni dlouhych textu (knih, clanku, apod.) v telefonu. Program by mel umet ukladat konfiguraci na serveru v takovem formatu, aby byla pokud mozno sdilitelna s prohlizecem galeon, ale zakladni funkce by mely byt dostupne i bez serveru.

MobiWeb by mel umoznovat prohlizeni nekolika stranek v ruznych tabech, a mel by zobrazovat stranky jiz pri jejich nacitani. Sitove operace by nemely blokovat praci s programem a uzivatel by mel byt vhodnym spusobem informovan o mnozstvi nactenych dat, rychlosti nacitani, dobe trvani a ocekavanem casu dokonceni. Ani na slozitejsich strankach by scrollovani nemelo trvat dele nez 250msec. Na pozadani by mel MobiWeb upozornit zvukovem/vibracemi, kdyz dokonci nactitani. Program by mel ukladat nastaveni otevrenych tabu a pozici v ramci tabu.

Prohlizec by mel zvladat stranky v HTML verse 4.0 a korektne zobrazovat tabulky. Mel by zobrazit i stranky, ktere uplne neodpopovidaji standardu, a byt pouzitelny pro bezne prohlizeni dnesniho webu. Na pozadani by mel umet rozbit velke tabulky tak, aby nebylo potreba scrollovat horizontalne. Framy by mel umet zobrazit aspon jako odkazy, nemusi podporovat Javu, Javascript ani Flash.

Mel by umet pracovat se strankami ve formatu WML a s pomomoci serveru by mel umet prohlizet i soubory ve formatech pdf, doc, openoffice. Pokud to telefon podporuje, mel by umet prehravat zvuky ve formatu wav, a aspon s pomoci serveru by mel prehravat i zvuky ve formatu mp3 a ogg.

Mel by podporovat obrazky ve formatech png, gif a jpeg (pokud telefon dany format nepodporuje, muze vyuzivat prekladani na serveru); automaticky je zmensovat tak, aby se stranka vesla na obrazovku, na pozadani by melo byt mozne obrazek zvetsit/zmensit na celou obrazovku a zobrazit obrazek 1:1. Obrazky by mely byt nacitany tak, aby nezdrzovaly nacitani textu, a jejich nacitani by melo byt vypnutelne.

MobiWeb by mel podporovat protokoly http, https (muze zaviset na podpore v telefonu). Dale by mel byt podporovan nejaky sifrovany protokol umoznujici praci s vybranymi soubory na serveru z telefonu. Volitelne by mel umoznovat praci pres proxy server. Mel by inteligentne cachovat jednou nactene udaje, cache by mela vydrzet pres restart prohlizece.

Mel by umet synchronizovat soubory mezi telefonem a serverem, a pak je cist i bez pripojeni k siti. U synchronizovanych souboru by mel sledovat, ktere casti uz byly prectene, a to nezavisle na tom jestli byly cteny z telefonu nebo z pocitace. Do synchronizovanych souboru by melo byt mozne snadno pridavat stranky na serveru z prohlizece galeon.

Prohlizec by mel podporovat unicode, a mel by bez problemu zvladat ceske stranky. Uzivatel by mel mit moznost zvetsovat/zmensovat pouzity font. Samozrejmosti by mela byt podpora historie, bookmarku, ukladani hesel (vse synchronizovane se serverem), formularu, cookies a hledani v ramci stranky.

Platforma

Prohlizec by mel fungovat na libovolnem telefonu s podporou Javy (J2ME). Mel by vyuzivat vsech klaves telefonu pro snadne ovladani, a mel by podporovat rozsireni Nokie pro zobrazeni na celou obrazovku. Vsechny vlastnosti by mely byt dostupne na modernim telefonu (napr. Sony Ericsson K700i). Aspon zakladni funkce by mely byt dostupne i na starsich telefonech (napr. Siemens MT50).

Resitele

Projekt je urcen pro 4-6 studentu, predpoklada se znalost C a Javy. Studenti by meli mit nekolik telefonu podporujicich Java (J2ME) a vhodny by byl take aspon jeden neomezeny GPRS tarif pro testovani.

Navrh softwaroveho projektu MobiMail

Pavel Machek

e-mail: pavel@ucw.cz

22. 1. 2007

Cilem projektu bude vytvorit program pro praci s emaily pro mobilni telefon. Program by mel umet ukladat konfiguraci na serveru (aby byl mozny jednoduchy prechod na novou versi MobiMailu a aby nebylo potreba dlouze konfigurovat MobiMail v pripade ztrate dat v telefonu), ale melo by byt mozne nakonfigurovat MobiMail i bez pouziti serveru. Umet prepinat mezi web browserem a mail clientem? - , moznost videt kompletni mail - periodicka kontrola, volitelne na pozadi (*) - nanic: synchronizace adresare pres syncml (overit kompatibilitu aspno se 2ma ruznymi servery) - nanic? moznost posilat/prijimat maily sifrovane pomoci gpg (mozno pouzit knihovnu na implementaci gpg, viz treba bouncycastle.org) - volitelne zavibrovat/zahrat pri novem mailu - podpora POP3, IMAP a nejakeho sifrovaneho spojeni (IMAPS nebo IMAP over SSH) - moznost vytvorit, poslat a prijmout fotku, audiozaznam, a videozaznam (*) - MIME prilohy - prohlizet textove prilohy, jednoduche html prilohy (moznost pouzit htmlbrowser), obrazky, zvuky a videa (*) - moznost zmenit format vypisu zprav (jen subjecty, subject + from, vsechny detaily) - moznost nastavit trideni - efektivne vyuzivat klavesnici telefonu - nastaveni velikosti fontu - nanic: inteligentni (t9-like) vyhledavani v adresari - hotovo: inteligentne rozpoznat kdo co pise podle "> " na zacatku radku, a vyznacit to nejak graficky (volitelne). Volitelne prelit text v ramci jednoho quotovanyho bloku tak aby se vyuzil prostor na displayi (*) umi-li to telefon

Platforma

J2ME

Resitele

Projekt je urcen pro 4-6 studentů, predpoklada se znalost C a Javy. Studenti by meli mit nekolik telefonu podporujicich Java (J2ME) a vhodny by byl take aspon jeden neomezeny GPRS tarif pro testovani.

Návrh softwarového projektu Zphone

Pavel Machek

e-mail: pavel@ucw.cz

22. 11. 2004

Cíl projektu

Cílem projektu bude vytvořit program pro ovládání telefonu z Linuxového handehldu. Uživatelské rozhraní programu by mělo co nejvíce připomínat uživatelské rozhraní běžného mobilu. Spojením Linuxového handheldu, GSM/GPRS karty a Zphone by měl vzniknout produkt podobný komerčním smartphonům.

Zphone by měl umožňovat telefonovat, a to i s použitím zvukové karty počítače, měl by zobrazovat stavové údaje (síla signálu, baterie, ...) a to i při probíhajícím hovoru nebo datovém spojení. Na příchozí hovor, sms a e-mail by měl volitelně upozornit melodií (volitelně různou pro různé lidi a pro různé profily) a případně ukázat obrázek volajícího.

Měl by umět spravovat kontakty na SIM kartě, včetně kopírování mezi seznamy v počítači a na SIM kartě. Seznamy v počítači by měly být v takovém formátu, aby je mohly využívat i jiné aplikace a měl by podporovat synchronizaci kontaktů protokolem SyncML. Měl by podporovat práci se SMS (čtení, posílání, forward, doručenky, ...) a to včetně podpory dlouhých textových zpráv, EMS (pouze čtení) a unicodu a měl by umět pracovat se zprávami cell-broadcast.

Další součástí by měl být WAPový browser, včetně podopory komprese pomocí WBXML. WAP browser by měl podporovat běžné funkce jako jsou bookmarky a nastavení domovské stránky, a měl by být integrován se zbytkem zphone tak, aby se automaticky spustilo spojení GPRS při startu browseru.

Součástí projektu by měl být emailový server (případně úprava nějakého existujícího serveru pro mobilní zařízení) integrovaný do zbytku systému a integrace webového browseru (embedded konqueror) se zphone. Server by měl podporovat protokol SMTP, a měl by být schopen automaticky poslat poštu poté co se z jakéhokoliv důvodu rozběhne GPRS spojení. Může předpokládat použití smart-relaye.

Platforma

Primární platformou zphone je QT/embedded na Linuxovém handheldu, ale zphone by měl být použitelný i na stolním PC, a základní funkce by měly fungovat i nad plnou QT. Velká část projektu bude v C++ kvůli QT, ale části mohou být v C. Projekt by se měl snažit používat existující knihovny (libgnokii, části multisyncu, části mobilizeru), a měl by se snažit úpravy prosadit do oficiálních versí používaných knihoven. Měly by být podporovány aspoň běžné telefony podporující AT rozhraní připojené jako PCMCIA karta, po sériovém portu, IrDA nebo pomocí Bluetooth.

Řešitelé

Projekt je určen pro tým 4-6 studentů, předpokládá se znalost C a C++, základních vývojových nástrojů, a schopnost vyvíjet na platformě ARM (nutnost cross!compilace). Aspoň jeden ze studentů by měl mít Linuxové PDA pro testování.

Návrh softwarového projektu FotoAlbum

Pavel Machek

e-mail: pavel@ucw.cz

7. 9. 2003

Cíl projektu

Cílem projektu bude vytvořit editor pro práci s větším množstvím obrázků (typicky získaných z digitálního fotoaparátu). Měl by umožňovat základní operace s obrázky (otočit, oříznout, změnit jas/kontrast, korigovat barvy, zmenšit), jejich mazání, třídění do skupin, práci s metaúdaji (komentář k obrázku, datum pořízení, autor, hledání podle metaúdajů), práci s galeriemi obrázků (export na web) a inteligentní tisk (obrázku nebo celé galerie, jednoho obrázku na stránku nebo více). Mělo by být možné s obrázky pracovat hromadně, tj. například označit skupinu obrázků a změnit jas/kontrast celé skupiny.

Uživatelské rozhraní by mělo být co nejefektivnější na počet stisků kláves/operací myší a libovolná operace (včetně např. smazání skupiny fotografií) by měla být revertovatelná pomocí vícestupňového undo/redo. Měly by být podporovány obvyklé formáty pro obrázky (jpeg, gif, png) a spouštění externího editoru (gimp) pro složitější operace.

Program by měl umožňovat základní práci s krátkými animacemi ve formátu Motion JPEG, obvyklém v digitálních fotoaparátech: smazat kus animace, cut/copy/paste mezi animacemi, změna hlasitosti (části) zvukové stopy, spuštění externího editoru na zvukovou stopu a možnost editovat animaci jako skupinu obrázků.

Program by měl obsahovat thumbnaily pro snazší orientaci a počet editovaných obrázků by neměl být omezen velikosti operační paměti. Dlouhotrvající operace by měly být prováděny na pozadí. Program by měl inteligentně zacházet se ztrátovými formáty typu jpeg (oříznutí bez ztráty údajů rekompresí, možnost nastavení výstupní kvality).

Platforma

Projekt bude určen pro systémy unixového typu a alespoň pod emulací by měly být základní funkce použitelné i na MS Windows. Napsán by měl být v jazyce C s maximálním využitím existujících knihoven.

Řešitelé

Projekt je určen pro tým 4-6 studentů, předpokládá se znalost C, základních vývojových nástrojů a schopnost programovat pod X Window Systémem. Vítána je znalost Gtk.

Návrh softwarového projektu FlightWorld

Pavel Machek

e-mail: pavel@ucw.cz

8. 9. 2003

Cíl projektu

Cílem projektu je upravit letecký simulátor FlightGear tak, aby umožňoval hraní velkému množství hráčů najednou. Hráči se dělí do dvou skupin: piloti, kteří ovládají svá letadla, a řídící letového provozu, kteří rádiem dávají pokyny pilotům.

Jednotliví piloti by se měli navzájem vidět a systém by měl detekovat kolize mezi letadly. Dále by mělo být simulováno rádiové spojení mezi piloty navzájem a mezi piloty a řízením letového provozu. Pro hráče s dostatečným hardwarem by komunikace měla probíhat hlasem; pro systémy bez zvukové karty by měl být možný fallback na řádkovou komunikaci.

Řídící letového provozu by měli mít k dispozici simulaci pracoviště určeného k řízení letového provozu; ideální by bylo simulovat nějaký skutečný systém.

Celá simulace by měla být schopna běžet po internetu a měla by umožňovat připojení i uživatelům používajícím modem. Protokol běžící po síti by měl umožňovat kontrolu toho, že klientské stanice "nepodvádí" (kontrola nemusí být na serveru implementována) a měl by umožňovat šifrování. Server by měl zvládnout stovky současně připojených hráčů.

Server by měl poskytovat klientům informace o počasí, nejlépe přebírané v reálném čase ze systému METAR. Server by měl umožňovat svou správu přes příkazovou řádku (určeno pro ovládání skripty) a přes webové rozhraní (určeno pro lidi).

Platforma

Serverová část projektu by měla běžet na libovolném systému unixového typu, klientská část by měla běžet na Linuxu a alespoň jednom dalším OS. Projekt by měl být napsán v jazyce C/C++.

Řešitele

Projekt je určen pro tým 4-6 studentů, předpokládá se znalost C/C++ a základních vývojových nástrojů. Vítány jsou zkušenosti se zpracováním signálu a s létáním.

FlightGear

Je letecky simulator dostupny na www.flightgear.org. Je napsany v C++ a sireny pod GPL. Grafika vyzaduje opengl, ale zato vypada velmi slusne. Jsou simulovany i takove detaily jako poloha hvezd (souhvezdi je mozne vyuzit pro navigaci). Fg je schopen simulovat vice nez 26 ruznych letadel, nektera funguji velmi dobre (Cesna), nektere simulace nejsou zrovna dokoncene (Boeing 747). Nektera letadla maji i vernou simulaci palubni desky.

K dispozici jsou mapy celeho sveta, podle casti sveta jsou mapy ruzne podrobne (tj. Evropa ma mene podrobne udaje nez Amerika). Mapy se stahuji rucne, ale existuje nejaka utilita na automaticke stahovani. Neni prilis dotazena detekce poskozeni (napr. je mozne vytahnout podvozek a uspesne pristat kdekoliv). Jednotliva casti letadla mohou selhat -- pokud si to uzivatel vyzada v menu.

Existuji zacatky podpory pro multiplayer na lokalni siti. Letadla zatim nejsou ozbrojena. System simuluje pocasi (tedy pokud si uzivatel v menu nastavi jak ma byt). System ma jakesi zacatky automatickeho rizeni letoveho provozu - syntetizovany hlas sdeluje udaje o pocasi a je mozne vyzadat povoleni ke startu. Existuji zacatky jakehosi AI pilota, ktery by mel zazadat o povoleni ke startu a pak sam letet.

FlightGear funguje na Linuxu, Windows, MacOS X, FreeBSD, Irixu a jeste mozna na necem.

Návrh softwarového projektu Cestovní diář

Pavel Machek

e-mail: pavel@ucw.cz

20. 11. 2004

Cíl projektu

Cílem projektu bude vytvořit program pro hledání spojení hromadnou dopravou a modul cestovního diáře.

Hledání by mělo fungovat pro všechny běžné prostředky hromadné dopravy (autobusy, tramvaje, metro, vlaky), podporovat chození pěšky, a být aspoň do budoucnosti rozšiřitelný o podporu jízdního kola a automobilu. Při hledání nejlepšího spojení by mělo být počítáno s rozumnou dobou na přestup (liší se podle použitých dopravních prostředků a někdy i podle místa přestupu). Hledání by mělo brát v úvahu i možnost spoždění spoje, a nabídnout alternativní cesty. Mělo by být možné nastavit různé preference pro spojení (cestuji s kolem, mám velký batoh, nechci cestovat autobusem).

Mělo by být možné dále pracovat s výsledky hledání: "tenhle přestup je příliš krátký", "nepoužívej tenhle spoj". K dispozici by měly být také dotazy na všechna spojení z dané stanice, podrobné zobrazení informací o jednom spoji, zjištění ceny spoje. Program by měl být schopen spolupracovat s mapou.

K vyhledávacímu programu by měl existovat frontend pro X Window Systém, webový frontend, a nějaký frontend vhodný pro mobilní zařízení.

Cestovní diář je aplikace pro mobilní zařízení, která udržuje přehled o datech a polohách schůzek. Diář sleduje polohu uživatele buď pomocí GPS, nebo s využitím dat z mobilního telefonu. Informuje uživatele o schůzce s takovým předstihem, aby se na ni stihnul dostat (ale ne zbytečně brzo), nabízí vhodná spojení, sleduje uživatele v průběhu cesty a informuje ho o nutnosti přestoupit a o případném zpoždění.

Platforma

Hlavní program by měl běžet na Unixu, modul cestovního diáře by měl fungovat buď na Linuxových PDA, nebo pod Java/microedition.

Řešitelé

Projekt je určen pro tým 5-7 studentů, předpokládá se znalost C, základních vývojových nástrojů a schopnost programovat pod X Window Systémem. Aspoň jeden ze studentů by měl mít buď Linuxové PDA nebo nějaké zařízení schopné běžet Java/microedition pro testování.

Softwarová docking station

 

Vedoucí: Mgr. Pavel Machek, ÚFAL

 

Notebooky jsou v posledních letech velmi oblíbené, jejich ceny se však stále pohybují v několikanásobcích cen stolních počítačů. Možnosti jejich rozšiřování jsou velmi omezené a disponují pouze malým množstvím portů (navíc se objevují „legacy-free“ notebooky, které běžné porty úplně postrádají).

Problém rozšíření by měly řešit docking stations (rozšiřující krabičky s porty, PCI sloty a síovými kartami), jejich nevýhodou však zůstává vysoká cena a vzájemná nekompatibilita. Každý výrobce notebooků používá jiné docking stations a často se liší i docking stations pro různé modely od jednoho výrobce.

Cílem práce je navrhnout a vytvořit program, který umožní stolnímu počítači sloužit jako docking station pro notebook. Notebook by měl mít transparentní přístup na porty (PS/2, seriál, paralel, USB) a měl by mít možnost používat disky a síové karty stolního počítače. Důraz by měl být kladen na co nejjednodušší instalaci na stolní počítač.

 

Barak A. and La'adan O., The MOSIX Multicomputer Operating System for High Performance Cluster Computing , Journal of Future Generation Computer Systems, Vol. 13, No. 4-5, pp. 361-372, March 1998.

 

P. T. Breuer, A. Marín Lopez and Arturo Gar, The Network Block Device, Linux Journal, http://www.linuxjournal.com/article.php?sid=3778, May 2002.

 

Super docking station

 

Vedoucí: Mgr. Pavel Machek, ÚFAL

 

Výkon notebooků permanentně zaostává za výkonem stolních počítačů a za jednotku výkonu je nutné zaplatit výrazně vyšší cenu, navíc se objevují miniaturní notebooky, u kterých není snaha o co nejvyšší výkon, ale o co nejnižší váhu a o dlouhou výdrž baterií. V mnoha případech jsou notebooky používány i v situacích, kdy je k disposici stolní počítač, protože existující operační systémy neumožňují jeho výkon využít.

Cílem práce je modifikovat některý rozšířený operační systém tak, aby umožnil notebooku používat procesor, pamě a disk stolního počítače. Propojení i odpojení obou počítačů by mělo být možné bez přerušení práce, bez přerušení běžících procesů. Za příznivých podmínek by měl být výkon systému součtem výkonů obou počítačů, a ani za nepříznivých podmínek by neměl klesnout pod výkon výkonnějšího z nich. Je možné předpokládat stejnou architekturu notebooku a stolního počítače a propojení počítačů alespoň 10Mbit ethernetem.

 

Barak A. and La'adan O., The MOSIX Multicomputer Operating System for High Performance Cluster Computing , Journal of Future Generation Computer Systems, Vol. 13, No. 4-5, pp. 361-372, March 1998.

 

Kenneth W. Preslan, Andrew P. Barry, Jonathan E. Brassow, a další: A 64-bit, Shared Disk File System for Linux, http://www.sistina.com/NASA_GFS_1999.pdf, 16th IEEE Mass Storage Systems Symposium, March 1999.