Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.
Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.
Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
Byla vydána nová verze 10.6 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Povoluje hybridní postkvantový podpisový algoritmus ssh-mldsa44-ed25519.
Americká společnost Reflection AI světu představila Beam, open-weight model s 501 miliardami parametrů (z toho 23 miliard aktivních), určený především pro programování a práci autonomních agentů. Podle autorů jejich model nabízí výkon srovnatelný s většími modely při výrazně nižších nárocích na výpočetní výkon. Beam nyní ještě prochází závěrečným testováním, na stránkách Reflection AI se však lze zaregistrovat a získat předběžný přístup. Váhy modelu, dokumentace a nástroje pro vývojáře mají být zveřejněny v průběhu tohoto měsíce.
OpenCourant je komunitní fork OpenRadioss, tj. open source softwaru pro simulace havárií, nárazů a vysoce nelineárních dynamických dějů metodou konečných prvků. Společnost Siemens v loňském roce dokončila akvizici společnosti Altair Engineering, jež před čtyřmi lety uvolnila open source verzi OpenRadioss svého proprietárního softwaru Radioss. Minulý týden Siemens OpenRadioss pohřbil. Integroval jej do svého softwaru Simcenter, webovou stránku OpenRadioss přesměroval na Simcenter a repozitář OpenRadioss na GitHubu odstranil.
Pořadatelé devátého ročníku komunitního setkání správců nejen českých a slovenských sítí – CSNOG 2027, které se uskuteční 20. a 21. ledna, vyhlásili Call for Abstracts. Náměty na vystoupení mohou zájemci přihlašovat do 31. října na webu akce a vybírat mohou ze tří sekcí – správa sítí, legislativa a regulace a akademické projekty. Zveřejněny byly také Call of Partners určené sponzorům a partnerům setkání, kteří by například chtěli mít na
… více »Strata je open-source inferenční engine, který umožňuje lokálně provozovat rozsáhlý čínský model Qwen3.8-Flash-Next, který by jinak nejspíše vyžadoval serverovou infrastrukturu, na běžném herním počítači s alespoň 12 GB VRAM, 32 GB RAM a dostatkem místa na SSD. Nároky na paměť a rychlost generování se liší s použitou variantou modelu Qwen. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Americký prezident Donald Trump oznámil vznik federální Jednotky pro superinteligenci (Super Intelligence Force), která má koordinovat postup vlády, technologických firem, náboženských organizací a dalších institucí v oblasti rychle se rozvíjející umělé inteligence (Trumpem oficiálně nazývanou superinteligencí). SIF, podřízená přímo Trumpovi, má pomoci Spojeným státům udržet v oblasti SI technologický náskok nad světem a
… více »Klient je e-mailový klient pro GNOME s nativní podporou Proton Mailu, PGP a spamfiltrem řízeným AI. Napsaný je v Go s GTK4 a libadwaita. Připojuje se přímo k Proton Mailu (bez Proton Bridge), ke Gmailu, k Seznam.cz a k libovolné schránce IMAP/SMTP. Každou novou zprávu nejdřív posoudí spamfiltr a teprve potom ji ukáže a ohlásí. Rozhraní je česky a anglicky.
V průběhu používání *uxu jsem zjistil, že používám stále stejnou sadu užitečných postupů při tvoření BASH skriptů.
Vytvořil jsem si šablonu a protože jsou v ní věci které považuji za opravdu užitečné a nenašel jsem je nikde dané pěkně pohromadě, tak ji dávám v plen. Snad se bude někomu hodit.
#!/bin/bash
#set -x
# Debug output ?
DBG=n
DBG=y
### Uitlity Variables #################
PRGNAME=`basename ${0}`
## needed for singleton scripts (see function make_pid_file() )
#PIDFILE="/var/run/${PRGNAME}.pid" # system scope (need root access)
#PIDFILE="/tmp/${PRGNAME}.pid" # system scope (user access)
PIDFILE="/tmp/${PRGNAME}.${USER}.pid" # user scope
# Try get CFG from /etc/$CFGNAME, ~/.$CFGNAME and
# mandatory cfg from /etc/$CFGNAME.mandatory
# if $CFGNAME is empty do not use cfg files
CFGNAME="${PRGNAME}" # if empty do not use cfg files
#CFGNAME=""
### User Variables #####################
### Utility functions ##################
function dbg() {
[ "s${DBG}" = "sy" ] && echo -e "DBG: ${@}" 1>&2
}
function err() {
dbg "function err()"
echo -e "${PRGNAME}: ${@}" 1>&2
}
function die() {
dbg "function die()"
se=${1}
shift
err ${@}
exit "${se}"
}
function load_config() {
dbg "function load_config()"
[ -z ${CFGNAME} ] && dbg ' $CFGNAME not set, no cfg needed' && return
# Try get CFG from /etc/$CFGNAME, ~/.$CFGNAME and
# mandatory cfg from /etc/$CFGNAME.mandatory
CFGloaded=n
for cfg in "/etc/${CFGNAME}" "~/.${CFGNAME}" "/etc/${CFGNAME}.mandatory"
do
if [ -r "${cfg}" ]
then
. ${cfg} || die 1 "Loading configuration from ${cfg} failed."
dbg " lodaing cfg. from ${cfg}"
CFGloaded=y
fi
done
[ "s${CFGloaded}" = "sn" ] && die 2 "No configuration file found in: " \
"/etc/${CFGNAME}" "~/.${CFGNAME}" "/etc/${CFGNAME}.mandatory"
}
function cleanup() {
dbg "function cleanup()"
# make a clean up think
if [ -n "${PIDFILE}" -a -r "${PIDFILE}" ]
then
rm -f "${PIDFILE}" \
|| err "${PRGNAME}# Can not delete PID file: ${PIDFILE}"
fi
}
function make_pid_file() {
dbg "function make_pid_file()"
[ -z ${PIDFILE} ] && dbg ' $PIDFILE is not set, not using it' && return
# Single ton scope is set by PIDFILE value
# PIDFILE="/var/run/${PRGNAME}.pid" is in system scope (need root access)
# PIDFILE="/tmp/${PRGNAME}.pid" is in system scope (user access)
# PIDFILE="/tmp/${PRGNAME}.${USER}.pid" is in user scope
if [ -f ${PIDFILE} ]
then
## Another instance is running
OTHER_PID=`cat ${PIDFILE}`
err "EXITING\n Pid file found: ${PIDFILE}"
err " Probably another instance of ${PRGNAME} is running. (PID=${OTHER_PID})"
die 127 "Check-it please ..."
else
echo "${$}" > "${PIDFILE}" 2>/dev/null
[ -f "${PIDFILE}" ] || \
die 126 "${PRGNAME}# Can not create PID file: ${PIDFILE}"
chmod 600 "${PIDFILE}"
fi
}
### Cfg. Loading ###################
load_config
### Pre Run Checks #################
dbg "### Additional Checks ###"
# if it has to be singleton (see make_pid_file() for info. about scope)
make_pid_file
#######################################
dbg "setting trap"
# in case of any exit run cleanup procedure
# 0 means normal exit so you can not do cleanup "by hand"
trap cleanup 0 2 3 4 9 11 15 # I know, I know at least 9 can not by catched
### Main Part##########################
dbg "### Main Part ###"
#######################################
Tiskni
Sdílej:
function dbg_init () {
case "$1" in
'-') exec 4>&1 ;;
'') exec 4>/dev/null ;;
*) exec 4>>"$1" ;;
esac
}
# dbg_init
# dbg_init '-'
# dbg_init "/var/log/${PROGNAME}.log"
function dbg() {
echo -e "DBG: ${@}" >&4
}
Navíc perl opravdu není všude ...
Navíc perl opravdu není všude ...To BASH taky ne
Ale i do Windows se dá doinstalovat...To BASH taky ... (já ve Win používám ZSH, ale BASH jsem taky někde viděl) Vždyť Win mají POSIX layer neeeeee
Pro ošetření toho, aby se nějaký program spustil v jednom čase jen jednou nepotřebuji složitější jazyk. Na to stačí BASH viz. tento spot.
V nadpisu spotu je BASH ... pokud Vás to irituje, prosím už ho nečtěte a ani diskuse pod ním.
Aneb ukaž mi software, který dělá úplně všechno. Spousta malých nástrojů pohromadě sice taky neudělá úplně všecho, ale myslím, že udělají mnohem víc, než software, jehož tvůrci si bůhvíproč mysleli, že musí umět všechno včetně RFC 2324.
software, jehož tvůrci si bůhvíproč mysleli, že musí umět všechno
Spíš než takový monstrózní software považuji za ideální jednotlivé komponenty, které jsou integrované nějakým lepším způsobem, než jsou skripty v BASHi. Mám radši systém tažený událostmi, než takový, který musí být neustále popoháněn pomocí skriptů* aby vůbec fungoval (obvykle periodicky spouštěných cronem).
Ale je fakt, že svět není ideální a bez skriptů se člověk neobejde, alespoň bez těch init.d (pokud nepoužívá nejmenovaný úžasný OS se svcadm).
BTW: to RFC se mi líbí a patička je super 
*) které navíc psal admin nikoli programátor a tester kolem nich neprošel ani cestou na oběd 
Spíš než takový monstrózní software považuji za ideální jednotlivé komponenty, které jsou integrované nějakým lepším způsobem, než jsou skripty v BASHi. Mám radši systém tažený událostmi, než takový, který musí být neustále popoháněn pomocí skriptů* aby vůbec fungoval (obvykle periodicky spouštěných cronem).Teď mluvíš o Emacsu...
(Aneb událostmi řízený systém s mnoha jednotlivými komponentami, integrovanými v jednoduchém, ale mocném dynamickém jazyku.)
Aneb ukaž mi software, který dělá úplně všechno.
Bez váhání dávám Emacs. ^_^
Ale ten hardware si pro to budu muset asi udělat sám...
#!/bin/sh
help(){
echo Usage: $0
}
if [ $# -lt 1 ]
then
help
else
echo OK
fi
while getopts h opt
do
case $opt in
h) help;;
\?) help;;
esac
done
shift $(($OPTIND - 1))
echo Running
Prostě mi skripty přijdou příliš křehký ...
[ "s${DBG}" = "sy" ] && echo -e "DBG: ${@}" 1>&2
Jaký je rozdíl oproti
[ "${DBG}" = "y" ] && echo -e "DBG: ${@}" 1>&2
?
$DBG && echo -e "DBG: $@" >&2
$ DBG=true $ $DBG && echo "OK" OK $ $ DBG=false $ $DBG && echo "OK" $ $ DBG=jabaduba $ $DBG && echo "OK" bash: jabaduba: command not found # šlo by ošetřit pomocí set -e - bash by po takovéto chybě nepokračovat $ $ unset DBG $ $DBG && echo "OK" OK # je to opravdu chování které autor chtěl? $2) na shellech kde "true", "false" a "test" jsou uvnitř shellu je téměř jedno který z nich voláte a s "test" máte jistotu CO to udělá.
# set |grep DBG
# [ "${DBG}" = "y" ] && echo Yes || echo No
No
# DBG=y
# [ "${DBG}" = "y" ] && echo Yes || echo No
Yes
#
# [ "${DBG:-n}" = "y" ] && echo Yes || echo No
$ echo "${QQQ:-www}"
www
$
Nedostanete se někdo ke starším verzím? Jak je to tam?
Fakt ... koukam jako trubka. :->Zlomená?
Pajpa přeci kouká takhle: :|
$ DBG="y"
$
$ [ "s${DBG}" = "sy" ] && echo OK
OK
$
$ [ "${DBG}" = "y" ] && echo OK
OK
$
$ [ ${DBG} = "y" ] && echo OK
OK
$
$ [ $DBG = "y" ] && echo OK
OK
$
$
$
$ DBG="n"
$
$ [ "s${DBG}" = "sy" ] && echo OK
$
$ [ "${DBG}" = "y" ] && echo OK
$
$ [ ${DBG} = "y" ] && echo OK
$
$ [ $DBG = "y" ] && echo OK
$
$
$
$
$ unset DBG
$
$ [ "s${DBG}" = "sy" ] && echo OK
$
$ [ "${DBG}" = "y" ] && echo OK
$
$ [ ${DBG} = "y" ] && echo OK
bash: [: =: unary operator expected
$
$ [ $DBG = "y" ] && echo OK
bash: [: =: unary operator expected
$
žádný Když tak o tom přemýšlím tak je to trik který jsem se naučil na nějakém opravdu starém U*xu. Mám pocit, že to souviselo se shellem v POSIX režimu, ale už opravdu nevím.ten "trik" je o imho viac o používaní uvodzoviek ako o starom U*x-e
test, které si neporadí s [ "$x" = "y" ], není-li proměnná x nastavena. Pokud je ale na začátku skriptu '#!/bin/bash', je zbytečné toto zaříkávání provádět.
Pokud je ale na začátku skriptu '#!/bin/bash', je zbytečné toto zaříkávání provádět.
Jasně, prostě se člověk snaží psát přenositelně, i když má rád BASH. Schválně to otestuji v POSIX režimu a potom na /bin/shna HP/UX a solarisu ... dám vědět.