Saturday, March 15, 2014

A Sign of Great Design

A sign of great design is that problems you never thought of are solved for free. So let's look at the upgrading problem which I considered long ago insoluble and certainly uninteresting.

Today I was thinking about 'embed vs extent'. And I observed that despite embed being clearly Evil, it offered some (bad) solution to the upgrading problem. The problem of all your apps getting fucked over by the latest "upgrade".

Now, thinking some more about it I decided the solution was to allow upgrading of shared code and then revert locally whenever something broke. So if you have a movie and it breaks when the movie playing software upgrades then that particular movie should use the older code. Which should still be available.

And then I wondered at the costs of implementing this solution. But in my design I already have universal versioning of absolutely everything. And I already even have versioned object-capabilities that can point to the #latest or #53 of some software.

So all it takes to "implement" this scenario is to point a type of object as using version #53 of the software instead of #latest. Which is something the *user*, not the admin or the programmer, can do.

In other words, the cost is free. I don't have to do ANYTHING except teach the users what to do when some software upgrade breaks other code. Which is not to revert the entire update, which they can also do, but to revert it LOCALLY. Something they wouldn't realize they can do.

And the only limitation of the solution is if software takes it upon itself to be Evilly intransigent. If it presumptuously arrogates for itself the authority of deciding what version of some sub-software it's going to use instead of asking the user to provide one.

Which typically happens when modular software tries to pretend it's monolithic. As in Applications. This is bad code and is yet another reason to despise applications.

So the solution works so long as you're not dealing with malicious code. For free. That's pretty good.

Saturday, March 9, 2013

SSSP 2: satisfying preconditions, specializing on success

There's a place for anger and frustration and every other emotion. Well, not stress, not in my life anyways. And there IS a place for fantasy.

The thing is, there is NO space for confusing planning and fantasy. You want to plan? Plan. You want to fantasize? Fantasize. But never do them simultaneously, and never mix them up, and never confuse them.

When you're planning, fantasizing is not allowed. And equally, when you're fantasizing, planning is not allowed! Mixing them up makes for pathetic fantasies and pathetic plans!

Calling on the cattle to rise up and change some law or other ... that makes for pathetic plans AND pathetic fantasies. If you're going to fantasize, start by drawing up a list of the top 10,000 people you would order to have killed. And go on from there. :)

You can't learn about the world without trying to redesign it. (Just like you can't learn to speak properly without hearing yourself). So to learn about the world you need to both plan AND fantasize. But at all times you should be aware and conscious of what you're doing.

Separation of concerns isn't just critical in planning. It's critical in all areas of life. And it's why you need to know at all times whether you're planning or fantasizing, so you can do that thing well!

The same goes for hopping from one issue to the next. You want to fix the world before finishing grieving? Fine. IF AND ONLY IF you know whether you're hopping or dodging. If you're dodging then freaking do THAT well. If you're hopping then do THAT well. And if you're overloaded emotionally or by work... then don't expect to accomplish anything at all except BEING overloaded.

If you want to do a thing, do it well. Make sure you know what you're doing and make sure you meet the preconditions for doing it well. Otherwise you're just deluded and playacting. And if you WANT to playact then sign up for theater school. And if you want to be deluded then don't hang around me because with my core value Truth I will fucking shatter your illusions.

And lastly, the exact same reasoning applies to academic specialists. And is the reason why I despise them. Because they don't specialize around learning or understanding their respective academic field. They specialize around the role of being an academic specialist. Someone who publishes within only their field, is respected by their peers and gets grants.

So they spend their entire lives never knowing what it is they're doing. Because if they did, they would be ashamed of what they do rather than being proud. You don't learn to understand chemistry by specializing on the role of a chemist, it just doesn't work. And you don't learn to make discoveries in the sciences, or inventions, or even discoveries or inventions in chemistry, by specializing on the role of a chemist. That works even less!

Academics are universally fuckups who don't understand specialization. That's why I despise their fake concept of "specialization" and their despicable "specialties" and every last academic and the whole institution of academia itself which was built on an artificial tie-in of teaching and research and sucking up to the government.

I'm not telling you anything you don't already know. I am however telling you something you forgot, perhaps because you never learned to appreciate it properly in the first place.

Friday, March 1, 2013

Design: Augment

You ever been overflowing with creative work, unable to keep track of or organize it? Pissed because there's no software supporting it?

There's no way to zoom in or out of anything. I can't zoom out of a project file and get a project statement + title. I can't zoom out of that to see what super-project it's part of. I can't zoom out of that to see a listing of and organization of all my projects.

I can't zoom out of a project file and see a list of entryPoints in it. JUST the entryPoints, the landmarks where I need things done.

Landmarks; along with nodes, edges, districts and paths. They're the fundamental elements of navigation = locomotion + wayfinding.

Project files (text files) are districts. Where are the fucking landmarks? The objects that can easily be seen from far away? Nowhere. Where are the paths between districts? Oh right, nowhere too!

I can't take usable notes because even though I date them and make sure they're time ordered, I can't TAG them! And even though I'm tagging my diary for future use, there's *no software* that can fucking read the tags! I can't read my notes by tag.

And because I can't read my notes by tag, I can't just dump my notes into a new project file. Something that SHOULD take 30-60 seconds takes 15 minutes if I bother to do it at all, which I generally don't. It's prohibitively expensive.

Organizing ... is prohibitively expensive! I've lived with that fact for more than a decade.

Augment

What are the design elements of software that supports the organization needs of systems designer? There's four if I recall correctly.

  • deltas
  • state
  • entryPoints (these are meta, hence beyond the ken of programmers)
  • dependencies (also meta)
  • integration between all of the above and fluid switching between them

You can ALMOST fake these with a combination of the craptastic software we have available. You can use Natrificial Brain to keep track of dependencies. You can laboriously manually organize your files per-project as well as keeping a general log. Though it doesn't really work. You can insert symbols lie hashmarks (####) to indicate important entry points, though you can't do anything too elaborate like discriminating between important and urgent.

And unless you've got OCD or are anal about staying organized, all these efforts will FAIL. They won't work for one simple reason: they're too expensive. Faking Augment with crapware is not Augment.

Monday, December 10, 2012

Ray Podder seems to have conclusive evidence in the endless debate over Worse Is Better vs The Right Thing.

Thursday, October 25, 2012

Categories of Complex Systems

I will here debunk the dogma of systems dynamics, the pathetic discipline dominant amongst those pretending to be systems designers.

First, what are complex systems? Complex systems are those that are difficult to understand. It is systems dynamics dogma that complex systems are impossible to understand.

It is systems dynamics dogma that all complex systems are alike in that they are all impossible to understand. And that each of them is unique as "understanding" (computer simulations) of one complex system doesn't transfer to another.

I will debunk this by proving that there exists categories of complex systems, that each of them has a basis of common knowledge, and that any highly trained half-wit is capable of understanding a complex system.

PHYSICAL SYSTEMS

Consider a simple chemical system of a liter of pure nitric acid added to a liter of pure hydrochloric acid at a temperature of 20 degrees centrigrade. What is the mass of this system? What is its density? How much energy do you need to accelerate it to half the speed of light? These questions are easily resolved by anyone half-trained in physics with internet access.

Notice that "what is the mass of a solution of 1:1 nitric and hydrochloric acid?" is a perfectly meaningful question which can be answered by the information given about it. Information in chemistry solves questions of physics. This is in contrast to such completely meaningless questions as "what is its information capacity?" and "what is its value?"

Physics and Chemistry are thus tightly related in a way that chemistry and computer science, or chemistry and economics ... are not! In fact, physics and chemistry are so tightly related that they share a foundational concept between them: energy!

It is thus obvious that physical systems are a category of complex systems, and their foundational field is mechanics. The defining characteristics of the category are the presence of matter and the absence of value.

It is equally obvious that any highly trained half-wit, such as the typical physicist, is capable of fully understanding a complex physical system and that understanding of one such system helps enormously towards understanding of another.

SOFTWARE SYSTEMS

It is widely believed that the foundation of software systems is computability, or temporal math as I call it. This belief is WRONG. Computability has nothing to do with any software systems, in practice or in theory.

The foundation of software systems is computer science. The defining characteristics of the category of software systems is the absence of matter in favour of pure information, and the absence of value.

Computability is a branch of pure math, which lies entirely outside of the four categories of complex systems dealt with here. The systems here while complex compared to the human mind, are miniscule compared to math.

Shannon's information theory and quantum theory are both on the edge of both software systems and physical systems. I'm not even talking about quantum computing or computational QM here, but simply QM.

These are not the only hybrid complex systems. And as with all hybrid complex systems, in order to do any interesting work in them, you must be competent in BOTH categories of complex systems.

Quantum computation by itself is uninteresting. Quantum computation that breaks public key cryptography is very interesting. Quantum computation that proves Many-Worlds correct is equally interesting.

MENTAL SYSTEMS

The category of mental systems includes psychological and political systems. The defining characteristics of this category is the absence of matter in favour of pure information, and the presence of value. Value provides strong coupling. Stickiness.

Psychologists do so little good at best that the worst among them do far more harm than good. Many of their greatest "insights" are entirely circular reasoning (Stanford Prison Experiment) or fraudulent crap (Six Degrees Of Separation).

The fact that psychologists are operating on the same basis as alchemists before Mendeleev created his table adequately explains why they are all without exception incompetent clueless nitwits.

I say this authoritatively since the basis of all mental systems is micro-psychology, the field that describes the construction of minds and their functioning from second to second.

A field I invented out of nothing, with no reference whatsoever to anything known as psychology. Asch's conformity experiment for instance while extremely insightful properly describes mindlessness, not minds.

I am the first and so far only even half-trained psychologist in human history. And I'm a systems designer, not a psychologist, by vocation.

My understanding of human minds is precisely why I despise most of the human population and grieve for the rest.

Finally, yes this does mean that I am the only person on Earth even half-qualified to talk politics, let alone design political systems. So, you really all should elect me tyrant over the Earth.

?HARDWARE? SYSTEMS

Industrial, ecological, and biological systems all fall into one category. The defining characteristics of this long unnamed category are the presence of matter and the presence of value.

I have no interest whatsoever in such systems. As such, I can only guess that the foundational concepts of this category of complex systems have to do with niches and flows of matter & energy. Also flows of value (price or fitness). And of course (value) selection & evolution on the meta-level.

Urban systems are hybrid ????-mental systems. I might be able to figure out whether they're the edge between two categories or whether they're an implementation of one on top of another, if I knew what the fuck ???? was about.

The fact that micro-psychology had not been invented, and that a foundation for ???? lies undiscovered, explains adequately why urban designers are all evil-minded destructive morons. Even the best of them such as JH Crawford are regressive idiots.

A provisional exception is drawn for Jane Jacobs who wrote The Life And Death Of Great American Cities as an indictment and condemnation of everyone working in her field.

DIFFICULTY OF MASTERY

In order of descending difficulty to master are, 1. mental systems, 2. software systems, 3. ???? systems, and 4. physical systems.

The conservation laws which matter is subject to (energy, momentum, inertia) all conspire to slow everything down while greatly simplifying it.

Spacetime, a static 3+1 dimensions in which events are uniquely located, has the same effect of vastly slowing down and simplifying everything.

And then of course is causality, another law which software systems designers consider strictly optional, although greatly desirable, as it greatly simplifies everything.

Value, like a high coupling constant in physical theories, causes every calculation to rapidly become intractable. Value causes things to stick together. Different values causes different kinds of things to stick together.

Another reason why value complicates things is that systems which process the value of their own elements are meta-circular. And meta-circular systems are inherently more complicated than those not.

Note that meta-circularity alone does not value make, and processing value adds another layer of complication above and beyond meta-circularity.

Thus, it's easy to see why physicists and their ilk are the intellectual midgets of the systems design world. And equally, why physical systems are the best designed by far. They're simply the most easily designed.

MY SPECIALTY

On the border of mental systems and software systems are AIs, well-designed OSes, well-designed FSes, and well-designed UIs.

The fact that a systems designer needs to be equally competent in mental systems and software systems BOTH in order to work on the edge of those fields is the reason why every implementation of UIs and OSes felches excrement through a straw.

There is only ONE systems designer on Earth with mastery of mental and software systems both, me. Everyone else is woefully incompetent and should be put out of the misery I feel watching them pretend to know what they're talking about.

Notice that unlike that fourth-rate pathetic excuse for a creative genius this hell-world has spawned, Albert Einstein, or the third-rate creative genius Nikola Tesla, I did not create a new scientific discipline. I created a new FOUNDATION of science. While working alone. In the most difficult of all categories of complex systems. And I count Tesla as third-rate only because my apprentices have yet to exceed the rank of Leonardo da Vinci. I assure you they will.

Tuesday, July 31, 2012

Sins of Google

Google has always been evil. This fact has actually been encouraged by its corporate slogan of 'do no evil'. Because corporations as per the laws of systemantics accept reality as it's reported. And reporting oneself as not being evil entrenches the self-belief of not being evil, in contravention to any and all facts presented.

Google's evil oozes out in its evil design. The latest sin it's committed is the redesign of google calculator, with buttons and shit. What can be said about this except vomit-worthy?

Prior to that was google's redesign of gmail into something feature-cluttered and again vomit-worthy.

Prior to that was google's redesign of its search page, again into something feature-cluttered. With a taskbar to the left that nobody used nor wanted. It took them forever to rip that shit out and I never even noticed until now when I consciously thought about it, presumably months later. Meanwhile, they ripped out the second search bar at the bottom of search results, something that I missed the very instant it was removed.

Poor design all across the board, always aimed at capturing the retarded idiots from among the general population. All about "ease of learning" for Cletus the retarded yokel. 80% of the general population wasn't enough, they feel the need to capture the 20% with an IQ below 80. Or perhaps it's simply about designers securing their jobs with makework projects at the expense of the company.

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.