Firefox pro iOS přichází s integrovaným blokováním reklam. Funkce je ve výchozím nastavení vypnutá a lze ji aktivovat v Settings > Browsing > Ad Blocker.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila (𝕏) open-source robota Microduck. Předobjednat jej lze za 340 eur.
Open-source autonomní AI agent OpenClaw (Wikipedie) byl vydán ve verzi 2026.8.1 aneb 2.0. Přehled novinek v poznámkách k vydání.
Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším
… více »Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.
Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.
Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.
Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.
IKEA a XBOX představují kolekci YXSTABY (pdf). Ta přináší designová a praktická řešení, díky nimž se prostor pro hraní během sekundy promění v útulný a harmonický domov.
Jonathan Thomas oznámil vydání verze 4.0 nelineární střižny OpenShot. Nově podporuje nahrávání obrazu a zvuku, vylepšuje uživatelské rozhraní, mj. color grading, přidává další efekty a mnoho dalšího (seznam změn).
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).
] 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ů.
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í
Tiskni
Sdílej: