BreezyBox je open-source shell a virtuální terminál pro populární jednočip ESP32. Nabízí základní unixové příkazy, sledování aktuálního pracovního adresáře (CWD), jednoduchý instalátor a spouštěč aplikací v podobě ELF binárních souborů, zabudovaný HTTP server nebo třeba ovládání WiFi - ukázka použití coby 'malého osobního počítače'. Ačkoliv je BreezyBox inspirovaný BusyBoxem, oproti němu má tento projekt několik externích závislostí, zejména na ESP-IDF SDK. BreezyBox je dostupný pod licencí MIT.
Byl představen cross-assembler xa.sh, napsaný čistě v Bourne shell skriptu. Tento nástroj umožňuje zpracovávat assemblerový kód pro Intel 8080, přičemž je možné snadno přidat podporu i pro další architektury, například 6502 a 6809. Skript využívá pouze různé běžné unixové příkazy jako jsou awk, sed nebo printf. Skript si lze stáhnout z GitHubového repozitáře projektu.
Byla představena nová verze modelu Claude Opus 4.6 od společnosti Anthropic. Jako demonstraci možností Anthropic využil 16 agentů Claude Opus 4.6 k vytvoření kompilátoru jazyka C, napsaného v programovacím jazyce Rust. Claude pracoval téměř autonomně, projekt trval zhruba dva týdny a náklady činily přibližně 20 000 dolarů. Výsledkem je fungující kompilátor o 100 000 řádcích kódu, jehož zdrojový kód je volně dostupný na GitHubu pod licencí Creative Commons.
Kultovní britský seriál The IT Crowd (Ajťáci) oslavil dvacáté výročí svého prvního vysílání. Sitcom o dvou sociálně nemotorných pracovnících a jejich nadřízené zaujal diváky svým humorem a ikonickými hláškami. Seriál, který debutoval v roce 2006, si i po dvou dekádách udržuje silnou fanouškovskou základnu a pravidelně se objevuje v seznamech nejlepších komedií své doby. Nedávné zatčení autora seriálu Grahama Linehana za hatecrime však vyvolává otázku, jestli by tento sitcom v současné Velké Británii vůbec vznikl.
Společnost JetBrains oznámila, že počínaje verzí 2026.1 budou IDE založená na IntelliJ ve výchozím nastavení používat Wayland.
Společnost SpaceX amerického miliardáře Elona Muska podala žádost o vypuštění jednoho milionu satelitů na oběžnou dráhu kolem Země, odkud by pomohly zajistit provoz umělé inteligence (AI) a zároveň šetřily pozemské zdroje. Zatím se ale neví, kdy by se tak mělo stát. V žádosti Federální komisi pro spoje (FCC) se píše, že orbitální datová centra jsou nejúspornějším a energeticky nejúčinnějším způsobem, jak uspokojit rostoucí poptávku po
… více »Byla vydána nová verze 2.53.0 distribuovaného systému správy verzí Git. Přispělo 70 vývojářů, z toho 21 nových. Přehled novinek v poznámkách k vydání.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 216. sraz, který proběhne v pátek 20. února od 18:00 v Red Hat Labu (místnost Q304) na Fakultě informačních technologií VUT v Brně na ulici Božetěchova 1/2. Tématem srazu bude komunitní komunikační síť MeshCore. Jindřich Skácel představí, co je to MeshCore, předvede nejrůznější klientské zařízení a ukáže, jak v praxi vypadá nasazení vlastního repeateru.
Byla vydána nová major verze 9.0 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Hodnota Bitcoinu, decentralizované kryptoměny klesla pod 70 000 dolarů (1,44 milionu korun).
Riesenim tvojho problemu by som to nenazval, ale vzhladom na nenarocnost operacie (cas, vykon), to az tak zle nebude.
Moj navrh spociva v tom, ze prv si exif data ulozit do suboru, nasledne prekonvertovat raw do tiff a nahrat exif do toho tiff, ak si convert samotny teda nevie poradit. Balicek exiv2 funguje fajn, co sa tyka exportu a importu exif dat. A jednoduchym skriptom to pojde ako po masle.
PNG podporuje aj 16bit na kanal, ale aka je podpora vo vseobecnosti, to nemam paru. :)
Každý nění scriptař , tak co třeba sample ?
convert pagoda_sm.jpg -compress zip -quality 95 pagoda_sm.tif
exiftool -tagsFromFile pagoda_sm.jpg -All:All --IFD1:All pagoda_sm.tif
Pepe, suhlas. Ale musim poznamenat, ze som mu dal navrh riesenia a premyslal som, ci mu tam daco napisem alebo nie. Rozhodol som sa pre nie, bo az by eventualne chcel daco, tak som tu a rad pomozem. Takze to neboli len dristy, ako to spravit, ja som tu bol pripraveny mu s tym pomoct, pokial to bude v mojich moznostiach.
Tuna je moje riesenie:
#! /bin/bash
# deklaracia globalnych premennych
declare -a array_dirs array_pics
# uprav pre svoje potreby, ak potrebujes, co sa tyka volieb pre mogrify
# $1 - vystupny format obrazkov
# $2 - vystupna cesta, kam sa vysledok ulozi ( !!! mogrify sa nestara a prepise akykolvek subor ak sa zhoduju v nazve narozdiel od convert a preto to treba
# mat na zreteli !!! )
# $3 - vstup; obrazky alebo zoznam obrazkov pre konverziu
Mogrify(){
mogrify -format "$1" -path "$2" "$3"
}
Help(){
cat <<_EOF
Vyuzitie: Extrahuje exif data do suboru zo zdrojoveho obrazku pred konvertom formatov obrazkov a po ukonceni
ho nacita do uz prekonvertovaneho obrazku.
P.S.: Si to potreboval, ked convert stracal exif data pri konvertovani CR2 do tiff . :)
Volby:
-h, --help : pomoc
-r, --recursive : rekurzivne hladanie; ak nasleduje za touto volbou cislo, je brane ako uroven hlbky hladania
-i, --iextension : zdrojovy format obrazkov; ak adresar obsahuje viacero roznych formatov a my chceme len ten dany jeden
-o, --oextension : vystupny format obrazkov; POVINNY PARAMETER -> ERROR: MAGIC BALL IS NOT IMPLEMENTED YET. STAY TUNED.
-p, --path : cesta ku korenovemu adresaru hladania; POVINNY PARAMETER
Akekolvek nerozpoznane volby su brane ako obrazky samotne.
${0} --oextension [pripona] --path [cesta_k_adresaru]
_EOF
}
CheckApps(){
declare status=0
which mogrify &>/dev/null || { echo "Je nutne nainstalovat balicek imagemagick ."; status=1; }
which exiv2 &>/dev/null || { echo "Je nutne nainstalovat balicek exiv2 ."; status=1; }
# Verzia 0.23 a vyssie je nutna pre citanie a zapis CR2 formatu obrazkov, resp. ich exif dat.
version="$(exiv2 -V | head -n1 )"
version="${version#* }"
version="${version%% *}"
if [[ ${version%%.*} -gt 0 ]]
then
:
else
if [[ ${version##*.} -lt 23 ]]
then
echo -e "Je nutne updatnut balicek exiv2 na verziu 0.23 a vyssiu.\nNizsie verzie nepodporuju citanie a zapis CR2 formatu obrazkov exif dat."
status=1
fi
fi
[[ $status -eq 1 ]] && echo "Pred dalsim spustenim skriptu doinstalujte vyssie uvedene aplikacie." && exit 1
}
FindDirs()
{
declare dir
while read dir
do
array_dirs+=( "$dir" )
done< <(find "$path" $maxdepth -type d )
}
Convert(){
declare pic absdir
for pic in "${array_pics[@]}"
do
if [[ "$absdir" != "${pic%/*}" ]]
then
absdir="${pic%/*}"
newabsdir="${absdir}"/"${absdir##*/}_new"
mkdir "$newabsdir"
fi
exiv2 extract "$pic"
Mogrify "$oext" "$newabsdir" "$pic"
exvfile="${pic%.*}.exv"
picname="${pic##*/}"
picname="${picname%.*}"
mv "$exvfile" "$newabsdir"
exiv2 insert "${newabsdir}"/"${picname}.${oext}"
done
}
FindPics(){
declare absdir file newabsdir
for absdir in "$@"
do
for file in "$absdir"/*"$iext"
do
identify "$file" &>/dev/null && array_pics+=( "$file" )
done
done
}
####################################### MAIN ############################################
CheckApps
while [[ "$1" ]]
do
case "$1" in
-r | --recursive )
recursive='true'
regexp='^[0-9]+'
if [[ "$2" =~ $regexp ]]
then
declare maxdepth="-maxdepth $2"
shift 2
else
# vychodzie spravanie; spracuje len subory v aktualnom adresari
declare maxdepth="-maxdepth 0"
shift 1
fi
;;
-h | --help )
Help
exit 0
;;
-i | --iextension )
# nevieme, ci uzivatel zada k pripone bodku a ci nie, takze ju prv odstranime, ak daka bola zadana
# a nasledne ju pridame pred hodnotu
# Ak nie je zadany vstupny format obrazku, berieme vsetky obrazky nezavisle na pripone.
iext=".${2//.}"
shift 2
;;
-o | --oextension )
# tato volba je nutna, potrebujeme daco podsunut pre convert
oext="${2//.}"
shift 2
;;
-p | --path )
path="$(readlink -f "$2" 2>/dev/null )"
if [[ $? -eq 0 && -r "$path" ]]
then
:
else
# Iba jedna cesta moze byt zadana pre jeden beh skriptu, takze zadanim neexistujucej cesty alebo
# nemajuc opravnenie na citanie, skript nemoze splnit vsetky poziadavky uzivatela a sa ukonci s chybou.
echo -e "Nemozno spracovat zadanu cestu: $path.\nNeexistuje alebo nemam opravnenie na citanie."
exit 1
fi
shift 2
;;
* )
file="$(readlink -f "$1" 2>/dev/null )"
if [[ $? -eq 0 && -r "$file" ]]
then
if identify "$file" &>/dev/null
then
array_pics+=( "$file" )
else
echo -e "Nemozem spracovat $wannabe_pic .\nNeexistuje, nemam opravnenie na citanie alebo sa nenasiel ziaden obrazok."
exit 1
fi
fi
shift 1
;;
esac
done
if [[ -z "$oext" ]]
then
echo -e "Zadanie vystupneho formatu obrazku je nutna volba./nZadaj argument -o [pripona] alebo volbu --help."
exit 1
fi
if [[ "$recursive" == true ]]
then
FindDirs
FindPics "${array_dirs[@]}"
fi
if [[ "${#array_pics[@]}" -eq 0 ]]
then
echo "Ziadne obrazky na spracovanie./nPouzi volbu --path pre adresar alebo zadaj konkretny obrazok.\nVid $0 --help."
exit 1
fi
Convert
Skript som skusal na svojich fotografiach pri roznych scenaroch a fungoval. Ak sa ale vyskytne daka chyba, daj vediet a skusim to dat do poriadku. Skript je setrny na zdrojove subory a nemaze nic. Subory obsahuje exif data sa nachadzaju v podadresari povodneho adresara spolu s prekonvertovanymi obrazkami. Ak nieco nie je jasne, daj vediet, pomozem. Ak vidis daku chybu, alebo vies nieco lepsie, oprav a upovedom. Budem iba rad. Snad pomoze. Zatial.
name=$*
for file in $name
do
dcraw -c -T -6 $file | convert -quiet -compress zip - $file.tiff
echo $file converted
done
vytvoří to soubor s koncovkou .CR2.tiff
jakou upravu mám provést aby tam nebylo to cr2? např: _MG_869.tiff
Tiskni
Sdílej: