2025-06-14 at

When will we see more synthetic programming languages?

TIL in linguistics : English is called an 'analytic' language ( few affixes ) whereas Malay is called a 'synthetic' language ( many affixes ). 

  • This is also interesting to my work on programming language design, because most contemporary programming languages are 'analytic' whereas they could be more 'synthetic'. 
This is interesting to note in the history of human-computer interaction.

How weighty is spatial data, anyway?

Structure of conscious thought. Sensory data is bound to space and time. What are the smallest units of space we can model with machinery?

2D : pixels : circles, 5-adjacent; 3D : voxels : spheres, 11-adjacent; elegant, but unconventional. Return to this later! Regress to the Cartesian mode : cubes, 26-adjacent : wasteful corners : N-cubes of voxels : 

  • 1 byte to bitmap a 4-cube
  • 2 bytes, a 40-cube
  • 4 bytes, a 1.6k-cube
  • 8 bytes, a 2.6M-cube ... this is cheerfully tiny data.

This is an early stage analysis, but it is quite encouraging. It matches the intuition that the weight of thought is not as great as many people make it out to be.

2025-06-12 at

Drum : Economic Education for 14-year-olds

I generally put it to designers of education systems : the survey of "what jobs exists, how much they are paid, and what is needed to access them" should be available to all 14-year-olds. It's the best time to start planning.

And the incumbent nature of the political economy is that, the absence of such survey data for 14-yos, is how we manage to keep people in lanes for the rest of their lives. :)

The 14-yos who know that the fresh grad pay range in KL is 1.5-20k MYR/mo are not doing what the 14-yos who think it's 1.5-5k are doing. And the expectation diverges for say a 30+yo where some make 1.5k, and some make 400k!

So the strategy of picking education paths depends on education goals, and the goals depend on ... some sort of preliminary life planning survey which is generally unavailable to the masses.

The Cybernetics of Humour

 Humour : is simply a pattern of motivation, in immune systems. 

Structurally it consists of no more than threat and mitigation. Why is this valuable? Because a system that practices, is a system that learns.

Therein we find value in humour, as a coefficient of education, and education as the process of civilisation's development of immunity.


2025-06-11 at

Fragmentation of Programming Languages : this is a UI problem, due to politics

Programming languages are obfuscating, in the same way that degrees and job descriptions are obfuscating. The political economy of this is intriguing.

In all activities, humans are doing very similar things. But for the purpose of "laning" or "putting people into manageable boxes" we often create barriers of language which establish structures of containment, and then we gatekeep the containers.

Anyway ...  programming languages : 

  • 1. consumers want to code for conveniences like journals and calculators ( want code that looks like English )
  • 2. business users want to build services and distribution channels ... websites and apps, and generally CRUD apps ( want semantics that handle network scaling issues efficiently ) 
  • 3. analysts with varying rigour want to crunch numbers ( want performance, but also code that looks like science, maths, and formal logic )
  • ( game developers are some combination of 2. and 3. )
  • 4. engineers who spend way too much time working for (2, 3) are more concerned with performance and reliability ( code must present more details of hardware architecture, and the layout of data in memory )

... and generally it is not easy to find a single tool that caters to everyone's needs.

But ultimately everyone's needs are the same, and so a tool should exist which serves everyone, with an opt-in for any specifics.

Indexing Conventions : Matrices and Cartesian Coordinates are Transverse : pre-amble to "column-" and "row-" major terminology

As always, the terminological conventions of math, have nothing to do with math. I almost never bother to remember which is left and right.

 1.

The convention in matrix ordering is (y,x) which is transverse to Cartesian conventions of (x,y). Definitely learnt this in school, but never used matrices for years, so didn't remember it. Now that memory-layouts are a thing, and I'm building a programming language for knowledge management, I shall need to bear it in mind.

2.

This terminology of matrix ordering carries into computer programming conventions, whereby

handle-index-index is interpreted as handle-y-x i.e. handle-rows-columns

3.

Subsequently, the terms row-major order and column-major order can be interpreted only under this assumption

row-major ordering is where the data for handle-*rows*-columns is stored together in memory, as is the case for languages : C / C++ 

whereas,

column-major ordering is where the data for handle-rows-*columns* is stored together in memory, as is the case for languages : FORTRAN, Julia, R

3b.

As a further consideration, the use of Iliffe vectors and linked-lists, as in the simplest data structures of many high-level programming languages like Erlang, Pyhon, and Javascript is not relevant by this concept.

 


Tensor Rank = Quantity Dimensions + 1

 TIL terminology : the indexing of dimensions and tensors, is different.

  • A dimension is a measurable difference / displacement.
  • But a tensor is a higher-order categorisation of differences / displacements.

So 

  • a scalar is 1-dimensional, a 1-(tuple|space), but is a 0-rank tensor, because each point has 0 dimensions of internal (mapping|relationship).
  • A vector is 2-dimensional, a 2-(tuple|space), but is a 1-rank tensor, because each point has 1 dimension of internal (mapping|relationship).

Ya? 


MathWorld : ""An nth-rank tensor in m-dimensional space is a mathematical object that has n indices and m^n components and obeys certain transformation rules....Tensors are generalizations of scalars (that have no indices), vectors (that have exactly one index), and matrices (that have exactly two indices) to an arbitrary number of indices."" - via Reddit

A Complete Bozo's Introduction, to Navigating the AI Economy

There are a few issues on the table. 

  • 1. Given the structure of ordinary human consciousness, most people ( I venture a guess ) do not understand its computational structure.
  • 2. There is an arms race to do better, but the CURRENT wave is fueled by VC which is to say, bruteforcing of inefficient methods.
  • 3. This gives the completely clueless masses something magical to wonder about. However, structurally it remains unsound because the contemporary techniques are inefficient.
  • 4. The techniques will get better as margin compression hits the industry e.g. DeepSeek as a trivial example.
  • 5. Because of (3.), there is a phenomena of hype where businesses and governments are being targeted as exit strategies for (2.) Most business and government operators actually belong to class (1.).
  • 6. The question I put to folks therefore is simply a matter of ... do you like dwelling on (1.) or (3.) ? So folks decide where to spend their time. :)

Every programming language has 3 main layers

 Every programming language has 3 main layers.

  • 1. Graphemes and syntax WITH COSTS: the aesthetic aspect of the UI/phenomenology as it is perceived by the language user. Given by the language developer.
  • 2. Sequence, selection, and iteration WITH COSTS : the analytic aspect of the UI/phenomenology which the language user must assume is represented by (1.). Given by the language developer.
  • 3. The implementation details WITH COSTS : which are irrelevant to the language user, but which are of interest to the language developer as (3.) is handcuffed to the the guarantees promised in (1.) and (2.)

So why do I need to develop a new language? Well, I don't but it is convenient to do so.

  • As a user, I stand to benefit from hacking (1.), because I want a programming language that can capture 99% of notational constructs used in logic, maths, and business, with an ASCII character set. This does not currently exist. (I am just dumb and haven't found it.) Business is usually not a problem, but maths and logic notation is more diverse. Unicode is the "proper" way to do it, but not the "lowest common denominator" at this point in history. Generic personal computing devices guarantee standardised ergonomics for ASCII, but not for Unicode as a whole.
  • As a user, I stand to benefit from hacking (2.) because the menagerie of concepts in logic and maths, is often expressed at this level of the system. Type systems, and other abstract data structures mainly live here. So this is good practice.
  • As a developer, I stand to benefit from hacking (3.) because that's just the fundamental nature of the business, and I certainly need more practice and study in this area.

Oh well. What a chore.

2025-06-09 at

Lord Looked Upon the Land, and the Data was Good

 In the beginning, business was wrought from chaos.

Then came accountants, and there was order upon the land.


In a season of low margins, they were reborn as management engineers.

In another season, as consultants and bankers.

In yet another season, reborn as big data analytics experts.

In YET another season, as data scientists.


Today all the kids are running around discussing degree programs with "data" in them. 

Hello, did you forget the "science"?

Discussion : a<*A for a∈A

 Solved a big design problem today : 

"a<*A, b</*B, C*/>c, D*>d" replaces "a∈A, b∉B, C∌c, D∋d"

( Works best for full-height-* fonts. )

1. 

So in maths, we write "a∈A, A∋a" to mean "a is an element of the collection A", and "a∉A, A∌a" to mean "a is NOT an element of the collection A".

This is basically a sexy round version of the Greek letter, epsilon, and it is shorthand for "est", meaning "the entire work".  This is attributed to Peano.

2. 

Our common ASCII character set has no such equivalent. It would be UX-wise ridiculous to write 'e' everywhere. So for the past couple of weeks I've been using "<e </e e/> e>" in place of "∈ ∉ ∌ ∋", which I thought was pretty smart. 

That was until I started using this for Type Hints/ Annotations/ Signifiers : where writing something like "variablename<eTypeA" has a poor UX, due to the adjacency of the latin [e] and the [A-Z] charset for the first-letter of type names. This is no problem for a machine lexer, but humans are less clear in thought. And it also depends on the limited charset for type name first-letters, so phooey.

Oh yes, and using '∈' for Type Hints instead of the paamayim nekudotayim 'value::type' ( as in Haskell), 'value:type' ( as in Python, OCaml ), 'type<value>' ( C++ ) is, indeed part of the solution.

3. 

All that being said, the revision is a work in progress.

2025-06-08 at

Filial Piety and the Structural Weakness of Public Institutions

 Brief points from chat on Friday : 

  • - The practice of leaving the home country to work, then returning to the home country to care for family, is an idiom / workflow / norm.
  • - This may be associated with the tradition of filial piety from Confucianism.
  • - The prioritisation of the Family Unit leads to deprioritisation of Public Institutions, on a grand scale.
  • - This results in specific economic structures.

High-risk decisions that shaped my career

  • 2001 : Parking STEM work and focusing on non-commercial fields of study.
  • 2003 : Dropping interest in institutional grades, and focusing on self-determined studies. ( Target : 2 years. )
  • 2005 : Moving out of the first-world, back to the third-world, as as long-term initiative.
  • 2007 : Parking corporate work, and focusing on SMBs and technology operations.
  • 2012 : Parking capital markets, and focusing on SMBs and corporate work. ( Target : 10 years. )
  • 2015 : Raising capital and running a SMB.
  • 2020 : Shutting down the SMB.
  • 2025 : Deciding to learn the full software stack, and actually brain computer languages from syntax through to compilers.
Fucking scary junctions. Very interesting results.