/ metaeva

Monday, January 27, 2014

Today was an interesting day in terms of research. I managed to get some nice results out of my MetaEvA optimization framework. I can show that algorithm and parameter selection with SMAC yields very nice results on several benchmark functions. Definitely good enough to end up in a Paper.

I discovered some bugs in EvA2 that my predecessors seemed to have ignored. EvA2 implements the observer pattern at several key points in the application and allows objects to listen for events. Whenever the population changes, an event is triggered to notify the listeners. I noticed that for some optimization strategies this didn't seem to work, although I registered the listener properly. Looking at the implementation a bit closer, I realized that the method that was supposed to add a new listener actually replaced it.

public void addPopulationChangedEventListener(InterfacePopulationChangedEventListener ea) {
    this.popChangedListener = ea;

For some reason several classes properly implemented this as a list, while other implemented the above solution. Since there was more than one listener subscribing to the event, my listener was overwritten.

In the afternoon I had some spare time to look at an issue I raised the day before with Piwik (#4578). Piwik 2.0 added support for plugins that you can install over the marketplace. After upgrading and publishing my IPv6Usage plugin I noticed that the authors list in the plugin.json was ignored. The root cause was that the old plugin definition in Piwik 1.x had fields for author and author_homepage while the new plugin definition allows you to have a list of authors.