Hodnota Bitcoinu, decentralizované kryptoměny klesla pod 70 000 dolarů (1,44 milionu korun).
Valve z důvodu nedostatku pamětí a úložišť přehodnocuje plán na vydání zařízení Steam Controller, Steam Machine a Steam Frame: „Cílem tedy stále zůstává vydat všechna tři nová zařízení v první polovině letošního roku, ale přesná data a ceny jsou dvě věci, na kterých usilovně pracujeme a jsme si dobře vědomi toho, jak rychle se v tomto ohledu může vše změnit. Takže ač dnes žádné zveřejnitelné údaje nemáme, hned jak plány finalizujeme, budeme Vás informovat.“
Do 20. února lze hlasovat pro wallpapery pro Ubuntu 26.04 s kódovým názvem Resolute Raccoon.
Byla vydána lednová aktualizace aneb nová verze 1.109 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.109 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na Kickstarteru běží kampaň na podporu modulárního otevřeného handheldu Mecha Comet s Linuxem.
V nedávno zveřejněné kolekci dokumentů souvisejících s kontroverzním finančníkem a kuplířem Jeffrey Epsteinem se překvapivě objevil i referenční manuál unixového shellu Bash, jedná se o verzi manuálu z roku 2005. Aktuální vydání si lze stáhnout ze stránek GNU.
The Document Foundation oznámila vydání nové verze 26.2 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs). Vypíchnout lze podporu formátu Markdown.
Co se děje ve zprávách, ví asi každý - válka sem, clo tam, demonstrace na jednu i druhou stranu a bastlíř už má pocit, že se snad ani nic jiného neděje. To by však byl velký omyl a Virtuální Bastlírna je zde jako každý měsíc, aby vytáhla na světlo světa události ze světa vědy a techniky. Připojte se tedy nezávaznému povídání Strahovského MacGyvera! Co se tam bude probírat? PCBWay začalo dělat průhledné plošňáky, MARS končí s výrobou skříněk, FEL
… více »Guvernérka státu New York Kathy Hochul (Demokraté) plánuje novou legislativu, která by měla omezit výrobu 3D tištěných zbraní. Tento návrh zákona zavádí povinnost pro všechny 3D tiskárny prodávané ve státě New York obsahovat 'software' bránící ve výrobě zbraní. Návrh zákona rovněž zakazuje lidem sdílet 'digitální plány zbraní' (blueprinty) bez povolení. Existují důvodné obavy, že se tento nešťastný nápad může šířit do dalších zemí a ovlivnit celý 3D tisk jako takový. Ostatně, s podobnou regulací nedávno přišel i stát Washington.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za prosinec 2025 a leden 2026 (YouTube). Zajímavé, že i v roce 2026 celou řadu problémů vyřeší falšování řetězce User-Agent.
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).
] 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í