Chinfusor, univerzálne riešenie pre čítanie textov v cudzích abecedách pre Linux

Či už sa chcete naučiť cudzí jazyk, alebo ho dokonale ovládate, k základným zručnostiam patrí schopnosť čítať texty napísané v danom jazyku. V jazykoch s písmom založeným na latinskej abecede to s čítačom obrazovky nie je problém, texty možno čítať jednoducho tak, ako sú. Situácia je však podstatne komplikovanejšia pri písmach, ktoré majú s tými latinskými spoločné len máločo, presnejšie nič. Takými sú napríklad Čínska znaková abeceda, ruská azbuka či japonská kana.\
Keď vezmeme do úvahy, že populácia Číny v čase písania tohto textu činí zhruba 1,4 miliardy ľudí, približne každý piaty človek na svete hovorí po Čínsky. A napriek tomu, keď Espeak, predvolený hlas na väčšine prístupnýh linuxových distribúciach narazí na čínske znaky, jeho reakcia sa nesie v duchu (čajnýs znak, čajnýs znak, čajnýs znak, ...). Azbuka či kana nedávajú oveľa rozumnejší výstup.

Preto je tu Chinfusor, ktorý tento problém rieši.

Ako to funguje

Speech-dispatcher je známym Linuxovským ekvivalentom na Windowse známeho sapi. Ide o službu, ktorá združuje rečové moduly ako Espeak či Festival, ktoré zas reprezentujú syntetické hlasy. Keď potom Orca, predvolený čítač obrazovky pre Gnome potrebuje vysloviť nejaký text, obráti sa na Speech dispatcher, ktorý požiadavku prepošle rečovému modulu, ktorý sa postará o syntézu.

Chinfusor je tiež takýmto rečovým modulom. Neobsahuje však syntézu sám o sebe, no interne načíta ďalšie moduly, a keď dostane text na vyslovenie, rozdelí ho na časti napísané v rôznych abecedách, pričom každú pošle do správneho enginu v správnom čase podľa konfigurácie.\
Tento prístup umožňuje nie len korektné čítanie textov napísaných v rôznych abecedách, no keďže všetko načítavanie a konfiguráciu rečových modulov riadi Chinfusor, môžete si pre každú abecedu nastaviť zvláštne parametre. Slovenčinu napríklad môžete chcieť čítať plným tempom, zatiaľ čo Ruštinu, ktorú sa možno len učíte uprednostníte čítanú pomalšie. Možno Vám vyhovuje robotický hlas Espeaku pre tuzemské jazyky, no pre tonálnu Čínštinu by ste radšej viac ľudsky znejúci prejav.\
Všetko toto je možné v Chinfusore nakonfigurovať, aby ste zo svojich hlasov mohli vyťažiť maximum.

A keďže je Chinfusor klasický rečový modul, môžete ho využívať neustále, priamo vo Vašom obľúbenom čítači obrazovky. Ak sa obávate, že bude dodatočné parsovanie textu a presmerovávanie požiadaviek cez procesy spôsobovať latenciu, vedzte, že Chinfusor je naprogramovaný v Ruste,, modernom programovacom jazyku, ktorý je nie len cool a veľmi bezpečný, no taktiež neskutočne rýchly, jeho hlavné ciele sú bezpečnosť, paralelnosť a rýchlosť. Prekladá sa priamo do strojového kódu, takže by ste nemali pociťovať nijaké spomalenie, ani pri tých najdivokejších situáciach.

Ako to nainštalovať

Aby ste mohli chinfusor bezproblémovo používať, treba vykonať niekoľko úkonou.

Konfigurácia

I keď sa Chinfusor bude držať predvolených nastavení ak nenájde súbory s konfiguráciou, je dobré ho nastaviť už pri prvej inštalácii, aby bolo možné jednoducho vykonávať zmeny. Skopírujte súbory alphabets_settings.csv a settings.conf do priečinka ~/.config/chinfusor, čo je konfiguračná lokalita Chinfusoru. Možno budete potrebovať povoliť zobrazovanie skrytých priečinkov a súborov vo Vašom správcovi súborov, nakoľko adresár .config je predvolene skrytý.

Súbor settings.csv je tzv. comma separated values konfigurácia, teda súbor s hodnotami oddelenými čiarkami. Obsahuje definície jednotlivých abecied a ich nastavenia. Jednotlivé hodnoty sa určujú v tomto poradí:

  • Abeceda, abeceda, pre ktorú špecifikujete na danom riadku konfiguráciu. jej názov je čisto informatívny, Chinfusor s ním v zásade nijak nepracuje, preto si môžete zvoliť pomenovanie, aké sa Vám páči.
  • Unicode rozsahy, rozsahy unicode pre danú abecedu. Formát je u0xa-u0xb, kde a a b sú začiatočný a konečný index v unicode tabuľke. 0x označuje hexadecimálnu hodnotu, bez neho sa čísla berú za decimálne. Možno zadať viacero rozsahov pre jednu abecedu naraz jednoduchým opakovaním tohto vzoru, pričom je možné použiť ľubovoľný oddelovač príp. žiadny. Hviezda (*) alebo prázdne miesto značí, že sa jedná o latinskú abecedu. V celej konfigurácii by mala byť špecifikovaná presne jedna latinská abeceda, ak je ich viac, berie sa do úvahy len prvá, ak menej, použije sa predvolená konfigurácia. Rozsahy sa nesmú vzájomne prekrývať, ináč je správanie neurčené.
  • Modul, cesta k rečovému modulu, ktorý sa má pre danú abecedu použiť.
  • Argument, argument pre uvedený rečový modul, typicky absolútna cesta k jeho konfiguračnému súboru.
  • Jazyk, jazyk, ktorý sa má pre danú abecedu použiť, vo forme skratkového kódu napr. en, sk, ru atď.
  • Hlas, hlas, ktorý má byť použitý, typicky male1, no rôzne syntetizéry môžu ponúkať rôzne hlasy.
  • Miera interpunkcie, úroveň, s akou sa majú čítať interpunkčné znaky. Možné hodnoty sú none, some a all.
  • Výška, výška, ktorá sa má pre danú abecedu použiť, od -100 po 100 vrátane.
  • Výška veľkých písmen, výška, ktorou sa majú vyslovovať veľké písmená, od -100 po 100 vrátane.
  • Rýchlosť, rýchlosť reči pre danú abecedu, od -100 po 100 vrátane.
  • Hlasitosť, hlasitosť pre danú abecedu, od -100 po 100 vrátane.
  • Firejail, špecifikuje, či sa má daný modul sandboxovať, yes a true túto možnosť zapínajú, všetko ostatné znamená vypnuté.

Poznámka, v prípade slovenských systémov môžete chcieť v pribalenej konfigurácii zmeniť jazyk latinského enginu z en na sk, aby Vám rozprával po Slovensky.

Poznámka 2, riadky začínajúce znakom # sa považujú za komentár.

Poznámka 3, hoci parsovanie konfigurácie obsahuje základné kontroly správnosti zadaných údajov, nie sú v žiadnom prípade pripravené na všetky situácie, a napríklad validita cesty k modulu sa vôbec nekontroluje. Odporúčam preto skontrolovať dva krát, čo do konfigurácie zadávate.

súbor settings.conf má jednoduchú štruktúru, prvý na riadku je vždy kľúč, potom dvojbodka s medzerou a hodnota. Zatiaľ je podporované iba nastavenie punctuation_characters, ktoré špecifikuje, ktoré znaky majú byť pri parsovaní považované za interpunkciu. # na začiatku riadku opäť označuje komentár.

Počnúc verziou 1.2, Chinfusor sleduje svoje konfiguračné súbory, ak existujú v dobe jeho vytvorenia. Akékoľvek zmeny v nich sa okamžite premietnu do behu programu, bez nutnosti reštartovať aktuálny session.

Inštalácia

Inštalácia Chinfusoru pozostáva z dvoch krokov, získania binárnej verzie a jej presunutia na správne miesto.

Chinfusor má pribalenú svoju 64-bitovú verziu skompilovanú pre Ubuntu mate 20.04. Na tomto systéme ju úspešne používam a nemám s ňou problémy, no ako sa bude správať na iných distribúciach netuším.

Môžete si skompilovať svoju vlastnú verziu z pribaleného zdrojového kódu, ak máte nainštalovaný Rust, postup je nasledovný:

  • Otvorte terminál, a navigujte do priečinka so zdrojovým kódom (src/sd_chinfusor).
  • cargo build --release -q
  • Po kompilácii, ktorá by v ideálnom prípade nemala nič vypísať do konzoly, navigujte do priečinka target/release a zadajte príkaz chmod 755 sd_chinfusor

Ak Rust nemáte, odporúčam prečítať si jeho inštalačnú stránku, kde sa dozviete všetko potrebné.

Keď máte binárnu verziu enginu, musíte ju dostať na miesto, kde sú uložené moduly speech-dispatchera. Na mojom stroji je to /usr/lib/speech-dispatcher-modules, no u Vás môže byť cesta iná, preto odporúčam si ju najprv skontrolovať, cieľový priečinok by mal už obsahovať spustiteľné súbory začínajúce sa na sd_, ako sd_espeak-ng, sd_espeak a pod.

Keď ste si istý cestou, skopírujte Chinfusor na dané miesto ako root. Aktivujte si správcovské práva sudo -i, navigujte do priečinka so spustiteľným súborom a zadajte príkaz:

cp sd_chinfusor /usr/lib/speech-dispatcher-modules/sd_chinfusor\

Nezabudnite sa z rootu odhlásiť príkazom exit.

Následne sa odhláste a znova prihláste, aby ste začali nový session. Otvorte nastavenia Orci skratkou orca + medzerník a na karte hlas prezrite políčko Speech synthesizer. Ak medzi dostupnými možnosťami vidíte Chinfusor, tak gratulujem, práve ste nainštalovali rečový modul.

Nenastavujte ho však hneď ako predvolený, odporúčam prečítať si najprv nasledujúcu sekciu.

Uistenie sa, že chinfusor funguje správne

Ak ste už niekedy naprogramovali a vydali nejaký program, tak určite viete, že je veľký rozdiel medzi technicky fungujúcou aplikáciou, a programom pripraveným zniesť akéhokoľvek používateľa. Ľudia sú veľmi dobrý v nachádzaní všetkých možných ciest, ako niečo pokaziť, preto programátori vkladajú množstvo úsilia len do toho, aby boli ich aplikácie blbuvzdorné, a nebolo ich také jednoduché rozhodiť.

Chinfusor z tohto pravidla nie je výnimkou. Jednalo sa o program, ktorý som vytvoril pre svoje súkromné použitie, nakoľko som sa chcel učiť po Čínsky a nebola možnosť, ako to na Linuxe rozumne spraviť. Poznám každú čiarku jeho kódu a viem, ako s ním pracovať tak, aby všetko fungovalo ako má. Pretože sa jedná o celkom všeobecný problém a riešenie by mohlo pomôcť viacerým ľuďom, rozhodol som sa ho zverejniť, nech z neho profitujú aj ďalší. Nemám však čas a pravdupovediac ani chuť vytvárať milión opatrení iba proti ľuďom, ktorí nečítajú dokumentáciu a niečo tak pokazia.

Keďže je však fungujúca reč kritická pre nevidiaceho používateľa počítača, urobil som aspoň niekoľko krokov pre možnosť včasného odhalenia problémov, aby ste sa mohli uistiť, že všetko funguje tak ako má ešte pred tým, než nastavíte Chinfusor ako svoj predvolený rečový modul.

Po nainštalovaní Chinfusoru a overení jeho prítomnosti v zozname rečových modulov spustite aplikáciu speech-dispatcher-cli, pribalenú k enginu. Predkompilovaná verzia je opäť pre Ubuntu mate 20.04 64-bit, môžete si tiež skompilovať svoju vlastnú.

najprv, ak ho ešte nemáte, nainštalujte si balíček libspeechd-dev z predvoleného repozitára vašej Linuxovej distribúcie:

sudo apt install libspeechd-dev

Vďaka Nolanovi Darilekovi, ktorý spravil pre tento balíček výborný Rust wrapper, čím mi ušetril kopu práce s mojimi prvými Linuxovými programami.

Speech-dispatcher-cli môžete z jeho priečinka (src/speech-dispatcher-cli) následne skompilovať príkazom:

cargo build --release -q

a rovno aj spustiť:

cargo run --release -q

speech-dispatcher-cli je jednoduché terminálové rozhranie k speech-dispatcheru. Čokoľvek zadané je vyslovené. Ak vstup obsahuje =, vyhodnotí sa ako príkaz, možno takto nastavovať rôzne parametre reči ako napríklad použitý modul, jazyk, výšku, rýchlosť a podobne.

Zvoľte Chinfusor ako použitý modul:

module=chinfusor

A zadajte na vyslovenie text obsahujúci časti vo všetkých podporovaných abecedách, napríklad:

ahoj, 你好, привет

Mali by ste počuť ahoj, nihao a privět. Ak nie a nedostali ste žiadny výstup, skúste sa prepnúť na espeak-ng:

module=espeak-ng

A zadať

ahoj

Ak budete počuť ahoj, tak je pravdepodobne niečo zle s Vašou Chinfusor inštaláciou alebo konfiguráciou.

Čo robiť, ak sa náhle reč Orci zasekne počas používania Chinfusoru?

Nefungujúca reč je nočná mora každého nevidiaceho pracujúceho s počítačom, či už sa jedná o bežného používateľa, alebo skúseného programátora. Chinfusor má v súčasnosti celkom dobrú implementáciu protokolu používaného speech-dispatcherom a vstavané ochranné opatrenia by mali podobnému problému za každú cenu zabrániť. V najhoršom prípade, ak zadáte napríklad nefunkčnú cestu k rečovému modulu, engine crashne a nechá sa nahradiť iným modulom.

Stále však existujú spôsoby, ako sa k nemému stavu dopracovať, a to najme počas inštalácie či aktualizácie modulu. Ak po nastavení Chinfusoru ako predvoleného Orca syntetizéra zostanete bez reči, napríklad kvôli tomu, že ste nejakým zázrakom nastavili hlasitosť na -100, nemusíte panikáriť, dá sa z toho dostať aj bez zrakovej asistencie.

  1. Otvorte terminál, na Ubuntu mate 20.04 skratkou super + T, na predchádzajúcich verziách ctrl+alt+T. Fakt, že ste v ňom môžete skontrolovať stláčaním šípky vľavo a vpravo, mali by ste v oboch smeroch počuť pípanie.
  2. zadajte príkaz sudo rm /usr/lib/speech-dispatcher-modules/sd_chinfusor. Ak máte pocit, že ste pri písaní urobili chybu, odporúčam preventívne celý vstup zmazať a začať písať odznova, preklepy si tu veľmi nemôžete dovoliť.
  3. Ak nemáte v aktuálnom sessione rozrobené neuložené dokumenty či inú prácu, zadajte príkaz reboot. Po reštarte systému by mala Orca naskočiť s Espeakom, a vy mať príležitosť opraviť inštalačné chyby.

Ak Vám tento spôsob príde nespoľahlivý či ťažkopádny, môžem potvrdiť, že reálne funguje. Aspoň teda na mojom stroji fungoval, Chinfusor sa mi pár krát zasekol počas vývoja, a nikdy som nepotreboval zrakovú asistenciu, aby som to opravil.

Sandboxovanie rečových modulov

Keď sa nad tým tak zamyslíte, rečové moduly sú pre nevidiaceho veľmi citlivé programy. V dnešnej dobe už máme množstvo rôznych bezpečnostných kľúčov, či už heslá, no tiež čísla kreditných kariet alebo kódy pre obídenie dvojfaktorovej autentifikácie, aké má napríklad Gmail. Mať ich uložené na počítači je v zásade v poriadku, ak ich správne zašifrujete, no bez ohľadu na to, aká ochrana je použitá, v našom prípade aj tak raz skončia... v rečovom module, keď ich po dešifrovaní budeme chcieť čítať.

Okrem toho, rečový modul beží po celú dobu trvania sessionu, počas ktorej má množstvo času na vykonávanie iných záškodníckych aktivít, ako nahrávanie zvuku z mikrofónu, sledovanie web-kamery, čítanie našich dokumentov, histórie prehliadania, e-mailov, sledovanie schránky, a odosielanie všetkých údajov na vzdialené servery. O ransomwaroch či jednoducho mazačských vírusoch, ktoré zmažú, čo im príde pod proces už ani nehovorím.

Podobné obavy sa netýkajú ani tak modulov typu Espeak, ktoré sú súčasťou kontrolovaných repozitárov, no skôr modulov tretích strán, ktorých pôvod a zámery nie vždy možno tak ľahko overiť. Môžu byť kľudne open-source, no komu sa chce kontrolovať tisíce riadkov kódu obsluhujúcich úkon tak zložitý, ako syntéza reči?

Niekto by jednoducho povedal, že netreba inštalovať softvér z neznámych zdrojov. Lenže, tým sa môžeme ukrátiť o potenciálne výhodnú voľbu. Neexistuje iné riešenie, ktoré by tento problém bezpečne vyriešilo?

Existuje, a s Chinfusorom je jeho aplikácia veľmi jednoduchá. Firejail je sandboxovací nástroj pre Linux, ktorý ponúka silnú ochranu založenú na bezpečnostných funkciách kernelu všetkým druhom používateľov cez jednoduché profily, ktorými môžu špecifikovať celé prostredie pre každú aplikáciu.

Po jeho nainštalovaní:

sudo apt install firejail

Vám stačí vytvoriť profil pre podozrivý rečový modul. V ňom uvediete všetky reštrikcie, ktoré chcete aplikovať. Načo potrebuje offline syntetizér prístup na internet? Načo je rečovému modulu prístup k Vašim dokumentom? A načo by vôbec mal mať oprávnenie zapisovať na disk? Všetky tieto veci môžete pomocou Firejailu jednoducho zakázať. Bez internetového pripojenia je akákoľvek špionážna aktivita zbytočná, lebo nemá ako poslať späť údaje. Bez možnosti zapisovať na disk je akýkoľvek malvér prakticky neškodný, lebo nemá moc napáchať akúkoľvek škodu.

Po vytvorení profilu stačí už len v konfigurácii Chinfusoru zapnúť sandboxovanie pre daný modul, a s jeho najbližším štartom budete v bezpečí.

Poznámka: Ak už používate iné sandboxovacie technológie, odporúčam overiť si kompatibilitu s Firejailom, hlavne formát sandbox v sandboxe býva problematický.\
Poznámka 2, Ak sandboxovanie nepotrebujete, Firejail mať nainštalovaný nemusíte. Používa sa iba vtedy, ak je tak špecifikované v konfigurácii.

Ako aktualizovať Chinfusor

Keďže Chinfusor neobsahuje auto-aktualizačný mechanizmus, možno Vám napadla otázka, ako ho korektne aktualizovať, keď vyjde nová verzia. Osobne odporúčam nasledujúci postup:

  1. Stiahnite si najnovšiu verziu Chinfusoru z oficiálnej stránky.
  2. Ak je nová verzia len niekoľko čísiel popredu pred vašou aktuálnou, môžete si prečítať changelog a zistiť tak, čo sa líši a čo musíte urobiť, aby všetko správne fungovalo. Ak máte starú verziu programu a nechce sa Vám študovať všetky zmeny, odporúčam opätovne si prečítať sekciu inštalácie v dokumentácii, aby ste zistili, aký je aktuálny postup a ako sa líši od toho, čo ste zvykli robiť.
  3. Prepnite aktívny syntetizér v Orce z Chinfusoru na hocičo iné, napríklad espeak-ng.
  4. Nainštalujte Chinfusor.
  5. Po odhlásení sa a opätovnom prihlásení otestujte program pomocou aplikácie speech-dispatcher-cli, aby ste sa uistili, že všetko funguje.
  6. Prepnite váš aktívny rečový syntetizér v Orce opäť na Chinfusor.

Interná štruktúra Chinfusoru

Táto sekcia je určená hlavne vývojárom, ktorý by chceli či už upravovať alebo študovať kód chinfusoru. Ak do tejto skupiny nepatríte, kľudne prejdite na ďalšiu sekciu.

Keďže môj kód ako zvyčajne neobsahuje ani riadok komentára, snáď s výnimkou starých častí kódu, ktoré sa mi nechcelo zmazať, chcem tu aspoň stručne popísať jeho fungovanie. Celý projekt sa skladá z dvoch modulov, chinfusor a text_processor. Prvá sa stará o beh programu samotného, druhá obsahuje logiku pre parsovanie textu.\
O správu rečových modulov sa stará štruktúra Process, ktorá nesie stdin a asynchrónne vlákno číta výstup po riadkoch z stdout, pričom po prečítaní jedného pošle tento cez kanál do inštancie štruktúry, ktorá ho vytvorila. Aby nepotreboval každý proces vlastné vlákno a neplitvalo sa prostriedkami, všetko ide cez jednoduchý ThreadPool, ktorý je navrhnutý špeciálne za účelom parsovania výstupu z rečových modulov. Navonok má programátor k dispozícii synchrónnu metódu write a asynchrónnu metódu read_line, ktorá vráti Option podľa toho, či je nový riadok k dispozícii alebo nie. To sa hodí najme v prípade, že treba súčasne čakať na správu z modulu o skončení syntézy a čítať príkazy speech dispatchera, keby prišiel pokyn na zastavenie.\
MiniThreadPool zabezpečuje, že ľubovoľný počet procesov bude potrebovať len jedno vlákno, no za cenu, že čítanie musí byť manuálne aktivované metódov activate_asynchronous_reading_until_sd_end_signal. Ako jej názov napovedá, táto metóda spustí čítanie, ktoré bude trvať až do zachytenia značky konca rozprávania.\
Po spustení programu sa najprv načítajú moduly, potom sa spustí vlákno čítajúce vstup programu. Toto vlákno komunikuje so speech-dispatcherom a premieňa jeho príkazy na varianty enumerátora, ktoré následne posiela cez kanál späť do hlavného vlákna.\
Tam medzi tým začne cyklus, ktorý zachytáva príkazy speech-dispatchera synchrónne alebo asynchrónne podľa toho, či sa práve hovorí alebo nie, a následne vstup matchuje, ak nejaký prišiel.

Licencia

Chinfusor je open-source projekt, distribuovaný pod MIT licenciou. Tá v skratke hovorí o tom, že ja, Rastislav Kiss, ako autor tohto programu nenesiem nijakú zodpovednosť za akúkoľvek škodu priamo či nepriamo spôsobenú jeho používaním či vlastnením jeho kópie a celkovo za nič, čo s ním budete robiť. Máte právo slobodne ho kopírovať, upravovať či dokonca predávať za predpokladu, že uvediete autora pôvodnej verzie.

Celý text licencie, ktorá je taktiež pribalená k programu si môžete prečítať tu.

Sťahovaním a používaním tohto programu vyjadrujete súhlas s týmito licenčnými podmienkami.

Stiahnutie

Chinfusor vo verzii 1.2 si môžete stiahnuť z tohto odkazu.

Keyjutsu – Superschopnosti priamo vo vašich prstoch

mali ste pri práci s počítačom niekedy pocit, že sa určité úkony až príliš často opakujú? Alebo sú veľmi nepohodlné? Ruší Vás pri práci neustála potreba niečo prepínať, otvárať, zatvárať a robiť množstvo iných vecí pre dosiahnutie jednoduchého cieľa?
Nie ste sami. Pri nevidiacich sú tieto problémy ešte k tomu vystupňované tým, že je naša práca s Windowsom lineárna namiesto priestorovej. To znamená, že ak chceme vybaviť niečo v inom programe, ako práve používame, musíme sa doň prepnúť aj keby bol zrovna už otvorený, namiesto usporiadania dvoch programov vedľa seba alebo priameho kliknutia na ikonku, ako to môžu urobiť vidiaci.
človek tak popri práci strávi významný čas iba klikaním cez priečinky, prehadzovaním a hľadaním iných okien, hrabaním sa v kontextových a iných menu, a ďalšími zbytočnosťami, ktoré ho nie len že zdržujú, ale tiež odvádzajú pozornosť od skutočne dôležitých vecí.
Dokonca aj so znalosťou programovania, ktorá dokáže rôzne úlohy vykonať rýchlosťou blesku a bez väčších problémov vyvstáva otázka, ako jednoducho, efektívne a rýchlo počítaču vysvetliť, čo od neho v konkrétnej situácii chceme?
A presne tieto dva problémy rieši Keyjutsu.

Problémy klávesových skratiek

Klávesové skratky existujú v počítačoch už od nepamäti. Vo svojej základnej forme však vždy trpeli jednoduchým problémom. ktorou že to klávesou sa počas štartu systému spúšťa bios? F2? F8? F10? Aj F12 niečo robilo...
Prirodzenou reakciou preto bolo voliť skratky tak, aby niečo pripomínalo funkciu, ktorú nesú. Pre spustenie Nvda mnohí dôverne poznajú kombináciu ctrl + alt + N, ctrl + alt + J zas obľubujú používatelia čítacieho programu Jaws. Toto riešenie funguje, ale len veľmi obmedzene. Písmen je málo, a tak začnú dobré kombinácie rýchlo dochádzať.
Nie je to riešenie pre stovky úkonov, ktorými si možno uľahčiť život, skratiek bude vždy alebo nedostatok, alebo budú prakticky nezapamätateľné.
Keyjutsu preto prichádza s lepším spôsobom.

Sila klávesových sekvencií

Namiesto klávesových skratiek, Keyjutsu využíva klávesové sekvencie. Tie sa v tomto prípade skladajú z úvodnej skratky ctrl + K, a série písmen, vyvolávajúcich nejakú akciu.
Prečo je to dobré? Povedzme, že chceme mať skratku pre vytvorenie textového súboru v prieskumníkovi. Intuitívne by sme mohli použiť ctrl + N, ako nový. Lenže neskôr budeme chcieť vytvoriť Wordovský dokument, a ctrl + N tak už nebude stačiť. Môžeme Namiesto toho použiť skratky ctrl + T a ctrl + W. Problém je v tom, že nielen, že je ctrl + W už obsadená, no ak by sme chceli napríklad mať skratku pre časovač, ctrl + T ako timer by neprichádzalo do úvahy.
To však nie je prípad klávesových sekvencií. Pomocou nich môžeme jednotlivé úkony zaraďovať do kategórií, ktoré ich od seba jasne odlíšia.
Napríklad vytvorenie nového wordovského a textového dokumentu majú spoločný fakt, že vytvárajú niečo nové. Preto ich môžeme zaradiť pod písmeno N. Po stlačení ctrl + K tak napíšeme NT, zatiaľ čo ak by sme chceli spustiť časovač, napíšeme len T. Ak by sme chceli pri časovači viac funkcií, ako spustenie, pozastavenie, obnovenie, zastavenie, môžme T učiniť kategóriou, a vytvoriť sekvencie TS pre spustenie, TP pre zapauzovanie, TO pre oznámenie aktuálnej hodnoty a podobne. Všetko bez vymýšľania nových a nových kombinácií funkčných klávesov, a v ľahko zapamätateľnej forme.
Keby sme neskôr chceli klávesovú sekvenciu pre otvorenie Twittera, môžeme stále použiť písmeno t, ale v sekvencii s W, ako weby (WT). Pod W by mohli prísť tiež y ako youtube, F ako Facebook alebo G ako Google.
Keby sme neskôr potrebovali nejaké zásadné využitie pre N alebo T na začiatku sekvencií, mohli by sme využiť fakt, že časovač aj vytvorenie súboru sú funkcie, a oboje zaradiť pod F.
týmto spôsobom postupne vznikne celý strom úkonov, ktorého každá sekvencia vyjadruje podstatu danej akcie, od najvšeobecnejších charakteristýk až po tie najšpecifickejšie. To robí sekvencie ľahko zapamätateľnými, lebo budú mať spoločnú kostru stromu. Často používané sa človeku zautomatizujú, menej používané sa dajú vždy odvodiť. A čo je najlepšie, týmto spôsobom možno pokryť stovky akcií, bez jedinej kolízie s inými sekvenciami alebo programamy.

Keyjutsu a Autohotkey

Systém klávesových sekvencií nie je všetko pre účinnú automatizáciu, potrebný je tiež jazyk, ktorý umožní ľahko zadať, čo sa má pri ktorej funkcii vykonať. Tým je v tomto prípade Autohotkey, ktorý je známy svojou jednoduchosťou a flexibilitou, rovnako ako prívetivosťou pre ľudí, ktorí nemajú skúsenosti s programovaním.
Bol taktiež vyvinutý za účelom automatizácie, avšak nemá priamu podporu pre klávesové sekvencie, len klasické klávesové skratky. Sekvencie pritom možno dosiahnuť, robí to však kód podstatne neprehľadnejším a ťažšie upraviteľným. Keyjutsu preto využíva svoj vlastný spôsob písania skriptov priamo určený pre klávesové sekvencie. Napokon ináč neprehľadnú časť dogeneruje, a vytvorí výsledný autohotkey skript, ktorý možno spustiť.
Kvôli tomu je pred použitím nutná inštalácia Autohotkey z jeho oficiálnej stránky.
Ďalšou príjemnou vlastnosťou AHK je, že si celkom dobre rozumie s čítačmi obrazoviek, vďaka čomu vie fungovať aj vo webovom prostredí.

Stiahnutie

Keyjutsu 1.2.1 s assemblerom, niekoľkými predpripravenými funkciami a dokumentáciou si v prenosnej verzii môžete stiahnuť tu.
V prípade ďalších vydaní na tejto stránke pribudnú tiež odkazy na jednotlivé komponenty osve, aby bola možná flexibilnejšia aktualizácia.
Pred použitím sa výrazne odporúča prečítanie dokumentácie, obsahuje veľa užitočných informácií k vývoju aj už existujúcim funkciám.

Ride, editor pre nevidiacich programátorov

Nevidiaci programátori po celom svete zápasia s jedným problémom. Pokiaľ k tomu dodám ešte slovo Python, mnohí z vás už asi tušia, o čom je reč.

Nie je to len záležitosť Pythonu, no viacero programovacích jazykov používa pre rozlíšenie blokov kódu odsadzovanie, napríklad pomocou tabulátorov. Vidiaci si ho robili už predtým, kód bol pre nich tak prehľadnejší. Prečo sa teda babrať so zloženými zátvorkami, keď sa dá použiť niečo, čo programátori aj tak používajú?
To bola myšlienka týchto jazykov, a úspešne sa odzrkadlila do reality. Nie všetsi však z tohto prístupu majú radosť, nevidiaci obzvlášť nie.
Obzvlášť pri objektovo orientovanom programovaní sa stáva, že sa väčšinou ocitáte veľmi hlboko v programe, vnorením niekde v šiestom bloku kódu. Niet sa čo čudovať, jeden tabulátor si zoberie trieda, druhý vaša aktuálna metóda, a potom už len nejaký cyklus, v ňom dve podmienky, jedna vnorená v druhej a máte také odsadenie, že dovidenia. Stláčať 5, 6 či 7 krát tabulátor na každom novom riadku príde aspoň mne ako samovražda, a to ani nehovorím o prípadoch, kedy sa odsadenie zapisuje medzerami, tam obyčajne jeden tabulátor predstavujú štyri.

S vnáraním je však aj ďalší problém, nie len indentácia. Hlavne skúsenejší programátori mi dajú zapravdu, že čím zložitejší a dlhší kód píšete, tým sa stáva neprehľadnejším. O kóde, ktorý nie je váš už ani nehovoriac. Neraz sa stáva, že množstvo príkazov prakticky zahltí hlavnú kostru fungovania metódy, cyklu, či iného útvaru a programátor tak pre stromy nevidí les. Stráca potom zbytočne veľa času pokusmi zorientovať sa v kóde, ktoré môžu byť niekedy dosť problematické.
Práve tento problém vidiacim rieši odsadzovanie. Zrakom vedia potom odignorovať to, čo ich práve nezaujíma a zamerať sa na to, čo potrebujú. Keď vidia neodsadený kód našincov, nejeden ho označí za neprehľadný. Prečo teda nevyužiť rovnaký princíp akým pracujú oni aj pre nás, nevidiacich?
A práve na to je tu Ride.

Ako to funguje?

Ride je jednoduchý kódový editor s niekoľkými vychitávkami. Jeho hlavnou zbraňou je však schopnosť úplne programátora odrezať od odsadenia. Kým prezeráte kód pomocou neho, na žiadny znak tabulátora nenarazíte. Odsadenie je však naopak využité vo váš prospech. Ako?
Ride si dokáže na základe tabulátorov v kóde vypočítať, v ktorej úrovni programu sa práve nachádzate, a zobraziť vám len to, čo sa jej bezprostredne týka. Nič viac, nič menej. Pokiaľ ste vnorení v metóde, Ride vás nepustí mimo ňu, zobrazí vám jej podmienky, cykli a ďalšie útvary, no už vás nebude zaťažovať tým, čo je pod nimi. Nebudete teda musieť prechádzať cez blok kódu každej jednej podmienky, nebodaj cez bloky tých vnorených. Pokiaľ vás niektorý zaujíma, je tu magická skratka alt+šípka vpravo, ktorou dáte Ridu vedieť, že chcete vstúpiť do bloku kódu, na ktorého uvádzači sa práve nachádzate, a Ride vám vyhovie. Okolitá metóda zmizne, a vy budete vidieť už len ten jeden blok, ktorý bol predtým skrytý, no teraz ste sa doň vnorili. Keď ste prácu v ňom dokončili, skratka alt+šípka vľavo vás hodí najprv na začiatok bloku, a následne o úroveň vyššie, takže sa ocitnete opäť v metóde na mieste, kde ste predtým vstúpili do vnoreného bloku.

Môžete si celý kód predstaviť ako jeden veľký počítačový strom, v ktorom patrí všetko pod niečo - podmienka pod cyklus, cyklus pod metódu, metóda pod triedu a pod. A Ride vám dovoľuje s týmto prístupom aj upravovať, pokiaľ stlačíte enter na konci riadku s uvádzačom bloku kódu, napríklad podmienkou, a do tohto bloku nie ste vnorení, nový riadok sa spraví až pod týmto, na rovnakej úrovni odsadenia, takže môžete písať súvisle a vôbec sa nestarať o to, že preskakujete desiatky, možno stovky riadkov kódu. No a pokiaľ chcete nový blok vytvoriť, nie je nič jednoduchšie, jednoducho stlačíte shift+enter, a nový riadok sa vytvorí hneď pod tým aktuálnym, pričom ride už vie, že má zvíšiť úroveň odsadenia a tak aj urobí, pričom ste do nového bloku okamžite vnorení, takže sa naň môžete plne sústrediť a ani nepomyslieť na nejaké tabulátory. Kopírovanie, vystrihávanie, prilepovanie či mazanie celých blokov je samozrejmosťou. Programovanie v Pythone sa tak stáva veľmi príjemnou záležitosťou. Len si to vyskúšajte a posúďte samy.

Stiahnutie

Na záver mi už neostáva iné len spomenúť, že Ride samotný si môžete stiahnuť z tohto odkazu.

Upozornenie, program je napriek slovenskej stránke kompletne, vrátane dokumentácie a licenčných podmienok, v angličtine. S prekladom sa zatiaľ nepočíta. Táto okolnosť nijako nebráni jeho využívaniu na slovenských systémoch so slovenskými čítačmi obrazovky.

SWPK – keď zlyhá Windows prieskumník

Určite ste to už neraz zažili. Na niečom zapálene pracujete, ste uprostred pracovného ruchu keď sa náhle počítač začne správať čudne. Najprv len spomalené reakcie a neschopnosť prepnúť sa do iného okna, neskôr smrteľné kŕče čítača obrazovky až jeho definitívny skon a zamrznutie celého systému. Nič nereaguje, nič sa nedá robiť, pomôže až reštart počítača. Smola, milý používateľ. Toto je typický scenár priebehu pádu programu Windows explorer. Ten je zodpovedný v systéme napríklad za zobrazenie pracovnej plochy, obsluhovanie štart menu či dokonca za správu klávesy Windows. Je preto len pochopiteľné, že ak v tejto súčasti operačného systému Microsoft Windows dôjde k nejakej chybe, bude to mať fatálne následky na beh počítača. Na našich strojoch je zodpovedný za temer všetky ich pády, a nie je ich málo. Spôsoby obrany sú rôznorodé. Vidiacim stačí jednoducho kliknúť na tlačítko reštartovať v okne, ktoré na nich automaticky vybehne s oznámením, že Windows prieskumník prestal pracovať, nevidiaci to však majú horšie. Čítače obrazovky toto okno automaticky nedetekujú a prepínanie okien je počas tohto scenára prakticky vyradené, je preto veľký problém dostať sa k nemu. Rovnako tak sú tieto postihované pomerne silnými kŕčmi, ako už bolo spomenuté, preto je vykonanie akejkoľvek operácie veľmi zdĺhavé a namáhavé. V prípade čítača obrazovky Jaws bol náš prvý nápad stláčať dokola jaws+medzera, o a w, až kým sa screenreader nespamätal natoľko, že vykonal ocr, po čom sa niekedy dalo nájsť tlačítko reštartovať. To bolo však veľmi zriedkavé a Jaws zväčša vypovedal službu skôr, než sa podarilo niečo zmysluplné s ním urobiť. Druhá varianta bola manuálne kliknúť na tlačítko štart v ľavom dolnom rohu, po čom sa fokus občas preniesol na požadované tlačítko. Toto riešenie si ale taktiež nenašlo prílišné uplatnenie, pretože nebolo stále. V kombinácii s faktom, že bolo aj už prvé spomínané riešenie bolo ťažké rozhodnúť sa pre jedno z nich a čas neúprosne tikal. Tretia metóda bola dostať sa skratkou ctrl+shift+esc do správcu úloh, a explorer zabiť odtiaľ. Len že, vyšla najavo nepríjemná skutočnosť. Aj správca úloh mal vo zvyku pomerne slušne mrznúť, namiesto procesov sa v ňom zobrazovala biela plocha, skrollovanie nefungovalo, čítače už vôbec nie. Zachrániť systém týmto spôsobom sa podarilo len niekoľko krát. Navyše, možno to je len subjektívny dojem, no čím dlhšie bol počítač používaný, tým kratšia doba ubiehala od prvých príznakov problémov Windows prieskumníka k bodu, z ktorého už nebolo návratu. Keď sa zistilo, že ani vidiaci nemajú záchranu istú, pretože tlačítko reštartovať sa rovnako stávalo z času na čas nedostupným, povedali sme si: "A dosť!"

Stupid windows programs killer

Následkom toho vznikol projekt SWPK, Stupid windows programs killer, v preklade zabíjač hlúpych windows programov. Jedná sa o nenáročnú utilitu, ktorá beží na pozadí a slúži len na to, aby na stlačenie klávesovej skratky alt+shift+k zabila explorer.exe. Jej prvá verzia bola dokončená už dávno, no zákon schválnosti spôsobil, že kým bežala, Explorer nie a nie dostať sa do problémov. To trvalo až do dneskajšieho dňa, kedy po prvý krát vyhodil svoju typickú hlášku, a bol tak priestor SWPK otestovať. Musíme s uspokojením konštatovať, že svoju prácu odviedol skvele. To je zároveň aj dôvod, prečo sme sa rozhodli zverejniť ho.

Zatiaľ len beta

Aby nedošlo k omylu, nevieme o žiadnych chybách v súčasnej verzii SWPK, ktoré by ho robili rizikovým pre každodenné využitie. Ako beta je skôr označený pre to, že ešte nie je plnohodnotne spracovaný. Tým sa myslí inštalátor, automatické spúšťanie po štarte systému Windows, možnosť zmeny klávesovej skratky či ukončenia programu. všetky tieto vymoženosti v ňom zatiaľ nenájdete. Rovnako tak chýba aj možnosť definovať si v jednoduchom zozname, ktoré programy sa majú pozabíjať, nakoľko nemrzne len prieskumník, častokrát sa hodí zatočiť aj s inými aplikáciami. Žiaľ, nemáme dostatok času pre hlbší vývoj, preto zverejňujeme súčasnú verziu, aby sme zistili, ako si bude počínať na iných počítačoch. Pokiaľ budú ohlasy pozitívne a aplikácia užitočná, možno sa k vývoju vrátime, až to bude aktuálne.

Čo robiť, pokiaľ bol omylom zabitý Windows prieskumník a teraz chýba pracovná plocha?

Ak ste začiatočník, určite nepanikárte, všetko sa dá ľahko vrátiť do pôvodného stavu bez nutnosti reštartovať počítač. Nasledujúci postup je platný pre počítače s operačným systémom Windows 7:
1. stlačte klávesovú skratku ctrl+shift+esc, mal by sa otvoriť správca úloh.
2. Prejdite na kartu aplikácie, mal by na nej byť zoznam práve otvorených okien.
3. nájdite tlačidlo Nová úloha, potvrďte ho a do novoobjaveného políčka napíšte "explorer", bez úvodzoviek.
4. potvrďte klávesou enter, teraz by vám už mal prieskumník fungovať tak, ako predtým.

Nutno zároveň podotknúť, že pokiaľ ste zabili prieskumník v jeho zaseknutej fáze, malo by po ňom ostať príslušné okno aj s tlačítkom reštartovať, teraz už ľahko dostupné. Po jeho potvrdení sa prieskumník opätovne naštartuje, nie je preto nutný postup uvedený vyššie.

Upozornenie

Upozorňujeme všetkých potenciálnych aj súčasných používateľov SWPK rovnako na isté riziká spojené s jeho používaním, či skôr so situáciami, v ktorých operuje. Akonáhle sa niečo na počítači začne kaziť, vzniká priestor pre rôzne chyby a problémy. Výnimkou nie sú ani problémy s prieskumníkom Windows. Náš program sám o sebe nie je nebezpečný, nemôžme však zaručiť, že počítač na jeho použitie nezareaguje svojským spôsobom. Pokiaľ by sa tak stalo, nie je to problém SWPK, no rovnaká situácia by nastala pri pokuse o reštart zariadenia. Autor programu pre to nie je zodpovedný za nijaké poškodenie v krízovej situácii, a používateľ koná na vlastnú zodpovednosť.

Stiahnutie

Zaujala vás ponuka programu SWPK? Pokiaľ áno, môžete si ho stiahnuť odtiaľto.

Nové sekcie, august v znamení rozvoja, máme aj RSS

Náš web prešiel v posledných mesiacoch pomerne búrlivými zmenami. Začalo to opravou origami postupu pre zloženie sampanu, pokračovalo vytvorením dvoch nových sekcii - jednej pre preklady, druhej pre tutoriály - a zmeny sa zavŕšili dokončením sekcie s audioukážkami.

Z obsahovej stránky bol uplynulý mesiac rovnako pozitívny, zverejnená bola dvojica prekladov pre rozšírenia hry Sound RTS, dvojica audioukážok a jeden kurz programovania na pokračovanie, ktorý by mali zvládnuť aj úplní začiatočníci. Ďalšie novinky máme už pripravené, čakajú len na zverejnenie, máte sa teda na čo tešiť.

No a aby ste všetky novinky dostali rýchlo a efektívne, pridali sme do pätičky stránky odkaz na náš RSS kanál, ktorý môžete zaradiť do svojej čítačky, a dostávať tak všetok náš obsah hneď po vydaní bez toho, že by ste museli neustále kontrolovať náš web.

A nezabúdajte, v prípade akýchkoľvek návrhov nás neváhajte kontaktovať, sme tu pre vás.

Tým Rastisofts labs

Sound RTS, stratégia v reálnom čase

Nie je to prvý krát, čo na tomto webe zaznelo meno Sound RTS, komplexnej zvukovej realtime stratégie, dosiaľ jedinej svojho druhu. Jedná sa o sofistikovaný titul, ktorý vám umožní postaviť si na sieťovej mape vlastnú bojovú infraštruktúru, vybudovať opevnenie, naverbovať jednotky a zmerať si svoje sily so súperom. Na svoje si pritom prídu milovníci najrôznejších druhov vojen, nakoľko je možné zahrať si túto hru ako vo verzii s pešiakmi, lukostrelcami, ritiermi a katapultmi, tak aj s modernou výbavou tankov, delostrelectva, letectva a pechoty, či až futuristickým designom bojových lodí a klonov hviezdnych vojen.
Po publikácii dvojice prekladov k rozšíreniam tejto hry sme dostali otázku od čitateľa, ako sa vlastne táto hra hrá. Chceli sme podať čo najlepšiu odpoveď, preto sme dnes s Tissmanom zasadli proti sebe v multiplayerovom zápase a pokúsili sa vám demonštrovať základné princípy hrania, rovnako ako aj strategizovania a taktizovania, ktoré so sebou obnáša v klasickej verzii bez módov. Hrali sme s verziou 1.2 alfa 10 a odohrali sme asi hodinový zápas, v ktorom krásne vynikli rozmanité možnosti Sound RTS.
Pokiaľ si teda aj vy chcete vypočuť náš vzájomný duel, stiahnite si audioukážku z tohto odkazu a započúvajte sa do zápletky, ktorú sa nám podarilo na mape z5 pre dvoch hráčov vytvoriť.

Tactical battle, ťažká stratégia, ešte ťažšia taktika

Ian Reed je dobre známe meno v komunite priaznivcov audiohier. Predovšetkým zrejme pre jeho plugin umožňujúci preklad japonských hier v reálnom čase, nemenej známy titul od neho je však aj Tactical battle. Jedná sa o strategicko-taktickú hru, v ktorej máte na mape v podobe šachovnice rôznych rozmerov postavy hrajúce za váš tým, ktorých úlohou je zliqidovať súpera skôr, než ten zničí ich, využívajúc pritom bohatú paletu schopností, ktoré môžu pri boji aplikovať. Jednotlivé schopnosti pritom predstavujú taktickú stránku hry, zatiaľ čo rôzne mapové prvky ako steny, rieky či mosty alebo brody jej dávajú strategický nádych. Systém jej fungovania je zároveň konštruovaný tak, že jednotlivé mapy, postavy, situácie a príbehy k nim tvoria samotní hráči, takže tu je na výber hneď z niekoľko veľmi dobre spracovaných máp, ktoré vás zabavia na dlhé hodiny. Najlepšie o tom ale asi vypovedá moja audioukážka, kde som pri riešení pomerne jednoduchej pozície strávil pol hodinu času. No veď posúďte samy.
Hru samotnú si môžete stiahnuť tu, k audioukážke sa môžete zas dostať na tomto odkaze.

Programovanie v BGT, aj pre lamy

Ahoj, tu Rasťo Kiss. Vždy som sa sťažoval, že v komunite nevidiacich je len veľmi slabá osveta o programovaní a technike v podobe kurzov, táborov, no i obyčajných návodov a tutoriálov. Za svojím tvrdením si stojím, v súčastnosti je to fakt oničom. Ja som mal však vždy tendenciu veci meniť, nie len ich kritizovať, a preto, pokiaľ máte o to záujem, sa vás pokúsim v niekoľkých desiatkach lekcii naučiť všetky základy programovacieho jazyka BGT, ktoré správny programátor pre svoju prácu potrebuje.

Pre koho je tento kurz dobrý?

Pre špičkových matematikov, technikov či iných géniov? Ani jedno. Teda, môžu si samozrejme tutoriál prečítať a BGT sa naučiť, no nie je určený primárne im. Programovanie v jazyku BGT zvládne aj úplný začiatočník. Že ste mali na vysvedšení trojku z matiky? To vôbec nevadí, ako som už písal, programovanie nie je len záležitosť matematikov, je to pre všetkých. Rovnako ako hocikto dokáže nainštruovať človeka, čo má robiť, tak hocikto dokáže dať príkazy stroju, len musí poznať jeho reč, a tú sa vás pokúsim v niekoľkých lekciách naučiť.

Na čo sa BGT hodí?

BGT je jazyk určený primárne pre vývoj audiohier. Pokiaľ sa teda radi hráte, je tento kurz i jazyk práve pre vás. Sám budem na hrách demonštrovať niektoré základné princípy programovania, je to až prekvapivo výstižné a účinné. BGT však využijete aj pri bežnej práci pre vývoj rôznych utilít, ako rozšírenú kalkulačku či nejaký pripomienkovač. Na toto ale už BGT nie je tak úplne stavané, preto časom narazíte na limity. Nemusíte však zúfať, z jedného dobrého dôvodu.

Počul som, že BGT je slabý programovací jazyk, čo je na tom pravdy?

Nič aj všetko, podľa toho, ako sa na to pozeráte. Pokiaľ chcete vyvíjať audiohry, BGT vám na 90% titulov bude bohato stačiť. Je rýchli, svižný, ušetrí vám zháňanie knižníc a programovanie wrapperov už predpripravenými metódami na všetko, čo pri vývoji hier budete potrebovať. A pokiaľ vám aj predpripravený arzenál funkcii nestačí, stále je tu dobrý dôvod, prečo sa učiť BGT. Jeho syntax je totiž založená na programovacom jazyku C++, ktorý je jedným z najrozšírenejších a najrýchlejších programovacích jazykov súčasnosti, čiže sa kedykoľvek nie je problém odraziť do tohto prostredia a ďalej sa rozvinúť do oblasti, ktorá vám pri BGT chýbala, zmenu si zo syntaktického hľadiska temer nevšimnete. Takže mojím odporúčaním je, že pokiaľ ste ešte do tajov programovania nikdy nenačrely, je dobrý nápad začať práve s BGT, v zjednodušenej forme vás naučí všetkým potrebným princípom, ktoré potom už bez problémov aplikujete v ktoromkoľvek inom programovacom jazyku.

Ako budeme fungovať?

Rozhodli ste sa dať tomu šancu? Výborne, to ma teší. Objasním vám teda, akým spôsobom budeme vlastne fungovať. Základná časť by mala mať niečo okolo 25 lekcii, ktoré vás prevedú základmi, vrátane objektovo orientovaného programovania oop. Prvých desať lekcii, nakoľko sú pomerne nudné, lebo vysvetľujú nutnú teóriu bude vychádzať tempom jedna za týždeň. Po zvládnutí týchto 10 lekcii už nadobudnete akú takú programátorskú zručnosť a vaše možnosti sa pomerne slušne rozšíria. Preto aj ďalšie lekcie budú o niečo náročnejšie, nie logicky no časovo, prejsť ich vám bude trvať dlhšie, než tých predchádzajúcich 10, preto budú aj vychádzať v pomalšom tempe, zhruba jedna za dva týždne. No a napokon, skoro každá lekcia obsahuje aj domácu úlohu, ktorú si buď môžete spraviť a vyhodnotiť samy, pokiaľ však chcete, a odporúčam to predovšetkým začiatočníkom váš kód podrobne rozpracovať a ohodnotiť, neváhajte mi vašu prácu poslať na adresu:
rastisoftslabs@gmail.com
a analýza vás neminie, pokiaľ sa teda váš mail kumne dostane. Podobne, pokiaľ by ste mali záujem niečo dovisvetliť, prípadne by bol s niečím pri programovaní problém, aj s týmto vám rád pomôžem, tých pár erorov naviac ma nezabije.
No a na záver, nepredpokladám to síce, no pokiaľ ste začiatočník a zažrali by ste sa úplne do programovania, chceli sa dostať aj nad rámec tohto tutoriálu, kľudne aj programovacieho jazyka, tiež sa ozvite a môžeme sa spojiť na Skype, pričom môžme prediskutovať rôzne programovacie jazyky, techniky, platformy a podobné veci, čo len vás bude zaujímať. Osobne ovládam BGT, C++, Delphi, Javu, Python a do istej miery aj Javu pre Android, čiže pole pre debatu je naozaj široké.

Teším sa na vaše práce, no hlavne: programovaniu zdar!

R.K.

Dostupné lekcie

1. Úvod
2. Helloworld
3. Premenné
4. Matematické operácie
5. Programovanie, trochu ľudsky
6. Vetvenie
7. Podmienkové operátory
8. Cykly
9. Switch
10. Break a continue
11. Vstup od užívateľa