BUĎ FIT 1/2016
LÍTAČKA
Gigapanoramatické fotografie v SAGElabu
TÉMA: NEJ PROGRAMOVACÍCH
JAZYKŮ
1
ÚVOD
AKTUÁLNÍ DĚNÍ
Záhada svítícího kanálu odhalena
POZVÁNKY
UnIT 2016
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ Nejšílenější programovací jazyky Nejvíce oldschool programovací jazyky Nejoblíbenější programovací jazyky Nejnovější programovací jazyky Nejlehčí a nejtěžší programovací jazyky
TECHNOLOGIE
Gigapanoramatické fotografie v SAGElabu
PARTNEŘI FAKULTY
Spolupráce s Komerční bankou Lely, innovators in agriculture
2
4
6
8 12 15 18 22
23
28 29
STALO SE
InstallFest 2016 Ples ČVUT FIT párty 2016
FIŤÁCKÉ PROJEKTY
Lítačka
TVORBA
I am(sterdam)
ZÁVĚREM
Herní tipy Filmové tipy Starý alchymistický jazyk – první programovací jazyk? Mensa úlohy
32 32 33
34
36
38 39 40 41
TIRÁŽ Šéfredaktor: Kamila Pětrašová Zástupce šéfredaktora: Veronika Dvořáková Redaktoři: Zdeněk Kasner, Milan Kurka, Tomáš Nováček, Petra Svíčková Grafické zpracování a sazba: za skupinu Grafit Vadim Petrov a Karolína Solanská Jazyková korektura: Tomáš Nováček, Kamila Pětrašová Fotografie: Archiv PR FIT, pokud není uvedeno jinak. http://fit.cvut.cz/casopis casopis@fit.cvut.cz Přetisk článků je možný pouze se souhlasem redakce a s uvedením zdroje.
3
AKTUÁLNÍ DĚNÍ
Záhada svítícího kanálu odhalena Natáčení nových dílů seriálu Akta X, sociální experiment, portál pro teleportaci, nebo tajná laboratoř pro testování technologie Li-Fi. Tyto a další důmyslně promyšlené teorie se snažily vysvětlit přítomnost svítícího kanálu při vstupu do dejvického kampusu.
Tajemný svítící kanál se objevil v lednu nedaleko Fakulty elektrotechnické. Zatímco přes den ho bylo jednoduché přehlédnout, ve večerních a nočních hodinách tomu bylo spíše naopak díky barevně svítícímu poklopu. Ten nedal spát několika studentům, kteří se o původ a účel kanálu začali aktivně zajímat. Na Facebooku proto založili stránku „Svítící kanál na ČVUT“ ve snaze rozšířit povědomí o jeho existenci. První lavinu zájmu a pozornosti vyvolalo video, kde studenti kanál zkoumali a objevili tlačítko, které kanál rozzářilo do červena. Z této činnosti je vyrušila ochranka z budovy Fakulty elektrotechnické. Na zmíněné stránce se později začala objevovat další videa a fotografie, například záznam natočený termovizní kamerou, který měl dokazovat zvýšenou teplotu poklopu. Téma záhadného kanálu však nezaujalo jen studenty, ale také významná média. Zainteresovaní studenti poté zahájili hlubší pátrání, které odstartovalo kontaktováním několika možných odpovědných institucí, které ale do záhady nové světlo nevnesly. Proto svolali happening, na který byl pozván i rektor univerzity Petr Konvalinka, ten však účast odmítl kvůli nedostatku času. Přislíbil, že bude osobně pátrat po tom, co se pod poklopem skrývá. Na začátku února byla ke kanálu svolána tisková konference, kde měl veřejnost seznámit s výsledky „pátrání“.
NEJFUTURISTIČTĚJŠÍ PROJEKT V HISTORII
Na tiskové konferenci proběhlo odhalení, na které všichni čekali. Pod kanálem se totiž dle slov rektora skrývá nejfuturističtější projekt v historii školy, a to natolik, že jeho autoři na ČVUT ještě ani nestudují.
4
Svítící kanál byl zvolen za účelem oslovení stávajících studentů, kterým není jedno, co se na jejich škole děje, a ti by měli pomoci propagovat a doporučovat studium na ČVUT svým přátelům či známým. Pod poklopem se tedy kromě tohoto poselství neskrývalo nic jiného, než baterie a několik žárovek. Spolu s kanálem byl spuštěn web pro zájemce o studium www.studujcvut.cz, který prezentuje zajímavé projekty a aktivity, které vznikají na fakultách ČVUT. Pokud máte ve svém okolí člověka, který bude příští rok maturovat a začíná vážně uvažovat nad volbou vysoké školy, doporučte mu spolu se studiem na ČVUT (samozřejmě ideálně na FITu!) i výše zmíněný web.
Milan Kurka foto: Facebook page Svítícího kanálu
5
POZVÁNKY
UnIT 2016 Souhlasíte s tím, že u každého článku by měl mít čtenář hned v úvodu možnost poznat, jestli ho má cenu číst nebo ne? Protože na první pohled může mít článek hezké barvičky a všechno, ale na konci si uvědomíte, že se vás vůbec netýkal. Abych se tomu zde vyvaroval, rozhodl jsem se na úvod zařadit menší kvízovou otázku:
6
Jaká z těchto oblastí programování vás zajímá? a) design a návrh webových aplikací b) programování logiky backendu c) strojové učení a analýza dat
Chvíle na rozmyšlenou… Máte vybráno? Mám pro vás nejspíš dobrou zprávu – pokud jste si vybrali alespoň jednu z těchto možností, článek pro vás má smysl. Přiznávám, byla to drobná lest. Ale s dobrým úmyslem :-) Abych se dostal k věci: UnIT je týmová programovací soutěž, kterou organizujeme se studentskou organizací BEST Prague. Pod pojmem „programovací soutěž” se dá představit všelicos, například soutěž ACM se svými krutopřísnými úlohami nebo 24hodinové hackatony. Narozdíl od těchto soutěží UnIT cílí na mnohem širší skupinu programátorů – k účasti
není potřeba umět nazpaměť matematické vzorce ani manuálové stránky (ačkoliv dobrovolnosti se meze nekladou), důležitá je naopak kreativita a schopnost pracovat v týmu. Kdy? 19. dubna 2016 Kde? V Nové budově ČVUT. Mnohem více informací naleznete na http://unit. bestprague.cz. A pokud jste zatím neslyšeli o BEST Prague, určitě zavítejte i na naše stránky http:// bestprague.cz, protože kromě této akce pořádáme i mnohé další. Neváhejte a přihlaste se, těšíme se na vás!
Zdeněk Kasner foto: BEST Prague
A jaká že jsou hlavní lákadla?
• • • • • • •
3 kategorie na témata z úvodní kvízové otázky výběr libovolného programovacího jazyka + přístup k internetu během soutěže zajímavé ceny pro týmy na stupních vítězů (iPady, sud piva, …) garantovaný den plný zábavy s týmem vašich kamarádů mnoho firemních partnerů (CN Group a Unicorn jako hlavní partneři prvních dvou kategorií) kategorie na data zajišťovaná ve spolupráci s Datalabem FIT ČVUT bohatý doprovodný program pro návštěvníky a kolemjdoucí
7
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ
Nejšílenější programovací jazyky Programovacích jazyků existuje spoustu. Některé se využívají hodně, některé jsou specializované na určitou sadu problémů a některé existují jenom proto, že se někdo nudil. A takových jazyků je snad nejvíc. První ze série NEJ programovacích jazyků jsou „Nejšílenější programovací jazyky“. Ano, vím, že se oficiálně nazývají „esoterické programovací jazyky“, ale nikdo z nás jim tak doopravdy neříká. Vybral jsem z té plejády blbostí a kravin sedm největších kuriozit, samozřejmě s ukázkou v podobě Hello World. Někdy je tento program na tři řádky a někdy je na tři strany, někde jsem se tedy rozhodl kód zkrátit. Tak se, prosím, nepokoušejte tyto kódy odevzdat na progtest. Děkuji.
ARNOLDC
ArnoldC je imperativní programovací jazyk, jehož kód je složený z filmových hlášek Arnolda Schwarzeneggera. Tady snad není moc co popisovat a pár ukázek bude mluvit za vše: If-else: BECAUSE I‘M GOING TO SAY PLEASE value [statements] BULLSHIT [statements] YOU HAVE NO RESPECT FOR LOGIC Načtení ze standardního vstupu: I WANT TO ASK YOU A BUNCH OF Q UESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
https://github.com/lhartikk/ArnoldC/wiki/ ArnoldC
8
Hello World: IT‘S SHOWTIME TALK TO THE HAND „hello world“ YOU HAVE BEEN TERMINATED
OSTRAJAVA
OSTRAJava má za cíl pozvednout kvalitu (nejen ostravského) programování. Na rozdíl od Javy vychází OSTRAJava přímo z mluveného jazyka (ostravského nářečí), tedy z něčeho čemu obyčejní lidé rozumějí. Typický ostravský horník pak nebude mít problém přejít od těžby uhlí ke klávesnici. Jazyk tak mimo jiné řeší i problém nezaměstnanosti v Moravskoslezsku. Deklarace proměnné začíná klíčovým slovem „toz“ a místo středníků se používá klíčové slovo „pyco“. Deklarace proměnné typu int je tedy: toz cyslo i = 1 pyco A to, že třída Čtverec dědí od třídy Obdélník z apíšeme jako: tryda Stverec fagan od Obdelnik
https://github.com/tkohout/OSTRAJava
Hello World: banik pyco tryda Ostrava { rynek(){ Konzola.pravit(„Toz vitaj“) pyco } } fajront pyco
TAXI
Podle tvůrců tohoto jazyka jsou programátoři jako taxikáři – „převáží“ data z jedné části paměti do druhé. Tak proč nevytvořit programovací jazyk, co tomu odpovídá? Se svým imaginárním taxíkem budete projíždět městečkem Townsburg, které je plné dat, potřebných převézt z místa na místo. Naštěstí máte k dispozici mapu celého městečka, takže je pro vás práce jednoduchá. V městečku jsou ulice s názvy jako Addition Alley (Sčítací ulice), kde se dva číselní pasažéři sečtou, Heisenberg‘s (Heisenbergova), kde naberete náhodné celé číslo, nebo Cyclone (Cyklon), kde jsou všichni pasažéři naklonováni, takže máte od každého pasažéra originál a kopii. Tím to ale nekončí. Jako správní taxikáři ale vybíráte od pasažérů peníze (0,07 kreditů za míli) a za peníze si musíte kupovat benzín. Pokud nebudete pravidelně jezdit k pumpě, budete mít prázdnou nádrž a program nedoběhne. Hello World: „Hello, World!“ is waiting at the Writer‘s Depot. Go to Writer‘s Depot: west 1st left, 2nd right, 1st left, 2nd left. Pickup a passenger going to the Post Office. Go to the Post Office: north 1st right, 2nd right, 1st left. Go to the Taxi Garage: north 1st right, 1st left, 1st right.
https://bigzaphod.github.io/Taxi
SHAKESPEARE
Jak asi většina z vás pochopila, kód v jazyce Shakespeare nemá vypadat jako kód, ale jako hra od stejnojmenného anglického dramatika. Kód začíná seznamem postav, které deklarují počet zásobníků. Když spolu dvě postavy pak vedou dialog, tak pracují s horním prvkem zásobníku stejně tak, jako v jakémkoliv jiném jazyce. Otázky kladené jednotlivými postavami jsou pak brané jako podmínky if-else. Jednotlivé akty jsou goto návěstí, na které se dá odkazovat v rámci celého kódu. Postavy, stejně jako v dramatu, vcházejí a odcházejí ze scény a určitá slova v jejich dialozích jsou klíčová slova pro různé matematické úkony. Stejně tak jako reálná Shakespearova dramata, ani tento kód není úplně nejlehčí na pochopení. No, posuďte sami. Hello World: Romeo, a young man with a remarkable patience. Juliet, a likewise young woman of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet. Hamlet, the flatterer of Andersen Insulting A/S. Act I: Hamlet‘s insults and flattery. Scene I: The insulting of Romeo. [Enter Hamlet and Romeo] Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer‘s day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind! You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind. Speak your mind! [Exit Romeo]
9
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ Scene II: The praising of Juliet.
ttle codpiece. Speak your mind!
[Enter Juliet]
[Exit Romeo] Scene II: Juliet and Ophelia‘s conversation.
Hamlet: Thou art as sweet as the sum of the sum of Romeo and his horse and his black cat! Speak thy mind! [Exit Juliet] Scene III: The praising of Ophelia. [Enter Ophelia] Hamlet: Thou art as lovely as the product of a large rural town and my amazing bottomless embroidered purse. Speak thy mind! Thou art as loving as the product of the bluest clearest sweetest sky and the sum of a squirrel and a white horse. Thou art as beautiful as the difference between Juliet and thyself. Speak thy mind! [Exeunt Ophelia and Hamlet] Act II: Behind mlet‘s back.
Ha-
Scene I: Romeo and Juliet‘s conversation. [Enter Romeo and Juliet] Romeo: Speak your mind. You are as worried as the sum of yourself and the difference between my small smooth hamster and my nose. Speak your mind! Juliet: Speak YOUR mind! You are as bad as Hamlet! You are as small as the difference between the square of the difference between my little pony and your big hairy hound and the cube of your sorry li-
10
[Enter Ophelia] Juliet: Thou art as good as the quotient between Romeo and the sum of a small furry animal and a leech. Speak your mind! Ophelia: Thou art as disgusting as the quotient between Romeo and twice the difference between a mistletoe and an oozing infected blister! Speak your mind! [Exeunt]
http://shakespearelang.sourceforge.net
https://github.com/justinmeza/lolcode-spec/ blob/master/v1.2/lolcode-spec-v1.2.md
LOLCODE
Tento jazyk je inspirovaný takzvaným lolspeakem, jazykem používaným v internetovém meme zvaném lolcat. Tento jazyk úplně nemá definované priority operátorů a správnou syntaxi, ale zjevně to nikomu nevadí. Příklad if-else: BOTH SAEM ANIMAL AN „CAT“, O RLY? YA RLY, VISIBLE „J00 HAV A CAT“ NO WAI, VISIBLE „J00 SUX“ OIC Hello world: HAI CAN HAS STDIO? VISIBLE „HAI WORLD!“ KTHXBYE
Protože se jeho název některým lidem zdál jako urážející, často jej můžete nalézt také jako b****fuck. Hello world: ++++++++++[>+++++++>++++++++++>+++>+ <<<<-]>++.>+.+++++++..+++.>++.<<++++ +++++++++++.>.+++.------.--------.>+ .>.
WHITESPACE
Tento jazyk by si progtestuneznalí prváci rozhodně zamilovali. Využívají se v něm totiž pouze bílé znaky (whitespace), tedy mezery, tabulátory a nové řádky. Zajímavosti je, že whitespace jako jeden z mála programovacích jazyků ignoruje neplatné znaky (tedy cokoliv kromě whitespace). Díky tomu můžete například v rámci programu v jazyce Java najít funkční program v jazyce whitespace. Yo dawg, I heard you like codes so I put code in your code so you can segfault while you segfault. Hello world:
BRAINFUCK
Asi nejznámější z esoterických jazyků, díky kterému se s takovýmito šílenostmi roztrhl pytel. Byl vytvořen Urbanem Müllem, jehož cílem bylo vytvořit nejmenší kompilátor pro programovací jazyk (nyní má jeho verze kompilátoru pod 200 bytů). Brainfuck pracuje s polem paměťových bloků, které jsou na začátku inicializovány na nulu, na první prvek ukazuje ukazatel. Dále se v jazyce využívají pouze tyto příkazy: Příkaz
Popis
>
Posune ukazatel doprava
<
Posune ukazatel doleva
+
Inkrementuje paměťový blok, na který ukazuje ukazatel
-
Dekrementuje paměťový blok, na který ukazuje ukazatel
.
Vypíše znak, odpovídající hodnotě uložené v paměťovém bloku
,
Uloží znak do paměťového bloku
[
Přeskočí za odpovídající ] pokud je hodnota rovna nule
]
Přeskočí na odpovídající [ pokud je hodnota rozdílná od nuly
Tomáš Nováček foto: wikipedia.org, pascaleaslk.bligoo.com
11
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ
Nejvíce oldschool programovací jazyky Tento článek jsem chtěl pojmenovat nějak poeticky – třeba úsvit programovacích jazyků nebo pradědečkové jazyka C. Pak ovšem přišel příkaz shůry, že se musím držet tématu a obsáhnout tedy v názvu slůvko „nej”. Už to skoro vypadalo, že se článek bude jmenovat „Nejstarší programovací jazyky” a přečte si ho tak možná jen pár histrorických nadšenců. To se mi ovšem nezdálo a doufám tedy, že nový název je stejně cool, jako programovací jazyky, na něž si teď v jeskyních z programovacího pravěku posvítíme.
PRVNÍ PROGRAM
Možná si pamatujete – ať už z hodin historie, z lístečků na seznamováku nebo z minulého čísla věnovaného ženám v informatice – že první programátorkou na světě byla Ada Lovelace, dcera lorda Byrona. Za program který napsala, je považována její sada poznámek k výpočtům na mechanickém stroji zvaném Analytical Engine. Ten byl navržen (ovšem nikdy nesestrojen) již v roce 1837 Charlesem Babbagem. Také povědomé jméno, ne?
Ačkoliv ovšem byla k tomuto stroji zpětně sestavena jakási sada strojových instrukcí, originální poznámky lady Ady se rozhodně nedaly považovat za nic, co by bylo nějak blízké zdrojovému kódu. Úsvit programovacích jazyků tedy nastal až o něco později. Mnohem později.
O STO LET POZDĚJI
Znáte ten kód, který vypadá, jako by byl textem k písni skupiny Rammstein? Tak s ním nemá první programovací jazyk vůbec nic společného. Na rozdíl od něj ovšem skutečně pochází, možná trochu překvapivě, z Německa. Koncept jménem Plankalkül (čti se správně drsným německým přízvukem) začal navrhovat Konrad Zuse v roce 1943. Na tomto notačním systému, ze kterého se stal předek toho, čemu dnes říkáme programovací jazyky, je zajímavé to, že jeho původní zápis byl dvoudimenzionální a teprve mnohem později byl k němu vymyšlen i zápis lineární. Jde o formální systém připomínající relační algebru a jeho pár klíčových slov je celkem nudně v angličtině. Zde je malá ukázka lineárního zápisu: P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) → R0[:8.0] max(V0[:8.0],V1[:8.0]) → Z1[:8.0]
12
max(Z1[:8.0],V2[:8.0]) → R0[:8.0] END P2 max (V0[:8.0],V1[:8.0]) → R0[:8.0] V0[:8.0] → Z1[:8.0] (Z1[:8.0] < V1[:8.0]) → V1[:8.0] → Z1[:8.0] Z1[:8.0] → R0[:8.0] END
ROZJEZD PO WWII
A pak už přicházel jeden programovací jazyk za druhým. Opravdu? Ehm, ne tak docela. Během 40. let vzniklo jen pár kódů, které se dají nazvat vyššími programovacími jazyky. Všechny navíc vznikly dost podobným způsobem. Když totiž měli Američané po druhé světové válce chvilku času na oddech, tak zjistili, že je úplně nebaví lézt po celé místnosti a zapojovat podle předem vymyšlených schémat dráty u ENIACu a dalších, v té době poněkud rozložitějších, počítačích. Vymysleli tedy primitivní systém, jak takové počítače donutit číst programy z read-only paměti. Při té příležitosti vzniklo hned několik kódovacích systémů, neboli v podstatě programovacích jazyků, které definovaly, jak takový program zapsat. Nejznámější z nich je pravděpodobně Short code, který vznikl v roce 1949. Fungoval pěkně, jen s jedním drobným nedostatkem - interpretované programy pod ním běhaly asi 50x pomaleji, než kdyby je tam nacvakali ručně. Ale za pohodlí se holt platí - to vám potvrdí každý Java programátor.
TY ZATRACENÉ ZÁVORKY
Další zastávku uděláme u programovacího jazyku (dokonce u rodiny programovacích jazyků, abych byl přesný), který se opět částečně používá i dodnes, například v softwarovém balíku AutoCAD nebo ve zvukovém editoru Audacity. Je o pouhý rok mladší, než FORTRAN a je jím… Lisp! Jeho zkratka neznamená „Lots of Irritating Superfluous Parentheses”, jak se občas s nadsázkou uvádí, ale obyčejné „LISt Processor”. Každopádně oba názvy jsou poměrně výstižné: základními kameny Lispu jsou spojové seznamy, tedy lists, a tyto spojové seznamy jsou vždy ohraničenými kulatými závorkami, kterých tím pádem v programu nebývá zrovna málo. Jednoduchý výpočet faktoriálu pak může vypadat například takto: (defun fact (n) (if (zerop n) 1 (* n (fact (- n 1)))))
A TEĎ UŽ DOOPRAVDY!
Když teď přeskočíme pár jazyků, které stejně nikdo nezná, tak můžeme říct, že se konečně dostáváme k jazykům, které jsou celkem známé. Za prvního zástupce z nich se dá považovat FORTRAN, což je zkratka je složena ze slov „Formula Translation”. To naznačuje jednak to, že přecházíme od matematických vzorců ke skutečným programovacím jazykům, a jednak to, že i všechny programy v tomto jazyce na vás budou křičet s takto „zaseknutým Caps Lockem”. FORTRAN je velmi zajímavý jazyk. Přestože ho firma IBM vyvinula již v roce 1955, dokázal se po desetiletí udržet mezi nejpopulárnějšími programovacími jazyky. V jisté míře se používá i doteď, především u benchmarků nejvýkonnějších superpočítačů. To je ostatně blízko účelu, ke kterému byl stvořen a ke kterému byl i celé půl století využíván: pro svět intenzivních výpočtů, simulací a fyzikálních modelů. Pochopitelně, že od původního konceptu a první implementace až k současné podobě prošel značným vývojem, během kterého získal řadu nových vlastností. A tento vývoj stále není u konce – verze označovaná jako Fortran 2015 se právě připravuje.
ALGORITMY, ALGORITMY, ALGORITMY…
Zatímco vycházela druhá verze FORTRANu a Lisp byl zatím pouze konceptem na papíře, zrodil se ALGOL 58 (z čehož lze i bez pokročilého logického uvažování odvodit rok vydání). Z předchůdců dnešních programovacích jazyků byly jazyky z rodiny ALGOL zásadní, protože je na nich postaveno mnoho dalších jazyků včetně Pascalu – a to už přímo implikuje, že z něj těží i C. Jako první přinesl do programování bloky kódu, ohraničené klíčovými slovy begin a end, a s tím spojené lokální proměnné. Syntaxe tohoto jazyka byla
13
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ navíc definována matematicky přesně v tzv. Backus-Naurově formě, což po něm převzaly téměř všechny následující programovací jazyky.
ČO BOLO, TO BOLO
Jestli se dá některý z programovacích jazyků označit slovy „die hard”, není to ani C, ani PHP, ale COBOL. Od počátku byl navržený pro oblast businessu a udržel se v ní dodnes. COBOL byl vytvořen v roce 1959 za situace, kdy jediným mainstreamovým jazykem byl FORTRAN, který se ovšem pro obchodní účely nehodil. Hlavním požadavkem při jeho vytváření byla verbozita a čitelnost, jehož důsledkem je to, že COBOL používá cca 300 rezervovaných slov. Jeho programy pak připomínají text v anglickém jazyce (tedy opět až na verzálky, v té době snad všudypřítomné): IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. DISPLAY „Hello, world!“. STOP RUN.
Vzhledem k malé podpoře strukturovanosti programů je každý trochu větší projekt v COBOLu tvořený nepřehledným spaghetti kódem. Banky a další podobné instituce v současnosti naříkají zoufalstvím, protože zkušení COBOL programátoři již pomalu odcházejí do důchodu a jejich systémy, jejichž upgrade by byl velmi finančně nákladný, nemá kdo udržovat.
UNIVERZÁLNÍ SYMBOLICKÉ KÓDOVÉ INSTRUKCE PRO ZAČÁTEČNÍKY
Na závěr se z vyšších sfér superpočítačů a businessu přesuneme do škol. Programovací jazyk BASIC, neboli „Beginner‘s All-purpose Symbolic Instruction Code”, byl vytvořen v roce 1964 speciálně pro výukové účely, což se mu díky relativní srozumitelnosti, kompilátoru poskytovanému zdarma a dobré podpoře podařilo. Možná i vaši tatínkové nebo maminky v něm na sálových počítačích programovali. Stejně jako předchozí zástupci, i BASIC žije v různých transformacích dodnes. Nejrozšířenější je pravděpodobně Visual Basic od Microsoftu, známý především z maker VBA v aplikacích MS Office. Pravdou ovšem je, že s původním BASICem už toho má na první pohled společného pramálo.
ZÁVĚREM
V tomto místě časové osy, orientačně 8 let před vznikem jazyka C, náš průlet kmety programovacích jazyků zakončíme. Je vidět, že přes překotný vývoj posledních desetiletí jsou stále oblasti, kde čas běží trochu jinak a tyto dávno překonané programovací jazyky jsou stále používány, ačkoliv mnohdy ne zcela dobrovolně. Ale na druhou stranu, až budete zase jednou programovat pro assembler, vzpomeňte si s vděkem na lidi, kteří vytvořili to, čemu dnes říkáme vyšší programovací jazyky.
Zdeněk Kasner foto: instacod.es, lisperati.com, wikipedia.org, jakd.hu
14
Nejoblíbenější programovací jazyky Nejoblíbenější, co to vlastně u programovacích jazyků znamená? Asi vás napadne, že to bude prostě ten nejpoužívanější. Co ale tedy doopravdy takové programátorské srdce chce a jak moc je to v rozporu s tím, o jaké programátory si loni psali firmy k Ježíškovi? I na to se v tomto článku podíváme a neopomeneme nahlédnout ani do srdcí FIŤáckých.
VE KTERÉM JAZYCE MLUVÍ AJŤÁCI NEJVÍCE?
Jelikož oblibu jsme si v prvé řadě spojili s mírou používaní, mrkneme se i na tuhle kategorii jako první. V jakém jazyku se tedy dnes napíše nejvíce kódů? Server IEEE Spectrum (IEEE je zkratkou pro Institute of Electrical and Electronics Engineers, který je neziskovou organizací sdružující přes 350 000 elektroinže-
nýrů a informatiků z celého světa za účelem podpory rozvoje těchto oborů) vydal seznam nejpoužívanějších programovacích jazyků. Žebříček samozřejmě jeho autoři nesestavovali jen tak. Použili 12 různých metrik a sledovali kódy z 10 různých zdrojů tak, aby výsledek byl co nejvíce relevantní. IEEE Xplore digital library, CareerBuilder nebo na FITu oblíbený GitHub, to je pár příkladů míst, kde sledovali popularitu jednotlivých jazyků.
15
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ A jaký je tedy výsledek? Asi nikoho z vás nepřekvapí, že nejvíce používaným jazykem ve světě byla v roce 2015 Java. V závěsu za ní se pak drží C, C++, Python a na 5. místě C#. Všech 5 zmiňovaných jazyků si svoje místo pevně drží již z předchozího roku 2014, kdy byl tento žebříček za stejných podmínek také vytvořen. Celý žebříček top 10 je pak vidět na obrázku. V levém sloupci je rok 2015, v pravém pak výsledky pro rok 2014. Hodnoty ukazují celkovou oblíbenost, tedy při započítání všech kritérií. Celý žebříček, který obsahuje 48 programovacích jazyků, a možnost zobrazit si výsledky podle různých metrik, pak můžete najít na webu IEEE Spectrum v článku „Interactive: The 2015 Top Ten Programming Languages”. Zjistíte tak třeba i to, že pomyslným skokanem roku je nový jablečný jazyk Swift, který se stal v roce 2015 velkým trendem a v celkovém žebříčku se vyšplhal na 16. místo. Pokud vás tedy téma zaujalo, určitě doporučuji podívat se na žebříček důkladněji a zobrazit si výsledky dle toho, co vás zajímá. Jo a mimochodem… zábavné bude jistě dohledat si zde i jazyky z ostatních článků tématu tohoto čísla. V žebříčku samozřejmě nenajdete žádný ze „šílených” programovacích jazyků. Tož, je to sice s podivem, ale opravdu se OSTRAJava celosvětově neujala. O slovo se však z článku o nejstarších jazycích hlásí dědeček Cobol. A ač na chvostu seznamu, dává vědět, že opravdu ještě platí „Cobol is not dead”.
MILÝ JEŽÍŠKU, K VÁNOCŮM BYCHOM CHTĚLI, ABY TEN NOVEJ AJŤÁK UMĚL…
Končíte-li v roce 2016 na FITu (myslím samozřejmě s titulem), nebo se poohlížíte po nějaké praxi, určitě je dobré vědět, jaké pozice se firmy v současné době snaží nejvíce obsadit. Jaký další jazyk by se ještě vyjímal ve vašem životopisu a bylo zajímavé se jej naučit, ať už samostatně, nebo v některém z volitelných předmětů FIT? Pokud si v již zmiňovaném žebříčku IEEE Spectrum zvolíte pohled Jobs (jazyky, které jsou poptávány ze strany zaměstnavatelů), velké změny se na prvních místech od celkového žebříčku oblíbenosti nedočkáte. Nejvíce se programuje samozřejmě v tom jazyku, ve kterém je nejvíce
16
práce. V první pětce se nám tedy jen prohodí C++ za Python: 1. Java 2. C 3. Python 4. C++ 5. C# 6. JavaScript 7. PHP 8. SQL 9. Rubby 10. Shell I tady se dere na povrch Swift na 14. místě, ač jeho kolega Objective-C je stále před ním na místě 12. Jelikož ale IEEE vychází i u této oblíbenosti především ze zdrojů obsahující napsané kódy a žebříček je přeci jen již pár měsíců starý, zajímalo mne, co říkají o oblíbenosti u zaměstnavatelů i jiné žebříčky a zda se významně liší. Aktuálnější a firmám více blízký pohled tak dává například statistika z ledna letošního roku, která bere jako podklad aktuální nabídky práce ze serveru Indeed.com. Ten je americkým celosvětovým vyhledávačem pracovních pozic. Zde aktuálně boduje SQL, jelikož databáze jsou dnes potřeba prostě všude, a tak se tyhle při písmenka často objevují i v požadavcích pracovních pozit v IT sféře. Žebříček TOP 10 ukazuje následující graf:
Abychom se ale nedrželi jen světových žebříčků, zamíříme i do českých luhů a hájů. Vím, kde kdo by chtěl pracovat v Silicon Valley, ale i tak vás určitě zajímá, jak je na tom IT v České republice nebo přímo v Praze. Server Jobs.cz sestavil dle údajů z roku 2015 žebříček „6 nejžádanějších profesí pro rok 2016“. IT je zde na 3. místě (1. jsou finance a bankovnictví, 2. se umístila personalistika). V roce 2015 firmy hledaly přes Jobs.cz například zhruba 5 500 programátorů, 3 000 IT analytiků a 1 700 Software architektů. A jaká čísla nám aktuálně vypadnou, když budeme hledat pozice dle jednotlivých jazyků? Zkusila jsem to, a přesto že C, C++ a C# se špatně vyhledává samostatně, ostatní čísla ukazují, že pozice jazyků v žebříčku amerického Indeed.com platí i pro ČR a dokonce i pro Prahu, jelikož v hlavním městě je samozřejmě nabídek nejvíce.
se o nějaké vyložené lásce k céčku stejně asi úplně mluvit nedá. Přesto však věřím, že pro vás mohou být tyto výsledky zajímavé. A jaký je tedy FIT TOP 5 oblíbených programovacích jazyků?
• • • • •
C++ Java C# Python C
25.3% (39 hlasujících) 16.2% (25 hlasujících) 12.3% (19 hlasujících) 11.7% (18 hlasujících) 8.4% (13 hlasujících)
Celkový přehled, tedy výsledek ankety včetně jazyků, které jsme do ní zapojili, ale které neobrželi ani jeden hlas, je pak vidět na následujícím grafu.
Výsledky pro celou ČR: • C, C++ nebo C#: cca 2790 • SQL: 1095 • Java: 523 • Javascript: 328 • Python: 175 • PHP: 182 • iOS: 74p • Ruby: 27 Výsledky pro Prahu: • C, C++ nebo C#: cca 1170 • SQL: 753 • Java: 338 • Javascript: 202 • Python: 112 • PHP: 96 • iOS: 49 • Ruby: 18
EXKURZE DO FIŤÁCKÝCH SRDCÍ
Určitě nejenom mě zajímá, pro jaký jazyk bijí srdce ajťáků a ajťaček z FITu. Proto jsem skrz infomail požádala studenty o vyplnění ankety s jednou jednoduchou otázkou „Jaký je váš nejoblíbenější programovací jazyk?”. Celkový počet hlasujících byl 154, takže prosím berte výsledek s rezervou. Že zvítězilo C++ může být možná pro někoho trochu překvapením. Na druhou stranu však není divu, že studenti mají rádi to, co už znají a umí. C a C++ se na FITu učí jako hlavní jazyky hned v prváku, a tak je výsledek vlastně poměrně logický. Pro případného zájemce o studium je navíc pozitivní fakt, že ač studentům legendární testovací systém Progtest k srdci většinou nepřiroste, přesto se jazyk naučí a oblíbí si jej. Procentuálně však C++ zabralo jen zhruba třetinu a C méně než desetinu hlasů, a tak
V anketě bylo možné samozřejmě hlasovat i pro jiný jazyk, než byl na seznamu. Možnost „Other“ využilo 9 studentů a skrýval tyto odpovědi: Rust, TypeScript, ChucK, Apex, VHDL, Bash, Kotlin, Clojure a Petr. Pokud některé z nich neznáte, zeptej se strýčka Googla a rozšiřte si obzory, jako jsem to ostatně udělala i já. Zaujal mne třeba ChucK, programovací jazyk pro počítačovou hudbu. A Petr? Že by nový Karel? Pravděpodobně měl autor na mysli tuzemský grafický programovací nástroj, který cílí na úplné programovací začátečníky. Doufám, že náš FIŤák v něm už dnes neprogramuje, ale dá se pochopit, že objevné programátorské začátky mohou být srdeční záležitostí na dlouhá léta.
Veronika Dvořáková foto: codingdojo.com, spectrum.ieee.org
17
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ
Nejnovější programovací jazyky Jestli jste si někdy otráveně řekli, že se učíte jen ty „děsně starý jazyky, které se ještě psaly na stěny jeskyní“ a jak to, že někdo nevymyslel něco jednoduchého a nového, pak vězte, že nové jazyky vznikají neustále, a pokud opravdu chcete na vlastní kůži pocítit rozdíly mezi jazykem-dědečkem a jazykem-batoletem, pak můžete zkusit některé z nejnovějších programovacích jazyků. A jaké časové rozpětí vlastně obsahuje slovo „nejnovější“? Je to rok, pět, deset? Když už jsme nový jazyk přirovnali k batoleti, hodilo by se podívat na poslední tři roky. Ale potrénujte si čtení i jiných textů než manuálů nebo vlastních i cizích kódů. Pro tento článek si pojem „nejnovější“ definujme jako „objevivší se v posledních pěti letech“, přičemž si povšimněte, že neobsahuje slovo „všechny“, protože nejenom že by se to nemuselo vejít do našeho časopisu, ale také proto, že ne všechny vzniklé jazyky se dostanou na světlo světa. Proto si dovolíme vám představit nedokonalý výčet programovacích jazyků z posledních pěti let.
SWIFT, RESP. SWIFT 2
Swift se stal jedním z největších překvapení WWDC roku 2014, kde se Apple zaměřil hlavně na vývojáře. Už po pár měsících se tento C-like jazyk pro vývoj iOS aplikací, potenciální nástupce Objective-C, stal velice populárním. Na rozdíl od dynamicky typovaného jazyka Objective-C podporuje Swift silné datové typy – je tedy staticky typovaným jazykem a lze tedy lépe optimalizovat kód už během kompilace. Dále díky tomu není nutné psát datové typy, podporuje totiž „type inference” (kompilátor je schopen odvodit datový
2014 (Swift) / 2015 (Swift 2) http://swift.org
18
typ proměnné na základě uložených dat). Jedná se o jednoduchý a rychlý jazyk, který by měl omezit programátorské chyby (např. se nevyžadují středníky za příkazy), hlavně by ale měl jít naproti začínajícím vývojářům, pro které byl Objective-C náročný jazyk. Může fungovat v jedné aplikaci s Objective-C a měl by být blízký i vývojářům v Ruby. V roce 2015 Apple upgradoval Swift na Swift 2 a nechal ho jako open-source. Díky tomu jazyk proniká do všech možných směrů. Momentálně může být využit nejen pro vývoj aplikací pro Apple, ale i pro Linux.
TYPESCRIPT
HACK
Tento rychlý programovací jazyk má na svědomí Facebook. Ten byl původně vytvořen v PHP, ale s rostoucím množstvím lidí, kteří se podílí na vývoji, přestalo PHP vyhovovat (hlavně nemožnost zjistit chyby v kódu dřív, než byl spuštěn na webu). Proto vznikl Hack s volitelným statickým typováním a typovou kontrolou, která běží na pozadí a nezatěžuje programátora. Jinak se ale vlastně stále jedná o PHP, akorát s více funkcemi. Většina PHP souborů je tak už platnými soubory jazyka Hack. Mělo by jít o nejlepší způsob programování webových aplikací. A jelikož jej Facebook zveřejnil jako open-source, dokumentaci naleznete na oficiálních stránkách.
Open Source programovací jazyk od... Jakou firmu jsme tu ještě neměli? Ano, Microsoft! Jde o nadstavbu JavaScriptu doplněnou o některé atributy z objektově orientovaného programování. Stavění JavaScriptové aplikace větších rozměrů je náročné, TypeScript je tu proto, aby tuto práci usnadnil. Všechny JavaScriptové kódy jsou automaticky kódy i TypeScriptovými.
2012 http://typescriptlang.org
ELIXIR
2014 http://hacklang.org
Pro pochopení Elixiru je lepší znát Erlang (z roku 1987). Elixir a Erlang jsou velice blízké jazyky, co se týče funkcionalit, ale syntakticky se Elixir inspiroval v Ruby. Kód napsaný v Elixiru může být snadno zavolán Erlangem a naopak.
JULIA
Vyšší dynamický programovací jazyk, jehož vývoj začal roku 2009. Je určen hlavně pro vědecké výpočty a momentálně je taktéž open-source. Jádro je implementováno v C a C++. Vykazuje mimořádnou rychlost, srovnatelnou s programem psaným přímo v C. Jazyk je možno modifikovat za běhu, což umožňuje snadné metaprogramování.
2012 http://julialang.org
19
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ K čemu Elixir, dynamický funkcionální jazyk, využijete? Ke všemu, k čemu Erlang. K webovému vývoji (momentálně nejoblíbenější framework pro Elixir je Phoenix) a k vývoji škálovatelných aplikací. Stejně jako Erlang je vhodný k provozu nejenom herních serverů (např. Call of Duty nebo Game of War běží na infrastruktuře ovládané Erlangem). A navíc přináší mocné prvky pro metaprogramming.
2012 http://elixir-lang.org
kódu), má být alternativou k Javě, která řeší její nedostatky, jež v ní zůstávají hlavně kvůli zpětné kompatibilitě. Stále je však plně kompatibilní s Javou. Kotlin je uvolněn jako open-source.
ELM
Funkcionální jazyk, který se kompiluje do HTML, CSS a JavaScriptu. Obsahuje debugger, který se umí „vrátit v čase“ a přepsat již vykonaný kód, aby zjistil, jaký by byl výsledek, kdyby nový kód proběhl za původních podmínek. Využití najde ve vývoji web-browser GUI.
2012 http://elm-lang.org
2011 http://kotlinlang.com
A tady náš výčet končí. Nicméně na průzkum nových jazyků se můžete vydat sami – např. Dart, Ceylon, Rust, Chapel nebo Idris nejsou sice nejnovější, všem jim je přes pět let, ale i tak si jistě zaslouží pozornost. Přeci jen se nové jazyky snaží o větší rychlost, bezpečnost a přehlednost – a daří se jim. Takže pokud vám „jazyky z pravěkých jeskyní” nevyhovují, už vám nic nebrání rozjet své projekty v některém z nových jazyků. Anebo si vymyslet vlastní, abychom za pár let měli zase o čem psát.
Petra Svíčková
KOTLIN
Vyvinuto společností JetBrains, výrobcem nástrojů pro vývoj v Javě, Ruby, PHP, C# a dalších. Kotlin, statický typovací jazyk pro JVM (Java Virtual Machine) a Android (a může být zkompilován i do JavaScript
20
Nejlehčí a nejtěžší programovací jazyky Pokud se člověk začne poprvé zajímat o programování, logicky první otázka směřuje na obtížnost jednotlivých jazyků. Vzhledem k tomu, že každému programátorovi přijde jeho oblíbený jazyk jako zaručeně nejjednodušší, většinou to končí tak, že je začátečník zmaten a neví, s čím začít. A proto jsme připravili žebříček vybraných programovacích jazyků seřazených od nejjednodušších po obtížnější.
PYTHON
S Pythonem se ve svém životě musel setkat každý, kdo to v životě s programováním myslel aspoň trochu vážně. Tento jazyk bývá označován jako jeden z nejjednodušších jazyků, které pomáhají z ačátečníkům proniknout do tajů programování a algoritmizace. Kromě toho otevírá dveře do světa internetu věcí, protože je na něm založen například Raspberry Pi. Světlo světa spatřil v roce 1991 a používá se dodnes především pro vývoj webových stránek, videoher nebo desktopového uživatelského rozhraní. I když se jedná o nejjednodušší jazyk, nemyslete si, že není slušně placen. Nejlepší Python programátory zaměstnávají korporace jako Intel, Amazon, či Dell a jejich roční průměrná mzda se v USA pohybuje okolo neuvěřitelných 107 tisíc amerických dolarů, což je v přepočtu okolo 2 630 000 Kč. Python byl použit pro několik online služeb, které dennodenně používáme. Příkladem může být Instagram, YouTube, nebo hudební služba Spotify. Zajímavost nakonec: věděli jste, že Python získal své jméno po slavném britském televizním seriálu „Monty Python’s Flying Circus“?
RUBY
Stejně jako s Pythonem se s Ruby setkala většina z nás na střední škole. Je to spolu s ním další z jazyků, které jsou jednoduché k naučení. Kromě toho má mnoho knihoven se zajímavými nástroji. Samotné Ruby je směs programovacích jazyků jako LISP,
SmallTalk, Ada, Perl a Eiffel. Začátečníci navíc nemusí s ničím tápat, protože Ruby má obrovskou a stále rostoucí komunitu – každé hlavní město na světě má svoji komunitu a pořádá pravidelná setkání. Ale protože vše není růžové, i Ruby má své nevýhody. Mezi ně patří výkon, nebo nedostatečná dokumentace. Většinou se můžeme setkat s pojmem „Ruby on Rails“, což není nic jiného, než framework pro webové aplikace napsané v Ruby.
JAVA
O trochu více náročnější je Java, která je o čtyři roky mladší jak Python. Vznikla totiž v roce 1995 a rozšířená je v dnešní době díky operačním systémům Android a iOS. Pokud plánujete vytvořit smysluplnější aplikaci pro Android, připravte se, že se Javě nevyhnete. Kromě mobilních operačních systémů se Java stejně jako Python používá pro videohry nebo desktopové uživatelské rozhraní. Java se potýká s několika problémy, které nováčkům v programování mohou házet klacky pod nohy. Je jím například nepříliš vysoká rychlost. Tento jev lze vypozorovat při spouštění kódu Android aplikace v Java simulátoru na vašem počítači. Java je stejně jako Python používána ve službách, které většina z nás každý den používá, ať už je to samotný Android, nebo jen e-mailová služba od Google. A kdo by zapomněl na klasické Java hry na „hloupých“ mobilních telefonech, na kterých většina z nás utrácela stovky korun…
21
TÉMA: NEJ PROGRAMOVACÍCH JAZYKŮ
C
Tento jazyk snad nemá cenu hluboce představovat – kdo by si nepamatoval „céčko“ z PA1? Nicméně na to, že se jedná o skoro stařečka, který je tu s námi přibližně 44 let, drží se stále v kondici. Bývá označován jako jazyk střední obtížnosti, nicméně člověk, který má zkušenosti s jiným programovacím jazykem, by neměl mít problém. Obecně také platí, že jakmile umíte jazyk C, umíte prakticky (skoro) jakýkoliv jazyk. Pokud jste nadšenci do operačního systému postaveného na Linuxu, vězte, že na jazyce C je Linux postaven. Kromě Linuxu se s ním můžeme potkat i v čtečkách Amazon Kindle nebo v OpenGL. Obecně se pak C také používá díky své multiplatformnosti pro přenositelné aplikace. Původně však bylo určeno pro programování systémů a softwaru pro něj.
C#
Pokud Linux není váš šálek kávy a v oblibě máte spíše vývoj pro Windows, nemohli jste se vyhnout jazyku C#. Ten je relativně nový, byl vytvořen pod taktovkou Microsoftu na počátku nového milénia, tedy v roce 2000. Je plně integrován s knihovnou .NET, čímž umožňuje skvělou funkčnost a podporu. Je založen na jazyce C, pokud tedy C umíte, nebude problém se C# naučit. Nicméně úplní nováčci v programování by se měli tomuto jazyku vyhnout – nepatří mezi nejjednodušší a nejsrozumitelnější na pochopení algoritmizace a programování celkově. O čem také svědčí fakt, že se posouváme v našem žebříčku pomalu na konec. Dnes můžeme C# potkat nejen v desktopových programech pro Windows, ale také v Modern UI aplikacích pro systémy Windows 8 a vyšší. Založeny na něm bývají také aplikace pro mobilní systémy Windows Phone a Windows 10 Mobile. Kromě Windows
22
je C# použit v oblíbené službě StackOverflow, nebo v poznámkovači Evernote. Používá se také díky svému zabezpečení v business sféře. Zajímavost nakonec: název C# byl až další návrh na název. Původně se tento jazyk měl jmenovat COOL (C-like Object Oriented Language), nicméně z důvodu ochranné známky se muselo přistoupit na jiný název. Důvodem, proč byl nakonec zvolen název C# je prostý. Autoři tohoto názvu se se inspirovali u notového zápisu, kde znak „#“ u noty naznačuje, že by měla být o půltón vyšší. Podobně přemýšliví byli i autoři názvu C++, kde „++“ znamená zvýšení proměnné o 1. A když už je řeč o C++…
C++
Dostali jsme se pomalu, ale jistě, na konec žebříčku. Znamená to, že jsme u toho nejobtížnějšího jazyka – minimálně z tohoto seznamu. C++ patří mezi rozšíření „původního“ C. Podporuje několik paradigmat, například objektově orientované programování nebo generické programování. Nejedná se tedy o čistě objektový jazyk. Sice jsme několikrát označili C++ za obtížnější jazyk, nicméně i přes svoji složitost dokáže jednoduše ukázat, jak funguje většina ostatních jazyků, například díky práci s pamětí. Pokud ho budete ovládat alespoň trochu, dokáže vám odhalit a vyjasnit nástrahy v dalších jazycích. Setkat se s ním můžeme nejen ve videohrách či vyhledávačích, ale také v operačních systémech. C++ je také přenositelné mezi různými zařízeními, a to zejména mobilních telefonů, je tedy jedno, zda používáte mobilní Windows, BlackBerry, iOS, nebo Android. Jazyk byl také použit při tvorbě e-mailové služby Outlook.com, nebo vyhledávače Google.
Milan Kurka foto: munso.no
TECHNOLOGIE
Gigapanoramatické fotografie v SAGElabu V letním příspěvku o technologiích jsme se dočetli o SAGE laboratoři a možnostech, které přináší studentům a výzkumným pracovníkům fakulty. Dnes se podrobněji podíváme na jednu z technologií, se kterými se v laboratoři pracuje. Pro tento příspěvek jsme vybrali tvorbu a zpracování fotografií v extrémě velkém rozlišení. Řádově se jedná o gigapixelová rozlišení. Pro srovnání, běžné zrcadlovky mají rozlišení mezi 20 a 50 megapixely. Dnes si tedy budeme povídat o fotografiích s řádově vyšším rozlišením. Ostatně to je, s ohledem na zaměření laboratoře na multimédia ve vysokém rozlišení, pochopitelné.
K ČEMU JE TO DOBRÉ?
To je otázka na svém místě, ale začněme od začátku. Jak jsem naznačil, tak si dnes povídáme o fotografiích s rozlišením gigapixelu a více. Ze srovnání je patrné, že je nevyfotíme jen tak na jedno „cvaknutí”, takže s tím bude docela dost práce, ale o tom později. V běžné fotografii řešíme rozlišení s ohledem na možnost velkoformátového tisku, jako obrazů či plakátů, nebo z důvodu pozdější postprodukce, kdy nám rozlišení dává manipulační prostor pro hrátky ve Photoshopu. V tomto případě, ale už není ani jedno tím skutečným důvodem. Jednak proto, že úpravy takovýchto souborů jsou spíš potíž, než že by nám nějak pomohly, to ostatně pochopíme, až se podíváme na zpracování těchto fotek. Ani možnost tisknout neomezený rozměr nám není příliš užitečná především proto, že není smysluplně využitelná. Hlavním důvodem pořizování gigapixelových fotografií jsou virtuální prohlídky. Pro ty bychom sice extrémní rozlišení nutně nepotřebovali, ale posuďte sami v ukázce, jestli není možnost prohlídnout si každý detail scény, jako bychom byli na místě s dalekohledem, lákavá. Osobně nesouhlasím s názorem, že by se virtuálními prohlídkami dala nahradit osobní ná vštěva místa, ale na některá místa se prostě ne každý
může dostat ať už z jakéhokoliv důvodu. Z pohledu cestovatele fotografa je to pak dobrá možnost, jak se na místo podívat před samotnou cestou a naplánovat si focení. Samostatnou kapitolou jsou pak vědecká využití pro dokumentaci určitých oblastí a jejich stavu pro srovnání v budoucnosti či jen experimentální tvorba s cílem překonávat limity SW určeného ke skládání a zobrazování tak, aby bylo vytvořeno rekordní rozlišení. Na největší mně známý gigapan v době psaní článku se můžete podívat zde: http://www.in2white.com.
23
TECHNOLOGIE GIGAPAN TECHNOLOGIE HW
Technologie využívané k tvorbě tohoto typu fotografií se liší. Existuje mnoho různých pomůcek od těch manuálních, až po velmi pokročilé automatizované systémy. Vždy jde v zásadě o zařízení, které autorovi umožní přesný pohyb s aparátem tak, aby měl úplnou a jasně definovanou kontrolu nad každým dílčím snímkem. Obecně se těmto zařízením říká panoramatické hlavy. Proč panoramatické je zjevné a hlavy, protože již u obyčejných stativových hlav, ze kterých vycházejí, je podobnost jejich pohybu s pohybem lidské hlavy nasnadě. Nejjednodušší jsou mechanické typy zajišťující přesné otáčení okolo vertikální osy fotoaparátu. S jejich jednoduchou formou se setkáte v téměř každém stativu. Nás ale s ohledem na gigapanoramata budou zajímat varianty, které umožňují pohyb v obou osách. Pro většinu využití opět postačují manuální verze, které umožní nastavit vhodný bod otáčení a pak jen postupně fotíte snímek za snímkem. Pokud ovšem přistoupíme k opravdu velkým fotografiím, zjistíte, že to manuálně fotit nelze. Taková gigapanoramata se skládají ze stovek až tisíců dílčích snímků, a to by nebylo nic pohodlného na ruční práci a navíc by to trvalo dlouho. Z toho důvodu přišly chytré technické hlavy s nápadem celý proces zjednodušit automatizací. Dnes se tak využívají motorizované a počítačem řízené panoramatické hlavy. Zařízení pak typicky funguje tak, že nastavíte vhodný bod otáčení, nastavíte parametry objektivu a nakonec hlavě určíte rohové snímky budoucího
24
výsledného snímku. Hlava pak spočítá optimální rozložení fotek s ohledem na nutné překryvy a následně odfotí celou sérii fotek pomocí dálkové spouště fotoaparátu.
GIGAPAN TECHNOLOGIE SW
Po softwarové stránce je skládání panoramat jakéhokoliv tipu zajímavou záležitostí. Nebudu zde ovšem zabíhat do algoritmických či matematický detailů neb na to jsou tu povolanější. Podíváme se společně jen na různé způsoby skládání fotek z pohledu uživatele. Možnost skládat panoramata ručně rovnou přeskočíme, pojďme se tedy podívat na metody v praxi používané. Pokud se zajímáme o fotografii, tak nás určitě napadne využít nekonečných možností Photoshopu, vždyť ten přece umí zázraky. No, se zázraky je to pravda jen částečně, ale každopádně s panoramatickými fotkami nám pomoci dokáže. Pokud skládáme typická panoramata pro účely širšího úhlu záběru, je vše v nejlepším pořádku. Počítač se vám sice při skládání docela dost zapotí, ale vše dobře dopadne. Pokud začneme být náročnější na počet zdrojových souborů, a to z jakéhokoliv důvodu (může se jednat o extrémní rozlišení, techniku HDR či focus stacking) narazíme na omezení. Jak brzo na ně narazíme, bude záležet na našem HW, nicméně dříve či později Photoshop spotřebuje všechnu dostupnou paměť a následně svými dočasnými soubory zaplní i místo na discích. Další komplikací, na kterou narazíme, je ne-
valná schopnost Photoshopu proces skládání fotek paralelizovat. Photoshop tedy není pro naše potřeby extrémních panoramat vhodnou volbou. V laboratoři používáme specializovaný SW Kolor Autopano Giga, jehož výhodou je jednak relativně slušná paralelizace a jednak umí lépe zacházet s pamětí a nezabere tak veškeré dostupné místo. Ani tak ovšem nepočítejme se skládáním na notebooku či slabším PC, to bychom se výsledku dočkali až napřesrok. Když už máme SW, ve kterém fotky složíme, tak máme vyhráno, nebo snad ne? Nebudu zdržovat a prozradím, že ne. Potíž je právě v extrémním rozlišení, o které nám šlo a v extrémním datovém objemu. Na jpeg můžeme zapomenout, jelikož ten má omezení na 65 tis. px šířky, což je sice hodně, ale pro naše potřeby stále ne dost, u formátu tiff narazíme pro změnu na maximální objem dat 4 GB. Použitelným formátem se nakonec ukázal PSB tedy Photoshop big, který umožňuje až 300 tis. px a není limitován velikostí souboru. Zároveň je tento formát podporován skládacím programem. Máme tedy složenou fotku a máme jí jak uložit, nicméně s otevíráním to nebude žádná sláva, když náš PSB soubor má nějakých 20 GB. Možností máme vícero. První je nahrát soubor na web http:// gigapan.com, který slouží ke zobrazování a sdílení těchto extrémních obrázků (viz grafit at gigapan. com) nebo se můžete stavit u nás v SAGElabu, kde je k dispozici specializovaná aplikace pro zobrazování těchto souborů.
JAK NA TVORBU GIGAPANORAMAT?
Jak vidno tak takové skládání gigapixelových fotografií není nic primitivního, ale na druhou stranu pokud nebudeme chtít lámat rekordy, a tím pádem zápasit s omezením dostupných obrazových formátů, není to ani nijak extrémně náročné. Je jen potřeba dát si pozor na pár věcí. Předně, jako u každé fotografie je potřeba mít dobře pořízený zdrojový materiál. V tomto případě hodně záleží na proměnlivosti počasí v době snímání. Samotné snímání totiž i v případě automatizace bude trvat minimálně desítky minut, a proto bude vítr naším nepřítelem. Rychle letící mraky nebo kývající se stromy rozhodně nejsou něco, co by skládací SW uměl dobře složit. Prostě pokud se mu něco v obraze hýbe, tak nedokáže přijít na to, jakou část odkud by měl použít. Proto je docela dobré, pokud se jedná o menší panorama a není možné se větru vyhnout, fotit po vodorovných řadách a postupovat ve směru pohybu mraků, sníží se tak rozdíly mezi jednotlivými snímky. Pokud máme vybranou lokaci a dorazili jsme na místo za dobrých povětrnostních podmínek, můžeme si zatleskat, část úspěchu už máme. Při samotném focení jsou pak, kromě správné expozice důležité dvě věci, stabilní stativ a správně umístěný fotoaparát v tzv. nodal pointu, což je optický střed soustavy. Jde o to, abychom měli střed otáčení shodný právě s nodal pointem, což minimalizuje vznik optického zkreslení při skládání výsledného panoramatu.
25
TECHNOLOGIE
Samotné skládání je pak otázkou konkrétního SW (např: Kolor Autopano), ale probíhá většinou automaticky s tím, že nastavíme parametry optiky, s jakou jsme snímali a případně doladíme ručně umístění snímků, které se automatice nepovedlo spojit. Zde pak nastává nejčastější komplikace, stává se že SW nenajde ve fotkách dostatek kresby na nalezení spojů a pak snímek nezahrne do panoramatu a zůstane po něm díra. Pokud jde o pár snímků, je ruční doladění sice otrava, ale celkem snadno proveditelné. Pokud ovšem chybí například polovina oblohy pak už je to složité a bude nás to stát spoustu hodin práce a mnoho nervů, pokud se vůbec povede fotky umístit. Proto doplním poslední produkční radu. Foťte scény, ve kterých je dost vzorů a málo velkých jednolitých barevných ploch, ušetříte si tak hodně času.
26
Pokud máme gigapanorama vytvořené, můžeme ho nahrát na web gigapan.com nebo si pomocí specializované knihovny openseadragon vytvořit vlastní aplikaci, která bude s našimi výtvory pracovat a dovolí nám se jimi pochlubit. Nebo máme třetí možnost, a to využít aplikace Deep Viewer vyvinuté kolegou Jirkou Kubištou a potěšit se svými výtvory u nás v laborce.
GIGAPANY NA TELESTĚNĚ
V rámci své BP Jirka Kubišta vyvinul SAGE2 aplikaci pro zobrazování gigapanů. Mohlo by se říct, co na tom vyvíjet, vždyť prohlížečů obrázků je spousta. To ano, ale žádný neotevře 20 GB fotku a už vůbec nás nenechá jí zobrazit a dynamicky s ní pracovat na telestěně. Deep Viewer aplikace využívá speciální způ-
sob ukládání obrázků pomocí tzv. image pyramid, což je technologie, která uchovává fotku rozřezanou na spoustu malých dlaždic v různém zazoomování dané fotky. Umístění jednotlivých dlaždic je pak popsané v dzi souboru, což je v podstatě texťák podobný xml. Díky této metodě pak aplikace načítá jen potřebnou část obrazu v potřebném rozlišení a nemusí natáhnout do paměti celou obrovskou fotku. Zároveň překreslování po malých dlaždicích je také rychlejší než manipulovat s celým souborem. Podobnou techniku ostatně využívá i web http://gigapan. com nebo třeba online mapy.
https://sagelab.cesnet.cz https://facebook.com/GrafitCVUT
KDE JSME K NÍ PŘIŠLI A CO PLÁNUJEME DO BUDOUCNA?
HW nutný k tvorbě gigapanů jsme měli jako laboratoř zapůjčený od firmy http://fullframeshop.cz a v případě zájmu máme slíbenou možnost dalšího využití na jiné projekty. Do budoucna bychom rádi zkusili vytvořit nějaké zajímavé virtuální prohlídky dejvického kampusu, popřípadě dalších míst, a pokud by měl někdo zájem se na něčem z toho podílet nebo měl vlastní nápad, tak rádi pomůžeme a domluvíme opět zapůjčení techniky. Kontaktovat nás můžete buď přes FB Grafitu nebo web SAGElabu.
Ondřej Brém foto: autor, gigapan.com
27
PARTNEŘI FAKULTY
Spolupráce s Komerční bankou Stříbrný partner fakulty Komerční banka spolupracuje s naší fakultou více než rok a od té doby se na praktických projektech vystřídalo sedm studentů FITu. Dvě diplomové práce se podařilo úspěšně obhájit a další čtyři čekají na svá dokončení. Na tento i další semestr připravuje KB řadu dalších témat diplomových prací, workshopů a soutěží pro studenty.
IT je svět neustálých změn. Prakticky každý den se můžeme dočíst o technologických novinkách či změnách nejen v IT produktech, ale i způsobu řízení IT. Komerční banka se tomuto prostředí snaží přizpůsobit formou nejrůznějších projektů a aktivit, které jí pomáhají přinášet nová řešení pro poskytování kvalitnějších služeb. Nedílnou součástí rozvoje informatiky je i prozkoumávání a analýza nových trendů a inovativních řešení. Právě toto je oblast, kde se znalosti a kreativita studentů FITu nejvíce osvědčují. Spolupráce mezi Komerční bankou a FITem započala již na začátku roku 2015. Model spolupráce je od začátku postaven tak, že témata, která studenti zpracovávají, jsou prakticky zaměřena pro konkrétní projekty, ať už připravované nebo běžící. Studenti si mohou přímo vyzkoušet, jak fungují velké projekty v bankovním sektoru a co všechno se od IT specialistů nebo IT manažerů očekává v reálném světě. Témata, kterými se studenti zabývají v rámci diplomových prací, se vůbec nemusí zaměřovat pouze na IT. Naopak, většina z nich IT přesahuje a zaměřuje se na řešení konkrétních „byznys“ problémů. Příkladem je návrh gamifikované platformy pro nábor nových zaměstnanců nebo analýza a návrh Learning Management System (LMS) pro efektivní správu kurzů a vzdělávání zaměstnanců formou elektronického
28
vzdělávání. Další diplomová práce se zabývá bimodálním přístupem k řízení IT projektů a zaváděním agilních přístupů do korporací. Všechna tato témata jsou řešena přímo s odborníky z praxe a student se tak často setkává se reálným využitím výsledků své práce. Jakým způsobem se můžete zapojit? Nejsnazší cesta je účast na některém z workshopů nebo soutěží, které Komerční Banka pořádá. Jedním z nich je produktový hackathon, který se bude na naší fakultě konat 8. dubna (více info na http://kb.cz/ hackathon). Další možností je účast v inovační soutěži Dejte Hlavy Dohromady (více info na http:// kb.cz/dejtehlavydohromady), v rámci které můžete posílat přihlášky do 10. 4. a do 9. 5. zasílat popis svých nápadů a řešení. V rámci těchto soutěží máte nejen šanci získat finanční odměnu, ale nejlepší studenti budou mít i možnost toto téma zpracovat formou bakalářské či diplomové práce. A pokud se zrovna na závěrečnou práci nechystáte, lze v tématu pokračovat formou stáže, která může být díky programu Partnerství odměněna nejen finančně, ale i studijními kredity.
Pavel Krejčí
Lely, innovators in agriculture Zlatý partner fakulty Lely’s business scope is agriculture, however, evolution in robotics and computer science in recent years has widened this scope bringing in new opportunities and changes to the business. It thus has more in common with FIT than one would expect. Lely now cooperates with FIT in the field of artificial intelligence, mainly machine learning, data mining and big data.
Headquartered in the Netherlands, Lely operates in more than 60 countries worldwide, inspiring people to “create innovative solutions” to assist farmers “excel in sustainable milk production, forage harvesting and energy sourcing”. The company’s core activities include the development, production and sale of advanced and innovative agro-technology. With more than 60 years of practical experience and research, Lely – the “innovators in agriculture” – today own an impressive portfolio of products and services ranging from forage harvesting to barn cleaners, automated feeding systems and milking robots.
The most popular Lely‘s product is the Lely Astronaut, a robotic milking system. When the cow enters the robot, it attaches the teat cups, milks the cow, detaches and carries out post treatment. Milk is analysed in the robot in real time and substandard milk is immediately separated. Besides milking, there are also fully autonomous robots; Lely Discovery that regularly cleans the barn and feeding robot Lely Vector that distributes fodder to the animals. Everything is fully automated. It is a combination of mechanics, robotics, computer vision and AI. The farmer’s presence is required only when the animal or the robot needs his attention, i.e. animal is falling sick or the robot
ARTIFICIAL INTELLIGENCE IN FARMING
Apart from its wide range of services that reduce manual tasks on farms, the industry with its strong customer focus encourages farmers to work smart, not hard. It takes the responsibility to educate farmers of the change in the management system that would occur with the transition from conventional to automated farming, and of the benefits the use of artificial intelligence techniques in farming would bring, such as, better well-being of cows, greater quality of milk and efficient farming that in turn make farms more profitable and durable, and farmers’ lives easier and more enjoyable!
Lely industries is a worldwide innovator in the international agro- technology market and a market leader in the sale of automated milking systems. Focusing on innovative automated farming methods ever since its foundation in 1948, the company upholds a strong vision of “A sustainable, profitable and enjoyable future in farming”.
29
PARTNEŘI FAKULTY
needs some part to be replaced; this is called management by exception. With farming made so easy by AI, it is now quite common that farmers have part time jobs in a bank, a software company or any field for that matter.
ANIMAL-FRIENDLY FARMING
Unconditional respect for animals is a policy that Lely strongly upholds. The cow is the starting point for each and every product that it produces. The company is highly acclaimed for its robotic milking appro-
30
ach that enables “free cow traffic” – cows approach the milking robots at their own will as they can feast on some fodder around the robots and enjoy being groomed. This not just ensures happier cows, but the resulting data also indicates that the cows produce more milk and remain healthier. Furthermore, all Lely products stand out due to minimum consumption of energy, this clearly reflects the company’s efforts towards a greener environment.
LELY AT FIT
Lely has been in co-operation with the Faculty of Information Technology (FIT) in Prague since 2014, having published its first assignment on the Portal Cooperation with Industry (Portál spolupráce s průmyslem). The assignment was to improve automatic detection of cow’s heat (oestrus) using machine learning methods. For further explanation, in a modern farm, cows commonly wear sensors. A widely used “cow wearable” is an activity sensor, which records locomotion behavior. This sensor is in the form of a collar tag and is very often combined with a sensor recording rumination. The goal of the assignment was to detect heat using time series of activity and rumination; with a data driven approach and minimum domain knowledge. The project proved to be very successful and confirmed that the cooperation
could be beneficial for both Lely and the students who have the opportunity to work on real research and innovative projects. In 2015 the innovation department at Lely decided to strengthen the cooperation and become a gold partner of FIT.
JOINT RESEARCH
Lely always researches state of the art algorithms and AI techniques to improve its products and support farmer’s decisions; this is where Lely and FIT reach consensus. Since 2015 several joint research projects are running in cooperation with the Czech Technical University (CTU). An interesting joint research to draw focus on is in the field of dairy cows’ behaviour. FIT students are analysing data in order to extract information about cows’ daily routine, social interactions and explain behavioural patterns. Experts from Lely and the University of Wageningen (Netherlands) help with the domain knowledge. Another project closely related to the analysis of behaviour is BarnSim, a multiagent system for simulation of dairy barns. Each animal as well as robot is an autonomous individual with its own physique and behaviour. Cows interact among themselves and also with the robots, the whole set of individuals make a complex dynamic system that simulates behaviour on a dairy barn. This can be very useful to optimize the barn itself, number of animals and robots.
Tomáš Borovička foto: Lely
LELY AND YOU! (OPPORTUNITIES FOR STUDENTS)
If you want to try your AI, machine learning and data mining skills on real data, we encourage you to make a leap at the opportunity, as Lely offers an array of interesting and engaging assignments that are regularly published on the portal SSP. Your work can help ensure better well-being of cows on dairy farms, better quality of milk and uphold green farming. Gain practical experience with the innovators in agriculture! We also supervise bachelor and master thesis, however, preferably after some prior co-operation and experience with the student. Lely prefers long term collaboration with students and certainly under the supervision of our specialists. Collaborations usually begin with an assignment over the portal, assigned as a semester project, and when the co-operation proves beneficial for both ends, we co-operate further! Lely’s assignments at FIT are supervised by the Data Science Laboratory or Datamole, s.r.o., a company that is a research and development partner of Lely. Datamole has a joint research lab at FIT that you can reach on the 13th floor. If you would like to know more about Lely, stop by at TH:A-1349. You can also interact with Lely scientists at Co@FIT. The opportunity is yours and now! Let’s work together toward a sustainable, profitable and enjoyable future in farming. Let’s innovate!
31
STALO SE
InstallFest 2016 Tradičně skvěle zorganizovaný, opět o něco rozsáhlejší a tentokrát navíc i s kvalitní kávou po vzoru Linux Days – tak by se dal popsat letošní ročník InstallFestu, který se konal ve dnech 5. a 6. března ve Školicím centru Silicon Hillu.
Akce plná přednášek přilákala na strahovský kopeček odborníky i nadšence ze světa GNU/Linux z celé republiky. Chybět samozřejmě nesměli ani vyučující a studenti z FIT ČVUT, ať už v roli posluchačů nebo přednášejících. Během dvou dnů přednášek a workshopů se dostalo například na téma útoků na šifru A5/1, triky v bashi, práci se zvukem v Linuxu, Arduino a Raspberry Pi nebo bezpečnostní analýzu počítačových sítí. Sobotní program InstallFestu byl navíc oproti minulým ročníkům rozšířen o sadu tzv. lightning talků, neboli cca 10minutových přednášek, které byly příležitostí pro každého, kdo chtěl krátce představit svůj projekt a procvičit si přitom své prezentační dovednosti. O občerstvení se starala tentokrát kromě Active24.cz i oblíbená pražírna kávy Kofárna s. r. o., takže si přišli na své jak experti na kávu, tak vytížení programátoři. Všechny záznamy z akce pak zajišťovalo ve špičkové kvalitě AVC.SH, které se postaralo nejen o živé streamy z obou tracků a z workshopů, ale i o upload všech přednášek ve 4K kvalitě ihned po skončení programu. Zdeněk Kasner Foto: twitter @InstallFest_SH
Ples ČVUT V sobotu 20. února se na pražském Žofíně konal již desátý Reprezentační ples ČVUT v Praze. Moderátorkou večera byla Martina Kociánová, která hostům také zazpívala za doprovodu Plesového orchestru pražských symfoniků. Na pódiu se vystřídaly i jiné známé osobnosti, například Monika Absolonová, Bohuš Matuš s Orchestrem Karla Vlacha, dále pak Star-
32
dust Kvartet a Ondřej Brzobohatý. O předtančení se postaralo uskupení Bohemia balet. Reportáž z plesu můžete zhlédnout zde: https://youtu.be/0u-encij3EM.
Tereza Kadidlová
FIT párty 2016 Párty od fiťáků pro fiťáky. Tedy žádný F.I.T., ani *FIT*, ale prostě a jednoduše FIT párty. Ačkoliv se samotný nápad zrodil poměrně nedávno, už je z něj v podstatě zaběhnutá tradice. Slovo „nedávno” v tomto případě znamená čtyři roky, takže – ano, počítáte dobře – se letos všichni sešli již počtvrté.
plusem. Stěny sklepení rozezvučely kapely Twilight Kid, ForFun a Farside a o následnou afterparty se pak postarala čtveřice ve složení Adam J, Springcleft, System Overload a Hepex. Kromě hudebního programu účastníci využili toho, že budova má v názvu „sportovna” a zasportovali si při obíhačce ve stolním tenise. Celou akci stejně jako v minulých letech zorganizoval student naší fakulty Vadim Petrov. Sice jsme s ním nepřipravili rozhovor, i tak se ale na tomto článku podílel, neboť ho jako grafik v naší redakci upravil a vysázel do podoby, ve které ho nyní čtete. Máme ovšem nemilou zprávu: tato záliba ho odvála až na FEL, takže podle jeho slov „se FIT párty bude muset asi uspořádat sama, ledaže by se toho ujal někdo iniciativní”. Toto je tedy i výzva pro současné nebo budoucí fiťáky – bude se tato akce konat i příští rok? Zdeněk Kasner FIT párty se vždy koná ze začátku semestru. To znamená, že na ní všichni přicházejí nabití energií a optimismem, které z nich ještě nestihla vysát tvrdá dřina z domácích úkolů a zkoušek. Nabízí tedy kromě pařby příležitost sejít se s lidmi z naší fakulty a hodit s nimi v klidu řeč. Stejně jako loni se tato akce konala v prostorech Radlické kulturní sportovny na Smíchově, díky čemuž bylo možné vychytat řadu různých chybek. Například nebylo vůbec potřeba řešit hluk, protože se kapely přesunuly do podzemních prostor (odkud by nebylo slyšet ani živáčka, kterého by tam náhodou někdo zavřel) a termoregulační systém jednotlivých účastníků letos vydatně podporovalo rozžhavené topné těleso na stropě. To ale nebylo to hlavní, protože kdo by řešil zimu nebo naštvané sousedy, když je lineup nabitý skvělými kapelami a DJs! Ani letos nechyběli jak nezkušení zelenáči, tak osvědčení mazáci. Přítomnost nějakého FIŤáka v hudebním uskupení byla pak jedině
33
FIŤÁCKÉ PROJEKTY
Lítačka Tramvajenka, MHD kupon, legitka, nebo lítačka… ať jste zvyklí svému předplacenému jízdnému říkat jakkoliv, budete ji prostě potřebovat. Řeč je o nové Lítačce, tedy kartě, na které stejně jako na její červené předchůdkyni máte nahranou svou časovou jízdenku. A jelikož u zrodu tohoto projektu, který má postupně nahradit problémovou Opencard, stál náš absolvent Ing. Václav Strnad, požádali jsme ho o rozhovor. Proč jsi se rozhodl zkusit si pozici IT ředitele ve společnosti Operátor ICT, a.s.?
Když jsem byl osloven jako potencionální kandidát na člena představenstva a IT ředitele v městské společnosti Operátor ICT, a.s. (tehdy ještě Operátor OPENCARD, a.s.), bral jsem to jako velkou výzvu. Navíc v té době byl do čela společnosti jmenován i jeden z nejzkušenějších IT odborníků u nás a můj přednášející z FITu Ing. Ondřej Felix, CSc. Naskytla se mi tedy možnost být u řešení palčivého IT problému a navíc přímo spolupracovat se špičkou v oboru. Moc dlouho jsem neváhal. :)
Jak vůbec vznikl projekt Lítačka?
34
Poté, co se nám podařilo stabilizovat IT ve společnosti a s velmi omezenou dokumentací začít provozovat systém bez výpadků, vypršely po několika letech dva soubory s certifikáty, které jsou potřeba k chodu celého systému. Nemusím asi zdůrazňovat, že certifikační autoritou byl dodavatel a vlastník autorských práv k systému Opencard. Ten se však rozhodl, že na naše výzvy k vystavení nových certifikátů nebude reagovat až do okamžiku, kdy skutečně certifikátům vyprší platnost a nám nepůjde nic spustit. To bylo také důvodem zhruba půldenního výpadku vydávání karet 30. 9. 2015. Nakonec certifikát vyměnit přišli, ale z nějakého důvodu jen o týden a od té doby chodí měnit každý týden, i když má Praha licenci na neomezeně dlouhou dobu. Dostali jsme se tedy do situace, kdy nikdy nevíte, jestli systém, za který jste odpovědni, bude příští týden fungovat, nebo ne. Museli jsme příjít s nějakým rychlým řešením. A vzhledem k tomu, že Opencard je jeden velký vendor lock-in, řešením bylo vytvořit celý nový systém pro card management. A tak vznikl projekt nového systému vydávání čipových karet. V poslední fázi příprav přišel z magistrátu návrh na přejmenování karty, aby se udělala pomyslná tečka za Opencard. A dnes je z toho Lítačka.
Jak to, že najednou šlo pražský dlouhodobý problém vyřešit?
Problematice Opencard se věnuji až od jara 2015, takže nemůžu říct, proč se problém nedařilo řešit dřív. Podle mě se ale teď díky dlouhodobému vývoji naskytly možnosti, jak problém řešit. Nedovedu si představit, že bych zaváděl Lítačku třeba v roce 2013, kdy neexistoval Operátor a hlavně vůbec nebyly papírové průkazky, takže v případě nějakého delšího výpadku by si prostě nikdo dlouhodobou jízdenku nekoupil.
Kolik lidí na projektu pracovalo a kolik jich Operátor ICT zaměstnává v současné době?
Přímo na nasazení nového systému pro vydávání karet pracovali čtyři kmenoví zaměstnanci v součinnos-
ti s dodavateli SW. V současné době má IT oddělení OICT 7 lidí včetně částečných úvazků.
Je na kartě Lítačka něco zásadně jiného od Opencard, pokud pomineme finanční náročnost?
Karta jako taková je stále MIFARE DESFire EV1 4K a data na ní jsou strukturována podle doporučeních společnosti NXP, takže tady nebylo třeba žádných velkých změn. Na kartě ale přibyl EAN kód, takže třeba v knihovnách, kde je potřeba načíst pouze číslo karty, už do budoucna nemusí mít čtečky čipových karet, ale stačí jim levnější čtečka čárových kódů, kterou tam stejně mají kvůli knížkám.
Jsou tedy zachovány všechny funkce jako na Opencard? Je například možnost použít kartu jako identifikátor v městské knihovně? Chystáte nějaká rozšíření, která u Opencard nebyla?
Bylo upuštěno od některých funkcí, takže Lítačka nyní slouží jako elektronická jízdenka na MHD a jako identifikátor do veřejných institucí (knihovny, školy...). Rozšíření chystáme zejména ve způsobu, jakým je možné si kartu pořídit. Chceme jít hlavně cestou on-line žádostí, aby lidé vůbec nemuseli chodit na žádné kontaktní místo.
Název „Lítačka” vzbuzoval poměrně negativní ohlasy. Jak si to vysvětlujete?
Pro mě je podstatné, že nový název vzbuzoval ohlasy. Troufnu si říct, že téměř každý v Česku ví, že v Praze je nová Lítačka. A to nebyla na propagaci nového „brandu” vynaložena ani koruna. To beru jako velký úspěch. Nemyslím si, že byly ohlasy negativní, což potvrzuje i analýza soc. sítí, kterou si objednal magistrát a ukazuje, že víc jak polovina uživatelů vnímá ná-
zev Lítačka pozitivně. Je ale pravda, že ty negativní ohlasy jsou vždycky nejvíc vidět. Zkusili jsme proto na Facebooku Lítačky udělat anketu, kde by lidé mohli navrhnout vlastní název. Z té ankety vyšlo, že se lidé nejsou schopni jednoznačně dohodnout na nějakém názvu, a že ani často zmiňovaný název Tramvajenka nemá nijak převratnou podporu. Zajímavým přínosem ankety bylo pro mě ale zjištění, že existuje skupina lidí, kteří by chtěli Opencard přejmenovat na Kartu Václava Havla.
Jak si Lítačku můžeme pořídit a je nutné ji hned měnit za Opencard?
Lítačku si můžete nyní pořídit v zákaznickém centru ve Škodově paláci v Jungmannově ulici, kde ji dostanete na počkání. Současné Opencard budou fungovat až do konce jejich platnosti, měnit ji tedy ihned nemusíte, ale můžete. :)
Kolik je už vydaných nových karech?
Každý pracovní den se vydá zhruba 800 nových karet. K 18. 3. 2016 jich je v oběhu něco přes 12 000. Jde většinou o výměny expirovaných Opencard.
Jaká je budoucnost Lítačky? V médiích bylo zmiňováno, že jde o dočasné řešení problémové situace s Opencard. Jaké vize tedy máte s projektem do budoucna?
Budoucnost je jednoznačně v tzv. multikanálové kartě, která dá cestujícímu možnost si vybrat, na jakém nosiči chce svůj kupon mít. V současnosti má cestující dvě možnosti: papír a Lítačku. Byl bych rád, kdyby se do budoucna podařilo kupón dostat na bezkontaktní bankovní karty a do chytrých telefonů.
Veronika Dvořáková Foto: Ing. Václav Strnad
35
TVORBA
I am(sterdam) Amsterdam, město na řece Amstel, plné malebných úzkých domků s příkrými dlouhými schody, s jízdními koly na každém volném odkládacím místě, proslavené malířem Van Goghem, kterému je věnováno rozsáhlé muzeum a především příběhem mladičké Anny Frankové, která svým deníkem oslovuje lidi po celém světě i dnes.
Asi jste už zaznamenali fotky s červenobílým nápisem „I amsterdam”, kteří si vaši známí přidávají na sociální sítě. Ve městě tulipánů je ale k vidění a poznávání mnoho dalšího. Za deštivého počasí můžete pobíhat kolem stánků s tradičními tulipány - pořidíte tu i takové netradiční barvičky jako je tmavě modrá nebo černá, mým oblíbencem se rozhodně stal fialový tulipán. Pokud máte v plánu navštívit amsterdamská muzea, určitě se vám vyplatí pořídit si nějakou z turistických karet (Museum card nebo I amsterdam card, ve které je zahrnuta i doprava). Když zvládnete alespoň dva kulturní stánky denně, věřte, že dost ušetříte. Pokud ale chcete vysedávat v coffee-shopech nebo prolézat Red Light District, tak si kartu nepořizujte. Red Light District je v těsné blízkosti Oude Kerk, nejstaršího kostela ve městě, který je otevřen veřejnosti (těžko říct, koho napadlo hříšný háj budovat kolem svatého místa). Asi vás trochu zamrazí, když vám dojde, že podlahové desky jsou otvory ke hrobům... Amsterdam je určitě dobré zažít z vody, takže vyjížďka lodí po kanálech, při které si město prohlédnete z jiného úhlu, by vás neměla minout. Pokud se
36
ubytujete v sousedním městech, můžete využít i trajekt (ferry), který vás za pár minut dopraví na Central – hlavní dopravní uzel. Pokud chcete vidět muzeum, kde je takříkajíc „od každého něco”, doporučím Stedelijk, kde můžete obdivovat na vlastní oči dílo Pieta Mondriana, užité umění, i to nejmodernější, které bez výkladu asi není možné pochopit. Ve Stedelijku zhlédnete i několik obrazů Van Gogha, ale většinu jeho díla najdete v protější budově muzea, které je věnováno jenom jeho životu a práci. Pozor na krásné výrobky s Van Goghovými motivy v muzejním obchůdku… je to skoro jako droga. Do takové TOP 3 muzeí bych ještě přidala Het Scheepvaamuseum, tedy muzeum lodí a námořnictví. I přesto, že námořnictví není zrovna můj šálek čaje, musím ocenit autora všech expozicí umístěných v muzeu, které jsou velmi atraktivní a interaktivní. Pobaví se dospělí, ale i děti si najdou to své. Největším lákadlem je ale určitě loď v areálu muzea, kterou si můžete projít a alespoň na chvíli vyzkoušet život na moři. No, v některých patrech jsem musela chodit ohnutá a co pak ti, kteří vyrostli víc než jen necelý metr šedesát. Zvlášť pro dámy bych ještě navrhovala návštěvu muzea diamantů, jejíž expozice seznamuje s historií diamantů, jejich objevy a jejich zpracováním. K vidění jsou třeba netradiční vladařské koruny. V místnosti za černými závěsy najdete lebku osázenou diamanty – jedna z variací díla Daniela Hirsta. Co bych rozhodně nedoporučila ani svému úhlavnímu nepříteli, je super moderní muzeum EYE s nádhernou bílou budovou, která by měla znázorňovat ptáka v letu. Před vstupem ta krása končí… Pak návštěvníky čekají už jen podivná super moderní umělecká videa, na která se normální smrtelník asi dívat nechce… Ale věřím, že absolventi multimédií by se v tom rochnili. Když jedete na náročný výlet, je třeba si i chvíli od-
počinout, napojit se a nasytit. K návštěvě bych doporučila malé restaurace kolem zastávky Dam. Stejně jako domy jsou úzké, i restaurace nejsou v mnoha případech příliš rozhlehlé. Pár stolečků, kolem sebe místa jako mají sardinky v konzervě, tma jako v pytli, obsluha mi přišla vždy dost protivná. Rozhodně bych nedoporučovala se v amsterdamských zařízeních opít, protože vyšplhat na toalety po příkrých schodech, někde víc a někde ještě víc nepohodlných, je skoro o život i za střízliva. A co si máte dát? No, nikdy neprohloupíte burgerem a kvantem hranolků. Ale ochutnat byste měli i tradiční broodjes (což ve finále může být taky burger, ale umí to i bez masové náplně). Palačinky! Rozhodně si dejte jejich pidi palačinky. Ale běžte ve více lidech – narozdíl od nás, totiž Holanďani dávají pouze jednu „chuť” navíc – tedy můžete mít palačinky s čokoládou, nebo s banánem, zmrzlinou – ale všichni dobře vědí, že nejlepší je to s čokoládou a banánem a zmrzkou a šlehačkou… a tak dál. Co ale bylo tím úplně nejdůležitějším pro mě při návštěvě Amsterdamu – prohlídka domu Anny Frankové. Její deník jsem četla už před lety a vyvolal u mě obrovský zájem o příběhy lidí, kteří prožili válku. V muzeu se nesmí fotit kvůli tomu, že návštěva může být pro mnohé hlubokým emocionálním pro-
žitkem. To můžu potvrdit. Chodit po domě a místech, ve kterých Anna a její rodina přežívali v úkrytu válku bylo… prostě nepopsatelné. Její maličký pokojíček se zachovalými plakáty na zdech, fotografie, které rekonstruovaly dobový vzhled pokojů, makety úkrytu, aby měl člověk přesný přehled, jak život probíhal… Promluvy jejího otce z videa, který jediný přežil válku, jejich přátel, spousta nezvěřejněných fotografií, ať už v knihách nebo tisku, a především původní Annin deník. V obchůdku můžete nakoupit ledacos – pohlednice, komiksy s Anniným příběhem, repliku jejího deníku a především knižní vydání deníku v různých jazycích – i já jsem si tam ulovila český překlad. Řada před domem je dlouhá kdykoliv se rozhodnete do muzea jít - ale ta půlhodinka čekání opravdu stojí za to. Tak ještě pár věcí na závěr – dámy, to vás bude jistě zajímat a i ty, kteří si všímají kulturních rozdílů – zatímco u nás jsme zvyklí mít na toaletách u umyvadel i zrcadla, ve kterých se důležitě prohlížíme, ani v jedné amsterdamské instituci jsem zrcadla neviděla. Ne, že by chyběla úplně – ale jsou třeba v chodbičkách, nikdy ne přímo nad umyvadly. Holanština zní poněkud zvláštně, pokud nejste zvyklí, ale z psaného textu se dá mnoho věcí odvodit. No, ale třeba slovo „kaas”, tedy „sýr” byste asi jen tak neuhádli. Když vychytáte hezké počasí, zkuste bar Sky Lounge (v objektu hotelu Hilton) v blízkosti Central, ze kterého budete mít nádherný výhled na celé město. Pokud vás nebude iritovat posh DJ, hlasití Angličané a dámy na lovu... Více podrobností najdete v článcích publikovaných na webu www.kultura21.cz od měsíce dubna.
Kamila Pětrašová Foto: autorka
37
ZÁVĚREM
Herní tipy QUANTUM BRAKE
Remedy Entertainment se vrací! Studio, které nám přineslo Max Payna a skvělou hororovku Alan Wake nám letos naservíruje další titul, který má na to být hitem. V Quantum Brake budeme hrát za Jacka Joyce, který umí manipulovat s časem, čímž dostává výraznou výhodu oproti svým protivníkům. Může zastavit čas, měnit směr letící kulek, či objevit hned vedle nepřítele a jednu mu ubalit. Hráč zároveň bude muset řešit různé logické úlohy, a tak hra potrápí i mozkové závity. Rozhodně je tedy na co se těšit.
Datum vydání: 5. 4. 2016 Platformy: Windows, XOne
MIRROR‘S EDGE CATALYST
Pokračování/prequel/reboot parkourové hry Mirror‘s Edge se zjevně bude odehrávat v nějaké alternativní realitě světu Mirror‘s Edge, kde se opět vžijeme do kůže Faith, tentokrát do jejího mládí a budeme se pokoušet svrhnout totalitární vládu nad městem Glass. Tvůrci slibují klasické běhání po městě a mnoho soubojů na blízko. Zároveň by místo lineárních misí měl ve hře být otevřený svět, který hráči dovolí vyblbnout se do sytosti. Také tvůrci slibují určitou formu multiplayeru, který bude minimálně obsahovat žebříčky nejlepších Běžců. Snad sláva hry letos doběhne dále, než její předchůdce.
Datum vydání: 24. 5. 2016 Platformy: Windows, Xbox One, PS4 DOOM
Další letošní reboot se bude týkat slavné značky Doom, která se po dvanácti letech opět probouzí se čtvrtým dílem. Dle vývojářů se ve hře můžeme těšit na „drsný démony, ku*evsky dobrý zbraně a fakt rychlý pohyby“. Hra se bude snažit hráče odradit od jakéhokoliv krytí a čekání na doplnění zdraví, a tak ve hře nebude žádný regenerační systém. Vývojáři se dle svých slov při vytváření hry inspirovali rock and rollem a na příběh nebude kladen skoro žádný důraz. Půjde pouze o ku*ervoucí akci.
Datum vydání: 13. 5. 2016 Platformy: Windows, Xbox One, PS4
38
Filmové tipy 10 CLOVERFIELD LANE
Tak co sakra, je to pokračování skvělého Cloverfieldu nebo ne? Nikdo neví. Produkuje to J. J. Abrams, který stál i za Cloverfieldem, název tomu napovídá, ale podle trailerů to nevypadá jako takové terno. Dobře zpracovaný found footage z návštěvy mimozemšťanů New Yorku (či to byl nepovedený vládní projekt?) s tím zjevně nějak spjatý bude a vypadá to na příběh rodinky, kterou tato tragédie uvěznila ve sklepě. Bude to tak zajímavé, jako Cloverfield? Dost jistě ne, ale Abrams málokdy zklamal, tak uvidíme.
Premiéra: 7. 4. 2016 Režie: Dan Trachtenberg Obsazení: Mary Elizabeth Winstead, John Goodman
CAPTAIN AMERICA: CIVIL WAR
Už to nakousli v Age of Ultron - Iron Man a Cap už nejsou takoví BFF, jako tomu bývalo kdysi. Vláda navrhuje registraci superhrdinů, Tony je pro, ale Steveovi se to nelíbí. Občanská válka superhrdinů začíná! Každý superhrdina se musí rozhodnout, na čí stranu se v tomto megalomanském konfliktu přidá, ale jedno je jisté: nedopadne to dobře. A zároveň taky konečně uvidíme nového Spidermana! Tak co, jste #teamcap nebo #teamironman?
Premiéra: 5. 5. 2016 Režie: Anthony Russo, Joe Russo Obsazení: Chris Evans, Robert Downey Jr
X-MEN: APOKALYPSA
X-Meni se dostávají do problémů. Kromě toho, že se na scéně objevuje nejsilnější mutant světa Apocalypse, tak nejukecanější mutant letos nasadil laťku velmi vysoko. Předčít Deadpoola v tržbách nebude jednoduché ani pro celou partu mladých X-Menů, jejichž nejsilnější zbraní je teď pleš mladého Profesora X. Ani návrat Jean Grey, která si odběhla střihnout tuto roli z Game of Thrones, asi sledovanosti úplně nepomůže. Tak snad nás X-Meni nezklamou a opět dodají dobrou mutantí podívanou.
Premiéra: 19. 5. 2016 Režie: Bryan Singer Obsazení: James McAvoy, Michael Fassbender
39
ZÁVĚREM
Starý alchymistický jazyk – první programovací jazyk? Když se v tomto čísle zabýváme programovacími jazyky, je na místě, abychom zařadili i knihu, která se jimi zabývá. Ale nemusíme být tak doslovní. Příručku nebo učebnici, jak programovat v tom a tom jazyku, ne, to vám neuděláme. V Hadích listinách se však o jistém zvláštním jazyku mluví... Knihu s atraktivním a tajuplným názvem Hadí listiny napsala mladá autorka (1986) z umělecké rodiny. S výběrem tématu pro svůj debut vůbec netroškařila – pustila se do odhalování středověkých alchymistických technik a magického jazyka. Mladá vědkyně Anna je zapálená pro zkoumání starých rukopisů a pergamenů. Vytyčeným bodem její profesní touhy jsou pergameny starého alchymistického mistra Rexe Illuminata, který, jak se alespoň odhaduje, chtěl sestrojit stroj na pravdu. Stroj, který má pomocí kombinace třech symbolů dokázat odpovědět na všechny otázky lidstva. Alchymistický jazyk je tak něco jako první programovací jazyk. Výzkum a hledání Annu přivede do bouřlivé Barcelony, která byla dějištěm brutálních vražd dívek, které měly do těla vyřezány rituální obrazce, ale místní vyšetřovatelé si s touto záhadou nedokážou poradit ani tehdy, když je obětí talentovaná herečka Natalia Hernándezová. Natalia má obrovské nadání nejen k herectví, ale je zdatná i ve výtvarném umění díky své matce. Když ji najdou po svátku svatého Jana mrtvou, je to obrovské pozdvižení. Místní vyšetřovatel Fabregat
40
dostal před její smrtí tajemné dopisy, ze kterých ale nedokáže vyčíst žádná vodítka. Anna přichází na pomoc. Nejenže je nápadně podobná předchozím obětem, ale má také svůj zvláštní dar – prostřednictvím halucinací se dokáže vciťovat do pocitů autorů textu. Přijde na to, co spojuje všechny ženské oběti? „Zdá se, že žena bez jazyka je stejně mocná jako s ním – ba snad ještě mocnější, neboť nemusí marnit čas řečmi a může jej strávit v rozjímání. Staví je to do obtížné situace, neboť se tím znovu prokazuje, že uvažující žena je ještě horší než žena hovořící.“ Jessica Cornwellová vycházela při psaní svého románu z mnoha vědeckých a historických knih, mnohdy se ale nechala unést svou vlastní fantazií. Román je složený z několika rovin – vyprávění Anny, její halucinace, nebo také korespondence mladíka s milovanou dámou z devatenáctého století, co knihu řadí mezi netradičně pojatá díla. V částech, kdy Anna halucinuje, je ale text poměrně nepřehledný. Když příběh rozložíte na jednotliviny, nelze moc vytknout, jako celek už kniha ale ukazuje pár slabších míst. Co se ale musí autorce nechat je, že čtenář do poslední chvilky netuší, kdo je dlouho hledaným vrahem. Kamila Pětrašová foto: kosmas.cz
Mensa úlohy LASERY
Zakreslete do diagramu jeden laserový paprsek, který probíhá pouze diagonálně a který do diagramu vstupuje a diagram opouští na místě označeném šipkou. Umístěte zrcadla na některé body mřížky tak, aby byl vždy laserový paprsek odražen na jinou stra-
nu. Čísla na levém okraji a nad diagramem udávají, kolika políčky v odpovídajícím řádku či sloupci paprsky probíhají. Čísla vpravo a pod diagramem určují počet zrcadel na odpovídající linii mřížky. Všechna místa, kde se laser kříží, už jsou označena.
Úloha 1
Úloha 2
Úloha 3
Úloha 4
41
ZÁVĚREM PERFEKTNÍ LOGICI
Hráči A a B dostali oba na své čelo napsáno číslo 12. Jeden vidí číslo na čele druhého a naopak, ale nezná své vlastní. Vedoucí hry jim sdělí, že součet obou jejich čísel je 24 nebo 27 a že se jedná o kladné celé číslo (nula tedy také ne). Poté se vedoucí ptá vždy střídavě hráče A a B, zda mohou určit číslo na svém čele.
A: Ne. B: Ne. A: Ne. B: Ne. A: Ne. ... Po kolika „Ne“ skončí hra, pokud vůbec?
BYS TEST 1
2
3
42
ŘEŠENÍ LASERY Úloha 1
Úloha 2
Úloha 3
Úloha 4
PERFEKTNÍ LOGICI
U perfektních logiků uslyšíme sedm „Ne“ a poté „Ano“.
VYSVĚTLENÍ:
Nechť „a“ je číslo hráče A a „b“ je číslo hráče B. (1) A ví na začátku, že a = 12 nebo a = 15. (2) B na začátku ví, že b = 12 nebo b = 15. Ale B neví, že A ví (1) a A neví, že B ví (2). Proto jsou pro nás vhodnější následující výroky, které jsou oboum hráčům jasné a každý ví, že ten druhý ví: (3) b = 24 – a nebo b = 27 – a (4) a = 24 – b nebo a = 27 – b. Z prvního „Ne“ od hráče A vyplývá právě z (4) (5) b < 24 neboť v případě b > 24 by A mohl vyřešit “a”. To je hnací motor následující cesty řešení: Z prvního “Ne” od B vyplývá pouze z (3) a (5) (6) a > 3 a podobně: A: „Ne“ => b < 21 B: ,,Ne” => a > 6
A: ,,Ne“ => b < 18 B: ,,Ne“ => a > 9 A: ,,Ne” => b < 15 Z toho vyplývá B: „Ano“ protože dohromady s informací (2) zůstává pouze jedna možnost. Proto skončí hra po sedmi „Ne“ s následujícím „Ano“.
BYS TEST
1) 2 – Patří k sobě obrázky 2,6 a 7, dále 3,4 a 8 a poté 1,5 a 9 (popř 2,3,6 a 4,7,8 a 1,5,9). Každá trojice vždy musí pokrýt šipky všech směrů.; 2) 1 – Károvaný vzor se vždy otočí jednou o 180°, jednou o 90°. Kolečka v kruhu také (popř. o 90° a poté o 180°); 3) 1 – Trojúhelník vždy přijde na místo, kde se nacházel čtverec, čtverec přijde na místo, kde se nacházelo kolečko. Kolečko žádný řád nenásleduje.
43