Monday, December 31, 2007

Subjective Computer Science

Well, computer science is really a subjective science...here's why. The people who write the requirements have their own view of what the product will be. The people who design the product have their own view of what the product will be. The people who implement the design have their own view of what the product will be. The people who test the implementation have their own view of what the product will be. The people who put the product into production have their own view of what the product will be. The technical writers have their own view of what the product will be. The technical and sales support team has their own view of what the product will be. And the customer has their own view of what the software should do. Ideally, the software should do what the customer wants. But each customer has different wants, thus there are conflicting requirements, conflicting designs, conflicting implementations, conflicting testing, conflicting deployments, conflicting documentation, and conflicting technical support.

All these views and conflicts are what are so interesting in computer science. So instead of trying to stomp out different views, or conquer the world, we should embrace conflicting ideas. Here are some examples. Everyone has a different set of search terms they want to look for. Everyone has a different set of applications they use for work and entertainment. Diversity is good. Choice is good.

Now, how do we make diversity and choice possible? One approach would be to set some standards for people to adhere to. This stifles creativity, and sets the stage for software that doesn't please the customer. One way to make diversity and choice possible is to implement a pluggable interface. This is form of a standard. But there can be different pluggable interfaces for different products. Wouldn't it be nice if you could use the same plugin in different products? Say you had a plugin that worked in ImageJ. Wouldn't it be nice to be able to use the same plugin in Adobe Photoshop and the GIMP? Wouldn't it be nice to use the same interface builder format for Xcode, Eclipse, Visual Studio and NetBeans? What if I could write XML applications that would work in Safari, Firefox, and IE? It's the same fucking problem all the time. Everyone wants to reinvent the wheel. Do I use CLI or Babel?

So what is the solution to all this? At a fundamental level, we have to accept that there is diversity. There is uncertainty in all numbers. There is uncertainty in the elements in a set. There is uncertainty in the order of elements in a set.

Saturday, December 22, 2007

Uncertainty and Continuous Hierarchy

Uncertainty may be thought of as a form of continuous hierarchy. You aren't certain of the levels within the hierarchy, the nodes within the hierarchy, and where the arcs are connected within the hierarchy.

For elements, you aren't certain exactly what the element's value is.
For sets, you aren't exactly certain what the elements are.
For both, you aren't sure whether it's an element or a set, or both.
For order, you aren't certain of the order of the elements.

Thus uncertainty is a form of continuous hierarchy.

Thursday, November 29, 2007

Continuous Hierarchy versus Fuzzy Stuff

The difference between continuous hierarchy and fuzzy sets is that fuzzy sets give a degree or range to linguistic variables. This is necessary for speed. Continuous hierarchy treats linguistic variables as a continuous hierarchy.

Wednesday, November 28, 2007

The Network Effect of Gravity

When there was only a single point in space, gravity didn't exist. Once two pieces of matter were formed, gravity became present. As matter coalesced into stars, galaxies moons and planets, gravity became a network of all matter connected to all matter. The closer the matter was to each other, the heavier the weight of the connection. Larger pieces of matter contained more weight in the connections. Lots of connections meant that space was bent due to the weight of the connections. Weight is not a property of mass, it is a property of gravity or the network connection. The further the connection, the less the weight. The mesh of gravity estimates a gravitational field. Thus, at the discrete level, there is matter, then at the hybrid level there is a gravity network, and at the continuous level, gravity becomes a surface or field. The quantum nature of gravity means that as body moves through space, matter obscures other matter, and two connections might become one or one connection might become two. As connections are formed and dropped, there are quantum jumps in gravity, or gravitons. More obscuration means a stronger connection.

The Network Effect

What has happened in computer systems? First there was the first instance of the computer, then more came. Then we started hooking them together in a network or mesh. Now computers are in fields of wireless networks. Soon the whole internet will become one big field. The same thing will happen to cell phones. Currently there are only cell phone networks connected by a network of cell towers and land lines. The next step is to create a field that all cell phones will be a part of, and the network will disappear into the field.

Equivalent to continuous hierarchy

An equivalent to continuous hierarchy or network might be an energy hierarchy or network. I am not refering to the typical electric company. I am referring to energy in it's natural form. Gravity, electromagnetism and others. Would a nervous system be considered an energy network? What is the nervous system for gravity? Gravity seems to be centered on points of matter. Gravity between all the atoms in the universe creates a tremendously large network. Magnetism creates networks between magnetic objects. I believe that forces within atoms create very small networks. Gravity seems to travel in both directions of the network, and electromagnetism has definite poles to it. I don't know about atomic forces.

I guess typical physics would call these things fields and write equations to describe them.

Continuous Hierarchy revisited

What seems to make hierarchies continuous is movement in space and time. Perhaps movement or fluidity is what makes particles look like waves. The question remains whether motion is a continuous, discrete continuous or discrete thing. All my intuition leads me to believe it is discrete continuous in space (discreteness occurs during collisions) and continuous in time. If we discuss collisions in time, we talk about scheduling. Perhaps the universe is running on a scheduler. Two things can't exist in the same spot--can two things exist at the same time? If a single particle exists in a vacuum, will it vibrate? Is there something about a vacuum that makes it vibrate?