Byla vydána nová verze 10.1 sady aplikací pro SSH komunikaci OpenSSH. Uživatel je nově varován, když se nepoužívá postkvantová výměna klíčů.
Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.
Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.
Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů
… více »Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
eDoklady mají kvůli vysoké zátěži technické potíže. Ministerstvo vnitra doporučuje vzít si sebou klasický občanský průkaz nebo pas.
Novým prezidentem Free Software Foundation (FSF) se stal Ian Kelling.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za září (YouTube).
Vyšla kniha Počítačové programy a autorské právo. Podle internetových stránek nakladatelství je v knize "Významný prostor věnován otevřenému a svobodnému softwaru, jeho licencím, důsledkům jejich porušení a rizikům „nakažení“ proprietárního kódu režimem open source."
Poslední dobou jsem trochu omezil seriály a začal programovat. Naučil jsem se trochu Qt 4; napsal jsem dvě hry.
Nejdřív jsem napsal fifteen, bylo to pro mě docela nový... sice už jsem se v Qt 4 něco snažil napsat někdy dřív, ale vzdal jsem to, protože jsem neměl dost zkušeností a nevěděl jsem si rady. Takže jsem se vždycky na něčem zasekl a dvě hodiny hledal co s tím Každopádně nakonec jsem to dal dohromady i s podporou libovolně velkých boardů... Ale bacha, evidentně to umístění tlačítek nemůžu dělat úplně náhodně, takže polovina her co to vygeneruje nejde dohrát, takže pokud vás někdo naštve, nechte ho zahrát si...
A následovaly piškvorky. Netušil jsem, že z toho vypukne taková herní mánie, ale co už. Tady bylo nejtěžší napsat gameover-check... Celkově to bylo složitější, musel jsem implementovat vlastní paintEvent a mousePressEvent. Nakonec jsem to ale nějak uplácal, i když s tím gameoverem nejsem úplně spokojenej... Nicméně funguje.
Co bude dál? No, dál jsem si říkal, že bych napsal hada (Snake z Nokie). Kámoš navrhnul ať napíšu "kurvy", tj. v podstatě multiplayer hada - kdo první nabourá, ten prohrál. Volitelně se budou dát procházet zdi a přemýšlel jsem o tom, že bych se naučil Qt síťování a napsal i síťovej multiplayer.
Uvítám věcný připomínky ke kódu. Psal jsem to celý ručně (nepoužíval jsem Qt Designer), abych se to naučil.
Git repa:
web: http://git.watzke.cz/?p=piskvorky.git;a=summary git: git://git.watzke.cz/piskvorky.git web: http://git.watzke.cz/?p=fifteen.git;a=summary git: git://git.watzke.cz/fifteen.git
Update: V Gitu piškvorek už je podpora pro libovolně velký boardy. V Gitu fifteen je opravená hra 4x4 a ten board je tam prozatím napevno (protože s jinýma generuje furt blbý hry). Už to generuje řešitelný hry na všech boardech
Tiskni
Sdílej:
SVN nestačí
To mě zajímá, pročpak nestačí?
ten github vypadá ok.Já jsem ti to říkal
00001 00001 00001 00001 00001
cat piskvorky | tr -d '\n' | grep -E '1.{4}1.{4}1.{4}1.{4}1'
{4} v regexpu se meni podle velikosti hraci plochy a hledaneho smeru
struct cell { cell* top; cell* bottom; cell* left; cell* right; cell* sikmo; ... int hrac; }
11111 00000 00001 00001 00001
cat tvuj_vstup | tr -d '\n' | grep -E '1.{0}1.{0}1.{0}1.{0}1'
00011 11100 00000 00000 00000
uvítám věcný připomínky ke kódu
v MainWindow::newGame(), nepomuze to resize( sizeHint()) vic nahore s tim FIXME? Nebo mozna explicitni activate() na layoutu? Nevim, co tohle presne je, ale tyhle druhy problemu se tak obvykle resi.Zkusil jsem dát resize hned za vytvoření boardu a za to ještě layout->activate(), ale nepomohlo to. Je to tam z toho důvodu, že když člověk vytvoří velkej board a potom menší, zůstane mu bez toho velký okno.
Vyřešeno v Gitu... to poslední teda zatím (doufám) funguje jen pro 4x4 boardy, takže jsem ten spinbox zatím schoval.
- jestli jsem neco neprehledl, tak 'QPoint* path;' staci proste 'QPoint path;' a pouzivat to hodnotou. Nemusi se pak resit nejake alokace nebo (jako tady) chybejici delete v destruktoru.
- 'size(-1)' mi prijde jako strasne zavadejici kus kodu
- 'int Board::size() const'
- 'QPair<QRect,Owner>(...)' - 'qMakePair(...)'
- polovina vsech moznych zadani patnactky nema reseni, proto se po generovani bud kontroluje resitelnost, nebo se to rovnou rozhazi systemem, ktery to necha resitelne. Urcite to pujde najit ve Wikipedii nebo Googlem.
qMakePair<QRect,Owner>(..
- zkus vynechat template parametry, tzn. qMakePair(...
, tipuju, že to funguje stejně jako std::make_pair
, tzn. že kompilátor si ty template parametry vydedukuje jednoznačně z parametrů funkce, což je dobré, protože je otrava tam ty parametry psát (a taky myslím, že přesně tak to myslel Luboš Luňák)
vim ~/.emacs
new
na vytváření objektů?
Pěkné piškvorky! Jěště bych k nim udělal CMakeLists.txt Nedávno jsem dostal přibližně stejný nápad (naučit se Qt a napsat v něm piškvorky). Dokonce jsem kvůli nim vytvořil projekt na SourceForge -- http://ttt-game.sf.net/