Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.
Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.
V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »
Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s
… více »Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.
U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).
Vládní CERT upozorňuje (𝕏) na sérii bezpečnostních záplat (CVSS 9.9) v produktech Cisco řešících kritické zranitelnosti umožňující obejití autentizace, eskalaci oprávnění, vzdálené spuštění kódu a odepření služby. Úspěšné zneužití může útočníkům umožnit získat neoprávněný přístup k dotčeným systémům, kompromitovat zařízení Cisco Catalyst SD-WAN a Cisco IOS XE, spustit libovolný kód, zpřístupnit citlivé informace nebo narušit dostupnost postižených systémů.
Soud v americkém státě Nové Mexiko ve čtvrtek nařídil internetové společnosti Meta Platforms zaplatit 567 milionů dolarů (téměř 12 miliard Kč) za újmy, které její platformy působí mladým lidem. S přihlédnutím k dřívějšímu verdiktu tak má společnost celkem zaplatit 942 milionů dolarů, což je malý zlomek jejího ročního výnosu, který loni činil 60 miliard dolarů. Čtvrteční verdikt firmě také nařizuje, aby změnila způsob, jakým její
… více »Mark Russinovich (CTO v Microsoft Azure) se na LinkedIn pochlubil svým projektem MS Paint Doom napsaným pomocí Claude. Hru Doom umožňuje hrát v programu Malování (Microsoft Paint). Malování funguje jako monitor. Herní engine (ViZDoom) běží na pozadí a každý vykreslený snímek hry vkládá automaticky přes schránku (clipboard) do Malování.
Platformy ChatGPT i Roblox by mohly být zařazeny na seznam mimořádně velkých on-line platforem nebo internetových vyhledávačů, na něž se vztahují zvláštní podmínky podle nařízení o digitálních službách (DSA). Vzhledem k tomu, že ChatGPT i Roblox oznámily počet uživatelů nad prahovou hodnotou DSA, je toto označení „rozhodně možné“ a mohlo by „přijít dříve či později“. On-line platformy a vyhledávače zařazené na seznamy DSA musejí
… více »
Podstatná část dat, která uživatel předává serveru je předávána přes formulář, který uživatel vyplní a odešle na server. Tam je ověřeno, zda jsou data validní a případně zpracovány. Zend obsahuje třídu Zend_Form, která krom toho, že umožňuje vytvořit formulář a získat z něj data navíc umožňuje další věci, jako navěšení validátorů pro validaci obsahu, přidání filtrů a nebo obalení jednotlivých elementů formuláře HTML tagy. Toto vše ani nemusíme provádět v php kódu, celý formulář totiž můžeme definovat v konfiguračním souboru. Osobně ale nejvíce oceňuji právě možnost přidání validátorů, případně filtrů, na jednotlivé elementy, přičemž většina běžně používaných validátorů i filtrů je již v Zendu implementovaná.
Po vytvoření formuláře obvykle jako první nastavíme akci, která se provede při odeslání formuláře a metodu, jakou se budou předávat data:
$form = new Zend_Form();
$form->setAction('/zendTest/login/auth')
->setMethod('post');
Pomocí metody setAttrib('attribName','attribValue') můžeme formuláři nastavit jakýkoli další atribut. Elementy formuláře vytvoříme zavoláním metody createElement('elementType', 'elementName'). Na elementy formuláře pak můžeme navěsit validátory (a filtry):
$login = $form->createElement('text', 'username');
$login->addValidator('alnum')
->addValidator('stringLength', false, array(5))
->setRequired(true)
$passwd = $form->createElement('password', 'passwd');
$passwd->addValidator('StringLength', false, array(5))
->setRequired(true)
V tomto příkladě jsme vytvořili dva elementy formuláře, pole pro zadání uživatelského jména a pole pro zadání hesla. Obě políčka musí být vyplněná (setRequired(true)) a obsahovat minimálně pět znaků (addValidator('StringLength', false, array(5))). První parametr metody addValidator je jméno validátoru, druhý říká, zda má pokracovat vyhodnocování dalších validátorů, pokud podmínka aktuálního validátoru není splněná a poslední předává další parametry potřebné pro vyhodnocení. První validátor (alphanum) vyžaduje, jak již název napovídá, aby login uživatele obsahoval jen alfanumerické znaky.
Filtry by se přidávaly obdobně:
$login->addFilter('StringtoLower');
Seznam všech již naprogramovaných filtrů a validátorů naleznete v manuálu a pokud vám nebudou vyhovovat, můžete si napsat vlastní.
Na závěr oba prvky přidáme do formuláře (zatím jsme je jen vytvořili, ale nikoli přidali do formuláře) a přidáme ještě poslední element - tlačítko pro odeslání:
$form->addElement($login)
->addElement($passwd)
->addElement('submit', 'login', array('label' => 'Login'));
Formulář pak předáme do view:
$this->view->form = $form;
$this->render('showform');
a ve view (showform.phtml) zobrazíme:
<?= $this->form ?>
Zda jsou data odeslaná přes formulář validní zjistíme zavoláním metody isValid():
$form->isValid($_POST)Pokud ano, data z formuláře můžeme získat několika způsoby, např:
$values = $form->getValues();(a nebo třeba přímo z requestu:
this->_request->getPost('username'))
Na závěr se ještě letmo zmíním o dekoratérech - prvcích, které elementy formuláře obalují HTML tagy. Opět platí, že si můžeme definovat vlastní. Pokud neučíme jinak, jsou k formuláři připojeny tyto čtyři dekoratéry:
ViewHelper - nastavuje view helper, který se použije k renderování elementu
Errors - přidává chybová hlášení (typicky když selže validace)
HtmlTag - obaluje element (a chyby s ním spojené) daným HTML tagem (defaultně nastaveno na <dd>)
Label - přidává tag <dt>
removeDecorator('name') na daném elementu:
$login->removeDecorator('Errors');
Celý kontroler pro přihlášení uživatele (zatím bez autentizace uživatele, jen odelání formuláře) by mohl vypadat takto (příklad je až na drobné úpravy celý převzatý z manuálu Zendu):
<?php
class LoginController extends Zend_Controller_Action
{
public function getLoginForm(){
$form = new Zend_Form();
$form->setAction('/zendTest/login/auth')
->setMethod('post');
$login = $form->createElement('text', 'username');
$login->addValidator('alnum')
->addValidator('stringLength', false, array(5))
->setRequired(true)
->removeDecorator('Errors');
$passwd = $form->createElement('password', 'passwd');
$passwd->addValidator('StringLength', false, array(5))
->setRequired(true)
->removeDecorator('Errors');
$form->addElement($login)
->addElement($passwd)
->addElement('submit', 'login', array('label' => 'Login'));
return $form;
}
public function indexAction(){
$this->view->form = $this->getLoginForm();
$this->render('showform');
}
public function authAction(){
if (!$this->getRequest()->isPost()) {
return $this->_forward('index');
}
$form = $this->getLoginForm();
if (!$form->isValid($_POST)) {
$this->view->form = $form;
return $this->render('showform');
}
// authentization
// ...
}
}
Tiskni
Sdílej:
Aspon podle www.pravidla.cz slovo dekoratér neexistuje. Stejne tak slovnik.cz dekorator neprelozi, ale dekorater prelozi mimo jine i jako decorator.
muzu se optat jakej je rozdil, ve volani metody? diky
$this -> getLoginForm();
a
self::getLoginForm();