studio status report: 2023-12
month 12 of 2023 was about releasing Songhay.Modules
6.40 and refreshing knowledge of Azure WebJobs
As mentioned last month, the other ‘half’ needed to completely replace http://kintespace.com/player.html
includes:
And Songhay.Modules
release 6.4.0 📦🚀 [GitHub] was on the list above. Songhay.Modules
6.4.0 is published/released [NuGet]✅ The feature of this release is my new models, AppStateSet
[GitHub] and AppStateHashSet
[GitHub]. We can see AppStateSet
in action on the Studio Floor of the Songhay.Modules.Bolero
repo. These changes to the Studio Floor are part of Songhay.Modules.Bolero
release 6.4.0.
The Obsidian graph of this month is much smaller than previous months:
The smaller size should be due to me dialing down major day-job discoveries. This month only has one major discovery: a renewal of interest in Azure WebJobs (which I defiantly write as Azure Web Jobs). I have dedicated an entire Blog post, “Azure WebJobs in 2023,” to this renewal.
Here are the usual Obsidian notes highlights for the month:
“Dapper vs Entity Framework (EF6 or EF Core)”
- Dapper: Give you full control over the SQL generated / uses stored procedures for everything.
- Entity Framework: Allow you to code with
LINQ
and forget everything about SQL.
[[Docker]]: running the ‘interactive terminal’❓ of the image
Here is a command from [[dotnet]] conf 2023:
$ docker run -it -rm --entrypoint /bin/bash hello-dotnet:latest
[[Microsoft]] starts talking about [[WebAssembly]] on the server in the cloud 🌩
The promise on the horizon is being able to take an existing .NET app or library and compile it to a Wasm target. Our design instinct is to implement WIT interfaces relatively high into the .NET stack (like create an ADO.NET Data Provider for
wasi-sql
), which would enable existing code (including many existing NuGet packages) to just work, particularly for code without native dependencies.
[[Songhay System]]: “Why Nigerian filmmakers are skipping Netflix to go straight to YouTube”
He and Yekini are among a growing crop of filmmakers in Nigeria — home to Nollywood, Africa’s largest film industry with around 2,500 films produced annually — who are using YouTube as a movie streaming platform. They told Rest of World they consider it a more democratic alternative to Netflix, Prime Video, and Showmax. Uploading their content on YouTube allows them to control the distribution of their work, ==without fear of piracy.==
[[Azure Active Directory]]: “New name for Azure Active Directory”
Microsoft has renamed Azure Active Directory (Azure AD) to Microsoft Entra ID for the following reasons: (1) to communicate the multicloud, multiplatform functionality of the products, (2) to alleviate confusion with Windows Server Active Directory, and (3) to unify the Microsoft Entra product family.
F♯: String.collect
is not that useful?
According to my latest [[GitHub]] comment:
today, it looks like
String.collect
is useful as a replacement forinput.ToCharArray() |> Array.map (fun c -> c ) |> String
—https://github.com/BryanWilhite/Songhay.Modules/issues/9#issuecomment-1854403692
I should make a [[Jupyter]] note on String.collect
[📖 docs ] to verify #to-do
does “Build a Simple Markdown Blog with F# / Giraffe” mean that [[eleventy]] can be replaced?
The short answer is no. “Build a Simple Markdown Blog with F# / Giraffe” implicitly takes a dependency out on [[ASP.NET]] while [[eleventy]] has no server dependency. I would have to resort to generating static HTML files from [[markdown]], like [[eleventy]], building 🐇🕳 a system that might end up looking like:
- Fornax [🔗 GitHub ] (not really because this project does not appear to be dependent on something like Giraffe or Scriban and features the use of
*.fsx
F♯ script files) - SiteFi [🔗 GitHub ] (yes, depends on [[WebSharper]] (
WebSharper.UI.Html
) which leads to React) - FsBlog [🔗 GitHub ] (yes, but this project is quite old: it has not been touched in over seven years)
- Firm [🔗 GitHub ] (this one is even older than
FsBlog
!)
related links
- “HTML Rendering Benchmarks - Raw strings vs Scriban Templates in F#”
- “Build a simple F# web API with Giraffe”
- “ can Fornax replace eleventy?
#41
” - “Fluid is an open-source .NET template engine based on the Liquid template language.”
- “Scriban is a fast, powerful, safe and lightweight scripting language and engine for .NET, which was primarily developed for text templating with a compatibility mode for parsing liquid templates.”
- [[2023-02-21#picks from the “awesome” F♯ list]]
[[WinGet]] UI disappoints #day-job
I recall the [[WinGet]] command-line [[2023-02-04#WinGet disappoints…|disappointing]]—and [[WinGet]] UI (https://www.marticliment.com/wingetui/) merely continues the disappointment on the #day-job:
- the UI does not visualize what would be happening on the command line as effectively as [[Chocolatey]] UI
- by default, most installations are interactive, forcing the installer GUI on the user
- many installations failed
- key successful installations break things (e.g. the [[Azure CLI]] installation was broken by [[WinGet]])
- desktop notifications for package updates (even for updates that fail) annoyingly repeat
[[Nick Chapsas]] introduces the SearchValues<T>
class
SearchValues<T>
instances are optimized for situations where the same set of values is frequently used for searching at run time.
[[Firefox]] 121 promises to support :has()
As early as 2022, I was aware of the weird-ass fact that that :has()
was not supported by [[Firefox]]—and then I was aware of it again a few months ago. According to “Mozilla Firefox 121 Is Now Available for Download, Here’s What’s New”:
For web developers, Mozilla Firefox 121 brings support for the
:has()
selector by default to allow you to match elements that have at least one element matching its relative selector…
i thought critiques of REST were passé
In “It's time to put REST to rest,” the argument is calm and clear:
The fundamental issue with REST is that it defines operations that manipulate data structures. It’s about structure and structural changes, not behaviour. It’s imperative, rather than declarative.
— Michele Sollecito
“merchants of complexity” 😶🌫
DHH likened clouds to “merchants of complexity” where they are incentivized to make things as complex as possible to keep customers hooked. He compared that to the original Internet, which was not built on complex cloud services geared for multi-tenancy, but rather on simpler tools such as Linux and PHP, which anyone could use without cost.
—“‘Merchants of Complexity’: Why 37Signals Abandoned the Cloud”
sketching out development projects
The current, unfinished public projects on GitHub:
- replacing the Angular app in
http://kintespace.com/player.html
with a Bolero app 🚜🔥 depends on: - finish the “
SonghayCore
📦✨ release 6.0.5” project - start the “
Songhay.Publications.Models
6.0.0” 📦🚀 project
The proposed project items:
- add Entity Framework (over SQLite) features to
Songhay.Publications
- generate Publication indices from SQLite for
Songhay.Publications.KinteSpace
- generate a new repo with proposed name,
Songhay.Modules.Bolero.Index
✨🚧 and add a GitHub Project - switch Studio from Material Design to Bulma 💄 ➡️ 💄✨