← Return

Useful

A Gift

The Internet was choppy when I stayed out of town. Completing courses had become my morning routine. A library of books and video courses was granted to me by a gift to O'Reilly by the first team I managed.1 The majority of videos, I noticed, were narrated slides, having watched a few full courses worth on different topics.2 Every slide without an image to be described by the narration just had a transcript of the spoken audio.3

The text in the video was often something I needed to search or copy down, but there were no video notes.4 Hyperlinking from content in my browser required hand typing. I could mimic these videos with a web app, it occurred to me, and with infinite screen scaling, interactivity, and way lower bandwidth.5

A New Language

I had at one time experimented with creating minimal declarative languages, inspired by countless of examples of document layout systems.6 I figured I could give this task to an LLM to design and write, as it's not super-easy to devise a tidy language and parser, but there's enough examples for one to have likely trained on the pattern.7

Features

The result was exactly what I had imagined, after iterating the workflow and export system.8 It includes some really nice features:

I created some pro-Useful propaganda to share on LinkedIn and such. My plan is to flesh out the project, create some more example videos, and use Useful for tutorials in future projects.

  1. It's a great gift, and I really enjoyed all the different topics I've been able to explore.
  2. Occasionally, there might be a cut to the speaker, but I found this to be unncessary filler. Also, some were narrated by TTS!
  3. Motion graphics helped the visual, and occasionally the visual was the information itself (e.g. a photo, a diagram).
  4. Not to mention streaming often bumps down your resolution if you have a slow connection - basically everything in the video becomes illegible, but video streaming platforms often don't offer an audio-only stream.
  5. I had been experimenting with TTS and video generation. I'm surprised there's not a standard format for producing content this way yet. The bandwidth requirements for video are crazy and it's just not a great format for a lot of the content it's currently used for.
  6. I had created a variety of languages and parsers during a period where I was interested in hypertext and the markup that produces it.
  7. And... the rest of the project as well.
  8. I leveraged another project I created to serve as the TTS system.
  9. You can copy the text right out of the "video" and fix incorrect content without having to re-cut and re-render anything: search and replace.