Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Ink

Stran: 1 2 3 [4] 5 6 ... 40
46
Vývoj / Re:Načtení 2D pole v C
« kdy: 21. 11. 2022, 22:22:58 »
Je to super, jak z toho školního příkladu chcete udělat skoro produkční kód.
Je v pořádku, že je ve školním projektu undefined behavior na třech místech? S tím, že jsou to kritické bezpečnostní chyby?

Souhlasím s tím, co jsi psal výše, tedy že C je jazyk nevhodný pro začátečníky (plný pastí, dodávám).

Mimochodem, co jsou ty tři chyby?
  • Buffer overflow na počet řádků.
  • Buffer overflow na počet sloupců.
  • Neinicializovaná matrix. Prakticky celou neinicializovanou matrix je možné vypsat, to je hodně dat. Tím to ale nekončí. V kombinaci s buffer overflow je možné vypsat úplně všechno, co je na zásobníku. Celý zásobník procesu, ke kterému se útočník snadno dostane. To může být fakt hodně potenciálně citlivých dat. Jako chápu, že to většina lidí neřeší, ale kritická bezpečnostní chyba to prostě je.

Jasně, dík.

47
Vývoj / Re:Načtení 2D pole v C
« kdy: 21. 11. 2022, 21:08:04 »
Toto su malicherne nedostatky, ktore sa daju lahko osetrit.
Asi máme jiný názor na to, co jsou malicherné nedostatky. Já vidím tři kritické bezpečnostní chyby.

Keby si mal nejaku sebareflexiu, tak by si namiesto kritiky radsej postol vlastny funkcny kod, co sa ale nestalo.
Kdybys měl nějakou sebereflexi, poděkoval bys za kostruktivní code review.

Je to super, jak z toho školního příkladu chcete udělat skoro produkční kód. Docela by mě zajímalo, co na to původní tazatel. Začal dost bezradně a tohle je jiný level. Mimochodem, co jsou ty tři chyby? Já tam vidím přetečení řádku nebo sloupce a pokud dobře rozumím, co se děje s inicializací toho pole, tak pokud není deklarováno jako static (nebo není vynulováno něčím jako int matrix[MAX_ROWS][MAX_COLS] = {0};), je v případě, že tam ta čísla v některých řádcích chybí (řídká matice?), v některých pozicích nedefinovaná hodnota. Jinak ale přidat dynamickou alokaci podle potřeby, umět načíst dlouhé řádky a je to?

48
Vývoj / Re:Načtení 2D pole v C
« kdy: 21. 11. 2022, 07:01:11 »
kdyz chce nekdo proniknout do veci, tak si i ty cihly muze sam udelat a vyzkouset si to.
pak kdyz zjisti jak to funguje, nasledne muze prejit na cihly co uz jsou k dispozici.

Na youtubu jsem viděl pár videí několika lidí, kteří to skutečně tak udělali. V reálném životě neznám nikoho. Tedy vulgo: ano, máte pravdu, ale ta vaše pravda je k ničemu.

A co jiného je výuka C, než základní pochopení, jak program funguje na mikroúrovni?

49
Vývoj / Re:Načtení 2D pole v C
« kdy: 21. 11. 2022, 06:58:40 »
Používám tuto konstrukci, čte celý řádek a pak řádek parsuje daným separátorem.

char *separator = " \t";
FILE *file = fopen( "jmeno_souboru.txt", "rt" );

fscanf( file, "%[^\n]s", line ); fgetc( file );

int index = atoi( strtok( line, separator ) );
double koef = atof( strtok( NULL, separator ) );

Tokenizace + zpracování po řádcích? To vypadá jako plán.

50
Vývoj / Re:Načtení 2D pole v C
« kdy: 20. 11. 2022, 19:34:08 »
A vubec, vse vyse zminene je naprosto nepodstatne, protoze zvolit "napsat si to sam" i kdyz je k dispozici standardni funkce je vzdy spatna volba (pokud nepotrebujete vyzdimat kazdou mikrosekundu) - a to z mnoha duvodu: kazdy, kdo to vezme po vas, si tu funkci bude muset precist, protoze nevi, co dela, pokud najde chybu, vy budete kopat okolo, ze "jste to tak myslel" - namisto "aha, scanf, ok, ten znam...".

Kdybych to měl řešit "po svém", pravděpodobně bych nepoužil C, kdybych musel použít C, je otázka, zda bych měl k dispozici jenom tyhle "standardní" funkce apod.

To, co jsem napsal plati pro produkcni kod, ale dost hrubym zpusobem to miji pointu tohoto vlakna. Tazatel je zacatecnik, chce nacist matici, dostal zadani udelat to v C a scanf je v tom jazyce standardni funkce...

OK, v pohodě. Zadání jsem neviděl - buďto tu není nebo jsem ho přehlédl. Přesto mi nepřijde to řešení s konečným automatem v takovémto případě špatné - vyřeší celkem jednoduše řádkování atd. Znaménko, whitespace apod. jsou úplně v pohodě, ošetřit "správně" invalidní znak je triviální, poskládání integeru z dekadického zápisu je triviální. Řešit hexa číslo je zvláštní, že se int nevejde do mezí typu je sice možné, ale co na tom vyřeší scanf()? Co když někdo napíše do vstupu stočíslicovou hodnotu?

51
Vývoj / Re:Načtení 2D pole v C
« kdy: 20. 11. 2022, 17:10:58 »
Otázka zní, zda vůbec používat funkci scanf() a zda by nebylo lepší udělat si vlastní konečný automat a načítat si ta čísla po znacích. Je to dost triviální.

To by teda nebylo lepší :) Je to dost citlivá funkce, protože načítá vstup, udělat to správně a bez chyb není vůbec triviální. A to se bavíme jen o integerech, floaty jsou úplně jiná liga. A navíc je to úplně mimo mísu pro začátečníka...

Ano, bavíme se o integerech. Jaké hrozné problémy tam jsou? V čem je lepší používat obskurní funkce typu scanf()?.

52
Vývoj / Re:Alternativa za Excel Visual Basic?
« kdy: 20. 11. 2022, 14:47:54 »
Proč myslíš, že by sis s LibreOffice Calc nepomohl a "s tím od Google" ano?

53
Vývoj / Re:Načtení 2D pole v C
« kdy: 20. 11. 2022, 07:53:26 »
Otázka zní, zda vůbec používat funkci scanf() a zda by nebylo lepší udělat si vlastní konečný automat a načítat si ta čísla po znacích. Je to dost triviální.

54
Studium a uplatnění / Re:Doučování/konzultace jazyka C
« kdy: 18. 11. 2022, 12:58:41 »
Jako muzes zkusit hodit neco sem.. ale dulezitejsi nez vyresit konkretni problem bude prijit na postup jak takove reseni vyresit sam.

Skoro bych řekl, že to je zbytečné. Napřed ať sem hodí ten hnusokód a až mu někdo vytkne, co fakt nemá dělat, ať se začne učit bez zlozvyků.

55
Vývoj / Re:Je Zig jazyk buducnosti?
« kdy: 11. 11. 2022, 08:23:12 »
Preco sa pytam... s Rustu som bol nadseny a pouzival som ho jeden a pol roka aj na vetsich veciach, myslel som si, ze to bude Go-killer. Ale moje nadsenie opadlo. Tak hladam nieco ine, lepsie, v com sa aj da realne programovat.

Ono skor Go-killer je C# a net 6/7 (miliardukrat lepsi jazyk a richlejsi runtime ako Go a 7-cka aj mirene vykonejsia ako Rust (v grpc)).

Jestliže Ti nevadí C#, nevidím důvod pokukovat po Zigu. Ten přece míří úplně jinam.

56
Vývoj / Re:Je Zig jazyk buducnosti?
« kdy: 11. 11. 2022, 06:21:54 »
cecko mmnoho nesvaru, nebo to jsou jen nesvary lidi co to pouzivaji?

a rust ty nesvary ohlida, ale zaroven, nezblbnou ti lidi o to vic, ze uz to nemusi kontrolovat?

Vzhledem k tomu, že spousta nepříjemných chyb se nachází v software, který nepíšou podprůměrní programátoři (kernel, OpenSSL atd.), bral bych lidská selhání jako nevyhnutelnost. Rust (ale podle mě i Zig) obsahuje určitou bariéru (nenaučí se ho úplně každý za pár dní), který naopak ty nejhorší kusy odfiltruje.

57
Vývoj / Re:Je Zig jazyk buducnosti?
« kdy: 10. 11. 2022, 20:35:37 »
Pokud bych měl na výběr mezi Zigem a C, šel bych do Zigu. Pokud bych mohl použít Rust nebo jiný vyšší jazyk, použil bych ho namísto Zigu. Zig je, jak se zdá, dost dobrý kroskompilátor, v tomto ohledu budoucnost má. Jinak je to otázka, z vyšších jazyků IMO moc programátorů ujídat nebude a uživatelé C jsou velká neznámá. Rád bych věřil, že přejdou.

58
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 11. 2022, 18:59:55 »
Nejsi trochu emotivní? D skoro nepoužívám, ale tvrdit že nedává garance je lež. Rust mě zajímá, jako každý jiný jazyk i když prakticky mě za to neplatí, takže investovat do něj nehodlám. Jazyky co mě opravdu zajímají jsou APL, Joy, Factor z těch co mám teď na stole. Python mě bohužel hodně zaměstnává a čím víc lidí do něj naskakuje, tím děsivější to je.

Nejsem trochu emotivní. A o žádných garancích nic nepíšu. Jenom tvrdím, že lidi nabízející D jsou nepraktičtí a proto mi nepřijde, že ten jazyk má šanci šířeji prorazit. Klidně tomu říkej špatný marketing, to je nakonec jedno. Koneckonců, klasický marketingový mix je výrobek, cena, místo a propagace (product, price, place, promotion). Něco z toho neumějí, D se neprosadilo. EOF

59
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 11. 2022, 16:45:05 »
Taky. Ale i to, že vývojáři Rustu vědí, že popularita záleží mimo jiné i na toolingu a lidech. Má D něco jako Cargo? Něco jako Rustup? A pokud ano, tak jak dlouho? Má třeba něco jako https://wiki.mozilla.org/Areweyet ? Jaké jsou referenční FOSS projekty v D? Co jsem našel a stálo za řeč, byly 5-8 let mrjvé repozitáře.

Hledáš takto špatně schválně?
https://code.dlang.org/
https://dlang.org/orgs-using-d.html
https://www.youtube.com/c/TheDLanguageFoundation/playlists
K tématu: https://dconf.org/2020/online/index.html#walter

Python a Rust opravdu nejsou jedinné použitelné jazyky ve svoji doméně. Mně osobně čím dál tím leze na nervy jejich evangelizace.


O co se D znažilo byla nějaká kompatibilita a konzumace C++ projektů... tam si Rust prostě ulevil. Dle názoru jiných to stálo D týmu dost energie a je to velké sousto. Podobně se o to snaží Google se svým Carbonem.

Proč schválně špatně? Že jsem si já osobně oblíbil Python a Rust nebylo tím, že bych si strčil prst do seznamu a pak si slíbil, že jim budu navždy věrný. Je to tím, že mě Perl, Ruby, OCaml, D, Common Lisp a další prostě nepřesvědčily, ač jsem jim dal šanci. Proč bych se bránil dát jim šanci?

A teď zpátky k "hledání". Víš co? Když budu chtít začít používat Rust, vezmu si Rust Book a naučím se tam (skoro) všechno. Hned na začátku mám odkazy na rustup a Cargo. Co mám v tutoriálu D? Vyber si z DMD, GDC a LDC! To je přece na hlavu! (Jo a Leave a Tip). Ale OK, nakonec pochopím, že mám asi použít DMD a dokonce tam je nějaký odkaz na dub. No ale uznej, že ta dokumentace je brutálně roztříštěná a srovnej to s Rust Bookem a jeho popisem práce s Cargem (a ne, Cargo nepoužívá 2 formáty pro popis balíčků, ale všechno má hezky v TOML).

Orgs using D mě fakt moc nezajímají (tam se používá klidně Haskell nebo Ada, to nepopírám), ptal jsem se na FOSS, ale OK - z těch známých, které mají nějaké repozitáře veřejně je to eBay (1 projekt v D ze 177 repozitářů), FB má 8 let starý Warp,  zbytek vesměs neznám nebo nemají nic veřejně k dispozici.

No a jestliže se D snažilo o to, co teď zkouší Google s Carbonem (nehledě tedy na to, že už zainvestoval do Go a hraje si i s Rustem), není to důkaz, že D pro Google není cesta?

Hele, chápu, že se Ti D líbí a chápu, že Tě evangelismus kolem Rustu a Pythonu štve. No ale obávám se, že to nebude mít žádný vliv na prosazení jednotlivých programovacích jazyků.

60
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 11. 2022, 13:35:19 »
Prošel jste si nějaké informace o tomto jazyku detailně? Viděl jste nějaké video z dconf? Neříkám, že jsem nějaký Rust expert, ale nutně jsem toho asi viděl více protože hype. Mrkněte na D.
D není konkurencí Rustu. Ve skutečnosti Rust ve své doméně žádnou konkurenci nemá, protože paměťovou bezpečnost bez garbage collectoru žádný jiný jazyk nenabízí. Tohle je hlavní selling point Rustu a důvod, proč je kolem Rustu takový hype a proč se docela úspěšně prosazuje. Zjevně je na trhu poptávka po paměťově bezpečném jazyku bez garbage collectoru. Srovnání Rustu s C/D/Zig moc nedává smysl, protože pokud někdo požaduje paměťovou bezpečnost bez garbage collectoru, vezme Rust, nemá jinou volbu.

Taky. Ale i to, že vývojáři Rustu vědí, že popularita záleží mimo jiné i na toolingu a lidech. Má D něco jako Cargo? Něco jako Rustup? A pokud ano, tak jak dlouho? Má třeba něco jako https://wiki.mozilla.org/Areweyet ? Jaké jsou referenční FOSS projekty v D? Co jsem našel a stálo za řeč, byly 5-8 let mrjvé repozitáře.

Stran: 1 2 3 [4] 5 6 ... 40