Friday, March 28, 2008

A definition of intelligence

A problem in the artificial intelligence field is that 'there is no universally accepted definition of intelligence'. With this article I hope I can shed some light to this issue (or obscure it, who knows):

Intelligence: is the capacity to generate new information consistent with information previously assimilated or generated.

The key words in this definition are, information, new and consistent:
  • By information we mean, not only pure data, but also, the rules and laws that govern that data. These, at the same time can also be ruled by principles or meta-rules, and so on.
  • By new we mean data unknown to the person, entity or system capable of acting intelligently. For example, when a teacher proposes a math problem to his pupils, its solution is new or unknown to them, but not for the teacher.
  • Finally, we have an intelligent process, only if the generated information is consistent or coherent with the base information (data, rules and meta-rules). This criterion is commonly used to measure the level of intelligence the human thinking process result. In this way, a solution to a problem that actually solves nothing is considered a stupid thing: is not consistent with the problem. If the solution solves the problem, but requires a lot of time or energy, it is considered as not so intelligent. But, if the solution is correct and also efficient and effective in time and resources, then it is an intelligent one: it is consistent with the problem and with the 'minimum effort' law, for example. The more coherence the result has with the base information field, the more intelligent we can assume the generator process is.
We can see therefore that this definition very well describes the intelligent elements of human activity in different fields of knowledge.

First we have the pure creative fields, like does belonging to the arts: music, panting, sculpture or literature, to name but a few. In all of them the artist shape his work according to the laws of harmony and beauty. Very interesting is the case of literature (in my opinion creation in its pure state) where the writer creates his work according to the rules present in the readers minds, so with language he brings them sensations, emotions, fillings and thoughts. And the artist is considered even more genius if his work gives birth to new beauty norms (new styles or trends) that differ from the established ones, but without doubt, are consistent with meta-laws of a superior rank.

Engineers, IT engineers, mathematicians, architects, etc. also create new information, but according to the rules of their own field: physical laws, availability of raw material and parts, rules of the underlying logic machine or mathematical laws. And usually their aim is to solve a specific problem or to satisfy some type of basic need. The information generating process in this cases can be compared to the physical process of building a house: we start with a target in mind (the building), and starting from an empty plot of land, we add new elements, which in turn allow adding more elements, until the house is completed.

The same happens in all fields of research, from the scientist in his lab, to the policeman who tries to solve a crime, and the doctor working to diagnose a disease: they must relate the data they collect with their knowledge, to elaborate theories (once again, new information) in order to explain the investigated phenomenon. Interestingly in this fields, it is quite common to use the expressions, find a solution or make a discovery. The underlying meaning of these expressions is that the information searched for is unknown or new for those who is doing the research, but it must be present in an explicit or implicit way in the information field in which the researcher is working.

At this point we can see that there is not much difference in the way the various knowledge fields have been built. A writer, a mathematician or an IT engineer do not differ very much in their way of working. All produce new information; only the laws that govern that information change.

We can also notice that the intelligent factor, the generation of new information, is present in almost any human activity. When we learn, in the school or from experience in every day life, we are not only storing new data in our mind, we are establishing links between the acquired information and what we have previously learnt. Those links in turn are what make up the understanding of any issue, that is, the capacity to internalize the explanation of the newly learned information based on what we already know. And those relationships between the acquired and the preexisting information are the new information that every intelligent process must generate. Also, when we perform any task, for example, prepare a meal fallowing a recipe we know well, we do not act without thinking. We must adapt what we know (the recipe) to our circumstances ("oops this ingredient is missing"). We establish links between what we know and what we encounter. Once again, this relationships are new information which allows us to qualify our performance as intelligent.

So, according to the enunciated definition and the exposed explanations, the generation of new and consistent information is what allows us to identify a process as intelligent. Is like radiation to nuclear reactions. There is radiation, then we have a nuclear reaction. Is there new consistent information, then we have intelligence.

I think that the definition of intelligence presented in this article is good for three reasons:
  • It is very simple and specific. I think it even admits a mathematical formalization.
  • It isolates theintelligent fact that have in common the processes qualified that way.
  • It fits the behavior patterns that common sense tell us are intelligent.

An interesting exercise to test these statements could be to apply this definition to the conversations, activities and tasks of every day life. Lets see if this article is in fact coherent and intelligent ;)

Disclaimer: I am in the process of correcting the English of this article.

Friday, February 1, 2008

NSLU2 + DWL-G122 = NAS with Wi-Fi

Our starting point is a Linksys NSLU2 with Debian GNU/Linux 4.0 (alias etch) and a D-Link DWL-G122 Ver. C1 USB Wi-Fi adapter. The Debian's Linux Kernel for the NSLU2 comes with no drivers for the DWL-G122, so it is necessary to compile them. The C1 version of the DWL-G122 has inside the rt73 chipset from Ralink and its source code can be found in the rt2x00 project page. They offer two types of drivers: 'enhanced legacy drivers' and 'next-generation rt2x00 drivers'. The next-generation drivers often fail to compile with not up to date kernel releases, so I decided to use the legacy ones. The steps I followed to compile them are does described in this forum (first comment form Sinclair73). So, in the NSLU2 with Debian (with the make, gcc & co. packages installed) one must execute:

1) Download and uncompress the driver's source code:
$ wget
$ tar zxvf rt73-cvs-daily.tar.gz

2) Edit the Module/rtmp_init.c file to change the RTMPMoveMemory function body to only { memcpy(pDest, pSrc, Length); }
$ cd rt73-cvs-AAAAMMDDHH
$ vi Module/rtmp_init.c
// RTMPMoveMemory must change to:
VOID RTMPMoveMemory(
  IN PVOID pSrc,
  IN ULONG Length
memcpy(pDest, pSrc, Length);

3) Compile the driver:
$ cd Module
$ make arm

4) Copy the resulting rt73.ko module to an appropriate place under /lib:
$ su
# mkdir -p /lib/modules/`uname -r`/kernel\

# cp rt73.ko /lib/modules/`uname -r`/kernel\

5) Copy the rt73.bin firmware to /lib/firmware:
# cp rt73.bin /lib/firmware

6) Update module dependencies:
# depmod

7) Edit the /etc/network/interfaces file according to the configuration of the wireless network. The alias for the DWL-G122 interface will be wlan0. For example, if we have an open network with static ip addresses, the wlan0 stanza in the /etc/network/interfaces file could be:
allow-hotplug wlan0
iface wlan0 inet static
pre-up ifconfig wlan0 up
  pre-up iwconfig wlan0 mode Managed
  pre-up iwconfig wlan0 essid

With all this steps done, we can place our NSLU2 on any place in our home. There are other options to have a wireless NAS, like the Asus WL-HDD 2.5, but installing other GNU/Linux flavors on them besides the manufacturer one is not so 'worked out' as with the NSLU2. And if we have all ready a NSLU2, it is good to have this 'expansion'.

Here you can find a lot more information about other ways to have your NSLU2 working with a wireless network adapter.

Notes: I had some instabilities with this configuration: some times, at power on, the link was not up, and time to time it went down. In this cases the fix was always to bring down and up the link with:
# ifdown wlan0
# ifup wlan0

or unplug and plug again the DWL-G122 if a telnet/ssh session to the NSLU2 was not available. The last weeks I have almost none of this problems, so I think that the cause may be environment factors, as interferences. If I find more information about this issue, I will post comments with it.

Tuesday, January 1, 2008

'Boot splash screen not working' solution

I've been updating the Ubuntu install of my Thinkpad Z60m from Dapper Drake 6.06 (if I remember rightly) to the latest one Gutsy Gibbon 7.10. In one of the updates from 6.06 and 7.04, the boot splash screen (Ubuntu uses usplash) stopped working. I tried to fix it with only partial success. But in the last update to 7.10, usplash got totally broken. While Linux booted, only appeared a black screen with a blinking cursor. As it is explained in the Gutsy Gibbon release notes this can be due a configuration error in the monitor resolution. But that was not my case.

Doing a bit of research I found that the links:

were wrong. The first pointed the second (that is ok) but the second pointed also the first. So I had a loop there. Instead, the second link should be pointing to a '.so' file from the configured usplash theme. By default in Ubuntu it should be:

It seems that my attempt to fix usplash plus the las upgrade ended with that links in an inconsistent state. The solution was to reconfigure usplash so it used the default theme, by executing in a command line:
# sudo update-usplash-theme usplash-theme-ubuntu

After this, the boot screen worked perfectly in my Ubuntu 7.10.

And in this investigation I found a very interesting thing. In the file:

if you delete the keyword 'quiet' from the Linux kernel boot options, then in the 'usplash' screen will appear again the system startup messages (as happened in early Ubuntu versions). I find this very helpful to measure the system's health and it points me software I am not using and I should delete.


Here it is the presentation of this site: the purpose of this blog is to document experiments, tests, configurations & co. I do with free/open source software. This information is translated form my other blog in Spanish: Having this information in English and in Spanish broadens the people who could benefit from it. So I hope you find it helpful. And if you find bad English in any of my posts, don't hesitate to correct me in the comments.


Privacy policy

We use Google Ads on our site, so:
  • Google, as a third-party vendor, uses cookies to serve ads on this site.
  • Google's use of the DART cookie enables it to serve ads to our users based on their visit to our sites and other sites on the Internet.
  • Users may opt out of the use of the DART cookie by visiting the Google ad and content network privacy policy.
In other words: We use third-party advertising companies (Google) to serve ads when you visit our website. These companies may use information (not including your name, address, email address or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and would like to know your options in relation to·not having this information used by these companies, click here.