Byl vydán Mozilla Firefox 152.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala beta verzi Ubuntu Touch 24.04-2.0. Nová verze již počítá s výřezy pro fotoaparát (notch) a zaoblenými rohy displeje. Webový prohlížeče Morph přešel z Chromia 87 na Chromium 134. Do shellu Lomiri byl přidán editor snímků obrazovky.
V Praze probíhá Flock 2026, tj. konference pro přispěvatele a příznivce Fedory. Přednášky lze sledovat také na YouTube.
Node-RED (Wikipedie, GitHub), webová aplikace postavená na Node.js pro vizuální programování a propojování hardwarových zařízení, API a online služeb, byl vydán ve verzi 5.0. Přehled novinek v příspěvku na blogu.
Byla vydána nová verze 3.27.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 5 zranitelností.
Řídící výbor GCC schválil záměr do GCC začlenit backend WebAssembly.
Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.
Cheat Engine (Wikipedie) je s verzí 7.7 k dispozici už také pro Linux. Jedná se o proprietární skener/debugger paměti používaný především k cheatování v počítačových hrách.
typedef struct {
word OfsWR; // Pozice cteni
word OfsRD; // Pozice zapisu
word Cnt; // Pocet ulozenych bytu
byte * Buf; // Buffer
word BufSize; // Velikost bufferu
} Fifo_t;
word FifoGetCount (Fifo_t * Fifo){
return Fifo->Cnt;
}
word FifoGetFree (Fifo_t * Fifo){
return Fifo->BufSize - Fifo->Cnt;
}
byte FifoAddByte (Fifo_t * Fifo, byte Src){
if (Fifo->Cnt >= Fifo->BufSize) return 0;
Fifo->Buf[Fifo->OfsWR++] = Src;
Fifo->Cnt++;
if (Fifo->OfsWR >= Fifo->BufSize) Fifo->OfsWR = 0;
return 1;
}
byte FifoGetByte (Fifo_t * Fifo){
byte b;
if (!Fifo->Cnt) return 0;
b = Fifo->Buf[Fifo->OfsRD++];
Fifo->Cnt--;
if (Fifo->OfsRD >= Fifo->BufSize) Fifo->OfsRD = 0;
return b;
}
void FifoInit (Fifo_t * Fifo, byte * Buf, word BufSize){
Fifo->OfsRD = 0;
Fifo->OfsWR = 0;
Fifo->Cnt = 0;
Fifo->BufSize = BufSize;
Fifo->Buf = Buf;
}
volatile. Bez toho compilator nerata, ze hodnota sa moze zmenit mimo kontext aktualneho kodu. Kompilator moze optimalizovat kod tak, ze si udaje drzi v registroch a necita udaje z pamate. Tym padom zmena z prerusenia nie je reflektovana v hlavnej slucke kodu.ATOMIC_BLOCK". Inac povedane, funkcia FifoGetByte by mala docasne vypnut prerusenie a zapnut ho az ked su vsetky zmeny zapisane do pamate. V opacnom pripade moze nastat situacia, ze funkcia "FifoGetByte" a "FifoAddByte" sa bude prelinat a navzajom si prepisu data. Situacia, ked sa napr. nacitaju data pre if a/alebo dekrementaciu. V preruseni dojde k zmene udajov, ale k naslednemu zapisu dojde podla pred tym nacitanych dat a nie realnych .... o tomto by sa dalo dlho hovorit. Ked si pohladas "ATOMIC_BLOCK" v avr-gcc dokumentacii tak najdes hromadu roznych prikladov, preco sa to ma pouzivat.
Tiskni
Sdílej: