Google Chrome 154 byl prohlášen za stabilní. Nejnovější stabilní verze 154.0.8037.57 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 108 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Vláda sníží v příštím roce výdaje na IT služby státu o 1,4 miliardy korun. Úspory má umožnit lepší koordinace nákupu služeb napříč resorty prostřednictvím nového zmocněnce. Celkové roční výdaje státu na informační technologie a digitalizaci se podle údajů ministerstva průmyslu a obchodu pohybují okolo 20 až 25 miliard korun ročně, pro letošek bylo na 320 projektů vyčleněno 21 miliard.
Irská komise pro ochranu dat (DPC) uložila americké technologické společnosti Google ze skupiny Alphabet pokutu 403 milionů eur (9,8 miliardy Kč) za neoprávněné nakládání s údaji o poloze uživatelů. Firma podle komise porušila evropské nařízení o ochraně osobních údajů (GDPR). DPC uvedla, že při šetření zjistila, že si lidé nemuseli být vědomi skutečnosti, že jejich poloha byla využívána například k ovlivňování prostřednictvím reklam nebo k odvozování jejich zájmů, a mohli tak ztratit kontrolu nad svými osobními údaji.
Byla oznámena beta verze nového video kodeku Pyrowave pro streamování her v Steam Remote Play. S vysokou propustností a nízkou latencí. S podporou HDR a YUV 4:4:4.
Byl vydán Sublime Text 4 Build 4213. Sublime Text (Wikipedie) je proprietární multiplatformní editor textových souborů a zdrojových kódů. Ke stažení a k vyzkoušení je zdarma. Pro další používání je nutná licence v ceně 99 dolarů. Spolu se Sublime Merge je cena 168 dolarů.
Firma Anthropic, tvůrce AI modelu Claude, začala v oblasti Sanfranciského zálivu v tichosti provozovat vlastní biotechnologickou laboratoř. Anthropic prý chce pomocí AI urychlit hledání léků na nemoci, jimž farmaceutický průmysl dle názoru firmy věnuje příliš málo pozornosti. Firma tvrdí, že laboratoř se zatím soustředí především na základní biologii, nikoli přímo na vývoj léčiv. Farmaceutický výzkum je pro generálního ředitele Daria Amodeie velice osobní téma, jeho otec zemřel na hepatitidu C několik málo let před objevením účinné léčby.
Vědci z Googlu dokončili mapu všech neuronových spojení v mozku (tzv. konektom) samečka mušky octomilky obecné (drosophila melanogaster), hlavním cílem je komparativní analýza s již zmapovaným mozkem samičky. S tímto veřejně dostupným modelem, čítajícím přibližně 160 000 neuronů, se začali bavit nadšenci. Mozek mouchy pohání experimentálního kryptoburzovního bota Stonkfly, případně si zahrál počítačové hry Beat Saber, Mario64 a samozřejmě DOOM (gameplay videa). Ani mozek samičky nezůstal stranou, vyzkoušel si Minecraft.
Alibaba Cloud je dalším sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let. Stejná částka jako u DigitalOcean.
Byla vydána nová verze 262 správce systému a služeb systemd (Wikipedie, GitHub).
Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.
/usr/lib64/nagios/plugins/check_icinga2.sh /usr/share/monitoring-common-shell-library/functions.sh: line 1721: local: -n: invalid option local: usage: local [option] name[=value] ... /usr/share/monitoring-common-shell-library/functions.sh: line 1713: haystack[@]: unbound variabledotčené řádky vypadají takto:
in_array_re ()
{
if [ $# -ne 2 ] || \
! [[ "${1}" =~ ^[[:graph:]]+$ ]] || \
! is_array "${1}"; then
fail "Invalid parameters"
return 1
fi
local -n haystack="${1}"
#local -a 'haystack=("${'"${1}"'[@]}")'
for i in "${haystack[@]}"; do
if [[ "${2}" =~ ${i} ]]; then
return 0
fi
done
return 1
}
readonly -f in_array_re
konkrétně to nerozumí této konstrukci:
local -n haystack="${1}"
Nevěděli byste někdo kde je problém?
Řešení dotazu:
Neviem či to chápem správne, ale vychádza mi z toho, že "local -n haystack="${1}" umožňuje sa na ${1} odkazovať cez premennú haystack. To znamená, že tam, kde sa neskôr použije ${haystack}, by sa mohlo rovno použiť ${1}. Akurát takto je to čitateľnejšie, pretože to meno indikuje, že v prvom parametri je niečo v čom sa robí vyhľadávanie.local [option] [name[=value] ... | - ]
...
... The option can be any of the options accepted by declare ...declare [-aAfFgilnrtux] [-p] [name[=value] ...]
-n Give each name the nameref attribute, making it a name reference to another variable. That other variable is defined by the value of name. All references, assignments, and attribute modifications to name, except those using or changing the -n attribute itself, are performed on the variable referenced by name's value. The nameref attribute cannot be applied to array variables.
function myFunction {
local -n givenList=$1
echo "${givenList[@]}"
}
itemList=("first" "second" "third")
myFunction itemList
Zdar Max
The nameref attribute cannot be applied to array variables.
local -n haystack="${1} vyzera ako referencovanie obycajnej premennej, co je asi OK, ale dalej sa uz s haystack pracuje ako s polom - ${haystack[@]}. A aj to zakomentovane definovanie haystack je definicia ako pole. Podla mna povodne bol haystack pole a potom niekto prepisal skript, ze haystack referencuje len $1, co nebude uplne fungovat.
/usr/share/monitoring-common-shell-library/functions.sh: line 218: CSL_USER_PREREQ[@]: unbound variable
Cccoooooooooožžžeeeeeeeeee???
Tohle nemůžeš myslet vážně. Ne, opravdu ne. Proč si nepřečteš manuálovou stránku, než odpovíš? Teď se na webu zbytečně povaluje další naprostý nesmysl.
-n Give each name the nameref attribute, making it a name reference to another
variable. That other variable is defined by the value of name. All refer‐
ences, assignments, and attribute modifications to name, except those using or
changing the -n attribute itself, are performed on the variable referenced by
name's value. The nameref attribute cannot be applied to array variables.
Jasně, to vůbec nemá na funkci žádný vliv, že? Kromě zásadního. Ale koho dnes zásadní vliv zajímá…
Doporučuji ignorovat všechny ostatní odpovědi / většinu ostatních odpovědí. V tomto vlákně je opravdu nablito. To se nehodí. Především je potřeba nahlédnout do manuálové stránky:
-n Give each name the nameref attribute, making it a name reference to another
variable. That other variable is defined by the value of name. All refer‐
ences, assignments, and attribute modifications to name, except those using or
changing the -n attribute itself, are performed on the variable referenced by
name's value. The nameref attribute cannot be applied to array variables.
Takže: -n je v Bashi (u declare a local) něco jako poor man's pointer. Říká to, že proměnná ukazuje na jinou proměnnou, tedy že obsah té proměnné se má považovat za název jiné proměnné, jejíž hodnota se potom dosadí. Tak trochu je to ekvivalentní vykřičníku v expanzi, jenom pak žádný vykřičník není potřebný a přiřazení proměnné funguje oběma směry, jako u pointeru / reference. Tady je jednoduchý příklad pro ilustraci:
a=blabla
declare -n b=a
c=a
echo $b # blabla
echo ${!c} # blabla
b=hovno
echo $a # hovno
Jak to tedy zprovoznit ve starším Bashi? Inu, to je ošklivé. Protože c ve výše zmíněné ukázce je kompatibilní se starým Bashem, jako lákavá možnost se jeví nahradit každý haystack za "${!1}". Jenže to nefunguje. Bash prostě v tomto případě nepovoluje čísla / parametry.
Takže mi nezbývá než doporučit záměnu řádky local -n haystack="${1}" za něco jako tohle:
eval 'local haystack="${1}"'
Ještě bych ale poznamenal, že problém nastane, pokud ten první argument je název pole. Pak je to mírně složitější. V takovém případě bych doporučoval (pro Bash 4.2) něco takového (tedy, když v $1 bude název pole):
prase() {
local -r declare_command="$(declare -p "$1")"
eval "${declare_command/#declare/local}"
eval "local -ra array=(\$(echo \"\${"$1"[@]}\"))"
# Tak. A pod touhle sračkou už je to normální pole:
for idx in "${!array[@]}"; do
echo "${idx} -> ${array["${idx}"]}"
done
}
neboprasnice=(a b c d 9 8 7 6)
prase neboprasnice
Jak zjistit, jestli název proměnné v argumentu ukazuje na pole? Inu, stačí se podívat, jestli declare -p názevproměnné má mezi optiony -a. Jak tohle rozparsovat, to už rád ponechám čtenáři za cvičení.
Ale většinou není třeba cvičit, protože (nápověda!) k proměnné, která není pole, se dá v Bashi taky přistupovat jako k poli s jedním prvkem s indexem 0. Jo, a jestli to bude asociativní pole (declare -A ...), tak to už ale fakt opravdu dávám čtenáři za cvičení. Už mě to nebaví. 
Závěrem musím ještě znamenat a tak dlouho znamenat, až poznamenám, že na rozdíl od declare -n neexistuje žádná alternativa pro starší Bash, která by udržovala referenci oběma směry a změny na referenci propagovala do původní proměnné. Jediná možnost, jak toho dosáznout, je proměnnou lokálně přejmenovat (jo, změnit hned první eval ve funkci prase), aby se pořád dalo přistupovat k té původní globální, a tu původní globální pak změnit / přiřadit. To bych ponechal čtenáři za bonusové cvičení se třemi hvězdičkami.
Hernajs, co takhle nepoužívat zastaralé fosilní systémy a ujistit se, že na daném systému je Bash 5.x? Would that be too extreme?
a='foo'
b=a
eval echo \${$b}
Nevypadá to, že by to podporovalo pole a/nebo lokální proměnné.
Často jsou v Bashi velé rozdíly mezi řešením a „řešením“.
https://netshadow.org/monitoring-plugins/check_icinga2 https://netshadow.org/monitoring-plugins/monitoring-common-shell-libraryDíky všem
je to protoze /usr/local slouzi k tomu aby se dalo lokalne nahradit to co mas jinak z balicku... a urcite bych nemenil PATH jako "reseni" ale jak bylo receno, bud dat jinou verzi do /opt/cokoliv/bash nebo v /usr/local/bin/bashcokoliv a zmenit jen hlavicku toho skriptu co vyzaduje novejsi verzi, tak zustane funkcnost napric systemem zachovana a vsechny skripty budou brat systemovej 4.2.x bash...
Tiskni
Sdílej: