JavaScript, Linux a jeden mládežnícky letný tábor

11.10.2013 21:29 | Články | mirek biňas
Práci s mládežou sa venujem už zhruba 17 rokov. Za ten čas som mal možnosť vidieť nie len množstvo ľudí a množstvo rozličných lokalít, ale taktiež vylaďovanie formátu letných táborov, ktoré sme mali možnosť robiť. Pamätám sa na svoj prvý v roku 1996, kedy som ešte ako „mláďa“ zažil „vegetný“ tábor s prípravou programu priamo na mieste. Odvtedy sa príprava stala profesionálnou záležitosťou, ktorá sa bez počítačov, Linuxu a programovania nie vždy zaobíde. Myslíte si, že Linux patrí len do serverovne? Ukážem vám, že ak tiež pracujete na podobných akciách, vie byť Linux neoceniteľným pomocníkom.

Pioniersky tábor? To poznám...

Neviem, koľkí z vás ste nejaký letný tábor absolvovali alebo koľkí z vás letné tábory pripravujete. Pre lepšiu ilustráciu si teda predstavte zhruba 50 detí vo veku od 13 do 18/20 rokov, 10 vedúcich a 7 dní pred vami, počas ktorých je vašou najdôležitejšou úlohou tých 50 detí zaujať. Jasné – dá sa to odfláknuť spôsobom – „Choďte na ihrisko a hrajte sa futbal“, ale keďže našou snahou je, aby „detiská“ niečo zažili a mali dôvod prísť znova aj o rok, snažíme sa rozvíjať tímového ducha pri každodennom zápolení, ale rovnako sa snažíme vplývať na mladú generáciu vhodným zaradením seminárov a workshopov.

Obrázok 1: Takto vyzeral štart jednej z veľkej poobedňajšej hry - každá sekunda je drahá.

Dlhé roky sme robili tematické tábory, kde sme sa do témy snažili ladiť chod celého tábora. A keďže sme nadšenci počítačových hier, z ktorých je možné odkukať (alebo ukradnúť?) množstvo nápadov, mali sme mafiánsky tábor, kde sa obchodovalo s čučoriedkovým lekvárom dona Corleona, vojenský tábor s masívnym výcvikom kadetov a špionážnymi vsuvkami, boli sme v zamorenom sovietskom priestore vo výskumnom stredisku Družba, kde výskum zaujal aj Fantomasa. Vo vesmírnom tábore sme zasa nechali detiská recitovať vogonskú poéziu a samozrejme sa zúčastnili pangalaktického megapreteku (orientačného behu). Od minulého roku sa ale snažíme nie len o čistý zážitkový tábor, ale snažíme sa v rámci témy aj o istý „story telling“. To znamená, že sa počas tábora odvíja príbeh a jednotlivé aktivity a veľké poobedné hry sú etapami tohto príbehu. Predstaviť si to môžete ako ľubovoľný film o Indianovi Jonesovi, ale tie zaujímavé filmové pasáže máte možnosť v istých stiesnených a amatérskych podmienkach prežiť na vlastnej koži. Tak sme práve minulý rok robili tábor s Indianom Jonesom odhalujúcom záhadný mayský kalendár a tento rok sme zasa robili tábor s mexikáncami utekajúcimi z Mexica do Ameriky, ktorá je však postihnutá T-vírusom spôsobujúcim značnú agresivitu všetkých nakazených. No – a kde je v tom všetkom Linux? A JavaScript? A programovanie? Práve v tých etapách! Ale postupne...

Budíček... Obééééd... Večera... Nočierka...

Pre bežné činnosti si s laptopmi a Windowsom vystačíte. Ak totiž chcete niečo premietať, napísať, vytlačiť, tak vám stačí ľubovoľný kancelársky balík, ľubovoľný prehrávač multimédií na budíček a rozcvičku, a ak náhodou potrebujete premietnuť časť filmu, tak ešte niektorý prehrávač filmov (filmy ako také do programu nezaraďujeme, nakoľko to považujeme za stratu času a našu neschopnosť vyplniť tie dve hodiny niečím zaujímavejším). Tohto roku ma ale celkom prekvapilo, že nikto z „windowsákov“ nemal žiadny prehliadač obrázkov, ktorý by vedel spustiť prezentáciu fotiek (slideshow). Tento rok ale opäť prišiel vhod cyklický systémový plánovač úloh cron. Keď totiž naši Mexikánci prekročili hranice s Amerikou, okrem vztýčenej americkej vlajky ich samozrejme ráno privítala americká hymna spolu so skladbou „God bless America“ (pokiaľ ste strávili nejaký čas v Amerike, možno vám každé ráno spríjemňovali práve tieto dve skladby rovnako ako aj mne). Vlani sa nám ale pri jednej hre zišiel plánovač at. Totiž – po odhalení starého mayského mechanizmu bol do ďalekého vesmíru vyslaný mocný energetický impulz – zrejme nejaká správa. Preto sme spolu s táborníkmi a profesorom Dešifrovaným zostavili prijímač čakajúci na správu z ďalekého vesmíru, ktorý bolo nutné strážiť (hlavne v noci). Naplánoval som teda na tlač pár dokumentov pre každú jednu nočnú stráž, aby im nebolo smutno a samozrejme – najväčší rachot zažila ihličková tlačiareň ráno, keď odpoveď z vesmíru zreťazená cez hexdump začala prichádzať na našu planétu. Nie celkom bežnou činnosťou bola ale zmena MAC adresy WiFi karty pre prístup na internet (vznikol u nás taký jeden menší problém...). Dokonca som bol opäť sám prekvapený, že NetworkManager klient pre GNOME túto možnosť poskytuje a nemusím teda pozerať manuálovú stránku pre ifconfig, keďže túto operáciu zas tak často nepotrebujem. Kolega strávil zasa celý večer zháňaním bezplatnej aplikácie, ktorá to isté zvládne vo Windows-och. Ani už nepamätám, či sa mu to nepodarilo.


Obrázok 2: Klonovanie MAC adresy v Linux-e? Žiaden problém aj pre neznalého používateľa.

Táborové noviny Pokiaľ sa venujete typografii a DTP tak viete, že akýkoľvek pokus o vytvorenie časopisu alebo novín prostredníctvom kancelárskeho balíka (Word-u alebo Writer-u) vyzerá hrozne. Rovnako tak viete, že na tlačoviny ako plagáty je najideálnejší vektorový editor ako napr. Corel Draw, Adobe Illustrator alebo z našej ponuky napr. Inkscape a zasa na spomínané noviny alebo akékoľvek booklety je vhodný QuarkXPress, Adobe InDesign alebo z našej otvorenej ponuky napr. Scribus. Niekoľkokrát som robil noviny aj v našich táboroch. Niektoré boli obsahovo „serióznymi“ novinami o dianí v tábore, a niektoré boli zasa len súčasťou niektorej veľkej táborovej hry (ako napr. tohtoročné putovanie T-Vírusom zničenou Amerikou, kde po príchode do každej metropoly bolo pre našich mexikáncov pripravené aktuálne číslo z lokálneho denníka). Balík newspaper v LaTeX-u bol na tvorbu novín naozaj výborný už len kvôli celkovému vzhľadu a v predvolenej podobe vyzeral aj názov novín naozaj skvostne. Šikovný bol aj balík lipsum, pomocou ktorého bolo možné jednoducho vyplniť zostávajúce prázdne miesto Lorem ipsum textom, nakoľko sa mi pre krátkosť času nepodarilo nájsť spôsob, pomocou ktorého by som vedel obrázok vložiť cez dva stĺpce novín.



Obrázok 3: Noviny vytvorené v LaTeX-u s použitím balíčka newspaper. Nevyzerá ten názov proste cool?

Asi dvakrát som ale noviny vyrábal aj pomocou nástroja passepartout. Passpertout je jednoduchý nástroj – v podstate sa jedná len o editor vzhľadu, kde si rozvrhnete vzhľad celých novín pomocou obdĺžnikov, ktoré následne prepojíte s obsahom, ktorý je uložený v samostatných externých XML súboroch. Výstup je generovaný do PDF a vyzeral naozaj dobre. Jediný problém bol s podporou diakritiky v niektorých typoch písma. Druhý vážnejší problém je ten, že tento projekt je vlastne mŕtvy (podľa domovskej stránky vyšla posledná verzia v roku 2007), čo je škoda. Naozaj robil svoju prácu veľmi dobre.

„Opakujte po mne deti: Linux je najlepší OS na svete“ alebo vplývanie na mladú generáciu

Ako som spomínal, súčasťou našich táborov sú aj semináre a workshopy. Keďže však robíme v prvom rade biblické tábory, sú témy seminárov častokrát spojené s biblickým štúdiom. Ale seminár o Linux-e a otvorenom softvéri s inštalačnými CD priamo od Canonicalu pre účastníkov som už realizoval. Vlani to bol zasa seminár o Anonymous a teda témach ako ACTA a v neposlednom rade o softvérovom pirátstve. Najčastejšie však ako učiteľ a lektor programovania na detiskách rád experimentujem s programátorskými témami a taký úvod do algoritmizácie s robotom Karlom je zvládnuteľný kýmkoľvek aj bez počítačov. Tohtoročný experiment s programovaním počítačových hier v prostredí Greenfoot dopadol tiež celkom dobre, pretože za zhruba hodinu a pol sme boli schopní analyzovať a vytvoriť na zhruba 30 riadkoch základnú implementáciu PacMan-a (ten Greenfoot a Java bola v podstate výzva, aj keď niečo podobné som absolvoval s asi 60-timi stredoškolákmi, keď som bol počas jedného týždňa informatiky pozvaný na jednu strednú školu popularizovať informatiku a programovanie). Akurát tí duchovia neboli príliš inteligentní, ale to zas nebol cieľ...


Obrázok 4: Jednoduchá implementácia PacMan-a v prostredí Greenfoot.

Miesto pre programátora v tábore

Keďže sa povinnou výbavou tábora počítače stali už pred pár rokmi, hlavne príprava veľkých poobedňajších hier už nebola len o nožniciach a papieri. Často je potrebné drobné úkony aspoň naskriptovať, aby sa ľubovoľná práca zjednodušila. To ale samozrejme nie je ono... Asi prvý serióznejší nápad, ktorý sa bez programátora nezaobišiel, bolo pred asi štyrmi rokmi „Koleso nešťastia“ - proste ste si ním zatočili a čakali, aká veselá činnosť vás postihne (mne vyšlo spievanie veselej pesničky pred celým táborom počas rannej rozcvičky). Nápad jednoduchý, implementácia cez Javu so softvérovým rámcom Slick2D bola inšpirujúca a prepojenie cez bluetooth, aby bolo rozkrútenie kolesa na diaľku, bolo už len čerešničkou na koláči ;) Problém, ktorý som však celý čas videl, bol v použitých technológiách. Často sme totiž potrebovali pre niektorý herný systém vytvoriť kvôli jednoduchosti a prehľadnosti pre hráčov niečo, čo by sa pomaly podobalo počítačovej strategickej hre. Keď detiská behali po ihrisku a investovali svoje ťažko zarobené pesos alebo iné dolaros a kvôli získaniu prevahy nad súperom chceli na jeho pole poslať svoju armádu, museli to nahlásiť niekomu niekde, kto mal o celkovom stave hry dostatočný prehľad. Otázka bola večná: Ktorý jazyk? Java? Python? PHP? A následne – aký softvérový rámec kvôli vizualizácii? A práve tu to viazlo. A tak sme dlhodobo končili naozaj pri papieroch a obrovských mapách na stoloch. To sa ale tento rok zmenilo. Konečne som prekonal svoj dlhoročný odpor ku JavaScript-u prameniaci ešte z dôb, keď neexistoval jQuery a správanie JavaScript-u bolo v každom prehliadači iné. Kvôli táboru som sa ho teda v kombinácii s jQuery naučil. Potrebovali sme totiž pre potreby našich hier urobiť 3 aplikácie, ktoré by priebeh týchto hier spestrili. A ideálne by bolo, aby ich bolo možné spustiť na troch rôznych počítačoch (teda aj tých „pokazených“ s Windows-om). Prvou bola strategická hra, kde mexikánci podnikali s kukuricou na mape s 30x30 poliami. Mohli hnojiť, zvyšovať produktivitu strojmi a polievaním, ale taktiež škodiť konkurencii vysádzaním mandoliniek, ktoré spoľahlivo dokázali zničiť ¾ úrody na danom poli za rok. Čas pritom plynul priebežne – každých 6 minút uplynul jeden rok. Už len predstava, že by sme mali zostať pri papieri, znamenala, že tento nápad opustíme. Ale pustili sme sa do toho – teda naučil som sa JavaScript.


Obrázok 5: Farmári mohli priebežne sledovať vývoj svojich investícií.

Z pohľadu implementácie nič-moc – obrovská tabuľka s farebným označením jednotlivých mexických rodín a jednoduché rozhranie pre kupovanie nových polí a zvyšovanie produktivity už kúpených. A celkový pohľad na mapu s rastúcim počtom pesos mexikáncov povzbudzoval alebo naopak burcoval ku zvýšenému úsiliu a zmene stratégie. Client-server architektúru som za ten týždeň už nestihol zrealizovať, takže som všetky objednávky vybavoval ručne sám. Po príchode do Ameriky a oboznámení sa s T-vírusom bolo treba zapracovať na protilátke. Mexikánci so svojimi biednymi znalosťami z chémie teda museli dolovať jednotlivé prvky a vytvárať zlúčeniny, ktoré vo vhodnom poradí (zmiešaní) nechávali otestovať v labáku (počítači), ktorý im ohlásil výsledok. Z pohľadu riešenia to bola najjednoduchšia aplikácia – variácia na hru Logik Mastermind – do formuláru v tabuľkovej podobe ste zadali jednotlivé zlúčeniny (písmená) a na základe ich pozície ste sa dozvedeli, či sú na správnom mieste (svietili na zeleno) alebo na nesprávnom (svietili na oranžovo) alebo sa netrafili vôbec (nijako nesvietili). Samozrejme – progressbar zvyšoval už aj tak riadne napätie. A samozrejme – keďže sa jednalo o čisto klientsku záležitosť, nebol problém túto aplikáciu spúšťať na ktoromkoľvek „pokazenom“ laptope. V rámci poslednej hry som sa ale vybláznil o čosi viac – keďže sa nám podarilo nájsť protilátku na smrtiaci T-vírus, bolo treba sa nabúrať do centrálneho servera spoločnosti Umbrella corp. priamo v ich Úli. Takže išlo o „serióznu“ IT hru a neserióznu firmu s mocným operačným systémom.


Obrázok 6: Prihláste sa do mocného informačného systému alebo zadajte kľúč pre prístup k súborom vo firemnom repozitári

Ak sa náhodou dobre bavíte na filmoch, v ktorých sa na počítačoch nachádzajú rozličné operačné systémy, kde aj operácia kopírovania musí vyzerať ultra-mega-super úžasne alebo v nich internet pozná aj IP adresy ako napr. 827.750.304.001 (seriál Jericho) alebo sa e-maily posielajú na adresy ako max@job 3:14 (Mission Impossible 1), tak práve niečo podobné som sa pokúsil vytvoriť. Nevyčerpal som síce úplne celý potenciál tejto témy, keďže detaily vždy doťahujeme priamo na mieste a na niektoré z nich proste už nezvýšil čas, ale výsledný prienik do Osiris-u mladých mexikáncov oslnil. Nuž, keď po zadaní správneho hesla, ktoré ste museli najprv dešifrovať pomocou Playfairovej šifry, sa systém štartoval takto, rozžiarili sa nejedny oči. Ešte že vďaka Linuxu nie je problém upraviť spôsob štartovania sedenia X vlastným .xinitrc skriptom, a keď k tomu pridáte ešte niekoľko vlastných konzolových efektov… Hmm… som zvedavý, ktorý z nich sa rozhodne byť hackerom ;) Akurát som pre krátkosť času nestihol pripraviť pár audio efektov (vytáčanie modemu v pravidelných intervaloch, neustále roztáčanie disku), pretože som podcenil svoju znalosť Pulse Audia :-(

Množstvo ďalších drobností

Párkrát ma svojou funkcionalitou prekvapil a doslova zachránil príkaz convert. Keď sme napríklad vlani potrebovali nastrihať obrovskú fotku z Google Maps okolia tábora na nejakých 10x10 kusov, ktoré si následne detiská kupovali ako letecké fotografie a skúmali okolie, mal v tom prsty convert. Keď tento rok kolega potreboval pár konverzií, na ktoré nestačil Windows, convert nepovedal nie. Keď sme potrebovali PDF-ko rozsekať na sériu obrázkov, opäť to bola prácička pre convert. Povinnou jazdou sú v tábore aj rozličné šifry. A napr. na takú štandardnú substitučnú stačí aj konzolový nástroj tr. Vie ušetriť čas a zaručiť presnosť, pretože s chybou sa hry občas dokážu naozaj skomplikovať. Tento rok sme počas dvoch hier taktiež potrebovali veľké množstvo sudoku a miesto toho, aby sme kúpili niektorý zo sudoku zošitov/časopisov v stánku, som dal vytlačiť potrebné množstvo sudoku z aplikácie gnome-sudoku. Až nechápem, ako takáto možnosť tých vývojárov vlastne napadla. A nemôžem nespomenúť aj youtube-dl, ktorý bol dobrým pomocníkom pri sťahovaní videí z youtube, ale rovnako tak aj pri konverzií videí z youtube do audio súborov (megafón s možnosťou prehrávania mp3 súborov z USB kľúča bol tento rok u nás v tábore ďalšou novinkou ).

Záver

S príchodom IT do našich táborov sa naozaj zmenila aj ich tvár. Síce nech tu napíšem čokoľvek, samotný tábor aj tak v konečnom dôsledku tvoria samotní táborníci a atmoška v ňom nezáleží od toho, či tam niektorý laptop Linux má alebo nie. Celkový dojem však samozrejme posilniť môže (hlavne u chalanov, ktorí boli z aktívneho zapojenia počítačov do hier naozaj unesení). S témou tábora na budúci rok sa už pohrávame a silno špekulujeme o ozajstnom „ajťáckom“ tábore. Je to síce ešte ďaleko, ale nejaký hrubý náčrt už pripravený je. Ak teda myšlienku neopustíme, bude to určite zaujímavá skúsenosť, kde Linux zohrá určite dôležitejšiu rolu ako doteraz. Veď kto by si nechcel na vlastnej koži vyskúšať to, čo prežíval Tim Coleman vo Fukovom Podraze 3?
    • RE: JavaScript, Linux a jeden mládežnícky letný tábor 12.10.2013 | 01:17
      Avatar bedňa LegacyIce-antiX  Administrátor
      Mirek veľká pochvala a Podraz3 si veľmi dobre pamätám, hoci je to už veľa rokov dozadu, heslo bolo v ASCII kóde :)
      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: JavaScript, Linux a jeden mládežnícky letný tábor 13.10.2013 | 14:32
      Avatar Tommy Angelo   Používateľ
      A to je aky tabor? Hoc je to reklama, no ak budem mat deti, tak mozno sa radi zucastnia :)
      • RE: JavaScript, Linux a jeden mládežnícky letný tábor 14.10.2013 | 15:27
        Avatar bedňa LegacyIce-antiX  Administrátor
        Pripájam sa, daj kontakt na tábor, možno tam pošlem dcéru.
        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org