Týždeň 2023-18

Ach, tieto skrátené týždne ma zabijú, ale až po... Kedysi by som povedal, že až "po heslách", ale vyzerá to, že celý koncept hesiel sa zmení. Presne pred rokom som písal o FIDO a dnes to už je realita. Google predstavil Passkey a pre všetky stránky, ktoré ho podporujú, už nebudete musieť používať heslá.


Toto je sprievodná diskusia k pôvodnej téme na https://blog.vyvojari.dev/vlko-week-2023-18/
1 Like

Autogram.slovensko.digital

No pokial viem, tak ten nemenovy softver bol dospuny pre vsteky platformy (ako .Net framewrok aplikacia pre Windows a Java pre vybrane linuxy a mac) minimalne 5 rokov (tolko uz pracujem v odbore). Samozrejme o kvalitach pomlcim.

A vlastny otvoreny multiplatformovy podpisovac pre nase eID som mal este “pred tym ako to bolo cool” aj ja
https://github.com/harrison314/SlovakEidSignTool, ale z nejakeho dovodu slavny nie som :smiley:

S tým si viete podpísať dokument tzv. kvalifikovaným certifikátom. Podľa slovenských zákonov je to to isté, ako keď to urobíte ručne u notára.

To nie je celkom tak. kvalifikovany podpis zodpoveda vlastnorucnemu podpisu, notarsky overenemu podpisu zodpoveda kvalifikovany podpis s casovou peciatkou.

Doteraz ste ale potrebovali špeciálny software eID na svojom počítači,

Predpokladam ze aj stouto aplikaciu treba nainstalovat eID klienta (co je “driver ku karte”) a ovladac ku citacke.

NVIDIA uviedla kompilátor Hybridizer,…

Vdaka za typ, to si vyskusam. Podobne veci som videl aj pre OpenCL co je GPU nezavisla alternativa ku Cude a ComputeSharp (ktory pre zemnu pracuje s HLSL, takze len tam, kde mame DirectX).

Len zostava otazka, na co bezny programator vyuzije GPU?

3 Likes

Moze byt pravda, ale pocul som, ze aj ked bol dostupny, tak viac nesiel, ako isiel.

Ak myslis Dsigner, tak dostupny bol - odporucam teda pohladat jeho zdrojaky (nenajdes) alebo si pozriet jeho zmluvne podmienky (zaplaces). Pripadne skus s tym nieco podpisat lokalne (na take to domace podpisovanie). Aj toto boli motivatory, preco vyrabat X-ty podpisovac.

Ono zase konzolove aplikacie na obsluhu PKCS tu boli este pred 5 rokmi urcite, ale to asi nebude pointa.

Formalne ano, realne ak mas dokument podpisany KEP, tak casovu peciatku tam vie pridat vlastne hocikto. Co znamena, ze z vlastnorucneho dokumentu sa magickym trikom stane osvedceny podpis. Dokonca pri komunikacii s uradmi to MUSI spravit urad sam.

Zatial ano, ale uz sa chysta aj podpora pre FOSS driver, ktory ma hned niekolko zaujimavych vlastnosti. Jedna z nich je to, ze eID klient na podpisovanie vobec netreba (v skutocnosti ho treba vsak kvoli prihlasovaniu - co je ina funkcia a MV nema rado, ked to hackujes).

1 Like

Prime video prechadza na monolit

kedze k tejto teme ocakavam flamewar (na linked in som uz co to zachytil - skoro ako diskusia pod nazorovym clankom o ruskej vojne), tak som sa lepsie pozrel na to, co vlastne mali za problem a klucove su tieto dve vety:

Our service performed multiple state transitions for every second of the stream

AWS Step Functions charges users per state transition.

Okrem toho, Amazon Prime neprechadza na na monolith. Mali jeden service implementovany pomocou viacerych microservicov pomocou nevhodnej technologie. Tento service prepisali pomocou vhodnejsej technologie, to je vsetko.

Anyway, aby som prispel do flamewar, tiez si myslim, ze pojem microservice by mal byt pre juniorov zabanovany minimalne na 5 rokov

Kto by uz len rozduchaval flameware? V texte to je lepsie popisane, nadpis je len clickbait:)

Ja tiez necakam flamewar, je nas tu tri a pol cloveka.

A v tomto pripade uplne suhlasim a tiez sa mi zdalo, ze slo o specificky pripad sluzby. Aj ked sam skor fanusikom prinicpu, ze najskor monilit a ked nestaci, tak na mikrosluzby sa da rozbit lahko (pokial slovek aspon trochu dodorziava SOLID).

Ja som myslel celkovo, ze tento clanok vo svete vyvola rozruch

tak to si zase nemyslim. Poznas niekoho, kto realne prepisal monolit na mircoservices bez kompletneho prepisania aplikacie, alebo aspon backendu? ja nie.

Uz len tie sql dotazy a reporty ktore idu krizom cez vsetky subdomeny, je velmi narocne prepisat.
Nehovoriac o tranzakciach, ktore napriec microservicami nemas a musis pouzivat patterny, ktore sa nedaju 1:1 namapovat vzdy na ten isty workflow.

Poznas niekoho, kto realne prepisal monolit na mircoservices bez kompletneho prepisania aplikacie, alebo aspon backendu? ja nie.

Takto, jasne, ze ked mas bezny monolit, tak je to problem. No mal som na mysli monolit, ktory pises od zaciatku tak, aby si ho vedel refaktornut na miksorluzbu, myslim, ze sa tomu nadava modularny monolit, aj ked ja to skor povazujem za doledok pouzivania SOLID principov.

Uz len tie sql dotazy a reporty ktore idu krizom cez vsetky subdomeny, je velmi narocne prepisat.
Nehovoriac o tranzakciach, ktore napriec microservicami nemas a musis pouzivat patterny, ktore sa nedaju 1:1 namapovat vzdy na ten isty workflow.

Toto mi je jasne, s niecim takym som sa uz stretol v trosku mensej miere a prepisuje sa na dva rozne komponenty. No 80% kodu sa dalo zreciklovat. Ked sa s tym moznym prepisom nepocita, tak su to zvysene naklady.

Tato veta mi vadi:

aj ked ja to skor povazujem za doledok pouzivania SOLID principov.

V definicii monolithu je, ze databaza je rozdelena na logicke feature celky, kde nemas cross-feature joins.

Ak dodrziavas SOLID a predovsetkym to D(ry) bez toho aby si myslel na hranice modulov, tak toto nikdy nedodrzis. V modularnom monolite sa musis opakovat, robis v DB veci, ktore su v rozpore s normalizaciou, ACID a podobne.

Konkretny priklad:

Objednavas si vyrobu noveho auta na nejaky termin. Objednavka by mala prejst iba ak:

  1. Mas na sklade dostatok suciastok (Modul Warehouse) (Nesmies sa dostat do minusu)
  2. Mozes zohladnit planovane dodavky suciastok (Modul SupplierOrders)
  3. Musis zohladnit uz naplanovany objednavky aut (Modul Orders…)

V monolite by si toto robil trazakcne: Jedna tranzakcia, idealne join napriec potrebnymi datami, overenie stavu, save, commit tranzakcie.

Ak to chces robit ako modular monolith a zaroven nechces prist konzistenciu dat, resp nejake garancie (Nesmies sa dostat do minusu), tak musis pouzit patterny, ktore bud zmenia workflow, zavedu nejake nove statusy v agregatoch v jednodlivych moduloch a podobne. A to si vyzaduje mimoriadne velku disciplinu v teame.

Iny priklad - zober si taky Order Status enum, na ktory je v ERP rieseniach zvycajne naviazanej kopec logiky. Ked mas izolovane moduly, tak tuto logiku, alebo jej casti copy & pastujes napriec modulmi.

bool IsOpen(this OrderState orderState) => orderState != CLOSED && orderState != CANCELED a podobne.

Uz mi je jasne, pre co mame na to rozdielny pohlad.

Ak dodrziavas SOLID a predovsetkym to D(ry) bez toho aby si myslel na hranice modulov, tak toto nikdy nedodrzis. V modularnom monolite sa musis opakovat, robis v DB veci, ktore su v rozpore s normalizaciou, ACID a podobne.

Chapem.

Nakoniec s tebou suhlasim.

Mne sa to rozdelnie na mikrosluzby zda lahke, pretoze databazu pouzivam minimalne. Repektive ked sa pouziva tak sa pouziva na jednu izolovanu vec. Viac menej ja volam ine sluzby alebo klienti volaju mna. Preto mam to rozdelnie na bounded contexty prirodzenejsie, ako keby robim nejaku bussines aplikaciu.