YESH
BLOG BOOKMARKS
Offline Blog Index All Bookmarks
<

August 11, 2025

4 links
>
  • Eskil Steenberg – You should finish your software – BSC 2025 - YouTube
  • How I program C - YouTube
  • Where do I get all my ideas? - YouTube
  • Architecting LARGE software projects. - YouTube
    📝 Notes
    # 1) Optimize for what *lasts* * **Goals:** dependability (doesn't break), extensibility (keeps growing), team scalability (son. * **Practice:** keep modules independent so one person can owitching across teams. # 2) Map the risk profile and isolate voes** (implementations & breaking versions), **hardware**, **prioat you don't own." Wrap external/platform dependencies behine. # 3) Build your foundation first (own the base layers) * **s," multi-user input model—even if today's OS doesn't support it. Keep a tiny **test app** that exercises the wrapper fobackend-agnostic (GL/Vulkan/etc.). * **Text engine:** design there/return width). Start with a dumb bitmap implementation if youeak callers. * **UI toolkit:** own your controls; text input is scripting, parsers—everything reusable across many apps. # 4)eader/API defines everything consumers can do; internals are hidind the same API** and swap it in. # 5) Choose the right *primia unit. Structure = how units connect.** * Video editor: **clnts** (past and future) flowing through time. * Jet fighter: *nce/accuracy/source metadata. * Keep primitives simple and consistent; the structure (pipes, node graphs, timelines) orchestrateset length; consistent units; built-in **undo**). * The core is ake almost everything a plugin * Capabilities (formats, effectshemselves** (inputs/outputs, parameter defaults, UI hints) and r without touching the core or each other. # 8) Separate "launlatform, loads the core + plugins, and wires up UI. * Even the *ing parallel development. * Because the core is headless, you ca). # 9) Tooling is a first-class deliverable * **Record/playband **language bindings** (e.g., Python) so teams can test in isocelerates external contributors. # 10) Keep implementation free* (no "pass-through SQL" in the public API). Your API remains stable while you swap backends or scale from 1→N servers. * vents both ways until you can cut over safely. # 11) Distributiitative core**; components **subscribe** to slices of state at n** (voting, failover) behind the *same* external API—no consum * Distinguish **semantics** (what it *means*) from **structurein.** Fewer options → better, more consistent implementations.entations if 1 will do. * **Manage constraints** (e.g., all unitt interaction depth:** enough composability without labyrinthineto your world** (you control lifecycle, contracts) rather than y# Worked mappings **A) Video editor** 1. Base layers (platform+ undo. 3. Plugins = media readers, effects, transitions, genera. Separate CLI renderer using the same core. **B) Healthcare systorage; enforce invariants and access rules. 3. Multi-language glue**. 5. Many specialized apps & web frontends speak the same core API. **C) Jet fighter** 1. Primitive = **current world s**subscriptions** for subsystems; different transports OK. 3. Toion. 4. Later upgrade to **redundant cores** behind the same API--- ## Quick checklist you can apply tomorrow 1. Write down goariants. 3. Sketch the **core API** (read/write ops, undo, versinterface. 5. Stand up the **test harness** for your platform wraal plugin end-to-end. 7. Split UI into panels; get one panel talking to the core. 8. Ship the first **tool** (logger or recorder. Freeze the API; iterate internals freely.