Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,742 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 165 místo. Karolina, GPU partition klesla na 195. místo a Karolina, CPU partition na 421. místo. Další přehledy a statistiky na stránkách projektu.
Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.
Byla vydána nová verze 14.3 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.
Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.
Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.
Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …
Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.
Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).
Tiskni
Sdílej:
Musel bys vymyslet nějakou databázi, která ukládá data i indexy nějakým způsobem přátelským k verzovacímu systému. Je otázka, jestli dá méně práce napsat databázi nebo verzovací systém – IMHO bude snazší udělat to verzování nad nějakým existujícím DBMS.
Určitě záleží na konkrétním případu: upvote by asi projít měl (ale jak už tu zaznělo, není to spíš přidání nové položky?)Zalezi na konkretni situaci, nekdy muze mit smysl si ukladat soucet, aby slo napriklad rychle seradit clanky podle poctu upvotu.
Uvažoval jsem i o variantě, že místo do fronty se změny ukládají jako nové řádky přímo do databáze, kde se jenom nějak označí. S tím je ale spojeno spousta různých problémů, pokud to vůbec nějak řešit jde, tak určitě ne jednoduše.
Mně to naopak přijde vhodnější, než do toho zatahovat JSON (resp. obecně nějaké denormalizované struktury uvnitř záznamů databáze). Při dotazování tě nezajímá, jestli jsou data ještě ve frontě nebo ne – prostě uděláš dotaz nad celou množinou. A při synchronizaci tě to zajímá, tak si vyfiltruješ záznamy podle toho příznaku a synchronizuješ je se serverem (odebereš příznak a naopak přidáš číslo verze ze serveru).
Ty konflikty musíš řešit tak jako tak – např. u UPDATů si potřebuješ pamatovat verzi, kterou jsi aktualizoval, abys nepřepsal cizí změny (např. jsi chtěl zvýšit hodnotu o 100, ale na serveru ji mezi tím někdo zvýšil o 200 a ty bys ji tak vlastně snížil, kdyby sis neohlídal verzi záznamu). INSERTy jsou jednodušší.Tady by to prave nebyl klasicky UPDATE, ale obecne jakakoliv zmena databaze – operace, ktera dostane na vstup databazi a na vystup da novou verzi databaze. Takze napriklad operace "upvote" by znamenala "vem pocet upvotu a pridej 1". (Samozrejme se da namitnout ze je lepsi si ukladat kazdy upvote jako novy radek, ale muze mit smysl si nekde navic ukladat jejich soucet pro rychlejsi dotazy.)
Co se týče cizích klíčů[tou relací myslíš relationship ne relation? Protože relace v relační DB je tabulka, ne vztah mezi záznamy 1:n, m:n, je jasné, že v nerelačních databázích nebudou relaceMas pravdu, myslel jsem relationship :) Mozna by to nejak takhle resit slo, ale musely by se opatrne nastavit pravidla, jako ze pri smazani rodice se kaskadovite smazou deti atd. Ale taky by byly potreba transakce, coz znamena dalsi zesloziteni. Napriklad kdyz klient udela tri transakce a ta druha na serveru selze, klient by asi mel tu treti vratit zpet.] tak ty se dají kontrolovat až při dokončení transakce, nebo je prostě můžeš provádět ve stejném pořadí jako na klientovi[tam bys měl mít stejná integritní omezení, takže i tam budeš muset vytvořit nejdřív odkazovaný záznam a pak teprve odkazující].
Ukládat stejná data dvěma nekompatibilními způsoby (jednou v normálních tabulkách a jednou v nějakých jiných strukturách) jen kvůli tomu, že některé jsou synchronizované a jiné ještě ne, mi přijde jako zbytečný opruz – hlavně kvůli tomu vyhledávání a slučování výsledků.Celkem dlouho jsem se snazil na to jit presne takhle, ale pokud chci aby to fungovalo na 100% ve vsech moznych podminkach, tak jsem presvedcen ze ta fronta nakonec vyjde jako jednodussi reseni.
Tady by to prave nebyl klasicky UPDATE, ale obecne jakakoliv zmena databaze – operace, ktera dostane na vstup databazi a na vystup da novou verzi databaze. Takze napriklad operace "upvote" by znamenala "vem pocet upvotu a pridej 1".
Tenhle problém se vlastně řeší v každé víceuživatelské databázové aplikaci – je celkem jedno, jestli se klient odpojuje a je půl dne offline, nebo jestli si v 10:05 otevře v aplikaci formulář, načtou se mu tam aktuální data, on do toho chvíli kouká, něco tam změní a v 10:15 to dá uložit.
Buď se použijí transakce (s daty nemůže nikdo jiný manipulovat – což je problém, protože klient může klidně odejít na oběd a nechat to celou dobu zamčené) nebo se použije optimističtější přístup – uložíš si číslo verze, takže víš, jestli data mezi tím někdo jiný neupravil, abys mu nepřepsal změny – při ukládání to zkontroluješ a buď změny nějak sloučíš nebo uživateli ohlásíš chybu.
Samozrejme se da namitnout ze je lepsi si ukladat kazdy upvote jako novy radek, ale muze mit smysl si nekde navic ukladat jejich soucet pro rychlejsi dotazy.
Tohle by šlo řešit přes materializované pohledy – součty by se při každém zápisu samy přepočítaly.
P.S. Přidal jsem do poradny otázku, která mě v této souvislosti napadla: Protokol/formát pro přírůstkové aktualizace databází