Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního
… více »Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.
Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.
KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.
Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.
Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).
Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.
Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.
V případě příchodu znaku x se přepne do stavu X a ten neopustí, dokud nenačte znak yV tom případě máš drobnou chybku v obrázku u svislé šipky ze stavu X do Y.
deb http://ftp.cz.debian.org/debian jessie main contrib non-freedeb http://ftp.cz.debian.org/debian jessie main contrib non-freehledej1("y") --> x*y+ nalezen (0, 1)
To je velmi optimistický výsledek...
Nemělo by to na osamocené „y“ mlčet?
No jo, dobrou a díky...
Přečtu celé, až budu v použitelném stavu...

Ještě by mě zajímalo, co je to "věta" (zmiňovaná v perexu a ještě v článku), já znám jenom písmeno (nebo symbol) a pak už jenom jazyk.
David
.
Moc pekny clanek, jak funguje grep me vzdycky zajimalo.
Jenom tenhle kus kodu mi prijde nejaky podezrely. javascript neznam, ale misto toho prvniho break bych videl radsi case ;)
break states.Y:
if (ch != "y") { kon = i - 1; st = states.F;}
break;
. Jen drobnost: pokud me pamet nesali, tak u prvniho obrazku urcite neni koncovy stav Y, ale S, protoze v grafu se pocatecni stav oznacuje "sipkou odnikud do stavu" a koncovy (akceptujici) "dvojitym koleckem", takze na tom obrazku je S pocatecni a zaroven koncovy stav...
A pokud si chce nekdo trochu pohrat, doporucuju stahnout pekny simulator automatu v Jave ze stranek http://ozark.hendrix.edu/~burch/proj/autosim/
A navic je to proste bajecne nazorne. Je to parada.
Jen bych se mozna primluvil za to, aby uvadene priklady byly spravne. Sice jsem si s prvni implementaci x*y+ hral, ale zrovna mne nenapadla kombinace, na ktere je chyba tehle implementace videt a z toho kodu jsem to taky nejakou dobu musel lustit nez jsem prisel na to co je blbe a jak to (mozna, nemam overeno) udelat spravne. Popravde, kdyby to autor nezminil, tak bych na chybu sam od sebe asi neprisel.
Jinak mam teda par laickych dotazu:
Ad sipka X, Nechapu proc je v prvnim obrazku (SXY) u prechodu X->Y sipka oznacena X, a to ani po upozorneni Kralik_, ze je to NKA (coz si nejsem moc jisty). Podle "selske" logiky bych tam dal Y. Jsem ve stavu X, kdyz narazim na dalsi X, tak zustavan ve stavu X (kruhova sipka k X oznacena X), kdyz narazim na cokoliv jineho krome X a Y tak jdu zpet do S (sipka k S oznacena !y, coz je skoro jako S
) a pokud narazim na Y tak jdu ze stavu X do stavu Y (sipka oznacena X?!, to mi spis sedi Y, jak navrhoval diverman v druhem prispevku).
Dotaz 1: proc je tam X ?
Ad NKA, na mne to schema spis pusobi pomerne "urcite" co se tyce pravidel pro prechody mezi stavy. Pokud neco, tak bez touto a jenom touto cestou tamhle.
Dotaz 2: proc by to mel byt NKA ?
Ad konecny stav, pochopil jsem notaci, ze sipka od nikud do stavu oznacuje start a dvojite kolecko oznacuje konecny stav. Coz zjevne vypada jak bylo zmineno vyse, ze zacatek je shodny s koncem. Dava to v teto uloze smysl ?
Dotaz 3: kde je teda konecny stav ? A pokud je v S tak proc ?
Ad prechodova tabulka, jasne a pochopitelne az na nezodpoveznou poznamku divermana o prechodu Y->S po precteni x
Dotaz 4: jdu skutecne do ... S
po precteni x ve stavu Y ? Pokud ano, melo by to byt v obrazku ?
Ad ostatně moje implementace pracuje špatněPomohla by pridat pred posledni podminku jeste jednu ?
if ( byloX && !byloY && ch != "y") { byloX = false; zac = 0; kon = 0;}
Dotaz 5: Opravil by muj navrh na pridani podminky tu implementaci ?
Diky moc za pripadne odpovedi a srry za takovou zbesilou tapetu, ale pro lidi co nemaji potrebnou vysokou skolu je dobre, kdyz se i v trivialitach ujisti. Je to lepsi nez stavet na necem co je blbe
) "akceptujici stav". Tento stav neni vyjimecny tim, ze se v nem vypocet zastavi, jak by mohlo napovidat slovo "koncovy", ale tim, ze pokud dojdou pismenka na vstupni pasce a automat je zrovna v tomto stavu, pak je slovo "akceptovano", tedy uznano za spravne. Pokud by dosla pismenka a automat byl v jinem stavu, nez v nekterem z akceptujicich, je slovo zamitnuto, tedy prohlaseno za spatne. Pekne je to videt pri simulaci v tom simulatoru, co jsem dal odkaz vyse.
Ad 4: Ve stavu Y smim cist jen znaky y. Spravne by mel mit automat jeste jeden neakceptujici stav (jednoduche kolecko), kam by byl automat "nasmerovan", pokud by ve stavu Y precetl cokoliv jineho nez y. Sipka not(y) do S je taky zbytecna, protoze predpokladam, ze mame abecedu {x,y}, takze not(y) je x a pod tim se cykli nad X (prechod do S vnasi jen nedeterminicnost a vynucuje dve x za sebou). Pokud mel autor na mysli "sirsi" abecedu, pak ma not(y) jit do zmineneho noveho neakceptujiciho stavu, protoze slova obsahujici jakykoliv jiny znak nez x a y neodpovidaji x*y+. Navic prechod do S umoznuje akceptaci slov jako treba xzxy, coz jiste neodpovida x*y+, tedy pokud se bavime o automatech a ne o vyhledavani retezce x*y+ v nejakem jinem retezci. To take implikuje, ze z Y pod x rozhodne nejdeme do S. Umoznili bychom akceptaci napr. slova xyxy a to neodpovida x*y+, ackoliv tento "patern" obsahuje hned dvakrat. Samozrejme je tu opet ona nejasnost, jestli se bavime o automatech nebo o implementaci vyhledavani regularnich vyrazu v retezci za pouziti automatu. Ze clanku mi to neni zcela jasne.
Y je koncovy stav proto, ze pokud jsme v nem, mohli jsme projit lib. poctem pismen x a alespon jednim y (at uz to y bylo bez x nebo ne).
A jestli by ten navrh opravy neco spravil se mi opravdu ted nechce zjistovat. Ten kod je totalne necitelny, jak pravil koneckoncu i autor
To x nad sipkou ze stavu X do Y je samozrejme spatne -- patri tam y (to je to alespon jedno y, ktere tam musi byt kvuli +). NFA je to proto, ze z jednoho stavu vede vice sipek s x. To je ten nedeterminismus. Konecny automat cte ze vstupni pasky jednotliva pismenka a kdyz dorazi do stavu X a zrovna ma cist dalsi pismenko x, tak nevi, kudy ma jit. Pokud by byl ten obrazek spravne (viz vyse), bude ten automat DFA (deterministicky), protoze v zadnem ze stavu neni moznost jit vice jak jednou cestou skrze jeden znak.Njn, pokud je nad sipkou "y" a pokud not(y) znamena cokoliv jineho krome x a y, pak nepovede z jednoho kolecka vice sipek ze stejnym pismenkem => je to spis DKA podle toho co rikas. Pokud ale not(y) zahrnuje i moznost "x" (bezohledu na to, ze tato moznost uz je tam konkretne zminena tou kruhovou sipkou), pak opravdu bude kolecko X s vice stejnymi moznostmi "uniku" a pak je to jednoznacne NKA jak pises. A pokud by byl obrazek spravne tak by opet bylo vice stejnych vetvi s jednoho kolecka a pak by to spis byl NFA ne ? Ted mi teda zbyva otazka, jak je to s tim not(y) v tomto pripade ? PS: jinak ostatni bylo velice pochopitelne napsano, diky :-}
. Nuze k tomu "not": nejak si nevybavuju, ze bychom ho vubec v automatech pouzivali. Kazdopadne bych to not intuitivne definoval tak, jak to byva obvykle, tedy not(y) je vsechno krome y (nezavisle na jinych sipkach do jinych stavu). Spis si vybavuji, ze jsme nad sipku vypisovali vsechny znaky, pod kterymi se do daneho stavu prechazi. Je to proto, ze se automaty vetsinou probiraji nad nejakou "malou" abecedou, napr. {x, y} nebo {a, b, c, d}, aby to bylo nazorne a prehledne. U toho obrazku postradam exaktni definici abecedy, nicmene pokud jsme si ve cvikach abecedu nedefinovali, vzdycky jsme pocitali s tim, ze abeceda ma jen pismenka obsazena v grafu. Proto je to "not" ponekud nelogicke. Pri abecede {x,y} je not(y)=x. Pokud ma mit abeceda vice pismen, pak chybi definice (a navic jsou pro tuto ulohu jina pismena zbytecna).
A ted k te determinite:
Tak jak je to v obrazku je to jednoznacne NEDETERMINISTICKE (NFA) a to kvuli stavu "X". Z nej vede smycka pod x, sipka do Y pod x a sipka do S pod not(y), coz je take x.
Pokud obrazek opravime, odstranime not(y), ktere je chybne, a zamenime x za y v preklepu pri prechodu z X do Y, pak je to DFA, protoze z S jde po jedne sipce pod x a pod y, z X jde smycka pod x a sipka pod y a z Y je jen smycka y. Nikde tedy neni vic jak jedna sipka z jednoho stavu pod stejnym znakem. (Samozrejme tou opravou myslim opravu chyb v obrazku a ne algoritmicky postup, jak prevest NFA na DFA.)
Tiskni
Sdílej: