Úřad pro ochranu osobních údajů řeší desítky stížností na jednotné měsíční hlášení zaměstnavatele, které stát spustil počátkem dubna. Systém, jenž má firmám odlehčit od desítek formulářů, nejenže výrazně zatížil jejich účetní oddělení, ale docházelo v něm i k únikům osobních dat zaměstnanců k firmám, kde nepracovali. Podle ministerstva práce a sociálních věcí stála za problémem technická chyba. „Incident se týkal několika stovek
… více »Byla vydána (𝕏, Bluesky) nová verze 22.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.
Vim Classic byl vydán ve verzi 8.3. Drew DeVault oznámil tento fork editoru Vim (verze 8.2.0148, tj. těsně před zavedením Vim9 skriptování) v březnu letošního roku. Důvodem forku bylo, že vývojáři editorů Vim a Neovim začali při vývoji využívat LLM.
Open source konference DevConf.CZ 2026 proběhne 18. a 19. června v Brně na FIT VUT. Publikován byl program a spuštěna byla registrace.
Společnost JetBrains uvolnila verzi 2 svého open-source velkého jazykového modelu (LLM) pro vývojáře Mellum.
Probíhá konference Microsoft Build 2026. Microsoft představuje své novinky: kvantový čip Majorana 2, Surface Laptop Ultra a Surface RTX Spark Dev Box s NVIDIA RTX Spark, Intelligent Terminal, Coreutils for Windows (fork Rust Coreutils), AI modely MAI, AI agenta Scout, platformu pro agent-first zařízení Project Solara, …
Google Chrome 149 byl prohlášen za stabilní. Nejnovější stabilní verze 149.0.7827.53 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře.
Pluto.jl, reaktivní notebook pro programovací jazyk Julia, dospěl do verze 1.0.
Byla vydána nová verze 12.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.
Počítačovou hru Gravity Circuit (ProtonDB) lze do 14. června do 19:00 získat na Steamu zdarma. Napořád.
#!/usr/bin/env python
import sys,os
def getlines(filename):
lines = {}
for num, line in enumerate(file(filename)):
lines[line.rstrip()] = num + 1
return lines
def compare(linesx, linesy):
for line in linesx.keys():
if linesy.has_key(line):
continue
print linesx[line], line
lines1 = getlines(sys.argv[1])
lines2 = getlines(sys.argv[2])
compare(lines1, lines2)
print '-'*80
compare(lines2, lines1)
A když to otestuju třeba na těchto souborech
$ cat soubor1 prvni spolecny treti tohle neni v tom druhem druhy $ cat soubor2 prvni druhy treti spolecny a tohle zase neni v tom prvnimTak to vypíše
$./difflines.py soubor1 soubor2 4 tohle neni v tom druhem --------------------------------------------- 5 a tohle zase neni v tom prvnimUkazuje to i čísla řádků.
import sys a = file(sys.argv[1]).readlines() b = file(sys.argv[2]).readlines() sys.stdout.writelines([x for x in a if not x in b]) sys.stdout.writelines([x for x in b if not x in a])... ale to je jen taková hříčka.
a, b=ARGV[0..1].map{|x| File.open(x).readlines }
puts a-b; puts b-a
?
Zase úkol?

$ cat soubor1 soubor2 | sort | uniq --unique a tohle zase neni v tom prvnim tohle neni v tom druhem
uniq --unique, tak by toto bylo nejjednodušší řešení a bylo by to super, jen jsem to zkoušel takhle fláknout do linuxu a nic. (Takhle ne
soubor1 a soubor2 jsem nahradil názvem souborů, které existujou)

chorchoj:22:56:12 ~$ cat soubor1 prvni spolecny treti tohle neni v tom druhem druhy chorchoj:22:56:16 ~$ cat soubor2 prvni druhy treti spolecny a tohle zase neni v tom prvnim chorchoj:22:56:18 ~$ sort soubor1 soubor2 | uniq --unique a tohle zase neni v tom prvnim tohle neni v tom druhem
sed -n "/$searchstr/=" $i >out.s, kde $searchstr je vlastně regulární výraz a v $i je uložen název souboru dá se tedy nějak zjisti jestli něco našel a zapsal do souboru nebo to musím obejít nějak jinak. díky
man test
...
-s soubor
Pravda, když soubor existuje a má délku větší než nula.
...
Právě, že ty dva vstupy jsou pro bash problém (osobně bych užil třeba awk, ale zadání je zadání). Dalo by se to řešit (hodně násilně) nějakým "bufferem", kde v proměnných A1, A2, A3, A4, ... jsou řádky prvního souboru, v proměnných B1, B2, ... druhého souboru. Pak na to hodíš kdejaký algoritmus si zamaneš.
Lepší by bylo ty soubory spojit, třeba jak jsem naznačoval o sudých a lichých řádcích (jen je potřeba si promyslet, co s případem, kdy nemají stejně řádků). Ale asi na tuto strukturu opět nenapasuješ všechny algoritmy porovnání souborů.
Ad cokoli-specific: chtěl jsem naznačit, že například my ve škole na UNIXu povinně pracujeme na Solarisu<flame>, protože se jedná o mnohem stabilnější UNIX než GNU/Linux</flame>. Ale ten třeba nepodporuje mnoho rozšíření, které jsou typické pro GNU, tedy GNU-specific.
Ale pokud můžeš kromě diff používat cokoli... Co takhle comm? Ale to je jen další nápad, vracíme se k tomu, že zadání je dost nejednoznačné...
1. soubor 1 2 3 4 2. soubor 1 2 4 5 Smíchaný soubor (jestli to dobře chápu) 1 1 2 2 3 4 4 5Pokud ho budu porovnávat po dvojicích, tak bude, podle mne, vyhazovat nesmysli typu 3 není v pravo a 4 není vlevo a to samé pro 4 a 5 ne? Pak jsi něco psal o nějakém velice jednoduchém sedu, ale to nějak nechápu.
3c3 < 3 --- > 4 4c4 < 4 --- > 5Ohledně toho jednoduchého sedu -- tento prokládaný soubor nemusíš read-ovat po jednom řádku (pokud má hodně řádků, tak si kernel užije naplno fork() a exec()
). Protože navíc jeho struktura je dost jednoduchá a algoritmus ještě jednodušší, tak by se dal tento soubor jen prohnat sed skriptem a bylo by. Ale taky. Má to svá úskalí, třeba nevím, jak sed může zjistit, na kolikátém řádku se nachází apod. To by se třeba tedy do toho slitého souboru přidalo na začátek řádku nějaké info v pevném formátu (třeba první číslo na řádku by značilo první nebo druhý soubor, druhé číslo by značilo číslo řádku a pak právě jedna mezera a samotný řádek).
exec 3<soubor1
exec 4<soubor2
IFS=''
read -u 3 line1
read -u 4 line2
Napsat plně funkční diff nebude trivální. Začal bych tím, že bych nadefinoval zjednodušené zadání. Omezení by bylo takové, že je povolen maximální rozdíl 1 řádek v oblasti začínající a končící úplnou shodou.
Tiskni
Sdílej: