воскресенье, 22 января 2012 г.

Simple Models

Recently I've started exploring Microsoft XNA platform. In an attempt to get familiar with numerous powerfull tools it offers I've decided to use it to accomplish some relatively simple but interesting task that will make use of graphics but won't prompt me to focus on sophisticated graphics stuff. Due to some strange reasons I've choosen to start with developing Rubik's Cube puzzle game. The idea for application here is quite simple - the only thing my game must offer to a user is an opportunity to solve the well-known puzzle on a computer screen.

As for development,the task accomplishment, roughly speaking, requires two smaller problems being solved: firstly I should design a Rubik's Cube representation for storing and modifying tha state of the toy in line with player's actions and secondly I need to introduce routines for showing the Cube in an appropriate state on the screen. I haven't started writing graphics-related code yet, but I feel I'm almost finished with the first stage - that means I have developed a couple of classes representing the puzzle which provide convenient ways for performing any required in-game operation on the toy (e.g. rotating one of the cube's faces).
These recent efforts to develop a simple and convenient model of a real world object encouraged me to think over Leonard Susskind's words across which I had come some time ago. Speaking about the legendary physicist - Richard Feynman - Susskind had said:

"He [Feynman] truly believed that if you couldn't explain something simply, you didn't understand it."

My intuition supported this idea long before I've heard these words, although I have never thought about it deeply. However this time the attempts to design a representation of a real world thing combined with revisiting Susskind's speech made me contemplate the thought.

The above quote suggests that to understand something one needs to have a simple model of the thing in mind - only possessing such a model one can explain something - that is share the model - and the explanation will be simple only in case the model is. In fact having a complete model of some object or process means understanding it - and vice-versa - so the only way to understand something is to study or design a model of the thing. A task of designing a model is usually a hard one and requires a lot of work to be done. Such a design process involves overcoming numerous problems which actually help the developer to form a better understanding of the entire object or process being described. Obviously it is difficult to design either a simple model of an object or a sophisticated one, but surprisingly the former are usually much harder to discover and develop. That means one often needs to do much more work, to face much more problems to achieve a goal of designing a simple but workable model - that is precisely one of the reasons why simpler models correspond to a better understanding.

However we actually don't design all the models we use ourselves - we tend to take ready ones and use these for our purposes. In this case one can't directly benefit from the difficulties connected with developing a simple model, though one benefits from the model's simplicity itself and really understands the things better than in case he would use a large and sophisticated one. That's because our mind's power is finite, hence it may be quite difficult for our brain to handle a sophisticated thing - roughly speaking it may fail to 'cache' a complex model completely with all of it's numerous although important details. I suppose we tend to unconsciously simplify the model if one is too sophisticated for us to handle, but in case our mind is not familiar with the model such a simplification may result in losing some important details which are just cut away and eventually this will lead to mistakes.

In this way simple models really produce better understanding through representing corresponding objects in a complete and convenient (particularly for our mind) manner. Moreover such models have another advantage over the complex ones: if your model is simple it is easy to share it because it can be explained simply.

среда, 4 января 2012 г.

Righteous Insomnia

Note: I do not connect the word "(un)righteous" and any of it's derivatives with religion - either with any specific one or with religion in general. A kind of explanation of my understanding of righteousness and unrighteousness may be extracted from the lines below.

About a half a year ago I've somehow concluded that insomnia is caused by living an unrighteous life. The reasoning behind this conclusion is pretty simple and obvious: insomnia is usually closely related to unstoppable thinking about problems and choices one encounters and with the attempts to find proper solutions to these problems and to make a good choice. At the same time inability to solve a problem or to make a choice is frequently caused by a lack of inner principles or by failing to follow these. This way we come to unrighteousness because being unrighteous means exactly to be unable to follow one's moral principles or to lack these principles.

The simplicity of such an explanation to insomnia attracted me. Moreover there is another reason why I haven't explored the problem deeper - everytime I struggled with insomnia myself it had been precisely because of my own lack of righteousness and for an unrighteous one it was much more difficult to see one more possible reason for insomnia. If you think this out you may notice that such an explanation to the problem of insomnia isn't complete - that is it fails to predict insomnia in some cases because righteous people are exposed to the problem too. Moreover it is easy to discover that if one has very strong moral principles, is confident about these and doesn't fail to live accordingly, then such a person has even greater chances to encounter insomnia one night. In other words, the more righteous one is - the more is he or she exposed to insomnia.

The explanation here turns out to be fairly simple too: righteous people are usually surrounded by unrighteous ones and the fact is that the former tend to care about the latter. So even if you're extremely righteous, your relatives and friends sometimes do act in an unrighteous manner and if your principles are strong you may at least get upset if someone you admire acts in a manner you consider wrong. This way when a close friend of yours behaves unrighteously you feel sorry and sometimes even guilty for that. Whenever feelings of this kind prevent somebody from sleeping I would call it a righteous insomnia.