Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.
Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.
Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.
Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).
Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.
Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).
Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.
for f in $(find "/pozadovana/cesta" -type f || exit 1);do . "$f" || exit 1; done
~> for f in $(find "/pozadovana/cesta" -type f || exit 1);do . "$f" || exit 1; done find: ‘/pozadovana/cesta’: No such file or directory
V tom vnořeném příkazu nebude mít exit 1 žádný vliv, protože se z něj návratová hodnota nijak nepropaguje ven. Stačí se podívat na tohle:
for i in $(nonsense); do echo "$i"; done
Kupodivu to má návratovou hodnotu 0 (tedy úspěch), přestože nonsense neexistuje a nelze nic takového spustit (a normálně by shell vrátil hodnotu 127).
Ještě odbočím: Aby člověk rovnou na promptu viděl návratovou hodnotu posledního příkazu, je víc než rozumné přidat si do ~/.bashrc nebo ~/.bash_profile (nebo klidně do /etc/profile, pro mě za mě) něco takového:
PCOLOR_DEFAULT=$'\033[00m'
PCOLOR_RED=$'\033[01;31m'
PCOLOR_GREEN=$'\033[01;32m'
PCOLOR_YELLOW=$'\033[01;33m'
PCOLOR_BLUE=$'\033[01;34m'
PCOLOR_SHINY=$'\033[01;37m'
get_exit_status() {
status="${?}"
if [[ 0 -eq "${status}" ]]; then
echo \
'XCODE_COLOR="${PCOLOR_BLUE}"
XCODE_STATUS='\'\'
else
echo \
'XCODE_COLOR="${PCOLOR_RED}"
XCODE_STATUS="['"${status}"']"'
fi
}
PROMPT_COMMAND='eval $(get_exit_status)'
PS1='\[${XCODE_COLOR}\](\[${PCOLOR_BLUE}\]\u\[${PCOLOR_YELLOW}\]@\[${PCOLOR_SHINY}\]\h\[${PCOLOR_DEFAULT}\] \[${PCOLOR_GREEN}\]\W\[${XCODE_COLOR}\])${XCODE_STATUS}\$\[${PCOLOR_DEFAULT}\] '
Zpět k tématu: Nejblíž tomu, čeho jsi asi chtěl docílit, bude následující:
( set -e tmp="$(mktemp -d)" trap 'rm -Rf "$tmp"' EXIT mkfifo "$tmp"/pipe find "/požadovaná/cesta" -type f > "$tmp"/pipe & pid="$!" while read f; do . "$f"; done < "$tmp"/pipe wait "$pid" )
Důvod, proč používám fifo a ne přímo pipe, je inlinování těch nalezených souborů do hlavního kontextu současného shellu. Kdyby while-cyklus četl názvy souborů ze shellové pipe, všechno, co ty inlinované soubory změní a nastaví, by po skončení pipeline nikde nezůstalo.
(Při použití pipeline se ovšem dají aspoň zjistit návratové hodnoty všech příkazů pipeline z bashového pole PIPESTATUS a vrátit třeba logický or mezi návratovými hodnotami nebo tak něco: status=0; for i in "${!PIPESTATUS[@]}"; do ((status |= PIPESTATUS[i])); done; exit "$status". Jakmile se používá `příkaz` nebo $(příkaz) jako argument for-cyklu, nic podobného není k dispozici.)
Výše uvedený skript okamžitě skončí s chybou, když find nemůže otevřít adresář pro hledání. Skončí taky s chybou po prvním nalezeném souboru, který se nepodaří nainlinovat (neplatný symlink, nejsou oprávnění atd. atp.). To by snad mohlo být ono.
for f in "/pozadovana/cesta"/*; do
. "$f"
done
Tazatel ale neříká, že tam nemá podadresáře. Taky neříká, že by tam nesměly být soubory s názvem začínajícím tečkou.
Tiskni
Sdílej: