Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).
Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.
TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.
Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.
Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.
Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.
Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.
Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.
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.