Tags » Drupal

 
 
 

Weekly Web Development Round-up April 11-15, 2011

Categories: Midd Blogosphere

To give our colleagues a better idea of what’s changed in our web applications each week, we’ll be preparing this quick list for publication each Friday. Not all of the details of each change are included below, but we’ll be happy to answer any questions you might have in the comments.

Drupal

  • Webform emails have been fixed to correctly send as HTML. Each field will be shown on a single line (except multiline fields) with the field title bolded. If you want to get really fancy with your webform emails, you can create your own email templates.
  • We’re now using the Open Source Media Framework’s Strobe Player to play videos on the site. This improves the playback performance with better support for buffering streaming videos, so the content will load faster for you.
  • The “waveform” or “equalizer” feature on some of the top-level pages, like Student Life and Academics had so many stories that the title of the page wasn’t displaying. This is a good problem to have, and it’s now fixed in all browsers except Internet Explorer.
  • The Online Donor Roll is now configured to automatically switch from using the Banner reporting database to the Banner production database in the event that the reporting database is not available.
  • Lots of fixes to the New Edit Console, including a way to go back to the old Edit Console if you decide you don’t like it.

WordPress

  • Upgraded WordPress to version 3.1.1 and upgraded the XML Google Maps plugin.
  • Added the Stout Google Calendar plugin allow easier embedding of Google Calendars.
  • Added the Plugin Stats and Theme Usage Info to allow admins to monitor plugin usage and remove unused ones.
  • Posts with multiple authors (like this one) will now show information about all of the authors at the bottom of the post when you’re in a single post view. If you don’t appear in the list of authors on a post where you’re an author, you may need to configure your profile in WordPress.
  • The FeedBurner FeedPress plugin will no longer redirect all of your tag feeds to the blogs main feed address. You can now use this plugin and tag feeds at the same time.

Other

Links

Interesting news and posts from around the web about web development this week.

Issue with HTML Emails for Webforms in Drupal Resolved

Categories: Midd Blogosphere

Last Thursday I got a notice about the module that sends HTML emails for our website was no longer supported and an upgraded version was available. I installed the new version of the module and its supporting modules, tested submitting a form, got an email response that looked appropriate and upgraded our live servers to use the new version of the module.

Unfortunately, the new version did not work on the production servers. I’ve spent about 20 hours since then trying to figure out why that is the case, but was unable to come up with a solution. Instead, I’ve switched to using another module which is more widely supported. After some issues testing that, and some bug fixes to the Webform module to make them play nice together, emails should now be working as they were prior to Thursday.

If you notice any continued issues with emails from our website, please let me know.

If you want, you can re-send your form’s emails. Click “View submissions” below the form, then click the “View” link next to any submission and you’ll see a link labelled “Re-send emails”.

I’m truly sorry that this issue occurred. I was able to use this opportunity to bring our development and production systems closer to having the same configuration which should help prevent similar errors from happening in the future. As always, I welcome any questions you might have.

DrupalCon 2011: Day 1

Categories: Midd Blogosphere

This week Ian and Adam are in Chicago for the bi-annual DrupalCon developer conference. Drupal is the software that we use to manage the Middlebury and MIIS websites, as well as a couple others.

Read on for notes on the sessions we attended.

Keynote Presentation: Dries Buytaert (video)

Dries is the original developer of Drupal and gives the “state of Drupal” kickoff speech each year. This presentation is already available as streaming video (see the link above). The rest of the session videos will be up after the conference and when they’re ready we’ll make a blog post linking you to a few that are interesting for site editors – especially a session on the webform module.

The big news in the keynote this year is that development on Drupal 8 is going to begin at this conference and the developers who work on the core Drupal software are going to try to move to a more regular release schedule for new versions. We are currently running Drupal 6 and will be working on moving to Drupal 7 this year. Other news is that Drupal 8 is going to add more support for mobile and HTML5. There is a very good overview of HTML5 online if you’re unsure what this term means.

Media module for Drupal 7

Not to be confused with the Media module we run, which is part of Monster Menus, the code we work with Amherst to develop for Drupal, the Media module for Drupal 7 does many of the same things, but is a lot more slick about it. In Drupal 6, the standard way to add files to a site is to make them their own nodes (this is essentially what we do with File Upload nodes) or attach them to existing nodes as fields. The first way makes it easy to reuse files, but hard to use them inside content and the second way makes it easy to use files inside other content, but hard to reuse them.

The Drupal 7 media module is an attempt to resolve these conflicts. It’s still very early on in its development and use, but has features like the ability to manage YouTube videos like other files, drag-and-drop uploads and drag-and-drop reordering for photo galleries. Their goal is for Media to become the standard file-management system for Drupal 8. As work on this continues, we’ll see how we can use this modules features on our site, either by adding them to our Media module or making this module work with Monster Menus.

    Drupal Security for Coders

    This session was a good overview of the content in Cracking Drupal, given by the author. It focused on preventing XSS and CSRF attacks.

    Rockin’ HTML5 with Drupal

    I’m wary of any presentation that includes a slide with the title “Web 3.0″, but fortunately here it was used as a bit of a joke. There was a high-level discussion of the new features available to you when you convert your site markup to use HTML5, and this conversion is one of our goals this year at Middlebury. She also discussed the HTML5 Tools module, which is used to re-write a lot of HTML that Drupal produces so that it is HTML5 markup instead.

    This is useful for all the forms Drupal creates, not just the webforms you add to your site, but the page settings form, and the node editing form, and the copy/move form, etc. HTML5 adds a lot of new form markup so that you can have a non-JavaScript date picker, type suggestions in the field, and my favorite example is that you can mark a field as “email” and mobile device keyboards will include an @ symbol, or mark the field as “number” and the mobile keyboard will automatically which to a number pad when you move into the field.

    Aphorisms of API design

    A good session on designing APIs in Drupal systems. Talked a lot about how to make modules pluggable and when to do so. The topics discussed will be useful as we refactor our modules for Drupal 7.

    Views for Hackers

    The talk was an overview of the Views module and how its concepts like “relationships”, “arguments”, and “filters” translate to code and database queries. Most of the information was already familiar to us, but it made some of these concepts easier to understand.

    Discussions with Amherst Developers

    Our colleagues from Amherst are also here and we got to chat with Victor, Anita, and James. They’ve already helped us patch two issues that were bugging me and helped explain what the new Monster Menus CCK module is. I’m burying this at the bottom of this blog post because this is a really neat feature and I’m not sure when it will be available, but we’ll try to add it very soon.

    MM CCK adds a new “node picker” and “page picker” field type to nodes. If you’ve ever created a News posting or Story on our website and needed to add an image to it, you know that you do this by starting to type the name of the image in a field which searches the entire site for all images and you pick yours from that list. With the new “node picker”, you’ll get a popup window just like you do when you put an image inline in content and you’ll be able to browse just your site’s File Uploads folder.

    We’ve had a good exchange so far and look forward to continuing our discussion as the conference goes on.

    Drupal Update Scheduled for March 13

    Categories: Midd Blogosphere

    We wanted to let our website editors know that we plan on updating all six of our Drupal websites on March 13. This update is to the modules for that system that we work with Amherst to develop: Monster Menus, the Media module which manages files on the sites, and the RSS Page module which provides a content type for displaying feeds. This update may result in the site being unavailable for a few minutes while a database update script runs and will be done during our scheduled downtime that Sunday.

    The affected websites are:

    • http://www.middlebury.edu
    • http://www.miis.edu
    • http://museum.middlebury.edu
    • http://www.davisprojectsforpeace.org
    • http://www.davisuwcscholars.org
    • http://courses.middlebury.edu

    The Monster Menus module is what allows you to assign editing permissions to pages on our website and delegate control of portions of the site to others. We are currently running revision 3131 of this module which was completed by Amherst in August 2009, just before we first launched the new MIIS site in Drupal. Because of our fast-paced Web Redo project, we didn’t update Monster Menus while developing the new Middlebury site and moving the remaining content from MCMS to Drupal. During that time, Amherst redeveloped almost all of the module making many improvements. This update will bring us up to revision 5100, which we retrieved earlier this week.

    Most of the changes to Monster Menus are behind-the-scenes things like creating a new database table to store which pages are the “parents” of other pages in the site IA. This will improve the performance of our site, but aren’t the type of things that you’re going to notice in your day-to-day work.

    There are two differences that you will notice after we make this update.

    Instead of collapse-and-expand menus to manage permission on a page, the interface is now presented in a single table where you can see all of the people who have permissions on the page and their level of permissions. Setting permissions still works the same way and none of the permissions you have assigned to your pages will change. Because this table is wider than the current interface, the page sidebar (if it exists) will be hidden when you edit the page’s settings.

    The Insert File Upload dialog box has also changed. Instead of a list of links on the left, you now see a folder tree with all the pages on the site getting their own folder and thumbnails of the images or files appearing on the right with a nicer layout. The most important change is that you can now “bookmark” your File Uploads page so that you don’t have to browse through this list every time you add a new file. Your bookmarks will appear in the drop-down menu at the top of the pop-up window.

    These probably, and hopefully, appear to be very minor changes to the editing interface. We’ll make sure that the documentation for editing the site, which you can always find at http://go.middlebury.edu/drupal, is updated with these changes when they’re applied to the live site.

    If you have any questions or concerns about this, please leave a comment or contact me directly at imcbride@middlebury.edu.

    State of the Site

    Categories: Midd Blogosphere

    Overview

    What follows is a report on the state of notable web applications and sites in use at Middlebury including the College website, the Middlebury instance of WordPress (i.e. sites.middlebury.edu) and a variety of key web applications that provide services widely used by faculty, students and staff.

    Box Office

    • Addition of separate billing and shipping addresses when ordering tickets or gift items from the box office, especially useful for parents purchasing items for students.
    • Improved the user interface to make purchasing as a returning customer and identifying seat locations in the seating chart simpler.

    CAS – Single Sign On

    The Central Authentication System (CAS) was introduced last year and allows you to move between many of our web applications after you’ve signed in once. GO and the main college website were already using CAS this time last year but since then it’s been added to many other applications, including:

    • Course Catalog
    • MediaWiki
    • MiddMedia
    • WordPress

    Course Catalog

    Over the past two years we developed the Course Catalog application at catalog.middlebury.edu to serve as a clearing house for accessing course information on the web due to the limitations on searching for this information via BannerWeb. The Course Catalog application allows users to search for courses based on a wide variety of criteria (including keyword searching) and properly displays and links-together cross-listed courses. The Course Catalog application also feeds course information to the department pages and faculty profiles in the main Drupal site.

    New for this year, the Course Catalog has been extended to add a Schedule Planning tool that allows students to bookmark courses they are interested in, then group them together into weekly schedules to ensure that they do not have timing conflicts and that lab and discussion sections are chosen. These schedules can be printed or emailed to one’s advisor.

    • Added the Schedule Planning tool.
    • Users can now bookmark courses that they find interesting.
    • Updated the theme to match the new website. Added a custom theme for the MIIS catalog.
    • The printed Catalog is now created via an export from the Course Catalog application rather than being copy-pasted from the site by hand.
    • PDF snapshots of the Catalog are now automatically generated as course descriptions and requirements get edited over the year.
    • Lots of small improvements to the display of course data in search results and while browsing.
    • Can now search for courses by campus — needed for Language Schools that have more than one site.
    • Greatly improved the speed of the application.
    • Improved the feed of courses to faculty profiles to ensure that cross-listed courses are ordered properly.
    • New admin forms that allow the Registrar to suppress incomplete information about upcoming terms during data-entry.

    Drupal

    GO

    The GO shortcut/permalink application has become quite central to the web infrastructure of the college since its launch several years ago. It eased the launch of the new site by allowing links in content to be easily updated en-mass. In the past year GO has become central to our search strategy as GO shortcuts are now provided as suggestions and automatic-redirects when you enter search terms on the main site.

    • Totally new editing interface.
    • Verbose, color coded, messages to indicate successful or unsuccessful completion of actions.
    • Additional input validation to preserve shortcut integrity and prevent abuse.
    • Ability for community to flag GO links as inappropriate.
    • New “Info” pages for every shortcut allow everyone to see detailed information about the shortcut such as who maintains it, what its aliases are, and where it goes.
    • All GO shortcuts are now shown publicly in the GOtionary (with the exception of a few internal shortcuts) to improve the transparency of the system.
    • Enhanced admin interface for flag admins and the new super admin role.
    • Can now switch between the Middlebury and  MIIS GOtionaries.

    MiddMedia

    • New “Midd” theme integrates more closely with the current Middlebury theme.
    • Add to MiddTube button allows users to check off the videos they would like to batch add to MiddTube as video posts.
    • We’ve upgraded to Flash Media Server 4, with a lot of new features that we’ll be rolling out and supporting in the coming months.

    New Sites

    We’ve been able to expand the Drupal and WordPress platforms to add a CMS experience for sites that were previously static HTML files and create new sites to show off and assist student research and projects.

    SubjectsPlus

    In December, we upgraded from version 0.7 to 0.9.  Changes include:

    • Enhanced security.
    • In addtion to Research by Subject, two new guide types are available: Research by Course and Research by Topic.
    • Widget-based, drag-and-drop control panel for content creators.
    • Multiple subject specialists (guide owners) now possible.
    • Description field override.  This allows for a resource description to be customized for one or more guides, while still allowing the resource record to be shared among all the guides.  This cuts down on duplication of records and/or breaking others shared work.
    • Cloning feature

    What do we use this for, you ask?

    • Databases A-Z list
    • Research guides (access via sidebar at go/lib and go/subjectguides among other places.)
    • globally adding EZproxy prefix for off-campus access.

    WordPress

    WordPress usage has been growing over the last few years at Middlebury and beyond.  In late August, we updated WordPress to v3, a major new release to this platform that introduced features such as custom menus and top navigation that extended its usefulness beyond blogging.

    Plugins and New Functionality

    Themes and User Experience

    We created a number of blog themes for WordPress based on design prototypes developed by White Whale (designers of the main college site).  These blog themes were updated to take advantage of new functionality and to generally provide a flexible, easy to use templating framework that could generate extensible thematic variations and would work on multiple platforms, including mobile and touch enabled.  New features developed in the last 6 months include:

    • Introduction of a standardized header on all blogs that provides quick links to create a new blog, search blogs and a given site’s dashboard
    • New standardized widget areas including 3 sidebars and 4 footer areas
    • Introduction of support for custom menus and top navigation bar for mapping a site’s information architecture (IA)
    • Refinements to navigation UI to highlight current location in IA and provide more navigation links in context to improve usability on sites with many pages (such as sites for courses, projects or documentation)

    Usage Analysis

    Perspective, an aggregation and usage analysis tool was developed to keep track of how WordPress was being used, what plugins and themes were most popular, which blogs were most active in a given time period and so on.  We also built into Perspective tools for communicating with users so that we could more easily identify all users of a given set of features to allow us to inform them of updates or issues.  These same tools when combined with activity filters have allowed us to identified inactive sites, contact their owners and archive or delete these sites as appropriate, providing the foundation for a contention retention policy.

    Website Performance: Pressflow, Varnish, Oh-My!

    Categories: Midd Blogosphere

    Executive summary:

    We’ve migrated from core Drupal-6 to Pressflow, a back-port of Drupal-7 performance features. Using Pressflow allows us to cache anonymous web-requests (about 77% of our traffic) for 5-minutes and return them right from memory. While this vastly improves the amount of traffic we can handle as well as the speed of anonymous page-loads it does mean that anonymous users may not see new versions of content for at most 5 minutes. Traffic for logged-in users will always continue to flow directly through to Drupal/Pressflow and will always be up-to-the-instant-fresh.

    Read on for more details about what has change and where we are at with regard to website performance.


    Background

    When we first launched the new Drupal website back in February we went through some growing pains that necessitated code fixes (Round 1 and Round 2) as well as the addition of an extra web-server host and database changes (Round 2).

    These improvements brought our site up to acceptable performance levels, but I was concerned that we might run into performance problems if the college ended up in the news and thousands of people suddenly went to view our site.

    At DrupalCon a few weeks ago I attended a Drupal Performance Workshop where I learned a number of techniques that can be used to scale Drupal sites to be able to handle internet-scale traffic — not Facebook or Google-level traffic, but that of The Grammys, Economist, or World Bank.

    Since before the launch of the new site we were already making use of optcode-caching via APC to speed code execution and were doing data caching with Memcache to reduce the load on the database. This system-architecture is far more performant than a baseline setup, but we still could only handle a sustained average of 20 requests each second before the web-host started becoming fully loaded. While this double our normal average of 10-requests per second, it is not nearly enough headroom to feel safe from traffic spikes.

    Diagram of the execution flow through the web-host using normal Drupal page caching.

    Request flow through our Drupal web-host prior to May 13th; using normal Drupal page-caching stored in Memcache. Click for full-size.

    Switching to Pressflow

    Last week we switched from the standard Drupal-6.16 to Pressflow-6.16.77, a version of Drupal 6 that has had a number of the performance-related improvements from Drupal-7 back-ported to it. Code changes in Pressflow such as dropping legacy PHP4 support and using only MySQL enable Pressflow execute about 27% faster than Drupal, a useful improvement but not enough to make a huge difference were we to get double or triple our normal traffic.

    For us, the most important difference between Pressflow and Drupal-6 is that sessions are ‘lazily’ created. This means that rather than creating a new ’session’ on the server to hold user-specific information on the first page each user sees on the website, Pressflow instead only creates the session when the user hits a page (such as the login page) that actually has user-specific data to store. This change makes it very easy to differentiate between anonymous requests (no session cookies) and authenticated requests (that have session cookies) and enables the next change, Varnish page caching.

    Varnish Page Caching

    Varnish is a reverse-proxy server that runs on our web hosts and can return pages and images from its own in-memory cache so that they don’t have to execute in Drupal/Pressflow every single time. The default rule in Varnish is that if there are any cookies in the request, then the request is for a particular user and should be transparently passed through to the back-end (Drupal/Pressflow). If there are no cookies in the request, then Varnish assumes correctly that it is an anonymous request and tries to respond from its cache without bothering the back-end.

    Request flow through our Drupal/Pressflow web-host after May 13th; using the Varnish proxy-server for caching. Click for full-size.

    Request flow through our Drupal/Pressflow web-host after May 13th; using the Varnish proxy-server for caching. Click for full-size.

    Since about 77% of our traffic is non-authenticated traffic, Varnish only sends about 30% of the total requests through to Apache/PHP/Drupal: all authenticated requests and anonymous requests where the cache hasn’t been refreshed in the past 5 minutes. Were we to have a large spike in anonymous traffic, virtually all of this increase would be served directly from Varnish’s cache, preventing any load-increase on Apache/PHP/Drupal or the back-end MySQL database. In my tests against our home-page varnish was able to easily handle more than 10,000 requests each second with the limiting factor being network speed rather than Varnish.

    A histogram of requests to the website. Y-axis is the number of requests, X-axis is the time to return requests, '|' requests were handled by Varnish's cache and '#' were passed through to Drupal. The majority of our requests are being handled quickly by Varnish while a smaller portion are being passed-through to Drupal.

    A histogram of requests to the website. Y-axis is the number of requests, X-axis is the time to return requests, '|' requests were handled by Varnish's cache and '#' were passed through to Drupal. The majority of our requests are being handled quickly by Varnish while a smaller portion are being passed-through to Drupal.

    MySQL Improvements

    During the scheduled downtime this past Sunday, Mark updated our MySQL server and installed the InnoBase InnoDB Plugin, a high-performance storage engine for MySQL that can provide twice the performance of the built-in InnoDB engine in MySQL for the types of queries done by Drupal.

    Last week Mark and I also went through our database configuration and verified that the important parameters were tuned correctly.

    As the MySQL database is not currently the bottleneck that limits our site performance these improvements will likely have a minor (though wide-spread) effect. Were our authenticated traffic to further increase (due to more people editing for instance) these improvements will be more important.

    Where We Are Now

    At this point the website should be able to handle at least 20,000 requests/second of anonymous users (10,000 on each of two web-hosts) at the same time that it is handling up to 40 requests/second from authenticated users (20 on each of two web-hosts).

    While it is impossible to accurately translate these request rates into the number of users we can support visiting the site, a very rough estimation would be to divide the number of requests/second by 10 (a guess at the average number of requests needed for each page view) to get a number of page-views that can be handled each second. (1)

    In addition to how many requests can be handled, how fast the requests are returned is also important. Our current response times for un-cached pages usually falls between 0.5 seconds and 2 seconds. If pages take much longer than 2 seconds, the site can “feel slow”. For anonymous pages cached in Varnish response times range from 0.001 seconds to 0.07 seconds, much faster than Apache/Drupal can do and more than fast enough for anything we need.

    The last performance metric that we are concerned with is about the time it takes for the page to be usable by the viewer. Even if they receive all of the files for a page in only 0.02 seconds, it may still take their browser several seconds to parse these files, execute javascript code, and turn them into a displayable graphic. Due to these factors, my testing has shown that most pages on our site take between 1 and 3 seconds for users to feel that our pages are loaded. For authenticated users, this stretches to 2-4 seconds.

    Finally please be aware that, anonymous users see pages that may be cached for up to 5 minutes. While this is fine for the vast majority of our content, there are a few cases where we may need to have the content shown be up-to-the-second fresh. We will address these few special cases over the coming months.

    Future Performance Directions

    Now that we have our caching system in place our system architecture is relatively complete for our current performance needs. While we may do a bit of tuning on various server parameters, our focus now shifts to PHP and Javascript code optimization to further improve server-side and client-side performance respectively.

    One big impact on javascript performance (and hence perceived load-time) is that we currently have to include two separate versions of the jQuery Javascript Library due to different parts of the site relying on different versions. Phasing out the older version will reduce almost by half the amount of code that the browser has to parse.

    Additional Notes

    (1) As people browse the site their browser needs to load the main HTML page as well as make separate requests for Javascript files, style-sheet (CSS) files, and every image. After these have been loaded the first time, [most] browsers will cache these files locally and only request them again after 5 minutes or if the user clears their browser cache. CSS files and images that haven’t been seen before will need to be loaded as new pages are browsed to. For example, the first time someone loads the Athletics page, it requires about 40 requests to the server for a variety of files. A subsequent click on the Arts page would require an additional 13 requests, while a click back to the Athletics page would require on 1 additional request as the images would still be cached in the browser.

    DrupalCon 2010 Trip Report Day 1

    Categories: Midd Blogosphere

    Hello from San Francisco! I was waylaid in Chicago and missed the morning presentations, but I wanted to share what I’ve learned so far at DrupalCon. First, a quick bullet point summary for those who don’t want to dive into the details:

    • Drupal now powers over 1% of the total websites, closely tied with Joomla. Wordpress powers about 8.5%.
    • Drupal 7’s forms will allow us to add conditional form fields that appear for the user without requiring a postback to the server. See the (very relevent for us) example here: http://d7.drupalexamples.info/form_example/states
    • Drupal 7’s User Experience (UX) team has made improvements to the interface that on our site is called the “Edit Console”. You can read more about their project at their website: http://www.d7ux.org/content/
    • We can improve our site performance by moving functionality out of the template files and into theme functions. Basically, the way we currently do things, we have to read a file off the server’s disk every time anyone loads anything on the site. By using theme functions instead of template functions we avoid this disk read and dramatically improve performance.
    • You can watch many of today’s presentations at http://sf2010.drupal.org/conference/schedule for free! Many of those without video have their slides up. The presentations from Monday are at the bottom of the page since, at the time I’m posting this, they’ve already happened and aren’t as interesting to the conference attendees.
    • Monster Menus, the module the Amherst developed that lets you add sub-pages and manage permissions is a few weeks away from being refactored to eliminate any Amherst-dependent code. The version we’re currently running assumes that Amherst’s version of Banner exists, which we’ve had to work around. The new version will make this easy for us and open MM up for other schools to use.

    All of the sessions I attended today focused on the improvements coming in Drupal 7. Currently, Drupal 7 is in “feature freeze” with 114 critical bugs left to resolve before it is released. At the keynote presentation today, Dries projected that Drupal 7 would likely be released some time between June and October of this year. Even so, and even with the large number of improvements it offers, we will not move to Drupal 7 when it is released. Our challenge is that the system we rely on to provide our site editors the ability to add sub-pages and manage permissions for their site is not part of “core” Drupal – it is provided by a module that is only used by us and Amherst College. I had an opportunity to speak with the developers from Amherst today and our projection is that, at best, we will be able to move to Drupal 7 for the start of Fall Semester 2011.

    Even that timeline will be challenging, but I will provide a quick synopsis of each of the sessions I attended below, focusing on how they will impact our site if and when we make the move to Drupal 7.

    The State of Drupal

    http://sf2010.drupal.org/conference/sessions/state-drupal

    The meat of this presentation was defining a framework for thinking about the future growth of Drupal. Right now the project is at a crossroads where it can continue to add features to satisfy the “enterprise” users of large organizations and compete with commercial CMSs like Microsoft Sharepoint, or it can aim to reduce the number of features and compete for the low end of the market with WordPress, aiming at people who just want a simple site with a few pages that is easy to manage. Dries seemed to believe that the Installation Profile system, of which there are now 19 releases, will allow Drupal to target specific low-end markets while core continues to add features to satisfy enterprise needs, but he seemed unsure of his own assertion that Drupal could do both.

    This will be an interesting discussion for Middlebury as it continues in the Drupal community. We are one of those places that has an “enterprise” need that is not satisfied by Drupal core: the need to organize our site as a tree that allows our editors to add to that tree and manage fine-grained permissions in that tree. To that extent, Monster Menus is like our own installation profile of Drupal since we know that it imposes limitations on what Drupal can do since modules need to be changed to intergrate with it. We will have to see what features get added for Drupal 8 and how well they align with our needs.

    The Rest

    I had actually planned on diving into the details of the afternoon presentations I attended, but have run out of time before this morning’s round of sessions. Today, by the way, seems to be offer a lot more for the people currently running Drupal in production. Monday’s sessions were all about all the cool new features in Drupal 7, which is fun, but not something I’ll be working with for over a year. Today I’m attending sessions on search integration, search engine optimization, cloud computing integration and database optimization. These are topics closer to my day-to-day work.

    Here are links to the sessions I attended on Monday. If you’re interested in hearing more, be sure to ask in the comments.

    AJAX and JavaScript in Drupal 7

    D7UX How to integrate the core Drupal 7 usability improvements with your module

    Default theme implementations

    Monster Menus

    After the sessions, I had a good conversation with Dan and Victor from Amherst about the future direction of Monster Menus. Dan is close to being done with the “revamp” branch of Monster Menus that removes the Amherst-specific code from their system. We’ll want to convert to this and try it out when he’s done since there are some features of our implementation that don’t work right now because the module assumes that it will be able to talk to Amherst’s version of Banner on the backend.

    Other interesting things from this meeting:

    • They are working on a way to move course sites (which are currently pages in their website – everything Amherst does on the web is in Drupal including their LMS) from one semester to the next while preserving associations like page permissions. This is tricky since you might assign permissions on a page in your course site to one student who won’t be in the course the next time it is taught.
    • We should be able to theme the RSS page content type without much trouble (this solves a request that I currently have with Communications to improve the way news items in the Newsroom are displayed), but we will probably never be able to theme the actual menu in the fashion that Drupal expects because of the processing overhead on generating that menu.
    • Amherst runs the Google Search Appliance to manage their search services. They allow the GSA to crawl their site as an administrative user and have a Drupal module that filters the search results based on the permissions of the currently logged in user. This is a requirement because their site also includes their LMS which they need to search with admin permissions. They are interested in seeing what we do with faceted search, an area they’ve wanted to look into but haven’t yet had the chance.

    We had a lot more discussion about the minutiae of various modules and parts of Monster Menus, but those are the major points. I’ll post again this evening with a roundup of today’s sessions and on Wednesday after I meet with the guys from White Whale.