Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.
Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.
Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.
Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.
Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.
Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.
Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.
Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »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: