Tuesday, June 26, 2012

6 Paradigms of Computing

There are 5 general meta-levels of thinking (indirection away from raw senses):
  1. infant (senses) -- Digital Signal Processing
  2. toddler (rules) -- Assembly & Procedural
  3. child (hypotheticals) -- Functional & Logic 
  4. juvenile (agents) -- OOP
  5. adult (cost-benefit) system forces -- Patterns?
  6. celestial (core values) territory in N-dimensional Idea-space -- System Design Principles?

At first I put Actors in Agents, and Functional in Rules.

If #6 is accurate then it completely explains why nobody does systems design principles, and why they seem incomprehensible to the average programmer.

If #5 is accurate then it explains why Patterns required maturity of the programming field. And also why they grew out of OOP rather than Functional.

Sunday, June 3, 2012

General Purpose Self-Improvement

It's often said that the human brain is a computing machine, and this is blatantly true. It's less often said that the human mind is an operating system or programming language. And when it is said, it's assumed to be some kind of metaphor. It isn't a metaphor, it is exactly true. (Consciousness though has no exact analogue.)

The Mind as Programming Language

That's because the mind (and I use this word in preference to 'consciousness' advisedly) is where signals from different modules converge and are converted into back-propagation. Back-propagation in neural networks is the equivalent of reprogramming of FPGAs. This is how consciousness can touch and even alter the bare metal. The mind is also where concept disassembly and revaluation occurs - the equivalents of non-behaviour preserving refactoring.

Conscious attention directly causing the reprogramming of the lowest-level neurons is an observed, well-documented and reliably measured empirical fact. The fact there is nothing similar to this in the Harvard computer architecture only proves what limited dim-wits so-called computer scientists actually are. Equally dim-witted are anyone thinking to analogize the brain or the mind to Harvard architecture computers. Something that is frequently done.

The mind is also where logic occurs, but not where thinking in general does nor synthesis of new concepts. Nor is it where concept valuation occurs, though valuation is supposed to be behaviour-preserving but cannot for reasons I won't go into. The almost behaviour-preserving nature of general valuation is an important feature necessary for mental evolution to occur at all. Finally, the mind is not where action or decision-making occur at all, contrary to self-delusion. 

Rather, the mind is where elaborate modeling occurs for the purposes of inhibition of self-actions. "Don't go there for you will die" isn't something you can learn by experience or mimickry since all deaths are final and usually unobserved. It can only be learned by explicit modeling of hypotheticals. It makes one think, doesn't it? "Action-oriented -> weak-minded" is literally true, something that was hinted at in the correlation between impulse control and IQ. But I digress.

Improving Your Mind

There are two general-purpose psychological self-improvement techniques. And strangely enough, they correspond to two paradigms for programming languages in computing. The two paradigms that admit not only thinking (programming), but thinking about thinking (meta-programming), and thinking about thinking about thinking, and ... to infinity (homoiconicity). Computing is about thinking precisely. OO and Functional are about improving your thinking by thinking about thinking.

I think I'm on the right track that this wonderfully unexpected correspondence exists. And I think I'm on the right track that the Core Values paradigm I invented is the one that 'happens' to correspond to the computing paradigm I like (OO). And I think I'm on the right track that the common features between my paradigm and the computing paradigm I like ... are also the same things that make this computing paradigm understandable and natural for the overwhelming majority of programmers.

The OTHER general purpose self-improvement technique is to pretend to be the kind of person you would like to be. And the guy whom I learned this technique from (the writer of Self 2.0) considered it too dangerous to use past a certain point. Myself, I consider it anathema.

Everything short of these two completely general-purpose self-improvement techniques is worthless ad hoc crap. Software? Tools? Methodologies? Processes? Self-help books? Motivational speakers? Seminars? Coaches? Therapists? Fucking Lamas? All worthless ad hoc crap that rarely works. Good thing I avoided nearly all of that. Too bad I wasted time on some of it.

And I particularly ... appreciated the bitch therapist whose article infantilized anarchists' need for self-determination. Because playing mommy is a great way to treat people who hate being subjugated. The worst part is this worthless bitch was the only one with an inkling of a clue. And also the endless numbers of morons saying to force yourself to do stuff ... which turned out to be not just anathema but also the exact opposite of what's effective. The key is avoiding forcing yourself to do stuff.

Why This Is Important

How is this relevant to this blog? Well first of all, (re)designing one's own mind certainly qualifies as 'design'. Secondly, a designer's mind is their most powerful tool, by far. It's almost their only tool because the other general tools are

  1. virtual desktops
  2. versioned gedit with 20+ tabs across 4 windows
  3. a lightweight tagging notetaker that doesn't exist
  4. an outliner that doesn't exist
  5. zigzag that doesn't work. (useful for project management and 4D data)

I'm using gedit as a notetaker and zigzag. It blows. I don't count a better than Smalltalk IDE capable of debugging events. This is far too specific to programming. Just like OO CAD is too specific to architecture.

Upgrading one's own mind by converting it to a more powerful paradigm, one that's been proven to vastly improve productivity and sheer power in the computing world ... is something every sane designer should desire.

Meta-computing is incredibly powerful and it shouldn't surprise that meta-thinking is powerful as well. It shouldn't surprise that by leveraging, by thinking on higher levels, one gets more important stuff done more easily and reliably. Even practical stuff out in the real world. The only question is how much does the conversion job cost in time and effort? How much work is it to convert your mind to a better paradigm?

Fortunately for all you lazy assholes, after having personally paid and paid and paid to almost random walk towards a solution, the SHORT way to do it takes only an hour to see real progress and maybe two dozen hours to see major dividends. Even better, unlike all the academic crypto-fascistic fuckers I despise, I'm quite eager to give away the solution in the shortest, most understandable manner possible.

Unfortunately, I'm not willing to talk openly about it to people who are hostile towards or resentful of the process. Which includes nearly everyone who can't go through it. About 90% of the general population. I am talking about a transition in mentality as profound as (juvenile -> adult). Considering how many people are stuck as juveniles, that's not promising.

I call my, revolutionary, psychological self-upgrade technique the Core Values paradigm. And I call what it produces Angelic minds. And I call this the 5th solid piece of evidence that I'm well on my way to being the best, most productive and most powerful creative genius in all of human history. And if you've got a problem with that? Kindly fuck off.