Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.
Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.
Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.
Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.
Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.
V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.
VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
V hned druhém pokračování povídání o systému Octave vyjde najevo, proč Matlab získal své jméno jako zkratku z MATrix LABoratory - laboratoř pro práci s maticemi. Než se však vrhneme na násobení matic, povíme si pár slov k historii příkazů a jejich vyhodnocování.
Asi nepřekvapí, ale určitě ani nezarmoutí fakt, že Octave disponuje vestavěnou historií příkazů - pomocí kurzorových šipek nahoru a dolů lze listovat seznamem dříve zadaných příkazů, které lze editovat a opravené nechat spočítat znovu. V linuxových verzích Octave lze také zpětně hledat v historii příkazů přes klávesové zkratky Ctrl-R a Ctrl-S:
>>
(reverse-i-search)`sin': (sin(x))^2
V Octave je možné zapsat a nechat vyhodnotit více výrazů najednou - píšeme je za sebe na řádek, přičemž v úvahu přichází dva oddělovače, čárka a středník:
>> A=1+1, B=3*4; C=8/4
A = 2
C = 2
>> B
B = 12
V obou případech se výraz vyhodnotí, avšak pouze při ukončení čárkou se též vypíše výsledek. Neuvedení oddělovače za posledním příkazem na řádce je ekvivalentní se zakončení výrazu čárkou, tj. výsledek se vypíše. Skutečnost, že se v příkladě provedl i příkaz ukončený středníkem, dokazuje výraz, kdy jsme si nechali vypsat obsah proměnné B. Středníkem ukončujeme zejména příkazy v programech, které vrací „nezajímavé“ mezivýsledky výpočtu. Chceme-li zapsat výraz či více výrazů na více řádků, můžeme s úspěchem použít znak zpětné lomítko „\“ následovaný znakem nový řádek (tj. stisknutí klávesy Enter) - v zápisu příkazu pokračujeme na dalším řádku:
>> 1 + \
> 2 \
> + 3
ans = 6
Speciální význam v Octave má také znak procento „%“. Uvozuje komentář - jinými slovy vše, co bude zapsáno za tímto znakem na stejném řádku, Octave ignoruje. Komentáře slouží zejména k lepší orientaci v programech uživatelem:
>> c=(a^2 + b^2)^(1/2) % Zde využíváme Pythagorovy věty
Pro výpis uživatelem vytvořených proměnných lze kromě příkazu who použít také příkaz whos, který vrací podrobnější informace:
>> whos
prot type rows cols name
==== ==== ==== ==== ====
rwd scalar 1 1 P
rwd scalar 1 1 p
Pro nás jsou teď zajímavé sloupce rows a cols
udávající počet řádků a sloupců proměnné. Jak již bylo naznačeno v úvodu,
Octave podle vzoru Matlabu chápe každou proměnnou jako matici určité
velikosti. Proměnné obsahující jedno číslo jsou tak brány jako matice
velikosti 1×1 - s těmi se však počítá úplně stejně jako s normálními
čísly. Pokud budeme chtít pracovat s maticemi o větším počtu řádků či
sloupců, přijdou na řadu hranaté závorky:
>>M=[0 1 2;1,2,3 > 4 5,6] M = 0 1 2 1 2 3 4 5 6
Při takovémto zadávání matice na příkazové řádce hranaté závorky vymezují prostor pro zápis jejího obsahu, hodnoty na řádku se oddělují mezerou nebo čárkou, řádky pak středníkem nebo novým řádkem (klávesou Enter - do výskytu uzavírající závorky Octave výraz nevyhodnocuje).
Matici lze skládat také z „větších“ objektů, než jsou skaláry, tj. z vektorů a menších matic. Při zadávání je pouze nutno dbát na to, aby ve výsledku měla matice stejný počet sloupců v každém řádku, tj. aby někde něco nechybělo či nepřebývalo:
>> N=[1 2;3]
error: number of columns must match (1 != 2)
Nyní složme velkou matici ze tří menších objektů:
>> A=[1 2; 3 4; 5 6], B=[-1 -3; 9 9], V=[0, 50]
A =
1 2
3 4
5 6
B =
-1 -3
9 9
V =
0 50
>> VelkaMatice = [A, [B; V]]
VelkaMatice =
1 2 -1 -3
3 4 9 9
5 6 0 50
Z podstaty věci je možné (a formálně korektnější) psát i samostatná čísla v maticových závorkách:
>> [6]*[10]
ans = 60
Pro přehlednost a úsporu psaní si je však každý rád odpustí, jak tomu je v ostatních příkladech v tomto textu. Je také možné vytvořit - na první pohled poněkud překvapivě - prázdnou matici, která má nulový počet řádků a sloupců:
>> N=[]
N = [](0x0)
Prázdné matice mají své uplatnění při rušení řádků či sloupců ve větších maticích, viz dále.
Podle očekávání Octave umí s maticemi nativně provádět běžné numerické operace, tj. zejména velikostně si odpovídající matice sčítat, respektive odčítat a násobit:
>> [1 2;-3 -2] + [-1,-3;4,3] ans = 0 -1 1 1 >> [4;-2] * [-1,2] ans = -4 8 2 -4
Nechybí ani možnost umocňovat matici reálným číslem; významná je zejména operace umocňování na minus prvou (M-1), kterou získáme matici inverzní k původní matici:
>> M=[-1 0 2; 4 2 1; -1 -1 -2]; M^-1 ans = 3 2 4 -7 -4 -9 2 1 2 >> M * M^-1 ans = 1 0 0 0 1 0 0 0 1
K základním maticovým operacím patří také transpozice, tj. přeměna řádků na sloupce a naopak. V Octave ji vyznačujeme apostrofem - „'“:
>> M' ans = -1 4 -1 0 2 -1 2 1 -2
Octave také umí matice dělit, a to hned dvěma způsoby: levostranně pomocí operátoru „\“ a pravostranně pomocí „/“. Formálně to u čtvercových regulárních matic odpovídá násobení jedné matice s druhou inverzní, tj. A\B ≈ A-1·B a A/B ≈ A·B-1. Jelikož výpočet probíhá přímo, je možné levostranně dělit matice se stejným počtem řádků a pravostranně matice se stejným počtem sloupců:
>> [-1 -4 0; 2 -3 1] \ [2 3; -1 -1] ans = -0.81159 -1.05797 -0.29710 -0.48551 -0.26812 -0.34058 >> [-1 -4; 2 -3 ] / [2 3; -1 -1; 6 -7] ans = -0.833333 0.333333 0.166667 -0.111390 0.033501 0.376047
Dělení matic se využívá například při řešení soustavy lineárních rovnic. Pro názornost dodejme ještě, že levostranné dělení běžných čísel odpovídá zápisu zlomku, kdy nejdřív uvedeme jmenovatele a teprve poté čitatele:
>> 5 \ 35
ans = 7
Pozor na to, že znak zpětné lomítko se také používá pro zápis výrazu/výrazů na vícero řádků, jak již bylo uvedeno dříve.
Podle očekávání se také Octave chová při operacích s maticemi a skaláry - operace se provede se skalárem a s každým prvkem matice, výsledkem je matice stejných rozměrů. Například násobení matice skalárem a součet matice a skaláru:
>> 2 * [1,2;-2,4] ans = 2 4 -4 8 >> [1,2;-2,4] + 4 ans = 5 6 2 8
Někdy je zapotřebí u násobení matic provést tuto operaci tzv. po prvcích, tj. stejným způsobem, jak se provádí součet matic. Násobit po prvcích je možno pouze matice se stejným počtem řádků a sloupců a výsledek je opět stejně rozměrná matice s odpovídajícími výsledky na daných pozicích. Násobení po prvcích dáme najevo předřazením symbolu tečka před vlastní symbol násobení - hvězdičku:
>> [1 -1; 2 3] .* [7 5; 1 -1] ans = 7 -5 2 -3
Porovnejte s výsledkem standardního násobení matic:
>> [1 -1; 2 3] * [7 5; 1 -1] ans = 6 6 17 7
Analogickým způsobem lze pomocí tečky před vlastním operátorem zařídit též dělení a umocňování po prvcích. Tečku lze zapsat i před sčítání a odečítání, z praktického hlediska to ale nemá význam - tyto operace se provádí pouze v režimu „po prvcích“:
>> [4 9; 12 -27] ./ [2 3; 6 9]
ans =
2 3
2 -3
>> [1 -1; 2 3].^3
ans =
1 -1
8 27
Pro srovnání:
>> [1 -1; 2 3]^3 ans = -9 -11 22 13
Nakonec uveďme pár základních funkcí, které se nám při práci s maticemi mohou hodit:
-1, tak ve směru hodinových ručiček, hodnota 1
znamená proti směru hodinových ručiček:>> rot90([1 2; 3 4],-1) ans = 3 1 4 2 >> rot90([1 2; 3 4],1) ans = 2 4 1 3
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Diskuse byla administrátory uzamčena