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 - fortran1986

Stran: [1] 2 3 ... 8
1
Hardware / Re:Reálný zájem o ARM desktop
« kdy: 26. 06. 2020, 12:58:02 »
NVIDIA Jetson Xavier NX Developer Kit s 8GB RAM si už viem predstaviť aj ako Desktop: https://rpishop.cz/nvidia-jetson/2708-nvidia-jetson-xavier-nx-developer-kit.html

Ale určite to nespĺňa všetko čo si napísal.

Cena 475€ (12 199,00) ale možno priamo od výrobcu by sa dal kúpiť aj lacnejšie len zase treba počítať s vysokou cenou za doručenie.


2
3. Basic bol navrhnutý tak aby bol naozaj zrozumiteľný začiatočníkom na učenie programovanie je imho ešte lepší ako pascal. Okrem toho archaické konštrukcie ako pri práci s pamaťou nutnosť nastaviť segment s ktorým pracuje ho aspoň naučia že pamať je rozdelená na segmenty. Vyššie programovacie jazyky ho od týchto problémov odbremenia lenže on žiaľ potom nebude chápať ako funguje počítač pod kapotou.

Paměť není rozdělená na žádné segmenty, budiž to důkaz, že basic a jeho archaické konstrukce zdeformovaly vaše povědomí o tom, jak funguje počítač pod kapotou. Radši jdu pryč, protože mám nutkání být sprostý.

Ak sa pamať nedelí na segmenty tak ako to teda je? Ja som bol v tom že smerník (pointer) na prmennú obsahuje adresu premennej v pamati.

A táto adresa sa skladá zo segmentu a offsetu. Pri 32 bitovej adrese je prvých 16 bitov segment a druhých 16 bitov offset. alebo sa mýlim?

3
...

Ja som v QBasicu programoval cca prvé dva roky môjho programátorského života (1997 - 1999). Už som to obdobie skoro vytesnil zo spomienok ale keď som si teraz po rokoch stiahol ten jazyk - všetky spomienky sa mi obnovili a keď som si pospomínal na niektoré konštrukcie tak som zistil že Basic mi dal celkom dobrý základ do rôznych oblastí programovania.

V Basicu som si prešiel hneď niekoľkými paradigmami... Zo začiatku som mal len 1 knihu - starú knihu z 80s pre mikropočítače kde som našiel zdrojáky jednoduchých hier ktoré som prepisoval do QBasicu v tých zdrojákoch sa používal skoro výlučne len príkaz goto alebo gosub / return. Týmito príkazmi sa nahrádzali jak funkcie tak cykly. A keď sa mi tie prvé aplikácie viac rozrástli pochopil som že používať GOTO je vopruz a že tadialto cesta nevedie z aplikácie sa mi totiž stala jedna veľká špageta.

Ale zistil som pritom že QBasic (narozdiel od basicu na 8-bitoch) obsahuje aj procedúry, funkcie a štruktúry a rôzne low level konštrukcie. A toto mi dalo základ k tomu že som sa neskôr zaujímal aj o low level programovanie. Neskôr som to potom všetko zúžitkoval pri Turbo Pascale, Delphi a ešte neskôr pri C / C++ Keby bol moj prvý jazyk PHP alebo Ruby či Python tak by som sa síce naučil hneď OOP ale vôbec by som nechápal ako funguje HW. Proste by sa stal zo mňa len ďalší lepič ktorý si naťahá 10 libiek a z nich potom vyskladá aplikáciu metódou ctrl+c ctrl+v. Poznám takch dosť.

Prečo mu odporúčam basic?

1. je to dobrý základ pre rôzne oblasti. Ak by si vybral ako prvý jazyk PHP alebo JS či Ruby tak pri webovom vývoji ostane a podľa mňa získa menší rozhľad ako keď začne jazykom ktorý má bližšie k hardwaru. Basic má blízko k hardwaru no zároveň je jednoduchý a ľahko pochopiteľný aj pre začiatočníka - má v sebe low level konštrukcie ktoré sú ale samovysvetľujúce. C / C++ má tie konštrukice tiež, ale pre začiatočníkom sa tie rôzne operátory (pointer, referencia, dereferenciaácia pointera) môžu mýliť.

2. k C / C++ treba poznať kopec teórie, sťahovať knižnice, pochopiť ako funguje pamať, preprocessor, kedy vytvárať objekt na halde a kedy na stacku etc, v QBasicu si s prár tutorialmi (alebo s helpom) dokáže naprogramovať jednoduchú 2D hru bez toho aby sťahoval nejaké libky všetko potrebné je súčasťou jazyka / prostredia - takže hneď vidí výsledok - a to je pre začiatočníka dôležité.

3. Basic bol navrhnutý tak aby bol naozaj zrozumiteľný začiatočníkom na učenie programovanie je imho ešte lepší ako pascal. Okrem toho archaické konštrukcie ako pri práci s pamaťou nutnosť nastaviť segment s ktorým pracuje ho aspoň naučia že pamať je rozdelená na segmenty. Vyššie programovacie jazyky ho od týchto problémov odbremenia lenže on žiaľ potom nebude chápať ako funguje počítač pod kapotou.

4. QB64 obsahuje kompletné vývojové prostredie ktoré je ušité na mieru práve začiatočníkom. Obsahuje aj kvalitný help ktorý ho prevedie prvými krokmi. A obsahuje aj komunitu nadšencov ktorí mu pomôžu keď si s niečim nebude vedieť rady. Obsahuje chybové hlášky ktoré sú zrozumiteľné (omnoho zrozumitelnejšie ako má C++ prekladač). Vývojové prostredie mu automaticky formátuje kód (niečo ako prettier) a chyby sa zobrazujú na mieste kde chyba vznikla.

4
Kód: [Vybrat]
NUM% = 256
DEF SEG = VARSEG(NUM%)
PNUM = VARPTR(NUM%)
LO = PEEK(PNUM)
HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI

Co je to za šílenost? Segmenty paměti jsem naposledy používal před 30 lety v dosu na 16 bitových procesorech, kde šlo adresovat jen 64 kB paměti. Doporučení basicu a pascalu sem také nějakým omylem propadlo z tohoto pradávného prostoročasu :-).

:D Asi som trošku zaujatý lebo QBasic bol môj prvý jazyk s ktorým som začínal... A včera som si stiahol novú verziu https://www.qb64.org/ (kôli inej diskusii tu na roote) a som celkom uchvátený, že sa v tom dá programovať aj keď sa to za tie roky moc nezmenilo - prekvapuje ma čo to všetko dokáže a že je to vlastne celkom použiteľné.

C++ je to môj najobľúbenejší (imperatívny) jazyk, mám ho rád lebo sa s nim dá hrajkať a piplať v detailoch, ale odporúčať ho začiatočníkovi je imho blbosť. Ak si nachvíľu odmyslím, že som programátor a pozriem sa na kód očami laika tak ten kúsok kódu v basicu mi príde omnoho viac human readable. Preto si naozaj myslím že tým že začne programovať v BASICu nič nepokazí. On ajtak skôr čo neskôr narazí na limity jazyka a potom prejde na niečo iné. Vôbec neni dôležité aký jazyk je dnes IN ale skôr to v čo v ňom vzbudí záujem o programovanie ako také.

5
Ak ste úplný začiatočník tak Basic alebo Pascal. C resp C++ je dobrý jazyk, ale nie pre začiatočníkov porovnajte si toto (C++).

Neni to moc krásny príklad ale chcel som ním porovnať ako sa v oboch jazykoch pracuje s pamaťou.

Kód: [Vybrat]
#include <iostream>
#include <tuple>

std::tuple<uint8_t, uint8_t> hiLo(uint16_t num) {
void* addr = &num;
return std::tuple<uint8_t, uint8_t>{*(uint8_t*)addr, *(((uint8_t*)addr) + 1)};
}

int main()
{
uint16_t num = 256;
uint8_t lo;
uint8_t hi;
std::tie(lo, hi) = hiLo(num);
std::cout << "Lo byte: " << (int)lo << std::endl << "Hi byte: " << (int)hi << std::endl;
}

S týmto (QB64):

Kód: [Vybrat]
DIM NUM AS _UNSIGNED INTEGER: NUM = 256
DEF SEG = VARSEG(NUM)
DIM PNUM AS LONG: PNUM = VARPTR(NUM)
DIM LO AS _UNSIGNED _BYTE: LO = PEEK(PNUM)
DIM HI AS _UNSIGNED _BYTE: HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI

alebo skrátená verzia:

Kód: [Vybrat]
NUM% = 256
DEF SEG = VARSEG(NUM%)
PNUM = VARPTR(NUM%)
LO = PEEK(PNUM)
HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI

6
Studium a uplatnění / Re:Základy programování
« kdy: 24. 06. 2020, 14:40:52 »
Bez čísel řádků a nutnosti používat GOTO už to není ten správný Basic.  ;D

Kludne si tie riadky môžte aj očíslovať - podporuje to aj čísla riadkov (ale v novších veriziách viete čísla nahradiť textovým identifikátorom návestia s dvojbodkou). Podporuje to aj goto prípadne gosub return (kôli spatnej kompatibilite) akurát už 30 rokov sa v basicu preferujú procedúry (SUB) a funkcie (FUNCTION), ale kto chce môže programovať aj po starom. Ak máte zdroják na nejakú hru pre Atari / Commodore tak s pár úpravami ju dokážete preniesť aj do QB64.

Nebojte sa aj QB64 je tiež plný prekvapení, ktoré by ste v inom jazyku hľadali len márne a pri ktorých si budete klásť otázky ako "WTF" alebo "OMG". Napríklad procedúru musíte volať bez zátvoriek ale funkciu so zátvorkami. Jazyk nerozlišuje medzi operátorom priradenia a operátorom porovnávania. Namiesto exceptions sa tam používajú skoky na návestia "On Error GoTo nejakeNavestie", indexovanie polí má rovnakú syntax ako  volanie funkcií. Otváranie súboru sa nerobí knižničnou funkciou ale príkazom ktorý je súčasťou jazyka a ktorý má inú syntax ako volanie funkcií, Alebo do pamate viete zapisovať priamo príkazom POKE ktorému len predáte adresu v pamati a hodnotu ktorú na tú adresu chcete zapísať z Basicu viete volať priamo strojový kód (CALL ABSOLUTE). atd atď.

7
Studium a uplatnění / Re:Základy programování
« kdy: 23. 06. 2020, 23:55:32 »
BASIC, pokud jsem to zkoušel, si se současnými wokny moc nerozumí, což je škoda. IMHO to byl dobrý jazyk pro neprogramátory.



Tak samozrejme že QuickBasic určený pre MS-DOS releasnutý niekedy v roku 1989 už na dnešných OS fungovať nebude ale existujú open source alternatívy:

1. QB64 https://www.qb64.org/portal/ - prostredie nápadne pripomína starý dobrý QBasic z čias MS-DOSU.
2. Freebasic: https://www.freebasic.net/

8
Desktop / Gimp a 4K monitor
« kdy: 16. 06. 2020, 11:41:29 »
Nainštaloval som si najnovší GIMP lenže na 4K monitore (32 palcov) je všetko (ikonky, fonty, boxy) extrémne maličké (pritom taký Blender alebo Photoshop má všetko v normálnej velkosti prečo gimp nie?). Žeby to nepoužívalo systémové nastavenia DPI? Dá sa niekde v Gimpe nastaviť globálne DPI pre celú aplikáciu? Prípadne viete doporučiť nejakú alternatívu voči Gimpu ktorá by fungovala aj vo Windows aj v Linuxe?

Na svojom desktope používam Photoshop, ale v práci som dostal notebook (pripájam sa naň z desktopu cez RDP) a nechcem zbytočne platiť za PS pre dva počítače, takže hľadám grafický bitmapový program ktorý by bol zadarmo či za nízku cenu, ktorý by bol použiťeľný aj pre Windows aj pre Linux. Nemusí to byť OSS ale ak bude tak (palec hore)

9
Vývoj / Re:Abstrakce u OOP
« kdy: 13. 06. 2020, 21:29:29 »
Jazyk C šel se zkracováním ještě dál a nedává tam nic.

musíš tam uviesť typ návratovej hodnoty (čo je tiež riadna otrava) moderné jazyky, ktoré používajú Hindley-Milner typový systém si vedia v 99% typ odvodiť automaticky (a tam kde si nevedia sa použije typová anotácia)

mne sa páči jeden príkaz na všetko tak ako to majú ML jazyky napr let:

Kód: [Vybrat]
let x = 5 // (ne)premenná "x" inicializovaná hodnotou 5
Kód: [Vybrat]
let add a b = a + b // funkcia add s dvomi parametrami x a y

10
Vývoj / Re:JS/TypeScript img src cez import
« kdy: 30. 05. 2020, 23:33:25 »
Ešte som trošku vytunil ten skript skript, a zavesil ho na github keby dakto potreboval vyriešiť podobný problém tak nech nemusí "objavovať Ameriku":

https://gist.github.com/frank-hliva/6ab90d54d351dc43d7fdf2a00c90f843

Skript skonvertuje všetky JS, TS, JSX a TSX súbory v adresári na norálne cesty samozrejme prechádza folder rekurzívne.

Ešte poznámka: hentie divné cesty pre assets:

Kód: [Vybrat]
import avatar2 from '../../../../assets/images/users/avatar-2.jpg';
import avatar3 from '../../../../assets/images/users/avatar-3.jpg';
import avatar9 from '../../../../assets/images/users/avatar-9.jpg';
import avatar10 from '../../../../assets/images/users/avatar-10.jpg';

podporuje štandartne React (konkrétne package react-scripts https://create-react-app.dev/docs/adding-images-fonts-and-files/) keď nepoužívaťe Webpack

...jasom o tom nevedel, lebo React bez webpacku som nikdy nepoužíval. Možno by sa dal webpack nastaviť, tak aby tie cesty prehltol, ale nechcelo sa mi s tým babrať. A ďalšia vec je že mám vlastný server statického contentu ktorý optimalizuje multimediálne súbory tak aby sa prenieslo čo najmenej Byteov. Napr keď zistí že prehliadač podporuje webp tak jpg skonvertuje (a nachachuje) na webp a odošle prehliadaču (starším prehliadačom naopak pošle jpg). Keby som používal cesty ako henten template, tak by mi to prinieslo komplikácie a musel by som ten obsah posielať priamo ...takže musel som to skonvertovať na absolútne cesty nech v tom neni bordel.

11
Vývoj / Re:JS/TypeScript img src cez import
« kdy: 30. 05. 2020, 21:58:37 »
A co bylo v původním kódu?

...nerozumiem celkom načo konkrétne sa dotazujete...

..ale nakoniec som to ajtak vyriešil "hrubou silou". Upravil som si jeden starší konverzný skript a spravil som si takýto jednoúčelový skriptík:

https://pastebin.com/P3PEYbCs

ktorý prejde JS a TS súbory v celom projekte:

a z takéhoto importu:

Kód: [Vybrat]
import avatar2 from '../../../../assets/images/users/avatar-2.jpg';
spraví toto:

Kód: [Vybrat]
const avatar2 = '/assets/images/users/avatar-2.jpg';
Ten skript by sa dal samozrejme napísať aj omnoho krajšie (a bezpečnejšie) ale ja som to potreboval zbúchať čo najrýchlejšie.

12
Vývoj / JS/TypeScript img src cez import
« kdy: 30. 05. 2020, 20:20:27 »
Kúpil som si reactový template plný takýchto konštrukcií v importoch:

Kód: [Vybrat]
import avatar2 from '../../../../assets/images/users/avatar-2.jpg';
import avatar3 from '../../../../assets/images/users/avatar-3.jpg';
import avatar9 from '../../../../assets/images/users/avatar-9.jpg';
import avatar10 from '../../../../assets/images/users/avatar-10.jpg';

a potom ďalej v JSX / TSX kóde vidím:

Kód: [Vybrat]
<div className="assign team mt-4">
<h6 className="font-weight-bold">Assign To</h6>
<a href="/">
<img src={avatar2} alt="" className="avatar-sm m-1 rounded-circle" />
</a>
<a href="/">
<img src={avatar3} alt="" className="avatar-sm m-1 rounded-circle" />
</a>

<a href="/">
<img src={avatar9} alt="" className="avatar-sm m-1 rounded-circle" />
</a>

<a href="/">
<img src={avatar10} alt="" className="avatar-sm m-1 rounded-circle" />
</a>
</div>

Chápem zmysel toho celého lebo cesta k obrázku sa potom dá dopytovať relatívne vzhľadom na aktuálnu pozíciu v adresárovej štruktúre. Každopádne sa mi to vôbec nepáči (osobne prefereujem všetko absolútne) Ale keďže sa mi to nechce teraz všetko prerábať asi najlepšia cesta bude nastaviť si webpack tak aby to celé prekúsol žiaľ snažím sa o to už hodinu a webpack nie a nie prinútiť aby mi to zožral. Neviete mi prosím poradiť ako na to?

Šablóna bola určená pre JS ale ja som ju skonvertoval do typecriptu nástrojom js-to-ts-converter (ale to teraz asi nechajme bokom)

13
/dev/null / Re:Kam schovat peníze před inflací?
« kdy: 30. 05. 2020, 18:09:25 »
Zlato by mala byť dlhodobá investícia. Pozrite sa ako sa vyvýjala jeho cena od roku 1800 až po dnešok.



dlhodobý trend je stúpajúci (alebo skôr cena fiat peňazí neustále klesá) samozrejme v časoch konjunktúry cena (dočasne) trošku klesá ale celkový trend je súpajúci. Výhoda zlata je že aj keby krachla vaša banka, krachla vaša krajina, alebo dokonca krachol celý svet prípadne vypukla 3tia svetová vojna tak bežné fiat meny stratia hodnotu zo dňa na deň sa z vás môže stať žobrák, zato cena zlata obvzlášť v zlých časoch ide prudko na hor.

14
Vývoj / Re:WASM a nahrazení JS
« kdy: 27. 05. 2020, 02:26:17 »
Veľa o tom neviem, ak sa v niečom mýlim kludne ma opravte, tak len zhrniem čo viem:

Pre C++/C sa používa emscripten - toolchain pre LLVM (LLVM je medzijazyk pre clang) ktorý umožňuje kód kompilovať z C++, C po novom už aj Objective-C do kombinácie JS + WebAssembly. Ak chceme napísať aj niečo viac ako "Hello world" mala by tam byť aj štipka toho JS lebo WebAssembly sám o sebe má zatiaľ obmedzené možnosti (nevie pristupovať k DOM a ďalším API) preto sa zvykne kombinovať s JS, ale vo výsledku je WASM + JS - plnohodnotná náhrada za natívne binárky. Samozrejme má to obmedzenia kôli bezpečnosti.

Niekomu WebAssembly možno pripomenie staré dobré ActiveX z pred 20tich rokov, ktoré, ale ešte išlo o krok ďalej (a práve preto sa asi nepresadilo - bola to v prostredí webu jednoducho príliš veľká bezpečnostná hrozba)

Čo sa týka (môjho) .NET sveta
- Nad WebAssembly beží .NET (vďačí za to Blazor-u ktorý umožňuje písať isomorfné aplikácie napr. v jazyku . C#)
- pre funkcionálny jazyk F# je k dispoziícii framework Bolero ktoré používa Blazor, FABLE a framework Elmish.

Taktiež sa do WebAssembly s obľubou kompilujú jazyky Rust a Go

Nad WebAssembly + JS + WebGL môžu bežať aj niektoré 3D herné enginy ako:
- Unreal Engine < 4.23
- Unity
- Godot

ale v praxi všetko potrebné za teba vyrieši compiler a ty maximálne vieš že tam nejaký WASM je

Zhrunutie. Javascript (spolu s WebAssembly) naozaj má šancu pochovať sám seba. Síce z prehliadačov úplne nevymizne ale možno sa z neho stane len doplnkový medzijazyk k WebAssembly.

15
Hardware / Najrýchlejšie ARM CPU pre multimédiá
« kdy: 20. 05. 2020, 21:08:09 »
Ktoré z týchto CPU je na tom výkonovo najlepšie?

1. RK3399
2. Amlogic-s922x
3. Tegra x1 (v Jetson Nano)

Neviete mi poradiť nejaký web ktorý sa venuje ARMom?

Stran: [1] 2 3 ... 8