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 »Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).
Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
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
Tiskni
Sdílej: