Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.
České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.
Microsoft Defender nově podporuje linuxové desktopy.
Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).
Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.
KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
@vars = sort @{$dailyvars{$_}};
Pokud bych měl tedy uloženy odchylky v podobném poli jako hodnoty, a tímto způsobem zamíchám s jejich pořadím,tak už nepřísluší například pátý prvek pole vars k pátému prvku pole odchylek. Principielně je snad řešení snadné, prostě kromě hodnot je třeba naskládat do pole @{dailyvars{1}} ještě odkazy na konkrétní prvky pole odchylek a na ty se potom odvolávat. Já jsem ale v Perlu doccela nováček a netuším jak tohle zapsat nebo mě nenapadá nějaké snažší řešení. Děkuji za každou radu.
Celý výpis kódu je zde
while (<>)
{
if (/^#/) { next; }
/([\d-]+) (\d+) ([\d\.]+) ([\d\.]+)/ or die "daily_median.pl: Error processing line: $_";
if (! exists $dailyvars{$1}) { @{$dailyvars{$1}} = ( $3 ); $count{$1} = 1; }
else { push @{$dailyvars{$1}}, $3; $count{$1} += 1; }
}
foreach (sort keys %dailyvars)
{
@vars = sort @{$dailyvars{$_}};
$n = $#vars + 1;
if ($n % 2 == 1) {
$median = $vars[($n - 1) / 2]; }
else {
$median = ($vars[$n / 2] + $vars[$n / 2 - 1]) / 2; }
print $_ . " $median " . $count{$_} . "\n";
}
Řešení dotazu:
if (! exists $dailyvars{$1}) { @{$dailyvars{$1}} = ({var => $3, odchylka => $4}); $count{$1} = 1; }
else { push @{$dailyvars{$1}}, {var => $3, odchylka => $4}; $count{$1} += 1; }
...
@vars = sort { $a->{var} <=> $b->{var} } (@{$dailyvars{$_}});
...
$median = $vars[($n - 1) / 2]->{var};
A další změny analogicky.
Vtip je v tom, že do $dailyvars{$den} neukládáš jen hodnoty, ale ukazatele na hash, který má dva klíče: var a odchylka. Tím si podržíš ty přidružené hodnoty pospolu.
Doufám, že je to trochu srozumitelné, spěchám, tak to vysvětluju tak nějak narychlo a ne moc exaktně. Podívej se do manuálu na sort, tam uvidíš, že to, co dávám do prvních složených závorek, je funkce, která určuje, podle čeho se bude třídit.
popř. něco takového
use 5.010;
use warnings;
use strict;
my %dailyvars;
while (<>) {
next if /^#/; #ignoruj komentáře
/(?<date>[\d-]+) \d+ (?<var>[\d\.]+) (?<odchylka>[\d\.]+)/ #rozeber řádek
or die "daily_median.pl: Error processing line: $_";
push @{ $dailyvars{ $+{date} }{vars} },
$+{var}; #přidej hodnotu mezi hodnoty
push @{ $dailyvars{ $+{date} }{'odchylky'} },
$+{odchylka}; #přidej odchylku mezi odchylky
$dailyvars{ $+{date} }{count}++; #přičti k počtu 1
}
foreach ( sort keys %dailyvars ) { #pro všechny dny (seřazené)
my $median;
my @vars = sort { $a <=> $b } @{ $dailyvars{$_}{vars} }; #srovnej hodnoty
my $n = @vars; #počet hodnot;
if ( $n % 2 == 1 ) {
$median = $vars[ ( $n - 1 ) / 2 ]
; #vypočti median pro sudý počet hondot
}
else {
$median = ( $vars[ $n / 2 ] + $vars[ $n / 2 - 1 ] )
/ 2; #vypočti median pro lichý počet hodnot
}
#vypiš výsledek
say $_
. "\tmedian: $median "
. "\tpocet: $dailyvars{$_}{count} "
. "\todchylky: @{ $dailyvars{$_}{odchylky} }";
}
Tiskni
Sdílej: