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

Stran: [1] 2 3
1
Vývoj / Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« kdy: 03. 05. 2021, 11:55:03 »

Väčšina zákazníkov určite nie, ale nájde sa zopár užívateľov, ktorý by si
to mohli sami inštalovať na VPS, Cloud atď. Alebo firma, ktorá má povedzme
5 ľudí, ktorí by s tým pracovali a admin im to nahodí na intranet.
V prípade buildu do bináriek je to pomerne triviálna záležitosť.
A práve to je moja hlavná otázka, či sa to kvôli tejto flexibilite Micronaut/ASP.NET
riešenia oplatí z obchodného hľadiska voči JavaFX desktopovej aplikácii.
Teda, či vývojár takto dokáže predať o zásadný počet licencií viac.

Čo sa týka SPA, uvažoval som nad Reactom, ten má najväčší výber komponent, napr.
spreadsheet. Zatiaľ však by som si vystačil len so spreadsheet komponentom
bez Reactu. Potrebujem načítanie do spreadsheetu, sorting, filtering,
cleaning dát a následný export. Časom by sa mohlo v prípade potreby migrovať
do Reactu.

Ináč, ja zatiaľ neuvažujem o centrálne hostovanej webovej aplikácii, ale o
možnej webovej aplikácii, ktorú si užívateľ stiahne ako binárku. Teda o takej
aplikácii, ktorá sa správa pre bežného užívateľa ako desktopová.


Pochybuju, že by si zákazníci něco sami instalovali někam do cloudu. Výhoda webového řešení je ta, že naopak nemusíte jako uživatel nic instalovat, prostě zadáte adresu do prohlížeče a je to. Pro vás jako pro vývojáře je výhoda v tom, že nemusíte podporovat různé verze na nejrůznějších systémech – prostě aplikaci instalujete na jeden svůj server (nebo cloud) a máte jistotu, že všichni mají nejnovější verzi s nejnovějšími opravami. Jednodušší je i případné zpeněžení – nemusíte řešit, že si ten software bude někdo kopírovat.

Výhodou nativní aplikace je to, že v ní lze pořád ještě naprogramovat komplexnější GUI, než na webu. Resp. ty rozdíly nejsou přímo v GUI, ale spíš v interakci s okolním prostředím. I když i v tom webové technologie mezery rychle dohání – už dávno můžete používat drag-and-drop, dnes můžete pracovat i se soubory na lokálním počítači, aplikace může fungovat offline. Každopádně naprogramovat pro desktop něco, co zatím nelze udělat webovými technologiemi, je také dost složité.

Dost také záleží na tom, jak má být aplikace interaktivní. Pokud by tam měl uživatel něco vyplňovat a editovat, neobstojí už dnes aplikace založená jen na serverovém řešení a budete potřebovat nějaký frontendový framework jako Vue, React, Svelte… Pak dává smysl použít na serveru Micronaut, ten je pro JSON backend jako dělaný.

2
Vývoj / Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« kdy: 03. 05. 2021, 11:35:46 »
Myslím si, že Excel plugin je pre požiadavky aplikácie reštriktívny.

Python som zamietol kvôli nemožnosti vytvoriť binárku (binárku považujem za veľkú konkurečnú výhodu)
a horšiemu výberu knižníc. Napr. Python nemá poriadnu knižnicu na prácu s PDF súbormi, čož je
v obore import/export dát zásadná vec. Jediný jazyk ktorý sa približuje duu Java/C# v tejto oblasti
je zrejme Go; ten má čo som pozeral, veľmi slušnú výbavu.

O command-line tooloch som uvažoval ako o doplnku pre power userov.

Vytváraniu natívneho GUI pre 3+ platformi by som sa rád vyhol; to by bolo príliš veľké
bremeno.

Micronaut nie je len pre web, resp. microservices. Samotný lead developer hovorí vo
svojich prednáškach, že Micronaut je určený pre všetky typy aplikácií, ktoré majú
public static void main.

1. Tak pokud to je do excelu, tak to mas nej udelat nejaky plugin, ne?
2. Koncipoval bych takovouto utilitu priparne jako command line tool, k tomu si pak muzes udelat GUI a je jedno v cem
3. Kdyz uz to bude cmd tool, vsadil bych se ze takova knihovna uz existuje v Pythonu.
4. Nevim k cemu ti bude micronaut, to je primarne na web
5. Kdyz uz to bude web, tak zase nepotrbujes graalvm.
6. V Jave nebo v .NETu, gui bude vosklivy bych rekl, lepsi mas cmd tool + pouzit native gui pro kazdou platformu na kterou to pojede.

3
Vývoj / Aplikácia v JavaFX vs ASP.NET/Micronaut
« kdy: 02. 05. 2021, 21:45:15 »
Zdravím,

plánujem vytvoriť aplikáciu na export/import dát (bežné formáty XML, JSON, HTML, XLSX, PDF...). Niečo
pre bežného užívateľa Excelu, ktorý si potrebuje importovať dáta do tabuliek a niečo
vyexportovať. Výber jazyka som zúžil na C# a Javu, pretože obe platformy majú najprepracovanejšie
knižnice pre export/import dát. V Jave ma najviac zaujali Micronaut, JavaFX, v C# ASP.NET.
Všetky riešienia sú multiplatformové. Veľkou výhodou  je možnosť tvorby bináriek; v Jave (GraalVM)
je to trochu komplikovaniejšie, ale zdá sa, čo som testoval, že to ide. V C# je to malina.

ASP.NET ma zaujalo čistotou, kompaktnosťou a jednoduchosťou; je tam všetko, čo potrebujete.
Naopak mi tam chýba možnosť modulárneho vývoja, čo ma dosť prekvapilo. Ale keďže moja aplikácia
nebude rozsiahla, tak tam nevidím problém.

Micronaut je vylepšený a vyblýskaný Spring Boot. To by som asi zvolil pri rozsiahlejšom projekte.
Príde mi to podstatne viac komplexné, možno pre moje potreby overkill. (Ale ináč perfektné.)

 V JavaFX tvorba GUI je malina a pôžitok. Ide to ako po masle. (Webové riešenia sú podstatne
zložitejšie.) TableView komponent je určite tiež rýchlejší a prepracovanejší, než čokoľvek čo
existuje v JS. Podarilo sa  mi tiež vybuildovať binárku pomocou Gluon projektu, takto má aplikácia
výrazne nižšie pamäťové nároky a rýchlejší štart.

JavaFX bude bežať len na desktope, kým ASP.NET/Micronaut si zákazníci môžu spustiť
na desktope a tiež nasadiť na cloude, či u seba na intranete "on premises". Čo si myslíte, je to zásadná
výhoda ASP.NET/Micronaut riešenia oproti JavaFX? Sú potencionálni zákazníci oveľa
ochotnejší si zakúpiť aplikáciu, ktorá beží aj na webe?

4
Studium a uplatnění / Re:Knihy matematika/fyzika
« kdy: 10. 03. 2021, 10:28:04 »
Odporúčam jednoznačne anglickú literatúru. Pre začiatok potrebuješ učivo,
ktoré oni nazývajú precalculus.

James Stewart PRECALCULUS

https://www.amazon.co.uk/Precalculus-Mathematics-Calculus-International-Metric/dp/1305999983/ref=sr_1_4?dchild=1&keywords=precalculus&qid=1615365887&sr=8-4

Tu si môžete pozrieť, ako tá kniha vyzerá:

https://cec-code-lab.aps.edu/downloads/precalculus-text.pdf

Ide pravdepodobne o nelegálnu PDF kópiu; ale dobre poslúži ako predstava,
čo tá kniha obsahuje. (Aj tak málokto asi prelúska 1000+ stranovú knihu v PDF forme.)

(**

Voľne šíriteľná, legálna verzia Precalculu sa dá nájsť tu:
https://www.stitz-zeager.com/szprecalculus07042013.pdf

Výklad je oveľa viac formalizovaný, ale dá sa zvládnuť OK. Je to celkom fajn kniha.

**)

Mám od Jamesa Stewarta  CALCULUS, a to je úplne geniálna kniha. Je tam všetko podrobne
vysvetlené s množstvom obrázkov a grafov pre ilustráciu. Čo je extrémne dôležité,
nechýbajú dôkazy, cvičenia a ilustrácie, kde sa to všetko v praxi využíva.
Proste dobrí zahraniční autori vysvetľujú učivo pre beginnera na ďaleko lepšej úrovni,
ako českí a slovenskí.


Po tom, čo študent pochopí jazyka matematiky, jej formalizmus, môže siahnuť aj po
slovenských a českých autoroch. Tí píšu v jadrnej, stručnej forme, čo je fajn pre
pokročilejšieho študenta, ale pre začiatočníka je to nevhodné.

Ja mám najradšej knihu od Jána Ivana, Matematika I. ( Veľmi ťažko zohnať. Zháňal som to vyše 20 rokov :) ).
Potom sú tu československé klasiky Kluvánek, Mišík, Švec Matematika I
a Škrášek, Tichý Základy Aplikované matematiky. Tie sa buď dajú vypožičať, alebo
sa dajú niekedy splašiť v antikvariátoch.

Odporúčam tiež zohnať si nejaké dobré dejiny matematiky. Na Slovensku vyšla
kniha Dejiny matematiky od Jána Čižmára, čo je neuveriteľný počin v našich
končinách. Je to pre motiváciu do štúdia.

Na YouTube si môžeš násť odporúčania pre štúdium matematiky od študentov,
PHD študentov a profesorov napr:

https://www.youtube.com/watch?v=I_Df_mx8Hxo

5
Vývoj / Re:Náhrada PHP nebo ASP.NET Core
« kdy: 17. 02. 2021, 22:00:36 »
Mne tieto dva dotazy

intext:"Warning: include" site:sk
inurl:"main.php" site:sk

vyhodilo zopar potencionalne zrejme zranitelnych stranok. Avsak zvacsa ide
o dost stare stranky.

Nuz to je tak, ze pri tvorbe PHP stranok sa cosi clovek priuci. :)


Tyhle jsem hledal (na ukázku) googlem, kde není router maskovaný rewrites.
Shodou okolností šla hned první stránka, ale to byl jen luck.
Jako když chceš ukázat mizernou branku, nějakou najdeš, sťouchneš do ní a ona se nejen otevře, ale i rozpadne.

Jinak to jsou vesměs zakázky ...nebo se nudíš a šťouráš.
Ale NEKRÁST, protože k datům se v podstatě vždy dostaneš.

Tedy mimo ASP.NET \ Java, to si pak připadám jako ...

6
Vývoj / Re:Náhrada PHP nebo ASP.NET Core
« kdy: 17. 02. 2021, 19:45:51 »
Ja som nedávno narazil na web slovenskej univerzity, kde je akýsi prastarý kceditor,
ktorý vám ako na tácke dáva možnosť uploadnúť tam web shell... K tomu sa
poľahky dá dopracovať pomocou tzv. Google dorks. Na webe je toho dosť.
Ale web je hacknutý pre mňa, keď je root access. A to je tá ťažšia cesta.



Vyzerá to na LFI, local file inclusion. Dajú sa zrejme prezerať súbory a prípadne
uploadnúť z iného serveru web shelly.

Zaujímalo by ma, ako postupujete pri hľadaní takýchto dier? Googlením, či nejakým
automatizovaným skriptom?

Aby bylo vidět, že umím a nekecám (většina totiž kecá a neumí): http://www.wave-tech.co.kr

Chybu pochopíte, když otestujete ten jejich "router": /main.php?m2=s22
http://www.wave-tech.co.kr/main.php?m2=s22

Cvičně to můžete změnit třeba na: main.php?m2=main
Že se dá ovládnout celý server...vám taky bude brzo jasné.
Ale fakt bacha, hrozně lehce jim to shodíte.

Nicméně třeba stránky Homecreditu jsou mnohem větší výyva, koukat můžete, hackovat ne, byl by to trestný čin.
Odkud se odpíchnout mohu poslat do SZ.

Takže ano, ptám se blbě, ale něco umím  ;)

7
Vývoj / Re:Náhrada PHP nebo ASP.NET Core
« kdy: 17. 02. 2021, 19:33:46 »
Nuž robiť sám na webovom projekte s pomocou frameworku; no neviem, neviem.
Je s tým tak veľa roboty, že to sám človek ťažko zvládne.
Pokiaľ sa chce človek vyhrať, tak povedzme. Ale pre niečo serióznejšie radšej nie.
Dnes je trend využívať aplikačné platformy, napr: https://www.back4app.com/,
Amazon, Google, Azure majú svoje ekvivalenty. Tam si svoju webovú aplikáciu
poskladáte takpovediac ako lego. Neexistuje, že by jednotlivec dokázal všetko,
čo vyžaduje moderná webovka zbúchať sám.

Na druhej strane je problém ten customer lock-in. Súdruhovia vám pri zlom
kádrovom profile dokážu zrušiť vašu aplikáciu bez vysvetlenia. Osobne by
som sa hlavne Googlu oblúkom vyhol. 

8
Bazar / Re:Prodám plně funkční historický notebook IBM R60e
« kdy: 12. 11. 2020, 22:48:21 »
ponúknem 50€

9
Vývoj / Re:Kotlin nebo Scala pro backend?
« kdy: 09. 11. 2020, 12:22:26 »
Citace
Co presne tam je za problem?

Reagoval som na použitie statických metód; tie neexistenciu obyčajných funkcií nevyriešia, ale
pridávajú vlastné problémy (statická metóda môže volať len statickú metódu a pracovať so statickými
atribútmi.)

Citace
Co znamená „lambdy se nepočítají“? Lambda je přece anonymní funkce.
Jediné, co byste mohl chtít navíc, je možnost reflexí zkoumat předanou funkci, to opravdu Java neumí.

Opravte ma ak sa mýlim, ale lambda sa len tvári ako anonymná funkcia. Je to len syntaktický
konštrukt, z ktorého kompiler spraví objekt. Java bohužiaľ nemá bežné funkcie, len metódy.
A tie nie sú first-class.

Čo bolo pridané v Java 8 je vohejbák. Java stále nemá obyčajné funkcie, len cez funkcionálne rozhrania
sa okľukou vytvárajú objekty a volajú potom metódy.

Kód: [Vybrat]
public class Example {
 
    public static void main(String args[]) {
 
        Function <Integer, Integer> inc = e -> e + 1;
        doSum(5, inc);
 
    }
 
    public static void doSum(int value, Function <Integer, Integer> func) {
        System.out.println(func.apply(value));
    }
}

Ono to vyzerá ako funkcia, ale nie je.
Je to celé komplikované. Java pridala do jazyka celý rad preddefinovaných rozhraní
kvôli uľahčeniu práce, ale faktom je, že nemáme funkcie, len objekty a ich metódy.
Každú "funkcia" potrebuje mať vlastné rozhranie napr:

Kód: [Vybrat]
@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);
}

Porovnajme si to s JavaScript kódom:

Kód: [Vybrat]
function inc(val) {
    return val + 1;
}

function dec(val) {

    return val - 1;
}

function double(val) {

    return val * 2;
}

function halve(val) {

    return val / 2;
}

let pipeline = [inc, halve, dec, double];

let res = pipeline.reduce((total, fn) => {
   
  return fn(total);
}, 9);

console.log(res);

Je to elegantný, jednoduchý, ale veľmi expresívny kód. Žiadne statické metódy, žiadne
funkcia musí byť v classe, žiadne vohejbáky ako @FunctionalInterface alebo delegáty (C#).
Jednoduchý priamočiary kód.

Váčšina moderných programovacích jazykov má obyčajné funkcie, vrátane jazykov Python, PHP, JavaScript, Rust,
Go, Ruby, C++, F#, ...

Preto som napísal, že podľa mňa to je neexistencia obyčajných funkcií najväčšia chyba v dizajne Javy.

10
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2020, 23:25:05 »
Citace
Java otevřela nový segment. Python nahradil Perl.

Ja by som bol opatrný pri slove nahradil. V súčasnosti je dnes viac Perl programátorov,
ako v minulosti. Akurát ostantné jazyky sú populárnejšie a Perl nie je na očiach.
Skôr by som tipoval, že Python obsadil oblasti, ktoré mohol mať Perl. Na webe Perl
zas vytlačilo PHP.

Je pozoruhodné, že Python oveľa viac populárny ako Perl. Perl je len o 2-3 roky starší
ale jeho CPAN bol spustený v roku 1995!!! Python mal dlhé roky v tom chaos a jednodný
repozitár sa podarilo dosiahnuť len pár rokov dozadu.

11
Vývoj / Re:Kotlin nebo Scala pro backend?
« kdy: 07. 11. 2020, 23:15:10 »
Citace
V čem byl Python revoluce? Beru třeba Lisp nebo Smalltalk, ale proč Python?

No zrejme nie vo features, ktoré má, ale možno je Python revolúciou preto, že sa doslova
masovo rozšíril. Je to jazyk aj pre nie programátorov. Pre veľa ľudí, pre ktorých sú
excelové funkcie už nedostatočné. To sa v histórii nepodarilo žiadnemu jazyku.

Citace
Když si v aplikaci uděláš jednu statickou Common třídu (nebo klidně víc podle zaměření, když by jich bylo moc),
tak její metody můžeš používat úplně stejně jako obyčejné funkce - nebo ne?

Stále tam musíme napísať tú Common triedu, ďalej je tam statický kontext, ktorý všetko len zamotáva.
A takéto statické  metódy nemožno použiť všade, kde by sa dala použiť bežná funkcia; viď tzv higher-order funkcie.

Citace
Podívejte se na funkce v JavaScriptu. Jsou to obyčejné funkce a zároveň objekty.

No to áno, to je v pohode, takto to majú aj Python či Ruby. Problém je, že v Jave či C#  metódy
nie sú ani jedno.

12
Vývoj / Re:Kotlin nebo Scala pro backend?
« kdy: 06. 11. 2020, 13:19:37 »
Java má pitomá a neintuitivní generika a na cokoli trochu zavánějící pozdní vazbou se musí použít reflexe, i když by de fakto stačila interface. To jsou podle mě největší bolesti javy.

Pre mňa je to neexistencia obyčajných funkcií. Túto nepochopiteľnú chybu okopírovali aj v C#; potom
sa to snažili nejako napraviť cez built-int delegáty, ale nie je to ono.
Podľa mňa to vyplýva z toho, že Java je ako sa dnes hovorí opinionated jazyk; všetko musí byť objektovo.
Pre veľkú časť úloh objektové programovanie nie je potrebné a dokonca je zbytočné. Nemožnosť tvoriť
obyčajné funkcie zabrzdil rozvoj Javy ako jazyka a oproti moderným jazykom pôsobí zastaralo. Nuž, keď
sa raz základy zle postavia, tak už stavbu neprerobíme.


13
Vývoj / Re:Kotlin nebo Scala pro backend?
« kdy: 02. 11. 2020, 20:21:00 »
F# je tiež veľmi pragmatický jazyk. Všetky kolekcie sú immutable okrem polí; pretože
polia sa často využívajú vo výpočtoch, ktoré sú mutable. V jazyku neexistuje null hodnota,
ale keby to bolo treba, dá sa to spojazdniť pomocou AllowNullLiteral atribútu.
Rekurzia je first-class, ale v jazyku sú aj tradičné for cykly; niekedy sa to proste hodí.

Clojure veľmi nepoznám, ale rozhodne je to veľmi zaujímavý jazyk. Keď som si porovnával
príklady na rosetta code, tak čo sa týka čitateľnosti, zrozumiteľnoti, a elegancie, tak väčšinou
mi vyšiel F#.  V niektorých prípadoch to bol však Clojure. Zároveň fakt, že syntax LISPU sa
výrazne nezmenila od roku 1958, je veľmi pozoruhodný. (Porovnajme si to s tým, ako sa
drasticky menia jazyky napr. PHP, JS, C# či C++.)


Kotlin ale nesúťaží priamo s jazykmi Scala, Clojure, Haskell či OCalm. Kotlin je pragmatický jazyk ...

Právě na Kotlinu se mi líbí ten pragmatismus. Také mám rád FP (zkušenosti z Rustu), ale na Haskell (alespoň zatím) nemám a dále mi vyhovuje OOP, takže se Scala ukazovala za dobrou volbu, ale Kotlin a jeho pragmatismus (HTML dsl například) je také velice pěkná volba. A to mě dostalo sem. Kotlin má také funkcionální prvky.

No tak pak se nabizi Clojure. Z toho pragmatismus strika do vsech smeru.

14
Vývoj / Re:Jake používáte prostředí pro vývoj (C++)_
« kdy: 02. 11. 2020, 19:12:08 »
Diq za tip. To je zaujímavé, s xmllint som doteraz nerobil.

Stiahnite si zo stránky https://bugs.eclipse.org/bugs/buglist.cgi?component=SWT
CSV súbor bugs-2020-11-01.csv.

$ grep '"ASSIGNED"|"REOPENED"|"NEW"' bugs-2020-11-01.csv | vim -

Otvoríme si vyfiltrované žijúce bugy v editore VIM. Pomocou G príkazu sa bleskovo
dostaneme na koniec editora; úctyhodných 1637 bugov.

Zkus si tam vložit tento filtr:
Kód: [Vybrat]
curl "https://bugs.eclipse.org/bugs/buglist.cgi?component=SWT" |
    xmllint --html --xpath '//table/tr[td/span/@title="NEW"]/td[@class="bz_short_desc_column"]/a' - |
    vim -

Trochu lepší a rychlejší XPath:
Kód: [Vybrat]
'/html/body/div/table/tr[td/span/@title="NEW"]/td[@class="bz_short_desc_column"]/a'

15
Vývoj / Re:Jake používáte prostředí pro vývoj (C++)_
« kdy: 01. 11. 2020, 19:34:50 »

Citace
a má cenu se to učit nebo je to pozéřina, protože to vypadá cool?

VIM sa má cenu učiť. Sú veci, ktoré pre ktoré nemá konkurenciu. (S výnimkou Emacsu.)
Trebárs zo shellu si presmerujete do VIM bufferu výstup, kde ho priamo ďalej
môže upravovať, filtrovať. Napr. spustíte grep, awk, sed a text sa vam priamo
v editore mení. Môžte to robiť bleskovo s stovkami tisíc riakov dát. To proste
nemá konkurenciu.


Eclipse. Nekolik vyhod:
- da se pouzit na vicero jazyku najednou java, C++, php ...
- je stejny na ubuntu i ve windows, nastavil jsem si a mam roznake prostredi na ruznych platformach
- ma vetsinu vychytavek IDE

Nevyhody urcite napisou do diskuze ostatni.

Eclipse je bieda. Ale poriadna bieda. UI je najhoršie, aké poznám. (Keď sa vám otvorí, zakryje
celú obrazovku, pretože tam natrebali bezhlavo stovky rôznych options.) Je to príšerne
zabugovaný soft. Eclipse pre GUI používa knižnicu SWT, ktorá oproti Swingu je tenkým obalom
nad GTK, Windows API a Cocoa. Udržiavať taký shit musí byť peklo. Nuž ale posúďte sami:

Stiahnite si zo stránky https://bugs.eclipse.org/bugs/buglist.cgi?component=SWT
CSV súbor bugs-2020-11-01.csv.

$ grep '"ASSIGNED"|"REOPENED"|"NEW"' bugs-2020-11-01.csv | vim -

Otvoríme si vyfiltrované žijúce bugy v editore VIM. Pomocou G príkazu sa bleskovo
dostaneme na koniec editora; úctyhodných 1637 bugov.

:%! sort -t, -k8,8

Pomocou tohoto príkazu priamo zosortujeme naše dáta podľa dátumu; najstarší bug je z júla
2011. Mnohé bugy sú typu otvorím file dialog a Eclipse padá, Eclipse spadne pri otvorení
HTML súboru; množtvo bugov spôsobuje zamŕzanie a spomalenie systému, či krach JVM.

Eclipse občas použijem pri hromadnej úprave HTML súborov. Tá funkcionalita síce vyzerá
strašne, ale je funkčná. Inak to neotváram ani za svet.

VS Code mám rád, avšak jeho filozofia Editor pre všetko ho odsudzuje na
VS Code Always Beta.

Stran: [1] 2 3