V neděli 30. června skončí (EOL) podpora CentOS Linux 7.
David Tschumperlé a Garry Osgood v obšírném článku se spoustou náhledů shrnují vývoj multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie) za poslední rok.
Andrew S. Tanenbaum byl oceněn 2023 ACM Software System Award (Wikipedie) za operační systém MINIX.
Celkový počet stažení aplikací z Flathubu překročil 2 miliardy. Aktuální Statistiky Flathubu: Celkový počet stažení 2 002 793 783. Celkem desktopových aplikací 2 636.
Byla vydána nová verze 4.8.0 programu na úpravu digitálních fotografií darktable (Wikipedie).
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 142 (pdf) a HackSpace 79 (pdf).
Qtractor (Wikipedie) dospěl do verze 1.0.0. Jedná se o Audio/MIDI vícestopý sekvencer.
Byl vydán svobodný kancelářský balík OnlyOffice Docs 8.1. Vedle četných oprav přináší několik funkcí včetně podpory editace textu v PDF a vytváření formulářů v PDF.
Daniel Stenberg, autor nástroje curl, z databáze SteamDB zjistil, že aktuálně 22 734 her na Steamu používá curl.
Společnost Anthropic vydala Claude 3.5 Sonnet, tj. novou verzi své umělé inteligence Claude (Wikipedie). Videoukázky na YouTube. S Claude 3, stejně jak s GPT-3.5, Llama 3 a Mixtral, si lze pokecat bez přihlašování na DuckDuckGo AI Chat.
public function beginTransaction() { if ($this->transLevel === 0) { $this->connection->beginTransaction(); } else { $this->connection->exec("SAVEPOINT LEVEL{$this->transLevel}"); } $this->transLevel++; } public function commit() { $this->transLevel--; if ($this->transLevel <= 0) { $this->transLevel = 0; $this->connection->commit(); } else { $this->connection->exec("RELEASE SAVEPOINT LEVEL{$this->transLevel}"); } } public function rollBack() { $this->transLevel--; if ($this->transLevel <= 0) { $this->transLevel = 0; $this->connection->rollBack(); } else { $this->connection->exec("ROLLBACK TO SAVEPOINT LEVEL{$this->transLevel}"); } }V kódu se to používá takto:
for ($raceI = 0; $raceI <= 10; $raceI++) { $inTransaction = false; try { $this->dbConnection->beginTransaction(); $inTransaction = true; ... NEJAKE DOTAZY, KTERE MOHOU ROVNEZ OBSAHOVAT TAKOVE KONSTRUKCE $this->dbConnection->commit(); break; } catch (\PDOException $e) { if ($inTransaction) { $this->dbConnection->rollBack(); } if ($e->getCode() != 40001 || $raceI === 10) { // pouzivam serialize izolaci, proto vice pokusu throw $e; } } }Konkrétní problém je ten, že očividně proběhne někdy více rollbacků než je otevřených transakcí. Co mám na tomto kódu špatně? Jedině snad, že by beginTransaction ve skutečnosti někdy tiše selhala, ale to snad není ani možné ne?
SQLSTATE[40001]: Serialization failure: 7 ERROR: could not serialize access due to read/write dependencies among transactions DETAIL: Reason code: Canceled on identification as a pivot, during commit attempt.Poradí mi někdo zkušený, zda je zaručeno, že commit zkončený chybou vždy způsobí ukončení transakce resp. daného SAVEPOINT?
Use COMMIT or ROLLBACK to terminate a transaction block.
Tiskni
Sdílej: