Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový
… více »Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.
Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.
Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.
Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.
… více »Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
Společnost OpenAI představila text-to-video AI model Sora 2 pro generování realistických videí z textového popisu. Přesnější, realističtější a lépe ovladatelný než předchozí modely. Nabízí také synchronizované dialogy a zvukové efekty.
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: