Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Další možnost prevence je před zpracováním dat vytvořit vědeckou hypotézu o nich (žádný řádek nezačíná mezerou), a tu se pak pomocí experimentu snažit potvrdit nebo vyvrátit. Poslední dvě uvedené metody jsou ale komplexní a komplexitu práce s IT ještě zvyšují.
Tento modelový incident je dle mého názoru pěknou ukázkou jevu, jak komplexní řešení (IT) problému (tužka a papír jsou příliš pomalé, neohrabané při posílání na dálku atd.) zanáší náš život komplexitou. Americký vědec, antropolog Dr. Joseph Tainter, profesor na Department of Environment and Society na Utah State University (vystudoval University of California Berkeley, známou např. OS BSD) tento jev zkoumá. Ve svých videopřednáškách (mirror) na YouTube vysvětluje, jak tato akumulace komplexity nakonec běžně způsobuje pády civilizací, které původně z této komplexity, sloužící k řešení problémů, profitovaly. A že z tohoto hlediska je naše civilizace v úplně typické fázi před kolapsem.
Po odbočce k civilizačnímu nadhledu tento problém vyřešíme přídavným příkazem sed
, který mezery na začátku řádku odfiltruje. Stříška značí začátek řádky. Při práci se sed
, grep
, awk
apod. je třeba dávat pozor, že u každého příkazu je jinak, před které tyhle speciální znaky se dávají obrácená lomítka a před které ne, a také že shell ta obrácená lomítka někdy sní a někdy ne. Pokud je sní, musí se dát dvojitě. V našem případě jsme obrácená lomítka naštěstí nepotřebovali vůbec.
sed -e 's/^ //g' clean.txt > clean2.txt
A teď už může přijít zlatý hřeb: jak bývá dle mé zkušenosti typické pro Unix a Linux, s vynaložením neúměrného množství úsilí se nám konečně podařilo udělat jednoduchou věc, na kterou specificky existuje příkaz – odfiltrovat sedmý sloupec ze souboru:
cut -f 7 -d ' ' clean2.txt 4608764 4315118 597079 274 220594 512351 629627 346597 183018 80 328835 60059 427785 871780 3916362 [...]
Na zlatý hřeb už jen pověsíme pár dalších příkazů a objeví se nám statistika. -n
říká, že čísla se mají řadit číselně a ne abecedně, 10 je tedy po 2 a ne před ní. uniq
je z anglického unique, tedy „jedinečný“ – bere seřazený vstup, kde opakující se vstupy jsou v kuse za sebou, a z těch pustí vždy jen jeden. Přepínač -c
ale způsobí, že se k tomu ještě navíc spočítá, kolik jich bylo. Dalšímu sortu řekneme, aby obrátil pořadí pomocí -r
. Přepínač -k1
znamená klíč v prvním sloupci, tedy řadíme podle počtu opakování. A head -n 20
je tu proto, aby se nám hezky useklo jen prvních 20 řádek článku.
$ cut -f 7 -d ' ' clean2.txt |sort -n |uniq -c | sort -nrk1 | head -n 20 23 11009 15 12911 13 21607 12 12888 12 12867 9 1405 9 12927 9 12900 9 12897 9 12887 8 21586 8 12891 8 12858 7 12912 7 12879 7 12864 6 59 6 12906 6 12905 6 12890
Teď by se mohlo zdát, že příkaz konečně proběhl, jak jsme chtěli, a nežádané komplexity IT jsme byli ušetřeni. Ale kde! Zdání klame! I zde si vychutnáme další neočekávaný úder z hlubin Tainterovy studijní oblasti. Ale jak budeme vůbec vědět odkud, když vše funguje, jak má? Úder přichází ze strany internacionalizace. Před určitým počtem let byl sen, že počítače budou moci mluvit světovými jazyky, a tak si dnes můžete nastavit, že vám bash bude psát chybové hlášky třeba vietnamsky nebo čínsky:
( for a in $(locale -a|grep -i utf); do LC_ALL="$a" . owhxeddo; done ) 2>&1 | sort | uniq
Pilní čtenáři si mohou příkaz spustit za domácí úkol, ti ostatní se dozví, jak vypadají chybové hlášky ve všemožných jazycích, v příštím díle.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
awk '{ print $7}' ./inputifile.txt | sort -nr | uniq -c
Bojím se, o čem budou další díly, když triviálnímu triviálnímu součtu nad jedním sloupcem spolklo tolik řádek "úvah".
Kéž by… To úsilí bylo věnováno tomu, aby autor tím krkolomným postupem dosáhl toho, co by měl zadarmo, kdyby tři díly zpátky místo "-ls
" napsal "-printf '%s\n'
".
Na druhou stranu, jak s oblibou říká moje tchýně, vychovávat je nejlépe osobním příkladem a nelze-li jinak, pak alespoň odstrašujícím. Takže, děti, tady názorně vidíte, jak to dopadá, když se místo použití vhodných nástrojů budete snažit parsovat výstup určený pro lidského čtenáře. :-)
A teď už může přijít zlatý hřeb: jak bývá dle mé zkušenosti typické pro Unix a Linux, s vynaložením neúměrného množství úsilí se nám konečně podařilo udělat jednoduchou věc, na kterou specificky existuje příkaz – odfiltrovat sedmý sloupec ze souboru