I recently suggested that the way we approach new development is the most important factor in determining the long term value of our work. But just how can developers using Drupal make the most of open source by ensuring that participating and contributing is an essential part of our daily workflow?
Here are some practical tips that come out of our experience at CivicActions and that can guide you in deciding how to approach new development to get the full benefit of open source. Read on as well for a discussion of patching vs. hacking vs. forking and of how to get attention for your patches.
When developing in Drupal, should we hack something together that's specific to a site? Or should we instead take the time to do things "right" by improving existing modules or writing our own new modules to contribute to the community? When is one of these options better than the other? How do we decide?
It's a key set of questions. All but the most basic projects will require some level of new development. The way we approach this new development is probably the most important factor in determining the long term value of our work, both for us and for our clients.
During our retreat in Playa Del Carmen MEX over the summer, Jacob Singh (now a CivicActions Alumnus, Class of 2008) showed and explained to me a project he was working on to create a hosted Solr Search service for Drupal. Solr (via the Solr Integration module written and maintained by Robert Douglas) provides a method to bring very robust faceted search to Drupal sites. A few weeks ago, Jacob went to work with Acquia in order to bring this product to the masses. Read about Acquia's hosted Solr Search plans.
In this episode: KDI applications on hold, new theme coming for core, installation insurrection, events, site launches.
Podcast available here: http://drupalnews.podbean.com
Thanks to everyone for the support so far. Again, if you have any ideas for stories to cover, please let me know.
In a quest to get myself caught up on what's happening in the Drupal community from a high-level standpoint, I realised something.
It can be really hard keeping track of everything that's going on. So I decided to do something about it.
Drupal 6 Themes by Ric Shreeves on Packt Publishing is a great resource for newbie Drupal themers. Themers who are not from a programming background will find it especially useful since it starts with the basics and builds up to more complex yet powerful techniques such as hook_form_alter().
CivicActions is proud to be a Silver Sponsor of the next North American DrupalCon in Washington DC, March 2009.
Two recent projects at CivicActions had some queries that were causing performance issues. What is interesting to note that in both cases, we found that adding a correct index to a table or two helped mitigate some of the issues.
It's a specter ghastly enough to make the most seasoned Drupal developer quiver with fear.
Yes, it's the dreaded Haunted Drupal Site!
Oh, it may appear innocent enough on the surface. Just a typical business or organizational website that perhaps you've been asked to upgrade or enhance. But don't be fooled--lurking beneath the surface is a host of nasty surprises just waiting for the developer naive or foolish enough to venture in.
We're proud to announce civic.mit.edu, the primary web presence for the Center for Future Civic Media, based out of MIT's Media Lab and the Comparative Media Studies program.
For most common requirements -- especially multi-lingual sites -- the Location package is not a good solution for locative data in Drupal 6. The Location package does not handle i18n well and has l10n problems without simple or general solutions with translation sets. The recommendation for most cases where locative data is stored in Drupal 6, is to and migrate the data to taxonomy vocabularies and CCK fields. Both of these options have general solutions for most common i18n issues which make it more flexible for a variety of possible i18n requirements.
Perhaps I am too critical or my expectations are too high. In any case I was disappointed with Building Powerful and Robust Websites with Drupal 6. It may be somewhat useful for Drupal beginners seeking an introduction, general guidance or even basic help, but it lacks the detail and usefulness beginners are likely to need to get tasks done early on. I would expect most Drupal beginners to require more complete and comprehensive resources than what this book provides.
The book appears to have been written under the assumption that it will be read from front to back. But the reality is, at least from my experience, that most technical books are used in a fairly random order for reference when help on a specific problem or topic is sought. The sentences are often long, winding and more detailed or complex than necessary. This makes it difficult to scan for keywords, search for context or comprehend in a hurry. Many details encourage bad practices or are misleading. Most of these issues are minor, however the frequency of them is concerning. Shorthand PHP tags and bad code style occur in a number of places <? print $something; ?>.
We upgraded the home site to 6.x last week. Other than a broken login (phpass on 6.x) for about a day, it's been a smooth upgrade. Kevin helped me get the ball rolling during DrupalCon, but it took up until last week to finish due to competing priorities, and some of the complexities.
One of the many great things about working at CivicActions is that we get a stipend for work we do for the community. This month I decided to use some of my stipend time to code up a proposed solution for Drupal core for dynamically loading paged content.
Why should paged content be loaded through AJAX? Well, take the example of comments. You're viewing a page with lots of comments. You click a link to bring up the next 30 comments. You wait while the whole page refreshes.
More and more web publishing platforms are starting to integrate video comments. YouTube and TechCrunch use them and embedded commenting systems like Disqus make it really easy to enable them on your site. Drupal has its own ways to provide integrated video comments, although most solutions are currently only available for Drupal 5.
The most popular video comment provider appears to be Seesmic. TechCrunch enabled video commenting in April 2008 using Seesmic and Disqus makes use of the Seesmic API to embed video comments. To use Seesmic on Drupal, you need two modules: Seesmic API and Seesmic Comment. The set-up is very straightforward: enable both modules, configure the permissions and you're good to go. I do consider it a big downside that each user needs a Seesmic account before they can post a video comment. There is no way to configure one account to use for all comments in the way that Disqus implements this. Also, as a small nitpick: the Views module is required by Seesmic Comments while I feel that code should go into a separate module, or a check could be implemented if the views module is enabled.
An even faster way to enable video comments on your Drupal site is to install the Riffly module. Enable the module, set the permissions and you're done. Users are given the option to leave either a video or an audio-only comment and they don't need to register, which is a huge plus.
Do note that both modules are only available for Drupal 5 and that they don't have the option to enable video comments per content type. With files in general and media in particular getting a lot of attention lately, it might be worth exploring what we can do with recorded media.
The ApacheSolr module allows the integration of the core search module with the power of the Apache Solr search platform. Aside from better performance the most prominent feature is the addition of faceted search. In essence it's a user-friendly manner to search for content by filtering on author, content type, taxonomy,... You can try a demonstration on the search pages of Robert Douglass, author of the ApacheSolr module.
Now, not everyone has the resources to set up a server with Apache Solr, be it an actual dedicated server to run the software on or the funds to rent one. Luckily, there's also the Faceted Search module that provides similar functionality without this extra requirement. You can check out the demonstration by David Lesieur and see how it compares to Robert's.
Faceted Search also has a couple of extra features that make it a worthy competitor.
I noticed on the Drupal development mailing list, that Drupal 7 has some significant changes for file handling. From Angie Byron (webchick):
I just rolled the second in the series of Drupal 7 unstable releases for developers (see http://lists.drupal.org/pipermail/development/2008-October/031094.html for more info). Among the highlights this release are:
* Several awesome File API improvements. Files are now "first-class
objects" like nodes and users are, the API has been dramatically cleaned up for better consistency, AND there are a slew of new hooks like hook_file_load() and hook_file_validate() for contrib modules to react to when stuff happens to files. This is a great enabler for some awesome stuff in core like image handling and document management. See http://api.drupal.org/api/search/7/hook_file for more info. A HUGE shout-out to Andrew Morton (drewish) for sticking with this patch throughout its long, LONG development cycle. :)
For its third DrupalCamp, the Paris Drupal community is performing an awesome experiment: building a website in 48 hours for a local NGO.
A very open application process drew a dozen applications from NGOs across France, with a wide variety of anti-poverty, development, and other missions. This led to the selection of Project Aurore, which is focussed on social development and "réinsertion sociale" for socially excluded groups. Aurore desire a new site to catalog social agencies in Paris (emergency housing, meals, healthe care, etc) so that their targetted communities can easily find what they need, when they need it, mixed with a video blog that reports on the same.
From error to error one discovers the entire truth. Sigmund Freud
In my last posting (Usability Basics: Keep the User Informed) I talked about how the interaction with other humans differ from interactions online because of something called a feedback loop- the ability we have of constantly assessing the verbal and non-verbal communication that is happening.
UPDATE: Buddhika Amila Sampath created the Light Fantastic theme, not Joshua Brauer. Joshua is the maintainer.
I recently searched on Themebot for a great contributed Drupal flexible-width theme for DrupalSouth.net.nz and found Light Fantastic. Joshua Brauer maintains the awesome Light Fantastic theme, which was created by Buddhika Amila Sampath as part of the Google Summer of Code 2007.
Screenshot of Light Fantastic on the DrupalSouth website:
See a larger image.