2011-08-06: UPDATE: now available from my drupal.org sandbox
Misc news this week: the latest site I've been called to work on, for the Etats Généraux de l'Outre Mer, is now online in a heated political context. Good to see our government choose Drupal in such emergency situations.
Also, I've finally updated the blog to Drupal 6. Remaining on D5 was starting to feel weird while I was busy on D6 sites for customers, and the site-specific module is even shorter than it used to be on D5. Yay!
The big news for OSInet, though, is that we're hiring again.
After a massive user import to a customer's site, said customer noticed that, while he could see any user profile when logged, he could only see some of them when he was not logged in, receiving an "access denied" on the other accounts.
Now, with the
administer users permission, a user can see any profile, so this didn't come into consideration, but since anonymous users could see some profiles and not others, the permissions granting anonymous access to the profiles were obviously set up correctly. So what could be wrong ?
For a recent case, I had to define the behaviour of a system with a lot of independent conditions to check, which could trigger any number of a set of messages and actions on data, and all of this based on a plain english (i.e. non algorithmic) description of the data, which only covered the most commons scenarios for these conditions, leaving lots of undefined combinations of inputs. What's one to do in such cases ?
A simple "directory" module, which I did at FOSDEM for Kineta Systems as a tutoring demo, is available in my Sandbox on Drupal.org.
This is a smallish demo module to explain the basics of building such code, and possibly work on it. For deployment purposes, though, you should rather use the existing Directory module by Augustin (aka "beginner").
There are also a lot of blog pages all over the web, which I'm trying to gather here. I'm opening comments on this page so if you find any good page elsewhere, please add a comment about it so it can be added to that list.
It is usually considered a given that "private" downloads, going through Drupal, are slower than "public" downloads, which can be served directly by Apache, or whatever web server the site is running on. This is indeed true in the general case; however, for low-cost hosting, this apparent axiom needs to be revisited.
I recently had to install Drupal 6.x for a french government agency on a low-cost hosting plan. Although the site performed reasonably well considering the limitations of the chosen hosting plan, I soon noticed it was missing mod_deflate and mod_expires, which caused pages to be served uncompressed and every static file to be served without an expiration date.
And, of course, the site had quite a few images: photos on most pages, and several logos at the bottom of each page.
Now, when mod_deflate is missing, using the "Page compression" option on
http://example.com/admin/settings/performance is a good workaround for the download page size, but what about the static files ?
Checking a few cheap hosting plans, it appeared these limitations are actually quite common. And without mod_expires, there is no way to tell Apache to serve static content with specific headers. Luckily for us, with Drupal we have a trick up our sleeves, the so-called "private" file downloads.