Unconscious collaboration
We are all well aware of the amazing results that masses of people could produce by collaboration. Wikipedia is the most evident proof of how many not-specialized people can contribute to a bit of a huge project and together compete (and sometimes surpass) with field professionals (about this you can take a look at this TED talk and this book).
More than that, it fascinates me thinking what value the “unconscious collaboration” could produce. If we take the recent Google Flu we have an insight of what potential has the information produced by millions of people (in this case web researches). I believe the elaboration of this huge amount of data opens new scenarios and applications. Some time ago I came across to a proposal of using the localization data of mobile phone users to derive information about traffic (anyone aware of a follow-up?). One problem about these applications is the privacy, but this should be dismissed by the fact that millions of data point are merged together with no chance of backtracking.
In my view we will see more and more application of this concept, far from the traditional marketing applications, with completely new objectives (as tracking flu’s pandemic in Google Flu, got any new idea?). Furthermore I believe that the spread of internet-connected, electronic devices will definitely boost this data production by making it even more pervasive.
Who can point me a good overview about spimes?
Machine Beauty
“Machine” and “Beauty” are two words that could sound strange together, nonetheless this is the topic of this book written by David Gelernter. Knowing some of the author previous works (like Linda and Lifestreams), I was expecting something really brilliant, but I’ve been (at least partially) disappointed. Although some ideas are interesting, I don’t like the way they’re presented; for instance the chapter regarding Apple and Microsoft is really confused and I wasn’t able to get the point (Where’s the beauty? Where’s not? Why did Microsoft win?). I also think that a professor of computer science which writes a book on beauty should, first of all, define what he means with this word (which has never been really defined).
My feeling is that “Machine Beauty” is compounded of a bunch of examples (although some of them interesting, as already said) without a well developed main theme which relates every element. In my opinion the text is (still?) rough, a missed chance.
On Intelligence
After the break for my (crazy) 4th of july in New York (have you seen the pics?) I’ve started again reading and I’ve completed “On intelligence” by Jeff Hawkins. This book tries to explain how the brain works and what’s the intelligence; unlike many other texts regarding the same topic, this one is more concerned with neuroscience than computer science. I’ve really liked this approach because, like author himself says, we first need to understand how does the brain works before starting building smart machine (if it’s possible).
The theory proposed is very fascinating, intelligence takes place in the neocortex (the most recent part of the brain) and it’s not based on massive computations (like the classical AI supporters believe) but on a memory framework which store all the patterns it receives from the outer world and simply “retrieve” them when it senses an input that match (at least partially) with them. This idea is called memory-prediction framework because it sustains that the mind always does predictions about the future based on previous experiences and all informations are hierarchically organized from the very specific detail, on the lower levels, to the general concepts, on the higher ones (did you know? You have at least a Bill Clinton cell!).
The arguments shown to support this view are very reasonable (see the “one-hundred step” constraint) and in my opinion this is, among all proposed ideas, the theory which is closest to the way the brain effectively works.
Looking for defects, I can say that the chapter which explains in detail the way the brain works could have been clearer, maybe more schemes and graphs would have helped the reader understanding where and how every function happens (I didn’t understand how invariant representations are stored, for example).
In conclusion the book is a pleasant read, it’s never too technical and (finally!) not very concerned with computer science matters; suggested to everyone who has ever wondered about intelligence.
The Emperor’s New Mind
I’ve read the Roger Penrose book “The Emperor’s New Mind” (finally, I’m so slow at reading!). First of all I’d like to say that it’s, in my opinion, composed by two (quite independent) books.
The first and the last 100 pages (of 600 total) are about the author ideas regarding AI, consciousness and free will. Penrose thinks that intelligence/consciousness cannot be the result of an algorithm, even if very sophisticated, so he affirms that these aspect of mind (not only of human beings but also for other animal species) are the result of non-algorithmic/non-computable events.
Believing that brain mechanisms do not lie only on classical physics, Penrose introduces some (many in truth) concepts from quantum theory to support this argument. Therefore 400 pages (!!!) of the book are used to explaining fundamental quantum ideas needed involved in his theory. This is the main defect (in my opinion) of this book, to many pages are dedicated to physics lessons (starting from Newton’s mechanics!); maybe it’s my fault because I was only interested in the AI aspect of the book.
In conclusion I think that “The Emperor’s New Mind” ideas are interesting and deserve to be read, especially if you’ve read its rival book GEB (though, personally, I still prefer Hofstadter arguments). My suggestion is, if you’re not interested in a 400 pages overview of physics (although good), to skip that part or to read it at a VERY HIGH LEVEL without caring too much about vectors or functions!
Prey
Under suggestion of my friend Marco, I’ve read Prey, a Michael Crichton book. This book tells (very shortly) about an unemployed AI expert, Jack Forman, called to solve a problem with a program developed by him and applied to a population of nano-agents (the swarm) developed by a company in which works also is wife, Julia. The story is a warning about possible risks related to most active research fields of this years: nanotechnology, distributed artificial intelligence and genetic.
Altough it’s never too technical, the book is interesting also for people with computer science knowledge; I believe that the author has pretty well understood topics narrated, considering also book bibliography.
Definitively a story for both computer science expert and not, written in a very pleasant way.
Linux candies
Here some little tricks to solve some common things in Linux (especially Ubuntu):
- Screen capture
Install ImageMagick package (sudo apt-get install imagemagick) and configure the “print” key to execute this command:
import -window root screen.jpg
This command creates (or overwrites) an image named “screen.jpg” in your home dir with screen capture. - Merge pdf files
I’ve used Pdf Toolkit (sudo apt-get install pdftk), it’s powerful and very simple to use, here 2 examples:
pdftk a.pdf b.pdf output c.pdf (merge “a.pdf” and “b.pdf” in a new “c.pdf” file)
pdftk `ls chap*` output allchap.pdf (merge all chapXXX.pdf file present in current directory and merges them to allchap.pdf file) - Modify ps/pdf files
I’ve found a nice program, named flpsed which lets you write on ps/pdf files, very useful to fill forms! - Renaming multiple files
Sometimes happens to have files with 2 extensions (especially after a conversion) and you want to delete the old one (for example “song1.wav.mp3″). To do this I’ve written a simple renaming scripts who corrects all files in current folder.for i in *.mp3;
do
mv “$i” “${i/.wav.mp3}”.mp3;
echo “renaming ${i/.wav.mp3}”;
done
Gödel, Escher, Bach: an Eternal Golden Braid
I’ve just finished reading “Gödel, Escher, Bach: an Eternal Golden Braid” a book by Douglas R. Hofstadter. The peculiar characteristic of this book is the constant comparison between Gödel’s theorem, Escher’s drawings and Bach’s music, I was surprised of all concepts shared by these works (there’s also a little bit of Zen!). The first chapters are about formal systems and the second part analizes if a set formal rules can express things like high level symbols or human languages. I’ve really enjoyed this book and it’s structure in particular: before every chapter there’s a dialog introducing the topic.
The author thinks that mind processes strictly obey to mechanical rules (at the lower conceptual levels) so they can be emulated by a machine (like a computer) properly designed; arguments proposed to support this theory are very interesting (the dialog about the ant system it’s great!). I agree with Hofstadter opinions in general, but I’d like to read also “The emperor’s new mind” (Roger Penrose) which presents opposite arguments regarding AI realizability. Another interesting topic of the book regards autoreference, especially related to consciousness, seen as a system which has a system for itself (it’s very summarized, GEB explains it much better!). Concerning the autoreference the Hofstadter has also written a law.
Hofstadter’s Law:
It [a task] always takes longer than you expect, even when you take into account Hofstadter’s Law
Anyway this book has also some defects (in my opinion), first of all length, I had the feeling that 800 pages (I’ve read the italian version) are too much and some topics were over-described (like the DNA code, for example). In addiction in final chapters some arguments don’t concern (strictly) with the AI problem (like Bongard problems or the ability of conceive hypothetics scenarios).
In conclusion it’s a worth of reading book, but don’t expect to agree with all ideas presented!
Hotkeys under Linux
I’ve just finished setting up hotkeys on my linux (Ubuntu) laptop (an Acer TM 290 Lmi). Steps are very simple:
- First of all install hotkeys package (sudo apt-get install hotkeys). This software will let you bind customizable actions to any key combination, in this case we just want to enable hotkeys.
- Find keycodes (or, in other words, codes associated to your hotkeys), there are several ways to do this: search keycodes on web (quite easy if you have a brand laptop/keyboard), using hotkey-setup (it tries to automatically find keycodes, I don’t like very much) or by xev, a program which give you all keycodes related to pressed keys.
- Write your own configuration files; there are two file, one (hotkeys.conf) for configuring preferences and actions and one (acertm290.def but you can change this name) to bind keys to actions. Here’s my files:
- Put these files in ~/.hotkeys directory and run hotkeys (hotkeys -t acertm290 -Z)
I’ll say it again… acertm290 it’s the name of my config file, you should put your own there!
Long life to PCs!
Do you have an old desktop/laptop so slow that none of Win9x/Me/2k/Xp Os can run on it? Are you tired of upgrading you pc for just support new 3D effects of your file manager? There’s a solution! In these days I’m configuring an old desktop (not too old in truth, it’s a PIII 650Mhz with 192Mb ram, 10 Gb Hd and 16Mb video ram) with a particular version of Ubuntu , Xubuntu. Xubuntu is simply Ubuntu + a lightweight window manager, Xfce.
In this post I’ll describe most important steps for Xubuntu install and setup; that’s not a complete guide, I’ll only post suggestion and links for easing problems that are usually encountered in this process.
-
- Setup
Follow this guide step by step or, in an ultra summarized way, install ubuntu in server mode, uncomment all ‘universe’ repositories in /etc/apt/sources.list and then install xubuntu-desktop package (sudo apt-get install xubuntu-desktop). - File manager
Xffm (the xfce default file manager) is functionally complete but not very intuitive, I’ve used Rox file manager (it should be already installed, if not type sudo apt-get install rox in the shell), it’s still fast but much more user friendly (especially for an ex-windows user). - Automount
Automount it’s a feature so useful for removable hd and usb keys that you’ll miss it if it’s not present and, most of all, a not expert user is scared of mounting device!
Solution is (quite) simple, ivman is a program which can react to a device plug/unplug mounting/unmounting it and executing customizable actions. To activate it follow this steps:
-
- Install ivman (if it’s not already)
- Create a file (name doesn’t matter) with this commands:
killall ivman
ivman &This is a very simple script that runs one (and only one) daemon for monitoring and mounting devices.Put in $HOME/Desktop/Autostart/ dir (if this dir doesn’t exist create it) the script created (all scripts placed in this dir are executed when xfce is launched).
- Now you can customize ivman behavior by modifying $HOME/.ivman/IvmConfigActions.xml config file (see man for details).
Here’s mine (very simple).
- Dial up connection
Setting the dial up connection it’s easy IF YOU DON’T HAVE A WINMODEM! Please avoid this kind of modem if you have to use it under linux (even if it’s not Xubuntu), just use a classic serial modem (thank you Marco!).
To set up connection with a serial modem you don’t even need a driver, just follow this howto. - Office suite
If your computer can run it, install Open Office 2, to install it run synaptic (you should already have all repositories needed for setup). - Applications
All listed apps are quite light and, most of all, don’t need Gnome/Kde libraries:- Multimedia player: Vlc
- Pdf viewer: XPdf
- Mail client: Sylpheed
- Archive manager: Guitar (I don’t like it very much but I’ve not found something better, unfortunately File-Roller requires Gnome libraries)
- Digital camera software: GTKam
- CD/DVD burning: Graveman
- Setup
In conclusion the pc I’ve configured is very fast and reliable, you really have the feeling of exploiting it’s resources. Anyway configuration could be quite tricky for some basic features and file manager need improvements, I hope this (little) problems will all be solved before XUbuntu will become an official distro!
I, robot!
Happy new year to everyone! After a St. Sylvester spent in Munich (see new pics!), I’ve completed a little computer science project regarding AI, agents and coordination. The work subject is the realization of a robot team in Robocode framework. Robocode it’s a java framework where you can develope a tank and make it fight against others tanks, this platform is useful for learning java and applying AI techniques. Take here a little robot I’ve realized.




