Byla vydána nová verze 3.2.6 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.
Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.
Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.
V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.
Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
Google Chrome 153 byl prohlášen za stabilní. Nejnovější stabilní verze 153.0.8010.36 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 230 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.
Apple dnes představil (YouTube) iPhone Duo, iPhone 18 Pro, Watch Series 12, Watch Ultra 4 a AirPods 5.
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: