Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
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: