Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Před časem jsem hledal, jak v systému najít duplikáty souborů a nechat jen ty, které jsou ty "správné". Ve finále jsem použil program fdupes.
Situace
V systému jsem tušil, že mám mnoho duplikátních souborů. Jeden zdroj pro takové duplikáty byly mé soubory na nichž mi záleží. Jsou to hlavně vytvořené fotografie a někdy také vytvořená videa. Jednak jsem za 10 let používal několik managerů na fotky, které ukládaly soubory v různých adresářových stromech, jednak jsem někdy při koupi nového disku na něj zkopíroval foto archiv, aby se fotky jistě neztratily i při poruše disků. A teď již ani nevím, kde všude fota mohou být. Za druhé jsou to zdroje z netu, které mne třeba zaujaly vícekrát a stáhl jsem je někdy více než jedenkrát.
Běh
Program fdupes -r /mnt /windows > duplicates1 běžel několik dní, prošel všechny připojené diskové systémy a nakonec vyprodukoval soubor duplicates1, který obsahoval 1616445 řádku a byl velký asi 150MB. Přičemž organizace souboru je takováto:
/windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/standa/PC090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/S3/PC090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_1_/1209-1846-St090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_2_/1209-1846-St090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/standa/PC090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/S3/PC090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_1_/1209-1845-St090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_2_/1209-1845-St090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/standa/PC090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/S3/PC090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_1_/1209-1846-St090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_2_/1209-1846-St090085.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/standa/PC090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky-zdroj/S3/PC090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_1_/1209-1845-St090084.JPG /windows/zaloha_2/z_externiho/__Movie____/_STANDA_Argentina/Argentina-fotky/Argentina-fotky_2_/1209-1845-St090084.JPG /windows/zaloha_2/Filmy/foto_zazalohovat/backup_/cfc-0012/dcim/165canon/mvi_6541.avi /windows/zaloha_2/Filmy/video/Radek/nezpracovano/CFC-0012/DCIM/165CANON/MVI_6541.AVI /mnt/crypted1/Foto/zpracovano/foto_zazalohovat/backup_/cfc-0012/dcim/165canon/mvi_6541.avi /mnt/afx/obrazky/Photo_original/2006/norsko/avi/norsko-20111207_4403_1.avi /mnt/basic/public/obrazky/obrazky/Photo_original/2006/norsko/avi/norsko-20111207_4403_1.avi /windows/zaloha_2/foto_zazalohovat/backup_/cfc-0012/dcim/165canon/mvi_6541.avi
Tedy jednotlivé duplikátní soubory jsou sdruženy do bloků, vzájemně oddělených prázdnými řádky, a jednotlivé instance duplikátního souboru tvoří řádky následující po sobě v jednom bloku označené plnou cestou. Pořadí řádků v bloku můžeme považovat za náhodné a je pravděpodobně dané pořadím jak program procházel stromy adresářů. Otázka je, co s tím? Smazat několik set tisíc souborů tak, abych smazal ty které chci a ne ty které nechci.
Incrementální mazání
Vytvořil jsem si proto dva skripty, kterými jsem postupně vytvářel mazací příkazy. Skript 1: pracovní název uklid_1
#!/usr/bin/perl
use strict;
use warnings;
use Path::Class;
my $path="/mnt/hlavni/obrazky/Photo_original";
my $spath="/mnt/public/obrazky";
my $extension=".CR2";
# my $teststr="/mnt/afx/obrazky/Photo_original/2006/norsko/avi/norsko-20111207_4403_1.avi\n";
my $dir = dir("/home/user/tmp"); # tmp dir with output from fdupes
my $cnt = 1;
my $name = "duplicates";
my $delname = "dupdelete";
my $file = $dir->file($name.$cnt);
my $filenewdup = $dir->file($name . ($cnt+1));
my $filedelete = $dir->file($delname . ($cnt+1));
my $filelog = $dir->file($name . ($cnt+1) . ".log");
my $abc = 0;
# openr() returns an IO::File object to read from
my $file_handle = $file->openr();
my $file_handledup = $filenewdup->openw();
my $file_handledel = $filedelete->openw();
my $file_handlelog = $filelog->openw();
my @mujlist;
my $n=0;
my $i;
my $j=0;
my $c=0;
$file_handlelog->print("Blocks generated for deletion:\n");
# Read in line at a time
while( my $line = $file_handle->getline() ) {
push(@mujlist, $line); $n++;
# if inblock add line end of block
if ( $line =~ /^$/){
# print "d".$n . "\n";
$j = 0;
foreach $i(@mujlist) {
# if exists in block requested file flag $j for deletion
if ((index( $i,$path) ge 0) and (index( $i,$extension) ge 0))
{$j = 1;}
}
# print scalar @mujlist . "\n";
if ($j == 1) {
# generate delete set or ($k=~/^$/)
foreach my $k (@mujlist) {
if (((index( $k,$path) lt 0) or (index( $k,$extension) lt 0)) and not ($k=~/^$/) and (index( $k,$spath) lt 0) ){
chomp $k;
$file_handledel->print("rm \"" . $k."\"\n");}
}
# generation end
$file_handlelog->print("Blok begin " . ($n-scalar @mujlist) . " end ".$n."\n");
$c++;
}
else {
foreach my $k (@mujlist) {
$file_handledup->print($k);
}
# $file_handledup->print("d".$n."\n");
}
@mujlist=();
}
else {
}
}
chmod (0755, $file_handledel);
$file_handlelog->print("Number of block processed = " . $c."\n");
#print "count = $abc\n i = $i\n j = $j\n";
V současnosti nemají skripty žádný CLI, a jejich ovládání se děje editaci stringů na řádcích 7-15. Funkcionalita je následující:$dir (v tomto případě /home/user/tmp) bude soubor $name.$cnt (v tomto případě duplicates1), vytvořený programem fdupes podle výše uvedeného formátu. $name.($cnt+1), $delname.($cnt+1) a ($name.($cnt+1).".log" v tomto případě soubory duplicates2, dupdelete2 a duplicates2.log. Do kterých zapíše: Do souboru dupdelete2 sadu příkazů rm "path" pro smazání duplikátních souborů, a souboru nastaví executable flag. Do souboru duplicates2 zapíše upravenou kopii souboru duplicates1, která má vyřazené ty bloky, které byly zpracovány a z nichž byl vygenerován mazací script. Do souboru duplicates2.log napíše seznam bloků, které byly zpracovány, s počátečním a koncovým číslem řádku v souboru duplicates1$path je primární datový strom, který bude zachován a v $extension je string, který musí název souboru obsahovat, aby byl zpracován (typicky je to ukončující string názvu souboru - extenze). Pouze bloky duplikátních souborů, které obsahují soubor s touto podmínkou (patří do stromu a mají string) jsou zařazeny do zpracování. Ke všem souborům daného bloku bude vygenerován mazací příkaz s výjimkou těch, které obsahují string $path nebo $spath sekundární strom/úložištěProgram je možné používat inkrementálně. Zvýšením hodnoty $cnt=2 bude vstupní soubor duplicates2 a výstupní soubory duplicates3, dupdelete3 a duplicates3.log.
Také je možné si postupně kopírování skriptu na uklid_2 s hodnotou $cnt=2; atd vytvořit inkrementální sadu skriptů, které definují postupně duplikátní části a vytváření skripty na jejich mazání a faktické mazání spustit, až když jsem s celkovou posloupností spokojen.
Duplikátní soubory v jednom adresáři
Skript uklid_1 funguje výborně na vlastní data, kdy vím, že v jednom adresáři nebudu mít duplikátní fotku. U informací získaných se může stát, že v jednom adresáři budeme mít pod různými jmény více totožných objektů, třeba získaných v různých časech. Uklid_1 by je nechal všechny. Vytvořil jsem si proto skript 2, pracovní název uklid_a1. Je to drobná modifikace v části generující mazací přikazy, která ponechá pouze jediný objekt v adresáři specifikovaném v $path.Všechno ostatní je označeno ke smazání. Cesta $spath se nevyužívá a ten který zůstává je první soubor z bloku v dané cestě (i když třeba nemusí mít nejlepší jméno)
# generate delete set or ($k=~/^$/)
$cjump = 0;
foreach my $k (@mujlist) {
if ((((index( $k,$path) lt 0) or (index( $k,$extension) lt 0)or $cjump) and not ($k=~/^$/)) ){
chomp $k;
$file_handledel->print("rm \"" . $k."\"\n");}
else {$cjump=1;}
}
(plus je ještě třeba zadefinovat $cjump někde nahoře.)
Tímhle způsobem jsem smazal větší část z nalezených duplikátních souborů a uvolnil si prostor. Možná když budu mít čas, tak ke skriptu doplním ještě nějaké CLI, sloučím skripty do jednoho s přehozením CLI volbou a doplním skripty, které by jednak počítaly obsazený prostor duplikáty, jednak mohly setřídit soubor duplicatesX inverzně podle velikosti souborů, aby se člověk zabýval tím, co přinese prostorový zisk a ne malinkými soubory. (samozřejmě nejvíce duplikátní soubor je ten s velikosti 0 bytů.) Ale teď mi pro můj problém toto řešení stačí
Tiskni
Sdílej:
facebookustrašná moda a ani si člověk neuvědomuje, že k fotografiím co tam narval už nemá práva.
Příklad: když budu dělat atlas rostlin, potřebuju ke každé kytce několik různých fotek (příp. kreseb).Kámo ale v blogu som nezaznamenal nič o odbornej fotografií, pretože to má zmysel vďaka študovaniu niekoľkých záznamoch (Nehovoriac o makrách kde softvér skladá obraz aj zo stoviek záznamov). My sa tu ale bavíme (teda kurwa myslím) o foto pre svoje pamäti, aspoň tak mi to vyplynulo z blogu.
rychlost práce s nimi je strašná právě proto, že ty editory/prohlížeče nic nedělají když se na fotku koukám, ale příští fotku začnou zpracovávat až když se odhodlám zmáčknout next
Editory nevím (používám GIMP), ale z prozhlížečů třeba geeqie (nástupce gqview) umí preloadnout následující fotku (možná i víc).
gqview neznám, protože pracuji v KDE
To by neměl být problém, já taky mám KDE a coby prohlížeč používám v podstatě jen geeqie (dříve gqview).
Z toho prvního odstavce bych asi jako jediný problém viděl to, že geeqie sice umožňuje togglovat šest nezávislých značek a pak podle nich kombinovat výběr, na který lze aplikovat hromadné akce, ale ten výběr se neukládá při ukončení programu (ale možná by to někde šlo nastavit, to jsem nezkoumal).
- fotim RAW i JPG
- ukladam vsechno do jednoho adresare: RRMM (RR: rok, MM: mesic) a v nem zvlast adresar pro RAW
- kdyz je nejaka akce, kde jeste nasekam vice fotek (tematicke foceni - treba pro animovany film, nebo dovolena, ...), tak jeste udelam dalsi adresar (JPG a pak zvlast RAW)
faze 1: na prehled (JPG) pouzivam gthmub (pokud si dobre pamatuju), co se mi oparvdu (ale opravdu) nelibi, mazu.
faze 2: spoustim skript, ktery maze vsechny RAW, ke kterym neni referencni JPG
na upravy (RAWu) pouzivam bud GIMP (velice silny nastroj - jedina nevyhoda: pouziva dodnes bohuzel jenom 8bit hloubku. na bezne veci opravdu staci, na web, papir pro rodinu, ale profi bilboardy bych v tom ale nedelal) a MyPaint (jednodussii editor)uppravene fotky (jakysi TOP of TOP pro prezentaci, darovani, ...) pak davam bokem ('akce', rodina, ...). je to manualni prace, ale ma to vyhodu: presne vim, co kde mam.
skeny z negativu mam zas zvlast: adresare podle cisla negativu (jako index), k nemu vedu zaznamy kdy to bylo focene (obdobi), cim (aspon aparat - mam cca 30 strojku), a cca co to je
zkousel jsem ruzne manazery - dopadlo to vzdy katastroficky: bordel1, bordel2, bordel3 sice miluju zautomatizovat co se da (protoze jsem desne liny), ale tady se ukazala jakakoliv automatizace desne kontraproduktivni. ledaze bych si napsal vlastni manazer fotek (na to jsem zas liny)
tak snad je ta informace k necemu
PS: desne nerad neco mazu - ukazalo se, ze nekdy po letech tam objevim vecicku, ktera stoji za to si s ni pohrat. clovek se posune nekam jinam, zmeni se mu vnimani - treba kdybych byl kdysi mazal kdejaky rozmaznuty snimek, dnes bych prisel o vzacne snimky (naladovky, neskutecne nahody, vzpominky)
:)./trash. Takže nedokonalé fotky jdou do podadresáře u fotek.
Pořád je ale lepší, když to udělá fotograf jednou, než když to neudělá a pak promítá znuděným divákům tisíce fotek.
a napíš dôvod prečo ukazovať fotky tu sme ležali a tu sme ležali o 5minút neskôr, potom o desať...
A proč bych podle vás měl psát důvod k něčemu, co jsem výslovně napsal, že se dělat nemá?
)
[*] tady je trošku problém, že některé věci chci mít plácnuté na webu jen kvůli dokumentární hodnotě, čili pak je nudné, třeba když na české řece člověk typicky potká za den pět-šest jezů, a z každého mám dvě-tři fotky bez jakékoli akce, jen aby byl dobře vidět profil a průjezd, případně nebezpečí
To bych spíš tipoval, že se to bude navěky válet někde na disku, než že by to někdo probíral a selektivně promazával. Stačí se podívat, s jakými objemy dat pracovala předchozí generace – z pohledu velikosti dnešních disků naprosto směšné množství → není potřeba nic mazat, nic tě k tomu nenutí a klidně si můžeš nechat všechno.
Spíš se ta data budou zpracovávat automaticky – rozpoznávání obličejů nebo míst a předmětů na fotkách – třeba nějaký tvůj vnuk položí dotaz nad rodinnou databází fotek a vytáhne si všechny, na kterých jsi ty nebo určitá kombinace osob. Nebo třeba bude sledovat, jak se měnil určitý dům nebo ulice v čase 
Já před asi dvěma lety řešil hledání duplicit, když jsem sesypal na hromadu fotky ze dvou notebooků a všech SD karet co jsem našel. Napsal jsem si na to tehdy i BASH skript o pár řádcích.
1) přesypu všechno do jednoho adresáře a spustím skript
2) skript se podívá do EXIF dat na datum a čas, který se ve formátu 2014-08-02_05-40-12 uloží do proměnné jako budoucí název fotky
3) následně se podívá do adresáře (názvy 2014-05, 2014-06 apod.) jestli už tam fotka s takovým názvem existuje
4a) pokud neexistuje, tak fotku přejmenuje na název z proměnné a uloží do odpovídajícího adresáře
4b) Pokud už fotka se stejným časem existuje, použije se srovnání MD5 součtů proti všem fotkám se stejným datem a časem v adresáři. Při shodě se fotka nekopíruje. Pokud se součet liší, připíše se na konec další pořadové číslo v řadě a fotka se překopíruje.
K dokonalosti to má ale daleko. Třeba program pro import fotek ve Windows Vista zasahoval do fotek i když je měl jen kopírovat, takže u několika pixelů se nepatrně lišila RGB hodnota (WTF?!) a tím pádem ani nesedí MD5 součet a vznikají duplicity.
P.S.: Nakonec to vypadá, že problém se vyřešil sám. Rodiče už několik let přemlouvám aby si fotky přetřídili, doteď se k tomu nedostali a vymlouvali se. A teď koukám na RAID1 oddíl a po fotkách se slehla zem 
Zapomněl jsem dodat, že fotek bylo při posledním sčítání asi osm tisíc, z čehož by kolem tisíce (bez legrace) mohly tvořit fotky kočky v rozličných polohách a situacích.