Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.
Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.
Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
Byla vydána nová verze 10.6 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Povoluje hybridní postkvantový podpisový algoritmus ssh-mldsa44-ed25519.
Americká společnost Reflection AI světu představila Beam, open-weight model s 501 miliardami parametrů (z toho 23 miliard aktivních), určený především pro programování a práci autonomních agentů. Podle autorů jejich model nabízí výkon srovnatelný s většími modely při výrazně nižších nárocích na výpočetní výkon. Beam nyní ještě prochází závěrečným testováním, na stránkách Reflection AI se však lze zaregistrovat a získat předběžný přístup. Váhy modelu, dokumentace a nástroje pro vývojáře mají být zveřejněny v průběhu tohoto měsíce.
OpenCourant je komunitní fork OpenRadioss, tj. open source softwaru pro simulace havárií, nárazů a vysoce nelineárních dynamických dějů metodou konečných prvků. Společnost Siemens v loňském roce dokončila akvizici společnosti Altair Engineering, jež před čtyřmi lety uvolnila open source verzi OpenRadioss svého proprietárního softwaru Radioss. Minulý týden Siemens OpenRadioss pohřbil. Integroval jej do svého softwaru Simcenter, webovou stránku OpenRadioss přesměroval na Simcenter a repozitář OpenRadioss na GitHubu odstranil.
Pořadatelé devátého ročníku komunitního setkání správců nejen českých a slovenských sítí – CSNOG 2027, které se uskuteční 20. a 21. ledna, vyhlásili Call for Abstracts. Náměty na vystoupení mohou zájemci přihlašovat do 31. října na webu akce a vybírat mohou ze tří sekcí – správa sítí, legislativa a regulace a akademické projekty. Zveřejněny byly také Call of Partners určené sponzorům a partnerům setkání, kteří by například chtěli mít na
… více »Strata je open-source inferenční engine, který umožňuje lokálně provozovat rozsáhlý čínský model Qwen3.8-Flash-Next, který by jinak nejspíše vyžadoval serverovou infrastrukturu, na běžném herním počítači s alespoň 12 GB VRAM, 32 GB RAM a dostatkem místa na SSD. Nároky na paměť a rychlost generování se liší s použitou variantou modelu Qwen. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Americký prezident Donald Trump oznámil vznik federální Jednotky pro superinteligenci (Super Intelligence Force), která má koordinovat postup vlády, technologických firem, náboženských organizací a dalších institucí v oblasti rychle se rozvíjející umělé inteligence (Trumpem oficiálně nazývanou superinteligencí). SIF, podřízená přímo Trumpovi, má pomoci Spojeným státům udržet v oblasti SI technologický náskok nad světem a
… více »Klient je e-mailový klient pro GNOME s nativní podporou Proton Mailu, PGP a spamfiltrem řízeným AI. Napsaný je v Go s GTK4 a libadwaita. Připojuje se přímo k Proton Mailu (bez Proton Bridge), ke Gmailu, k Seznam.cz a k libovolné schránce IMAP/SMTP. Každou novou zprávu nejdřív posoudí spamfiltr a teprve potom ji ukáže a ohlásí. Rozhraní je česky a anglicky.
Po vzoru Leoše Literáka se přiznám ke své v mém případě spíš neznalosti.
Píšu do školy javový program na kreslení animací kinematických křivek. Celé to je postavené na výpočtu jednotlivých bodů a jejich spojování přímkami. Výpočty jsou celkem triviální, kreslení většiny křivek také. Najdou se však křivky, které mají i 15000 bodů. Vykreslení takové křivky trvá docela dlouho (cca 18 ms). Proto jsem se rozhodl optimalizovat.
Optimalizace se zadařila a čas jsem stáhl na třetinu. Přestala však fungovat jiná věc. Při měnění parametrů za běhu se program začal nepříjemně trhat. Dlouhou dobu jsem nemohl zjistit, kde je problém. Celou optimalizaci jsem párkrát předělal, pohrál jsem si se synchronizací a stále nic.
Po nějakém čase mě napadlo porovnat kód se starším, který fungoval v pořádku. Jediný podstatný rozdíl byl ve volání garbage collectoru při každé změně. Přišlo mi to divné, ale zkusit jsem to musel. K mému překvapení se po zakomentování onoho řádky všechno vrátilo do správných kolejí.
Po podrobnějším měření jsem s hrůzou zjistl, že volání System.gc() zažere cca 70 ms. Jindy by to nevadilo, ale když potřebuju překreslovat jednou za 10 ms, tak je to znát.
Je až k nevíře, jak mě objevení téhle prkotiny potěšilo :) ... Chybami se člověk učí :)
Tiskni
Sdílej:
Kdybych měl pokaždý psát blogspot, když se chytim za nos
, ale dobrý ...
Já vim. Jsou věci v životě, co člověka naučí nadhledu a věci, co rozšíří obzory.
System.gc() by se pokud možno nemělo volat nikdy.
OutOfMemoryError. V první fázi jsem to řešil tou nejhorší možnou cestou - volat explicitně System.gc(). Program se zpomalil naprosto brutálně, takže bylo hned jasné, že tudy cesta nevede
BTW ani jsem netušil (a zjistil jsem to až teď), že existuje věda stringologie
BTW ani jsem netušil (a zjistil jsem to až teď), že existuje věda stringologieKdysi jsem kdesi sehnal 220stránkové PDFko celé věnované algoritmům hledání podřetězce v řetězci. Velmi poučné
Ale 70 ms na mém docela silném stroji mi vyrazilo dech.To buďte rád, že ne 10 minut (sic!).
A kdyz zacinate s Javou, tak kazdy si asi projde spojovani retezcu pomoci String += anebo StringBuffer().Spojování pomocí
String += každý relativně snadno zavrhne, až zjistí, že je to O(n^2). Tedy spíše mu bude divné, že je to najednou nějak strašně pomalé. Ale StringBuffer je z jiného soudku, už proto, že StringBuilder je až záležitost verze 1.5, takže leckdo může StringBuffer používat čistě ze zvyku.
+= neefektivní, je známá věc. Ale jak je to s těma ostatníma, hlavně se StringBuilderem, budu muset nastudovat, nebo otestovat (a nebo mi to někdo osvětlíte?) Vnukli jste mi dobrou myšlenku na studium. Díky+=, maximálně StringBuffer.append() stačilo :)
.