Tento týden (24. a 27. června) vyprší platnost Microsoft certifikátu v UEFI vydaných v roce 2011. Nové certifikáty byly vydány v roce 2023. Kdo na počítačích, i virtuálních, používá zabezpečené spouštění (Secure Boot), měl by si ověřit, že má certifikáty aktualizovány, viz např. články na Red Hat nebo Fedora. Pro stávající systémy se nic nemění. Nadále se budou normálně spouštět. Zavaděče podepsané pouze klíčem z 2023 se ale na počítačích s pouze certifikátem 2011 nespustí. Ve Fedoře je zavaděč shim ve verzi 16.1-6 podepsán klíči 2011 i 2023.
Uživatelé mobilních telefonů s Linuxem si nyní mohou nainstalovat aplikaci Mobilní Datovka. Díky tomu je přístup k datovým schránkám dostupný i na zařízeních s mobilními linuxovými distribucemi, jako jsou například Mobian, NixOS Mobile, pmOS atd. Aplikace je dostupná na Flathubu.
Software Freedom Conservancy v novém dokumentu shrnuje doporučení, jak přistupovat ke generativní AI založené na LLM při přispívání do svobodného a open-source softwaru. Mimo jiné vyzývá k obezřetnosti, transparentnosti a revizi generovaného kódu člověkem.
Byla vydána nová verze 5.6.0 programu na úpravu digitálních fotografií darktable (Wikipedie).
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.
Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.
Po šestiletém úsilí byla z jádra Linux odstraněna funkce strncpy(). Všechna předchozí volání této funkce byla převedena na bezpečnější alternativy.
Byla vydána nová verze 261 správce systému a služeb systemd (Wikipedie, GitHub). Z novinek lze vypíchnout nový subsystém IMDS (Cloud "Instance Metadata Service"), nový příkaz storagectl nebo novou komponentu systemd-sysinstall.
Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).
Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].
Zdravim,
pisu takovy maly PHP+MySQL ukolnicek a zasekl jsem se na funkci addTodo() kde pomoci multi_query pridavam do databaze novy zapisek. Problem je, ze pridani do DB probehne jenom nekdy. Nepodarilo se mi vypatrat zadnou souvislost s nicim, zadne pominene chovani, proste uplne nahodne. Kod vypada priblizne takto (zkousim ruzne pokusy aby se to rozbehlo):
public function addTodo($author, $priority, $deadline, $text, $labels)
{
$enteredDate = $this->todayDate();
$query = "START TRANSACTION;\n";
$query .= "SELECT @IDT:=MAX(idtodo)+1 FROM Todos;\n";
$query .= "SELECT @IDU:=idusr FROM Users WHERE username=\"".$author."\";\n";
$query .= "INSERT INTO Todos VALUES (";
$query .= "'0', @IDU, @IDT, '".$priority."', '".$enteredDate."', ";
$query .= "'".$deadline."', '".$text."');\n";
$query .= "COMMIT;";
echo "<pre>".$query."</pre>";
if ( $this->db->multi_query($query) )
{
echo "SQL DOTAZ je OK<br>";
}
return true;
}
Pri vykonavani ten SQL dotaz vypada napriklad takto:
START TRANSACTION;
SELECT @IDT:=MAX(idtodo)+1 FROM Todos;
SELECT @IDU:=idusr FROM Users WHERE username="demo";
INSERT INTO Todos VALUES ('0', @IDU, @IDT, '1', '2008-12-05', '2008-1-1', 'oo');
COMMIT;
Zkoušel jsem vyloučit data, místo SQL proměnných jsem použil vnořené selecty (to nefungovalo vůbec). Bez transakcí to dělá to samé. Zkoušel jsem všechno co mě napadlo a vážně už nevím (DB master zrovna nejsem).
Poznámky:
problém je s nějvětší pravděpodobností ve funkci addTodo()
$this->db->multi_query($query) je vždycky úspěšná (vždy vrátí TRUE) ať už se nový záznam v DB objeví nebo ne
Jako PHP používám PHP 5.2.7 with Suhosin-Patch 0.9.6.3, Apache 2.2.10, browser Firefox3, distro Archlinux
Díky moc za jakékoliv rady
Možná jsem zle vyjádřil chování. V praxi tohle: dám F5 a znovu pošlu data z formuláře do controlleru, ten je dá DB a ta je zapíše do DB. Vždycky všechno proběhne v pořádku (funkce mysqli hlásí úspěch), ale když ve vedlejším okně nechám vypsat tabulku, tak se nezmění. Dám znova F5, pošlu úplně ta samá data, úplně identický SQL dotaz, jen o pár vteřin poté a data se objeví v DB. Někdy musím dát F5 (znovuposlání dat) třeba i čtyřikrát, někdy je to okamžitě, ale nemá to žádný časový nebo množstevní charakter). Jen doufám, že je to nějaký typický newbie trap.
It's very important that after executing mysqli_multi_query you have first process the resultsets before sending any another statement to the server, otherwise your socket is still blocked. Please note that even if your multi statement doesn't contain SELECT queries, the server will send result packages containing errorcodes (or OK packet) for single statements. (-- http://cz2.php.net/manual/en/mysqli.multi-query.php)Škoda, že sem si ty komentáře nečetl dřív a pozorněji..
SELECT @IDT:=MAX(idtodo)+1 FROM Todos;
SELECT @IDU:=idusr FROM Users WHERE username="demo";
INSERT INTO Todos VALUES ('0', @IDU, @IDT, '1', '2008-12-05', '2008-1-1', 'oo');
Boha jeho!
Určitě by bylo lepší rovnou napsat co máš přesně na mysli 
Používat max() pro nové ID je nesmysl. Když někdo jiný v tu chvíli vloží jiný záznam, tak data nebudou konzistentní.
V MySQL použij auto_increment, v DB systémech, kde auto_increment není se používá sequence a trigger (např.).
btw: transakce je zbytecna, pro nove id pouzij jiz zminovany auto_increment a pro zjisteni id toho druheho vnoreny poddotaz a budes to met vsechno v jenom dotazu
Uz jsem rezignoval - na to kazdy musi prijit sam
Tiskni
Sdílej: