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
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:)