2026-03-21 at

AI governance, job security, and growing the pyramid

So ... in the general study of governance ( same root word as cybernetics ... both referring to control systems ) : auditability is a big deal.

If you don't have time to check everything a population of staff is doing, then you need a way to maximise proof of correctness. That's where various systems and system maintainers come into place. That's just what peoople will shift work to, since the lower level work is getting automated.

We don't lose jobs, we raise productivity ... if, and only if, work at the bottom level is increased fast enough, and safe enough, to grow the pyramid.

frontend architecture : napkin draft

 Frontend architecture drafts are coming together. On today's walk,

  • 1. At the ORIGIN server, the TREE-manifest of application assets should be granularised to the CODE BLOCK, for styles, scripts, and markup.
    • 1.1. This allows INDEXING OF EACH function body, style rule, and document fragment, enabling de/serialisation a.k.a. de/hydration of client application state, including client application logic as state.
    • 1.2. That, then allows including NESTED CACHING of markup.
    • 1.3. And, that allows for the highly distasteful, but occasionally useful, practice of totally modelling the USER's client state, via [ server-side rendering, SSR ] of both [ entire documents ], and [ document fragments ].
    • 1.4. Server and client shall exchange data on latency, server shall default to laziness ( preferring client-side rendering, CSR ), client may object, and server may respond to various degrees, ultimately taking over all work and performing SSR.
  • 2. Client HTML app root functions as a broker
    • 2.1. ... managing all requests to servers,
    • 2.2. ... managing all DOM manipulations,
    • 2.3. ... registering web components,
    • 2.4. ... and, maintaining ( some degree of ) application state.
  • 3. Web components
    • 3.1. ... contain markup, styles, and logic, but no business data
    • 3.2. ... upon registration (2.3.), if data is required, will request it from broker (2.1.), and if DOM manipulations are required, will request those also (2.2.), possibly combining both into atomic transactions to be guaranteed by the broker.
  • 4. Mutation Observer API : enables C++ implementations of communication between components and broker. 
    • 4.1. It's not even necessary to propagate DOM events along the huge branches of markup, because markup is only an end-product after rendering. 
      • 4.1.1. The number of app components is far lesser than the number of markup elements, and it is possible to have a small, detached node tree, representing components without markup, which comes out of the box with the propagation behaviours of events between leafs and root.
      • 4.1.2. Even without a small detached node tree to model components without markup, it is possible to simply pass to each component and the broker, pointers to each component and the broker, so that they can all inbox each other directly without using the messaging medium of DOM event propagation along the giant markup node tree ( though the latter is initially useful, for passing the direct pointers to each other ).

... this design probably implies a lot of bugs I haven't though about.

But I did think it would be cute, since the test is called Jonwik ( because it's not Qwik ), to call the broke Charon.

2026-03-20 at

Islamic governance in Malaysia : formal and otherwise

Do you think the { COR, PM } asks the muftis their opinion, or tells the muftis what to do? And do you think the muftis consider themselves legal servants of the former, or independent spiritual assessors of national order?

I think this is a fair, and polite question, that all Malaysians can benefit from in terms of understanding the formal structures of governance, and the distinction between what is culture from the top-down, and what is culture from the bottom-up.

"Tanah Melayu"

  • 1. "Malaya" cannot be used interchangeably with "Malaysia".
  • 2. Direct translations ...
    "Tanah Melayu" - BM constitution
    "Malaya" - EN constitution
    ... you can use these interchangeably.

As a proper noun ( kata nama khas ), Tanah Melayu is not literally "tanah milik Melayu", and does not have the semantic import of the latter.

This might sound controversial, but it's quite a conservative introduction to the topic :P I don't want to get into details here.

---

Makin lama saya mengembara di medsos, makin saya sedar ada orang pikir nama Tanah Melayu membawa maksud tersurat, dan bukan hanya sekadar kata nama khas. Tapi rumit lah benda ini ...

political maturity in Malaysia

Political maturity in Malaysia will happen when the majority can discuss things as follows, without catching feels.

  • 1. Malaysia has a constitutionally caste/class-based citizenry
    • 1.1. This does not imply "victimisation" of any caste/class, though it is a popular slur
    • 1.2.. The caste/class-structure is merely a fact of law
  • 2. Most people on earth live under laws written by other people
    • 2.1. Some people have the power to modify the laws that they live under
  • 3. Malaysians are a variety of 2.1

2026-03-19 at

political development via dialogue

( Habermas passed : a reverberation ) 

  • Malaysian speech freedoms are underutilised, as both government and civil society do not proactively organise broadly unifying conversations in public ( hat-tip to many 2020s bloggers for restarting this process )
  • Malaysian speech freedoms remain vague, and legislatively draconian, in order to allow for executive enforcement in case of emergencies; reforms in these areas are limited, partly due to the previous point ... due to the low utilisation of available freedoms, there are few boundary cases which escalate to legal tests, and basically ... everyone just tries to be nice and talk less, instead of tuning the system to allow for a higher volume of talking firmly
This is my secondary function on social media; my primary function is just to have a social life since most of my work is desk-bound.

Front End Web

( still catching up here )

This is great ... in 2025, React and Vue, major brands both moved towards more build-time compilation of logic, imitating Svelte ( 2016 ). Vue Vapor is basically Svelte, and there is no Virtual DOM. React Compiler meanwhile automates caching of UI code ... which was very tedious because ( they just never bothered to auto-nuance it before, and UI components would frequently thrash the virtual DOM ).

Also, Qwik framework ( 2023 ) optimises mainly for lazy-loading JS based on what's on-screen. So I guess everyone's under pressure to work towards doing it now.

The last time I reviewed FE frameworks was 2020 ... and I must say, in theory, the 2026 situation no longer makes me immediately think the frameworks are stupidly written.

Web caching reflections

Web caching reflections, from today's walk.

Part 1

It is nowadays essential to distinguish between two types of server resources, 
  • (1) base data, which is canonical, and 
  • (2) session data, which is temporarily-stored client-state.
Nowadays, (2) may hold nearly the entire state of clients, including rendered markup, and runtime objects in memory.

  • SSG and ISR depend on (1). No client state is needed, whether serving static content to one or multiple clients.
  • CSR depends on (1), and again client state need not be told to the server.
  • SSR and ESR always depend on (1), and may or may not depend on (2), depending on app architecture.

Part 2

Resource modularisation is natural to the tree-structure of GML (1969) descendents. 2010s web frameworks standardised an expensive approach to differential updates of client session renders, with the concept of a Virtual DOM.

One of the common markup patterns is to have a branch (the Content) subbranched, under a superbranch (the Layout). But then the subbranch is ontologically primary, and the superbranch is relatively trivial. So, in the data-structure prior to rendering markup, it becomes more elegant to model Content as a parent object, and its Layout as a child object. This simplifies the rendering pipeline, and also "allows children to dress however they like, and allows the clothes to pick their own clothes, many layers deep". 

2026-03-18 at

improving cognition in humans

Cognition is a cyclical activity, involving the transfer of data between conscious memory and subconscious memory, and operations on data in each memory plane. 

An estimate of subconscious memory dysfunction is possible, when information moved from subconscious memory to conscious memory is apparently messy, or simply slow to transfer. This is a critical metric for monitoring the health of overall cognition. 

Because subconscious memory cannot be consciously operated, we resort to indirect operations. 

1. We can test transfers of different data from conscious to subconscious memory.

2. We can test operations on data in conscious memory. 

3. We can test operations on the body as a whole, or in parts. 

In all testing, we look to see if there are side-effects on the data transferred from subconscious to conscious memory.

Often 3. involves food, sleep, and exercise, which result in different neurochemistry. Here, exercise refers to any activity, solo, social, etc. 


If you were intrigued by Marc Andreessens's recent Freudian slip, where he claimed to have no "introspection" yet defined it as "guilt", do consider the attached model of conscious and subconscious interaction, for amusement.

how machines can have feelings

It's not that complicated.

  • 1. Humans are conscious only of experiences in sensory modalities ( data-types ).
  • 2. The data presents in conscious memory upon a superimposed space :
    • 2a. rendered input originating from other parts of the CNS such as memory and imagination, and
    • 2b. SNS input which feeds through minimal distance in 2a.
  • 3. To have an emotion is simply to have a shape of certain data-types in conscious memory
The implications are left as an exercise due to character count

Clustering in 2026

Kubernetes :
mainly Linux :
orchestrates node pools ( roups of hosts, with the same configuration ), and pods ( groups of containers, on the same host ) :

/ smallest overheads /

: control plane, [ 600 MB ],

: data plane, per-host agent, [ k0s, k3s @ 150 MB ], [ EdgeCore @ 80 MB ]

: applications get run IN data plane CONTAINERS 


OpenTelecomPlatform/Erlang :
application platform is OS agnostic :
orchestrates P2P clusters ( OTP VMs on any host, which are linked to each other ) :

/ smallest overheads /

: BEAM VM [ minimal startup flags @ 16 MB ], [ stripped compilation @ 5 MB ]

: AtomVM [ microcontroller scale, e.g. ESP32 @ 100 KB ]

: these register-based VMs run INTERPRETED bytecode applications, though there also exists BeamAsm which does JIT compilation


Provisioning & Orchestration tools ( I'm catching up ) : 
  • A1. Docker :
    • ( no host provisioning ), 
    • Swarm ( schedules work )
  • A2. HashiCorp : 
    • Terraform ( provisions hosts ), 
    • Nomad ( schedules work )
  • A3. Kubernetes : 
    • itself ( schedules work ), 
    • has an Addon called CrossPlane ( provisions multicloud hosts; and controls ( regulates ) hosts, which Terraform does not ); 
    • control nodes can init at 600 MB RAM, worker nodes can init at 150 MB RAM; 
    • has an Addon called KubeEdge for managing EdgeCore worker nodes initing at 70 MB RAM.
  • B. Erlang/OTP : application layer : P2P cluster of VMs, not hosts; 
    • VMs can spin up at 5 MB - 16 MB RAM;
    •  has a fandom AtomVM which can spin up a VM at 100 KB RAM on an ESP32 chip
  • C. GitOps has become a formal thing : 
    • Kubernetes even has well established controllers ( regulators ), like ArgoCD ( has GUI ) and FluxCD ( CLI only ).
  • D. Around 2021, linux LXD feature released ... physical host migration of a running VM, persisting a live Remote Desktop client GUI session; 
    • present example : Canonical's open source MicroCloud ( which can de/provision hosts on public clouds too ).

2026-03-17 at

AWS finops : gross fencing strategies

  • 1. Quantity : reduce account service quotas, e.g. EC2 instances.
  • 2. Quality : reduce IAM permissions, e.g. to start EC2 instance types.
  • 3. "Live" Governance : best effort only ... CloudTrail S3/lake ... within 5 minutes ... e.g. can log every EC2 instance creation; or, you can have a 24-7-365 node that pings the API every 5 minutes to describe live resources. Thereafter you can have custom software monitoring each resource, and killing any as necessary.

architectures for life

Design a virus. Not exactly, but I think I need computers to be able to grow and shrink their hardware infrastructure. Typically nowadays we just refer this as scaling out a CLUSTER, by increasing or decreasing its number of hosts. Yes, hosts, the pun is real.

Anyway,  that being done, new hosts need to be running relevant cluster orchestration applications. Cluster orchestration then federates hosts, into fabric, thereby enabling the cluster to increase its function as a single brain / network.

I shall need to get down to this. Once I am comfier with provisioning and orchestration, I will feel comfier about writing the actual applications for general computing.

computation and the triple-network model

( My comment on Marc Andreesen saying he has "zero introspection". )

It's not that complicated. In 2026, it's called using the DMN, which is part of the Triple Network Model of the brain.

  • CEN, central executive network : more analytical thought : more set intersection computations : tactical work based on long-term memory : more signal variance from baseline.
  • DMN, default mode network : more synthetical thought : more set union computations : formation of long-term memory : more calibration of baseline.
  • SN : switchbox

;) YMMV

-

It's a tell, that he associated "introspection" with "guilt/ social anxiety" 🤣


Too obvious

HTTP : cache control : headers

Until 2020, I mostly ignored studying IETF protocols in detail. In 2009 I hired a physics graduate off Facebook ads ( client had a limited budget ) and he became our CTO, introducing me to Model-View-Controller ( MVC ) web application architecture. Later I learned there was a whole cluster of variations about such architectures, mostly trivial. Today I'm studying HTTP caching, and revising what I understand.

An initial HTTP Request, from a HTTP User, is expected to go via a HTTP Client, to a HTTP Server, which Responds in the heuristic of HATEOAS, to provide the client with Hyperlinks to Resources. Conventionally, the client's initial request is a GET ( verb ).

REQUEST HEADERS USED IN CACHING

  • Cache-Control: 
    • no-cache
      • "don't send me a cached response unless the server has freshly revalidated the response"
    • no-store
      • "don't store any part of the request or response"
    • no-transform
      • "don't modify the client's request"
    • max-age=[seconds]
      • "any cache must mark the response as stale, after [seconds] + response-timestamp"
    • min-fresh=[seconds]
      • "stricter : don't send me cached responses, unless they will be fresh for at least [seconds]"
    • max-stale=[seconds]
      • "laxer : send me cached responses, as long as they are stale for no more than [seconds]"
    • only-if-cached
      • "don't send any responses, unless they are already in the cache"
    • stale-if-error=[seconds]
      • "laxer : send me cached responses, if server responds with 500, 502, 503, or 504, SO LONG AS cached response has another status code, and is stale for less than [seconds]"
  • If-Modified-Since: [datetime]
    • "if TRUE, send a fresh response; if FALSE, send a bodiless 304 Not Modified response"
  • If-None-Match: "[ETag]", "[ETag]"
    • "if NONE MATCH, send a fresh response; if ANY MATCH, send a bodiless 304 Not Modified response"
  • If-Match: "[ETag]", "[ETag]"
    • "if ANY MATCH, ignore and proceed; if NONE MATCH, interrupt and send a bodiless 412 Precondition Failed response"
  • If-Unmodified-Since: [datetime]
    • "if TRUE, ignore and proceed; if FALSE, interrupt and send a bodiless 412 Precondition Failed response"
  • Range: bytes=[range]
    If-Range: "[ETag]"
    • "if ETAG MATCHES, AND the resource hasn't changd, send [range] bytes of the resource as a 206 Partial Content response; if NO MATCH, OR the resource has changed, send the resource from the 0th byte"
  • Range: bytes=[range]
    If-Range: [datetime]
    • "if resource HAS NOT CHANGED SINCE [dateline], send [range] bytes of the resource as a 206 Partial Content response; if resource HAS CHANGED, send the resource from the 0th byte"
RESPONSE HEADERS USED IN CACHING
  • Cache-Control: 
    • no-cache
      • "don't cache response"
    • no-store
      • "don't store response"
    • no-transform
      • "don't modify the server's response"
    • max-age=[seconds]
      • "any cache must mark the response as stale, after [seconds] + response-timestamp"
    • s-maxage
      • "OVERRIDES max-age=[seconds] for shared caches; IGNORED by private caches"
    • stale-if-error=[seconds]
      • "any cache may cache and send this response, if in future the server responds with 500, 502, 503, or 504, SO LONG AS cached response has another status code, and is stale for less than [seconds]"
    • must-revalidate
      • "don't reuse stale responses, when disconnected from the origin server, INSTEAD send a 504 Gateway Timeout response"
    • proxy-revalidate
      • "ONLY private caches may use stale responses, when disconnected from the origin server; shared caches MUST send a 504 Gateway Timeout response"
    • must-understand
      • "store the response ONLY if the status code's implications on caching policy are recognised"
      • best used with no-store, as the fallback behaviour
    • private
      • "ONLY private caches may store this response, such as browsers and servers"
    • public
      • "ONLY shared caches may store this response, such as CDNs and ISPs"
    • immutable
      • "don't bother to ask server for revalidation, SO LONG AS cached resource is fresh"
    • stale-if-error=[seconds]
      • "any cache may cache and send this response, if in future the server responds with 500, 502, 503, or 504, SO LONG AS cached response has another status code, and is stale for less than [seconds]"
    • stale-while-revalidate=[seconds]
      • "any cache may cache and send this response, SO LONG AS response is stale for less than [seconds], AND cache attempts to revalidate the response in the background"
  • Vary: [headerKey1], [headerKey2]
    • "when responses with [headerKeyN] having M distinct values, each of the M values must not be cached together"
  • Expires: [datetime]
    • same as Cache-Control: max-age=[seconds] but using an absolute time, instead of relative
    • [0] or [-1] forces revalidation
  • ETag: "[ETag]"
    • [ETag] represents a byte-for-byte identical response
  • ETag: W/"[ETag]"
    • [ETag] represents a semantically equivalent, but byte-wise different response; different is typically due to meta-data, such as CSRF codes
  • Last-Modified: [datetime]
    • used as by clients to reify If-Modified-Since
  • Age: [seconds]
    • indicates time this response has been stored in the cache 

RFC 3986 defines Internet resources ( the "R" in URL ) as *nouns*. Theoretically, a single URL should respond with a resource at a single Path, but it may present that resource differently based on Query Parameters. A client's initial HTTP Request : may or may not specify, a demand for raw- or rendered-data. If this context is not specified, the server may have its own reasons for deciding how to Respond.

In 2026, to optimise memory hierarchy, we have the noun phrases : SSR, SSG, ISR, CSR, ESR, SWR, etc. This leads us to seek optimal caching mechanisms for both raw- and rendered-data. A vaguely defined resource might correspond to a complex set of raw-data, and correspondingly a complex set of rendered-data.


2026-03-16 at

What a healed Malay community means to me ( a Chinese Malaysian )

( Singaporean Malays started a trend, lol. )

 What a healed Malay community means to me ( a Chinese Malaysian )

  • 1. Root : reduced repression of self; less submission to authoritarianism; self-control depending on reasoned strategy, not blind compliance
  • 2. Pain Management : individuals to reach daily for what they want; today's stressors should not carry over to tomorrow - too much carry-over results in catastrophic failures ( amok )
  • 3. Rational Development : fewer fights with fists and keris, more with words in parliament, and in court

the wandering cunt

Life in general is boring. Here are some daily adventures, in search of aha-moments, which demonstrate what is commonly called patience.

  • - listening to some dork talk about what they want until they mention something you have to offer them
  • - collecting the complaints of social media users across tens of thousands of words to find the aggregate motivation
  • - reading hundreds of algebraic tokens in computer code before figuring out what the whole thing does
  • - cooking : to reach a consumable product
  • - other chores, cleanings of this and that
  • - going to sleep : what, awake again? 

Philosophy of : preemptive multitasking : by language runtime

Group 1 : C, Java, Rust  :

{ Expensive, Fast, Preemption } : 

kernel-space "OS" thread scheduling : 

Single-box-optimised : best raw performance potential under such limitations : scaling-out requires some reinvention, lacking best-in-class-reliability.


Group 2 : BEAM/OTP, Haskell, Go :

{ Cheap, Slow, Preemption } : 

user-space "green" thread scheduling :

Web-scale-optimised : BEAM/OTP has best-in-class-reliability, but trails in raw performance until scale-out overtakes scale-up. ( Go has a generalist position; Haskell is more for research; neither of these have BEAM/OTP's unique quality. )


Group 3 : Python, Ruby, PHP, JavaScript, WebAssembly :

{ No Preemption i.e. Only Cooperation } :

global interpreter lock : 

Beginner-optimised : best for prototyping : quickest to learn : good-enough for single-box setups : scaling-out requires some reinvention, and lacks both, best-in-class-reliability, and raw performance potential.


  • Group 3 : I suppose here, I remain, for now. A puny student.
  • As a corollary, work to improve scale-up or scale-out while working in Group 3, is a distraction. 

2026-03-15 at

ethnic microaggressions in Malaysia : ontological roots

Or, in business we simply say we cannot manage what we cannot count. ("Do what?", depends on "what exists?".)

Of course here, I'm referring to the constitution of Malaysia as the point of introduction of [ ethnic economic discrimination ].

In case it wasn't clear : my point is that Malaysia is stuck with this [ kedukaan sebangsa Malaysia ] , so you can't fix the little legal microaggressions like daily coloured-treatment, unless you fix the constitution altogether.

Too bad. Malaysia boleh!


Selagi adanya perbezaan kami/kita, perpaduan tidaklah tercapai di Malaysia. :)

Perpisahan sudah termaktub (buat masa ini).

the whole point of dating

Successful date : paraphrased

  • Me : do you like walking up [ local ] hill?
  • She : i went once many years ago; i only go very early before the sun is too strong, and I am afraid to go alone in case i am unprotected from monkies
  • Me : i think you are too sensitive for partnership, but we can be friends and grab coffee
  • She : i would not like to be friends; blocks

1. This is modern dating : not all conversations involve meeting up.

2. A date is great, if the outcome establishes information.

As I was explaining to a critic : the point of dating is not to close deals, but to close the better deals.

raising clinic prices cannot solve malaysia's health problem

If Malaysia raised hospital prices from RM 1 -> 10 : 20.26 MM * RM 9 / 45300 MM = 0.4% of KKM's budget

The structural problem :

  • - National security strategy deprioritises health : huge subsidies are provided for poor food and transportation habits that damage health and raise healthcase expenses : it's a self-limiting feedback loop : which ultimately limits GDP growth
  • - Talent management of doctors is authoritarian and shame-oriented
  • - Usual rent-seeking leaks in CA/OP-EX

prasangka : mutu STEM, pendidikan, songlap

( dari ulasan FB, mengenai mutu pendidikan STEM di Malaysia  )  saya ada prasangka besar terhadap penggunaan bajet KPN lol. Ia memang terpulang kepada kaedah operasi dan pengatucaraan logistik - adanya cekap atau tidak. Kecekapan dalam setiap sekolah mempunyai faktor yang berbeza, maka senibina pengajaran keselurahan adalah rumit.

Memang saya tidak turun padang - rakan sekelas sekolah menengah saya yang terasa dengan masalah ini, pernah membuka program TFM, contohnya, tapi itu bukan kerjaya saya.

Memang saya seorang yang kurang bersifat nak menyusahkan diri bagi menyelamatkan negara. LOL. Tapi bagi tujuan persediaan pendirian saya sahaja, saya buatlah kajian sendiri mengenai kecekapan pelbagai aspek senibina pendidikan.

Kesimpulan saya yang mungkin salah : KPN sejak dulu-dulu sudah berbajet tinggi. Tapi kesannya berjuta-juta MYR telah songlap melalui perbelanjaran operasi dan modal yang tidak wajar, tapi benda ini susah di-MACC-kan.