Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »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?