Švýcarská společnost Punkt. má nově v nabídce telefon Punkt. MC03. Telefon byl navržen ve Švýcarsku s důrazem na soukromí a digitální suverenitu a vyroben v Německu. V telefonu běží operační systém AphyOS (Apostrophy OS) založený na AOSP (Android Open Source Project) 15. Cena telefonu je 745 eur.
TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 7.0. Kompilátor byl kvůli výkonu přepsán z TypeScriptu do Go.
Europarlament podpořil pozměněnou verzi výjimky známé jako „chat control 1.0“ umožňující firmám skenovat soukromou komunikaci na internetu kvůli ochraně dětí před zneužitím. Pozměňovací návrhy přijaté europoslanci však počítají s tím, že z výjimky bude vyřazena šifrovaná komunikace. Výjimka přestala platit začátkem dubna poté, co se Evropský parlament a Rada EU nedokázaly shodnout na jejím prodloužení. Rada následně přijala
… více »Nejnovější X.Org X server 21.1.24 a Xwayland 24.1.13 řeší 2 bezpečnostní chyby.
Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za červen 2026. Vypíchnuta je vylepšená podpora Waylandu. Už není považována za experimentální. V příští verzi Linux Mintu, plánována je na Vánoce, bude běh Cinnamonu plně podporován na X11 i Waylandu. V květnu na vývoj Linux Mintu přispělo 611 dárců celkovou částkou 19 612 dolarů. Dalších 2 326 patronů přispělo na Patreonu celkovou částkou 5 334 dolarů.
V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Januscape aneb CVE-2026-53359. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala téměř 16 let (od srpna 2010 do června 2026).
Tribunál Soudního dvora Evropské unie dnes zamítl několik žalob, v nichž se americká společnost Apple ohrazovala proti pravidlům fungování velkých technologických společností na unijním trhu. Applu se nelíbilo, že jeho obchod s aplikacemi a operační systém iOS mají podléhat přísnějším povinnostem jen proto, že Brusel firmu považuje za takzvaného gatekeepera, tedy strážce přístupu.
Na WhatsAppu budou postupně v průběhu následujících měsíců zavedena uživatelská jména. Telefonní čísla tak mohou zůstat soukromá. Aktuálně si lze uživatelské jméno rezervovat.
Byl aktualizován TIOBE Index (Wikipedie). Programovací jazyk Rust se poprvé dostal do první desítky tohoto žebříčku popularity programovacích jazyků. Vede Python následovaný C, C++, Java, C#, …
Proton (Wikipedie), tj. fork Wine integrovaný ve Steamu umožňující na Linuxu hrát hry určené pouze pro Windows, byl vydán ve verzi 11.0-1. Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled všech podporovaných her na stránkách ProtonDB
Octave jako řetězce chápe texty uzavřené v dvojici uvozovek nebo apostrofů; řetězce je samozřejmě možné ukládat do proměnných a dále s nimi pracovat.
>> A="Karel" A = Karel >> B='Veronika' B = Veronika >> C=[A, ' a ', B] C = Karel a Veronika >> C(3) ans = r
Pokud je potřeba mít v řetězci znak apostrof či uvozovka, je potřeba dát toto najevo zpětným lomítkem zapsaným před požadovaným znakem. Jedno zpětné lomítko se také zapíše jako dvě zpětná lomítka:
>> '\'\\' ans = '\ >> "\\\"" ans = \"
Jelikož Matlab pro uvozování řetězců používá pouze apostrofy, budeme se v dalším textu držet této varianty.
Řetězce se v Octave ukládají do vektorů, kde každý znak odpovídá jednomu
prvku vektoru - k jednotlivým znakům tedy lze přistupovat pomocí indexů
stejně jako u číselných vektorů a matic. Zapsání více řetězců jako prvků ve
vektoru má za následek jejich spojení - zřetězení, jak je vidno v
příkladu u proměnné C. Pokud chceme vypsat obsah řetězce bez
onoho „ans =“ na začátku, je na místě použití
funkce disp:
>> A A = Karel >> disp(A) Karel x = 35 >> disp(['Vysledkem funkce je cislo ', x]) Vysledkem funkce je cislo #
Je-li částí nějakého vektoru řetězec, chápe se jako řetězec celý vektor. Pedchozí příklad proto namísto čísla 35 vypsal znak „#“, který se nachází na 35. pozici v tabulce znaků. Pro nápravu této situace existuje funkce num2str, která převádí čísla na jejich textovou podobu:
>> disp(['Vysledkem funkce je cislo ', num2str(x)])
Vysledkem funkce je cislo 35
>> c=str2num('1')+str2num('1')
c = 2
Opačná funkce str2num převádí platnou textovou podobu čísla
na číslo, s kterým je možné dále počítat - provádět matematické
operace.
Určitě nebude překvapením fakt, že řetězce lze ukládat také do matic. Následující dva způsoby jsou ekvivalentní - funkce char je v Octave z důvodu kompatibility s Matlabem, který v prvém případě neumí automaticky doplňovat „vyplňující znaky“ za kratší řetězce, aby vzniklá matice měla ve všech řádcích stejný počet sloupců:
>> M=['Karel'; 'Veronika'; 'Josef']
M =
Karel
Veronika
Josef
>> M=char('Karel', 'Veronika', 'Josef')
M =
Karel
Veronika
Josef
Výchozím doplňovacím znakem je mezera, lze jej však změnit pomocí vestavěné proměnné string_fill_char:
>> string_fill_char='@'; >> N=['Karel'; 'Veronika'; 'Josef'] N = Karel@@@ Veronika Josef@@@
Díky funkci strjust nemusí být texty v matici nutně
zarovnány doleva. Přípustnými parametry jsou "left",
"center" a "right":
>> strjust(M, "right") ans = Karel Veronika Josef
Pole buněk - cell arrays - je možností Octave, jak mít jako prvky matice skutečně celé řetězce, nikoliv jen znaky - rozdíl oproti maticím je vesměs jen v typu závorek, u pole buněk se používají složené:
>> M={'Karel', 'Veronika'; 'Josef', 'Marie'}
M =
{
[1,1] = Karel
[2,1] = Josef
[1,2] = Veronika
[2,2] = Marie
}
Chceme-li porovnat dva řetězce, zda jsou shodné, není relační operátor „==“ na místě, pokud nás nezajímá shodnost jednotlivých znaků, která navíc funguje jen pro stejně dlouhé řetězce jako u číselných vektorů:
>> 'Jana'=='Dana'
ans =
0 1 1 1
>> 'Ano'=='Ne'
error: operator ==: nonconformant arguments (op1 is 1x3, op2 is 1x2)
error: evaluating binary operator `==' near line 35, column 6
Pro srovnávání podle obvyklých představ je k dispozici funkce strcmp:
>> strcmp('Jana', 'Dana')
ans = 0
Jednoduché vyhledávací funkce index a rindex vrací první, respektive poslední pozici řetězce zadaného jako druhý parametr v řetězci zadaném jako první parametr. Pozice se počítají od jedničky:
>> index('krabice hranice slepice', 'ice')
ans = 5
>> rindex('krabice hranice slepice', 'ice')
ans = 21
Obdobně funkce findstr vrací vektor všech vyhovujících pozicí:
>> findstr('abababaq','aba')
ans =
1 3 5
>> findstr('abababaq','aba',0)
ans =
1 5
Pokud je jako třetí volitelný parametr zadáno číslo 0, pak nejsou povoleny přesahy řetězců (další vyhovující řetězec se hledá až za koncem předchozího nalezeného).
Funkce substr vrací ze zadaného řetězce podřetězec od dané pozice a dané délky (respektive až do konce, není-li třetí parametr zadán):
>> substr('stonozka', 4, 5) % Od čtvrté pozice pět znaků
ans = nozka
Funkce strrep odpovídající vzorky v zadaném řetězci nahradí jiným zadaným řetězcem:
>> strrep('zena Bozena neni zenata', 'zena', 'spor')
ans = spor Bospor neni sporta
Konečně funkce split dělí zadaný řetězec na matici podřetězců podle zvoleného vzorku:
>> split('krabice hranice slepice', 'ice')
ans =
krab
hran
slep
Zřejmě nemá smysl zde podrobně rozepisovat zbývající funkce pro práci s řetězci, případný zájemce může navštívit manuál. Proto jen stručný přehled:
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: