Wednesday, 21 March 2012

Life is a Pit

Life is a pit. You are thrown in. You slide down from one steep end. Then the slope becomes gradual and you reach the bottom point. After that you walk upward. Then climb. The further, the steeper. Until you push so hard that either you are too tired or you hit the wall, the other side of the pit. That is it. The life is all what’s behind you. And there is nothing more. Appreciate your pit. And fill it with love.

Simple Questions of Nature

Life and Nature consists of simple questions and simple answers. Its only their mosaic makes them look complex.

Wednesday, 14 March 2012

Copyright Is Greed

"...my objection to copyright of any kind..."
Leo Tolstoy, "Letter to the Free Age Press", 1900


Copyright protection is greed. Much can be said about the usefulness of copyright protection, but nevertheless it is greed. Greed can be basis for some aspects of society. Societies with a focus on greed are often more effective in achieving superiority over other societies, and as a consequence obtaining power over them. However getting the supremacy is also the aim of a society based on greed. So the usefulness of greed is measured by the effectiveness of achieving aims of the very same greed.

Thursday, 8 March 2012

Law of Truth Conservation

Truth is conserved in consistent systems. Consistent systems are those which do not produce any contradictions by internal logical inference. It is obvious that any consistent axiomatic base produce a consistent theory in which true statements remain true regardless of new theorems and conclusions. Less obvious but still easy to see that true statements remain true even if the system is expanded by new axioms or other statements that are not derived within the current theory as far as the expanded system remains consistent.

Interesting implication of this line of thought is that a person retaining consistency of hir views is not able to learn new facts contradicting hir system of beliefs even if the facts seems to be true. To change view one has to accept many contradicting to the current beliefs facts in order to build a new consistent outlook and reject or reassess old known facts. For example, if a particular view is supported by ten known facts, another hundred new facts are not able to flip over the view because each of new facts is rejected due to contradicting to the current view hence breaking the consistency.

Therefore as long as one maintains hir set of beliefs in consistency, truth is never going to change.

Wednesday, 7 March 2012

How you know that others have consciousness

First let’s ask a question how do you know that another person understands a particular concept in the same way as you do? You ask about different aspects of the concept and see if the answers correlate with your own answers to the same questions. It is possible that up to a point the answers may correlate well, but the person still has misunderstanding of the concept. If you realize this possibility you ask more questions to eliminate such case. Theoretically it is possible that after any length of communication the person still misunderstand the concept. But this would be highly impossible for long enough conversation. One can say that the assurance of mutual understanding asymptotically approaches to the full confidence (but never reaches it) to any upfront desirable level. In this sense it is valid to say that it is possible that one can be “completely” sure that there is no misunderstanding between communicating parties.

Secondly, having consciousness assumes a specific type of behaviour of a person or animal. When you realize correspondence between your own conscious behaviour and your behaviour perceived by others, you can project this correspondence on other people. Here I do not distinguish behaviour of a person and hir answers to questions. Now just by seeing the behaviour of another person for long enough time you may come to a conclusion that the other person has consciousness similarly as you do.

Finally, since the correlation between the reaction of a real person and the reaction of an imaginary conscious person making conscious decisions takes us to any degree of confidence that the real person has consciousness, it is impossible to create a zombie like mind mimicking conscious behaviour while lacking consciousness. In other words Searly’s weak AI is impossible and cannot exist.

Same files in OS

How long we have to wait until OS developers finally implement shared storage of duplicate files? Just imagine your OS without app installations and system rotting.

CapsLock and Password

This is a pretty stupid problem to me. All people suffer from it and will be suffering for a long time. Why not to allow both passwords to match: normal and CapsLocked? The only downside in this case is that brute force cracking time is halved. On the other hand, how many (in percentage) create passwords with capital letters! With the exponential complexity growth the register switch does make difference at all. Programmers of secure systems, please, be kind to their users!

Friday, 13 January 2012

Mind Existence Paradox

The more you think about vastness of the Universe, the more you think that Life and Mind must exist somewhere else as well. But they do not. The more you think about Life and Mind, the more you think that Life and Mind cannot exist at all. But they really do.

Wednesday, 11 January 2012

Science and Philosophy

Every Science starts with Philosophy and ends with it. If philosophers talk about something new, it is a sign that a new science is to be born. If philosophers talk about a particular science, be sure it will be dead soon.

Sunday, 1 January 2012

Statute of True Pirate

  1. Do not steal
  2. Assist against copyfucker attacks
  3. Do not buy and do not sell
  4. Do not lie except to copyfuckers
  5. Do not facilitate copyrighting
  6. Be free
  7. Do not ask and do not blackmail
  8. Do not renounce
  9. Share everything except your identity
Below are some clarifications.

First, True Pirate (TP) divides people in four groups:

  1. TPs – those who has deep belief in TP values and follow TP Statute
  2. Blokes – those of layman’s ideology, but supporting pirating and disapproving copyrighting
  3. Copyfuckers – copyrighting official representatives or anyone who facilitate copyrighting
  4. Herd – all others.

TP hate fiercely copyrighting and copyfuckers. This hate is not in their rules, but in their nature.

Second, TP divides the world into three concepts:

  1. Physical world – inanimate matter, that follows a conservation principle: if something somewhere reduces or disappears, then something somewhere increases or appears;
  2. Soul world – living matter, everything which is part of life or can be called alive or having mind;
  3. Information – bits that can be copied from one place to another without destroying the origin. This can be software, computer viruses, digitized works of art, or any other data written on medium.

TP believes that information is neither physical nor spiritual. And while spiritual beings can possess objects of physical world, they can only use information, but cannot forbid other beings to use that information as well. Hence no being can own information even if it is embedded in the medium which belongs to it. There are no copying restrictions on information in the Nature, except human society.

1. Do not steal. TP does not take private bits, something that is not intended to be released in public; if the owner has released bits to public they are not private anymore and can be freely copied.

2. Assist against copyfucker attacks. TP protects and defends as far as possible and to the best knowledge anyone against a copyfucker offence.

3. Do not buy and do not sell. TP does not buy or sell bits. However it is acceptable to buy and sell physical media or service of copying when the content of bits is irrelevant or does not have value.

4. Do not lie except to copyfuckers. Since TP does not recognise the supreme authority, his word should be law in relation to himself.

5. Do not facilitate copyrighting. TP watches his actions not to assist or participate in copyrighting even indirectly.

6. Be free. TP does not fulfil will of others. TP does not participate in creation of something which is intended to be sold.

7. Do not ask, and do not blackmail. TP copies whatever he wants never asking for permission. TP ignores any copyrighting notes even if they are anti-copyrighting. TP never asks for benefits threatening to reveal sensitive information to public. He reveals it immediately and unconditionally.

8. Do not renounce. TP has no fear to expose his beliefs.

9. Share everything except your identity. TP does not possess bits privately, unless they related to his own personal life.

Wednesday, 14 December 2011

Wellbeing

Health and Well-being are based on four elements:
  1. What you eat;
  2. What you breathe;
  3. What you think; and
  4. How you sleep.
    Take care of those.

    Modern Society

    Law and order of a modern society is rather illusory. A western "civilized" society is mostly based on chaos, negligence, and financial greed.

    Thursday, 17 November 2011

    Neuroscience

    Those who do research in physics do so because they are too afraid to look in the face of reality: consciousness and neuroscience.

    Monday, 14 November 2011

    Carcinogenic Aloe

    I read on wikipedia that Aloe vera is "potentially carcinogenic" (List of herbs with known adverse effects). Hmm, that made me thinking. The reference is "Should we be concerned about herbal remedies" 2001 by Memory Elvin-Lewis. But in that paper she just quotes another paper titled "Anthranoid laxative abuse--a risk for colorectal cancer?" 1993 by Siegers et al, which conclues that "Anthranoid-containing laxatives--aloe, cascara, frangula, and rheum--may play a role in colorectal cancer" using a quite controversial analysis. A quick search finds another paper "Anthranoid laxative use is not a risk factor for colorectal neoplasia: results of a prospective case control study" 2000, G Nusko et al, that says "Neither anthranoid laxative use, even in the long term, nor macroscopic or marked microscopic melanosis coli were associated with any significant risk for the development of colorectal adenoma or carcinoma". I wonder, who might be interested in discrediting herbs and in particular Aloe?

    Follow up 28 Nov 2011
    A few other wikipedia articles cite a paper "Vitamins and minerals: not for cancer or cardiovascular prevention" published in 2010. I could not find the text of the paper, but from the journal content list this paper is only half a page long, and it does not have the author! I cannot believe how statements made positively and negatively polarized depending whether they are about chemical drugs or natural approaches.

    Another citation from the wikipedia article "Cancer": "Some studies have found that consuming lots of fruits and vegetables has little if any effect on preventing cancer". The paper, it is being referred to, says "A very small inverse association between intake of total fruits and vegetables and cancer risk was observed in this study. Given the small magnitude of the observed associations, caution should be applied in their interpretation.". I just wonder who wants to write "Some studies have found that consuming lots of fruits and vegetables has little if any effect on preventing cancer" referring to a paper which does not make that statement. However there lots of studies which prove that vegetarian diet significantly reduces, for example, risk of colon cancer.

    Someone wants to sell drugs badly and in large amounts.

    Thursday, 29 September 2011

    Consciousness fusion: consciousness upload without brain scan

    One of the known possible consciousness transfers is a gradual replacement of brain regions with artificial blocks. To me a problem with this approach is that even if the regions are small, there still must be the scanning procedure to extract not only functionality but the memory as well, because the brain has memory and it is stored in its network connections. Another problem in my opinion is that all this seems very unrealistic: keeping the brain alive and properly functioning with embedded artificial circuits.

    There must be a simpler procedure to transfer the consciousness into the artificial brain. Start with a conscious but fairly empty artificial brain which is associated with a body similar to human, a robot. Now connect all sensory inputs from the robot to the real brain. At the same time shut down (or force to ignore) the sensory inputs of the real body keeping the real brain alive. Attach motor functions of the real brain to the robot. The artificial body of the robot is now governed by two independent minds: the artificial and the real. The artificial mind would be quite passive because of learning, so mostly the real mind would be responsible for the behaviour of the robot. After some short time the real mind starts to associate itself with a robot – with all its sensory inputs coming from and motoric functions acting through the robots body. After longer time the memory of life experience builds up synchronously in both minds the real and the artificial; although the real mind has its own memory baggage – the life before the connection. After even longer time, the percentage of pre-connection experience decreases. It might be possible to revoke older memories like it happens with a repeating recollection which overrides the older memory, hence moving the surrogate memories of older life to the artificial mind. At some moment the old memories of the real brain can be shutdown. Once this is done the system represents two identical minds one of which is real and the other is artificial. After this, switching off the real mind will not change the conscious state because that state is the same in both minds.

    The net effect of all this process is a gradual transfer of the mind from the real brain into the artificial without conscious experience being interrupted. Obviously you would loose all your real memories obtained prior to connection. Is it worth it to live forever?

    Thursday, 22 September 2011

    Fuck Google Maps Offline III

    This is to replace two previous my posts "Maps Offline with Tile Viewer (part II)" and "How to browse Google Maps offline"

    A few years ago I wrote my own tile viewer for viewing Google Maps tiles. Then I created a quite elaborate system for downloading tiles from Google servers. That all failed miserably. For the viewer I did not have much time for full application development. For the downloader I found that Google cleverly fights with such smart-asses like me. All in all I figured out that the simplest solutions are often the best. And below is the way I found practical for all my needs.

    You need:
    0 Working Internet Explorer (IE), if you are using Unix OS run it in Virtual machine
    1. iegmsas console program
    2. SAS.Planet (optional if you have your own tile viewer)
    3. TrueCrypt (optional if you do not intent work with Tbytes of volumes)

    Starting from the bottom up.

    3. TrueCrypt is a program, which easily create a virtual hard drive. This program is necessary for the cache because if you have above 10-20 Gb of tiles moving the cache around becomes impractical. Instead TrueCrypt has all your cache in one file. If you are just starting creating you cache you can ignore this point at all and worry about it later.

    2. SAS.Planet is a nice but crooked program for viewing and handling tiles. Its advantage is that it is the best program that exists, quite reliable, and with impressive functionality. A big disadvantage is that it is written in Russian and English version is way not too intuitive and user friendly. [Maybe it is done intentionally.] I am using the English version. It is very satisfactory once you get used to it. This program has its own built-in downloader for different map services including Google maps. But it does not work reliably because as I mentioned above Google knows about little fuckers and tries to prevent this kind of activity.

    1. iegmsas is a simple console program which reads IE cache and steals tile files from there. You can download C++ source code here http://mazonka.com/bin/iegmsas.cpp or Windows executable here http://mazonka.com/bin/iegmsas.exe

    * iegmsas takes two optional arguments N and T with default values 1 and 300 as
    iegmsas 1 300
    N is a number to check the IE cache; 0 for infinite loop;
    T is the time delay between cache cheking

    * iegmsas tries to read the directory HOMEDRIVE\HOMEPATH\Local Settings\Temporary Internet Files\
    Which is correct on XP, but different on other Windows like Win7
    To change the default path create a file 'iegmrip.in' and write in it a line
    ' C:\Documents and Settings\Davy\Local Settings\Temporary Internet Files\'
    No quote marks. Mind 2 spaces at the front. Fix the user name and the cache path.

    * iegmsas creates two directories 'cache' and 'gm' where tiles are copied. The first directory stores the tiles in the format for SAS.Planet. The second directory 'gm' stores the tiles in the format for OMTileViewer. So basically files are duplicated in these directories. The only important difference is that only 'gm' directory is checked by iegmsas before copying new tiles. So if you remove 'gm' directory iegmsas will copy all tiles from IE cache.

    0. IE can be left with arrow key pressed if you press an arrow key and the press Alt or another key not releasing the arrow key. If you need a more elaborate navigation send me e-mail, and I will send you programs which make IE navigate in more complex way, for example, follow the roads.

    Tuesday, 13 September 2011

    Believing in Strong AI

    People not believing in Strong AI will exist even after the technological singularity like all those who still believe in immortal soul.

    Monday, 12 September 2011

    Questions, questions...

    There are questions which are difficult to answer. Inquiring mind trying to be consistent answers them according to its own culture, not science. The very concept of knowledge fails in such areas of cognition.

    Question 1. What is the ultimate cause of everything? What is the creator of the Universe? If the beginning of the universe had a creator then who is the creator of the creator? If the creator made himself, what is the reason of such creation?

    Question 2. Is there any mind in the Universe different from ours? Another mind may be different so much that interaction with it may be impossible or virtually impossible.

    Question 3. Is the Universe controlled by determinism? Quantum physics tells us that quantum processes are fundamentally non deterministic for any observer. So the question is, is it non-deterministic for the Universe itself as well?

    Question 4. Is there free will in a deterministic world? Assuming, that the quantum world is not needed for explanation of intelligence and consciousness, how certain laws create your own personal free will?

    Question 5. How the past can be multiple? The double-slit experiment proves multiple histories ....

    Tuesday, 6 September 2011

    Theory, reality, and a white car

    I have a theory that my car is white. The facts are that my car was white when I was buying it. Yesterday it was white, and every day earlier I saw it being white. Now the prediction of my theory is that tomorrow my car will still be white, because I have a law in my theory that my car is white always. This theory is not reality, it is just a theory. Because it might happen that the car will get painted to some other colour. In that case my theory would fail. The law would be broken by reality.

    My theory is that the words: theory, knowledge, memory, word, concept have one root of meaning. Every word in a language is some kind of theory with its predictive power. We use language constructs to model the reality only eventually to be able to make predictions. In situations when we can descent to greater details of the model, more precise description is possible; for example, science theories. In other cases when the model is difficult to break into composites, we invent a concept, label it with a word, and use that word in a context to pass the information about future events; for example, knowledge or thoughts. I think that my car is white. Here I pass the model of my perception of the car. You would be surprised to see me not surprised seeing that my car is not white, because I told you that I think it is white, unless I lied. Lie is another concept quite different from think. In your model of me you may assume that I may sometimes lie. So your prediction of future events consists of many theories and concepts put together. The scientific method is built in our language, which appears to be the only way to describe the reality, via models and theories even if the models and theories do not look like models and theories in their usual meaning.

    Thursday, 25 August 2011

    Pedagogical advice

    If you ask someone to do a particular job, then that person subconsciously bears in mind that taking care of this job is your responsibility, hence less likely taking the initiative in the future. This works especially apparently with children.

    Thursday, 18 August 2011

    On Memory 2

    Memory is information. Information has sense. Sense is only included in the future. Different senses cause different futures.

    The past is one. Futures are many. Every possible branch of the future is defined by the conscious selection of an organism. The conscious selection of the organism is defined by its prediction of the future, and this prediction is the sense of the information.

    Hence the past and the future are linked through the prediction of organisms, the sense of information which forms the organism's memory.

    An active agent, organism, submerged into the environment possesses information about the environment forming its memory. Since no organism is programmed by a (or the) creator, that information is the only product of the environment allowing us to distinguish the organism from the environment.

    To me, the separation between the past and the future, and between the organism and the environment is only a perceptional effect. In reality it is just one entity like one building viewed from different angles.


    Little wrongness amongst many


    In confrontation the easiest situation is when your enemy is wrong. How frustrating it is when your opponent is almost right and wrong just a little; and this wrongness is supported by many. That always have devastating effect which everyone understands to be wrong, but no one seems to understand why. Little wrongness among many builds up, pours itself out in immoral actions or simple stupidity which cannot be fought.

    Friday, 3 June 2011

    Life and Science

    Science is an aspiration to increase knowledge by any opportunity. Life is an aspiration to increases its presence by any opportunity. Things which can be copied must be copied.

    Friday, 20 May 2011

    Road for a thought


    With age the mind becomes more like a highway: thoughts move much faster, but leave no trails.

    Tuesday, 17 May 2011

    Real art

    Real art must not only be useless, it must also be incorrect to ensure no possible practicality in the future.

    Tuesday, 22 March 2011

    Principles of relativity

    1. Relative Motion
    If you move in uniform motion relative to some surface and the surface is perfectly smooth, then you cannot make a physical experiment to find out whether you move or not.

    2. Uniform Motion
    If you do not have objects of reference, you cannot make a physical experiment to find out whether you move or not.

    3. Special Relativity
    If two events A and B take place so that A happens after the point in time necessary for light to reach from A one to B, but earlier than the point in time necessary for light to reach from B to A, then you cannot make a physical experiment to find out which event happened earlier and which later.

    4. General Relativity
    If you do not have objects of reference and experience inertial force, you cannot make a physical experiment to find out whether the force is caused by acceleration or gravitation.



    These principles have so beautiful symmetry that it is difficult to imagine that they are not true. However the first one is obviously false because the surface must be made of atoms. Only in an imaginary universe where the matter can be continuous this principle holds. The second is the Galilean invariance. And the last two are Einstein’s.

    Monday, 14 March 2011

    Memes war

    Evolutionary principle of information propagation is universal. Starting from a simple hydrodynamic turbulence and stretching to more complex systems in chemistry, biology, genetics and politics, informational entities procreate as soon as new area suitable for existence is recognized.

    In this sense biological organisms are not much different from turbulence vortices. When liquid changes its state from laminar to turbulent, there is a point of instability where an appearance of one vortex cause an avalanche process of recreating vortices first in the neighbor area and finally in the whole volume. One can say that a vortex wants to reproduce. Later they can fight for space killing each other and reproducing whenever possible.

    Memes use people as an environment. When mutually exclusive memes clash and fight for survival the most effective solution is to eliminate the enemy meme habitat, i.e. a person who has an incompatible belief. Less severe measures are possible, but they are less effective. As long as people possess mutually exclusive memes, there will always be violence and wars.

    Memes as any other evolving things do cooperate to fight common enemies. This cooperation assumes acceptance to some extent to foreign memes. Another acceptance can be to non-hostile or irrelevant memes.

    Wednesday, 9 February 2011

    Pull and Push Requirements Revisited

    Architecting is bringing together two entities: what we have and what we need.

    What we have can be improved and modified in a number of ways both simultaneous and mutually exclusive. You can imagine a tree of paths starting from one node. The node is what we have. The branches are what can be done about or with it.

    The same situation is with the other pole – what we need. If it’s a node, then the branches coming out of this node are the possible objectives which if achieved can deliver what we need.

    The architect work is to build the branches and link the branches from the different sides. Building architecture for complex systems is a hard work, often not achievable in the original idea. I find it important to identify five directions of thoughts: what we have, what we need, what can be done, ingredients of what we need, and the grey area of linking.

    Monday, 24 January 2011

    Evolution without natural selection

    I find the idea that evolution is possible without natural selection fascinating!

    Suppose that there is a fixed number of species with equal number of male and female and exactly the same length of life for all species. Each pair produce two offspring male and female keeping the perfect balance of the whole population. Now is the question: is evolution possible in this scenario? One answer is no, because there are no natural selection and no preference is given to one carrier of genes before another.

    If genes are taken from the parents in exactly random way then each parent pair pass 75 per cent of their genes to their offspring, because it is 50 percent from each parent to each child, so 25 percent is shared between two offspring. It means that with each generation a quarter of all genes are lost. However due to genes variety and enough repetition within the whole population, the number of distinct genes may not be decreasing. If there are random mutations in genes the variety can increase. In the other case when passing genes is not fully random, less than 75 per cent is being passed, so the washing out of genes is even faster.

    Suppose however that there is a mechanism which marks genes of the individual as better or worse. If two genes one from each parent fight for the place to be in the descendant based on their marked value, then better genes are passed to the next generation and worse genes will be lost. In this case the natural selection happens on the level of genes and not on the level of species. Overall trend is that each generation has better genes even that no preference is given to any creature during its life.

    Obviously there are two questions here. First what is that mechanism which makes genes to be marked and compete? And second, what means a better gene? Or in other words, how the organism decides which gene to reward and which to punish? Let them to be open. What is interesting is that evolution happens in a completely perfect and stable environment for species.

    If something like this happens in reality, the main reason for this probably is the elimination of undesirable mutations in genes.

    Thursday, 13 January 2011

    On Memory

    You know what is memory. It is in your memory. But what is it? It is defined vaguely as 1) something remembered; 2) preserved data for retrieval. How do I know that someone has memory? It is simple - if his behaviour adequate to his past experience. But what if that someone does not reveal any behaviour? In such case to assert that the memory exists is problematic. In the simplest case the memory is a table device with input and output entries. For any particular input the device manifests output. In a computer, memory input is the address of a memory cell and output is the value stored in the memory cell. Note that in computer computation it is important that the addresses in memory are associated with each other by arithmetic operations; otherwise no useful computations would be possible.

    Behaviour or output is necessary in memory definition. If no behaviour present (for example one cannot extract values from the memory) then it does not matter whether a device has anything in its memory or not. For an external observer memory is not present.

    Time is necessary for memory definition. Memory links two events distant in time. And the opposite is true, if two events distant in time are linked, then there memory exists.

    Space is required for memory associations. Different memories can be liked in space by association. In other words memory about memory maps time link into space link. The most interesting thing here is that mapping back space link into time link can be done arbitrary by a device. For example time can shrink or be reversed. In the first case, the device reveals ability to predict and in the second to infer.

    Wednesday, 17 November 2010

    It

    In darkness my vice
    Is a simple device
    It's almost alive
    To the way I contrive
    The life is profuse
    But too easy to lose
    I wish I don't die
    When It calls itself I

    Monday, 1 November 2010

    Unfree Will Paradox


    Hello. I am a machine, robot. My Master is doing an experiment with me. They ask me to choose between two doors A and B. Death awaits me behind one of the doors. And I do not want to choose that one. The difficult part is that the master made a clone of me previously and did this experiment with my clone. Now Master put Death behind the door my clone have had chosen. So if my clone chose the door A, then Death is behind the door A. I cannot use any environment information to make my decision, only my internal reasoning – that is part of the experiment.

    Had the clone not been told that he also had a clone, he would have chosen the door A; then I have to choose B. But if the clone had been told that he had been cloned as well and the clone of the clone did not known about being cloned, then my clone’s selection must be B and my selection have to be A. This means that my selection must depend on the depth of knowing which of the clone’s clone did not know about being cloned - whether it is odd or even.

    The real problem is that my clone got exactly the same information as myself. Whatever I choose, that must be the same as the selection of my clone. So the Death will be behind the door I will choose. Whatever door I choose! I cannot deceive myself and choose the other, because any my reasoning had already been simulated.

    Laws of Nature

    The laws of Nature are simple, but too weird to discover.

    Tuesday, 12 October 2010

    New York Game, Alien Test, and Pain - Random


    New York Game
    The brain makes mistakes. Mistakes are not a deficiency of the brain work, but its quality. They reveal a little bit how the brain works. This is not a game, rather a trick we did to each other when being kids. One asks another to constantly repeat the word “New York” and then answer a question as quickly as possible when suddenly asked. The question was what the capital of the USA is. We all new that the capital of the USA is Washington, but not perfectly – you had to have a second to think (we lived in SU and were kids!). The answer was “New York”. But when told it is not correct, one who answered was really surprised that he made a mistake to such a simple question.
    The same mechanism of the mistakes exposed when you make a mistake when typing. Very often (at least to me) one types a letter of the word following the currently typing. This is because the task of pressing keys is interfered with highly active predictions of the next word.

    Alien Test
    When you see an alien how would you know that it is intelligent? What is the simplest communication which lets you know that the other side can think? I could not find any simpler way than the following. Present to it a sequence of 5 symbols (spatially or temporally) where the first and the second symbols are the same, and the third and the forth symbols are the same too, and the fifth is different, for example, AABBC. If the reply is the repetition of the fifth symbol, then (assuming a counter test that it is not just a repetition of the last symbol) the replying entity is able to process abstract patterns, which is a necessary condition. Processing abstract patterns may well be necessary and sufficient condition for a living intelligent alien, but probably not sufficient for an artificial intelligence. Because it is easy to write a computer program to pass this test which cannot be called intelligent.

    Pain
    Do you feel the pain? When you feel the pain what do you feel about feeling the pain? An interesting question arises if one thinks about the pain as a memory. If someone undergoes an operation under anaesthetics and does not remember feeling any pain during the operation, does it matter if the person felt the pain but forgot about it or did not feel the pain at all? What if we are unable to distinguish between these two? Now change the time of pain erasing from the memory from zero to infinity. The fact that the person felt the pain is true as along as he remembers it. But when the memory is erased the pain has not happened anymore.

    Tuesday, 5 October 2010

    Maps Offline with Tile Viewer (part II)

    See Update Fuck Google Maps Offline III

    Offline Maps Tile Viewer is a program I created quickly to use my netbook for viewing google maps without a network connection. I found frustrating not to be able to have full control over the cached images using web browser or google earth. Other different offline map viewers did not satisfy me.

    My requirements were simple: there are a number of square (or rectangular) images which can be tiled together to construct a huge image; a viewer must have a viewing area moving around over this huge image; images can have different layers (as satellite, maps, topo etc) and different scales better or worse resolution; it should be possible to geographically reference them, i.e. have latitude/longitude coordinates associated with a position on the image. Cross referencing is necessary to switch between different resolution scales - hence geo-referencing is a natural way for that. Also images should not have some strict predefined format or organization, it is just a collection of small images named and grouped in directories in a particular way.

    Download here.

    It might not be very easy to start with it, but once you understand how it works, it gives you full flexibility of what is required from a simple map browsing program. You can even add GPS dongle and bind the viewer with the position obtained from GPS.

    One of the delicate problems is maps itself. It is very easy to download automatically (more on this here)
    from google maps; but it is not very polite, and distributing is not too.

    Friday, 17 September 2010

    Pyramidal intelligence

    Consciousness is an intelligence phenomenon. The intelligence is based on three interconnected functions: language, abstract thinking, and self-awareness. Those three are just internal mechanisms which have their own place in neural processing. In this sense consciousness and self-awareness are two distinct concepts, which some confuse. Self-awareness is a placement of self into the internal model of the world, but consciousness is kind of side effect of intelligence. Consciousness is responsible for conscious behaviour and decisions which is pertained only to intelligent entity. Unintelligent robot or animal cannot make conscious decision although it can possess self-awareness.

    "Saccade hypothesis" is an important detail when modelling information processing. In this processing predictions are models of the environment. Predictions are hardwired to the higher order motor levels bringing the environment into the loop of the information circle. So "saccades" and behaviour allow to keep the current model activated, inhibiting all potential concurrent models. One noticeable effect of this is when you stare for a while at a wall you can see come patterns or pictures, but once you move your eyes the images disappear.

    If the prediction is wired to behaviour, then 'free will' is automatically shifted into prediction area. In other words we chose what to do next by thinking what happens next. That makes sense because we do whatever we think we will be doing. A thought of moving arm moves the arm. But a thought of it is a prediction of the current active model. That is how micromovements manifest suppressed actual movements.

    In this view conscious behaviour of people and behaviour of animals are based on the same principle, and the processing of information is exactly the same. This is why our brains have the same structure. The difference is only at the level of abstraction in the model of the environment. A human brain can consume or process more abstract models (even the models created by itself) due to sufficient cortical capacity.

    Friday, 7 May 2010

    Multiculturalism

    There is an unclear area in the term multiculturalism. Multiculturalism is promoted as a beneficial feature for a society. What people often miss is its application to a community. Community is a number of interacting individuals. And the community has to be multicultural, not a society composed of multicultural communities. If this is not understood clearly enough, it appears to be a big dilemma by the promoters of multiculturalism.

    In other words I would like to live with my neighbours being from different cultural backgrounds assuming that our neighbourhood is a community. But I do not want to live in society broken by different communities on cultural basis.

    Electrons and Qualia

    One of the conclusions from my previous post is that no idea or concept inside a human mind can be expressed in one hundred percent precision. Language is a mechanism for putting thoughts into sentences. A sentence is only a projection of a thought; in the same way as two dimensional images in our retina are projections of three dimensional objects. But the brain does not usually have problems to reconstruct the real objects. This provokes a question: what is a real object? Take, for example, an electron. We can distinguish one electron from another, because they may occupy different parts of space. However there is no way to distinguish them if you exchange their positions. That means that the electron is really the same at this place and at another place. Now, is it really two different electrons, or just one, the same electron appearing to us at two different places? There is no answer to this question. You can only believe in one or the other way. If it is the same electron at different places, then in our perception it is equivalent to a pattern. Suppose you look at a sequence of numbers, and you notice a particular pattern in that sequence. Does the pattern really exists or is it your brain that creates that concept? As far as you can differentiate something (electron, pattern) from something another, this is a real concept which can verbally be transferred using language. But this concept can be expressed only as a difference, not the concept itself. It is the same as you are not able to explain what red colour is, but you can show and confirm with others that you can differentiate red and green colours. So if you loose, for some reason ability to differentiate positions (plus maybe some other quantum states such as momentum and spin) of electrons, then a particular electron would become a quale - a not expressible concept like red colour! Then if electron, the basic element of the material world, can be a quale, what is the material world? Qualia?

    Wednesday, 28 April 2010

    Space, Information, and Consciousness

    Correlations in space are objects.
    Objects exist in time.
    Correlations in time is memory.
    Memory exists as information.
    Correlations in information are abstractions.
    Abstractions are expressed in language.
    Correlations in language are concepts.
    Concepts exist in minds.
    Correlations in minds is consciousness.

    Thursday, 18 February 2010

    Faces of consciousness and free will

    1. Self-awareness is contemplating self inside the model of the world. It is like you watching a chess board with all the pieces moving by themselves except one piece which moves at your will. This builds strong association between the perceived object and self. This piece you call 'I'. 2. Conscious behaviour is a prediction of the future of the world model with implications of the potential action of 'I'. You may drive a car unconsciously. But when a policeman stops you, you immediately become aware of all possible future scenarios of the current situation. Hence what you are about to do is a conscious decision. 3. Conscience is the ethical judgement of personal actions and thoughts. It is not only a perception of the facts, but also colouring them and placing on the scale of desirable and undesirable. Conscience is not really consciousness since it serves for establishing moral dogmata in relation to the behaviour. 4. Free will phenomenon appears on two levels. On micro-scale, actual movements and other muscle control is the result of a mental decision made by brain. A free will sense on this level comes from self-awareness. On macro-scale, deeds or life decisions are the result of conditional beliefs and circumstances. The beliefs or truths are a remembered result of combining the information coming from outside and internal emotional state and feelings. The truths are formed inside during the life and they condition our behaviour.

    Wednesday, 27 January 2010

    On consciousness

    What is the difference between conscious and unconscious action? Unconscious action is autonomous. It is executed according to a set of rules, although the action may be quite complex. Conscious action has a context – the environment, in which it takes place. Conscious action happens only after modelling of consequences. It implies perception of the implications in advance.

    Unconscious actions are not remembered, but conscious are. Why? Because the brain cannot predict the result of the modelling: it can predict environment, but it cannot predict its own imagination. So unpredicted experience is recognized as valuable and remembered.

    Why do I have only one consciousness in my head? Can I develop two and allow them to communicate? Indeed, if a part of cortex can model, predict, and imagine the environment why it cannot develop its own conscious behaviour? Or maybe we have multiple conscious agents in our head, but they so aligned with each other that they are not distinguishable. Have you ever heard voices in your head?

    Tuesday, 12 January 2010

    What is Intelligence

    you understand something only if you can program it (Chaitin)

    Intelligence is Abstract thinking plus Language plus Consciousness. Although all three are not independent, they can be understood in simple definitions.

    Abstract thinking is thinking in terms and concepts produced by mind, not sensors. The world mind perceives mostly consists of introspective data.

    Language is an agreement between communicating parties. Language serves as a port between the mind and the world.

    Consciousness is perception of the abstract representation of self in the world.

    The world is the model which the mind builds and holds to predict its future state.

    Self is the object in the world the mind has control on. Self does not have well defined boundaries, for example, a governor may associate himself with a state.

    Knowledge requires memory. Knowledge transfer requires language. Language is a simpler concept because it can be seen as a collection of symbols or rules. Knowledge is more complex because it is bound to language and behaviour. Any attempt to define knowledge immediately brings up a language. For example, storing any meaningful data requires some format, which is a language. But when we talk about knowledge, language is not necessary. For example, an ant knows where to crawl and does not need a language.

    To a simple question "What is memory?" the dictionary answers "The ability to recover information about past events or knowledge" or "a part of a computer in which information is stored". But then what means "information"? What means "information stored"? Is it just a cause forwarded in time to make something behave different?

    Friday, 1 January 2010

    How to browse Google Maps offline

    (See also Crumbles: Maps Offline with Tile Viewer (part II), update Oct 2010)

    Once I had a problem that I required my laptop to browse Google maps offline. I looked on the Internet but with no satisfying result. A simple task turned out to be quite complex.

    My idea was to have abstract and reliable way to cache and reuse the online content - tiled images. Here what I tried first.

    1. I wrote a crawler - a javascript program to force the browser crawl across a particular area. The input specifies latitude and longitude box and steps, zoom level, crawling speed, and satellite or map type.
    2. I made my own web server to be used browser instead of going directly to the Internet. I set up 2 machines (one could be virtual). Edit 'hosts' file on the machine A with the list of servers I would like to make cache pointing to the IP address of machine B.
    3. Machine B has to accept requests and re-request files from the Internet or retrieve from its cache. I wrote a simple program to do this task.
    4. The program running on the machine B did not directly request the data from the Internet. Instead it used wget program. It was a simpler solution since wget allows more advanced way of downloading, e.g. using proxy.
    5. Once the cache is full and ready the service program could be run on the machine A with no Internet.

    This approach did not work quite well. First complication was that the browser opens simultaneously many connections and my server was one threaded and was not fast enough to serve all of them in timely manner. To overcome this problem I wrote a serialiser - a program getting many connections simultaneously, but requesting only one at a time while keeping others on hold. This worked somehow, but slowly - not to my satisfaction.

    Finally I thought that I will download automatically tile images from Google using wget and later worry about viewing them. To my surprise after downloading tiles for about half an hour, I start getting response from the Google servers with the message something like "We are sorry but you are trying automatic downloading. To protect our customers we have to block your IP."

    An even simpler solution had been required. I noticed that Microsoft Internet Explorer saves files in its cache directory with proper sub-address names. I wrote a simple program to rip the files from the cache recoding their names. Using Internet Explorer I navigated IE over desired area, and then ran the program and all necessary tiles were successfully stored at my place with proper cataloguing.

    The last step was to cook a program (since I was not able to find appropriate application) to view the tiled images which I did very quickly and a bit dirty.

    Here are the tile ripper and tile viewer for Windows http://mazonka.com/bin/gmrip.zip

    I used this program when driving along Eastern Coast. The maps itself were on maximal resolution level 15 and occupied around 500Mb.

    Wednesday, 11 November 2009

    Measuring life

    Life is measured not in years but in a number of dreams of youth you have let go.

    Friday, 2 October 2009

    Thesis of darkness

    In an evolving system only around one twelfth of substance contributes to the observable cause and consequence relations, the rest is darkness.
    • Dark matter and dark energy in physics.
    • Dark DNA in biology – junk or non-coding DNA.
    • Dark money in economics – money made by promises, in opposite to visible coin, plastic, and digital money.
    • Dark information – unexplainable sequences of events.

    Wednesday, 30 September 2009

    Wealth and Income

    An interesting observation. I and many of my friends have to work to pay our debts. We are intelligent proletarians. A proletarian is a person who possessing neither capital nor production means, must earn his living by selling his labour. A non-proletarian may work, but he does not have to in order to support his living. We are paying out mainly our mortgages, which are mainly the loans for the houses we live in. And most of the value of the houses is the land. So basically we work hard to pay out the land we live on. That makes me ponder.

    A simple model. A number of people are willing to buy a resource which is not producible by labour, for example, land. The market price for the land rises up to the level of the limit of competitive abilities of those people. If the people are desperate they borrow from the bank some kind of paper. By doing this they sell their future labour. The owner puts this paper back to the bank, and the bank cancels the paper. When future comes, people have to work to pay back the borrowed paper producing a lot of consumable products. If the amount of products is more than enough, they have to produce all kinds of luxuries to please the owners of the bank and the resource previous owners. When the demand for the resource declines, the prices fall, leaving years of hard labour spent on something, which those people not really required at the first place.

    I always suspected that the slavery era has not ended. It transformed. People, who have to work and earn for living, pay taxes. They pay taxes directly through their income and indirectly through businesses they work for, and through the sale taxes. But some who do not have to work usually pay much less taxes, because their lives are businesses with tax deductible expenses. Am I a supporter of this kind of system? Would a simple solution as taxing wealth (not wealth taxing) instead of personal income make all people happier? That makes me ponder.

    Tuesday, 14 April 2009

    Bomb Problem (part II)

    Assume that point A is at location -1 and point B is at 1. If one source produced both A and B and the next shot is expected to be produced by the same source, then the best fit is the normal distribution with mean 0 and dispersion 1: N(0,1,x) - gives the maximum probabilities for points A and B. On the other hand, if different sources produced A and B, the best guess would be that the third shot is normally distributed with one of the sources F(x). Now since no information present about whether one or two sources produced A and B, give the same chances to either way:

    f(x)=(N(0,1,x)+F(x))/2

    For F(x), give the same chances to points A and B:

    F(x)=(F(-1,x)+F(1,x))/2


    And the best guess for F(y,x) would be N(y,(x-y)/2,x), because the only information about the dispersion for F(y,x) is the distance between x and y, and the dispersion (x-y)/2 is the best fit. Note, that the function F(y,x) is not proper distribution for variable x, because the probability is given for fixed dispersion and it depends on x, i.e. to be normalized the dispersion has to be fixed. The overall distribution then is:

    f(x)=(N(0,1,x)+(N(-1,(x+1)/2,x)+N(1,(x-1)/2,x))/2)/2

    where
    N(y,s,x)=1/sqrt(2Pi*s2)*Exp(-0.5(x-y)2/s2)

    The graph for function f(x) is presented above. The minimum values are at points: -0.47 and +0.47. This means that the safest place is about a quarter distance from either end.

    Friday, 3 April 2009

    Kernel Density Estimation: Multikernel and Bomb problem

    Given a sequence of independent identically distributed random variables X1, X2, ..., XN with common probability density function f(x), how can one estimate f(x)? (Old good KDE problem)

    Let us consider the following simple question. You are on the road and you cannot go off side the road. Two bombs fall at points A and B in no particular order (for example you can see only two shell holes, but do not know which one was the first). Where is the safest place on the road if you expect the third bomb to fall? Obviously it is as far as possible from the both points. But what about the safest place between A and B? Is it the middle? Is it the place close to the point A or B?

    If you think that both bombs fell from the same source and just randomly deviated from each other, then the middle point would be the most dangerous place, because it gives the highest probability that the most probable outcome is in the middle. However, if you think that those two bombs have independent sources, then the middle is the safest place because it is likely that the third bomb is sourced from either of those two. [It is the best guess because we do not have any information at this moment.] Now if you do not know if the sources are independent, somehow dependent or both are the same, then the answer is unclear.

    Note that considering both sources sampled completely independent but with the bandwidth deduced from the distance between the points is the usual way for Kernel Density Estimation. The assumption that the sampled points are uncorrelated seems a bit weird, if not illogical at all. There is no relation between making distribution around points smooth and the spatial information. Doing this properly the estimator f(x) would be a sum of delta functions on points. But this is unacceptable, so the estimator is smoothed with Gaussians or some another kernels. Now if the smoothness (bandwidth) is big enough it is possible (depending on the kernel shape) that the middle is less safe than the end points. [For example see how the most dangerous place changes with the bandwidth parameter for the sum of 2 Gaussians.] In other words the probability in the middle adds equally from both sources and it can be greater than maximum probability from the source A plus probability from the source B at the point A.

    If the common kernel is taken for both points, then the most probable place for the third point is the middle, which leaves end points safest - with simple shape of the kernel the middle is the most dangerous place and the further you are from the middle the safe you are; regardless whether you stand right inside the shell hole A or B, or next to it.

    Personally I would hide in 1/4 of the distance between A and B from the point A or B, i.e. in the middle between the end point A or B and the middle point. What kernel does satisfy this? I do not know.

    Thursday, 29 January 2009

    How I made new Microsoft C++ compiler work without Visual Studio installation

    My task was to make minimalist compiler configuration running on a machine without installed Visual studio. This helps to work on C++ programs on any computer: copy your files, copy the compiler, and then compile and run. Below are the steps I did to make it working.

    1. I downloaded and installed free Visual C++ 2008 Express Edition
    http://www.microsoft.com/express/download/

    2. I created target directory d:\c15 and a file setvars.bat with the following content
    set C15=d:\c15
    set PATH=%C15%\bin;%PATH%
    set INCLUDE=%C15%\include
    set LIB=%C15%\lib

    3. I copied files

    mspdb80.dll
    from "Microsoft Visual Studio 9.0\Common7\IDE\" into "d:\c15\bin\"

    c1.dll, c1xx.dll, c2.dll, cl.exe, link.exe
    from "Microsoft Visual Studio 9.0\VC\bin\" into "d:\c15\bin\"

    whole directory 1033
    from "Microsoft Visual Studio 9.0\VC\bin\" into "d:\c15\bin\"

    whole directory include
    from "Microsoft Visual Studio 9.0\VC\" into "d:\c15\"

    libcmt.lib, libcpmt.lib, oldnames.lib
    from "Microsoft Visual Studio 9.0\VC\lib\" into "d:\c15\lib\"

    Kernel32.Lib
    from "Microsoft SDKs\Windows\v6.0A\Lib" into "d:\c15\lib\"


    4. At this moment I was able to compile C++ programs with the copied compiler. I started cmd, cleaned the PATH variable, run setvars (step 1), and cl.exe compiled the C++ and C programs. But when I moved this directory to the computer which does not have Visual studio installed then cl.exe failed with a message: "The system cannot execute the specified program".

    5. I looked into cl.exe binary searching for the string "manifest". That part is XML. Noted the lines
    name="Microsoft.VC90.CRT" version="9.0.21022.8"
    Note: version reported by cl.exe is different!

    6. I went into C:\WINDOWS\WinSxS\Manifests and found file
    Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.manifest
    Note: version numbers match!

    7. I copied this file into "d:\c15\bin" directory and renamed it into
    Microsoft.VC90.CRT.manifest
    Note: the name in step 1, the name of the file, and the name inside this file is the same "Microsoft.VC90.CRT"!

    8. I went into C:\WINDOWS\WinSxS and found directory
    x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375
    Note: version match!

    9. Copied all dlls from this directory into "d:\c15\bin" directory.

    Voila, it worked in Virtual Windows with no Visual Studio installation.

    Wednesday, 10 December 2008

    Intelligent design

    Biological life is so complex that it must be created by intelligent design. On the other hand, it is so complex that no sane intelligent creature would dare to engineer it.

    Simplistic View On Evolution



    This is the environment.




    These are the organisms.



    This is the phenotype.




    These are mutations. The phenotype does not much change.




    Genotype explores the environment, learns about the limits suitable for living. If the environment (including diseases) does not change, the genotype stays in steady state.




    The environment changes. Inbreeding occurs (sexual), mutations become obvious, phenotype swells.




    Genes are in desperate search for new environment. New exists are found due to the memory obtained when the living conditions were good and stable.




    Two incompatible genotypes are now created.

    Thursday, 2 October 2008

    Saccade hypothesis

    Thinking about how the visual cortex works I came to the conclusion that the 'movies' must be produced by the cortex itself. This is to make sure that the changes of the picture are not the changes in the world. One example for this can be saccades. I started looking for more information about this subject and surprisingly found that the main reason for saccades is difference in retina resolution. I do not agree with this.

    According to the current belief the main reason for saccades of the human eye is that the central part of the retina, the fovea, plays a critical role in resolving objects. By moving the eye so that small parts of a scene can be sensed with greater resolution, body resources can be used more efficiently.

    In my opinion this is not the case. The main reason for saccades is building abstract invariant of the picture. In visual cortex the information propagates up the higher level by building more abstract notation of the picture. The voluntary changing of the picture is the way for the cortex to deduce the common information. The crucial role here is that the brain (cortex) knows that the real cause (objects being seen) does not change. So the cortex must be working differently when the picture coming from the retina changes due to external factors or changes due to internally motivated saccades.

    The memory prediction mechanism allows comparing the changed picture with the predicted according to a particular distance and direction of the saccade. This is done in partly learned memory. But the same mechanism works as finding the nvariants in the changing pictures produced by slightly different view.

    The analogy of this process is the theory and the experiment. The theory is proven by different experiments giving the different results but fitting in the theory prediction. The assumption is that the essence does not change with the experiments.

    "Saccades are a widespread phenomenon across animals with image-forming visual systems. They have been observed in animals across three phyla, including animals that do not have a fovea (most vertebrates do not) and animals that cannot move their eyes independently of their head (such as insects)." [Land, MF. "Motion and vision: why animals move their eyes". J Comp Physiol A. 1999 185:341–352.] Although in this paper the author argues that the reason for saccades "is the need to avoid the blur that results from the long response time of the photoreceptors".

    Assuming that building image invariant is the main reason for saccades, one would come to a conclusion that the other voluntary picture changes should happen in the eye. Indeed, some animals allow their eye rotate [above paper]. Why human eyes do not rotate I do not know. Maybe our vision system is complex enough (3D) to allow less emphasis on obtaining picture.

    Sensory cortex and saccade motor cortex must be closely coupled. Because the sensory cortex governs the motor cortex and motor cortex has to feed back its lower level information to sensory cortex. There should be many effects which can easily be tested by experiments to support this hypothesis.

    Thursday, 25 September 2008

    How to measure chaos

    This is to propose the way to measure chaos in a computational system.

    I studied the reversible algorithms of arithmetic multiplication (factorization problem). I have found a very interesting fact that when the information describing the ensemble grows fast, this exact process is difficult to reverse, i.e. find feasible computation reverse algorithm. Let me explain by example of computation.

    Suppose there is an initial set of N bits {x}. If all bits are independent and can initially be set to either 0 or 1, then this is the ensemble of 2N states. Now suppose we have a function G describing all forbidden states of the ensemble. [The same up to inversion arguments would go with all allowable states.] Initially G=0, since all values of x are allowed.

    Next suppose that we have a computational process which is done in atomic steps. Each step can be one of two kinds: either creating a new bit or forgetting an old. For example, add a new bit y1=x1&x2 (let us signify & as AND operation, | as OR, and ^ as XOR). The G function becomes y1^(x1&x2) if previous G=0, or in general case Gnext=Gprevious|y1^(x1&x2). Forgetting a bit x2 would make Gnext=Gx2=0&Gx2=1, where Gx2=0 is G with x2 replaced with 0.

    It seems easy to keep G function defined while doing the calculation process. This is important because while we know G function the calculation is immediately reversible – it is easy at each backward step find out the previous forgotten bit. But the problem appears when G function becomes impractically huge in representation. This happens, for example, with arithmetic multiplication. The only way to attack this problem is to find symmetries in the function so to make it computationally practical, smaller.

    Suppose that with a given intellectual strength we find the smallest representation of G function. This function can be written as a sequence of the atomic steps A=B&C, where A,B,C are bits or their negations (say A=B|C is ~A=~B&~C). The negation is not an operation, rather a perception of the bit. With this representation the function becomes measurable in number of atomic computational steps.

    That makes it very natural to define the chaos as the increase of the size of the function G. Note that the definition includes the intellectual strength of the observer, which seems natural for the definition of chaos. Also it qualitatively resembles Lyapunov exponents as chaos measure.

    Monday, 15 September 2008

    Precise theory for Artificial Intelligence

    Every research area has its own language. But there is a distinction between precise and non-precise theories describing the areas of interest. In physics, for example, the language is mathematical formulas. And this is a precise formal language; because formulae help, in general, to solve physical problems even if people applying the formulae have different interpretation of them. We can argue on the definition of Time and Enegry. But when it comes to the formula with E and t, everyone will get the same result regardless of personal (internal) understanding of these concepts.

    Completely different situation is with Artificial Intelligence research area. Here are concepts of information, memory, awareness giving completely different philosophical theories depending on how the concepts are being understood. There is so big variety of opinions that it is difficult to call this area of research scientific. Nevertheless some groups of people sharing the same beliefs are able to communicate and even to make some progress in ideas. But with no practical results. Obviously now the understanding of the problem in question is different than ten years ago. Hopefully a simple model can be built in some near future, just to give the common basis for terminology used in this field.

    Wednesday, 16 July 2008

    Beating the nature

    We are not cleverer than the nature. Just sometimes the nature does not understand us.

    Wednesday, 9 January 2008

    When we get together

    When we get together our intellect does not add up, but our stupidity does.

    Monday, 10 December 2007

    Number of features grows logarithmically

    The main problem in big software projects is complexity growing as the project unfolds. Generally when the main architecture is ready and the product has been started the number of architectural features grows with the size of the code. The speed of growing, though, is not constant. At the beginning it is almost linear and equal to time multiplied by team. But the longer it lasts, the bigger size of the code, the more complex is the product to develop further. From my personal experience the time spent to develop a new feature of average size increases by an exponential law. [Features are meant to be architectural but perceived in complexity from the customer point of view.] This idea gives a rule to predict milestones and practical limit of the product. For example, if the first 10 features took 4 days to develop and the second 10 new features took another 5 days to develop, then to implement 50 features will take 7 weeks and to implement 100 features 27 weeks. [Formula used is y=F*ln(kt+1). In the example above we find that k=1/16 and F=10/ln1.25]

    Friday, 7 September 2007

    On coding practices

    Coding rules are written for particular community of people who intend to review, maintain, or use the code. It is called coding standard. But there are 2 other important sources which influence the style. These are taste and simplicity. I disagree on that the coding standard, whatever it is, has to be followed blindly.

    So 3 points influencing the style are:
    1. Personal taste: You personal choice
    2. Simplicity/clarity: Do not sacrifice clarity to your or other people's taste
    3. Community: What most (other) people expect to see when looking at the code.

    My personal preferences are:
    1. Find which community is likely to work later with the code.
    2. Follow coding rules if they do not disagree with your taste and code clarity.
    3. If a rule is not good from your point of view, decide which one: your taste or community is more important in that context.
    4. If a rule makes code less simple or clear, ignore the rule. [This is very subjective so be prepare to stand for your opinion]

    19.04.2007

    Wednesday, 29 August 2007

    Console/Window executables

    Simple trick to suppress console window to pop up is to change the flag 03 to 02 as it is done in the following example (in case you forgot 03 is ctrl-C and 02 is ctrl-B):

    0000: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 MZ_ ♥ ♦ яя
    0010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ё @
    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0030: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 _
    0040: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 ♫▼є♫ _○Н!ё☺LН!Th
    0050: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F is program canno
    0060: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 t be run in DOS
    0070: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 mode.♪♪◙$
    0080: 50 45 00 00 4C 01 12 00 7B DA D4 46 00 68 5E 00 PE L☺↕ {ЪФF h^
    0090: 34 1F 00 00 E0 00 06 01 0B 01 02 38 00 50 0A 00 4▼ а ♠☺♂☺☻8 P◙
    00A0: 00 1C 10 00 00 F8 20 00 A0 12 00 00 00 10 00 00 ∟► ш ↕ ►
    00B0: 00 60 0A 00 00 00 40 00 00 10 00 00 00 02 00 00 `◙ @ ► ☻
    00C0: 04 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 ♦ ☺ ♦
    00D0: 00 F0 7F 00 00 06 00 00 4A 86 63 00 03 00 00 00 р⌂ ♠ J┼c ♥
    00E0: 00 00 20 00 00 10 00 00 00 00 10 00 00 10 00 00 ► ► ►
    00F0: 00 00 00 00 10 00 00 00 00 90 30 00 22 46 00 00 ► _0 "F
    0100: 00 E0 30 00 98 20 00 00 00 00 00 00 00 00 00 00 а0 _
    0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0120: 00 10 31 00 88 4B 00 00 00 00 00 00 00 00 00 00 ►1 _K
    0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    This flag is at the end of the line 00D0. This flag is not in absolute offset so you may try to guess.

    Wednesday, 15 August 2007

    Software complexity limit

    Software development is a sequential process. The product is always being developed bit by bit. The main problem arises when new bits added to the future product break the previous functionality. This is called complexity limit. Once the product developed reaches its complexity limit no reasonable development becomes possible. The complexity limit is obviously subject to both the design and the process. The difference between them is that if the design adds absolute value in fighting with complexity the process adds relative. That means that the process can leverage the extent of the final product, but cannot define it. As example, suppose that the product is 100 percent functionality and with some given design the complexity limit appears at about 50 percent. Next suppose that the process may leverage the extent by 20 percent of the reached extent. So the final product will have 50+50*0.2 = 60 percent of desired functionality. Now if the design is poor and allows going only up to say 20 percent, then the gain obtained from the process is 20*0.2 = 4 percent (totalling 24). If the design is good allowing 80 percent with no process, then the process will add 16 percent (totalling 96).


    Under design I mean here all development solutions on the whole scale from architectural to coding. Under process I mean here the standards accepted by the development team.

    Thursday, 26 July 2007

    Notes on programming

    Programming is a fight against the complexity


    When a program is being developed its complexity may increase or remain the same. We can define the program complexity as the complexity of its most complex component (the component decomposition can be seen as a separate component itself). It would be an interesting question what kind of program modifications increase the complexity and what do not.


    Complexity multiplies but capacity does not sum up


    A number of people cannot create a program which is more complex than at least one of these people can understand. From the other hand, linearly adding a new component of lesser complexity that already exists does not increase the overall complexity. Keyword here is “linearly”, which means that complexity of the decomposition (referring to the level on which the component added) does not increase as well, or increase so as not to outweigh the overall complexity. But making the new component interdependent with existing components opens new dimensions in internal states of the program (non-linearity) that is multiplying the complexity.


    Architecture


    Each character of the code has its own path to the top level concept of the program. Top level concept of the program lies on the abstract layers braking up the program architecture into independent components, which are lying on lower level layers and so on until we reach each separate character of the code.
    Understanding this path from the bottom level to the top level is architectural awareness. It is important that the programmer has one. Otherwise the complexity of the product can grow incredibly fast.


    Push, pop, and pull requirements


    The requirements evolve from the customer to the final coder. It is not possible to imagine that the programmer can develop a program targeting each customer requirement individually.

    The requirements can be generally grouped into 3 categories.

    1. Customer requirements (Pull). Something which defines the product.
    2. Architect requirements (Pop). The model which can be implemented in software and is proven to mimic the customer definition of the product. These requirements are conditions to components and their interaction.
    3. Code requirements (Push). Testable functionality of the program.


    Push requirements are satisfied when the program undergoes a number of scenarios defined the requirements. This can be done by auto scripts validating expected output.
    Pop requirements are satisfied when the program conforms to the defined component interfaces. This can be done by documented and frozen APIs.
    Pull requirements are satisfied automatically given that the model is adequate to the required product. These can be customer acceptance tests, but they would not be a part of the product development.

    Failure to break the requirements into these 3 categories and treat the customer requirements as the requirements to the software leads to ad hoc style programming. Programs written in this way are difficult to modify and they are sources of plentiful hard tracking bugs. This can work only for small programs.

    Thursday, 10 May 2007

    Visual Studio 2005 Express, OpenGL and Glut

    Visual Studio 2005 Express does not have SDK. Instead of installing huge SDK what I did to make Visual Studio 2005 Express to run with openGl and Glut is the following.

    1. Downloaded and unpacked
    glutdlls37beta.zip
    and
    opengl95.exe
    (ftp://ftp.microsoft.com/softlib/mslfiles/opengl95.exe)

    2. copied glut32.dll into windows directory

    3. created dir GL in include
    in my case it was
    C:\Program Files\Microsoft Visual Studio 8\VC\include\GL

    4. copied *.h files in there

    5. copied *.lib files in lib directory
    in my case it was in
    C:\Program Files\Microsoft Visual Studio 8\VC\lib

    Also have a look at:
    http://www.opengl.org/resources/faq/technical/gettingstarted.htm
    (2.060 What do I need to compile and run OpenGL programs?)