Tuesday, March 29, 2022

AssemblyScript Book

Quick Start | The AssemblyScript Book


Designed for WebAssembly

AssemblyScript targets WebAssembly's feature set specifically, giving developers low-level control over their code.

Familiar TypeScript syntax

Being a variant of TypeScript makes it easy to compile to WebAssembly without learning a new language.

podcast: ACM ByteCast

 ByteCast Archive

 : Ep23 David Heinemeier Hansson

 : Ep16 Leslie Lamport

 : Ep9 Vint Cerf

 : Ep2 Donald Knuth

 : Ep1 John Hennessy & David Patterson

Sunday, March 27, 2022

JupyterBooks with MarkDown, Sphinx, MyST

Episode #354 Sphinx, MyST, and Python Docs in 2022 - [Talk Python To Me Podcast]

Gallery of Jupyter Books — Team Documentation

Paul's free Sphinx and Markdown course: training.talkpython.fm

Sphinx: sphinx-doc.org
Python documentation: docs.python.org
ExecutableBooks: executablebooks.org
Jupyter Book: jupyterbook.org
MyST parser: myst-parser.readthedocs.io
Sphinx Book Theme: sphinx-book-theme.readthedocs.io
PyData Sphinx Theme: pydata-sphinx-theme.readthedocs.io
Sphinx Themes Gallery: sphinx-themes.org
Furo Theme: pradyunsg.me
sphinx-theme-builder: github.com
Python Documentation WG issue tracker: github.com
ReadTheDocs CZI: blog.readthedocs.com
Pandoc: pandoc.org
Google circa 1996: web.archive.org
Python doc example: docs.python.org
Tailwind doc example: tailwindcss.com/docs
Typora app: typora.io
CommonMark: commonmark.org
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm

Friday, March 25, 2022

book: 24 days from node.js to Rust


PDF: From JavaScript to Rust: A Book — A book that attempts to map common JavaScript workflows to the Rust ecosystem, if you’ve been keen to pick up the increasingly popular systems language. There’s also a GitHub repo with the source for the book.


JavaScript Weekly Issue 578: February 25, 2022

24 days from node.js to Rust

Thursday, March 24, 2022

Temporal.io: Workflows-as-Code

Episode #124: Self-Provisioning Runtimes with Shawn "swyx" Wang - Serverless Chats Podcast

Shawn “Swyx” Wang is currently Head of DX at Temporal.io, based out of Seattle. He is also a frequent writer and speaker best known for the Learn in Public movement and recently published The Coding Career Handbook with more advice for engineers going from Junior to Senior.
Twitter: @swyx
LinkedIn: https://www.linkedin.com/in/shawnswyxwang/
Website: https://www.swyx.io/
Github: https://github.com/sw-yx
YouTube: https://www.youtube.com/swyxTV
The Swyx Mixtape: https://swyx.transistor.fm/
The Self-Provision Runtime: https://www.swyx.io/self-provisioning-runtime

3 core opinions: Orchestration, Event Sourcing, and Workflows-as-Code.

The prototypical workflow state machine is a JSON or YAML file listing a sequence of steps. But this abuses configuration formats for expressing code. it doesn’t take long before you start adding features like conditional branching, loops, and variables, until you have an underspecified Turing complete “domain specific language” hiding out in your JSON/YAML schema.

    "first_step": {
      "call": "http.get",
      "args": {
        "url": "https://www.example.com/callA"
      "result": "first_result"
    "where_to_jump": {
      "switch": [
          "condition": "${first_result.body.SomeField < 10}",
          "next": "small"
          "condition": "${first_result.body.SomeField < 100}",
          "next": "medium"
      "next": "large"
    "small": {
      "call": "http.get",
      "args": {
        "url": "https://www.example.com/SmallFunc"
      "next": "end"
    "medium": {
      "call": "http.get",
      "args": {
        "url": "https://www.example.com/MediumFunc"
      "next": "end"
    "large": {
      "call": "http.get",
      "args": {
        "url": "https://www.example.com/LargeFunc"
      "next": "end"

This example happens to be from Google, but you can compare similar config-driven syntaxes from ArgoAmazon, and Airflow. The bottom line is you ultimately find yourself hand-writing the Abstract Syntax Tree of something you can read much better in code anyway:

async function dataPipeline() {
	const { body: SomeField } = await httpGet("https://www.example.com/callA")
	if (SomeField < 10) {
		await httpGet("https://www.example.com/SmallFunc")
	} else if (SomeField < 100) {
		await httpGet("https://www.example.com/MediumFunc")
	} else {
		await httpGet("https://www.example.com/BigFunc")