Support for resource extraction from 16-bit executables, parsing of old WinHelp files, and a couple of associated image formats (MRB, SHG, DIB) for #dotnet (written in a crazy mix of #csharp and #fsharp), all under the almighty MIT license.
I use these libraries to remake old games, but maybe others will find them useful for something, too.
@SchlenkR
attracted the largest live audience to date.
But don't despair if you weren't able to attend: All our sessions can be found on youtube: https://youtube.com/@amplifyfsharp
Well! I have to say, kudos to the #winrt projection team from microsoft and #dotnet using the winrt api from both #fsharp and #rust is nearly the same
In this case I'm just using the Windows.Security.Cryptography.DataProtection namespace to read a file using the winrt api (I could use bcl/std apis I know) convert it into a stream, use the DataProtection apis to encrypt the file, the encrypted file gets saved as a new file (so I can see it rather than just do it to the same file) and then decrypt that file into a new one which technically is just a copy of the first one but after encryption/decryption :)
I bet you #dotnet folks didn’t know that raw string literals could have any number of double quotes. As long as the starting number matches the ending number, you have a valid raw literal string.
Do you think using #fsharp is somewhat niche?
Well... I got you a real niche!
Recording with your camera using #WinRT APIs with @avaloniaui
as your window handle provider from F# 😅
I should technically be able to use MAUI or other windows desktop solution (WPF or WinForms) but I figured that If Avalonia (which works wonders with F#) could give me a window handle that's all I needed.
So yeah... any time you feel you think desktop and servers with F# is niche, remember there's a dude trying out WinRT APIs with F# and a cross-platform framework
If you ask me "Why not MAUI"? I'd answer:
I don't know, does it even support F#?
Feel free to poke me with a sample with it I'll happily try it out :)
We have static #programming languages that are both adequate for the server-side and can target the client-side (Javascript, WASM, native, etc), such as #Scala, #Kotlin, #Rust, #FSharp, #Typescript.
The biggest advantage of using the same language is that you can share code, starting with the data models, alongside serialization, and parsing/validation rules. The API can thus be easily kept in sync, and a server-side test is also relevant on the client-side.
I think I quite like #kotlin (at least, as far as language and tooling… jury’s still out on the larger ecosystem). It sits comfortably in-between #csharp and #fsharp, and without any of the eye-roll-inducing quirks of #rustlang.
Mayhaps I’ll keep with it for a while… maybe I’ll even do a blog post 😮 (but probably not😅).