Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
Pomalu se propracováváme k využívání souborů v Octave - buď jako úložiště dat nebo programů. Proto nesmí chybět seznámení, jak lze souborový systém v Octave správně uchopit. Začněme příkazy známými z shellu: pwd (Path to Working Directory) a cd (Change Directory):
% Ve Windows >> pwd /octave_files >> cd c:\matlab >> pwd /cygdrive/c/matlab % V Linuxu >> pwd /home/user >> cd /tmp >> pwd /tmp
V Linuxu bývá po spuštění aktuální složkou ta, ve které jsme Octave spustili, a s přístupem do jiných složek není žádný problém. V prostředí Windows běží Octave s pomocí Cygwin, jako kořenový adresář se nastavuje složka, ve které je Octave nainstalováno - přístup do jiných složek nicméně možný je, jednotky diskových oddílů se mapují do virtuálního adresáře cygdrive. Ve Windows je možno jako oddělovač složek použít obou lomítek - těch rozdílů mezi linuxovou a windowsovou verzí Octave lze při práci se soubory zaznamenat více.
Pro výpis souborů v aktuální složce slouží příkazy ls a dir:
>> ls data funkce.m skript.m >> dir ('/data/matlab') data funkce.m skript.m
Seznam souborů ze zadané složky lze uložit do matice pomocí funkce readdir:
>> files=readdir('.') files = . .. data funkce.m skript.m
Znak tečka zde označuje aktuální složku.
Octave samozřejmě umí vytvářet a mazat adresáře, přejmenovávat soubory apod. Názvy souborů a adresářů se zadávají jako textové parametry funkcí, které - pokud operace dopadla úspěšně - vrací hodnotu 0:
>> ls data funkce.m skript.m >> mkdir('slozka') % Vytvoř novou složku slozka ans = 0 >> ls data funkce.m skript.m slozka >> rmdir('slozka') % Smaž složku slozka ans = 0 >> ls data funkce.m skript.m
Funkce mkdir vytvořila složku pojmenovanou slozka, kterou následně smazala funkce rmdir. Soubor se maže funkcí unlink a přejmenovává pomocí rename:
>> ls data funkce.m skript.m >> unlink('data') % Smaž soubor data ans = 0 >> rename('skript.m','program.m') % Přejmenuj skript na program ans = 0 >> ls funkce.m program.m
Pro pečlivky - uvedené funkce mohou vracet dvouprvkový vektor
[navratova_hodnota, text_chybove_zpravy]
, tj. pokud je
návratová hodnota nenulová, z textu chybové zprávy můžeme vypátrat, v čem
tkví problém. Případné zájemce o další podrobnosti a „systémové
utility“ opět odkáži na dokumentaci. Zde uvedeme již jen užitečný
příkaz diary - s jeho pomocí lze veškerý výstup v terminálu
kopírovat do zvoleného souboru:
>> diary lekce3.txt >> A=34; B=A/7; >> diary off
Předchozí příkazy zařídí vytvoření souboru lekce3.txt, jehož obsahem budou řádky uvedené dál až po příkaz diary off, který toto logování vypíná. Opětovně lze zapnout s parametrem on.
Již dříve jsme uvedli, že matici je možno naplnit výčtem jejích jednotlivých prvků nebo funkcí, jako jsou například zeros, eye, rand apod. Další možností, jak tohoto dosáhnout, je nahrání dat ze souboru. Mějme například textový soubor mereni.txt s následujícím obsahem:
--[soubor mereni.txt]-- 12 3 5.4 76 1 2 4.3 89 -1 +5 9.999 100 --[konec souboru]--
Vidíme, že se jedná o matici správně zapsaných čísel, a tudíž obsah tohoto souboru můžeme nahrát do proměnné v Octave pomocí příkazu load:
>> load mereni.txt >> whos prot type rows cols name ==== ==== ==== ==== ==== rwd matrix 3 4 mereni >> mereni mereni = 1.0e+02 * 0.12000 0.03000 0.05400 0.76000 0.01000 0.02000 0.04300 0.89000 -0.01000 0.05000 0.09999 1.00000
Z výpisu příkazu whos vidíme, že nám vznikla nová proměnná mereni čítající tři řádky a čtyři sloupce - Octave proměnnou automaticky pojmenovává podle názvu souboru bez přípony. Z výpisu obsahu proměnné mereni pak vidíme, že skutečně obsahuje ta čísla, která jsou uložena v souboru mereni.txt. Tímto způsobem můžeme relativně snadno do Octave dostat kvanta čísel „získaná někde jinde“, například z nějakého tabulkového kalkulátoru, a dále zpracovávat.
Pokud by již existovala proměnná pojmenovaná stejně jako nahrávaný
soubor (což nastane typicky tehdy, když se pokoušíme nahrát jeden soubor
opakovaně), Octave vypíše varování a soubor nenahraje. Přepsání lze donutit
přepínačem -force
uvedeným bezprostředně za příkazem
load:
>> load mereni.txt warning: load: local variable name `mereni' exists warning: use `load -force' to overwrite >> load -force mereni.txt
Pro ukládání obsahů proměnných do souborů existuje příkaz save:
>> save mereni
Uvedený příkaz zapříčiní vytvoření souboru mereni v aktuální složce, který ovšem po otevření v nějakém textovém editoru nebude uživatelsky moc čitelný. Octave totiž obsahy proměnných ve výchozím nastavení ukládá do binárních souborů, které oproti čistému textu nabízí následující výhody:
Naproti tomu je čistý text snadno čitelný uživatelem a dá se importovat do jiných programů; volba vhodného formátu se tedy odvíjí od toho, co uživatel s uloženými daty zamýšlí:
-ascii
- uloží data jako čistý text-binary
- binární formát Octave, hodí se pro zálohu
dat-mat-binary
- binární formát Matlabu od verze 5, lze tedy
použít pro přenos dat z a do Matlabu-hdf5
- volně využitelný univerzální binární formát
používaný některými vědeckými aplikacemiVolbu formátu zajistíme prvním parametrem příkazu save, druhý parametr vymezuje jméno souboru a následující pak názvy proměnných, které se mají uložit. Neuvedeme-li žádnou proměnnou, uloží se všechny z aktuálního paměťového prostoru (tj. ty, které vypíše příkaz who). Následující příkaz tedy uloží matici mereni v čistém textu do souboru mereni-cisty_text.txt:
>> save -ascii mereni-cisty_text.txt mereni
Výchozí formát, ve kterém se mají proměnné do souborů ukládat, lze nastavit v zabudované proměnné default_save_format. Podobně proměnná save_precision upřesňuje, kolik desetinných míst se má ukládat, pokud je jako formát zvolen čistý text.
Dodejme ještě, že příkaz load automaticky detekuje formát souboru, z kterého nahrává - nicméně stejnými parametry jako u příkazu save jej můžeme donutit, aby předpokládal zadaný formát u nahrávaného souboru. Podobně lze za název souboru uvést seznam proměnných, které se ze souboru mají nahrát (v případě binárních formátů), bez uvedení se nahrají všechny proměnné.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
>> plot(t,y) >> Timeout: gnuplot is not ready Signal 127 warning: connection to external plotter (pid = 509527) lost -- warning: please try your plot command(s) again
Týká se ukládání a načítání dat ze souboru. Dá se octave nějak donutit, aby uložila jenom samotná data, bez těch prvních asi pěti řádků s popisem, jako to dělá při parametru -text/-ascii příkazu save?
Pak když je chci znova načíst v dalším skriptu, obvykle zapomenu, jak se ta proměnná jmenovala, a načte se mi to trošku podivně. Zkuste sekvenci následujících tří příkazů:
A = rand(4,3)
save -text 'A.txt' A
B = load -text 'A.txt'
Postupně jsem přišel na to, že když z uloženého souboru A.txt umažu těch pár popisných řádků, vše funguje, jak má, ale je to takové divné řešení. Nevíte, jak na to?
load 'promenne.txt'obnoví všechny proměnné z uvedeného souboru a
B = load 'promenne.txt'obnoví všechny proměnné organizované v datové struktuře se jménem B, takže k jednotlivým proměnným lze přistupovat jako B.<název proměnné>, v popisovaném případě tedy jako B.A.
Ta volba -text je poměrně nová. V Octave 2.1.71 už je. Měla by být stejná jako volba -ascii. Tu jsem používal dříve, ale prý se má používat -text:
octave:2> save -ascii 'A.txt' A
warning: the meaning of this option will change in a future
warning: version of Octave to be compatible with Matlab.
warning: To keep the meaning of your code the same across
warning: this change, use the -text option instead.
octave:3> version
ans = 2.1.71
Problém bude asi spíše ve mně, měl bych zkusit používat rozumné názvy proměnných a důsledně podle nich pojmenovávat soubory, do kterých je ukládám. Nebo se naučit používat nějaké ty nízkoúrovnové operace se soubory.
Jinak te seriál je skvělý.