Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované obrázky APNG a WebP.
Na chytré telefony a počítačové tablety v Rusku bude od začátku příštího měsíce povinné předinstalovávat státem podporovanou komunikační aplikaci MAX, která konkuruje aplikaci WhatsApp americké společnosti Meta Platforms. Oznámila to dnes ruská vláda. Ta by podle kritiků mohla aplikaci MAX používat ke sledování uživatelů. Ruská státní média obvinění ze špehování pomocí aplikace MAX popírají. Tvrdí, že MAX má méně oprávnění k přístupu k údajům o uživatelích než konkurenční aplikace WhatsApp a Telegram.
Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.
Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.
Před sedmi lety společnost Valve představila fork projektu Wine s názvem Proton umožňující v Linuxu přímo ze Steamu hrát počítačové hry do té doby běžící pouze ve Windows. Aktuální přehled podporovaných her na stránkách ProtonDB
Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.
Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze
… více »Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.
The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.
Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.
Občas by člověk potřeboval něco naprogramovat v BASHi a nepamatuje si, nedělá to často a tak. No a k tomu by se mu hodily nějaké tu základní konstrukce vytesané do webu. Třeba zrovna dnes jsem hledal způsob jak se pracuje s proměnými jejichž název je v nějaké proměné. Paradoxní, že jsem hledal svůj vlastní příspěvek a v něm obsažený příklad.
#!/bin/bash foo () { local var=BAR_$1 eval $var=$2 echo ${!var} } foo Ahoj svete # melo by vypsat "svete" # uvnitr funkce by mela vzniknout promenna # BAR_Ahoj="svete" echo $BAR_Ahoj exit 0
Jak se vždy přepnout do adresáře kde je umístěn script a dělat cosik relativně k tomuto adresáři?
# go to root directory of project origdir=$(pwd) cd ${0%/*}
Co udělat s parametrem od uživatele, když nám zadá cestu k nějakému souboru (když relativní tak zpravidla relativní k původnímu umístění).
[ ${1:0:1} == '/' ] && filename=$1 || filename=$origdir/$1
Ať se stane cokoli, měli bychom po sobě uklidit. Teda pokud se nebjeví nějakej "umětel" a nepošle nám SIGKILL.
#exit clean clean() { rm -rf $clist $dlist $packdir } trap clean EXIT
Něco málo k hezkým chybovým hláškám.
#error messages error() { local exitcode=$1 shift [ $exitcode != 0 ] && local prefix="error $exitcode:" errormsg "$prefix $@" exit $exitcode } errormsg() { echo "${0##*/}: $@" >&2 ; }
Občas se hodí udělat ten program trochu ukecanější.
#debug info debug() { [ "$debug" == 1 ] && errormsg "debug: $@" } debugvar() { for i do debug "${IFS:1:1}variable $i: '${!i}'" done }
Tohle už tu bylo, ale trocha opakování ještě nikoho nezabila.
# usage usage() { cat >&2 <<EOF Usage: ${0##*/} [switches] [release_type] -h | --help print help -c | --create print template for defined files list (to stdout) -l <filename> | --listfile=<filename> determine alternative filename for listfile -t | --test only test listfile -d | --debug print debug informations EOF [ $# -ge 1 ] && exit $1 } # get options params=$( getopt -n "${0##*/}" -l help,create,listfile:,test,debug -o hcl:td -- "$@" ) [ $? != 0 ] && usage 1 # remove quotes eval set -- "$params" unset params # handle parameters while : do case "$1" in -h|--help) usage 0;; -c|--create) create_listfile ;; -l|--listfile) shift [ ${1:0:1} == '/' ] && listfile=$1 || listfile=$origdir/$1 ;; -t|--test) test=1;; -d|--debug) debug=1;; --) shift; break ;; *) error 32 "Internal Error: Inconsistent getopt params!";; esac shift done
A to je pro dnešek vše přátelé.
Tiskni
Sdílej:
tak by jsmeEt tu, Brute?