Po více než roce vývoje od vydání verze 5.40 byla vydána nová stabilní verze 5.42 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 64 vývojářů. Změněno bylo přibližně 280 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.
Byla vydána nová stabilní verze 7.5 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 138. Přehled novinek i s náhledy v příspěvku na blogu.
Sniffnet je multiplatformní aplikace pro sledování internetového provozu. Ke stažení pro Windows, macOS i Linux. Jedná se o open source software. Zdrojové kódy v programovacím jazyce Rust jsou k dispozici na GitHubu. Vývoj je finančně podporován NLnet Foundation.
Byl vydán Debian Installer Trixie RC 2, tj. druhá RC verze instalátoru Debianu 13 s kódovým názvem Trixie.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za červen (YouTube).
Libreboot (Wikipedie) – svobodný firmware nahrazující proprietární BIOSy, distribuce Corebootu s pravidly pro proprietární bloby – byl vydán ve verzi 25.06 "Luminous Lemon". Přidána byla podpora desek Acer Q45T-AM a Dell Precision T1700 SFF a MT. Současně byl ve verzi 25.06 "Onerous Olive" vydán také Canoeboot, tj. fork Librebootu s ještě přísnějšími pravidly.
Licence GNU GPLv3 o víkendu oslavila 18 let. Oficiálně vyšla 29. června 2007. Při té příležitosti Richard E. Fontana a Bradley M. Kuhn restartovali, oživili a znovu spustili projekt Copyleft-Next s cílem prodiskutovat a navrhnout novou licenci.
Svobodný nemocniční informační systém GNU Health Hospital Information System (HIS) (Wikipedie) byl vydán ve verzi 5.0 (Mastodon).
Open source mapová a navigační aplikace OsmAnd (OpenStreetMap Automated Navigation Directions, Wikipedie, GitHub) oslavila 15 let.
Vývojář Spytihněv, autor počítačové hry Hrot (Wikipedie, ProtonDB), pracuje na nové hře Brno Transit. Jedná se o příběhový psychologický horor o strojvedoucím v zácviku, uvězněném v nejzatuchlejším metru východně od všeho, na čem záleží. Vydání je plánováno na čtvrté čtvrtletí letošního roku.
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?