V linux-cve-announce bylo oznámeno 433 zranitelností za jediný den (19. července).
Byla vydána nová verze 5.44 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 71 vývojářů. Změněno bylo přibližně 270 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.
Na 23. září 2026 je do bratislavské Nové Cvernovky naplánovaná jednodenní konference #nobullshit.camp pro tech leadery, DevOps a platform inženýry. Mají tu zaznít upřímné příběhy z praxe o tom, co v produkčních systémech reálně fungovalo, co se pokazilo a co si z toho lidé odnesli. Témata pokrývají tři oblasti – DevOps a platformy (Kubernetes, cloud, provoz systémů), firemní kulturu a leadership. Program běží ve dvou formátech: hlavní
… více »Byla vydána nová verze 1.58 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Josephine Pfeiffer. Vypíchnout lze možnost nmtui zobrazit nastavení Wi-Fi jako QR kód nebo podporu CLAT (464XLAT) a tunelů GENEVE (Generic Network Virtualization Encapsulation).
Zákaz používání mobilních telefonů a dalších elektronických komunikačních zařízení ve školách, jehož uzákonění navrhli jako poslanci premiér Andrej Babiš (ANO) a ministr školství Robert Plaga (za ANO), dnes podle očekávání vláda podpořila. Novinářům to oznámil Babiš, podle Plagy byla podpora kabinetu jednomyslná. Účinnost předkladatelé navrhují od 1. září 2027. Podle opoziční ODS je plošný zákaz líbivé populistické opatření namířené proti digitální gramotnosti dětí.
Vládní CERT upozorňuje (𝕏) na zranitelnost ve WordPress Core: CVE-2026-63030 s přezdívkou wp2shell. Zranitelnost typu vzdálené spuštění kódu (RCE) bez nutnosti autentizace umožňuje útočníkovi spouštět libovolný kód prostřednictvím endpointu WordPress REST API Batch. Ke zneužití není vyžadován platný uživatelský účet ani interakce uživatele. Úspěšné zneužití může vést ke kompletnímu kompromitování webové stránky a souvisejících dat. Zranitelnost postihuje verze WordPress 6.9.0 až 6.9.4 a 7.0.0 až 7.0.1.
Evropská komise (EK) vyměřila čínskému internetovému prodejci AliExpress pokutu 550 milionů eur (13,3 miliardy korun) za porušení povinností vyplývajících z nařízení o digitálních službách (DSA). Platforma podle EK řádně neposuzovala a neomezovala rizika související s prodejem nelegálních, nebezpečných nebo padělaných výrobků na svém internetovém tržišti. Komise zároveň firmě nařídila přijmout nápravná opatření. Podle AliExpressu je pokuta nepřiměřená.
Ruffle, tj. open source emulátor Flash Playeru napsaný v Rustu, byl vydán ve verzi 0.4.0. Ke stažení je také na Flathubu. Přímo ve webovém prohlížeči lze vyzkoušet online dema nebo vlastní swf soubory.
HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.
Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.
Regulární výraz (regular expression) je řetězec popisující celou množinu řetězců, neboli předpis pro podobné řetězce. Regulární výrazy programátorovi usnadní složitější prohledávání řetězců např. při kontrole vstupů nebo při parsování kódu (HTML, konfigurační soubory). Pokud chce uživatel v textu vyhledat nějaký řetězec, který nezná přesně, může zadat regulární výraz. Program pak nalezne všechny části textu, které danému výrazu odpovídají. Regulární výrazy v Pythonu pracují podobně jako zástupné znaky * a ? v shellu (místo * je možné vložit jakékoliv množství znaků, místo ? se vkládá jen jeden znak), mají však komplexnější využití.
Ve verzi 1.5 byla do Pythonu přidána podpora regulárních výrazů ve stylu Perl. Ta je zajišťována modulem re. V předchozích verzích byly regulární výrazy dostupné také, ale jednalo se o výrazy v emacsovém stylu (modul regex). Vzor regulárních výrazů je vždy zkompilován do byte kódu, který je poté zpracován srovnávacím kódem napsaným v jazyce C.
Vzhledem k tomu, že regulární výrazy často využívají speciální znaky a zpětné lomítko, je vhodné je zapisovat jako tzv. raw řetězce (r'\n' == '\\n').
Vzory regulárních výrazů se skládají z obyčejných znaků, které mají normální význam (např. "jméno", "Petr" atp.), a tzv. metaznaků. Jedná se o znaky, které mají speciální význam:
Potřebujete-li vyhledávat metaznak v jeho původním významu, můžete jej zpřístupnit přes zpětné lomítko (escapování).
Dále pak regulární výrazy v Pythonu umožňují pracovat se skupinami a obsahují speciálně předdefinované skupiny znaků - obojí si ukážeme v příštím díle.
Nutnou dávku teorie máme za sebou. Ukažme si nejdříve, jak se vlastně s regulárními výrazy pracuje:
>>> import re >>> retezec1 = "abcde" >>> retezec2 = "123" >>> vzor = re.compile(r"a+") >>> vzor.match(retezec1) <_sre.SRE_Match object at 0xb7bdf4b8> # pri nalezeni shody se vraci objekt Match, se kterym lze dale pracovat >>> vzor.match(retezec2) # v pripade,ze nebyla nalezena shoda, vraci None >>> re.match(r"[1-9]+?", retezec2) <_sre.SRE_Match object at 0xb7bdf560>
Jak je vidět, můžeme vzor nejdříve sami zkompilovat, což je vhodné při opakovaném porovnávání. V tomto případě voláme metody vráceného objektu. Funkce compile() může obsahovat ještě kombinaci parametrů, které se oddělují bitovým or ("|"):
Můžeme také volat funkci modulu re, které předáme pouze nezkompilovaný "raw string". Funkci je pak možné předávat stejné parametry jako výše. Modul obsahuje více funkcí (objekt zkompilovaného vzoru pak více metod); pro začátek se však omezíme pouze na match(). Na ostatní se zaměříme v dalších dílech.
Na závěr si předveďme několik příkladů, aby bylo jasně vidět, jak se zapisují vzory regulárních výrazů.
re.match(r"a+", retezec) # vyhleda 1 a vice znaku a
re.match(r"a*", retezec) # vyhleda 0 a vice znaku a
re.match(r"o?kov", retezec) # vyhleda okov nebo kov
re.match(r"tel(efon)?$", retezec)
# vyhleda tel nebo telefon na konci retezce
re.match(r"^[0-9]{2}$", retezec)
# vyhleda dvouciferne desitkove cislo (00 az 99),
#+ktere je jedinym obsahem retezce
re.match(r"[0-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]+", retezec)
# vyhledava hexadecimalni cisla
re.match(r"(19|20)[0-9]{2}", retezec)
# vyhleda letopocet mezi roky 1900 a 2099
re.match(r"a\+b", retezec) # vyhleda 'a+b'
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
re.match(r"(19|20)[0-9]{2}", retezec)
# vyhleda letopocet mezi roky 1900 a 2050
hmm, možno tak v pythone
) Všade inde by bolo treba opraviť buď prvý riadok
m/(?:19\d{2})|(?:20[0-4]\d)|2050/
alebo druhý riadok# vyhleda letopocet mezi roky 1900 a 2099 (vrátane)

m/^(?:0|(?!0)[0-9a-f]+)$/i
die "Zadany retezec neobsahuje letopocet od 1900 do 2099.\n" if $retezec !~ /(19|20)[0-9]{2}/;
?
#!/usr/bin/env python
import re
year_str = '1801d'
if not re.match('(19|20)[0-9]{2}', year_str):
raise SystemExit, 'Chyba formatu letopoctu'
nebo takhle
year_str = '1801d'
try:
rok = int(year_str)
except ValueError:
raise SystemExit, '"%s" nelze prevest na cislo.' %year_str
if rok < 1900 or rok > 2099:
raise SystemExit, 'Rok %d je mimo interval 1900 a 2099.' %rok
die prostě ukončí interpreter Perlu, takže v Pythonu by tomu odpovídalo exit. Výjimka se dá pomocí except zachytit a zpracovat ...
<rejp>