Konečne som naškriabal nejaké zaujímavé linky. Dnes to bude od kryptografie, cez UI až po IoT.
dokan-dotnet
https://github.com/dokan-dev/dokan-dotnet
Dokan-dotnet je .Net knižnica, ktorá umožňuje vašej aplikácii vytvoriť virtuálny disk so súborovým systémom, ktorý môže používateľ normálne používať.
Využitie je potom už na fantázii - od klientov pre synchronizáciu súborov, cez vlastné šifrované disky, klienta pre NAS,…
Monocypther
Je to jednosúborová C-éčková knižnica, ktorá poskytuje známe kryptografické primitívy pre Ed/X25519, XSalsa20Poly1305,…
Nie je závislá na stdc, takže je vhodná aj pre jednočipové mikroprocesory alebo WebAssembly, malé programy, ktoré šifrujú súbory
Kvantové počítače a budúcnosť kryptografie
https://www.youtube.com/watch?v=JcfcSmwlFZ0
Prednáška z rýchlika ukazuje, ako sa budú na kvantových počítačoch lámať eliptické krivky a RSA .
Na záver je ukážka C# kódu pre použitie post-kvantovej kryptografie.
O tom ako sa šifrujú skupinové chaty
https://www.youtube.com/watch?v=FESp2LHd42U
Súčasné skupinové chaty (e2e encryption napr. v Trhemere, WatsAppe) sa šifrujú tak, že odosielateľ zašifruje správu pre každého účastníka zvlášť. Vo videu je nový spôsob ako to robiť efektívnejšie.
Od neuróniek ku GPT
https://www.youtube.com/watch?v=o9TwtMywEuI
Česká prednáška z tohtoročného installfestu o tom ako sme sa dostali od trojvrstvovej neurónovej siete ku Chat-GPT.
PupNet-Deploy
https://github.com/kuiperzone/PupNet-Deploy/
Dotnet tool pre multiplatformové vytváranie inštalátorov: appImage, msi, flatpack, deb, rpm, zip.
Parakeet
https://github.com/ara3d/parakeet
C# generátor parseru, doteraz som používal Piglet, ale o ten sa autor už príliš nestará. Parakeet vyzerá podľa dokumentácie a príkladov použiteľné a navyše má na ňom autor postavený vlastný programovací jazyk.
Avalonia UI
V zime som dosť riešil dektopové aplikácie, respektíve technológie okolo toho. Zorientovať sa vo svete dotnetových desktopových technológii v roku 2023/2024 nie je na jedno popoludnie.
Potreboval som niečo multiplatformové a dektopové, tak som siahol po Avalonia UI (UNO Platform mi hádzalo chybu už pri vytváraní projektu). Musím povedať, že som s ňou bol celkom spokojný.
Ide o multiplaformového nástupcu WPF, takže ide veľmi ľahko portovať existujúce WPF aplikácie. Funguje na Windowse, Linuxe, Mac-u z nejakými obmedzeniami aj mobilné platformy, smart-hodiny, web pre webassembly (ukážka), Meadow,…
Využíva MVVM pattern a XAML pohľady. Modely fungujú klasicky pomocou INotifyPropertyChange
, takže ich ide písať ručne, využiť ReactiveUI, alebo Community toolkit MVVM (to ide zvoliť vo wizardovi, pri zakladaní projektu).
Na tých pár projektoch, ktoré som skúšal sa mi osvedčila kombinácia Community toolkit MVVM a DryIoc.
Dokonca Avalonia UI ide spustiť na Linuxe bez desktopového prostredia a tak si vytvoriť kiosk aplikáciu (bez browsera alebo desktop enviromentu ako medzivrstvy). To som si skúšal na Raspberry pi Zero 2.
ILGPU
Ako napovedá názov ILGPU je knižnica umožňuje písať programy pre grafické karty v C#. Kernely pre grafickú kartu sa prekladajú v runtime, čo má svoje nevýhody (treba testovať), ale výhoda je, že podporuje vykonávanie pomocou Cuda, OpenCL aj CPU.
Vyzerá, že táto knižnica má väčšie možnosti ako ComputeSharp (napr. multiplatformovosť), ale je za to platené nižším pohodlím pri vývoji.
nanoFramework
https://www.nanoframework.net/
nanoFramework je platforma umožňujúca programovať embeded zariadenia (jednočipy bez operačného systému) v C#, a nie len programovať ale aj debugovať, čo je veľký posun vpred.
Pri skúšaní na ESP32 som nenarazil na problém s inštaláciou a nastavením. Pripojil som sa na Wifi, blikal LED-kou, reagoval na tlačidlá,…
No nanoFramework spôsobil zvýšenú spotrebu a zahrievanie čipu ESP32. Na čo sa sťažujú aj ľudia v diskusiách. Na výkonnejších procesoroch by tento problém nemal byť, no to neviem potvrdiť, lebo doma mám len ESP-čka.
Ako to funguje: https://docs.nanoframework.net/content/architecture/index.html.
Jint
https://github.com/sebastienros/jint
Už nejaký čas zvažujem, akú technológiu použiť na tvorbu jednoduchých pluginov: .net assembly, WebAssembly, javascript, Lua,…
V rámci bádania som narazil na Jint.
Jint je javascript interpreter pre .Net, veľkosť doľahnutých nugetov je menšia ako 1,5MB, podľa benchmarkov dobieha V8-čku. A umožňuje sandboxing a interop z C# kódom.