All posts by Ben Eng

I am a software architect in the Communications Applications Global Business Unit (CAGBU) within Oracle. I currently work on cloud services for Business Support System (BSS) and Operations Support System (OSS) applications for communications service providers. My previous responsibilities include architecture and product management for the the RODOD and RSDOD solutions to provide an integrated suite of BSS and OSS applications for communications providers. I founded the Oracle Communications Service & Subscriber Management (S&SM) application and the Oracle Communications Unified Inventory Management (UIM) application. I pioneered the adoption of Object Relational Mapping (ORM) based persistence techniques within OSS applications. I introduced the XML Schema based entity relationship modeling language, which is compiled into the persistent object modeling service. I established the notion of a valid time temporal object model and database schema for life cycle management of entities and the ability to travel through time by querying with a temporal frame of reference or a time window of interest. I established the patterns for resource consumption for capacity management. I championed the development of Web based user interfaces and Web Services for SOA based integration of OSS applications. I was responsible for single handedly developing the entire prototype that formed the foundation of the current generation of the OSS inventory application. I have been engaged in solution architecture with service providers to adopt and deploy Oracle's OSS applications across the globe. I am responsible for requirements analysis and architectural design for the Order-to-Activate Process Integration Pack (PIP) proposed to integrate the OSS application suite for the communications industry using the Application Integration Architecture (AIA). Any opinions expressed on this site are my own, and do not necessarily reflect the views of Oracle.

universe of events – cosmology in software

On my second reading of Three Roads to Quantum Gravity by Lee Smolin, the concept of a relational universe stands out as something fundamentally important.

Each measurement is supposed to reveal the state of the particle, frozen at some moment of time. A series of measurements is like a series of movie stills — they are all frozen moments.

The idea of a state in Newtonian physics shares with classical sculpture and painting the illusion of the frozen moment. This gives rise to the illusion that the world is composed of objects. (p.53)

In object oriented programming, the objects correspond to the particles. The focus is on capturing the state of the object, frozen at some moment of time. As methods are called on the object, changes to its state (variables) are like a series of movie stills.

Lee Smolin goes on to write:

If this were really the way the world is, then the primary description of something would be how it is, and change in it would be secondary. Change would be nothing but alterations in how something is. But relativity and quantum theory each tell us that this is not how the world is. They tell us — no, better they scream at us — that our world is a history of processes. Motion and change are primary. Nothing is, except in a very approximate and temporary sense. How something is, or what its state is, is an illusion. It may be a useful illusion for some purposes, but if we want to think fundamentally we must not lose sight of the essential fact that ‘is’ is an illusion. So to speak the language of the new physics we must learn a vocabulary in which process is more important than, and prior to, stasis. Actually, there is already available a suitable and very simple language which you will have no trouble understanding.

From this new point of view, the universe consists of a large number of events. An event may be thought of as the smallest part of a process, a smallest unit of change. But do not think of an event happening to an otherwise static object. It is just a change, no more than that.

The universe of events is a relational universe. That is, all its properties are described in terms of relationships between the events. The most important relationship that two events can have is causality. This is the same notion of causality that we found was essential to make sense of stories.

If objects are merely an illusion, and it is really causal events that are fundamental to modeling a universe that is relational and dynamical, then perhaps we should re-examine how effective object oriented programming is at producing software that effectively models real world processes. Classes of objects definitely focus on the static structure of the universe. The methods on these classes can be considered to correspond to events, which carry information in, perform some computation, and carry information out. However, the causal relationships between events is buried in the procedural code within each method; they are not expressed in a first class manner.

Personal productivity applications like spreadsheets and word processors model objects (e.g., documents) and relationships that undergo relatively simple processes involving only a few actors. The causal history of events is not as important, because there is only one set of objects in a document to maintain integrity among and the series of frozen moments model of the universe works rather well. Enterprise applications such as Enterprise Resource Planning (ERP) facilitate a multitude of parallel business processes that involve many actors and sophisticated collaborations. Each actor is performing transactions against some subset of objects, which are each progressing through a distinct life cycle. Maintaining integrity among the objects changed by these many concurrent events is incredibly complicated. It becomes important to keep a causal history of events in addition to the current state of the universe, as well as having a schedule of future events (for planning) that have not come to pass. A series of frozen moments becomes less appealing, whereas a set of processes and events seems like a better description of the universe.

cosmological constant

The energy density of empty space is called the cosmological constant. It accounts for the force that causes the expansion of the universe. Its value is approximately 10^-29 g/cm^3. This is an incredibly tiny positive number. They call this stuff dark energy.

As the universe expands, the density of ordinary matter like stars and rocks decreases because new matter is not magically appearing to fill in the space. The incredible thing about the cosmological constant is that the energy density of vacuum does not decrease as the universe expands with time. If this does not surprise you, then let me explore this a little deeper.

mass = density * volume

If the universe is expanding, then the volume is growing larger with time. If the density remains constant, then this would mean that the mass-energy of the universe is ever increasing.

Reconcile that with the First Law of Thermodynamics.

In any process, the total energy of the universe remains the same.

Are we to believe that the universe itself violates the First Law of Thermodynamics?

UN junk science

The UN awarded Al Gore and UN’s Intergovernmental Panel on Climate Change (IPCC) with the Nobel Peace Prize.

On the IPCC’s report, the Cato Institute’s article Live Earth’s Inconvenient Truths explains why it is completely junk science.

The Telegraph’s article Al Gore’s ‘nine Inconvenient Untruths’ punches a few holes in Al’s film.

Of course, the UN is a political body, so its motives are far removed from the principles of science.

expanding universe

(follow-up to 2003/07/27)

Scientists observe the following phenomena:

  1. Based on observations of supernovae, galaxies are known to be moving farther away from each other in the universe.
  2. The farther away the galaxy is from us, the greater the red shift in the light from that galaxy. Similar to the Doppler effect, the faster the galaxy is moving away from us, the greater the wavelengths of light are shifted towards the red side of the electromagnetic spectrum. This means that the farther away the galaxy is from us, the faster it is moving away from us.
  3. The farther away the galaxy is from us, the more time it takes for light to travel, before it arrives for us to observe. Therefore, the greater the distance travelled, the farther back into history we are observing.

Based on these observations, scientists theorize that the universe has been expanding. Extrapolating back in time, the theory projects that in the distant past (13.7 billion years ago +/- 200 million years), the universe must have been very compact and incredibly hot and dense. This is the Big Bang theory.

They also conclude that the expansion of the universe has been accelerating.

I don’t understand how they can arrive at that conclusion.

If at greater distances, we observe greater red shift, this means that farther back in time we observe higher velocity of expansion. In other words, as time moves forward, the velocity of expansion decreases. Wouldn’t elementary physics tell us that the expansion of the universe is actually decelerating – NOT increasing in velocity?

programming for non-programmers

Users want to express their desires to a computer and have the computer fulfill their wishes on demand. We frequently see this desire manifested as software “requirements” for configurability or customization without the need for programming. Users view programming as a highly technical, error prone, and cumbersome chore that should be left to professional software developers.

Users would like developers to produce software that is capable of intelligently adapting its structure and behavior to the needs of the day, as the environment and the business requirements change. They believe they should be able to inform the software of these requirements through intuitive visual techniques. Click on a tool and fill in some information. Drag and drop some icons across the screen. New computations, new algorithms, and new ways of doing business should be configurable with a few clicks by users, who know nearly nothing about how a computer executes instructions, the nature of such instructions, and how such instructions come into existence.

What users do not realize is that the act of expressing themselves through clicks and gestures to produce instructions for the computer is itself an act of programming. The complexity involved in formulating those instructions is proportional to the degree of intelligence intrinsic to the computation. The breadth of requirements that can be satisfied by those instructions is a function of how much can be expressed by the user. Narrow coverage of requirements implies an inflexible system that targets a niche problem domain. Broad coverage of requirements implies a general purpose system.

General purpose programming languages have traditionally been expressed as text. Like all languages, programming languages have a vocabulary, words formed from a character set, and a grammar, which governs how to organize those words in meaningful ways. Textual programming languages allow humans to express themselves concisely in a form that is both precise enough for a computer to comprehend and similar enough to natural language (e.g., English) to be intuitive.

General purpose programming languages have naturally evolved from primitive instructions close to the machine (e.g., assembly language) to abstractions that correspond to natural language. Text is a highly efficient and flexible method of communicating ideas. An alternative technique using graphical images may be applicable for expressing ideas that can be tangibly visualized, but images are wholly inappropriate for non-visual ideas. An image may be able to convey a thousand words, but to have control over exactly what words to formulate would not be easy by using visual techniques.

We can expect that programming languages will continue to advance to become more intuitive to humans and more efficient at expressing complex instructions to machines. Also, we can expect that graphical techniques will continue to evolve to make programming easier to both professional programmers and users, who don’t want to program. What we must accept is the fact that instructing a machine is programming, regardless of whether it is expressed as text or using visual techniques.

vorlons and shadows – philosophy

Babylon 5 is a story about two differing philosophies. The Vorlons promote a life of order, stability, and peace. The Shadows promote a life of chaos, destabilization, and conflict. There is a similar philosophical difference in software development.

Hubris of Prescience

Most commercial software projects lean toward a philosophy of order, stability, and peace. Optimism leads to anticipating stable requirements, which would allow for a stable design. This outlook influences management and developers to behave in a particular way. We gain an expectation for requirements and design to be orderly, stable, and for a peaceful progression of events to ensue. Successful methods and techniques are expected to continue to be viable. The products of past investments into research are expected to retain their value with the passage of time. Knowledge of the present incubates confidence in being able to anticipate future needs. This confidence is reinforced by the belief that momentum has longevity. This belief is correct, but not in the way that we would hope for a healthy technology business.

The technology market relies upon continuous innovation. Innovation is about disruptive change. A strategy based on incremental improvement bets on a steady pace of change, where one’s own product is the market leader. Trailing competitors are constantly seeking to impose revolutionary change upon the market to overtake the market leader. If one is not in the lead, then it makes sense to disrupt the market to put oneself in an advantageous position. New markets are created, where old ones are destroyed. Competitive innovation radically alters requirements, thereby invalidating entrenched designs. Disruptive change accelerates demand for technology through obsolescence.

The lure for the market to adopt innovative products is efficiency gain. Gains in efficiency increase productivity or reduce costs – or both. A methodology promoting the entrenchment of a status quo is unable to adapt to an environment of unrelenting disruptive change. In technology, the status quo is precisely what must be destroyed in order to sustain a healthy market. A strategy of maintaining an entrenched design is a strategy of certain failure in the technology market.

Creativity and Renewal

While a life of order, stability, and peace breeds comfort, it also leads to stagnation and complacency. Creative individuals will recognize where the status quo is not good enough. A culture that institutionalizes the status quo cripples creativity, ensuring a disadvantage in relation to the competition, who seeks disruptive change.

Innovation is nurtured by an entrepreneurial spirit. There are several factors that are required to facilitate creative thinking: freedom, motivation, inspiration, and courage. Creativity needs a culture that promotes creative ideas by nurturing independent thinking, not obedience to instructions delivered by management or designated “thought leaders”; individuals will be willing to think if they are entrusted to do so. Motivation comes from achievable goals, incentives, and the rewards of a job well done. Inspiration comes from the growth and enjoyment of working with peers, who demonstrate competencies, which become a source of knowledge. Finally, courage is provided by the willingness to incur risk to achieve the rewards that come from unconventional thought; people who are confident enough in their ability to attempt great things should be encouraged to do so, because overcoming technical problems is daunting enough without the burden of an unsupportive culture.

The key characteristic of a technology business that is prepared for innovation is agility. It must be adaptable quickly to change. It must embrace disruptive change, and use change to its advantage, rather than being resistant or vulnerable to it. This includes a high degree of tolerance for risk, because change is inherently risky, and the more disruptive the greater the risk (and potentially the reward). Innovation opens opportunities, but a business must be able to pounce on an opportunity to benefit.

Until Moore’s Law no longer holds, we can expect innovative growth to continue. Technology innovation and obsolescence is the dominant trend. A technology business that does not institutionalize a culture that embraces disruptive change will not be a business for long.

it’s fun to shoot people – translation

Regarding today’s current events surrounding Marine general: It’s ‘fun to shoot people’:

Many people are trying to defuse the situation by saying that Lt. Gen. James Mattis’ statements were a “poor choice of words” or “flippant”. They are spinning it, because they want to portray Mattis’ statement as either not reflecting the man’s (or the Marine Corp’s) convictions or not intellectually or morally significant. They are conceding the superficial impression that Mattis’ statements are morally reprehensible, which can occur when the reader deliberately interprets the words out of context.

The spirit and true meaning behind Mattis’ statements were naked and explicit. His words were unsophisticated but not a poor choice. His choice of words should make a rationally moral man proud. However, for those who are offended by Mattis’ “poor choice of words” or “flippant” remarks, allow me to restate using words that bring clarity to the moral basis underlying Mattis’ intent.

Afghanistan has been plagued by those, who believe in oppressive practices, such as violently punishing women for such ridiculous transgressions as being seen in public not wearing a veil. I have a strong moral conviction to condemn those who support such inhuman practices. As a proud member of the Marine Corps, I can speak for all men who uphold justice as a moral principle, when I say, it is our honor and pleasure to be the agents for delivering just consequences in open combat on the battlefield upon the forces of evil. Those who believe that brutality and force are tools for proper human behavior are now learning, as they deserve, the logical consequences of living according to — and dying by — the principles, in which they so strongly believe.

paleo-mock-semantology – headline

New Scientist published an article with the headline Dinosaurs’ ‘bulletproof’ armour revealed.

Apparently the massive herbivore, ankylosaur, developed armor plating for protection from its enemies. In contrast, rival species began deploying rudimentary ballistic weapons. Responding to provocation, ankylosaurs needed a defensive adaptation during the late Jurassic and Cretaceous periods.

Consequently, gun violence became a widespread social problem among dinosaur clans. Fossil evidence has revealed that predatory practices became more sophisticated. Depleted uranium penetrators and shaped charge warheads rendered the ankylosaur’s defensive systems combat ineffective.

Rapid advances in delivery systems and energy yield ultimately led to the mass extinction of ankylosaurs and many other species. Enemy forces launched a multi-gigaton payload from long range. It detonated near the Yucatan Peninsula. That was the end of the ankylosaur.