Elon Musk prohrál soudní spor se společností OpenAI, která se podle jeho žaloby odchýlila od původně uváděného cíle vyvíjet umělou inteligenci (AI) ku prospěchu lidstva. Porota včera po necelých dvou hodinách dospěla k jednomyslnému závěru, že Musk žalobu podal příliš pozdě. Musk byl jedním ze spoluzakladatelů společnosti OpenAI, která vznikla v roce 2015 a vyvinula populární chatovací systém ChatGPT. V roce 2018 na svůj post ve vedení
… více »Byla vydána nová verze 10.4 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Opraveny jsou zranitelnosti Copy Fail a Dirty Frag. Přibyl nový obraz pro Orange Pi 5B.
Pokud je zranitelnost Linuxu v nepoužívaném jaderném modulu, lze ji jednoduše vyřešit zakázáním automatického načítání tohoto konkrétního zranitelného modulu. Projekt ModuleJail si klade za cíl zvýšit bezpečnost Linuxu zakázáním automatického načítání všech nepoužívaných jaderných modulů. Jedná se o skript, který dá všechny nepoužívané jaderné moduly na blacklist (/etc/modprobe.d/modulejail-blacklist.conf).
Odborníci z Penn State University zkoumají způsob ukládání informací na lepicí pásku. Principiálně by podle nich bylo možné kombinací odlepení a zpětného přilepení dosáhnout uložení informace, kterou opětovným odlepením dokážou přečíst. Výhodou je, že způsob uložení i přečtení je čistě mechanický. Zde o tom referují ve volně dostupném článku. Zajímavé bude sledovat zda se jim v rámci výzkumu podaří prokázat použitelnost i v jiné než
… více »Na GitHubu byl publikován reprodukovatelný návod, jak rozchodit Adobe Lightroom CC na Linuxu a Wine. Návod byl vytvořený pomocí AI Claude Code.
Pokud by někdo potřeboval Wayland kompozitor uvnitř počítačové hry Minecraft, aby mohl zobrazovat okna desktopových aplikací přímo v herním prostředí, může sáhnout po Waylandcraftu. Ukázka na YouTube.
Uroš Popović v krátkém článku vysvětluje, co jsou emulátor terminálu, TTY a shell a jaké jsou mezi nimi rozdíly. Jde o první díl seriálu na jeho novém webu Linux Field Guide věnovaném nízkoúrovňové práci s linuxovými systémy.
Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
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: