V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 15.0 (Mastodon). Forgejo je fork Gitei.
Současně se SUSECON 2026 proběhne příští čtvrtek v Praze také komunitní Open Developer Summit (ODS) zaměřený na open source a openSUSE. Akce se koná ve čtvrtek 23. 4. (poslední den SUSECONu) v Hilton Prague (místnost Berlin 3) a je zcela zdarma, bez nutnosti registrace na SUSECON. Na programu jsou témata jako automatizace (AutoYaST), DevOps, AI v terminálu, bezpečnost, RISC-V nebo image-based systémy. Všichni jste srdečně zváni.
Český úřad zeměměřický a katastrální zavedl u anonymního nahlížení do katastru nemovitostí novou CAPTCHA ve formě mapové puzzle: nepřihlášení uživatelé musí nově správně otočit devět dlaždic v 3x3 poli tak, aby dohromady daly souvislý obrázek výseče reálné mapy, přičemž na to mají pouze jeden časově omezený pokus. Test je podle uživatelů i odborníků příliš obtížný a na sociálních sítích pochopitelně schytává zaslouženou kritiku a
… více »Byla vydána verze 1.95.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Mozilla prostřednictvím své dceřiné společnosti MZLA Technologies Corporation představila open-source AI klienta Thunderbolt. Primárně je určený pro firemní nasazení.
Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »
Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.04. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Kryptografická knihovna OpenSSL byla vydána v nové verzi 4.0. Přehled změn v souboru CHANGES.md na GitHubu. Odstraněna byla podpora SSLv2 Client Hello a SSLv3. Ve výchozím nastavení byla zakázána podpora odmítnutých eliptických křivek v TLS dle RFC 8422. Přibyla například podpora Encrypted Client Hello (ECH, RFC 9849).
curl up 2026, tj. setkání vývojářů a uživatelů curlu, proběhne opět v Praze. O víkendu 23. a 24. května v Pracovně.
Aplikace pro ověřování věku uživatelů on-line platforem je technicky hotová a brzy bude k dispozici pro občany EU, oznámila dnes předsedkyně Evropské komise Ursula von der Leyenová. Půjde podle ní o bezplatné a snadno použitelné řešení, které pomůže chránit děti před škodlivým a nelegálním obsahem. Aplikace bude podle ní fungovat na jakémkoli zařízení a bude zcela anonymní.
script -A ARG -B ARG [ -a ARG ] [ -b ARG ] [ -c ARG ] ] [ -C ARG [ -a ARG ] [ -d ARG ARG ARG ] [ -c ARG ] -D [ ARG ]Poradi sekci je pevne dano takto: -A -B -C -D, pricemz -A a -D jsou povinne, -D ma parametr nepovinny Sekce: kazda ze sekci -B -C muze ale nemusi mit dalsi specifikovane parametry. pricemz pro -B mame k dispozici napriklad -a -b -c parametry a pro sekci -C mame -a -d a -c, pricemz -a a -c maji v sekci -C jiny vyznam nez v sekci -B (uff). Tak a ted mi nekdo reknete, jak to v BASHi parsovat tak, abych z toho dostal hodnoty a) pro -A -B -C a -D b) v jednotlivych sekcich i hodnoty jejich prepinacu -a -b -c atd... Brr. Na tohleto mi asi nikdo neodpovi.
state=A
while true; do
case $state in
A)
if test "$1" != -A; then
echo Expected -A
break
fi
if test -z "$2"; then
echo Expected -A argument
break
fi
echo Section A, argument: "$2"
state=B
shift 2
;;
B)
if test "$1" != -B; then
echo Expected -B
break
fi
if test -z "$2"; then
echo Expected -B argument
break
fi
echo Section B, argument: "$2"
state=Barg
shift 2
;;
Barg)
case "$1" in
-a)
if test -z "$2"; then
echo Expected -a argument
break
fi
echo Section B, argument -a: "$2"
shift 2
;;
-b)
if test -z "$2"; then
echo Expected -b argument
break
fi
echo Section B, argument -b: "$2"
shift 2
;;
-c)
if test -z "$2"; then
echo Expected -c argument
break
fi
echo Section B, argument -c: "$2"
shift 2
;;
*)
state=C
;;
esac
;;
C)
case "$1" in
-C)
if test -z "$2"; then
echo Expected -C argument
break
fi
echo Section C, argument: "$2"
state=Carg
shift 2
;;
*)
state=D
;;
esac
;;
Carg)
case "$1" in
-a)
if test -z "$2"; then
echo Expected -a argument
break
fi
echo Section B, argument -a: "$2"
shift 2
;;
-d)
if test -z "$2" -o -z "$3" -o -z "$4"; then
echo Expected three -d arguments
break
fi
echo Section C, argument -d: "$2"
echo Section C, argument -d: "$3"
echo Section C, argument -d: "$3"
shift 4
;;
-c)
if test -z "$2"; then
echo Expected -c argument
break
fi
echo Section C, argument -c: "$2"
shift 2
;;
*)
state=D
;;
esac
;;
D)
if test "$1" != -D; then
echo Expected -D
break
fi
if test -n "$2"; then
echo Section D, argument: "$2"
shift 2
else
echo Section D, no argument
shift
fi
state=End
;;
End)
break
;;
*)
echo Internal error, state=$state
break
;;
esac
done
if test "$state" != End; then
echo Parsing failed in state $state
fi
Přičemž to v jednotlivých sekcích bere příslušené podoptiony i vícekrát, což lze opravit, ale bude to ještě delší...
DEF_OPTS="A:1+a:3+b:2+c:0 B:2+a:3+b:0+c:1 C:1 D"by znamenalo, ze pokud by na prikazovem radku byly parametry
-A FOO -a 1 2 3 -b aaa bbb -c -B XX YY -a 3 2 1 -c -C BAR -Dtak bysme ziskali nasledujici promenne:
ARG_A="FOO" ARG_A_a[0]="1" ARG_A_a[1]="2" ARG_A_a[2]="3" ARG_A_b[0]="aaa" ARG_A_b[1]="bbb" ARC_A_c=1 ARG_B[0]="XX" ARG_B[1]="YY" ARG_B_a[0]="3" ARG_B_a[1]="2" ARG_B_a[2]="1" ARG_B_c=1 ARG_C="BAR" ARG_D=1Naproti tomu, kdyz by nektere byly vynechany, napr. takto:
-A FOO -a 1 2 3 -b aaa bbb -c -B XX YYtak by se nastavily pouze prislusne promenne a ostatni by neexistovaly.
ARG_A="FOO" ARG_A_a[0]="1" ARG_A_a[1]="2" ARG_A_a[2]="3" ARG_A_b[0]="aaa" ARG_A_b[1]="bbb" ARC_A_c=1 ARG_B[0]="XX" ARG_B[1]="YY"Znamenko "+" v DEF_OPTS by melo vyznam prirazeni k sekci, takze pokud by nekdo psal:
-a 1 2 3 -b aaa bbbtak by se se zlou potazal, a funkce by zkolabovala s chybou, ze ocekava nejdriv nejake to -A. Hm, tak to je shruba moje predstava. Jo jo, zda se ze opravdu fantaziruju... :)
DEF_OPTS="A+a+b+c B+a+b+c C D a"Tim by se to dost zjednodusilo:
-A FOO -a "1 2 3" -b "aaa bbb" -c -B "XX YY" -a "3 2 1" -c -C BAR -DTakze bysme meli:
ARG_A=FOO ARG_A_a=1 2 3 ARG_A_b="aaa bbb" ARG_A_c= # prazdna, ale definovana (lze to nejake testovat?) ARG_B=XX YY ARG_B_a=3 2 1 ARG_B_c= # prazdna, ale definovana ARG_C=BAR ARG_D= # opet prazdna, ale definovanaTak a tohle by snad uz mohlo jit docela snadno. Nebo ne? Take z toho plyne, jak vidno, ze napriklad -a tam mame hned 2x, v sekcich -A a -B. Vyhodou by prave melo byt, ze v kazdem pripade bychom mohli mit vyznam parametru -a jiny, coz je presne to, co aktualne potrebuji. :)
/bin/cat >17passwd.sh <<\EOF
#!/bin/bash
# vypise 1 a 7 zaznam z /etc/passwd
[ -z $1 ] && exit 1
DATA=$(<$1)
DATA=${DATA//
/|} # rozdelime data na zaznamy/radky
IFS="|"
for RECORD in $DATA; do
while IFS=":" read A B C D E F G; do
echo $A $G
done <<< $RECORD
done
exit 0
EOF
chmod +x 17passwd.sh
./17passwd.sh /etc/passwd
Jenze to mam vsechno pevne dano. Jak ale parsovat promenlive zaznamy, kdyz znam pouze oddelovace?
.
Tiskni
Sdílej: