Blog Taxonomy

Home

Missing menus in new installation of TestLink 1.9.8

kinow @ Oct 27, 2013 12:42:33 ()

I recently installed TestLink 1.9.8 and noticed that the menus and some other parts of the UI we missing. Looking at /var/log/testlink/userlog1.log (the location may change depending on your settings) I realized that there was something wrong with my PHP installation. There were log messages like the below.

include_once(ADORecordSet_ext_empty.class.php): failed to open stream: No such file or directory - in /home/kinow/php/workspace/testlink-1.9.8/lib/functions/common.php - Line 92
[13/Sep/18 12:51:09][WARNING][2o0h173pdgg5fjqh1pukr83og2][GUI]
E_WARNING
include_once(): Failed opening 'ADORecordSet_ext_empty.class.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:.:/home/kinow/php/workspace/testlink-1.9.8/lib/functions/:/home/kinow/php/workspace/testlink-1.9.8/lib/issuet
...

I found a post in a forum (but unfortunately I forgot to save the link) that suggested these ADORecordSet were being caused by the module php5-adodb. Removing the module, and cleaning the templates cache directory ($TESTLINK_HOME/gui/templates_c/*) fixed the issue for me.

Hope that helps. Happy testing!

The Apache Way and on writing software reviews

kinow @ Sep 29, 2013 14:53:53 ()

The Apache Way is the philosophy behind Apache Software Foundation and is shared by all of its projects. It is composed by a set of principles:

  • Collaborative software development
  • Commercial-friendly standard license
  • Consistently high quality software
  • Respectful, honest, technical-based interaction
  • Faithful implementation of standards
  • Security as a mandatory feature

I have been part of Apache Commons for a while, and haven’t really contributed much yet. Maybe because I had lots of projects related to TupiLabs as well as my own wedding this year. But I can assure that respectful, honest, technical-based interaction is quite right (not to discredit the other items, of course).

Even though there are critics of the Apache Way (1, 2, 3), it still stands as an important pillar for the Apache Software Foundation, and its principles help to create stable and production ready software, such as Apache Hadoop, Apache Httpd, Apache Commons Lang, among others.

There are many reviews and comparisons on Apache software (as well as on other software, like JavaScript libraries, Java Web Frameworks, Ruby Web servers and so on). Sometimes, though, these reviews or comparisons can be biased or not well founded. In cases like this, the developers of the tools may be frustrated, or users can be misled and choose the software based on wrong assertions.

I have just returned from honey moon, ready to start writing code again, but first I had to read all the unread messages in my inbox. Some were e-mails from Apache mailing lists. One of these e-mails had Phil Steitz comments on a post by Daniel Wu.

Instead of publishing his performance benchmark results of Apache Commons Pool, Daniel posted his code to the commons-dev mailing list. Phil Steitz, one of Apache Commons Pool committers replied with questions and a few points that Daniel could use to enrich his benchmark tests.

This kind of behavior happens a lot within Apache (at least in the mailing lists that I follow), and it produces a lot of benefits for different parts.

  • The person writing a review or comparison can get the programmer opinion before actually publishing anything.
  • The programmer can see how other people were testing his/her code.
  • All other commons-pool committers and maintainers, the mailing list readers, and people that found the mailing list archives will be able to read the conversation history.
  • No misguided benchmark results were published (and lots of wrong decisions were avoided).

I keep loving the Apache Way and the resulting community and code around it. There are always lots of things to learn, the Open Source projects communities are healthy and you will always find people willing to share their experience and time teaching you.

♥ Open Source


1 http://www.infoworld.com/d/open-source-software/has-apache-lost-its-way-225267?page=0,2

2 http://footle.org/2011/11/23/apache-considered-harmful/

3 http://www.itworld.com/it-managementstrategy/227477/has-open-source-outgrown-apache-way

Too many SQL variables exception in Graphite with SQLite3

kinow @ Jul 04, 2013 13:54:53 ()

Having run Graphite for a while, today I found a rather annoying issue. We were using events, and everything was working perfectly fine so far. But for the 24 last hours, the graph was blank.

Actually, in the dashboard, the graph was missing, being displayed as a gray box. Enabling the web inspector in Google Chrome I got the graph URL. Opening the link in a new tab gave me the exception message: too many SQL variables (1).

After some research, I found out this was a bug in SQLite. After trying to hack the code, and being concerned about using a patched version of Graphite and having to update it later, I decided to switch database.

But to avoid losing the graphs, users and other settings, including the events, I migrated the SQLite database to a MySQL server. This MySQL server was already installed in the server machine, since this machine hosted a Zabbix server too.

Here are the steps required to migrate your database from SQLite to MySQL (2).

  • Download sqlite3_mysql python script from http://www.redmine.org/boards/2/topics/12793
  • Stop Apache/Nginx
  • mysql -u user -p -e “create database redmine graphite set utf8;”
  • sqlite3 graphite.db .dump | sqlite3-to-mysql.py | mysql -uroot -pyourpass graphite
  • Start Apache again

After tail’ing the Graphite webapp log file,

tail f- storage/log/webapp/error.log

I noticed the Python MySQLdb wasn’t installed.

ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

My server was an Ubuntu 13.04, so I installed the module simply with the following command.

apt-get install python-mysqldb

Hope that helps!

1 You may have to enable *DEBUG* in your Django settings for seeing the exception in your browser

2 Zabbix needed some minor tweaks in order to use [MariaDB](https://mariadb.org/), but probably you can give it a try too

Graphite: Broken images

kinow @ Apr 17, 2013 11:36:38 ()

This morning I was setting up a Graphite server to collect metrics with statsd, LogStash and jmxtrans. After following the instructions from @jgeurst, I’ve successfully installed Graphite.

I had previously installed another test box, so I decided to take a deeper look at the settings, write a puppet manifest and prepare this new box to become a production server. However, after browsing the webapp, all graphs were broken.

After googling a while, reading forums and bugs, I decided to open the $GRAPHITE_HOME/webapp/graphite/render/views.py, adding log.rendering(…) statements (not the most elegant solution, I know).

By following the program workflow I found out it was entering a block after checking if it should remotely render the image. This feature is turned on/off by REMOTE_RENDERING = True/False, in local_settings.py.

After setting this to False the problem was solved.

Fix laggy Flash (Pepper) in Chrome

kinow @ Mar 31, 2013 11:32:10 ()

My chrome died twice this morning. Checking the system logs I found some segmentation errors. Since it was not so recent version, I updated to the latest version of Chrome. But after that my Flash player was laggy/slowly, and I couldn’t listen to Live Ireland Channel 1 no more :-( (I listen to either this radio or r/electrohouse on reddit.tv while I’m programming… I know, I’m a bit weird).

If you are having the same problem, here’s the list of actions that I did to fix it.

TL;DR: Disable the Pepper Flash, as well as the Gnash or other flash libraries installed, download flash plug-in from http://get.adobe.com/flashplayer/ and enable it.

  • Went to chrome:plugins and disabled the Pepper Flash.
  • Now I was back at using the Gnash flash plug-in previously installed. Now, although I could watch to Youtube videos, my radio wasn’t playing yet.
  • Disabled all Flash plug-ins, went to http://get.adobe.com/flashplayer/ and got the latest version (tar.gz, since I’m using Debian).
  • Copied the libflashplayer.so to /opt/google/chrome/plugins
  • Re-enabled the Shockwave Flash plug-in (you have to expand the details section, in order to be able to choose which version you want to enable

And now I’m happily writing this blog and code, listening to Salonika - Dublin City Ramblers.

Cheers