Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Existuje nějaký protokol/formát pro přírůstkové aktualizace relačních databází?
Dejme tomu, že mám nějaký veřejný registr a chci nabídnout přírůstkové aktualizace – aby si lidé nemusely stahovat pokaždé všechno znova.
Teoreticky by jim šlo dát SQL skript, který bude obsahovat INSERTy, UPDATy a DELETy, ale to je jednak takové dost volné (klient musí dost věřit serveru, aby si spustil jeho SQL skript) a jednak je to platformě závislé (dialekt konkrétního DBMS a vlastně i závislost na relačním schématu jako takovém – teoreticky si klient může ukládat data jinak a SQL třeba vůbec nepoužívá – chce jen platformě nezávislý seznam změn záznamů).
(k otázce mě inspiroval zápisek v blogu: Klient-server synchronizace – konečné řešení)
Různé databáze nabízejí různá více či méně fční proprietální řešení typu transakčních logů. Ale tato řešení jsou zpravidla stejně bezpečné, jako vykonávání SQL skriptu, či spíše ještě nebezpečnější.
Nechápu, co je nebezpečné na SQL skriptu - pro jeho vykonání lze udělat uživatele, který bude moci jen tam, kam zas z principu musí.
S tou bezpečností máš asi pravdu, možná je to zbytečná paranoia… jen je mi trochu proti srsti, aby někdo do mého systému cpal rovnou SQL. Ale ono stačí, když mu necháš třeba přístup k information_schema a on ti tam pustí SELECT s kartézským součinem přes několik tabulek.
Jde mi o formát/protokol, který by byl vhodný i pro to veřejné nasazení a umožňoval jen to nutné minimum – přidávat záznamy, aktualizovat a mazat. A ve „WHERE“ podmínce by mohl být jen primární klíč, ne nějaké vnořené SELECTy atd., stejně tak ve „VALUES“ – tam by taky měly být jen prosté hodnoty.
Na druhou stranu, čím mocnější ten nástroj bude, tím efektivnější/stručnější inkrementy se dají napsat – např.
UPDATE tabulka SET sloupec_1 = sloupec_2 + 100 WHERE id IN (SELECT …)
Místo aby se vyjmenovával záznam po záznamu a jejich hodnoty… ale zase o to víc se to dá zneužít. A o to méně je to platformě nezávislé – když už to bude SQL, tak na straně klienta potřebuji minimálně nějaký parser SQL, abych si z toho vytahal ty hodnoty a aktualizoval si svoji lokální databázi (která třeba ani nemusí být relační).
Určitě by to měl být otevřený software nebo alespoň otevřený standard – jde o to, aby na straně příjmu těch dat mohl být kdokoli – veřejnost – a aby si to mohl napasovat na nějaké svoje řešení. Co nejjednodušší – tzn. během dne si přečtu specifikaci a napíšu parser, nebo použiji hotovou knihovnu a už můžu přijímat aktualizace dat.
Na straně zdroje ani není potřeba nějak duplikovat data do logů – klidně může být u každého záznamu číslo verze – rostoucí ID napříč celou databází – a klient si pak vyžádá všechny záznamy novější než určité ID (tzn. než určitý časový okamžik).
Není to žádná velká věda. On by to mohl být i třeba CSV soubor (soubory) nebo nějaký jednoduchý binární formát. Jen mi šlo o to, zda nevymýšlím něco, co už tu dávno je.
Ono hlavně ta druhá strana si bude chtít aktualizovat svoji databázi – tzn. udělat změny, ne všechno smazat a všechno znova nahrát. Takže ono to sice vypadá skvěle, že se použije Git jako hotový software, ale samo o sobě to nestačí, protože on dejme tomu zajistí přenos těch změn po síti, ale pak si stejně musím udělat diff a z něj pomocí nějakého nástroje (ten je potřeba napsat) zjistit, do jaké tabulky mají změny přijít, zda se má přidávat, mazat, aktualizovat, a když, tak co tzn. vydolovat z toho primární klíče, abychom věděli, co smazat/aktualizovat a vyrobit výsledné SQL (případně jiné příkazy). To je ten nejpracnější úkol a verzovací systém s ním nepomůže, leda ho může ještě zkomplikovat.
Tiskni
Sdílej: