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 ... 22
1
Windows a jiné systémy / Re:Vlastnosti macOS pro linuxáka
« kdy: 07. 11. 2025, 00:37:55 »
Já jsem si koupil nový MacBook s M1, ale z toho systému bych se osypal, takže jsem jej dal na používání dětem, kteří si na tom pouští pohádky.

Problém není při práci v konzoli, ale to grafické prostředí je příliš jiné.  Já jsem zvyknutý pracovat s i3wm a to tam nejde snadno zprovoznit a přehazovat se v oknech jak to dělají ostatní mi přijde jako krok zpět. Překvapivě mi i přišlo, že spousta věcí je složitější a nejsou tak elegantní jako v Linuxu. Např. repozitáře programů k instalaci nejsou úplné a je mnohem častěji potřeba instalovat stahováním někde z webových stránek.
Děti asi také půjdou brzy na Linux a ten notebook dám úplně pryč.

Jediná výhoda je kvalitní hardware, nízká spotřeba a dlouhá výdrž baterií. Ten systém ale není pro každého a hrozí, že když si něj zvyknete, nebudete se cítit doma zase třeba v Linuxu nebo Windows.

A je problém tam hodiť  Linux alebo FreeBSD? Majú to tam nejako zablokované.

Ja teda neviem tiež uvažujem nad Macom, ale primárny OS  by som chcel:

1. FreeBSD
2. Windows 11 (.NET vývoj)
3. Mac OS možno na hrajkanie sa s Mac only technológiami (Swift)

2
Vývoj / Re:zobrazenie obrázkov z DB na webe bez koncovky.
« kdy: 07. 11. 2025, 00:24:33 »
AI mi radí použiť k SQL Serveru ešte noSQL

Redis, Memcached, atď

Ale ja neviem je to dobrý nápad? neni to kanón na vrabce? Ono by sa to dalo použiť neskôr aj na iné optimalizácie nie?

3
Vývoj / Zobrazenie obrázkov z DB na webe bez koncovky
« kdy: 07. 11. 2025, 00:19:45 »
Ahojte v mojej web platforme ukladám obrázky do DB. Mám tam aj plnú velkosť obrázka a k tomu dva náhľady v rôznych velkostiach (MD, SM, Full):
Hlavný obrázok je uložený v takom formáte v akom ho nahral užívateľ (v prípade, že ide o webový formát teda webp, jpeg, png, gif, avif ak to neni webový formát napr psd, raw alebo tiff systém si ho skonvertuje do webp a uloží) a k nemu je v tabulke stĺpec contentType aby sme vedeli aký formát obrázok používa.
K databáze som spravil ImageCacheService ktorý tieto obrázky lazy metódou ukladá do filesystemu a keď treba posiela ku klientovi (je to rýchlejšie ako priamo select do db). Ak je v DB novší obrázok ako je dátum obrázka na disku obrázok sa prepíše verziou z DB. názvy obrázkov sú GUIDy tiež z DB tabulky a k nim som pridal extension (podla formátu) nakoľko súbory majú extension http server ich posiela so správnym mime type. Premýšlam ale že tie extensions vypnem. Aby som prípadným zlodejom podľa možnosti skomplikoval sťahovanie obrázkov. Viem že to neni veľká kompikácia (preto tam davam aj vodoznak atd) ale bol by som rád keby moje obrázky vyzerali takto:

Kód: [Vybrat]
<img src="5b17f8185e71449983e3600a0c2d8527">
a nie takto:

Kód: [Vybrat]
<img src="5b17f8185e71449983e3600a0c2d8527.webp">
ide len o to že tie mime types sú v DB a ja som robil cache koli tomu aby som nerobil zbytočne veľa prístupov do DB, keď koncovku vypnem, ako zistím mimeType obrázka? Mám si urobiť nejakú ďalši in-memory cache na mimeTypes? Alebo na to použijem noSQL databázu. Keby išlo o malý web tak to vyriešim nejakým actorom s ConcurrentDictionary. Ale na webe budú možno aj 10tky miliónov obrázkov. Takže potrebujem riešenie ktoré do pamate načíta tie obrázky ktoré sa bežne načítajú a tie ostatné čo sa málo používajú, by mohol postupne čistiť garbage collector. Určite nechcem všetko v pamati.

4
Vývoj / Re:F# pomenované typy v typovej signatúre funkcie
« kdy: 06. 11. 2025, 23:57:09 »
no jazyk to podporuje, ale vyzerá, že editor nie (podporuje pri discriminated unions, ale už nie pri typoch funkcie čo je divná nekonzistencia):

Explicitně předat ty parametry nechcete? Takto:

Kód: [Vybrat]
let findUniqueName nameExists name = findUniqueName' 0 nameExists name

To je totiž jediné, kde mi IDE zachová i jejich jména. Nejspíš se oboje i trochu jinak překládá. A pak z pohledu typového systému to moje je hodnota (value) a to vaše ne (částečné aplikace funkcí nejsou hodnoty kvůli value restriction - nesmí se totiž generalizovat).

dakujem za informacie. možno v ďalšej verzii s tým niečo spravia.

5
Vývoj / Re:F# pomenované typy v typovej signatúre funkcie
« kdy: 04. 11. 2025, 20:18:54 »
F# ma oproti OCAML taku vymoženosť, že si viem pomenovať typy parametrov aj vrámci typovej signatúry funkcie

No, v F# se to pojmenování na rozdíl od OCamlu snadno ztratí. Když použijete labelled parameter v OCamlu, tak argument musí být labelled (např. když deklaruji let rec range ~first:lo ~last:hi = ..., tak to musím volat range ~first:1 ~last:10 a nejde range 1 10)


Čekal bych, že když findUniqueSlug bude funkce, tak by to mohlo fungovat (ale AFAIK není to nic, co by bylo garantováno specifikací jazyka):

Kód: [Vybrat]
let findUniqueSlug slugExists slug = findUniqueName' 0 slugExists slug

no jazyk to podporuje, ale vyzerá, že editor nie (podporuje pri discriminated unions, ale už nie pri typoch funkcie čo je divná nekonzistencia):





lebo už som sa pýtal aj AI a nič mi neporadila. v špecifikácii to možno nie je, ale bolo by fajn keby pridali podporu predsa len aj na úrovni editorov / IDE. Lebo ozaj keď niektoré veci nie sú pomenované tak to je násobne menej prehľadné.



6
Vývoj / F# pomenované typy v typovej signatúre funkcie
« kdy: 04. 11. 2025, 18:32:08 »
F# ma oproti OCAML taku vymoženosť, že si viem pomenovať typy parametrov aj vrámci typovej signatúry funkcie

Kód: [Vybrat]
type foo = bool -> bool
vs.
type foo = isEmpty:bool -> bool

alebo pri algebraických typoch:

Kód: [Vybrat]
type Person =
| Man of name:string * age:int
| Woman of name:string * age:int * cupSize:CupSize


pri typoch tagu v dicriminated unions to vieme pomenovať a zobrazí to aj autocomplete, lenže skúšam pomenovať funkcie vrátené po curryingu a tam to dáko autocomplete nezobrazí, nemáte pls tip či sa to nedá nejako ohackovať? Lebo tu je konktrétny príklad z praxe:

Kód: [Vybrat]
module Name

let rec private findUniqueName' (index : int) (exists : string -> bool) (name : string) =
    let newName = if index = 0 then name else $"{name}-{index}"
    if exists(newName)
    then name |> findUniqueName' (index + 1) exists
    else newName

// typy explicitne netreba uvadzat ale chcem to mat pomenovane koli autocomplete:
let findUniqueName : nameExists:(string -> bool) -> name:string -> string = findUniqueName' 0

let rec private findUniqueSlug' (index : int) (slugExists : string -> bool) (name : string) =
    name
    |> _.ToSlug()
    |> findUniqueName' 0 slugExists

let findUniqueSlug : slugExists:(string -> bool) -> slug:string -> string = findUniqueSlug' 0

7
Vývoj / Re:Typescript module vs namespace
« kdy: 14. 10. 2025, 16:23:30 »
ale už sa k tejto téme nejdem vyjadrovať odpoveď na nastavenie tslintu som sa nedozvedel, ale už vidím že sa tu schyluje ku flame a na to fakt nemám čas.

8
Vývoj / Re:Typescript module vs namespace
« kdy: 14. 10. 2025, 16:19:26 »
Termín "module" už má v ECMAScript-e svoj význam a TypeScript ho len rešpektuje (t.j. ES6 prípadne CommojJS modules). Preto sa táto ďalšia/iná vlastnosť volá "namespace" a príde mi to ako technicky presné pomenovanie.

Citace
Každopádne v TS je modul synonimum pre namespace

Nie je, sú to dve odlišné veci. Možno ťa mýli, že pred dávnymi rokmi sa terminológia TypeScript-u trochu líšia, ale to je fakt dávno.

Citace
v iných jazykoch je NS čisto len menný priestor (C++, C#).

Takto ho vnímam aj v TypeScript-e.

Citace
A modul je skutočne element jazyka, ktorý sa stará aj o viditelnosť (exporty) taktiež modul môže byť v jednom súbore len jeden zato namespace môže byť rozdelený do viac súborov.

Takto to v TypeScript-e je.

Ale možno mi len niečo uniká, namespaces vôbec nevyužívam.

v TS nie su odlisne. Ale semanticky je to nezmysel.

>> Takto ho vnímam aj v TypeScript-e.

menný priestor nemá riešiť viditelnosť (exporty), a má byť možné ho definovať vo viacerých súboroch. namespace v TS neni možné definovať vo viacerých súboroch a obsahuje exporty, teda to neni skutočný menný priestor ale modul. TS skutočné menné priestory neobsahuje obsahuje len moduly pomenované menný priestor.

keď si trabant microsoft premnuje na lambo tak stále to bude trabant a nie lambo :D

9
Vývoj / Typescript module vs namespace
« kdy: 12. 10. 2025, 20:16:32 »
VSCode resp tslint mi zakazuje používať keyword module. Pritom celé JS / TS je o moduloch. Nameisto modulu mi to vnucuje keyword namespace.
Každopádne v TS je modul synonimum pre namespace (čo je úplná absurdita vymyslená Microsoftom), v iných jazykoch je NS čisto len menný priestor (C++, C#).
A modul je skutočne element jazyka, ktorý sa stará aj o viditelnosť (exporty) taktiež modul môže byť v jednom súbore len jeden zato namespace môže byť rozdelený do viac súborov.
Potom sú jazyky ktoré majú aj moduly s parametrickým polymorfizmom, ale to teraz nejdem riešiť. Proste modul má bližšie k static class ako ku namespace. Z tohto pohľadu ide v TS o moduly a skutočné namespaces TS ani JS nemá. Inými slovami chcem používať kľúčové slovo module. Ako to mám povoliť? Tipy od AI nefungujú.

10
Vývoj / Re:.NET F# SQLProvider - leftOuterJoin
« kdy: 22. 09. 2025, 22:45:23 »
Používá se kombinace join ... into a DefaultIfEmpty().

Hej presne, ten druhy pripad. zial SQLProvider ho nepodporuje.

Ale uz som sa zbavil SQLProvidera nebudem pouzivat taketo obskurne knniznice. Boli s nim aj ine problemy. Napriklad ze connectionString cital z Web.config ktory uz ale nova verzia ASP.NET Core nahradila appstettings.json

Nakoniec som pouzil normalny EntityFrameworkCore, sice teraz tam mam este dalsi medzikrok a po zmenach v DB musim generovat entity, ale aspon pouzivam dobre odtesovanu kniznicu a nie nejaky one man show.

11
Vývoj / .NET F# SQLProvider - leftOuterJoin
« kdy: 22. 09. 2025, 16:56:24 »
Ahojte pouzivam v jednej F# appke SQLProvider

https://fsprojects.github.io/SQLProvider/

na pristup k DB. Funguje to krasne a mozem zapisovat dotazy priamo v jazyku F# co je fajn, lebo nemusim nic escapovat a mam to pekne v jednom jazyku (F#). Klasicky (inner) join sa robi takto:

Kód: [Vybrat]
query {
    for country in dc.Dbo.Countries do
    where country.IsEnabled
    join city in dc.Dbo.Cities on (country.Id = city.CountryId)
    sortBy country.Name
    thenBy city.Name
    select (country.Id, country.Name, city.Id, city.Name, city.IsCapital)
}

ale ako zapisat leftOuterJoin? LINQ pre F# normalne podporuje keyword leftOuterJoin, ale zda sa ze SQL Provider pre MS SQL ma s tymto zapisom problem. Skusal som toto:

Kód: [Vybrat]
query {
        for country in dc.Dbo.Countries do
        where country.IsEnabled
        leftOuterJoin city in dc.Dbo.Cities on (country.Id = city.CountryId) into cities'
        for city' in cities'.DefaultIfEmpty() do
        sortBy country.Name
        thenBy city'.Name
        select (country.Id, country.Name, city'.Id, city'.Name, city'.IsCapital)
}

A hadze mi to runtime error:

Kód: [Vybrat]
System.Exception: 'unrecognised method call value(FSharp.Data.Sql.Runtime.QueryImplementation+SqlQueryable`1[FSharp.Data.Sql.Common.SqlEntity]).GroupJoin(value(FSharp.Data.Sql.Runtime.QueryImplementation+SqlQueryable`1[FSharp.Data.Sql.Common.SqlEntity]), country => country.GetColumn("Id"), city => city.GetColumn("CountryId"), (country, cities') => new AnonymousObject`2(Item1 = country, Item2 = cities'.DefaultIfEmpty()))'
Ako sa teda zapisuje leftOuterJoin pre SQL Provider? Ci mam v DB spravit View a az na ten sa dotazovat? Ale nechce sa mi verit ze by SQL Provider leftOuterJoin a rightOuterJoin nepodporoval. Ved to je uplne zakladna vec pre kazdu DB.

12
Vývoj / Re:Konfiguračný formát: *.conf
« kdy: 30. 07. 2025, 11:57:10 »
rc.conf je sh skript, loader.conf umí jen přiřazení hodnot se syntaxí kompatibilní se sh, jail.conf je interní formát jailu. Ke všem třem jsou manuálové stránky a ke všemu ve FreeBSD jsou zdrojáky.

aha tak to je kazde iny format? ja som myslel ze to je jeden univerzalny, len ohnuty pre konkretne potreby kazdej aplikacie. Tak asi sa tymi konfigmi inspirujem a spravim nejaky format ktory bude podporovat veci ktore vidim napriec vacsinou konfigurakov roznych aplikacii. lebo fakt mi ta syntax pride citatelnejsia ako nejake TOML

13
Vývoj / Konfiguračný formát: *.conf
« kdy: 30. 07. 2025, 00:32:05 »
Ahojte vo freebsd je pekný, prehľadný a funkciami nabitý formát konfiguračných súborov s koncovkou *.conf (rc.conf, loader.conf, jails.conf atď).
Podľa mňa je tento formát oveľa čitateľnejší ako nejaké toml, ini, yaml, xml atď. Taktiež je výborne štrukurovaný a má bohaté možnosti aké som v iných formátoch nevidel. Ale čo to je vlastne za formát? Má nejakú špecifikáciu? Dá sa k nemu zohnať parser?

14
Software / Tlač na rôzne druhy textilu - software na design
« kdy: 06. 03. 2025, 20:58:36 »
Ahojte viete poradiť nejaký software určený na návrh potlače už hotových textílií?

Boli mi poradený NedGraphics a C-Design Fashion. Zatiaľ to pozerám len chvíľu, ale už na prvý pohľad mi udrelo do očí, že nikde neni cena produktu. Nehovoriac o tom, že asi by som sa do toho softwaru musel zaškoliť čo ma bude stáť veľa času a peňazí, školenia na to asi nie sú bežne dostupné, takže asi bude lepšie vybrať menej špecializovaný SW.

Z klasických softwarov mi AI doporučila Blender. Myslíte že je to dobrý nápad naučiť sa Blender aspoň na základnej úrovni a potom si potlač navrhovať cez tento software?

Predstavujem si to tak že by som kúpil 3D scanner a vybral gildan oblečenia ktorý chcem potlačiť (nohavice, triko, košeľa, kabát, mikina) a ten by som nascanoval ako 3D model a potom by som v illustratore + mozno obcas photoshope vytvoril nejaký vektor a ten by som preniesol ako textúru na ten 3D model. Samozrejme sú rôzne techniky tlače či tvorby nášivok, to ale teraz neriešme, najprv chcem pochopiť základný proces výroby potlače oblečenia a potom budem pridávať rôzne ďalšie techniky, prípadne aj tvorbu strihov atď.

mimochodom blender vraj dokáže aj simulovať rôzne druhy látok.

15
Vývoj / Re:Proč se cpe JavaScript na backend?
« kdy: 07. 02. 2025, 15:13:52 »
V TypeScript-e som takéto reflexie nikdy nepotreboval. Veci tam do seba pekne zapadajú už v compile time vďaka vlastnostiam ako discriminated unions alebo type predicates.

Uf brzdi to nekritické nadšenie, všetko má svoje plusy aj mínusy, nechápem ľudí ktorí sa tie mínusy snažia nevidieť. To, že si niečo nepotreboval neznamená, že to nepotrebujú ostatní. Tu ide o to aby som ten typ dal zistiť a checkovať rovnako v compile time ako aj v runtime (tak ako to umožňujú skoro všetky hi level kompilované jazyky). Lebo dajme tomu mame funkciu:

Kód: [Vybrat]
type LedColour = 'red' | 'green' | 'blue';

function lightUpTheLed(color: LedColour) {
    ...
}

lightUpTheLed("yellow"); // tu mi kompilator vyhodi chybu

const ledColour = await (await fetch('/api/get-color')).json<LedColour>(); // vrati "yellow"

lightUpTheLed(ledColour);

v poslednom riadku mi hodnota "yellow" prejde a celé sa mi to zosype až v tele funkcie, nevyskočí mi žiadna exception o nesprávnom type argumentu, runtime nevie kde nastala chyba - IDE mi neoznačí argument funkcie ako chybový. Načo je potom taký deravý typing? Ako pomáha to, ale často tá schýza vedie skôr k pocitu falošného bezpečnia.

Potom keď chcem napísať ORM framework, service kontainer, alebo validovať restové apiny, tak sú mi typescriptové typy na dve veci. A potom vznikajú projekty ako https://github.com/gcanti/io-ts Kde si type checker píšem v novom DSL, nestačí mi na to jeden jazyk (typescript) potrebujem extra DSL s novou syntaxou zápisu typov, ktorý pokrýva len malú podmnožinu typingu TS, aby javascript runtime konečne rozumelo tomu istému čo som už raz vyjadril v TS.

Môj názor je presne opačný - ak potrebujem reflexie, aby som v runtime zistil typ objektu, tak je to nedostatok daného jazyka (prípadne nevhodný návrh kódu). TypeScript je pre mňa dôkaz, že sa to dá urobiť bez reflexií, jednoducho, čitateľne a v compile time.

píšeš to ako keby reflexia bolo niečo desivé:

Kód: [Vybrat]
var text = "ABC";
text.GetType().Name // vrati nazov typu premennej "text" ako "string";

Je na tomto niečo desivé? Nehovoriac o tom, že tú reflexiu / introspekciu najčastejšie používa priamo runtime keď ťa upozorní na chybu. Málokedy narazíš na situácie keď sa musíš na typy dopytovať sám (aj keď občas sa to hodí).

Stran: [1] 2 3 ... 22