Během tradiční ceremonie k oslavě Dne vzniku samostatného československého státu (28. října) byl vyznamenán medailí Za zásluhy (o stát v oblasti hospodářské) vývojář 3D tiskáren Josef Průša. Letos byly uděleny pouze dvě medaile Za zásluhy o stát v oblasti hospodářské, druhou dostal informatik a manažer Ondřej Felix, který se zabývá digitalizací státní správy.
Tor Browser, tj. fork webového prohlížeče Mozilla Firefox s integrovaným klientem sítě Tor přednastavený tak, aby přes tuto síť bezpečně komunikoval, byl vydán ve verzi 15.0. Postaven je na Firefoxu ESR 140.
Bylo oznámeno (cs) vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.
Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.
PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.
Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.
Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.
Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.
Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.
Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.
Protože můj skriptík v bashi na hledání v obsahu souborů byl nechutně pomalý a už mě to štvalo, tak jsem upatlal narychlo jednu utilitku v C++. Je to trošku prasácky, ale pro mé účely to stačí. Ke stažení v příloze prvního komentáře, jak skriptík, tak program.
Pokud vynalézám kolo, tak sry, já na to žádnou utilitku ve svém systému neznám.
Rychlost hledání je na mém systému 0.6s vs. 13s v celém stromu téhle věci.
Ještě jedna věc, kompilujte buď s parametrem -std=c++0x, nebo vyhoďte ten static_assert (ale ujistěte se, že je podmínka splněna, jinak to bude chybovat u velkých souborů, např, na x86-32 při definování _FILE_OFFSET_BITS=64)
Tiskni
Sdílej:
grep -raliF 'hledany-text' directory, pripadne pokud Jardik zvlada regularni vyrazy, tak grep -raliE 'extended-regexp' directory.
Docela by me zajimal rozdil oproti tomu tvymu CPP. Udelej benchmark. Zkus to s tim -raliF to hleda plain-text, zadny regexp (regexp bude zrejme o trosku pomalejsi).
time grep -raliF Sys_FullPath . ./branches/next_ghost/unix/system.cpp ./branches/next_ghost/unix/.svn/text-base/init.cpp.svn-base ./branches/next_ghost/unix/.svn/text-base/system.cpp.svn-base ./branches/next_ghost/unix/init.cpp ./branches/next_ghost/libs/system.h ./branches/next_ghost/libs/memman.cpp ./branches/next_ghost/libs/.svn/text-base/memman.cpp.svn-base ./branches/next_ghost/libs/.svn/text-base/system.h.svn-base ./branches/next_ghost/game/realgame.cpp ./branches/next_ghost/game/music.cpp ./branches/next_ghost/game/globmap.cpp ./branches/next_ghost/game/macros.cpp ./branches/next_ghost/game/gamesave.cpp ./branches/next_ghost/game/.svn/text-base/gamesave.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/skeldal.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/globmap.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/inv.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/dialogs.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/music.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/realgame.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/menu.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/book.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/macros.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/interfac.cpp.svn-base ./branches/next_ghost/game/interfac.cpp ./branches/next_ghost/game/dialogs.cpp ./branches/next_ghost/game/menu.cpp ./branches/next_ghost/game/inv.cpp ./branches/next_ghost/game/book.cpp ./branches/next_ghost/game/skeldal.cpp real 0m4.747s user 0m4.616s sys 0m0.127s [jardik@Jardik-ArchPC skeldal]$ time /home/jardik/Projects/FindInFiles/findinfiles Sys_FullPath ./branches/next_ghost/unix/system.cpp ./branches/next_ghost/unix/.svn/text-base/init.cpp.svn-base ./branches/next_ghost/unix/.svn/text-base/system.cpp.svn-base ./branches/next_ghost/unix/init.cpp ./branches/next_ghost/libs/system.h ./branches/next_ghost/libs/memman.cpp ./branches/next_ghost/libs/.svn/text-base/memman.cpp.svn-base ./branches/next_ghost/libs/.svn/text-base/system.h.svn-base ./branches/next_ghost/game/realgame.cpp ./branches/next_ghost/game/music.cpp ./branches/next_ghost/game/globmap.cpp ./branches/next_ghost/game/macros.cpp ./branches/next_ghost/game/gamesave.cpp ./branches/next_ghost/game/.svn/text-base/gamesave.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/skeldal.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/globmap.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/inv.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/dialogs.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/music.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/realgame.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/menu.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/book.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/macros.cpp.svn-base ./branches/next_ghost/game/.svn/text-base/interfac.cpp.svn-base ./branches/next_ghost/game/interfac.cpp ./branches/next_ghost/game/dialogs.cpp ./branches/next_ghost/game/menu.cpp ./branches/next_ghost/game/inv.cpp ./branches/next_ghost/game/book.cpp ./branches/next_ghost/game/skeldal.cpp real 0m0.625s user 0m0.560s sys 0m0.063s [jardik@Jardik-ArchPC skeldal]$Můj se zdá být cca 7x rychlejší.
find . -type f -exec grep ....., ale spis find -type f -print0 | xargs -0r grep .... - to se pak spusti jeden grep s vice souborama najednou, kdyz tam neni extremne moc souboru (nenarazi se na limit delky parametru prikazu), tak se to spusti opravdu pouze jednou.
0m0.132s, ignore case jsem nechtěl. Tak to se omlouvám za nařčení grepu z pomalosti, je jen o kousíček pomalejší. Ten --mmap pro grep nemá žádný přínost, je to furt stejný.
Samozrejme, hledani regexpu bude pomalejsi nez porovnavani znak po znaku, a ignore-case to taky zpomaluje.
Na druhou stranu, grep ma mnoho dalsich funkci: puvodne grep vypisuje cely radek, kde se hledany vyraz vyskytuje, ale to jsem zablokoval pomoci "-l"; dale grep umoznuje vypsat radky, kde se hledany vyraz NEVYSKYTUJE "-v"; muzes si nechat zobrazit pouze pocet nalezenych radku; dale je mozne zobrazit X radku pred nalezenym a za nalezenym radkem "-B" a "-A" nebo "-C"; pak taky muzes zadat soubor, ktery obsahuje hledane texty "-F"; muzes si nechat vypsat cisla radek nebo byte offset radku s hledanym textem; muzes urcite, jestli se binarni soubory maji prohledavat nebo se maji brat jako ze text tam nelezen nebyl "-a" a "-I" resp. "--binary-files". Vetsina tehle prepinacu se musi behem behu nejakym zpusobem testovat, takze tam bude spousta dalsich "if" navic, nez ma tvuj programek, takze je samozrejme, ze tvuj program bude rychlejsi. Je to asi neco podobneho, jako kdybys zkousel srovna rychlost tveho programu, ktery spocita "1+1" a zobrazi vysledek a nejakeho jineho programu, ktery umi zpracovat a vypocitat jakykoliv zadany matematicky vyraz.
Takze rychlostne sice grep nepredci, ale kdyz budes chtit pokazde hledat trosku jinym zpusobem (rozumej implementovat nejakou grep funkcionalitu), tak na tom stravic o hodne vic casu a navic skoncis mozna na stejne rychlosti jako grep, nebo mozna jeste hur.
Lepsi nez neco zacnes bastlit, tak si projdi linuxove utilitky (tady tusim vychazel/vychazi nejakej serial o linuxovych utilitkach) a zkus najit nejakou, ktera umi to, co ty chces (v manu pak hledej detaily). Obcas musis svuj pozadavek rozlozit na mensi casti a pak to prohnat pres rouru nekolika utilitkama.
find KDE_HLEDAT -type f -not -path '*/.svn/*' -print0 | xargs -0r grep -lFI HLEDANY bez "-i" a s "-I" (binarni soubory ignorovat).
real 0m0.141s