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í.
Mimochodem, IBM kvůli přítomnosti v GCC přidalo tohle rozšíření do vlastního kompilátoru pro AIX.
Respektive dopad callů na výkon je o tolik menší, že se nevyplatí, takže se ani nedělá. Větvení podle vypočítané hodnoty, respective computed call, je prakticky bez režie.
Taky mi je trošku líto, že to s těmi funkcemi neběhá tak rychle, jak by třeba mohlo. Na druhou stranu, pokud je computed goto zapotřebí k dosažení potřebného výkonu, není to ještě konec světa.
Mně to nepřijde jako špatné použití skoku. Jeho smysl se je přeci poměrně jasně daný, tak proč se mu bránit?
static SenseOfIrony i = new SenseOfIrony();
error: conversion from ‘SenseOfIrony*’ to non-scalar type ‘SenseOfIrony’ requested
#include <stdio.h>
#include <stdlib.h>
void akce0() {
printf("Akce 0\n");
}
void akce1() {
printf("Akce 1\n");
}
void akce2() {
printf("Akce 2\n");
}
void test(int akce) {
void (*op_table[])() = { akce0, akce1, akce2 };
if (akce >= 0 && akce <= 2)
op_table[akce]();
else
printf("Akce mimo rozsah.\n");
}
int main(int argc, char *argv[])
{
char *p;
int akce;
if (argc < 2) {
printf("syntax: test číslo akce\n");
return 1;
}
akce = strtol(argv[1], &p, 0);
if (p == NULL || *p != '\0') {
printf("Chybné zadání.\n");
return 0;
}
printf("Volám akci...\n");
test(akce);
return 0;
}
goto complete; mi přijde jako zbytečnost - break udělá to samé.
(Hm, takže je to vlastně jedno
)
goto naprogramoval jednou průvodce v Turbo Pascalu.
Ostatne, tohle mluvi samo za sebe:
anicka@bia:/usr/src/linux> grep -r goto . | wc -l
37852
grep -cr na rozvětvený adresářový strom?
Na tom příkladu je podstatné, že ten grep bere vstup z pajpy...
Takhle dostaneš výstup pro každý soubor zvlášť. Ještě pořád by se to asi dalo vykousat třeba tailem a posčítat jako oneliner, ale to by už bylo skoro na kopanec od mistra Foo a zlaté wc a vůbec
14:47:10 ganymede:/usr/src/linux$ time find . -type f| xargs cat | grep -c goto 37926 real 2m1.915s user 0m1.612s sys 0m5.500s 14:51:11 ganymede:/usr/src/linux$ time grep -r goto . | wc -l grep: varování: ./debian/linux-image-2.6.17.4/lib/modules/2.6.17.4/source: smyčka pro rekurzivní průchod grep: varování: ./debian/linux-image-2.6.17.4/lib/modules/2.6.17.4/build: smyčka pro rekurzivní průchod 37918 real 1m43.943s user 0m1.828s sys 0m3.848sjen by me zajimalo proc se vysledky lisi :/
Dovolím si citovat Lukův příspěvek z jedné diskuze:
Že je goto hřích se říkalo v dobách, kdy se přecházelo z Basicu a kdekdo cpal goto úplně všude. goto má svůj význam, a např. v linuxovém jádru se vyskytuje celkem hustě.Nicméně já mam velmi rád objektové programování, takže mě se goto a podobné konstrukce taky rozhodně nelíbí
Ale já vubec nemusím C/C++, mám rád vyšší jazyky
Paušální odsouzení obvykle nejsou k ničemu. Vzpomínám si na člověka, který nás učil programování na gymplu. Ten mi byl schopen tvrdit, že když používám v Turbo Pascalu Exit (předčasný návrat z procedury nebo funkce, tj. obdoba céčkového return), stává se tím můj program nepřehledným a že přehlednější by bylo vnořit do sebe deset ifů…
Takže je potřeba si uvědomit, proč tam to goto je a zda přispívá k přehlednosti a srozumitelnosti kódu nebo ho naopak zatemňuje. Koneckonců vyšší jazyky běžně mají konstrukce, které jsou jen jinak pojmenované goto - v C je to třeba return, break nebo continue. A nebo třeba celý mechanismus výjimek, to je také jen maskované goto.
goto i v implementacích Pascalu, které neměly s Borlandem nic společného.
To se pohodlností a praktičností nedá srovnávat... možná tak kdybyste přirovna výjimky k nějakému hypergoto^2
return (předčasný), break nebo continue a společně ukazují, že při řešení chybových stavů může narušení toho ideálu vést naopak ke značnému zpřehlednění programu.
goto hluboký smysl kvůli přehlednosti kódu. V některých funkcích jsou někdy i desítky míst, kde něco může selhat. Protože se většinou musí provést nějaký úklid (něco odregistrovat, snížit počet referencí, uvolnit paměť apod.), nelze jen tak z funkce vyskočit. Proto by to jinak vedlo buď na mnoho vnořených podmínek nebo (při rozkladu na více funkcí) na celou kaskádu volání, ve kterých by se nikdo nevyznal. Proto se používá goto - při vhodně pojmenovaných návěštích je takový kód přehledný a srozumitelný.
“
No jo, až na to, že volání metody je computed call/computed goto a ještě zkřížený se sebemodifikujícím programem...to by měli zakázat, že jo!
až na to, že volání metody je computed call/computed goto
…volání virtuální metody…
Nezajímá mě jakým způsobem je volání metody realizované
Zajímá mě jen jak je to přehledné a praktické a zapadá to do daného paradigmatu
Nezajímají mě stacky, registry, instrukce procesoru... o to ať se starají jiní
To že se nechci zabývat nízkoúrovňovými věcmi neznamená že nemůžu programovat
Samozřejmě že třeba nějaký výkonný grafický engine (nebo podobně náročné věci) bych bohužel asi ve vysokoúrovňovém jazyku nenapsal, ale to já ani nepotřebuju...
on ... goto' není zdaleka nejúžasnější basicová vymoženost. Třeba na Spectru tahle konstrukce nebyla, ale zato argumentem goto mohl být výraz… :-)
GOTO SIN(I) ...
EINE: EINE Is Not EMACS. :)
ZWEI: ZWEI Was EINE Initially. :D
Co to je proboha za patičku?

Implementace EMACSu na raných lispovských počítačích v druhé polovině 70. let.
http://en.wikipedia.org/wiki/EINE
http://en.wikipedia.org/wiki/Zwei
Tiskni
Sdílej: