Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 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.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
RTFM - Read Tumič's FlaMes!
Moje první C++ GUI.
Přesto, že o mě někteří prohlašují, že jsem programátor (lež má krátké nohy!) a některým se to i snažím předstírat, s programováním GUI aplikací, neuvažujeme-li webové aplikace, mám zkušenosti menší než malé. Kdybych použil parafrázi slavného výroku Doc. Pluháčka o jeho programech pro DOP, znělo by to asi takto: "Kdybychom spočítali všechny mé GUI programy, došli bychom asi tak k číslu 0".
Toto je ale dneškem počínaje již historie a na mě čekají světlé zítřky pojídačů koláčků a lepičů kódu zvaných "programátoři aplikací". QSS (Qt Sudoku Solver) je tady! Jak si již bystřejší z vás všimli, jako toolkit jsem zvolil QT. Splňuje totiž několik důležitých parametrů - je pro C++, je multiplatformní a hlavně má poměrně dobrou a hlavně PŘEHLEDNOU dokumentaci. Nicméně cesta ke QT nebyla tak jednoduchá, jak by se mohlo zdát. Původně jsem chtěl pro návrh GUI použít QT Designer, nicméně praxe ukázala, že chce-li člověk něco jenom trochu nestandartního, nezbude mu stejně nic jiného, než si to napsat "ručně".
V tenhle okamžik jsem na čas QT znechuceně opustil (jsem přece klikač, žádnej programátor!) a raději si stáhl MS Visual Studio. Jaký bylo ale moje překvapení když jsem zjistil, že v případě C++ aplikací mi pšenka nepokvete ani u MS - V MSVC jsem pro C++ totiž pro jistotu neobjevil žádnej GUI designer a "šablony" zdrojových kódů pro GUI aplikace vypadaly ještě 1000x děsivěji, než ty pro QT... Ze zkratek jako MFC mi šla hlava kolem, navíc jsem se v celém IDE naprosto ztrácel (Tak to dopadá, když si amatér stáhne verzi "Professional"...). Následoval tedy útěk zpět k QT a studování dokumentace a tutoriálů, které jsou ale jak už se zmiňuju výše, poměrně "user-driendly".
A výsledek? Nakonec to vypadá a funguje přibližně tak jak jsem zamýšlel. I u takhle primitivní aplikace jsem ale narazil na 2 bugy v QT:
QIntValidator
ignoruje dolní mez (pane.cpp : 32
)setFixedSize()
nenastavuje minimální rozměr (gui.cpp : 62
)P.S: Hlavně v tom nehledejte žádnej "vymazlenej" algoritmus na řešení sudoku - to co je v programu použitý je první co mě napadlo aniž bych někde studoval jak se sudoku automaticky řeší. Za čtvrt hodinky to "chodilo" a když jsem zjistil, že zadání z lidovek to řeší "instantně", dál jsem si s tim nehrál (Existují ale i zadání, například z Minimal sudoku, kde si na výsledek počkáte až 20s).
Tiskni
Sdílej:
Textově orientovanou utilitku ti můžu nabídnout, tančící propoje si ale už budeš muset implementovat sám...
Problém je spíš v tom, že tyhle "pokročilý" techniky jsou většinou poměrně složitý na pochopení a implementaci a ne všude se vyplatí se s tim babrat. Podívejte se třeba na ASM demo scénu - existují 3D FPS kvality Dooma 3, které mají 100kB, ale vývoj něčeho takovýho pro reálný použití by byl strašně neefektivní.
Proto sem se například netrápil s nějakými "tančícímy propoji" a použil "obyčejný" backtracing. Sudoku je NP problém, takže přesto, že ten Knuthův algoritmus bude asi efektivnější, rozhodně s ním nezískám oproti mému backtracingu tolik, co bych musel vynaložit do jeho studia... Kdybych chtěl program urychlit, tak před spuštěním backtracingu provedu možné "logické" dopočítání matice, což IMHO urychlí řešení úplně nejvíc...
Problém je spíš v tom, že tyhle "pokročilý" techniky jsou většinou poměrně složitý na pochopení a implementaci a ne všude se vyplatí se s tim babrat.Jasně, pro takovouhle hříčku je to pochopitelně overkill, ale taky skvělá příležitost se něco naučit. Záleží, proč to píšete.
Proto sem se například netrápil s nějakými "tančícímy propoji" a použil "obyčejný" backtracing. Sudoku je NP problém, takže přesto, že ten Knuthův algoritmus bude asi efektivnější, rozhodně s ním nezískám oproti mému backtracingu tolik, co bych musel vynaložit do jeho studia...Algoritmus X se taky implementuje backtrackingem (protože je nedeterministický), zfetované spoje jsou jenom způsob, jak o řád snížit jeho složitost (pokud dobře cituju). Ono by to asi mělo smysl pro řešení Sudoku ne 9x9, ale 9e9x9e9 :) A ačkoliv zrovna tohle je nesmysl, leckdy musí člověk řešit problémy netriviálních rozměrů, kde jsou tyhle pokročilé techniky potřeba. A pak dost chybí byť povědomí, že existují.
...leckdy musí člověk řešit problémy netriviálních rozměrů, kde jsou tyhle pokročilé techniky potřeba. A pak dost chybí byť povědomí, že existují.
Pokuď má někdo řešit takové úlohy, tak se snad předpokládá, že má nějaké vzdělání v oboru a minimálně ví, že existuje něco jako "The Art of Computer Programming", "Introduction to Algorithms" a podobné programátorské "bible".
Dokuď tihle "odborníci" zůstanou u webů a firemních sítí, a nevrhnou se na řízení jaderného zbrojního arzenálu, medicínskou techniku či jiné skutečně kritické oblasti tak je to čistě problém jejich zaměstnavatelů. Pokuď jim stačí děravá síť a IE-only web tak ať si zaměstnávaj pojídače koláčků. A pak - co já bych mohl asi tak dělat, kdyby všude brali jenom "opravdové programátory" a skutečné IT odborníky?!
nevrhnou se na řízení jaderného zbrojního arzenálu, medicínskou techniku či jiné skutečně kritické oblastiLidé v těchto kritických oblastech nejsou v ničem jiní, než ti od webů a sítí. Zapomínají, dělají chyby, prostě nejsou dokonalí.
"The Art of Computer Programming", "Introduction to Algorithms" a podobné programátorské "bible"Ale jistě... ovšem proč bych měl v Introduction to Algorithms hledat něco takovéhohle? A taky to tam, pokud můžu soudit podle obsahu a rejstříku, není. V TAOCP taktéž. O red-black stromech, B stromech, hashování a podobných záležitostech se dozvíte nejpozději ve druháku na vysoké škole. Ale máte snad sledovat ACM sborníky, abyste se dozvěděl o něčem vychytanějším (pochopitelně pro mnohem užší skupinu problémů, což je důvod, proč je zbytečné je hledat v běžných programátorských biblích)? Jasně, zveličuju a dá se říct, že vytvářím umělý problém, protože přinejmenším na webu se toho dá najít strašné množství. Mně by se holt líbila ta knížka; když si představím titul Hardcore programovací techniky a datové struktury, vyloženě se mi sbíhají sliny :)
A dovedete si představit, jak by ta knížka byla obsáhlá, když už zmiňované TAOCP neni zrovna žádnej rodokaps? To by byla celá knihovna... Obávám se, že google je mnohem flexibilnější řešení