Čtečka elektronických knih jako úsporný programátorský monitor

- v následujícím článku naleznete nejen informace o používaných zařízeních, ale také praktické zkušenosti s mojí nejoblíbenější linuxovou distribucí, programovacími jazyky a vývojovými prostředími

PB sestava

1. Úvod a co bych si přál


Spousta z nás, nadšenců do počítačů, zná ten nepříjemný pocit únavy očí po delší práci. Ať již koukáme do obrazovky našich notebooků nebo do externího monitoru, pro oči se nejedná o vůbec příjemnou záležitost a samy si důrazně řeknou, kdy mají dost a potřebují se vyvenčit. Především při programování a zkoumání zdrojového kódu nebo při čtení textu je to znát a právě druhou možnost parádně řeší elektronické čtečky s černobílým displejem. Zde jsem se inspiroval, myšlenka využít toto zařízení jako monitor není nová, na fórech lze nalézt spoustu dotazů a pořídit si přímo e-ink monitor již dnes možné je. Při zkoumání internetových vod jsem narazil na zajímavý čínský Dasung, který si však v ČR nekoupím a jeho cena rozhodně není zanedbatelná. Sony již vydal svůj tablet DPT-CP1 nebo RP1 s podobným displejem, ovšem i podobnou cenou a jedná se o zařízení s Androidem pro mě jen málo vhodné.

Jsem již dlouholetým nadšencem do Linuxu, Android je dnes jistě skvělý systém podobně jako Windows a své místo na trhu i u uživatelů jistě má, pro mě však dělaný není. Moderní skutečně použitelný linuxový tablet nebo handheld je stále otázkou budoucnosti a na chytrý telefon s tímto OS si budeme muset ještě nějaký čas počkat. Já mám rád funkční minimalizmus a jedno zařízení pro konkrétní věc, takže spokojeně využívám starší armádní stroj Panasonic Toughbook CF-30, Raspberry PI první generace, klasický fotoaparát a hloupý mobilní telefon. K této energeticky úsporné kombinaci mi chybí už jen ruční GPS navigace a právě šikovný displej, který bude skutečně využitelný. Pro Raspberry vyrábí podobné malé monitory např. společnost Waveshare, jsou to však spíše hračky pro mojí práci nevyužitelné. Klasický vhodný e-ink monitor jsem tedy nenalezl, ostatní programátoři mě také varovali, že tyto nejsou určeny pro často se měnící text a pro vývojařinu nejsou vhodné. Přitom je zajímavé, že elektronické čtečky nemají problémy se zobrazením obrázků a listování mezi jednotlivými stranami probíhá překvapivě rychle, takže zde nějaká možnost určitě bude.

Dlouho jsem pátral a nalezl pěkný popis nadšence do Raspberry, který jako displej využívá starší Amazon Kindle.

https://www.meccanismocomplesso.org/en/kindleberry-ultraportatile-economico-con-kindle-e-raspberry-pi/

A podle jeho popisu je velmi spokojen, jen se neobešel bez malého hackování. Proto jsem položil dotaz jednomu z českých prodejců, zda nemá s podobnou úpravou zkušenosti, dostal jsem však hrdou a nesmlouvavou odpověď, že se hackováním čteček nezabývá a po podobné legraci samozřejmě ztrácím záruku. Já bych nic takového nedělal, pokud by zde byla jiná možnost, takže mi nezbývalo nic jiného, než poděkovat za poučení a poohlédnout se jinde. A právě v té době jsem narazil na nesmírně zajímavý projekt hostovaný na githubu s názvem Remoteink:

https://github.com/borzunov/remoteink

Šikovný ruský autor připravil klient/server aplikaci inspirovanou klasickým SSH nebo VNC s tím, že klientskou část umístím do čtečky typu PocketBook a serverovou do svého linuxového desktopu. Hurá, přesně to jsem hledal. Prozkoumal jsem Pocketbooky a podobně jako u Kindle kontaktoval technickou podporu, zda má s podobnou aplikací bližší zkušenost. Slušně mi odpověděli, že na něco takového se ještě nikdo neptal a tuto úroveň podpory neposkytují. Protože se však v tomto případě o žádný hack nejedná, pouze o prosté nakopírování jednoho souboru, popřáli mi hodně zdaru. Ja, ja, jsme to mi linuxoví ptáci divná stvoření a naše choutky nikoho zrovna dvakrát nezajímají. Software se mi ovšem velmi líbil, k dispozici je velmi pěkně zpracovaná dokumentance a postup zprovoznění pro Debian, Fedoru i Arch. Klientskou část jsem vyzkoušel na Archu i Debianu, kde se spustila bez sebemenších problémů, takže jsem si řekl, že do akce půjdu, nakonec pokud se nezdaří, čtečku využiji při čtení knih nebo programátorské dokumentace. Rozhodl jsem se pro typ PocketBook Touch Lux 3,abych mohl pracovat i v noci nebo venku za šera. Možnost využít čtečku jak s notebookem, tak s malým Raspberry je velmi lákavá a světe div se, vše se podařilo doslova na první pokus.

Programování je mým koníčkem, zajímám se o Freepascal, TADS 3 pro tvorbu textových her, C, C++, Python, Go, JS nebo Javu a většinou nepotřebuji výkon ani moderní veliká IDE, i když i ta mají svá opodstatnění a rozhodně se nebráním jejich alespoň vyzkoušení. Nejvíce mě ovšem zaujala kombinace C a C++, které se i přes své stáří neustále vyvíjí, což dokazují standardy C17, C18, C++17 a připravovaný C++20. S radostí v nich tvořím konzolové i grafické aplikace, nadšeně zkoumám linuxové a unixové jádro a nečekaně testuji webové frameworky https://kore.io/ nebo http://www.treefrogframework.org/ . Zajímavé je i propojení toho nejlepšího z více světů, např. kombinace C a Python zvaná Cython je jejím nádherným příkladem. Jazyky přicházejí a odcházejí, tyto ovšem zůstávají a tedy další důvod navíc se jimi hlouběji zabývat. Nakonec to nejdůležitější je správně programátorsky uvažovat, syntaxe je více méně podobná a to chce čas, který nyní již mám a mohu pronikat stále více do hloubky.

 Po delším zvažování jsem zakoupil ještě jedno Raspberry PI Zero, které v kombinaci s mým oblíbeným Archem, rozšiřujícím USB hubem a čtečkou představuje ideální, snadno přenosnou a energeticky nenáročnou sestavu bez problémů napájenou kdekoliv v přírodě pomocí powerbanků. Všechny části jsou v případě poruchy bez problémů zaměnitelné a právě Raspberry mě velmi příjemně překvapilo svojí odolností. Nevydrží sice prudký déšť nebo sníh jako armádní notebook, nevadí mu ale teploty pod nulou, takže zde jsem jako nadšenec do venkovní práce omezen jen málo.

Ještě malá poznámka na závěr tohoto úvodu - článek připravuji pro čtenáře, kteří si jej přečtou se zájmem nebo dokonce o podobném řešení uvažují. Nenajdete zde žádné hanění, ani nadšené přehánění "jediného správného řešení", které stejně neexistuje. Stejně jako nic na světě není černobílé, ani můj postup není ideální a jako vše jiné se i on vyvíjí. Linux mi mnohé dal a tento článek je jednou z možností jak přispět snad i zajímavou informací komunitě. Popsané téma není žádné teoretizování, vše jsem si zprovoznil a skutečně využívám. Je zajímavé, co vše lze s Linuxem a s Raspberry provádět, i např. výše uvedená GPS navigace by měla jít zprovoznit, což mě jako šťastného majitele hloupého, ale skutečně dva měsíce bez nabíjení použitelného telefonu velmi zajímá. Takže se necháme překvapit, co nás v budoucnu čeká a buďme rádi, že si můžeme vybrat opravdu z celé palety řešení, i když některá drobet skřípou.

 

2. Výběr distribuce


Železo bychom tedy měli a nyní přijde další stejně důležitá a zajímavá část. Vyzkoušel jsem nespočet linuxových distribucí a žádnou stejně jako cokoliv jiného na světě nepovažuji za horší či lepší. Nejvíce mým potřebám vyhovuje Arch a Debian/Raspbian Linux, oba jsem na Zeru vyzkoušel a nakonec se rozhodl postavit celé řešení na Archu. Této distribuce jsem se zpočátku, tedy již před mnoha lety, trochu bál, informace o jeho nestabilitě jsem četl mnohokrát, velmi mě však oslovila dokumentace, která opravdu čtivým a to lidsky čtivým způsobem popisuje nejen samotný systém, ale i rozšiřující balíčky a to mnohdy v udivující hloubce:

https://wiki.archlinux.org/

Od té doby, co se učím programovat, u mě nesmírně vzrostla důležitost dokumentace a pokud mám možnost srovnání s např. velmi kladně hodnocenými manuálovými stránkami zajímavého systému OpenBSD, mě osobně přijde ta u Archu přeci jen přístupnější, i když parádní jsou jistě obě. S nestabilitou se za léta používání setkávám pouze výjimečně, cca 2x za 5 let se mi některý z programů po aktualizaci rozbil, v obou případech však stačí chvíli počkat a oprava je na světě, případně lze položit dotaz na fóru. Arch na své Wiki velmi zajímavě píše o stabilitě systému, chci-li jej např. využívat jako server, jsou zde mnohá doporučení, které repozitáře využít a čeho se vyvarovat, nejedná se tedy pouze o destopové řešení.

https://wiki.archlinux.org/index.php/System_maintenance
https://wiki.archlinux.org/index.php/server

Překvapil mě obrovský záběr balíčků v samotné distribuci i parádní uživatelský repozitář AUR, který sice vývojáři ne zrovna doporučují využívat, velmi často se s ním však setkáte i na wiki, takže jej s radostí kvituji i já. A k nalezení jsou zde opravdu zajímavé kusy, např. účetnictví Flexibee, ERP systém Odoo nebo rozsáhlá hra DarkMod pokud vím nejsou u jiných distribucí v repozitářích dostupné, hmm, že by systém i pro firemní využití? Pro programátora je Arch opravdovým požehnáním, spousta rozšíření k jazykům, kompilátory, dokumentace a to vše často v nejnovějších verzích je velmi lákavé. Systém funguje opravdu svižně a zvykl jsem si na něj, takže jej využívám na notebooku i Zeru k plné spokojenosti a jsem vděčný autorům, že jej na tolika podporovaných platformách, s takovým množstvím balíčků a většinou aktuální dokumentací dokáží udržovat.

 

 

PB MC

 

3. Praktická část - server a klient


Vše je připraveno a můžeme vesele instalovat. Začneme serverovou částí, tedy instalací distribuce Arch ARM na Raspberry PI Zero a zprovozníme démona remoteinkd. Zde je malá nepříjemnost, Zero nemá ethernet, takže jedna z prvních věcí hnedle po instalaci bude jeho zprovoznění.

Na stránce:

https://archlinuxarm.org/platforms/armv6/raspberry-pi

je parádní návod, díky němuž lze nainstalovat systém na SD kartu a následně jej např. s pomocí klasického monitoru spustit. Pokud je vše Ok, vrhneme se na wifi. Využívám následující návod, cituji:

--------------------------------------------------------------------------------------------------
I have just set up the Pi Zero W with wifi, it works without issues so far. I set it up with
https://wiki.archlinux.org/index.php/Netctl
Basicly I copied the
/etc/netctl/examples/wireless-wpa
file to
/etc/netctl/wireless-wpa
modified it and started the daemon via
$netctl start wireless-wpa
--------------------------------------------------------------------------------------------------

Výborně, já používám skrytou síť, takže jsem upravil soubor wireless-wpa:

Security=none

ESSID je X

a zakomentoval:

Key=

Hidden=yes

po zadání netctl start wireless-wpa síť funguje, pro spuštění pokaždé zadávám netctl enable wireless-wpa

- samozřejmě se démon netctl dá spustit po startu pomocí systemctl, to ale já nechci, protože Raspberry bude sloužit
jako přístupový bod. Internet v takovém případě není funkční, mohu však zastavit démona create_ap popsaného
níže v textu a spustit netctl, případně využít externí wifi dongle a využívat internet pomocí stejného příkazu,
jen síťové zařízení nebude wlan0, ale wlan1. Snažím se však připravit systém tak, abych mohl pracovat offline
a vše odeslal např. na git až později, zde záleží na osobních preferencích a momentálních potřebách.

Poté zadám:

pacman-key --init
pacman-key --populate archlinuxarm

pacman -Syy
pacman -Syu

a nyní mohu instalovat potřebné balíčky. K dispozici je klasický pacman, protože však využívám i AUR, doporučuji
nainstalovat i nějakého pomocníka, yaourt se již delší dobu nevyvíjí, takže jsem přešel na yay

Výborně, nejobtížnější část je za námi. Nyní si zprovozníme grafické prostředí. Jen poznámka, XFCE už je docela náročné,
s dlaždicovými manažery se zatím mnoho nekamarádím a zajímavý EXWM si nechám na později. Využívám tedy osvěčené a lehké LXDE,
pokud se časem přestane vyvíjet, mohu přejít na LXQT nebo jakékoliv jiné, výběr je obrovský:

Nainstaluji balíčky:

xorg xorg-xinit xf86-video-fbdev lxde

a do .xinitrc vložím řádek exec startlxde, LXDE nyní po startu automaticky nabíhá

Paráda, nyní bych rád zprovoznil Zero jako přístupový bod, abych mohl čtečku připojit i v temném lese nebo stepi na konci světa
bez internetu:

https://wiki.archlinux.org/index.php/software_access_point

z návodu nevyužívám sekci NAT, upravuji soubor create_ap.conf

následně stačí zadat:

create_ap --config /etc/create_ap.conf

a zkontrolovat pomocí ip addr adresu přístupového bodu

Je-li vše v pořádku, pomocí systemctl enable povolím službu create_ap i po startu systému

Nyní již stačí zprovoznit démona remoteinkd. Stačí postupovat podle návodu:

https://github.com/borzunov/remoteink

a výsledkem je spuštěný démon remoteinkd. Ten potřebuji stejně jako přístupový bod automaticky spustit při startu,
abych se mohl rovnou připojit pomocí čtečky a pracovat:

Pomocí crontab se mi nepodařilo spouštěcí skript remoteinkd spustit, takže jsem vytvořil soubor /home/alarm/skripty/remoteinkd.sh
s obsahem sudo remoteinkd start

ke spuštění je třeba sudo, proto jsem odkomenoval v /etc/sudoers

yourlogin ALL=(ALL) NOPASSWD: command_here

do .bashrc jsem vložil:

/home/alarm/skripty/remoteinkd.sh

a do ./config/lxsession/LXDE/autostart ještě řádek:

@xterm

Tím je systém připraven, nyní pomocí pacman nebo yay mohu doinstalovat vše potřebné, např. balíčky mc, geany, zeal nebo frobtads.

S klientem je to jednodušší, podle návodu stačí čtečku připojit pomocí USB kabelu k počítači a zkopírovat jediný soubor remoteink.app do adresáře applications. Tento lze následně z hlavní nabídky spustit, já vybírám zobrazení na šířku, zadávám IP adresu přípojného bodu, který běží na Raspberry, zadám heslo a stisknu Connect. Po chvíli se objeví grafické prostředí LXDE se spuštěným terminálem a informací, že démon remoteinkd je spuštěn. Myš zde opravdu nemá příliš význam, je možné jí připojit nebo emulovat klávesnicí:

https://wiki.archlinux.org/index.php/Accessibility
https://wiki.archlinux.org/index.php/Xorg/Keyboard_configuration#Using_X_configuration_files

čtečka její kurzor ovšem nestíhá, takže ovládání klávesnicí je nutnost. Ale nebojte se, LXDE je na tuto možnost připraveno, takže stačí např. pomocí CTRL + ESC vyvolat nabídku, spustit si další terminál a editovat text v nano nebo mc, případně si užít parádní Geany a programovat v něm, automatické našeptávání nebo jeho vyvolání pomocí CTRL + SPACE parádně funguje a vyvolat nabídku pomocí F10 také není nic obtížného. Pokud potřebuji spustit jakoukoliv aplikaci, která potřebuje klasický notebook, nainstaluji serverovou část stejným způsobem a připojím se také stejně, buď na předem vytvořený přístupový bod, nebo jednoduše přes wifi router. Zde mám k dispozici dvě obrazovky, na čtečce např. čtu programátorskou dokumentaci a na notebooku vyvíjím plus mohu využívat myš, stačí si vybrat. Obě možnosti ale fungují a to je hlavní.

4. Vývojové nástroje

 

Vývojových nástrojů pro unixové operační systémy existuje nepřeberné množství, stejně jako u jednotlivých distribucí nelze nalézt tu nejlepší, ani zde není ten jediný správný nástroj. K Linuxu jsem se dostal přes ZX Spectrum, Amigu, DOS a Windows, takže samozřejmě mám svoje návyky, ale i touhu tyto klidně změnit a dozvědět se něco nového. Níže popisuji své oblíbené nástroje i některé další a na konci bude i pár nepříjemností, se kterými jsem se s práci s nimi setkal. Co nám vývojářům tedy dnes Linux nabízí?

Řádkové editory:

Nano - dnes již klasický editor textu s možností zvýraznění syntaxe, více od něj asi čekat nelze, je však dostupný snad ve všech distribucích již po instalaci a osobně jsem si na něj opravdu zvykl, pro Raspberry je tento editor vzhledem ke své minimální náročnosti ideální.

MC - klon mé oblíbené M602 nebo NC má parádní editor mcedit opět se zvýrazněním syntaxe, pro nás odchovance DOSu známé prostředí a ano, i vývojáři jádra používají k editaci tento editor, pro Raspberry je tento editor vzhledem ke své minimální náročnosti ideální.

Vim - minimalistický a obrovsky rozšířitelný editor si mě zatím nezískal, práce s ním je odlišná, než vše ostatní, s čím jsem se zatím setkal, mnozí uživatelé si jej však pochvalují a v unixovém světě je rozhodně potřeba znát alespoň jeho základy. Pro programátora se jedná o velmi výkonný editor až IDE, někdy je třeba úprava přímo na serveru, který jiný editor nainstalovaný nemá, takže alespoň základní editaci doporučuji si osvojit. Naštěstí dnešní distribuce mají většinou předinstalováno nano, které pro jednodušší editaci preferuji. Určitě doporučuji vyzkoušet, dnes už se naštěstí na pohovorech nemusíte bát otázky na jeho ukončení, tuto informaci aktuální verze obsahují již při spuštění...

Aktuálně leden 2019 - Emacs je parádní editor pro editaci C a C++ souborů, jen automatickou kompletaci jsem rozchodil pouze v grafické verzi, nikoliv v terminálu. Vim však bez jakýchkoliv rozšíření tuto funkcionalitu má také právě v terminálu a je rychlý jako blesk. Takže se mu mnohem více podívám na zub, např. v kombinaci s TMuxem se jedná o opravdu zajímavé řešení zcela nezávislé na grafickém prostředí a na lokálním počítači i pomocí SSH spojení mohu využívat bez instalace čehokoliv dalšího zcela shodné prostředí.

 Emacs - další nesmírně zajímavý editor z hlediska možností, ale s ouplně odlišným stylem ovládání, než na který jsem ze své předchozí praxe zvyklý. Narozdíl od Vim si mě Emacs získal už tím, že obsahuje klasické menu, taže editace textu je pro začínajícího uživatele mnohem méně flustrující. Obrovské množství rozšiřujících modulů z něj dokáže vytvořit nejen textový editor, ale i plnohodnotné IDE, ne všechny jsou však stabilní a plně funknčí. Na internetu jse naštěstí nalezl spoustu návodů pro začátečníky včetně českých, co mě však opravdu přesvědčilo jej používat představuje manuál pro vytvoření skutečně kompletního IDE pro jazyky C a C++ včetně editace rozsáhlých projektů typu linuxové jádro:

https://tuhdo.github.io/c-ide.html

 

nesmírně zajímavý je i projekt Javy:

https://github.com/emacs-lsp/lsp-java

 

a nesmí chybět ani parádní Python:

https://elpy.readthedocs.io/en/latest/introduction.html

 

Exotické věci typu Go nebo Ada také nejsou problémem, jen Pascal mi přijde neudržovaný, nevadí, parádní Geany nebo Lazarus zde zcela dostačují. Na Raspberry funguje velmi svižně, i s mnoha pluginy je práce rychlá a postupně se s tímto nesmírně zajímavým nástrojem stále více seznamuji. Pro Emacs existuje i správce oken EXWM podobný dlaždicovým manažerům DWM nebo i3, který v současné době testuji. Pro zkušeného uživatele se tedy jedná o nesmírně mocný nástroj, který asi opravdu lze využívat jako operační systém v operačním systému. Jsem rád, že existuje i grafická nadstavba se zajímavými rozšířeními, např. webový prohlížeč zkouším vedle svého doposud využívaného řádkového Linksu nebo Netsurfu. Tento editor si mě zkrátka získal, zkušený uživatel s ním asi dokáže opravdu neuvěřitelné věci, takže budu dále zkoušet a objevovat, velmi, velmi doporučuji.

Freepascal IDE - mé oblíbené IDE ála Turbo Pascal, kdo zná, ví oč jde, v Linuxu se jedná o takový vylepšený mcedit optimalizovaný pro jazyk Pascal. V tomto OS zamrzí absence českých znaků a integrovaného debuggeru, proto doporučuji spíše Lazarus nebo Geany. Jeho obrovskou výhodou je nenáročnost, pracuje asi stejně rychle jako MC. Balíček v Arch ARM není v mé konfiguraci funkční, musel jsem si jej přeložit ze zdrojových kódů.

 

Grafické editory:

Geany - vynikající lehké okenní IDE, které využívá i autor aplikace remoteink, velmi příjemně mě překvapil našeptávač kódu pro Pascal a podpora spousty jazyků, není divu, že parádní příručka pro seznámení se s jazykem C vydaná časopisem MagPi jej také využívá a v grafickém Raspbianu je předinstalován. Rozhodně doporučuji, mě mrzí snad jen dočasná absence debuggeru, kterou dříve řešil plugin a aktuální verze k dispozici není, snad v budoucnu. Ale debugger samozřejmě lze spustit i externě. Pro kombinaci RPI Zero + e-ink displej, kde tak jako tak musím mít spuštěný některý z okenních manažerů, je to naprosto skvělá volba, programovat v Geany a při tom se seznamovat s Emacsem mi opravdu vyhovuje.

Lazarus - Nástupce starších verzí oblíbeného Delphi mě velmi příjemně překvapil, jedná se asi o jediný opravdový RAD nástroj pro Linux a narozdíl od již nevyvíjeného Kylixu zcela zdarma. Obrovské množství grafických klikátek a udělátek, propojení s databázemi a snadná tvorba formulářů patří mezi parádní funkce, možnost tvorby webových aplikací a podpora Java Scriptu, integrovaný debugger, nápověda a skvělý Lazarus Component Library dělá z tohoto IDE opravdu nesmírně zajímavý nástroj. Velmi doporučuji vyzkoušet, objektový Pascal je skutečně moderní jazyk a možnosti Lazarusu to jen potvrzují. Lazarus jsem si musel přeložit ze zdrojových kódů, potřebné freepascal a freepascal-src balíčky nejsou v Arch ARM funkční, toto IDE však pracuje svižně a je jen o něco pomalejší, než Geany.

 

Aktuálně červen 2019 - VSCode se stále vyvíjí a to nesmírně zajímavým směrem. Společnost najmula mnoho programátorů pro údržbu mnou zatím asi nejoblíbenějších rozšíření pro jazyky Python a C/C++, technologie Intellisense funguje náramně a jako celek je toto dnes již spíše IDE, než editor, stále poměrně nenáročné. Proto je mojí primární volbou pro vývoj, už se těším, až si pořídím nové Raspberry, kde jej nyní lze již také zprovoznit. Pravděpodobně si počkám až na čtyřkovou řadu, mé stávající prostředí v současné době plně vyhovuje.

 

VSCode - tento editor se mi na Zeru zprovoznit nepodařilo, měl by ale fungovat na třetí generaci Raspberry, takže třeba časem. Ale využívám jej na svém notebooku, kam se pomocí čtečky samozřejmě také mohu připojit a využívat dvě obrazovky, jednu např. pro přímou editaci a druhou pro dokumentaci. Zde mě Microsoft zase jednou velmi příjemně překvapil, opravdu má spoustu skvělých produktů a umí se držet s dobou. Podpora jazyků je více, než obrovská, kromě všech výše uvedených zde jsou k nalezení i nejrůznější databázové systémy, webové technologie včetně CMS, sázecí systém TEX či starý dobrý Assebler. Co mě ovšem dostalo, je Assembler pro šestnáctibitovou Amigu nebo vývojové prostředí, debugger, Assembler nebo jazyk Basic pro osmibitové ZX Spectrum včetně emulátoru. Když přidám opravdu velmi propracovanou dokumentaci a názorná videa na Youtube, jsem opravdu nadšen. Jen pozor, s Visual Studio nemá nic společného, jedná se o editor na pomezí programátorských textových editorů a plnohodnotných IDE. Pro kompilaci v jednotlivých jazycích je nutné upravit json soubor nebo spouštět externí kompilátory ručně. Rozhodně doporučuji vyzkoušet, tento editor je mnoha vývojáři velmi chválen a také já se připojuji, rychlý vývoj znamená, že se k opravdovým IDE stále přibližuje a mám pocit, že dnes již nahradí Netbeans nebo Eclipse a v některých případech i produjty od JetBrains. A pokud ne, nic se neděje, i tak je opravdu velmi povedený.

QTCreator - velmi zajímavé IDE původně určené pro vývoj QT aplikací se velmi rychle vyvíjí, dnes je možné využívat jej i pro klasické C/C++ projekty a díky parádním příkladům a návodům je skvělé i pro začínající vývojáře. Jedná se o nenáročné prostředí, které jsem si díky českému autorovi uzpůsobil i pro TADS3, společně s Emacs, Geany a Netbeans jej využívám asi nejčastěji. Kombinace C++ a QT je k vidění ve spoustě společností dnešní doby, takže rozhodně doporučuji alespoň vyzkoušet. Také vyžaduje novější Raspberry, na notebooku jej však využívám velmi často a velmi rád.

 

Programátorská dokumentace:

Já rád pracuji offline, např. jsem-li v terénu nebo potřebuji šetřit baterii, nostím si rád veškeré programy sebou. Kromě map nebo jízdních řádů se jedná samozřejmě i o vývojářskou dokumentaci, kterou si mohu předem stáhnout např. aplikací wget nebo využít šikovný nástroj Zeal, který je na tuto práci jako stvořený a mám s ním parádní zkušenosti i pod Zerem. Jen pozor na volné místo, SD karta není nafukovací a dokumentace umí být pěkný cvalík.

 

PB Geany

 

 

Tak který si vybereme? Nastavit si Emacs podle svého trvá týdny a mnohem déle jej ovládnout, často mě překvapí nějaká drobost, jejíž vyřešení holt chce čas, např. hnedle napoprvé se mi podařilo nastavit prostředí pro jazyky C, C++ a Java, ale s Pythoním modulem jsem byl mnohem méně úspěšný, po chvilce se ale i ten poddal a pohled na tento editor v příkazové řádce s možností kompletace kódu je velmi působivý. Parádní "dosový" Freepascal IDE se mi v žádném Linuxu nezkompiluje s podporou debuggeru, je to ostuda, že verze pro Windows toto umí bez jakéhokoliv nastavení. Chci-li psát české znaky, mám smůlu a řešení jsem stejně jako jiní uživatelé nenalezl, ve Windows opět vše funguje. Ještě, že zde máme parádní IDE Lazarus, které tyto neduhy nemá a funguje poměrně stabilně. Výborné pro mé řešení je Geany, výborný našeptávač kódu mě příjemně překvapil, jen škoda, že dnes aktuální verze nemá podporu pro debugger, vývojáři jej snad časem opět začlení jako plugin. VSCode mě velmi příjemně překvapil, jen ta editace json souborů pro každý jazyk je poněkud otravná, na druhou stranu stabilita je parádní a jsem nadšen. QTCreator se stále vyvíjí a poslední verze mě překvapila zajímavými příklady a perfektními návody, v novějším Raspberry jistě bude mít své místo a pro grafické aplikace jej na notebooku využívám často a rád. Můj oblíbený Netbeans po té, co přešel pod křídla Apache Foundation se sice stále vyvíjí a verze 9 zvládala jen Javu, u desítky vývojáři naštěstí podporu více jazyků rozšířili a vše je jako dříve, otestoval jsem C spolu s C++ a oba jsou stejně stabilní jako v předchozí 8.2 od Oracle. Zajímavé IDE Eclipse je také slibné, i zde jsem se setkal s drobnými potížemi u pluginu GO, který vyžaduje starší Javu 8 a ne současnou 11, když jsem jí však aktivoval, všechny ostatní zásuvné moduly se kamsi vytratily. Ale je to v pořádku, dnešní překombinované systémy holt už jako lidé obtížně udržujeme, zvláště u otevřených produktů, musím tedy uznat, že pro komerční vývoj určitě nebude od věci juknout se na parádní Visual Studio nebo IDE od JetBrains. A proč nevyužít Windows, jak vidím ze svých zkušeností, mnohdy je pro vývoj minimálně stejně vhodný a někdy i nutný, např. tam, kde tým využívá specifické kompilátory určené jen pro tento systém, proto je určitě dobré znát jak Okna tak Linux.

 

 

5. A jsme na konci

 

Tak a to je vše, systém je zprovozněn a mohu vesele programovat jak na RPi, tak na svém notebooku a kukadla moc nenamáhat, co více si přát. Vhodných nástrojů je k dispozici mnoho, stejně jako operační systémy se i ony vyvíjí a přinášejí další zajímavé funkce, které nás hračičky dokáží přitáhnout stejně jako podbřišník sedlo k břichu koně. Elektronickou čtečku využívám i k její primární funkci nebo jako zobrazovač map, stávající konfigurace armádní notebook Panasonic Toughbook CF-30, Raspberry PI Zero a čtečka Pocketbook mi plně vyhovuje a jistě bude dlouho sloužit. Bezdrátová klávesnice se mi neosvěčila, takže využívám klasickou USB a protože píši všemi deseti, sedla mi náramně. Nepodařilo se mi zprovoznit přímé připojení čtečky a RPi/notebooku pomocí USB kabelu, tím by odpadla nutnost přístupového bodu, přeci jen Pocketbook se zapnutou wifi vydrží mnohem menší dobu na baterii. Naštěstí mé powerbanky dokáží celou sestavu napájet po celý pracovní den, což dostačuje. Výhledově vyzkouším novou generaci Raspberry, kde bych rád zprovoznil QTCreator, VSCode a GPS modul, pokud se nerozhodnu např. pro ruční Garmin nebo chytrý telefon bez SIM karty. Programování je velmi zajímavé, něco skutečně tvořím a jsem spokojen. Ale nejen vývojařinou živ je člověk, proč si nezkusit nějakou tu hru? Nemyslím zrovna šachy, které jsou k dispozici přímo ve čtečce, ale něco rychlejšího. E-ink se sice k něčemu takovému zrovínka nehodí, pro pamětníky ovšem doporučuji zprovoznit emulátor ZX Spectra Fuse a vyzkoušet třeba parádní Tetris nebo plošinovku Sir Fred, náš pan rytíř sice při pohybu trochu zduchovatí, ale ovládat se při troše dobré vůle dá. A když to holt nepůjde, garantuji, že nápis Tape Loading Error čtečka zvládá opravdu hravě...

PB Sir Fred