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 includes:

  • Songhay.Modules.Bolero release 6.4.0 📦🚀 [GitHub]
  • Songhay.Player.YouTube release 6.3.0 📦🚀 [GitHub]

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:

Obsidian graph of this month

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

.NET Containers advancements in .NET 8 | .NET Conf 2023

.NET Containers advancements in .NET 8 | .NET Conf 2023

[[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.

—“Extending WebAssembly to the Cloud with .NET

[[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.==

Damilare Dosunmu

[[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.

—“New name for Azure Active Directory

F♯: String.collect is not that useful?

According to my latest [[GitHub]] comment:

today, it looks like String.collect is useful as a replacement for input.ToCharArray() |> (fun c -> c ) |> String

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?

Build a Simple Markdown blog with F# / Giraffe

Build a Simple Markdown blog with F# / Giraffe

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

[[WinGet]] UI disappoints #day-job

I recall the [[WinGet]] command-line [[2023-02-04#WinGet disappoints…|disappointing]]—and [[WinGet]] UI ( 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

The New Best Way To Search for Values in .NET 8

The New Best Way To Search for Values in .NET 8

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 with a Bolero app 🚜🔥 depends on:
    • completing the Songhay.Modules.Bolero release 6.4.0 📦🚀 project
    • starting the Songhay.Player.YouTube release 6.3.0 📦🚀 project
  • 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 💄 ➡️ 💄✨