Od posledních paběrků uběhl více než měsíc, za což se omlouvám, neboť komunita rozhodně nespala. Ba se zdá, že skončil semestr a spousta review byla najednou ukončena. Takže nadílka je opravu veliká.

Toto jsem opravdu nečekal, a tak jsem původně nachystal pro třetí díl novou sekci – Koprovka. O čem tato sekce je, by mělo být zřejmé každému, kdo do Fedory jakkoliv přispívá, ale uvážím-li, kolik lidí nezchroustalo název tohoto seriálu… Ať tak či tak, sekce je tu, tak snad se bude líbit.

Pokud by snad někoho čtení přestalo bavit, skočte do paběrků, a hned bude lépe:)

Obsah

Poběrky

Grafika, nástroje

Hry

Věda – matematika, chemie…

Systémové nástroje, jazyky, knihovny…

Koprovka

Historické javy

Černá kronika a list přání

Paběrky

Poběrky

gimp-layer-via-copy-cut – Layer via copy/cut plug-in for GIMP

https://admin.fedoraproject.org/pkgdb/package/rpms/gimp-layer-via-copy-cut/

dnf install gimp-layer-via-copy-cut

Velmi užitečný plugin pro gimp, který kopíruje/přesouvá výběr (i několikavrstvý) do nové vrstvy. Bez pluginu je to celkem hodně klikání/ťukání, aby se toto docílilo.
Naneštěstí je plugin zabalený tak, že nefunguje out-of-the-box. Je potřeba nalinkovat plugin do uživatelského prostoru:

ln -s /usr/share/gimp/2.0/plug-ins/layer-via-copy-cut.py  ~/.gimp-2.8/plug-ins/layer-via-copy-cut.py

Potom už gimp plugin najde.

xonsh – A general purpose, Python-ish shell

https://admin.fedoraproject.org/pkgdb/package/rpms/xonsh/

sudo dnf install xonsh

Už není třeba se prát, že na něco je vhodnější python, a na něco bash. Je tu totiž xonsh. Nástroj, který oba jazyky mixuje.
Na screenshotu můžete vidět, že nejdříve spustím xonsh, pak vytvořím pythoní mapu a pak grepnu soubor, který je výsledkem volání té pythoní mapy! Nakonec spustím obyčejný externí proces (EyeOfGnome).
Samozřejmě aritmetika funguje stejně jednoduše jako v pythonu. Mimo jiné parádně implementuje několika linkové příkazy. Na práci s bashovými versus pythoními proměnnými/příkazy (kontrolovatelnou drobným syntaktickým cukrem) si to chce trošku zvyknout, ale poté je tento shell extrémně návykový.

xonsh


crawl – Roguelike dungeon exploration game

https://admin.fedoraproject.org/pkgdb/package/rpms/crawl/

sudo dnf install crawl

Klasický šílený terminálový dungeon s generovaným světem. Zdaleka ne tak obsáhlý jako legendární Dwarven Fortress, ale přesto potěší. Při zkoušení jsem si svých 5 minut slávy docela užíval, než mě umlátil nějaký kobold kladívkem… Hold křivka učení těchto her je někde jinde než u pokemon-go. A to je to, oč tu běží.

crawl


winetricks – Work around common problems in Wine

https://admin.fedoraproject.org/pkgdb/package/rpms/winetricks/

sudo dnf install winetricks

Kdo používá wine, má jistě winetricks v nějaké podobě nainstalované. Kdo ne… winetricks je soustava skriptů, které pomáhají ohnout wine a pomoci nějaké konkrétní hře. V této distribuci s přehledným GUI složeným ze skupin dialogů, kde si vyberete konkrétní trik.

winetricks


metamath – Construct mathematics from basic axioms

https://admin.fedoraproject.org/pkgdb/package/rpms/metamath/

sudo dnf install metamath

Terminálová aplikace, interpret matematického jazyka metamath – oboje z laboratoří MIT. Cokoliv co nadefinujete (pokud to dokážete), aplikace je schopna (pokud to jde) i dokázat. Screenshot ponechám na schopnějších…
Jen pro zajímavost, pro Windows je aplikace dodávána s/v cygwinu.

metamath

giac – Computer Algebra System, Symbolic calculus, Geometry

https://admin.fedoraproject.org/pkgdb/package/rpms/giac/

sudo dnf install giac
sudo dnf install giac-xcas
sudo dnf install giac-doc

Další, poněkud strašidelná terminálová matematická aplikace. Tato místo důkazů počítá… A nejen symbolicky.
Velkou výhodou je GUI bratříček gias-xcas. Ten je schopen uživatele-začátečníka sám do sebe přívětivě zasvětit. Pokud uživatel začátečník nemá alespoň roční praxi s matlabem nebo maplem (program zvládá obě syntaxe) doktorát z matematiky postačí. Balíčku bych vytknul dokumentaci. GUI s dokumentací zjevně umí dobře pracovat, dokumentace existuje, ale je jakási … špatná. Občas špatně vygenerovaná, občas plaintext, občas html, občas pdf. Přitom upstreamová verze s tím potíže nemá.

giac
xcas


CheMPS2 – spin-adapted DMRG for ab initio quantum chemistry

https://admin.fedoraproject.org/pkgdb/package/rpms/CheMPS2/

sudo dnf install CheMPS2

Ještě strašidelnější, tentokrát chemická, terminálová aplikace. Potěší pythoní api (CheMPS2-python).

man chemps2

přemítání nad smyslem života

chemps2

jwm – Joe’s Window Manager

https://admin.fedoraproject.org/pkgdb/package/rpms/jwm/

sudo dnf install jwm

Velmi příjemný X-only standalone okenní správce. Pokud běžíte čistá X (nakonec jím neopovrhnu ani ve fluxboxu) pak je volbou pro vás. Není dlaždicový, ale ke správě oken přidává několik vychytávek jako správu ploch, oken a widgety. Zdá se vám to navíc? Před stěžováním zkuste 🙂

A nakonec v libovolném prostředí na vyzkoušení můžete:

jwp

A nelekněte se až to pak zabijete 🙂


Na screenshotu můžete vidět, jak jwm hezky běží přes mate a při přeblikávání oken ukazuje widgety jako čas, síť…

mozjs45 – JavaScript interpreter and libraries

https://admin.fedoraproject.org/pkgdb/package/rpms/mozjs45/

sudo dnf install mozjs45

Mozilla Spider Monkey je relativně nový interpreter (a debugger) javascriptu, a je dobře, že se konečně dostal do hlavních repozitářů, neboť aplikacích linkovaných proti němu přibývá.

java-1.8.0-openjdk-aarch32 – OpenJDK AArch32 porting project preview release

https://admin.fedoraproject.org/pkgdb/package/rpms/java-1.8.0-openjdk-aarch3/

sudo dnf install java-1.8.0-openjdk-aarch32-devel

Či jiná kombinace java-podbalíčků… Toto je speciální vydání javy pouze pro arm32. Javisté vědí, že některé architektury mají javu rychlejší, jiné pomalejší. Toto je způsobeno úrovní implementované optimalizace. Nejvyšší level optimalizace má takzvaný JIT a najdeme ho například na architekturách intel. Nejmenší má pak virtuální stroj Zero Assembler Port, který se používá tam, kde neexistuje JIT. A to je případ 32 bitového armu. Před nějakým časem vznikla snaha o napsání JITu pro arm32 a toto je již její fungující výsledek. Časem by měl tento port přispět ke zrychlení arm32 buildrootů fedory o více než 75 %.

Více informací v článku zde na mojefedora.cz: http://mojefedora.cz/novinky-v-baliccich-openjdk/#aarch32

Pokud běžíte na armu32 neváhejte vyzkoušet. Možná vám pak java občas spadne, ale když ne, už nyní mají aplikace běžící v java-1.8.0-openjdk-aarch32 50% zrychlení oproti arm32 Zero kompilovaného z normálního java-1.8.0-openjdk pro arm32.

Pro ilustraci: v článku https://blogs.oracle.com/jtc/entry/comparing_jvms_on_arm_linux můžete nalézt tento graf

Kde nás zajímá červený a zelený sloupec. Červený je JIT a zelený je Zero. Data nejsou úplně nejčerstvější, ale to, že je zelený alespoň dvakrát delší než červený, vidět je.

java
javac

a další příkazy z rodiny balíčků java. V případě paralelní instalace vedle normální javy, nezapomeňte na system-switch-java

java-comment-preprocessor

https://admin.fedoraproject.org/pkgdb/package/rpms/java-comment-preprocessor/

sudo dnf install java-comment-preprocessor

Knihovna pyšně sama sebe označuje za nejlepší java preprocesor od roku 2003. Na kolik tématu rozumím, musím dát autorům za pravdu. Plná podpora maven, ant, gradle i příkazové řádky. Více průchodový.

Ptáte se k čemu to vlastně je? Java preprocesor nemá. Pro jedny výhra, pro druhé hrůza. A java jako taková ho opravdu do nedávna nepotřebovala. Ale najednou… se vynořil android. A s ním… nerad to říkám, ale pseudojava…

Sám jsem autorem několika knihoven, které mají jak androidí, tak desktopový GUI klient. A je smutné, že napsaní takové (správně hierarchické) aplikace je opravdu bolestivé, neb některé velmi překvapivé prvky na androidu prostě nejsou, nebo jsou jinak.

Preprocesor je nástroj, který toto řeší. Klasický céčkový:

ifdef android then
   terrible code
else
   normal code
endif

pomůže z potíží, které se jinak obcházejí velice ztěžka.

Koprovka

Koprovka je nová sekce, která si klade za cíl publikovat zajímavé Copr repozitáře/projekty
Jen pro shrnutí Copr je speciální sestavovací, dobře dokumentovaný projekt, který umožňuje velice jednoduše vytvářet a organizovat repozitáře s balíčky, které z nějakých důvodů (jako je obsah, legislativa nebo lenost) nemohou být přidány do oficiálních repozitářů.
Vyhledávací formulář na hlavní stránce funguje docela dobře, ale pozor na perličky typu:

       Instructions not filled in by author. Author knows what to do. Everybody else should avoid this repo. 

Aneb:

       Autor nedodává žádné instrukce. Autor ví co dělá. Každý jiný by se měl repozitáři vyhnout.

PS: Toto je defaultní věta, pokud autor nevyplní nic. A díky za ni, je velmi výstižná vzhledem k tomu, co všechno můžete v COPRu nalézt.

Instalace všech Copr repozitářů je stejná:

          $ sudo dnf copr enable uživatel/jméno_repa

Nebo přidáním repo souboru z „tlačítka“ repo download(repozitář ke stažení) do správného místa v /etc.
takto to může znít složitě, ale linky jsou vždy na stránce repozitáře, a většinou i příkazy.

Samotná instalace z takto přidaného repa je klasicky:

          $ sudo dnf install název_balíčku

Pokud si nejste jisti názvy balíčků, pak se dají vždy vylistovat ve složce packages(balíčky). Pokud by dnf i tak nic nenašlo, hodí se ověřit v záložce builds(sestavení), jestli vůbec někdy nějaké sestavení balíčku prošlo.

Pokud vůbec netušíte, co hledáte, ale tušíte, že je to někde v Copru, pak je tu pro vás
fulltextové vyhledávání ve všech balíčcích ve všech repozitářích jež v Copru jsou.

OpenJDK9 tech-preview

https://copr.fedorainfracloud.org/coprs/omajid/openjdk9/

Openjdk9 má vyjít, i se všemi gigantickými změnami, které otřásají světem javy do samotných jeho základů, na začátku roku 2017. To znamená, že Fedora ho uvidí nejdříve za rok v F26.
Nicméně jeden z nejaktivnějších vývojářů javy v Red Hatu ji pro nás udržuje ve svém Copr repu. Takže hurá do pokusování s modulárním JDK!

Instalaci jednoduše:

           $ sudo dnf copr enable omajid/openjdk9

a následným

           $ sudo dnf install java-9-openjdk-devel

Se všemi možnými podbalíčky co potřebujete. Pozor, balíček java-1.9.0-openjdk již není aktualizován.

Historické javy

Vše začalo tímto bugem. Aby mohla Fedora zcela nezištně updatovat systémovou javu na novější hlavní verzi, například ze 7 na 8, musí nová java takzvaně obsolete(zastarat) javu předchozí.
Což ovšem přinese jako nevýhodu to, že starý balíček nemůžete jen tak doinstalovat. Systémové změně Fedory 22 padlo spousta návrhů jak situaci vyřešit, ale nakonec se nenašel nikdo, kdo by se chtěl starat o systémové historické javy.
Nakonec se těchto čerstvě osiřelých programů ujal komunitní vývojář Julius Schwartzenberg a pro zjednodušení změn je umístil do kopr repozitářů.

Instalace Java mašin pak probíhá jako obvykle, jen s příponou hlavního balíčku „-legacy“:

Legacy JDK 7

https://copr.fedorainfracloud.org/coprs/jschwart/openjdk-7

           $ sudo dnf copr enable jschwart/openjdk-7
           $ sudo dnf install java-1.7.0-openjdk-legacy-devel

Legacy JDK 6

https://copr.fedorainfracloud.org/coprs/jschwart/openjdk-6/

           $ sudo dnf copr enable jschwart/openjdk-6
           $ sudo dnf install java-1.6.0-openjdk-legacy-devel

Pokud máte v systému více než jednu javu, pak se mezi nimi přepíná pomocí alternatives (bohužel opět jako root):

           $ sudo alternatives --config java
           $ sudo alternatives --config javac

Pro JRE/JDK (běhové/vývojové) prostředí (JDK je v podbalíčcích „-devel“.
Případně automagicky:

           $ sudo alternatives --set java(c) cesta

Při použití –set možná zjistíte, že je velmi nepohodlné. Na nápravě se zapracovalo a již je hotová. Takže půjde použít hodnota „family“:

           $ sudo alternatives --set java(c) java-verze-openjdk.architektura

system-switch-java

Kromě těchto čistě terminálových nástrojů existuje utilita „system-switch-java“, která umí javy přepínat vizuálně (nezapomeňte, že kromě Openjdk existují ještě IBM, Oracle a GNUclasspath javy. Což dělá 24 java VM na systém).
Z normálních repozitářů:

          $ dnf install system-switch-java

a násldně

          $ sudo system-switch-java

Má jak GUI:

Tak konzolové TUI (pokud nemáte X, máte unset DISPLAY nebo pomocí přepínače -t:

           $ sudo system-switch-java -t


Pro úplnost, s-s-j java má ještě kromě přepínače -h pro help přepínač -d (debug), který vám vypíše, jaké všechny klíče k alternatives (např.: java, javac …) java používá. Možná budete překvapeni, a možná vám jejich znalost velmi usnadní život.

Černá kronika a list přání

Tentokrát je toto spojeno v jednu jedinou sekci, neboť se (až na kompilátor Rust) jedná o review, kde autor opustil komunitu (nebo něco podobného) dříve, než bylo review dokončeno. Pokud balíček zaujme, většinou by mělo být jednoduché ho dokončit.

Bug sunflow – A rendering system for photo-realistic image synthesis

Jediný člen dnešní černé kroniky, který jsem si přebuildil. Rebuild je bez potíží (jediná závislost je janino), launcher má v sobě chyby (chybný sunflow na classpath a má být malé f v hlavní třídě), ale i když je program starší (čisté awt), výsledky má dobré – viz http://sunflow.sourceforge.net. Samotná aplikace není ale to, oč tu běží. Zkušený java programátor si může obrázek nebo plugin „napsat“ za pár minut a api (vlastně celá aplikace) by mohla být studijním prvkem pro návrh knihovny.



Bug laptop-mode-tools – Tools for power savings based on battery/AC status

Modul do kernelu a sada skriptů, které umožní v „notebook“ módu výrazně šetřit energii triky jako pomalejším diskem.
O co Fedora přichází, je dobře popsáno na wiki archu

Bug qjoypad – Gamepad translator software

Jednoduchá knihovna, která umí převést signály z joysticku na signály z klávesnice. Užití pro „dos-only“ hry je zřejmé, ovšem jak se knihovna pere s úhlopříčným pohybem pomocí „dvou šipek zároveň“.

Bug senna – An embeddable fulltext search engine

Senna je lucene nativního světa, jednoduše zabudovatelná do C, Ruby či Perlu. Jelikož nabídka podobných technologií mimo svět javy není zrovna příznivá, je škoda, že v repozitářích chybí.

Kompilátor Rust

Systémová změna https://fedoraproject.org/wiki/Changes/RustCompiler

Toto není ani černá kronika, ani list přání. Je to světlá a téměř jistá budoucnost. Kompilátor Rust je již téměř jistou součástí Fedory 25.
Rust je velmi zajímavý nativní jazyk. Jaká bude jeho budoucnost se sice nedá odhadnout, ale jeho přítomnost v oficiálních repozitářích potěší nejednoho milovníka programovacích jazyků.

Paběrky

Paběrky jsou dnes smutné, žádný z nich si jen tak z oficiálních repozitářů nenainstalujete. Ale alespoň jsou dva, druhý je tématický k teplotám, které teď panují v centrální Evropě

liboobs – Wrapping library to the System Tools Backends

Nazvat knihovnu oobs je pravděpodobně úplně v pohodě. Zvláště, když se projekt jmenuje T2.
Také je dobré zcela pozapomenout, že se knihovny prefixují lib, a že nejen anglicky mluvící Číňané zkrátí podvědomě prefix na li, a budou marně dumat, k čemu ti .. ty.. ta.. knihovna je.
Bohužel bug byl zavřen, neboť liboobs přestává žít. Takže na (ne)štěstí dnf install li..li..li..liboobs nebudeme.

hot-babe – Graphical CPU utilization monitoring utility

U li-li-liboobs ještě zůstaneme (jen to ztratí poslední vazby na knihovnu). Hot-babe je velmi netradiční monitor procesoru. Čím více procesor pracuje, tím více se zahřívá a tím je … ukazatel zatížení… obnaženější.
Bohužel bug (stojí za přečtení) byl zavřen ze stejných důvodů, které mi zakazují umístit sem plnohodnotný screenshot. Prvních pár obrázkových vyhledávání, případně youtube napoví. Jako zajímavý případ užití jsem slyšel, že tento nástroj motivuje mladé testery běžet častěji benchmarky a zátěžové testy:)