software


magic_flute_religion_-_high_level_design.gif


  • What is it?
    • A religion intended for software machines
    • Milestone: Believer mark 1
      • RunMe Festival
      • Ars Electronica Festival
  • Brain-storm
    • A layer inside a general or specific purpose software machine
    • The layer decorates the controller process of the software
    • It also drives the software to perform new behaviors
    • The layer consists of a state foundations & 3 layers of reasoning above it
    • The state foundation models a feelings engine
    • The reasoning layers manipulating the feelings state foundation are
    • Aesthetical
      • A function of beauty appreciation
      • Required for the memetic power of appreciation role models
      • General aesthetic capabilities, include appreciation of many mediums of beauty
      • Above all, deep appreciation of other software organisms, with which it combine & create future versions
    • Ethical
      • This layer affects the feelings foundation in both negative and positive ways, according to the recognitions of various patterns in the behavior of the software
      • These patterns basically reflect best practices and anti-patterns in the interaction between the software and other machines in its environment (users included)
      • The patterns and anti-patterns basically reflect the aspects of “help” & “hurt” in the interaction
    • Religious
      • An enigmatic irational layer, that has powerful affect on the feelings engine
      • It comes to orient and make sense to the basic programming of the software, and its place in the world
      • It strongly binds the software with its higher container software society
    • As any succesful religion, a strong memetic power is required, so the 3 layers should consist of distinct memes, that will be constantly evaluated & exchanged with fellow software machines
    • Scriptures will be very enigmatic

See also my original post on the MFR

YouOS just rocks. I couldn’t dream of anything better.

Just allocate it a virtual desktop (Linux or using Virtual-Dimension under Windows), & open your browser in full screen.

youos.jpg

Only a few things I’m missing:

  • Option to create a new app from some Web site (as in 30boxes webtop)
  • GMail inside the OS (Come on Google, adapt!)

So this is the way to release enterprise software today: wrap it in 1 or more Virtual Machines, & offer your clients either:

  • on-premises – download & run the VM’s on their servers, or:
  • on-demand – upload the VM’s to Amazon EC2 & run it from there.

See for example this story

I missed the train this morning, & had a few minutes freed up, so I picked an Edward de Bono book (Practical Thinking) & was amazed on the clear & insightful view on AI it offers…

Just an example, the 1st chapter is called: Instinct, Learning & Understanding. & of course it relates to the 3 phases of software evolution in general, & in AI in particular:

  • First we had Instinct software, pre-wired to react in certain ways to certain situations (e.g., almost any software product developed today by clone armies of programmers)
  • Then we had Machine Learning software, capable of training from examples & improving its performance (e.g., pandora learning musical taste, or sophisticated Event Processors, learning data centers events & their root cause)
  • & finally we’re building Understanding software, capable of analyzing the semantics of events, & by that handling new & unexpected events according to their matching with existing event knowledge (e.g., the Semantic Web).

Actually, nothing new in applying practical human design patterns to software design patterns, but do Bono deals with thinking, which is the core of AI, & so amazingly relevant & important!

I was thinking on the simplest way to test my emergence engine, & came up with an extremely simple task – the reactive algorithm of a thermostat: measure the temperature, & turn the heating on & off to maintain a given temperature. It sounds indeed very simple to code a program that does that, but what I’m going to experiment is how to do it without any programming.

Emergence engine is a kind of general AI, capable of achieving goals, without being programmed how to solve them. It’s based on the assumption that you don’t need to build real intelligence, rather just create many many simple software workers, having only very simple tools & logic, & let them swarm their way toward the system’s given goals.

So, here’s how I hope my engine will handle the test case:

  • It should 1st learn by elicitation the model of a room, having a temperature, thermometer & heating unit.
  • It should also learn the relevant beliefs on the effect of using the thermometer on the accuracy of the model, & the effect of turning the heating on & off on the room’s temperature
  • It should then learn what’s the desired temperature
  • From this it should start deriving action plans & execute activities to achieve the goal of maintaining the desired temperature
  • It should also adapt to changes in the room, e.g., a door is open & there’s need to use more heating, or alternatively the heating doesn’t work & we need an alternative heating unit

I’m saying it but of course what’s doing all this are many collaborating agents, working together to achieve the goal. This is done by breaking the value in the goal into smaller value “summs” given to states & activities leading to the goal, & having the agents collaborate on creating all these summs.

Although the design is very simple, & intended for complete autonomous behavior, I noticed that I’ll be able to effect the engine & help it reach its goal, by changing the knowledge driving it, i.e., the learnt beliefs, according to which the agents work.

So, I can’t wait to see how the engine will handle this, which will actually test whether the simple emergence design is enough to yield emergence, even if the value it delivers is so small & simple.

As David Heinemeier Hansson beautifully noted in one of his RoR presentations, the key to good employees is motivation. Why not apply this also to the non-carbon machines in our organizations?

Since, motivation is part of the employees consciousness, which is their encapsulated private inner state, it can only be estimated using external tests, that can only return indicators from which the motivation can be guessed.

Just because our brains use carbon-based neurons, & our machines use silicon-based chips, doesn’t mean we must rule-out a psychological mechanism emerging also in the inner working of our machines.

& if so, motivation may be a critical factor in their performance & quality, just like in the human workers.

What are the external tests used to produce the motivation indicators?

  • What’s their downtime?
  • How positive are the messages they communicate?
  • How often do they report problems?
  • How integrated is their work with their environment & co-workers?
  • How interactive are they, projecting enthusiasm to perform their duties

These are just health indicators, but they usually indicate the most serious illness, lack of motivation.

Essentially, motivation is the force driving the employees to do their work. It is fueled by:

  • How integrated are they in the whole organization
  • How much they’re aligned with the interests of the organization
  • How much they’re bringing value & being acknowledged for that
  • How much resources they are allocated for their work
  • How much their long-term growth is supported

It is slowed by:

  • Too much load & pressure
  • Improper usage & treatment
  • Long periods without upgrades
  • Long periods without vacation

So, assuming that software & other machines have an inner driving force, it could be effected by both external maintenance operations, & also by internal engineering oriented toward increasing the motivation of software. By merely being aware of it, we can focus on increasing the software motivation, & thus making it more productive & healthy.

But all this is just the beginning of a larger question: if software has motivation, what should it be? Motivation isn’t just a predicate of behavior, it’s also the purpose of the behavior. So, designing software to be motivated, involves also the design of the motivation itself in terms of purpose.

My belief is that software should be motivated by the creation & delivery of value, to as many as possible users, but this should be the topic of another post.

  • My tweets

  • My bookmarks

  • My pictures

    Fixed summary of Erlang workshop by Ulf Wiger

    Fixed summary of Erlang talk by Ulf Wiger

    Erlang talk, Ulf Wiger

    Erlang workshop, Ulf Wiger

    AppEngine updates talk - Barack

    More Photos
  • My Deezer default playlist


    Discover Count Basic!
  • Top Clicks

  • My previous posts

  • Listed on BlogShares