{
  "path": "/3mepmuhkcvk2o",
  "site": "at://did:plc:73xkqje76lj5tostbsqa74b7/site.standard.publication/3me2zlma6pc25",
  "tags": [
    "zen",
    "computing"
  ],
  "$type": "site.standard.document",
  "title": "Coding with Zen",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "019c51ba-eb6b-7112-8903-e7c5bf62799d",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 37,
                    "byteStart": 29
                  },
                  "features": [
                    {
                      "uri": "https://www.codewars.com/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Recently, I tried to code on Codewars with a Zen attitude. It didn't work out, since the Koans on there are too short to be a useful Zen practice."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 80,
                    "byteStart": 54
                  },
                  "features": [
                    {
                      "uri": "https://wiki.libsdl.org/SDL3/CategoryVideo",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Then, I started a multimedia game practice with SDL3. The official documentation rewards slow and meticulous thinking. I wanted to use OpenGL ES 3, but I can't find a way to let SDL to specify exactly this OpenGL version. In the end, I opted for the SDL3 render module."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "After viewing the SDL3_net module, I understood that making a cross-platform game is not easy."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Even if I don't know what to do, if I fill in the details one by one, I can achieve the end goal, albeit slightly different."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Click the button below to see my work in progress:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "url": "https://tangled.org/1a-insec.net/zen-garden",
              "text": "See project",
              "$type": "pub.leaflet.blocks.button"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "I think I need to come up with an idea first..."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "The design philosophy of Zen garden"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 46,
                          "byteStart": 7
                        },
                        "features": [
                          {
                            "$type": "pub.leaflet.richtext.facet#italic"
                          }
                        ]
                      }
                    ],
                    "plaintext": "留白 (this line is intentionally left blank)"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "顺势 be one with the terrain before it has become a garden"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "承扬 learn the local tradition and build on it (one such tradition is  API provided by SDL)"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "静心 be a place for people to escape from busy work"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "自然 asymmetry, imperfection"
                  },
                  "children": []
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "About having fun"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 71,
                    "byteStart": 27
                  },
                  "features": [
                    {
                      "uri": "https://youtu.be/bGsl3kvntbE?t=209",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "In the end, I learned from a talk on how to make games while having fun that the process should be fun as well!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Summary of the talk: do things that are easy and not obvious."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "The Zen philosophy says: if you feel stress while doing something, you are doing it wrong."
            }
          }
        ]
      }
    ]
  },
  "publishedAt": "2026-02-13T04:05:23.437Z"
}