Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.
Společnost Framework Computer představila novou vylepšenou verzi svého modulárního notebooku Framework Laptop 13 s Intel Core Ultra Series 1, displej s lepším rozlišením a novou webovou kameru. Přímo do Česka jej zatím koupit nelze.
Byla vydána nová verze 2.16 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
TerminalTextEffects (TTE) je engine pro vizuální efekty v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Od čtvrtka 30. 5. do soboty 1. 6. lze v Praze navštívit Veletrh vědy, tj. největší populárně naučnou akci v České republice, kterou každoročně od roku 2015 pořádá Akademie věd ČR. Vstup zdarma.
Canonical představil Ubuntu optimalizované pro jednodeskový počítač s RISC-V procesorem Milk-V Mars.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 24.5.1 Havier. Přehled novinek v Changelogu.
Společnost xAI založena Elonem Muskem a stojící za AI LLM modelem Grok získala investici 6 miliard dolarů.
Finálový zápas mistrovství světa v ledním hokeji přinesl nový rekord NIX.CZ (𝕏): "Dosavadní absolutní maximum našeho propojovacího uzlu bylo překonáno v čase 21:10, kdy jsme při přenosu dat dosáhli 3,14 Tbps. Je třeba také doplnit, že po deváté hodině večerní byly na maximu i ostatní datové přenosy nesouvisející s hokejovým šampionátem".
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 12. a 13. října na FIT ČVUT v pražských Dejvicích. CfP poběží do konce prázdnin, pak proběhne veřejné hlasování a výběr přednášek.
Mezery i tabulátory se zobrazují na obrazovce stejně, ale pro příkaz cut
mají odlišný význam. Tato nehomogenita se dá ale snadno homogenizovat příkazem, který jednotlivé i opakující se mezery, tabulátory či jejich kombinace převálcuje na jednu mezeru. Přepínač -s říká, aby se komprimovaly opakující se sekvence znaků, očividně to funguje i na směsi znaků z první množiny, a současně s přepínačem -s
lze použít funkci překladu na znak jiný. Obrácené lomítko a písmeno t
znamená tabulátor. U příkazu tr
a dalších příkazů to funguje, u jiných příkazů to ale fungovat zase nemusí.
tr -s '\t ' ' ' < filelist.txt > clean.txt
Vzniklý soubor clean.txt
pak vypadá takto:
9574820 4504 -rw-rw-r-- 1 clock clock 4608764 Mar 15 2015 pg/etext96/pgwfh04.txt 9574857 4216 -rw-rw-r-- 1 clock clock 4315118 Mar 15 2015 pg/etext96/plivs10.txt 9574841 584 -rw-rw-r-- 1 clock clock 597079 Mar 17 2015 pg/etext96/bti1210.txt 9574842 4 -rw-rw-r-- 1 clock clock 274 Mar 17 2015 pg/etext96/sgcwp22.txt 9574873 216 -rw-rw-r-- 1 clock clock 220594 Mar 17 2015 pg/etext96/nvoyg10.txt 9574834 504 -rw-rw-r-- 1 clock clock 512351 Mar 17 2015 pg/etext96/psrev10.txt 9574821 616 -rw-rw-r-- 1 clock clock 629627 Mar 17 2015 pg/etext96/rlsl210.txt 9574878 340 -rw-rw-r-- 1 clock clock 346597 Mar 17 2015 pg/etext96/slanr10.txt 9574827 180 -rw-rw-r-- 1 clock clock 183018 Mar 17 2015 pg/etext96/batlf10.txt 9574853 4 -rw-rw-r-- 1 clock clock 80 Mar 17 2015 pg/etext96/notun3-readme.txt 9574874 324 -rw-rw-r-- 1 clock clock 328835 Mar 17 2015 pg/etext96/britm10a.txt 9574846 60 -rw-rw-r-- 1 clock clock 60059 Mar 17 2015 pg/etext96/thoml10.txt 9574844 420 -rw-rw-r-- 1 clock clock 427785 Mar 17 2015 pg/etext96/shabr10.txt […]
Ale ani to nám nepomůže. Co je tedy mysteriózní faktor způsobující selhání příkazu cut
? Protože už vím, co hledat, odhalím problém následujícím
příkazem grep
:
grep -C 5 "^ " clean.txt|less | head -n 10 30286664 28 -rw-rw-r-- 1 clock clock 27498 Mar 17 2015 pg/4/8/2/1/48215/48215-0.txt 30286668 64 -rw-rw-r-- 1 clock clock 63695 Mar 17 2015 pg/4/8/2/1/48210/48210-0.txt 30286658 208 -rw-rw-r-- 1 clock clock 210832 Mar 17 2015 pg/4/8/2/1/48217/48217-0.txt 30286656 708 -rw-rw-r-- 1 clock clock 722131 Mar 17 2015 pg/4/8/2/1/48212/48212-0.txt 30286645 448 -rw-rw-r-- 1 clock clock 456771 Mar 17 2015 pg/4/8/2/1/48219/48219-0.txt 224 1172 -rw-rw-r-- 1 clock clock 1197270 Mar 15 2015 pg/4/8/4/2/48426/48426-0.txt 218 92 -rw-rw-r-- 1 clock clock 91485 Mar 17 2015 pg/4/8/4/2/48420/48420.txt 213 584 -rw-rw-r-- 1 clock clock 596145 Mar 17 2015 pg/4/8/4/2/48429/48429.txt 209 52 -rw-rw-r-- 1 clock clock 51657 Mar 17 2015 pg/4/8/4/2/48427/48427.txt 203 256 -rw-rw-r-- 1 clock clock 261631 Mar 17 2015 pg/4/8/4/2/48425/48425-0.txt
Některé řádky totiž začínají mezerami! Kdybyste tohle ukázali sekretářce a zeptali se jí, co je v prvním sloupci, jsem přesvědčen že by řekla že 224, ale příkaz cut
bude trvat na tom, že první sloupec je u takových řádků prázdný! Takže se sloupce rozsynchronizují a do výstupu půjdou u některých řádků data ze špatného sloupce – textový řetězec clock
. Ten text se objevil, a to je důvod, proč se na chybu přišlo. Pokud by ale sousedící sloupec byl číselný, na chybu se vůbec přijít nemuselo a mohla zcela tiše vzniknout špatná data o rozložení velikostí souborů.
Čím je problém způsoben a jak mu předejít? Tím, že bylo nahlédnuto na malý vzorek dat a z toho učiněn závěr o formátu celého souboru, což je takzvané logické non sequitur. Logicky korektní řešení by bylo přečíst si všech 55 tisíc řádků a z toho teprv vyvodit závěr. Co je ale logicky korektní nemusí být praktické z hlediska spotřebovaného pracovního času potřebného na osobní prohlédnutí 55 tisíc řádků. Další možnost by bylo jakési formální odvození na základě speficikací chování příkazů z manuálových stránek, které jsou ovšem často nejednoznačné a možná i někdy špatně, k odvození, že příkaz někdy generuje mezery na začátku řádku by bylo možná třeba hloubková analýza ve větším počtu úrovní odkazů, a je stále riziko logické chyby při uvažování. Další možnosti řešení tohoto chybného uvažování, žádnou z nich ale elegantní, si uvedeme v dalším díle seriálu.
Nástroje: Tisk bez diskuse
Tiskni Sdílej: