Nový ovladač Steam Controller jde do prodeje 4. května. Cena je 99 eur.
Greg Kroah-Hartman začal používat AI asistenta pojmenovaného gkh_clanker_t1000. V commitech se objevuje "Assisted-by: gkh_clanker_t1000". Na social.kernel.org publikoval jeho fotografii. Jedná se o Framework Desktop s AMD Ryzen AI Max a lokální LLM.
Ubuntu 26.10 bude Stonking Stingray (úžasný rejnok).
Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.3.0. S experimentální podporou FLTK 1.4. S příkazem dilloc pro ovládání prohlížeče z příkazové řádky. Vývoj prohlížeče se přesunul z GitHubu na vlastní doménu dillo-browser.org (Git).
Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Vývojáři v přehledu vypíchli vylepšenou instalaci, podporu senzoru okolního světla, úsporu energie, opravy Bluetooth nebo zlepšení audia. Vývoj lze podpořit na Open Collective a GitHub Sponsors.
raylib (Wikipedie), tj. multiplatformní open-source knihovna pro vývoj grafických aplikací a her, byla vydána ve verzi 6.0.
Nové verze AI modelů. Společnost OpenAI představila GPT‑5.5. Společnost DeepSeek představila DeepSeek V4.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 164 (pdf) a Hello World 29 (pdf).
Bylo oznámeno, že webový prohlížeč Opera GX zaměřený na hráče počítačových her je už také na Flathubu and Snapcraftu.
Akcionáři americké mediální společnosti Warner Bros. Discovery dnes schválili převzetí firmy konkurentem Paramount Skydance za zhruba 110 miliard dolarů (téměř 2,3 bilionu Kč). Firmy se na spojení dohodly v únoru. O část společnosti Warner Bros. Discovery dříve usilovala rovněž streamovací platforma Netflix, se svou nabídkou však neuspěla. Transakci ještě budou schvalovat regulační orgány, a to nejen ve Spojených státech, ale také
… více »require 'pathname'
@dir = ARGV[0] || __dir__
Pathname.new(@dir).children.select(&:file?)
.group_by { |path| File.size(path) }
.tap { |h| h.delete(1) }
.each do |k, v|
puts "Found #{v.length} files with size #{k} bytes:"
puts v
puts
end
my %sizes; $, = "\n";
unshift @{$sizes{-s $_}}, $_ foreach grep -f $_, glob "* .*";
foreach (keys %sizes) {
next unless $#{$sizes{$_}};
print 'Found ' . ($#{$sizes{$_}} + 1) . " files with size $_ bytes:\n";
print @{$sizes{$_}}, "\n";
}
<?php
// nacita zoznam suborov
$list=scandir(".");
// zisti velkosti
$statistic=array();
foreach($list as $name)
if(is_file($name))
{
$size=filesize($name);
if(isset($statistic[$size]))
array_push($statistic[$size], "$name");
else
$statistic[$size]=array("$name");
}
// vypise
foreach($statistic as $size => $items)
{
$count=count($items);
if($count < 2)
continue;
echo "Size: ${size} B, count: $count\n";
echo implode("\n", $items)."\n";
}
require 'digest/md5' digest = Digest::MD5.hexdigest(File.read(f))
supr skripty :D ;D
teda já jako perlu a ruby vubec nerozumim ale vidim žeto neni koronarýma tak jakoby lajkuju :D :D ;D ;D
perl -e 'use File::Slurp; $x{$_}++ foreach (map({ -s $_ } read_dir("."))); while (my ($s, $c) = each(%x)) { print("size=$s count=$c\n") if ($c > 1); }'
Arrays.stream(new File(".").listFiles())
.map(file -> file.length())
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.forEach((s, c) -> if (c > 1) System.out.printf("size=%s count=%c\n", s, c));
Kratší než oba původní příklady (i když ty by šly taky zkrátit, viz výše) a přesto IMHO čitelnější. Ta čitelnost se pak objeví v případě větší komplexity, teď je to přece jen dost primitivní podle jednoho klíče.
#!/usr/bin/env python3
from pathlib import Path
from itertools import groupby
files = sorted((file.stat().st_size, file) for file in Path('.').iterdir() if file.is_file())
groups = (same_files for size, group in groupby(files, lambda x: x[0]) if len(same_files := list(group)) > 1)
for group in groups:
print('Found {count} files with size {size} bytes:\n{files}\n'.format(
count=len(group),
size=group[0][0],
files='\n'.join(file[1].name for file in group)
))
Omlouvám se za použití operátoru :=.
#!/usr/bin/env bash files="$(find . -type f -printf '%s %f\n' | sort -n)" sizes="$(cut -f 1 -d ' ' <<< "$files" | uniq --repeated)" for size in $sizes; do count="$(grep -c "^$size " <<< "$files")" names="$(grep "^$size " <<< "$files" | cut -f 2 -d ' ')" printf 'Found %s files with size %s bytes:\n%s\n\n' "$count" "$size" "$names" done
find -type f -exec md5sum {} \; | sort |uniq --all-repeated=separate -w32
(teda normalne ty md5sum mam nekde ulozene a pracuju s nima opakovane, takze to jsou bezne prikazy 2, jeden vytvori seznam hashu souboru, druhy hleda duplicity)
Já si například pravidelně ukládám shasumy všech souborů na datovém úložišti nikoliv pro hledání duplicit, ale proto, abych věděl, jestli se ty soubory mění nebo ne.Tohle dělám taky, akorát pouze při zálohování celého /home oddílu. Udělám snapshot kvůli konzistenci, v něm nechám spočítat checksum všeho a pak spustím zálohu. Ten checksum soubor mám pak jak lokálně tak u té zálohy, takže v případě poškozeného binárního souboru co se normálně moc nemění jsem schopen rychle dohledat v které záloze mám předchozí verzi. Ale dělám to primárně kvůli kontrole konzistence zálohy a obnovených dat.
když jakoby dělá jenom hledání duplicitních souborů někde u sebe na disku tak vodolnost toho hashe neni zese jako moc důležitá ne?? :O :O
joa neni md5 taky trošičku rychlejší/lacinější než sha512????? :O ;D
joa neni md5 taky trošičku rychlejší/lacinější než sha512Netuším a je to jedno, stejně se čeká na storage, spočítat to je rychlejší, než číst z disku. Pokud má dotyčný data v 1TB ramdisku, tak to nemusí platit, ale v tom případě zřejmě bude mít něco jako EPIC a tak si to snadno může paralelizovat. Jinak pokud někomu vadí zrovna sha512, tak existují jiné, neprolomené a velmi rychlé funkce (třeba rodina sha3 - kde byla rychlost z jedním z požadavků soutěže).
ok to zní rozumě :D ;D
find . -type f -size +100M -print0 | xargs -0 rdfind -ignoreempty true -checksum sha1 -makehardlinks true -outputname ./rdfind100M_results.txt -dryrun false > ./rdfind100_stdout.txt 2>&1
Tiskni
Sdílej: