Lazygit byl vydán ve verzi 0.62.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.
Jiří Eischmann se v příspěvku na svém blogu o rozepsal o tom, kam se vyhledávání v jeho očích posledních 10 let posunulo, jaké má zkušenosti s AI vyhledáváním, proč na něm nechce záviset a jaké vyhledávací služby ho v poslední době zaujaly.
Wayland kompozitor Labwc byl vydán ve verzi 0.20.0. Labwc je inspirován správcem oken Openbox. Postavený je na wlroots.
AlmaLinux OS byl vydán ve verzích 9.8 s kódovým jménem Olive Jaguar a 10.2 s kódovým jménem Lavender Lion. Podrobnosti v poznámkách k vydání (9.8 a 10.2). Opraveny byly zranitelnosti Copy Fail (CVE-2026-31431), Dirty FRAG, Fragnesia (CVE-2026-46300), nginx Rift (CVE-2026-42945) a SSH Keysign Pwn (CVE-2026-46333).
Seznam.cz vykázal za rok 2025 tržby v celkové hodnotě 6,454 miliardy korun. Oproti roku 2024 nárůst o 3,68 %. Zisk před zdaněním oproti předcházejícímu roku poklesl, a to o 11,21 % na 1,330 miliardy korun. Vlastní velké jazykové modely SeLLMa najdou dnes uživatelé téměř na všech seznamáckých službách. Na všechny obsahové služby byla zavedena technologie text-to-speech, díky níž si mohou uživatelé přehrát články v audio verzi namluvené
… více »Vláda představila strategické digitalizační projekty. Roadmapa zahrnuje celkem 55 projektů napříč státní správou, z toho 22 prioritních projektů vycházejících přímo z programového prohlášení vlády a 33 projektů založených na platné legislativě. Portfolio pokrývá oblasti financí, zdravotnictví, digitální identity, dat, registrů, dopravy, krizového řízení, sociálních agend i kybernetické bezpečnosti.
Vyjádřeni Software Freedom Conservancy (SFC) k porušování licence AGPLv3 společností Bambu Lab v jejich softwaru Bambu Studio pro 3D tisk. Bambu Studio vychází z PrusaSliceru. Ten zase z Slic3ru. Spuštěn byl projekt baltobu, který kombinuje několik strategií pro řešení problému. SFC zastřeší vývoj svobodné náhrady proprietární knihovny libbambu_networking pomocí reverzního inženýrství a reimplementace, forku OrcaSliceru pro Bambu Lab tiskárny od Paweła Jarczaka a forku celého Bambu Studia pod názvem Viscose.
Správce souborů GNOME Commander (Wikipedie) byl přepsán do Rustu a vydán v nové verzi 2.0.0.
Sway (Wikipedie), dlaždicový (tiling) správce oken pro Wayland kompatibilní s i3, byl vydán ve verzi 1.12. Do vývoje se zapojilo 50 vývojářů. Přehled novinek na GitHubu. Sway 1.12 závisí na wlroots 0.20.0.
Papež Lev XIV. ve své první encyklice Magnifica Humanitas (Skvělé lidství), která se věnuje umělé inteligenci (AI), varoval před dezinformacemi, které AI manipulací s obsahem vytváří. Moc mají podle něj sociální sítě ovládané hrstkou soukromníků. Upozornil také roli digitálních platforem v obchodování s lidmi, které podle něj musí být uznáno jako současná forma otroctví. Papež se také poprvé omluvil za roli, kterou Vatikán sehrál při legitimizaci otroctví, a za to, že jej po staletí neodsoudil.
aaa;200 bbbb;350 cc;467a druhý:
aaa;1 bbbb;2 cc;3Potřeboval bych je porovnat a vytvořit třetí soubor který bude vypadat takto:
1;aaa;200 2;bbbb;350 3;cc;467Půjde to nějak jednoduše v bashi nebo awkem?
#!/bin/sh cat $1 |while read line1 do pattern=`echo $line1 | cut -f 1 -d ";"` line2=`grep $pattern $2` echo `echo $line2 | cut -f 2 -d ";"`";$line1" doneako parameter tomu daj prvy a druhy subor, este je potrebne osetrovat return code grepu (ak by nahodou nenaslo hladany vzor v druhom subore, neviem ako to chces)
aaa;200 bbbb;350 cc;467a druhý:
cc;1 aaa;2 bbbb;3Tzn. když to bude různě proházené, tak ten skriptík nedube fungovat, proto sem psal v nadpisu "porovnání" souborů... Doufám, že jsem to napsal srozumitelně...
join -t ';' -o '2.2 1.1 1.2' <(sort file1) <(sort file2)
bash, ale pouze sh, tak ekvivalentní jemkfifo fifo1 fifo2 sort <file1 >fifo1 & sort <file2 >fifo2 & join -t ';' -o '2.2 1.1 1.2' fifo1 fifo2 rm fifo1 fifo2
perl -e 'sub p(){chomp;split /;/, $_, 2} open F, "<$ARGV[0]"; while(<F>){($k,$v) = p; $t{$k}=$v} close F; open F, "<$ARGV[1]"; while(<F>){($k,$v) = p; print "$v;$k;$t{$k}$/"} close F' file1 file2případně jako script#!/usr/bin/env perl
@ARGV >= 2 or die 'Not enough paramters';
sub p () {
chomp;
split /;/, $_, 2
}
open F, "<$ARGV[0]" or die "Can't open $ARGV[0] for readin";
while(<F>){
($k,$v) = p;
$t{$k}=$v
}
close F;
open F, "<$ARGV[1]" or die "Can't open $ARGV[1] for readin";
while(<F>){
($k,$v) = p;
print "$v;$k;$t{$k}$/"
} close F
perl -e 'sub p(&$){open F, shift @ARGV;while(<F>){chomp;($k,$v)=split /;/,$_,2;&{$_[0]}}close F}p{$t{$k}=$v};p{print "$v;$k;$t{$k}$/"}' file1 file2Je fakt, že to jde určitě napsat ještě méně čitelně, ale na mistry oboru ještě dlouho mít nebudu.
perl -e 'sub p(&){open F,shift @ARGV;while(<F>){chomp;($k,$v)=split /;/,$_,2;&{$_[0]}}close F}p{$t{$k}=$v};p{print "$v;$k;$t{$k}$/"}' file1 file2Kdo chce ušetřit ještě pár znaků, může vynechat close F
IFS=';' while read key rest do echo "$rest;$(grep "^$key;" "$1")" done <"$2"
uniqprefix=yuwg
IFS=';'
while read key rest
do
eval "$uniqprefix$key=$rest"
done <"$1"
while read key rest
do
var="$uniqprefix$key"
[ -n "${!var}" ] && echo "$rest;$key;${!var}"
done <"$2"Dvě drobné záludnosti, je nutnost definovat jednoznačný prefix a první cyklus se nesmí spustit jako subproces. Takže ani žádné roury. Jde to samozřejmě vyřešit pro bash (... done < <(filter "$1")) i pro sh (teda pokud to celé vůbec v sh funguje).
join -t ';' -o '2.2 1.1 1.2' file1 file2
join -t ';' -o '2.2 1.1 1.2' <(echo -e 'aaa;200\nbbbb;350\ncc;467') <(echo -e 'aaa;1\nbbbb;2\ncc;3')
To je zajímavé, kolik je na jeden problém řešení. Ještě tu nebyl awk, zde tedy je:
cat vstup1.txt vstup2.txt | awk '
BEGIN { FS = ";" }
/^$/ { druhySoubor = 1; }
/.+/ { if ( druhySoubor ) { pole[ $1 ] = $2 ";" pole[ $1 ]; } else { pole[ $1 ] = $0; } }
END { for ( i in pole ) { print pole[ i ]; } } ' | \
sort -n -t";" -k1
(egrep -v '^$' file1; echo; egrep -v '^$' file2) | awk ...Ale musím uznat, že to už je fakt maso
Nadruhou stranu by to mělo být srovnatelné s tím řešením v perlu.
perl -ne 'chomp;m/^$/&&++$d&&next;($k,$v)=split /;/,$_,2;$d?print "$v;$k;$t{$k}$/":($t{$k}=$v)'Osobně se mi to ale moc nelíbí.
Tiskni
Sdílej: