Archive for Work

Eventum 1.6.1 Released!

We released 1.6.1 last friday with these changes:

– Fixed the installation procedure to add the INDEX privilege to the MySQL user (João)
– Fixed bug with handling HTML characters in Internal FAQ entries (Bryan)
– Fixed bug displaying priority in current filters (Bryan)
– Added feature to set X-Eventum-Type header in new assignment email (Bryan)
– Fixed bug that allowed users to access attachments, custom fields, phone calls and time tracking from issues they did not have access too (Bryan)
– Added new workflow method to check if an address should be emailed (Bryan)
– Fixed the issue searching routine to properly handle disabled fulltext search and customer integration features (João)
– Improved the IRC Bot script to be easier to configure (João)
– Added feature to update issue assignment, status and release for multiple issues at the same (Bryan)
– Fixed labels on workload by date range graphs (Bryan)
– Added feature to highlight quoted replies in notes and emails using smarty plugin from Joscha Feth (Bryan)
– Updated the bundled XML-RPC library to the latest PEAR 1.4.0 release (João)

The most important change is this last one above. The XML-RPC library from PEAR, which we were bundling to make installations easier, was changed so it wouldn’t use that nasty eval() code.

We strongly recommend users to upgrade to 1.6.1 as soon as possible. Download 1.6.1 now.

HTTP Authentication and Microsoft IIS / PHP ISAPI module

Eventum has a feature to provide RSS feeds of custom filters, which is basically a way to save advanced search parameters into a special URL that you can call out to check on results. Pretty useful feature, and a lot of people use that. However, we can’t simply have an open window into a potential confidential database of issues/bugs/tickets, so the RSS feed script authenticates the user with HTTP Auth, with the usual PHP way of doing things:

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "Hello {$_SERVER['PHP_AUTH_USER']}.";
echo "You entered {$_SERVER['PHP_AUTH_PW']} as your password.";
}
?>

Everything works fine most of the times, but we started getting reports of problems from Microsoft IIS users. It turns out that PHP doesn’t automagically sets up the PHP_AUTH_* variables for you in some cases, and there’s even a quick mention of that on the documentation:

Another limitation is if you’re using the IIS module (ISAPI) and PHP 4, you may not use the PHP_AUTH_* variables but instead, the variable HTTP_AUTHORIZATION is available. For example, consider the following code: list($user, $pw) = explode(‘:’, base64_decode(substr($_SERVER[‘HTTP_AUTHORIZATION’], 6)));

However, that wasn’t true for a Microsoft IIS 6.0 that had configured PHP as a ISAPI module. Instead of getting a $_SERVER[‘HTTP_AUTHORIZATION’] variable like that, he would get this when doing var_dump($_SERVER):

array(30) {
["ALL_HTTP"]=> string(985) "HTTP_CONNECTION:keep-alive
HTTP_KEEP_ALIVE:300
HTTP_ACCEPT_CHARSET:ISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODING:gzip,deflate HTTP_ACCEPT_LANGUAGE:en-us,en;q=0.5
HTTP_AUTHORIZATION:Basic ********************************************"
}

So instead of simply using the $_SERVER variables, I had to manually handle the HTTP environment variables and get the proper value:

if ((!empty($_SERVER['ALL_HTTP'])) && (strstr($_SERVER['ALL_HTTP'], 'HTTP_AUTHORIZATION'))) {
preg_match('/HTTP_AUTHORIZATION:Basic (.*)/', $_SERVER['ALL_HTTP'], $matches);
if (count($matches) > 0) {
$pieces = explode(':', base64_decode($matches[1]));
$_SERVER['PHP_AUTH_USER'] = $pieces[0];
$_SERVER['PHP_AUTH_PW'] = $pieces[1];
}
}

That will do the trick.

Eventum now on FreeBSD’s port collection

I had no idea about this, until I noticed a new section on our Wiki page that describes the installation notes for FreeBSD:

You can alternatively take the easy way and install Eventum from FreeBSD’s ports collection. At first, you need to update your ports collection using cvsup (http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html). Once you updated your ports directory, use: cd /usr/ports/www/eventum && make install clean

Pretty cool :)

Total download size for a web page

I understand that there is ‘Page Info -> Size’ in Firefox, but that only gives me the total size of the current HTML page, and not for the total download required for all bits and pieces on that page.

I want something that will tell me that there is 5kb in the HTML source, with 2kb more in CSS and 3kb in JavaScript code, for instance.

Anyone know of anything that would do this?

MySQL Network is finally live

So after a few months of frantic work, MySQL Network is finally live. It feels good to finish this big project, and have it live and running for real people to use. There’s obviously still a lot of work and improvements to be made, but at least there is some breathing room to look back and see what could be improved.



Next on my short term todo list is some performance tuning of the knowledge base code. After that, I’m back into Eventum land (and I would love to release a new version of it as soon as possible).



« Previous Page « Previous Page Next entries »