Older blog entries for cerquide (starting at number 40)


What happened in Madrid was awful. There is no point. Today Spain elects its government. I think they should have delayed the voting, because there is too much noise and unknowns floating around. The government is being criticized for hiding information. People is out in front of the government offices asking them to reveal the truth. In Pamplona, a civilian has been killed for dissenting. I do not feel like we are prepared to vote calmly. I hope that whoever wins asks for a second voting once all the unknowns have been sorted out. Anyhow, today I voted.

UML Statecharts

I have discovered UML statecharts. I have always been atracted by mathematical models of computation. Harel's Hierarchical State Machines, that support the concept of "Behavioural Inheritance" look like a very interesting approach. They provide the theory on the basis of UML statecharts. When the time gets tough, that is in real time systems, they are the most useful technique to formalize systems. I am teaching a UML course to the digital TV group in Sony. Obviously, they work on embedded real time systems (a.k.a. digital TVs). This has made me look into parts of the UML standard I disregarded before for being "too detailed". Nothing is "too detailed" if the system is complex enough. I have read "Doing Hard Time" by Douglas and I am reading "Practical Statecharts in C/C++" by Samek. I recommend both. I think "Doing Hard Time" is nice introduction to UML modelling, not just in real time systems. On the other hand, Samek's book introduces C+ as a simple way of translating object oriented constructs into C. It also introduces "Quantum Programming" (quite a hyped name IMHO), that is a way to translate statecharts to C/C++.

I was annoyed because my connections to remote machines through ssh were stopped by inactivity until I found spinner. What a nice, small and useful piece of software!

25 Jan 2004 (updated 25 Jan 2004 at 21:04 UTC) »

Congratulations chalst!

Research Programming

This weekend I have been recoding my framework to obtain experimental results for machine learning algorithms.

I have added an additional option to BNGenerator to allow the generation of networks with attributes with a fixed number of variables. I hope that Jaime merges it into the software.

I have made the framework able to benefit from a cluster. Now it distributes the work and feeds the different machines whenever they get idle.

I have learned to use several Perl modules in the process.

It was fun... and now I can have results in hours where formerly I had to wait for one week.

I think that in terms of running experiments the framework is quite robust now.

Teaching and programming

Preparing my Network Programming course I have found the following article by Jack Herrington:

Back End Code Generation Techniques for Java

It's worth a read. I have been looking at OptimalJ, ArcStyler and AndroMDA myself. I think I have to read some more on MDA. I am planning to build my homepage with AndroMDA. It is quite amazing how fast technologies mature. This MDA stuff looks ready for a try.


I am having problems with the experimental results of my learning algorithms. This week I have lost a lot of time with that with no success in understanding what was happening. Sigh!

Finally it happened. On December 15th, 2003, I successfully defended my PhD thesis. I am very happy that it is over. Now it is time to raise my head, look forward and think.

Finally it happened!!! After 8 3/4 months of waiting, my nephew was born on December 16th, 2003. I am anxiously waiting to see her.

So quite good news for Xmas, aren't they?

Almost there

I am just missing the Conclusions and Future work. Most of the PhD presentation is done!

Reinforcement learning, game theory and multiagent systems

I have been skimming over Michael Bowling PhD thesis. Quite a nice piece of job. Now I also have to study Markov Decision Processes.

Lost in research

My reading list is growing day after day. The more I read the bigger the holes I find in my background. I do not know whether I will find myself able to attack a real research problem outside my thesis area. On one hand, I moved from business to academia to be able to do research, to search for excellence and to try to do something really good. Now I feel the pressure for quick publication and I do not like it. I did not made the change to spend my time writing nonsense only to get lines in my CV. Struggle for quality. Struggle for quality. Struggle for quality.


I have seen some images posted here in advogato. How do you do it?

27 Nov 2003 (updated 27 Nov 2003 at 23:50 UTC) »
Thinking loud

How do you tackle the problem of learning to play in Tic-Tac-Toe like games? From the point of view of machine learning this is tipically seen as a "reinforcement learning" task. I have never studied that area in detail, since during the development of my thesis I was centered in supervised learning. During ICML 2003 I noticed a strong interest in the community towards reinforcement learning problems (5 sessions were dedicated to the topic).

Today I have been trying to order my ideas and tackle some small toy problems about learning in games. I have noticed that in order to perform research in the area I do not only need to read about Game Theory but also about reinforcement learning. I have found two valuable resources that are now addequately added to my reading list (and both are online).


I like a lot Zoubin Ghahramani's short but simple explanation on what is Bayesian machine learning.

An also interesting page is David J.C. MacKay's homepage that contains a full version of his recently published book on Information Theory, Inference, and Learning Algorithms

Personal sensation

This is one of this days in life when you feel absolutely unproductive. I think that I have been reading too much and now my brain is busy processing. I have been in front of the computer for more than 10 hours today with an astonishing result of 5 slides.

26 Nov 2003 (updated 26 Nov 2003 at 15:50 UTC) »

I have read "Fun and Games" by Ken Binmore. I think the book is good, but I do not share some of his views, specially regarding Bayesian rationality and its relevance in Game Theory.

I am now reading "Modeling Bounded Rationality" by Ariel Rubinstein. I share his views to some point. I think that a lot experimental work (analyzing how we, humans, take decisions) has yet to be done before we can have conclusive results on that area.

Yesterday I received some more food for my brain. My reading list now looks like this (growing):

  • Game Theory: Analysis of Conflict, by Myerson (I have not yet received any of the Fudenberg books, so I will start by Myerson, that I have at hand and looks really well written)
  • Game Theory, by Fudenberg and Tirole
  • The Theory of Learning in Games, by Fudenberg and Levine
  • Evolutionary Games and Population Dynamics, by Hofbauer and Sigmund
  • Cooperative Game Theory and Applications, by Inma Curiel
  • Evolutionary Game Theory, by Weibull
  • The complexity of cooperation, by Robert Axelrod
Bufffff, quite a lot of work for Xmas!!


I am preparing the slides for my PhD defense taking place in Dec, 15th. Boring!


I have started to teach "Scripting Languages". First class has been about why using scripting languages. Next talk I will start with Ruby

PhD experiences

I have read Peter McBurney notes on what means doing a PhD. it is worth reading it if you are thinking in engaging in a PhD coming from a successful business carreer.


Yesterday I went to an exposition by "Colectivo Psicoplástico" at La Xina Art. Thanks to lagatacristi for inviting me and for the nice piece of chat.


I have been reading "Decisions with Multiple Objectives" by Keeney and Raiffa. The book introduces Decision Theory and after that focuses in the elicitation of multiattribute utility functions. I think I have achieved a general understanding of decision theory. Now I would like to continue learning and my steps point to a particularly interesting subarea of Decision Theory: Game Theory. My reading list for the area includes:

  • Fun and Games: A Text on Game Theory, by Ken Binmore
  • Game Theory, by Fudenberg and Tirole
  • Game Theory: Analysis of Conflict, by Myerson

I am also skimming through different network programming books to prepare a new subject I am teaching from February to June.

And finally I am still reading and rereading the Pickaxe Ruby book.


I am preparing some new experiments to submit a paper with my results in TAN induction to the Journal of Machine Learning Research.

I am also writing the slides for the Ruby course. That is fun, but is taking a lot of my time.


Today I have managed (thanks due to Jaume Timoneda) to install debian on my new desktop computer at work.

CCIA 2003

Thursday I am travelling to Mallorca. I am attending the Catalan Conference on Artificial Intelligence and we do stay there the weekend just for fun.

Group Decisions

I have read something more on Group Decisions. Specially interesting and worth reading are the works of Raiffa and an article named "Preference aggregation after Harsanyi's". Harsanyi's theorem provides a possitive result. I will try to work on how to take advantage of it in multiagent systems. Still very inmature ideas


Monday, Victor Eruhimov, from Russia Intel Research Center was invited by me to give a talk about PNL (Intel's Open Source Probabilistic Network Library) at IIIA. It was very interesting. I am anxiously waiting for the Linux alpha release that is promised for next week


I got some mass spectrogram data from Oryzon Genomics that I am starting to analyze. I am implementing the spectrogram analysis and classification software in Ruby. First foundamented Bayesian analysis did not work very well, whilst some adhoc ideas did perform reasonably. More work is needed to refine Bayesian approaches or to understand what is wrong in the formalization of the problem.

31 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!