studio status report: 2023-02

month 02 of 2023 was still about slow progress on Songhay.Player.ProgressiveAudio and loads of research

The “Songhay.Player.ProgressiveAudio release 6.0.0” project is still underway in large part because I spent at least 15 hours this month watching three different play-throughs of the Dead Space remake. The Gab Smolders play-through gets my award as the other dudes I watched were seasoned veterans of gaming but not as seasoned as Gab when it came to the Dead Space universe.

Anyway, there were a few more non-day-job hours left in the month which allowed me to complete all three of the Player samples (in HTML):


Visually, we have these three bits:

play/pause control volume control MP3 playlist

It was important to do this work in ‘pure’ HTML (and plain-vanilla JavaScript) get rapid feedback during development and to see just how little (or how much) JavaScript is needed for the world Web Assembly (Bolero).

“sorting Blazor, Photino, Uno and Avalonia”

This juggling of UI technologies leads to the ‘loads of research’ mentioned above—and there should be separate blog post entitled “sorting Blazor, Photino, Uno and Avaloniacoming out soon to delve into what I regard as the state of the art. A sharp eye should be able to find Blazor, Photino, Uno and Avalonia in the Obsidian graph of the month:

the Obsidian graph of the month

Selected notes from the month follow:

[[Bolero]]: my bug fix was released two weeks ago!

Loïc Denuzière merged a fix for my bug in month 11, last year—but there was no release picking up these changes until two weeks ago. This means I have update my [[Bolero]] packages #to-do

yes, [[Avalonia]] has a Material Design package


[[Songhay Publications]]: comics nerd verifies that Amazon has effectively destroyed Comixology, specifically its guided view player

WTF AMAZON!!! || How To Read Digital Comics Without Comixology

WTF AMAZON!!! || How To Read Digital Comics Without Comixology

A video from Pipeline Comics introduces me to is the French version of rolling one’s own comic publication platform—and their YouTube channel is packed with trailers for comics:

Betty Boob - Trailer

Betty Boob - Trailer

[[Songhay Player for Progressive Audio]]: the Presentation type looks smaller today

type Presentation =  
        id: Id  
        title: Title  
        cssVariables: CssVariable list  
        parts: PresentationParts  

PresentationParts has absorbed some properties:

type PresentationParts =  
    | CopyRights of Copyright list  
    | Credits of RoleCredit list  
    | Description of Description  
    | Pages of string list  
    | Playlist of (Title * Uri) list

This move was done after studying how “Grouping with Discriminated Unions” works.

can the PresentationParts type describe streaming media?

Today, the PresentationParts type has Pages and Playlist—for streaming media I would flippantly assert the Chapter.

Does the Chapter have enough expressive power to describe, say:

  • MPEG-DASH segments [📖 docs ]
  • ‘chunks’ of TTML [📖 docs ]

[!warning] What might be a problem is the horizontal aspect of a Presentation Part while there might be a need to express the vertical aspect of a Presentation Layer.

Today, I assume that Presentation layers can be derived from Presentation parts. This implies that all layers of a Presentation can be broken down into parts—and the strategy for breaking a layer down will always involve time (SMPTE timecode [📖 docs ] ?), temporal coordination.

“GraphQL is a hot smoking pile of garbage”

“JSON based SQL insertion attacks”…?

Because securing a GraphQL endpoint, is probably equally difficult as it is to implement a real software development solution, with business logic on the server, and validation and security on the server – Where it belongs. Exposing GraphQL endpoints to anybody but yourself, and/or the sys-admin of your app, is probably only slightly more secure than providing a text area in the public parts of your website, with a placeholder saying; “Provide SQL here …”.