Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.
Gravity Linux je linuxová distribuce určená pro Apple Silicon s čipy M4 a novějšími. Vydána byla alfa verze pro M4 Mac mini. Gravity Linux je fork Asahi Linuxu.
Hister je osobní soukromý vyhledávač, který lze provozovat na vlastním stroji. Umí prohledávat lokální soubory, importovat historii a záložky z webových prohlížečů, procházet vybrané weby a pomocí rozšíření pro Firefox a Chrome indexovat obsah právě navštívených stránek. Nad vytvořeným indexem pak nabízí vyhledávání prostřednictvím webového rozhraní, příkazové řádky a díky podpoře MCP i nástrojům umělé inteligence. Tento
… více »Ministerstvo dopravy uznalo prozatímní schválení asistenčního systému Tesla FSD Supervised vydané nizozemským schvalovacím orgánem RDW. Připojilo se tak k Nizozemsku a dalším pěti evropským státům. Systém je díky tomuto rozhodnutí možné používat za podmínek prozatímního schválení také na území České republiky. Tesla FSD Supervised je asistenčním systémem úrovně 2 podle klasifikace SAE (částečná automatizace řízení). Řidič se
… více »Někteří zákazníci O2 mohou aktuálně zaznamenat zhoršenou dostupnost internetových služeb. Na odstranění potíží se pracuje [Facebook].
PyPy (Wikipedie), tj. implementace Pythonu v RPythonu, alternativa CPythonu v C, byla vydána v nové major verzi 8.0.0. Podporuje Python 2.7, 3.11 a 3.12.
V jádře Linux byly nalezeny a v upstremu ve verzích 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 a 7.2.4 již opraveny 4 kritické zranitelnosti umožňující eskalaci práv: DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) a DiagSpill (CVE-2026-74469).
Německá policie a celníci zneužívají ke čtení zpráv komunikačních aplikacích WhatsApp, Signal, Telegram nebo Threema velice jednoduchý trik, který nevyžaduje prolomení šifrování, spear phishing, odposlech SMS či jinou technicky náročnou metodu. Příslušníkům státního aparátu pouze stačí získat krátký přístup k odemčenému telefonu a prostřednictvím QR kódu propojit účet s oficiální desktopovou nebo webovou aplikací v policejním
… více »Počítačová hra Factorio (Wikipedie) nově běží nativně na ARM64 Linuxu a headsetu Steam Frame.
Zrovna jsem chtěl navrhnout, že by bodlo inkrementální zálohování 
\\?\D:\very long path. Toto předáváte fcím FindFile, CreateFile, ... Taky je potřeba použít FILE_FLAG_POSIX_SEMANTIC, aby to respektovalo case-sensitive názvy a povolilo různé znaky ve výchozím stavu zakázané. Díky tomuto přístupu pak budete moci i otevřít soubory vytvořené z linuxu na NTFS systému, kde jste prdly do názvu věci jako dvojtečku. Pak je taky potřeba počítat se symlinky, hardlinky a junction, na všechno existuje API, ale runtime free pascalu s tím nepočítá (resp. nepočítalo před pár lety, jak je to teď, nevím). Pro zálohovací utilitku je potřeba tohoto použít, jinak záloha může dopadnout špatně a to jistě u zálohy nechcete.
To je AFAIK věc souborového systému, ne Windows/Exploreru.NTFS dvojtečku v názvu podporuje, stejně tak < > apod. Dokonce i Windows API se s tím vypořádá a takový soubor otevře, pokud se však to API použije správně a né mizerně, tak jak ho používá Qt či Explorer a mnoho dalších aplikací (už jenom to, že Qt interpretuje '/' jako oddělovač adresářů na Windows je stupidní). Třeba takový 7-zip je jedna z mála aplikací, která to API dokáže použít lépe, než ostatní aplikace (tj. dokáže rozbalit archiv s obrovskou hloubkou adresářů a názvy až 32k dlouhými, tak, že to pak ani nejde smazat z Exploreru, protože to neumí). Bohužel už ale nezvládá case-sensitive názvy, které jak Windows, tak NTFS podporuje.
Před časem jsem došel ke stejnému závěru: že stávající zálohovací programy mi úplně nevyhovují a že si zkusím napsat něco vlastního.
Takže jsem se do toho pustil v C++ & Qt a dotáhnul to do nějakého funkčního stavu, kde fungují alespoň základy. Pak mi ale (typicky) kvůli práci došel čas a už mi to pár měsíců leží bez toho aby na to někdo sáhl. A napsané to taky není kdovíjak skvěle.
Kdyby měl někdo zájem v tom třeba pokračovat, nebo se jen podívat, tak tady to je...
- dodělat časovátko aby to kopírovalo v nastavený časPridaj TTimer (asi zalozka System) na formular, do udalosti OnTimer pridaj
if now > datum_kedy_sa_to_ma_spustit then
try
timer1.Enabled := false;
...samotny kod...
datum_kedy_sa_to_ma_spustit := dalsi_datum;
finally
timer1.Enabled := true;
end;
Pripadne ak chces aby sa to spustalo napr. kazdych 5 minut tak nastav Interval toho timeru na 300000 (to je 300s) a ten kod daj priamo do toho.
- mazat adresáře starší než nastavený počet dníListuj adresare cez TSearchRec (cez FindFirst, FindNext, FindClose) a starsie adresare maz cez DeleteDir. Nevie to mazat prazdne takze musis mazat rekurzivne.
- mazat adresáře od nejstaršího po dosažení nastavené velikosti adresáře zálohyHod si adresare do listu (alebo string listu, metoda CustomSort), funkcia Sort akceptuje ako parameter triediacu funkciu, vytvor si triediacu funkciu s 2 pointer parametrami ktora bude porovnavat adresare podla datumu. Alebo pouzi rovno datum yyyy-mm-dd-HH-MM-SS-zzz a bude to triedit spravne. Potom len vymazes prvy adresar z toho listu.
- možnost purgekopírování dat v adresáři – jen poslední verze ProE partů (ukládá soubory jako sestava.asm.1, při změně a uložení to vytvoří nový soubor sestava.asm.2 atd atd a purgekopírování zkopíruje jen ty poslední)To iste ako s tym sortovanim len si vytvoris inu sortovaciu funkciu.
function TriedenieAsmSuborovPodlaPripony(a,b : integer) : integer;
var fa,fb : string;
ca,cb : integer;
begin
fa := subory[a];
fb := subory[b];
if pos('.asm.', fa) then
ca := StrToIntDef(ExtractFileExt(fa), -1);
if pos('.asm.', fb) then
cb := StrToIntDef(ExtractFileExt(fb), -1);
result := ca - cb;
end;
- ukládání nastavení do xml nebo cfg souboru. Nyní to používá registry (fuj?)Pouzi ini subory, pozor, cesta v atribute Create musi byt uplna!
uses IniFiles;
with TIniFile.Create(GetEnvironmentVariable('HOME')+PathDelim+'.config'+PathDelim+'nieco.ini') then
try
Left := ReadInteger('OKNO', 'Left', 0);
Top := ReadInteger('OKNO', 'Top', 0);
b := ReadBool('OKNO', 'B', false);
s := ReadString('OKNO', 'Meno', '');
... zapis cez WriteInteger, WriteString, WriteBool, ...
finally
Free;
end;
Tiskni
Sdílej: