Organizace Apache Software Foundation (ASF) vydala verzi 22 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Společnost AMD na veletrhu Computex 2024 představila (YouTube) mimo jiné nové série procesorů pro desktopy AMD Ryzen 9000 a notebooky AMD Ryzen AI 300.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána ve verzi 4.10.0 . Přehled novinek v ChangeLogu. Vypíchnout lze Wayland backend pro Linux.
Národní superpočítačové centrum IT4Innovations s partnery projektu EVEREST vydalo sadu open source vývojových nástrojů EVEREST SDK pro jednodušší nasazení aplikací na heterogenních vysoce výkonných cloudových infrastrukturách, zejména pro prostředí nabízející akceleraci pomocí FPGA.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 2,32 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Ubuntu, Linux Mint a Manjaro Linux. Při výběru jenom Linuxu vede SteamOS Holo s 45,34 %. Procesor AMD používá 75,04 % hráčů na Linuxu.
Blíží se léto, chladiče topí, tranzistory se přehřívají, novinářům pomalu docházejí témata a nastává klasická okurková sezóna. Je tomu tak i mezi bastlíři? Na to se podíváme na Virtuální Bastlírně! Tentokrát se strahováci podívají na zoubek velmi slibně vypadajícímu open-source EDM projektu - ne, nejde o taneční hudbu, ale o elektroobrábění. Ukáží taky, jak vypadá starší cykloradar zevnitř nebo jak se testuje odolnost iPhonů.
… více »Společnosti Ticketmaster byla odcizena databáze s osobními údaji (jméno, adresa, telefonní číslo a část platebních údajů) 560 miliónů zákazníku. Za odcizením stojí skupina ShinyHunters a za nezveřejnění této databáze požaduje 500 tisíc dolarů [BBC].
Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.
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? 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 :/
Ž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.
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: