V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace
… více »QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.
Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována
… více »Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].
Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.
Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.
Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Jak jsem psal v předchozím, budu sem dávat zajímavé skriptíky, takže tady je první. Nazval jsem ho sshm (jako sshmulti, ale aby to bylo co nejkratší, tak sshm).
Pokud znáte cssh (clusterssh), tak prakticky víte, co dělá tenhle můj skriptík. Jedinou funkcí je, že spustí xtermy a v každém z nich spustí ssh připojení na zadaný server. Pokud tedy tenhle skript spustíte z xtermu, můžete pak z tohoto xtermu ovládat ty ostatní xtermy s ssh spojením. Tolik jednoduchý popis.
Trošku detailněji bych pak dodal. Clusterssh otevře také Xtermy, také s ssh připojení, ale clusterssh otevírá připojení do xtermu s určitým rozměrem a fontem, které je sice možné měnit v konfiguračním souboru, ale člověk by dopředu musel vědět, kolik má oken. Můj skriptík jednak umožňuje zadání pevných rozměrů okna a fontu, nebo "automaticky", podle předdefinovaných hodnot, vybere podle počtu zadaných serverů správný rozměr xtermu a font, který se má nastavit. Pokud zadám tedy dvě okna, tak se mi zobrazí nad sebou a zaberou celou plochu (rozměry 268x40) s písmem o velikosti 12. Pokud ale zadám např. 28 serverů, nechá se výchozí rozměr 80x25 a použije se písmo o velikosti 8 (sice je to hůř čitelné, ale na zadaní aptitude -vyR dist-upgrade to naprosto stačí).
Teď trošku o vnitřnostech.
Nevýhody:
Dodatek: já osobně jsem si pconsole ještě opatchoval, protože originální zdroják používá sekvenci CTRL-A pro přechod do příkazového módu, ale CTRL-A se na příkazové řádce používá jako HOME (někdy je to rychlej způsob jak vymazat celou řádku pomocí CTRL-A CTRL-K, než hledat HOME a pak CTRL-K). Já to mám přemapované na CTRL-N. BTW: Také screen používá jako řídící sekvenci CTRL-A, takže tu si mapuju na CTRL-P
A to jsou všechny keci, takže teď ten skriptík. A aby někdo nerejpal, tak GNU GPL a myslím, že u toho je celkem jedno jestli v2 nebo v3, tak ať se to hejbe, budiž to GNU GPL v3. Pokud by něco nefungovalo, pište do diskuze.
update 10.6.2008: Kromě clusterssh existuje ještě program dsh (distributed shell, dancer's shell), který na to jde jiným způsobem. Program dsh totiž se v aktuální konzoli přihlašuje na zadané servery a spouští tam zadané příkazy a to buď na všech strojích paralelně, nebo postupně. Výsledky pak zobrazuje na konzoli. Nevýhoda je, když človek musí zadat např. heslo do sudo. Ale na jednoduché zjišťování nějakého stavu na serveru se to hodí.
#!/bin/bash
defsize="12"
fontmsk='-misc-fixed-medium-r-normal-*-%i-*-*-*-*-*-iso8859-2'
autosize="$defsize"
deffont="$( printf -- "$fontmsk" "$autosize" )"
defgeom="80x25"
geom="$defgeom"
verbose=""
if [ $# -eq 0 ];then
cat <<-HelpEnd
$0 [ -f FONT ] [ -g GEOMETRY ] [ -G ] [ -r ] [ -s SIZE ] { ssh_host ... | -t COUNT }
-f FONT ... set font
-r ... reset font do default value ($deffont)
-s SIZE ... use font size
-g GEOMETRY ... use font size (default $defgeom)
-G ... reset geometry to default
-t COUNT ... do not run ssh, generate only xterms (to see placement)
-v ... ssh verbose
HelpEnd
else
pi=$#
tothosts=0
while [ $pi -gt 0 ];do
# echo "params1-$pi: $0 $@"
par="$1"
shift
case "$par" in
"-f" | "-s" | "-g" ) if [ $pi -gt 0 ];then parval="$1";shift;pi=$[$pi-1];set -- "$@" "$par" "$parval";else set -- "$@" "$par" ;fi;tothosts="-1";;
"-r" | "-G" ) set -- "$@" "$par";tothosts="-1";;
"-v" ) verbose="-v" ;;
"-t" )
if [ $pi -gt 0 ];then
if [ -n "$test" ];then
echo "Sorry, but test value is already set to $test - ignoring this value $1"
else
test="$1"
shift
pi=$[$pi-1]
if [ -z "$test" ];then
echo "You have to enter a non-empty value for option -t"
elif echo "$test" | grep -q '[^[:digit:]]';then
echo "You hava to enter a numeric value for option -t"
else
tothosts="-1"
fi
fi
else
echo "argument -t needs value (test)"
fi
;;
*) if [ $tothosts -ge 0 ];then tothosts=$[$tothosts+1];fi;set -- "$@" "$par";;
esac
pi=$[$pi-1]
done
case "$( hostname -f )" in
"HOST1-RESOLUTION-1680x1050" )
if [ $tothosts -gt 0 ];then
if [ $tothosts -le 1 ];then autosize="12";autogeom="234x71"
elif [ $tothosts -le 2 ];then autosize="12";autogeom="234x34"
elif [ $tothosts -le 4 ];then autosize="12";autogeom="116x34"
elif [ $tothosts -le 6 ];then autosize="12";autogeom="116x22"
elif [ $tothosts -le 9 ];then autosize="12";autogeom="80x22"
elif [ $tothosts -le 12 ];then autosize="9";autogeom="80x23"
elif [ $tothosts -le 16 ];then autosize="8";autogeom="80x26"
elif [ $tothosts -le 20 ];then autosize="7";autogeom="80x22"
elif [ $tothosts -le 29 ];then autosize="6"
elif [ $tothosts -le 39 ];then autosize="7";autogeom="60x14"
else
autosize="7"
fi
fi
;;
"HOST2-RESOLUTION-1920x1200" )
if [ $tothosts -gt 0 ];then
if [ $tothosts -le 1 ];then autosize="12";autogeom="268x89"
elif [ $tothosts -le 2 ];then autosize="12";autogeom="268x40"
elif [ $tothosts -le 4 ];then autosize="12";autogeom="132x40"
elif [ $tothosts -le 6 ];then autosize="12";autogeom="132x25"
elif [ $tothosts -le 9 ];then autosize="12";autogeom="88x25"
elif [ $tothosts -le 18 ];then autosize="9"
elif [ $tothosts -le 25 ];then autosize="8"
elif [ $tothosts -le 28 ];then autosize="7"
elif [ $tothosts -le 39 ];then autosize="6"
elif [ $tothosts -le 53 ];then autosize="7";autogeom="60x14"
else
autosize="7"
fi
fi
;;
esac
i=0
font="$( printf -- "$fontmsk" "$autosize" )"
geom="$autogeom"
# echo "params2: $0 $@"
echo "hosts: $tothosts"
echo "font: $font"
if [ -n "$test" ];then
for i in $( seq 1 $test );do
set -- "$@" "test-$i"
done
fi
while [ $# -gt 0 ];do
case "$1" in
"-f" ) shift;if [ $# -gt 0 ];then font="$1";else echo "argument -f needs value (font)";fi ;;
"-g" ) shift;if [ $# -gt 0 ];then geom="$1";else echo "argument -g needs value (geometry)";fi ;;
"-r" ) font="$( printf -- "$fontmsk" "$autosize" )" ;;
"-G" ) geom="$defgeom";;
"-s" ) shift;if [ $# -gt 0 ];then font="$( printf -- "$fontmsk" "$1" )";else echo "argument -s needs value (font size)";fi ;;
*)
if [ -n "$test" ];then
xterm -geometry "$geom" -title 'Pconsole connection' -fn "$font" -e "echo -e \"\n===== testing console $1 =====\n\n\";/bin/bash" &
else
xterm -geometry "$geom" -title 'Pconsole connection' -fn "$font" -e "echo -e \"\n===== $1 =====\n\n\";ssh $verbose '$1'" &
fi
pid=$!
nt=""
while [ -z "$nt" ];do
npp=""
while [ -z "$npp" ];do
npp="$( ps --ppid "$pid" h -o pid | tr -dc '0-9' )"
done
nt="$( ps --ppid "$npp" h -o tty )"
done
tty[$i]="/dev/$nt"
i=$[$i+1]
;;
esac
shift
done
pconsole "${tty[@]}"
fi
Tiskni
Sdílej:
Ale je to mrnavej skriptik, kterej bys urcite napsal behem 5 minut taky
It's using DCOP to remote-control a konsole process with the ssh connections in seperate tabs.