2003-06-05

(BLOG NOTE: This was something I wrote a couple years ago to give a primer to Ablitic Proramming, the philosophy of programming I created, am developing, and use in my daily life and career. I felt this was a good first blog to get the ball rolling)

Primer for Ablitic Programming
By
William Miller Rawls


(NOTE: There are no attachments as stated below. This was designed to be a reply to an email from someone who stumbled into a piece of the Ablitic program, “Internet Awareness”. However, it turned out so well, I decided to make it the primer for Ablitic Programming. Internet Awareness will one day be released to the general public as a freeware / open source personalized Ablitic search engine which inhabit their hard drive, observe everywhere the user goes on the internet, help the user find places they have already been (both known and unknown), and communicate these findings (upon request) to their friends who also have Internet Awareness (IA). However, IA is not the goal, only my initial proof of concept and is but a single application in Ablitic Programming. I have personally seen the benefits and they are nothing short of enlightening)



Reply begins:







Hahaha... God, I love the Ablitic...



Attached you'll find the incomplete program I've dubbed "Internet Awareness" along with it's component parts collectively codenamed "Truth". You'll need to modify Pattern to change RootTruth to your directory location for "Truth Labz" contained in the next zip attached, which contains directories needed for Internet Awareness and Truth to operate. Simply observing the extensive directory structure may by itself reveal a great deal of what I consider "Ablitic programming".



First, the Zen of Ablitic Programming:







Intuition = Truth = Ablitic = Simplicity







Awareness => Categorization => Learning => Manipulation







Active Participants <=> Interactions <=> Passive Definables







Aristotle

Zen + Luxian

Buddha







Computers

Reality + Programmer

Humans









Simple Systems Ablitic Systems Chaos





Simple systems are Ablitic Systems, which have become well known, and "proven".



Chaos is that which has no pattern.



Ablitic is that which merely seems chaos, but really follow a system of interactions between an Ablitic system's active participants and passive definables and whose interactions shift through time. This system of interaction is The Pattern.



The truth is, there is no Chaos, only that which appears as chaos. Everything is a Ablitic System. Through awareness of a Ablitic system, one can eventually begin to categorize everything in the Ablitic system. With enough categorization, learning may be achieved. With knowledge of the Ablitic system, manipulation can then be performed.



As this process reveals the truth in a Ablitic system, one must be aware that this process actually involves the observer and therefore the observer is part and participant to the Ablitic system. Further, one can only manipulate a Ablitic system by being a participant and by manipulating the truth of the Ablitic system. One can only manipulate a Ablitic system by truth or lies. Even lies are manipulating a Ablitic system by truth, as one must be aware of the truth in order to lie about it.



That said, since one is a participant of a Ablitic system, manipulating yourself manipulates the Ablitic system. Manipulating the Ablitic system manipulates your self. Thus manipulating with lies can bring only harm to you, regardless of the initial benefit. While manipulating with truth can bring only good, regardless of the initial harm or benefit.



Regarding The Pattern, the Alpha Pattern is this:



Anything you ever want to find,

Is something you have already found,

Which becomes more true with time.



The Alpha Pattern can be modified in many ways, simply by changing the primary words, such as:



Anywhere you ever want to go,

Is somewhere you have already been,

Which becomes more true with time.



Anyone you ever want to meet,

Is someone you have already met,

Which becomes more true with time.



Anything you ever want to write,

Is something you have already written,

Which becomes more true with time.



This last Alpha Pattern is the most applicable to programming. We are constantly writing new lines of code, but we could be harnessing already written lines of code into what we want to write in the present and future. Slice and Dice is an obvious application of this Alpha Pattern, allowing a programmer to apply pattern replication in simple systems.



What is not obvious, and has only been revealed to me after working with Slice and Dice for 3 years, is that there is a pattern to the patterns we replicate. And a pattern to those patterns. And a pattern to those patterns.



Indeed, all the patterns can be summed up as a simple set of interactions, which could be allowed to shift through time.



The interactions would have to be so simple that they could be used for any application that had that simple pattern as a part of it. Further, that these interactions could be interlocked in different sequences to perform any task imaginable, all without writing any additional code, merely by describing the interactions and their sequence.



That is what Internet Awareness attempts to prove. It's not done yet. It's terribly exciting in its implications and applications. I know how to complete the program, but after observing even half of its operations, I hesitate to continue further. I'll leave it to the curious to find out why.



These simple interactive components have many advantages beyond the obvious. They all have small quantities of code, which allow each to be highly reliable (since there is little to go wrong with them), highly maintainable (since there is little to maintain), and very fast (since there is little to execute).



So where do Aristotle, Buddha, Zen, and the Luxian fit into all this?



Each represents a different point of view, a different philosophy, and a different aspect to programming.



Aristotle represents logic since he first coined the term.

Therefore he is best to represent computers.

"It either is or is not". "It is true or it not true".



Buddha represents humans who request programs be written.

"It both is true and is not true at the same time."

"And it exists and does not exist at the same time."

A better definition of business I cannot define.



Zen represents reality.

"It is what it is, regardless of what we say it is."



Luxian represents the programmer.

"That's nice, now what can we do with it?"

A very practical (and fictitious) philosophy that says to do the greatest amount of good for the largest number of people while causing the least amount of harm to the fewest people all without imposing one's will as much as is possible. To achieve this, the Luxian must be perfectly aware, and will eventually either gravitate to an extreme state of selflessness or selfishness.



These four philosophies have been (partially) translated into physical objects. They cannot communicate directly, only through Ablitic interfaces. Remember that Ablitic means simplicity, so the interfaces themselves, define mere interaction without means.



What does this mean for you? Simply having read it, I have manipulated you and changed the way you will program in the future. How do I know this? Let’s just say my intuition… my truth, tells me so.



No doubt you will find all this sounds familiar. Indeed you may be tempted to compare Ablitic Programming to Quantum Theory, Chaos Theory, or other things. Each represents an ultimate in physics, math, and other disciplines. I feel that Ablitic Programming is an ultimate in computer programming. I would argue that they sound similar because they are representations of the same thing.

The same Pattern that we all feel. That elusive quantity we sometimes sense but can’t quite seem to put into words.

I hope this has been enlightening for you. I know it has for me. If it has not, don’t be concerned. It took me 10 years to grow to the point as a programmer where I created Slice and Dice. Three years with Slice and Dice inevitably lead to Ablitic Programming. If you’re reading this, then I think you too are on this path. It’s a difficult one, not unlike becoming a true master of martial arts. However, if you do one day find the Ablitic, even if it’s not relating to programming, I think you’ll find that the journey to seek Truth was well rewarded.



Only one question remains: What is Slice and Dice? http://www.sliceanddice.com