Byla vydána nová verze 8.7.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Před 30 lety, k 1. 7. 1995, byl v ČR liberalizován Internet - tehdejší Eurotel přišel o svou exkluzivitu a mohli začít vznikat první komerční poskytovatelé přístupu k Internetu [𝕏].
Byla vydána (𝕏) nová verze 7.4 open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Balíček s příkazem sudo byl vydán ve verzi 1.9.17p1. Řešeny jsou zranitelnosti CVE-2025-32462 (lokální eskalace práv prostřednictvím volby host) a CVE-2025-32463 (lokální eskalace práv prostřednictvím volby chroot).
Do služeb Seznam.cz se lze nově přihlásit pomocí služby MojeID [𝕏].
Bezpečnostní výzkumníci zveřejnili informace o osmi zranitelnostech, které postihují více než 700 modelů tiskáren, skenerů a štítkovačů značky Brother. Bezpečnostní upozornění vydali také další výrobci jako Fujifilm, Ricoh, Konica Minolta a Toshiba. Nejzávažnější zranitelnost CVE-2024-51978 umožňuje útočníkovi vzdáleně a bez přihlášení získat administrátorská oprávnění prostřednictvím výchozího hesla, které lze odvodit ze
… více »Společnost Oracle vlastní ochrannou známku JAVASCRIPT. Komunita kolem programovacího jazyka JavaScript zastoupena společností Deno Land vede právní bitvu za její osvobození, viz petice a otevřený dopis na javascript.tm. Do 7. srpna se k nim má vyjádřit Oracle (USPTO TTAB).
Byl představen samostatný rádiový modul Raspberry Pi Radio Module 2 s Wi-Fi a Bluetooth.
Certifikační autorita Let’s Encrypt ukončila k 4. červnu zasílání e-mailových oznámení o vypršení platnosti certifikátů. Pokud e-maily potřebujete, Let’s Encrypt doporučuje některou z monitorovacích služeb.
Přemýšlíte, jak začít prázdniny? Už v úterý 1. července se bude konat Virtuální Bastlírna, tedy online setkání bastlířů, techniků, vědců i akademiků, kde se ve volné diskuzi probírají novinky ze světa techniky, ale i jiných zajímavých témat.
Za poslední měsíc jsme byli svědky plamenů několika raket. Zatímco malá raketa od Hondy se úspěšně vznesla a opět přistála, raketa od SpaceX se rozhodla letět všemi směry najednou. Díkybohu méně … více »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.
anicka@bia:/usr/src/linux> grep -r goto . | wc -l
37852
grep -cr
na rozvětvený adresářový strom? 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 :/
Ž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í
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.
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ý.
až na to, že volání metody je computed call/computed goto
…volání virtuální metody…
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?
Tiskni
Sdílej: