Nizozemská vláda ve snaze šetřit a zvyšovat efektivitu s využitím umělé inteligence (AI) hodlá zrušit asi 25.000 pracovních míst ve státní správě. Cílem je postupně dosáhnout ročních úspor až 3,5 miliardy eur (85,2 miliardy Kč). Na konci loňského roku ve státní správě pracovalo rekordních 160.000 lidí. „Nemůžeme pokračovat v tom, co jsme dělali dosud,“ uvedl státní tajemník pro efektivní fungování vlády Eric van den Burg. „Proto
… více »Příspěvek na blogu PRUSA 3D představuje fotoaparát CAIM1 (Counter Artificial Intelligence Machine 1). Uměle vytvořený obsah je každým dnem těžší rozeznat od skutečných záběrů či fotografií, což podrývá důvěryhodnost žurnalistiky, archivních materiálů i každodenní tvorby obsahu. Fotoaparát CAIM1 byl vyvinut právě k tomu, aby ověřoval původ fotografií a videí přímo během jejich pořizování. Uvnitř fotoaparátu se nachází hardwarová Web3 peněženka se zabezpečovacím čipem Tropic Square TROPIC01.
Jonathan Thomas oznámil vydání nové verze 4.1 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Při běžné migraci virtuálního stroje mezi hypervizory se jeho MAC adresa přesune na jiný leaf switch. EVPN tuto změnu distribuuje pomocí BGP Type-2 route a MAC mobility sequence number. Problém nastává, pokud útočník podvrhne zdrojovou MAC adresu jiného zařízení. Leaf může změnu interpretovat jako legitimní přesun MAC a rozšířit ji přes BGP do celé fabric. Výsledkem může být přesměrování provozu určeného původnímu zařízení. Autor článku rozebírá možnosti detekce pomocí sledování MAC moves, BGP route reflektorů a kontroly na přístupové vrstvě.
Vývojáři desktopového prostředí Enlightenment (Wikipedie) a souvisejících knihoven Enlightenment Foundation Libraries (EFL) vydali nové verze. Enlightenment byl vydán ve verzi 0.28.0 a Enlightenment Foundation Libraries ve verzi 1.29.
Cloudflare zjistil, že některé odpovědi modelu GLM-5.3 obsahovaly části dat z předchozích požadavků jiných zákazníků. Příčinou byla kombinace chybné konfigurace a chyby v inference enginu SGLang. Model podporoval kontextové okno 1 048 576 tokenů, ale GPU KV cache pool měl kapacitu pouze 681 280 tokenů. Při překročení kapacity docházelo k nesprávnému zpracování odmítnutého požadavku. Decode část systému následně pracovala se starými
… více »Vývojáři Knot Resolver vysvětlují, jak změnili rozhodování o tom, které DNS záznamy ponechat v cache a které odstranit. Článek obsahuje skutečná měření: devět hodin DNS provozu při 2 000 QPS, srovnání cache o velikosti 25 MB a 40 GB a také porovnání s BIND 9, kromě algoritmů obsahuje konkrétní doporučení pro konfiguraci a diagnostiku.
Největší kryptoměnová burza světa Binance se stala terčem útoku, při kterém podvodníci odcizili během několika minut kryptoměny v hodnotě přibližně 6,3 miliardy dolarů. Jedná se o největší kryptoměnovou krádež v historii, přibližně čtyřikrát větší než loňský útok na burzu Bybit. Binance se podařilo ve spolupráci s partnery zmrazit aspoň aktiva v hodnotě zhruba 3 miliard dolarů a slíbila, že veškeré ztráty pokryje z vlastních prostředků.
Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.
Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?
getopts, dále jak zjistit, kolik procesorového času spotřebovává daný program pomocí time, a také jak spustit program tak, aby jej nepřerušilo ukončení řídícího terminálu pomocí nohup.
Nástroj getopts slouží ke zpracování přepínačů a jejich argumentů, které jsou předány shellovému skriptu. Název je zkratkou get options, česky „získej přepínače/nastavení“.
Obvykle se volá v cyklu while, dokud vrací návratovou hodnotu 0 (tzn. dokud neprojde všechny zadané přepínače). Použití vypadá takto:
aopt=false
bopt=false
barg=""
while getopts 'ab:' opt; do
case "$opt" in
a)
aopt=true ;;
b)
bopt=true
barg=$OPTARG ;;
esac
done
if $aopt; then
echo "Zadali jste přepínač -a"
fi
if $bopt; then
echo "Zadali jste přepínač -b s argumentem $barg"
fi
Funguje to potom takto:
$ ./skript -a Zadali jste přepínač -a $ ./skript -b ./skript: přepínač vyžaduje argument – b $ ./skript -b xy Zadali jste přepínač -b s argumentem xy $ ./skript -c ./skript: chybný přepínač – c
Jako argument se předává nejdříve řetězec s přepínači, přičemž má-li určitý přepínač vyžadovat argument, přidá se za něj dvojtečka. Takže pokud chcete, aby váš program podporoval přepínače -a s argumentem -h a -v, řetězec bude vypadat takto: ,a:hv‘. Další argument je proměnná, kam se ukládá právě zpracovávaný přepínač anebo ,?‘, pokud jde o přepínač neznámý (tj. neuvedený v prvním argumentu getopts).
getopts automaticky vypisuje chybové hlášení, pokud přepínač vyžaduje argument a vy jej nezadáte nebo pokud zadáte neznámý přepínač. V případě, že si chcete chybějící argument ošetřit sami, můžete do řetězce s argumenty přidat na začátek (před všechny přepínače) dvojtečku, což změní chování programu. Pokud nyní vynecháte argument, tak se do zadané proměnné (v ukázce výše je to $opt) uloží dvojtečka a znak přepínače vyvolávající tuto chybu se uloží do proměnné OPTARG. Je to možná trochu matoucí, proto přikládám jednoduchou ukázku:
while getopts ':a:b:' opt; do
case "$opt" in
'a')
aopt=true; aarg=$OPTARG ;;
':')
echo "Přepínač -$OPTARG vyžaduje argument."
exit 1 ;;
esac
done
time je nástroj sloužící ke zjištění skutečné doby běhu daného příkazu a spotřebovaného procesorového času v uživatelském a jaderném prostoru. Název vychází z anglického slova, které v tomto kontextu znamená odměřit (čas).
Použití je velmi jednoduché, zkrátka před samotný příkaz přidáte time, takže například příkaz
time tar -jcf etc.tar.bz2 /etc
zabalí a zkomprimuje adresář /etc do souboru etc.tar.bz2 a nakonec vypíše tři zmiňované časy:
real 0m1.900s user 0m0.560s sys 0m0.067s
Z tohoto vyplývá, že příkaz běžel 1,9 sekund (real) a využil 0.627 sekund procesorového času (user+sys), z čehož 0.560 sekund bylo v uživatelském prostoru (user) a zbylých 0.067 sekund v jaderném (sys).
Chcete-li spustit time na složitý příkaz obsahující např. roury, máte několik možností. Pokud na to půjdete stejně jako u jednoduchého příkazu, tak je na implementaci, který čas se bude měřit (pouze jeden program, nebo i ty ostatní za rourami). Chcete-li mít jistotu, tak si buď příkaz uložte do skriptu a volejte time na skript, anebo použijte následující způsob:
time sh -c "find ~ -iname thumbs.db -type f -print0 | xargs -0 rm"
Výstup příkazu time bez argumentů se v různých implementacích může lišit (a skutečně liší). Chcete-li jednotný formát, který by měl být ve všech standardních implementacích stejný, použijte přepínač -p. Výstup bude vypadat takto:
# time -p ls -R / > /dev/null real 1.85 user 0.53 sys 1.30
Počet desetinných míst se může lišit dle potřeby (až šest), ovšem vždy musí být vypsáno alespoň jedno.
Příkaz nohup slouží ke spuštění daného programu tak, aby ignoroval signál SIGHUP, který systém posílá, když je ukončen řídící terminál daného procesu.
Například následující příkaz spustí fatrat tak, aby běžel i po uzavření konzole:
nohup fatrat
Výstup programu je ukládán do souboru nohup.out v aktuálním pracovním adresáři a pokud tento soubor nelze otevřít pro zápis, tak se použije soubor ~/nohup.out, přičemž pokud ani do něj nelze zapisovat, nohup skončí s chybou a daný program nespustí.
Často je žádoucí spustit program rovnou na pozadí a ignorovat jeho výpisy, čehož lze dosáhnout takto:
# std. výstup a std. chybový výstup je přesměrován do /dev/null nohup fatrat &> /dev/null &
Pokud takto spouštíte něco na vzdáleném počítači přes SSH, tak se vám může stát, že se nebudete moci odpojit. To řešíme tak, že přesměrujeme i standardní vstup. Nakonec by tedy příkaz vypadal takto:
nohup fatrat &> /dev/null < /dev/null &
Ještě dodám jeden malý související tip, který patrně není unixový (a přenositelný), nicméně na GNU/Linuxu funguje. Spustíte-li z konzole příkaz, který běží dlouho, a vy se rozhodnete v polovině jeho průběhu, že jste ho vlastně chtěli spustit přes nohup, lze to vyřešit. Když zmáčknete Ctrl+Z, proces se zastaví (dostane signál SIGSTOP). Když poté spustíte bg, proces pokračuje v běhu na pozadí. Nakonec když spustíte disown, tak docílíte podobného efektu, jako kdybyste program spustili přes nohup. Nyní můžete klidně daný shell ukončit a příkaz poběží dál.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Neodpovidajici SSH session (prave treba kvuli background procesu) je take mozne ukoncit pomoci nasledujiciho navodu:
http://www.onlinehowto.net/Tutorials/SSH/SSH-tips-and-tricks-Dead-or-unresponsive-ssh-session/1271
Klicova je posledni veta:
"So to kill the dead ssh session you do Enter then Shift + ` and then . (dot)."
disown [ options ] [job ...]
If job is omitted, the most recently started or stopped background job is used. Takze proces nemusite stopovat, ale staci dodat hodnotu job daneho procesu.