Drupal.org and its sub-sites (api.drupal.org, groups.drupal.org, etc) will be going down for 20 minutes Monday, May 7, 5:00 PDT (May 8, 00:00 UTC). This maintenance window will be used to upgrade our single sign on system. Please follow the @drupal_infra twitter account for updates during the downtime and thanks for your patience!
Sites will remain functional for the majority of the scheduled downtime, but everyone will be logged out. You may not be able to log into sub-sites for a few minutes as the update is rolled out.
Drupal 7.14 is now available, which contains bug fixes as well as fixes for security vulnerabilities from Drupal 7.13.
Drupal 6.26, which fixes known bugs (no security issues) is also available for download.
Download Drupal 7.14Upgrading your existing Drupal 7 and 6 sites is strongly recommended. There are no new features in these releases. For more information about the Drupal 7.x release series, consult the Drupal 7.0 release announcement, more information on the 6.x releases can be found in the Drupal 6.0 release announcement. Drupal 5 is no longer maintained, upgrading to Drupal 7 is recommended.
Security informationWe have a security announcement mailing list, a history of all security advisories, and an RSS feed with the most recent security advisories. We strongly advise Drupal administrators to sign up for the list.
Drupal 7 and 6 include the built-in Update status module, which informs you about important updates to your modules and themes.
Bug reportsBoth Drupal 7.x and 6.x branches are being maintained, so given enough bug fixes (not just bug reports) more maintenance releases will be made available, according to our monthly release cycle.
ChangelogDrupal 7.13 only includes fixes for security issues. Drupal 7.14 also includes bugfixes. The full list of changes between the 7.12 and 7.14 releases can be found by reading the 7.14 release notes. A complete list of all bug fixes in the stable 7.x branch can be found in the git commit log.
Drupal 6.26 only includes bugfixes.
Security vulnerabilitiesDrupal 7.13 were released in response to the discovery of security vulnerabilities. Details can be found in the official security advisory:
To fix the security problems, please upgrade to Drupal 7.13.
What is included with each release?We made two versions of Drupal 7 available, so you can choose to only include security fixes (Drupal 7.13) or security fixes and bugfixes (Drupal 7.14). You can choose your preferred version. We are trying to make it easier and quicker to roll out security updates by making security-only releases available as well as ones with bugfixes included. We hope this helps you roll out the fixes as soon as possible. Read more details in the handbook.
Known issuesNone at this time.
The call for papers is still open for DrupalCon Munich -- but only until May 11! Trainings too! The DrupalCon content team is looking for sessions that cover pushing the boundaries of Drupal and its increasing use as a cross platform system. Help shape what is presented at DrupalCon with this year's theme, "Open Up! Connecting systems and people."
Any proposals for sessions should fit within one of the following tracks:
To learn more about each topic, view the Session Track page. Here you can find out the anticipated audience and the topic focus, as set forward by each track chair. Selected Sessions and Trainings will be announced May 29.
Curious to learn how sessions are selected at DrupalCon? Learn more about the session selection process.
Core conversations will open for submissions on May 29, read more about Core Conversations on our website.
We are also inviting all organizations with training experience to submit proposals for the Pre-Conference Trainings, to be held on Monday, 20th August 2012.
Open Up - submit your session before May 11! We look forward to seeing you in Munich August 20-24. Join the Drupal community in Europe this summer and register now for early-bird pricing.
We are thrilled to announce that Google will be sponsoring 13 Drupal projects for Summer of Code 2012. We would like to extend our sincere thanks to Google, who are investing over $72,000 in the Drupal project.
As always, we had many more projects that we would have liked to accept than we were able to. The mentoring team deliberated fiercely over the past two weeks, and arrived at the final acceptance list.
Drupal will benefit from microdata support for contrib field types, help topic module for documentation team, sales reports integration for drupal commerce, materialization plugin support for views, search api statistics etc.
If you would like to keep up to date on Summer of Code happenings, would like to volunteer to help test students' projects, and/or would like to help students as they find their way in our community, please join the SoC 2012 working group and help out in whatever ways you can.
Here's to another great summer! :)
Application Student Mentors Auto Tagging Articles using Semantic Analysis/ Topic Modelling Arjun Kapur Matt Chapman Enhancing Feedback module (D7) Manu Chaudhary Alex Weber Enhancing Secure Code Review Module Udit Jaggi Michael Hess Extend microdata support to contrib field types Anca Dumitrache Lin Clark Help Topic module for the Drupal Documentation Team and for the help system temaruk Jennifer Hodgdon Improving RESTful Web Services Sebastian (sepgil) klausi Materialization Plugin for Views Dhruv Baldawa Janez Urevc Phone / SMS / VoIP integration with Drupal Commons nitech Leo Burd Port Og_panels to D7 and Improve Message notify to make it the source of email notifications sanjay rohila ezra-g Preparing Menu Block Module for Drupal 8 Core Chad Whitman Dave Reid Sales Reports for Drupal Commerce Christophe Van Gysel Daniel Wehner Search API Statistics Michael Timofejev Thomas Seidl Translation Management Tools Server Sebastian Siemssen Miro DietikerDrupal.org and its sub-sites (api.drupal.org, groups.drupal.org, git.drupal.org, etc) will be going down for 45 minutes Thursday, April 19, 5:00 PDT (April 20 00:00 UTC). This maintenance window will be used to upgrade our backend media servers. Please follow the @drupal_infra twitter account for updates during the downtime and thanks for your patience!
NOTE: During this downtime window, we will also disable access to the git repositories via SSH. The git:// protocol will still be functional.
Back in 2009, Groups.Drupal.Org (GDO) went through a major transition including upgrading from Drupal 5 to Drupal 6, a redesign, and adding new maintainers. We are currently in the process of a similar transition. The site has already gone through a redesign, and as we make plans to transition to Drupal 7, we will also be moving to new maintainers for the next year.
Making it easier to contribute to GDOBetween the Drupal Association’s initiative to improve *.drupal.org, the community brainstorming on site improvements, and feature requests in the Groups.Drupal.Org issue queue, there is clearly a lot of interest in making improvements to GDO. However, for folks who want to roll up their sleeves and help by filing a patch, the path to replicating GDO for development purposes hasn’t always been clear. As a strategy for making it easier for anyone in the Drupal community to file a patch and streamlining maintenance efforts for the site, we have proposed that GDO will run the Commons distribution of Drupal for Drupal 7. Of course, this means that improvements made to GDO benefit sites powered by Drupal Commons and vice-versa, that generic improvements to Commons will benefit GDO.
New maintainers: Meet Ezra, Scott, and JustinHelping with this transition, Ezra Gildesgame (ezra-g), maintainer of Drupal Commons, is also now a maintainer of groups.drupal.org. Ezra is the technical lead for Drupal distributions at Acquia, has been contributing to Drupal for over 5 years, and also maintains the Conference Organizing Distribution (COD).
Our other new Groups.Drupal.Org maintainers are Scott Reynen (sreynen) and Justin Toupin (justin2pin) from Aten Design Group. Scott is Lead Developer at Aten and has been contributing to Drupal for over 5 years, including helping to organize the Denver group on GDO. Justin Toupin is CEO at Aten, and has been leading the organization’s involvement in Drupal since version 4.7.
Getting involved: How you can make GDO betterThis process of upgrading Groups.Drupal.Org is an especially good time to get involved by joining a few different groups and queues:
Note that Ezra, Scott, and Justin have agreed to work on the site for at least a year. If you think you might want to take over in a year, the best way to do that is to get involved working on the site in these issue queues.
Thanks, Greg & Josh!This is also a great opportunity to thank Greg Knaddison (greggles) and Josh Koenig for their help maintaining Groups.Drupal.Org over the past few years. Josh and Greg found they were too busy with other projects unrelated to community site building which made it harder to find time for GDO (Josh building Pantheon and Greg working with Acquia’s Profesional Services Security Group and the Drupal Security Team). Greg and Josh hope that transitioning to people who spend more of their lives working on community sites will help GDO be an even more valuable collaboration platform for our community.
Hi friends. I'm hoping that you'll support another Drupal community initiative that I've recently dreamed up. All you have to do is add a /drupalgive page to your organization's web site.
Two organizations have published already at http://www.acquia.com/drupalgive and http://www.chapterthree.com/drupalgive. These pages are based on a design by Nica Lorber of Chapter Three. Feel free to reuse this design or just publish a plain listing page. It is better to publish a plain page than none at all. Or use the Feature at http://drupal.org/project/drupalgive.
A /drupalgive page highlights the great work that your organization is doing for the Drupal project. Not only does your organization receive credit for the work you do, but we also nudge other organizations to give back as well. I expect that employees and potential hires from non-contributing organizations will start demanding to give back. This initiative gives those folks something to point to when advocating and educating inside their organization.
Here are examples of appropriate and inappropriate items for a /drupalgive page:
AppropriateYour /drupalgive page should also emit an RSS feed at /drupalgive/rss. We'll add your feed to the new Planet Drupalgive (page, RSS). To get added to the feed, follow the Drupal Planet process. Lastly, please include a link to http://drupal.org/project/drupalgive so that folks can learn more about the initiative.
One simple way to build a /drupalgive page is to add a 'drupalgive' term to your site taxonomy and tag posts with it. Alias the term detail page to /drupalgive and you are done. An alternative is to create a dedicated content type for these entries and a simple View at /drupalgive will show the listing.
Please comment below and lend your support or provide other input.
Bojhan Somers and Roy Scholten are the Drupal UX Team leads.
We believe that Drupal 8 User Experience needs a lot of work to truly make all users of Drupal love what they are working with. We believe that by improving core, we improve the entire Drupal experience for everyone.
How are we doing this? By working with core initiatives, providing ideas, sketches, wireframes, detailed designs, and actively engaging in discussion. D7UX taught us a lot of hard lessons, we now know how to communicate our design rationale more clearly, maintain a UX vision throughout the maze of issues, and empower developers.
What are we working on? We are working on a few initiatives; mobile, blocks & layouts, multilingual and leading a lot of smaller efforts around improving our content authoring and site building experiences.
Drupal 8 design progress so far Content creationOur content creation experience is still far from being great, but we have been improving the content creation experience from all angles. We have received lots of feedback on our proposals, and iterated with the community on various parts of this experience.
We have now finalized most of our research activities and we want to start implementing a few of our major ideas. For this to happen, we need developers who want to improve this part of core.
There are two very actionable issues at #1510532: Implement the new create content page design and #1510544: Actual preview of content for you to help out on!
Blocks & LayoutsThe blocks & layout initiative started by EclipseGC focuses on solving the messy experience of placing parts (blocks, views, panes) on the page. We believe this can be fundamentally better if we tackle it in core. This initiative will allow us to arrange and organize blocks into flexible layouts through a drag and drop interface. This initiative has many UX components, from finding the right blocks, to selecting the context, to creating mobile layouts.
We have done a lot of research the past few months to understand the space we are designing for. It’s incredibly complex, but will be a huge win if we can provide a great solution straight out of the box.
We will need help from everyone; developers, designers, user researchers, end users and business owners! Become part of the discussion in the Drupal 8 Blocks & Layouts everywhere initiative group.
UX team activities UX team bi-weekly office hoursWe started to hold bi-weekly UX "office hours" (next one will take place 16 April, 20:00 UTC, 4PM NYC, 4 AM Tuesday Singapore/Shanghai), where we will discuss recent activities of the team but also review contributed modules. This has resulted in modules such as Taxonomy Acces Control making major improvements.
UX team activityThe team has been busy in Q1 2012:
We have also released our ideas around redesigning the module page, adding a project browser to core, adding search everywhere, draft revisions and much more in the usability issue queue!
We need your help!We need volunteers:
If you're interested in becoming a contributor to the UX Team in one of the roles above, contact Bojhan Somers and/or Roy Scholten.
You can find us in in the usability group, contact us directly by e-mail (or drupal.org contact form), join us on IRC in #drupal-usability, or find us in person at Frontend United.
The cool stuff we're working on
Still not sure? We we love a lot more help to pursue all these crazy ideas within the next 7 months:
Thanks!
- Bojhan and Roy
AttachmentSize ux_sprinting.jpg55.93 KBHello from Jennifer, your friendly Drupal Documentation Team leader! It’s time for a quarterly update on what’s happening in the Documentation team.
First off, I just want to remind everyone that I’m still planning to step down as Documentation Team Leader at the end of 2012. If you’re interested in becoming the co-leader or assistant leader now, and taking over at the end of 2012 as the main team leader, see http://groups.drupal.org/node/203258 for more information. It would be good to find someone soon!
EventsLast year, the Docs Team (or at least its leadership) got a bit discouraged about Documentation infrastructure improvements taking quite a while to get deployed to Drupal.org. But now there's a new process for getting improvements deployed, and Neil Drumm is working on them with hours funded by the Drupal Association. So, I'd like to get us working on improvements to "docs infrastructure" (tools, navigation, etc. for Drupal documentation writers and users) again.
I started working on that this quarter, and several small things were deployed. That went well, so there are now more in progress. Two that we hope to get done soon are a Docs Team effort to have better navigation for Community Docs, and LoMo's project to replace the Books page with a content type/View. Join in the discussion and/or help out!
And as a preview, this summer I would like to really get working on the "curated docs" we've been talking about for a year or more... Watch http://groups.drupal.org/documentation-team for updates!
Next StepsIf you're interested in helping with Drupal documentation:
War Child UK is a small charity that helps protect children in some of the world's most dangerous conflict-affected countries. Our main site www.warchild.org.uk is was built from scratch on Drupal 7 in October 2011.
Describe the project (goals, requirements and outcome): HTML5 and CSS3 As the site was unlikely to have a major refresh for the next few years, we decided to build it using the Boron HTML5 base theme, and it uses some CSS3 properties like border-radius quite heavily. It uses rge CSSPie module to make sure these features render properly for non-CSS3 compliant browesers like IE7 and IE8. The design was created by Mike Kus and then converted to a Drupal theme. Views The site makes extensive use of the excellent Views Module (now part of Drupal core). It has some custom-styled Views Sliders (for instance on the home page) and many pages (like Discography) are Views-Grid based. The fact that these are relatively easy to make and amend is one of the best features of Drupal. Panels As there's a variety of layouts, the Panels module is also used extensively. Once a couple of custom templates were created, these could be used to create many different pages. Static Page Caching The site uses the Boost module to deliver pages to browsers much faster. Rather than querying the database every time it wants to dynamically create a new page, the site instead saves a static .html version of the page in its cache folder and serves that up to the user instead - which is much faster. It took a bit of fiddling to get it set up properly, but it was well worth it as it runs pretty quickly on a fairly basic server environment. Donations As a charity site, one of its most important functions is for online donations. This is perhaps the one area where we struggled most. The donation form is connected to a payment gateway (Worldpay) who process the transaction and then send a simple callback to a MYSQL table on our server. We looked at various shopping cart modules like Ubercart but none seemed to quite fit the bill. It means that we have to go through phpMyAdmin to export the table in csv format to see the donations. We don't have (or want) an SSL certificate and all the compliance issues that go with it, so the transactions are done via a themed Worldpay page. We don't collect or even see the users' card details. The build The site's theme was built internally and then we used an agency (New Digital Partnership) to provide specialist Drupal help to set up some of the templates and functionality. It took about 6 months, though in hindsight and with better planning on our behalf it could have been built much quicker. The result The site was featured as a .net magazine site of the month and gets thousands of visitors per month from CSS gallery sites thanks to its design. The online donations have increased approximately five-fold and the traffic has doubled as the site is more SEO friendly and has made our free Google Adwords campaigns a lot more effective. Apologies if some of the above info isn't as detailed as it might be - I'm a intermediate Drupal user but not much of a PHP coder or module developer - which is why I'm enormously grateful for all the patience and support that people here on the Drupal community have shown me over the last few years! Feel free to post any questions in the comments below. Modules Key modules used: Views Panels Boost Why these modules were chosen: n/a Community contributions:n/a
Project team:Ben
Online Manager at War Child
Tax-Compare is a comparison website that allows visitors to compare the major providers of tax software and select one that will best suit their needs. The site was launched in 2008 as static HTML, but due to the nature of our business, it was re-launched in 2010 using Drupal 6.
Modules Key modules used: Pathauto Global Redirect Path redirect Keyword Link Views Glossary Why these modules were chosen: We made our system even more SEO-friendly by using contributed modules <a href="http://drupal.org/project/pathauto">PathAuto</a>, <a href="http://drupal.org/project/globalredirect">Global Redirect</a>, <a href="http://drupal.org/project/path_redirect">Path Redirect</a>, <a href="http://drupal.org/project/page_title">Page Title</a> and <a href="http://drupal.org/project/nodewords">Nodewords</a>. We used the Views module to build all the comparison grids. And finally, a rich resource section was built for Tax-Compare with the help of the Glossary module. Tax vocabulary terms mentioned in the content are automatically linked to a page with a full definition. Community contributions:We also made a major contribution back to the Drupal community by submitting a patch for the Keyword Link module. Our patch adds an interface to build keyword link values and pairs. It also has more complicated logic for linking keywords.
At the end of 2007, Aten Design Group worked with The Colonial Williamsburg Foundation to deploy iCitizenForum.com, a Drupal website about Citizenship. The following case study documents some of the factors that led to choosing Drupal, and outlines the technical approach for the project.
The Colonial Williamsburg Foundation operates the world's largest living history museum in Williamsburg, Virginia. The foundation preserves and interprets a 301-acre Historic Area; operates museums, outreach programs, and the John D. Rockefeller Library; and carries out important research and archaeology pertaining to the origins of America. In accordance with its mission, "That the Future May Learn from the Past", the foundation is concerned not only with recreating the 18th-century experience, but with facilitating education about the idea of America–both in its beginnings, and in its relevance for the future.
iCitizenForum.com, a website that promotes discussion around the topic of Citizenship, is a fitting extension of this core mission.
Describe the project (goals, requirements and outcome): By the time of Aten Design Group's involvement with the project in late 2007, work had already started. Designs had been produced. A website had been custom-coded in ColdFusion. Community features had been implemented using a .NET-based social software solution. The concept had already gone through several major evolutions, and its stakeholders felt that the latest iteration still wasn't quite spot-on. We began our work with a collaborative discovery process to reassess the primary goals for the website and identify the best steps forward. The central purpose of the project, as defined during this process, would be to engage users with a discussion around the idea of Citizenship. In line with this goal, we established the following requirements: <ul> <li>Use blogs, organized by themes and tags, as the primary means of engaging users.</li> <li>Leverage video as a prominent means for delivering content, in blog posts and elsewhere in the website.</li> <li>Offer forums as a platform for supplemental discussion.</li> <li>Provide in-depth resource materials, including translations for some documents, with background information on the subject of Citizenship.</li> </ul> <h3>Windows Hosting</h3> Colonial Williamsburg runs IIS on Windows NT servers, uses ColdFusion for development, and serves up data with Microsoft SQL Server. It was an uncommon environment for Drupal. Time constraints and a pre-existing service agreement for a dedicated NT server made considering LAMP unrealistic, so we began exploring the viability of hosting Drupal on Windows in a production environment. We installed PHP 5, MySQL, and an IIS module (ISAPI Rewrite) to provide mod_rewrite-like URL rewriting for clean URLs. <h2>Implementation</h2> With server configuration mostly behind us, we began building out the website. <h3>Content Types and Teaser Lists</h3> We implemented content types using the CCK, and created custom PHP blocks to handle content lists. We went back and forth a bit on whether to do this with views or custom queries, but in the end sided with the latter–our decision aided by the fact that lists would need little-to-no editing, and did not depend on joins with CCK fields. Additionally, each "Discussion Topic" category within the website has a correlating Discussion Topic node, assigned to its respective category, which serves as a stub for listing related posts. This approach provides workflow controls for categories that are already available for nodes. New topics won't actually appear in the website until the appropriate user publishes the correlating Discussion Topic node. Throughout the website, custom blocks inspect the current page, determine the current Discussion Topic, and display lists of related content. <h3>Site-wide Call-outs</h3> The client needed a way to call-out any content from within the website in the form of graphic promotions assigned to the right-hand sidebar. This was accomplished by creating a custom block that displays images attached to any content in the website via a CCK imagefield labeled "callout". <h3>WYSIWYG</h3> Originally, content was entered and edited with the help of TinyMCE. We later swapped TinyMCE for Markdown, plagued with the same old problems presented with JavaScript-based attempts at WYSIWYG. (Read more about our thoughts on WYSIWYG vs Markdown.) <h3>CAPTCHA</h3> CAPTCHA was used for all input fields available to unauthenticated users. We chose Math CAPTCHA, rather than image-based CAPTCHA, for accessibility reasons. <h3>Translations</h3> Multiple translations of citizenship resources were accommodated via a custom content type (Page Translations) equipped with a Node Reference field for linking to original texts. Each translation features an overview "about" page that provides a description of the content and goals within iCitzenForum.com, as well as a list of all additional resources available within the website in that specific language. Because the implementation uses a custom content type with a CCK node-relate field, dynamically generating these lists, and linking each translation page back to its respective source, was relatively simple. Throughout the website, translations are represented visually as a series of flags beneath the title of any document where additional translations are available. In the site-wide footer, these same flags each link to an overview "about" page for the respective translation. <h3>Video Content</h3> Some of the most interesting functionality at iCitzenForum.com involves its handling of video content. Early in the project, we simply allowed content contributors to paste embed code from YouTube, Vimeo, Blip and similar websites into the body field of blog posts. Later, we began discussing a way of aggregating posts that contain video into a single, self-contained video library. Additionally, video editors at Colonial Williamsburg wanted the ability to more closely control the quality of videos being published, which in this case meant hosting the video locally. We wanted to maintain the ability to syndicate video to third-party video websites, but wanted to better manage the quality of original videos posted within iCitizenForum.com. These new requirements pushed additional development in two directions. First, we needed a way to list video posts together in a library-like setting. Second, we needed to dynamically push videos out to services like YouTube. <h3>Video Library</h3> To accomplish the first requirement, we created a simple module called VideoLib that provides a configurable view for displaying video content, relevant taxonomies, and related videos within a single view-port. The module exposes several theme functions that offer in-depth control over the look and feel of the video library. It includes JavaScript that applies unobtrusive AJAX actions to the taxonomy and related video navigation, providing a highly responsive, single-page experience for users. Video is attached to content via a CCK file-field labeled "video". Any content type can behave as video content simply by adding the "video" field to it. Within the settings page for VideoLib, admin users can specify which content types that have the "video" field should be included in the video library. Additionally, administrators can choose which taxonomies to expose as navigation blocks. In this case, we wanted Discussion Topics to appear as navigation options down the left side of the page, but not Tags. It is worth noting that we could have used a combination of page and block views to accomplish a similar end result. We opted instead to create a custom module that rolls all of the necessary functionality into a single, more portable, centrally managed feature for this website, with potential application for future projects as well. <h3>Link Rewriting</h3> Stepping back a moment to the video library functionality, it is worth going into a bit of detail about the way we handled linking. Within the video library itself, all links are routed to URLs that appear as "videolib/{term id}/{node id}", a menu path controlled by the VideoLib module, which in turn handles all of the necessary functionality for displaying videos. We wanted to go beyond this, and make sure that any node within the video library could be displayed outside the library as well (in teaser lists, for example). To accomplish this, we used the custom_url_rewrite system hook function in settings.php. Within that function, we detect if the "node/{node id}" path belongs to a video post. If it does, we dynamically rewrite the URL to "videolib/{term id}/{node id}". <h2>Wrapping Up, Moving Forward</h2> Drupal's robust taxonomy features, combined with its powerful content management capabilities that, while excelling at community features, provide more than a social-software solution, made it an excellent choice for the iCitizenForum project. The initial Drupal-powered deployment launched just eight weeks after redesign efforts began, largely due to the wide range of features already available in core and contributed modules–without the need for extensive custom development. Since launch in early 2008, numerous new features and modifications have been incorporated back into the website. Moving forward, the vision for iCitizenForum.com is that it continues to evolve and adapt. Drupal, with its modular architecture, support for open standards, and passionate community, continues to be an ideal platform for the project. Modules Key modules used: Youtube API Why these modules were chosen: The Youtube API module was developed for the project. Community contributions:The development effort for the video syndication capabilities, spearheaded by Brad Bowman, quickly evolved into a full-fledged YouTube API module that offers a wide range of interface capabilities that go far beyond the initial needs for simple content syndication. The YouTube API module provides functions for programmatic video management, FeedAPI integration, video feeds, commenting, authentication, rating, and managing favorites between Drupal websites and YouTube.
In addition to automatically pushing content to YouTube and Vimeo, the video library features a video-specific RSS feed that includes all nodes from within the library, their teasers, and their associated videos.
Team members: beeradb Project team:Aten Design Group
In February 2008, Popular Science, the fifth-oldest continually-published monthly magazine, relaunched its online presence with an enterprise-level website developed by pingVision, powered by Drupal.
http://drupal.org/node/233090
Unknown. Some of the customizations and adjustments would (were?) be contributed as modules for Drupal 6.
Organizations involved: PINGV Team members: AjK alasda cyberswat coltrane ezra-g greggles gregnostic jcfiala laura s matthews skywalker2208 3goose Zarabadoo Project team:Katherine Lawrence http://drupal.org/user/42890 - unfindable with autocomplete
Eureka! Science News is a site dedicated to provide the very latest science news, but with a special twist – it is entirely automated! There is no human editor behind it - it finds relationships between news stories from all major science sites and regroups, categorizes, ranks, tags, finds related press releases and publishes them directly on the site. The result is an efficient overview of everything happening in science, right when it happens.
Describe the project (goals, requirements and outcome): I wanted to build a site that would report science news as it happens. I felt the need to automate the process while keeping the quality at a high level. So much science news is posted every day, but frankly, not all of it interesting. I found the inspiration in initiatives like <a href="http://www.techmeme.com/">Techmeme</a> and <a href="http://news.google.com/">Google News</a>. <h2>Building the Eureka Engine</h2> First, I identified the principal components of an intelligent news aggregator: <ul> <li>A source of news, such as an RSS aggregator</li> <li>A clustering engine, to group news together</li> <li>A classification engine, to categorize the news (Is this Biology, Physics, Medicine or Astronomy?)</li> <li>A way to assign scores to clusters, to determine in which order the news should be displayed</li> </ul> First, I needed a good RSS aggregator; the default one provided by Drupal was inadequate, as it did not create Drupal nodes out of RSS items. The other aggregators available at the time were Leech and Feedparser, but they were implementing lots of functionality I did not really need and were not yet mature. Fortunately, <a href="http://tedserbinski.com/">Ted Serbinski </a>(<a href="http://drupal.org/user/12932">m3avrck</a>) came to the rescue, releasing <a href="http://drupal.org/project/simplefeed">Simplefeed</a> just when I needed it. Simple, fast, efficient: I could not ask for more! Next, I built three custom modules to implement the remaining functionalities. The process was easy thanks to the infinite extensibility of Drupal – the hooks system is just wonderful! The result is what I call the Eureka! Engine. Here are some details about these three modules: <h3>Clusterer.module</h3> The first step is to regroup similar items in clusters. Two things are needed to cluster items together: a similarity metric and a clustering algorithm. In the case of text, similarity metrics can be based on the occurrence of words in two texts – a document can be represented as a vector (see <a href="http://en.wikipedia.org/wiki/Vector_Space_Model">vector space model</a>). Fortunately, MySQL Fulltext engine does exactly this – by using a whole article as a fulltext query against all other articles, it is possible to calculate a similarity score between every pair of articles. I use a sliding window technique to limit the number of items clusterer.module needs to look at (highly related news items are often published in a relatively small timeframe so looking at a ‘window’ of a few days worth of news at a time is adequate). Hierarchical clustering algorithms have a complexity of O(n^2), sometimes worse, so it gets exponentially more expensive to compute clusters as you add more items. To regroup items, I used a <a href="http://search.cpan.org/~mdehoon/Algorithm-Cluster/perl/Cluster.pm">Perl API to a C library</a> implementing hierarchical clustering; it is very fast, clustering a thousand items in a few seconds. I initially tried to implement my own clustering algorithm in PHP but it was slow and memory inefficient. Do not reinvent the wheel if you do not have to! Lots of tweaking was necessary to find the ideal clustering parameters that would allow great precision and accuracy. Be too permissive and you end up with mega clusters of unrelated stories - be too restrictive and related stories do not cluster together anymore. In the end, I got something very satisfying. <h3>Categorizer.module</h3> There are many classification algorithms out there; I needed an accurate one, but most importantly, a very fast one (many items to classify from RSS feeds). I chose a <a href="http://en.wikipedia.org/wiki/Naive_Bayes_classifier">naïve Bayesian filter</a> – your email software probably uses a similar approach to determine whether incoming mail is spam or not. In the case of Eureka Science News, the algorithm needs to classify incoming news items in eight categories – Astronomy, Biology, Climate, Health, Math, Palaeontology, Physics and Psychology. For this purpose, I ported / reworked a <a href="http://www.xhtml.net/scripts/PHPNaiveBayesianFilter">naïve Bayesian php library to Drupal</a>. It is reasonably fast and categorizes a new item in about a tenth of a second. The system is surprisingly accurate once trained properly - of course, it makes errors every now and then (especially when it encounters a post made up of words it did not see before) but I am pleased with its performance so far. In the future, the system could be improved by using <a href="http://en.wikipedia.org/wiki/Latent_semantic_analysis">latent semantic analysis</a>. <h3>Publisher.module</h3> Finally, I built a module to rank clusters of news and to find and parse related press releases. The module ranks clusters based on the number of items they contain, the timeliness of each of those items and a few other factors such as popularity – the score is time-decayed using a formula based on radioactive half-life decay, keeping only fresh or popular news at the top of the front page. The system as a whole outperformed my expectations; it even outsmarted me on a few occasions where it found links between stories I did not think were related (why did it regroup those four articles, they are not highly related! Oh, wait… they are slightly related but were presented at the same international conference! Cool!). You should be able to do the same on your sites pretty soon - thanks to the <a href="http://drupal.org/node/261340">memetracker.module</a> from Kyle Mathews, a Google Summer of Code 2008 student! He plans to build a generic framework which will allow the automatic clustering and classification of Drupal nodes. Cannot wait to see what kind of implementation he will come up with – a generic framework is more complicated to build than a site-specific one such as Eureka Science News. <h2>Search: Meet the Sphinx</h2> At first I used Google Site Search as the search solution, as I felt that Drupal search.module could not keep up with a very large number of nodes (the site produced about 50 000 nodes in a month and a half during testing – what about in 5 years, with more sources?). With Google Site search, the updates were not instant, (there is a significant delay between when an item is published and when Google will crawl it), the interface was also very restrictive - even if I could integrate the results directly in the site, I could not alter the layout or results in any way. I discovered <a href="http://www.sphinxsearch.com/">Sphinx Search</a> thanks to <a href="http://drupal4hu.com/node/129">a post made by chx on his blog.</a> It is easy to configure and extremely fast - it indexes hundreds of thousands of nodes in mere seconds and searches are all returned in one second or less. Using a “main + delta” scheme of indexing, I can index news as soon as they are published. In addition to the search form, I used one of sphinx built-in function to generate our stopwords list (for clustering / classification). <h2>Design</h2> I used a CSS framework: <a href="http://code.google.com/p/blueprintcss/">Blueprint CSS</a>. It is ideal for a grid design (which in turn is great for news sites). The results obtained with Blueprint are cross-browser compliant which is a huge timesaver. The framework comes bundled with a CSS reset (so that the site will look the same in every browser) and a nice basic typography which keeps a vertical rhythm of 18px (this means that every line of text will fall on the same virtual ‘line’, giving a virtual rhythm which is nice to the eye). Coupled with Panels.module, it allowed us to create the design of most major pages on the site in record time – it is also very simple to test different layouts since it is so easy to use. Even when using a framework, CSS still has pitfalls – I was hit by somewhat obscure bugs in different browsers (guillotine bug, some menu completely disappearing in IE6, just to name a few). I used <a href="http://browsershots.org/">Browsershots.org</a> to a great extent – screenshots of your site in just about every browser, free! <h2>Performance</h2> Performance is always the #1 concern when building a site with a potentially huge number of nodes. Eureka Science News is quite complex, so I generated custom SQL for almost everything instead of using the Views module - just about every query is optimized and thus very fast. Views is used exclusively for the Archive. MySQL optimization is important and the Drupal page caching mechanism and the MySQL query cache are not an excuse to have badly optimized queries. What if I want users to register in the future? What about the one user hitting an uncached page that is forced to wait seconds while the page loads? Servint – I installed APC cache, tweaked Apache and Mysql but did not yet install more advanced performance improvements like Memcache. Right now AB (Apache benchmark) gives us upward of 500 requests per second on a cached page, which is very satisfying. I applied the <a href="http://developer.yahoo.com/yslow/">YSlow</a> principles thoroughly – a special thanks to Wimleers for his <a href="http://wimleers.com/article/improving-drupals-page-loading-performance">detailed post about YSlow vs Drupal </a>– while I left things out like using a Content delivery network for now as I feel it is overkill, I keep a very interested eye on Wimleers CDN.module. Some of the things which made a small but noticeable difference on the page loading times: <ul> <li> Minified CSS and JS using <a href="http://developer.yahoo.com/yui/compressor/">Yahoo YUI compressor</a></li> <li> Aggregated JS and CSS</li> <li> Used CSS sprites for small icons</li> <li> Used PNG crush and <a href="http://people.bath.ac.uk/ea2aced/tech/png/pngslim.zip">PNGslim</a> to reduce the size of all the images on the site</li> </ul> I also used Drupal cache_set and cache_get functions for SQL intensive blocks that are on every page - like the ‘popular’ block. Be wary of implementing tons of javascript plugins, as that can affect load time performance. At one point the ‘recent images’ block on the front page were embedded into a javascript carousel, but it impacted the page load times significantly (users had to download additional images that they wouldn’t see most of the time, plus the actual javascript parsing and execution time was significantly high - 500 milliseconds for that carousel alone). Sure it looked cool, but cool is not our #1 priority, performance is! Drupal page cache is great for anonymous users, but can also create problems; I wanted to display the amount of time elapsed since the publication of news items in some place (‘published 2 hours ago’) but with minute precision. I did not want users to see for example ‘published 1 minute ago’ for 10 minutes. I resolved the problem by porting Drupal format_interval function to JavaScript. The optimization paid off as the site was hit by Reddit (two different stories), YC News and Stumbleupon the day of the launch and the following days: the relatively modest VPS did not even break a sweat; page loads were still instant, even with about 3000 page views within a few hours, about 15 000 in a few days. Since then we have been hit by Slashdot multiple times and were featured on the front page of Mashable with no performance problems whatsoever. I feel confident that a single VPS will be able to handle the growth of the site for quite some time. <h2>Miscellaneous</h2> <h3>Developing on Windows</h3> Doing web dev work on Windows is possible! I built everything using Windows exclusively – using <a href="http://www.en.wampserver.com/">Wamp</a> and Notepad++ mainly. I also could not live without the Firebug and the <a href="https://addons.mozilla.org/en-US/firefox/addon/4125">‘It’s all text!’</a> extensions for Firefox. Modules Key modules used: SimpleFeed Views Pathauto Global Redirect ImageCache Panels Taxonomy Access Control Quickstats Service links Why these modules were chosen: n/a Community contributions:n/a
ioby — short for "In Our Backyards" — is a social microfunding web service that connects people and money to site-based environmental projects (presently only in the New York City area). All of the projects funded through ioby are conceived, designed, and run by neighbors.
Describe the project (goals, requirements and outcome): The new site provides a five step process to empower visitors to help make a difference: <ol> <li>pick a project</li> <li>nurture it through funding</li> <li>follow the results</li> <li>get your hands dirty and inspire others</li> <li>prepare for great things</li> </ol> The optional sixth step is “rinse and repeat.” Modules Key modules used: Drupal Commerce Google Maps v3 Why these modules were chosen: The ioby website heavily leverages Drupal Commerce. New Signature utilized Drupal Commerce to present a simplified and streamlined donation process to the visitor, empowering users to easily move from project selection through checkout and payment. We further extended the Drupal platform through the use of contributed and custom modules, such as the Google Maps tool to provide visualization of projects on the site. Community contributions:A few key parts of the application built for ioby hadn’t been tried using Drupal 7 or, more importantly, Drupal Commerce previously. Because the site is donation-centric and needed to accept donations of any amount, the first challenge was to make a product to place in the cart that didn’t have a set price associated with it. In order to do this, the systems created the product "on the fly" as the donation is placed into the cart. The second challenge was to create a system that allowed users to also give a 20% gratuity directly to ioby. The third challenge was to enable sponsors to match the donation amount as part of a campaign for matching funds for a project.
The first challenge was handled by using a simple form that allows the user to enter the amount of the donation they want to give to a project. This form submit creates a new commerce product using the Entity API system. The product is instantiated and customized with the donation amount, and then placed into the cart. Each product in the Commerce module requires a unique SKU, so the system generates one based on the user's name, the project title, and a date reference to assure no products are duplicated.
For the second challenge, gratuity was at first going to be a tax type in the Commerce system. However, one of the requirements was to also give the user the ability to remove the gratuity if they felt that they didn’t want to cover the costs for it — a feature Commerce doesn't support with tax (for obvious reasons). To enable that ability, the gratuity is a line item (re)calculated every time the cart is updated. Once again we used the Entity API to generate a new product, and this time the gratuity type that has an individual SKU, and a price that is a percentage of the order total. Another custom feature we added was to show a popup message when a user removes the gratuity, explaining to them the importance of gratuity for ioby. Since the view doesn’t discriminate between the different line items, it was necessary to use some jQuery to handle this feature.
For the third challenge - giving corporations and sponsors the ability to match the donation amount – we couldn’t just add line items to the donation (like how user-submitted donations are handled) as this would change the donor information. Instead, we had to add a new panel to the checkout process that let the donator know that the sponsor was helping the cause as well. The sponsor was tied to the project by campaign node, using the new Drupal 7 database API to make direct calls to the database and tie the sponsor, campaign, project and donation together. Once the bond is created, a donation match is created and funds are applied to the project without charging the user.
Organizations involved: New Signature Commerce GuysAs announced on stage at DrupalCon Denver, we have just opened the Call for Papers for DrupalCon Munich 2012, as well as keynotes, call for trainings, scholarships, and registration. The Drupal Association and the Munich DrupalCon committee have been preparing for the next DrupalCon for months now. Things will move into high gear once DrupalCon Denver closes its doors, later this week.
Announcing ...
Keynote speakersDrupalCon Munich announces three keynotes by open source and industry visionaries, including Dries Buytaert - the founder of the Drupal project talking about the future of Drupal on Tuesday, August 21; Anke Domscheit-Berg, a renowned expert in open government and open data, speaking on Tuesday, August 22; and Fabien Potencier, CEO of SensioLabs and founder of the Symfony project speaking on Wednesday, August 23.
Call for papersYour contribution is needed! Come to Munich and share your expertise with the most amazing open source community in the world. Submit your session ideas at http://munich2012.drupal.org/call-for-papers
Early Bird registration opens today!Registration for DrupalCon Munich is now open. The special early-bird rate is €350 for the first 300 tickets, after that the price is €400 until June 15, and 475 until July 31. Late registration after this date until August 17 will be €525. On-site registration will be €575. The is a limited number of tickets available at a rate of €200 for students and non profit organisations (all prices inclusive of VAT). Register now at http://munich2012.drupal.org/register.
Call for trainingsThe Drupal project needs more contributors, site builders, users, and developers. We’re looking to cover the gamut from beginner to highly advanced trainings. Trainers and training companies, submit your trainings now! http://munich2012.drupal.org
Scholarship applications are now openDrupal is for everyone and everyone can enrich the project. If you would like to come to DrupalCon Munich but cannot afford the cost, a limited number of scholarships will be available. Submit your application at http://munich2012.drupal.org/
Keep up-to-date with all things Drupalcon Munich; follow @DrupalCon on Twitter.
-- Florian Lorétan (floretan) and Karsten Frohwein (kars-t), co-chairs of DrupalCon Munich
Some of Drupal's Summer of Code success stories include:
Angela Byron (webchick) the Drupal 7 co-maintainer, Director of Community Development at Acquia, a Google-O'Reilly Open Source Hall of Famer and a Drupal Association board member. She originally got her start in Drupal writing Quiz module for GSoC 2005. Sumit Kataria, started as a GSoC student back in 2009 working on OAuth module, and now not only is one of the foremost experts in the Drupal community on mobile (look for his mobile apps for DrupalCon Denver in an app store near you!), but co-manages Drupal's involvement in GSoC. He works as a Drupal consultant with companies like CivicActions and Lullabot. Bojan Zivanovic (bojanz) became a preeminent contributor to views and contributed to EntityFieldQuery for Drupal 7. Gábor Hojtsy, the co-maintainer of Drupal 6, and the Initiative Lead for the Drupal 8 Multilingual Initiative worked over GSoC in 2006 to get i18n in Drupal core in Drupal 6. He is now an engineer for Acquia. Jimmy Berry (boombatower) was instrumental in the development of Drupal's automated testing framework, and he and his father Jim Berry (solotandem) were the first Google Summer of Code father/son team! :) They both offer testing-related services at http://boombatower.com. Lin Clark (linclark) created SPARQL Views, making it possible to query SPARQL endpoints from Views, as part of GSoC 2010. Her demonstrations of Linked Data capabilities in Drupal have been published on IBM Developer Works. She is now an independent consultant working data publishing and consumption using Drupal.So if you're:
...then there's something for you in Summer of Code! Read on to find out more.
Prospective StudentsIf you have enthusiasm the drive to work on something great, now is the time for you to get started! Subscribe to the Google Summer of Code group, look over the developer's guide and API reference, stop by Core Office hours and take on some new contributor tasks, find a Drupal event near you to get to know Drupal's amazing community, and take on a few bite-sized tasks in the Novice Issue Queue.
Most importantly, start thinking about your project proposal! Prior to submitting your application, stop by #drupal on irc.freenode.net or post your project ideas to the Summer of Code 2012 group to get community feedback. Your chances of getting into Summer of Code increase if the community has the opportunity to review your ideas and offer feedback to help you in improving your project idea.
We have already started accepting applications. For more tips, students should check out the Student Template Page.
MentorsPlease sign up to be a mentor if you have either experience with Drupal development or expertise in a particular area of interest (for example, newspapers, education...) and have some free time from now until the end of August.
To become a mentor, join the Drupal SoC-2012 group and the sign up on Google's SoC mentor web app (now known as Melange). Please describe who you are, what your level of Drupal experience is, and your motivation for being a mentor. Your application will be reviewed by SoC admins (Chx, SumitK).
You can go through Advice for mentors page to find more tips on mentoring students.
The more mentors we have, the more students we can get in, and the more exciting projects of varying types we can accept.
Community membersGreat project ideas are vital to attracting both great students and great mentors. If you've ever thought "if Drupal could be...", now is the time to turn it into a project idea. The project should be feasible for a Drupal-novice developer student to achieve in a 3-month time frame. Suggest a SoC project idea in the SoC 2012 group or help elaborating already proposed ideas
In addition, you can help review the existing SoC project ideas by providing students and other community members with feedback. Community members are in the best position to help students understand the finer intricacies of existing modules, and help their energies to meet the the priorities of the Drupal project.
To help the new Drupal family members, we need some existing community members to be active in #drupal-contribute on irc.freenode.net to answer student questions, point them to the correct resources, and people with expertise.
If you think this sounds like fun, be sure to get on to IRC!
After considering the landscape of both proprietary and open-source solutions, Symantec decided to use Drupal as a foundation for their community initiative. Symantec recognized Drupal to be offering:
Symantec’s internal UX team even installed and configured rough prototypes in Drupal leveraging the vast library of existing contrib modules to experiment with various use cases for the upcoming project. This ability to rapidly create functional prototypes further cemented the choice of Drupal as the platform for development.
Completed Drupal site or project URL: http://www.symantec.com/connect/Symantec Connect is an enterprise class, community-driven, social business support and information portal for Symantec products, offering users of Symantec’s deep catalog of applications and services a platform to interact with one another and Symantec employees through rich web-based tools. Connect enables the rapid publishing of information about the day-to-day use of Symantec products through key community-centric features which facilitate the customer’s ability to:
All of these features also empower Symantec employees to quickly publish official versions of forum discussions, blog entries, articles, events, downloads, and videos while moderating and vetting content, helping steer the community in the right direction.
Describe the project (goals, requirements and outcome):A Brief History
Symantec, founded in 1982, is one of the world's largest software companies with more than 17,500 employees in more than 40 countries. The company provides both security and storage and systems management solutions. Their customer base includes consumers, small businesses, and some of the world's largest global organizations. The company's phenomenal growth can be attributed to a combination of market acceptance and strategic acquisitions.
In early 2008, Symantec's Customer Experience team began crafting a roadmap designed to consolidate several existing support and discussion sites into a consistent, best-of-breed community offering. The goals of this consolidation were to:
Give Symantec customers a single point of contact where they could engage with the company's support, marketing, and product management teams,
Draw on other customers experience and expertise,
Reduce the support and licensing costs of maintaining a collection of disparate community offerings.
n/a
Team members: jeffrey.dalton Project team:The project was structured to allow Symantec Customer Experience team to provide input on the design and planning of the site while collaborating with a group of Drupal experts. Symantec’s internal team is augmented with Drupal expertise in the key areas needed for successful Drupal development.
This augmented team approach allows for rapid expansion of area-specific development expertise when new features and functionality are requested while minimizing Symantec’s development overhead.
Distributions provide one of the biggest opportunities for both the Drupal project and its ecosystem. Although there has been support for distribution packaging on Drupal.org since December 2009, there were many restrictions on what could be packaged for technical and legal reasons. By solving the underlying legal, technical, security, and usability problems, these restrictions have been lifted and fully-featured distributions are now enabled on Drupal.org! This move enables thousands of active developers to pursue distribution development with a consistent set of tools for managing version control, releases, issue tracking, collaboration, and documentation.
Funding for the project was generously provided by major distribution developers:
New features for distribution packagingComplete technical implementation details can be found at the Distribution Packaging community initiative page.
Changes for distribution maintainersIf you maintain a distribution on Drupal.org (or would like to) be sure to read the following updated documentation:
This initiative was spear-headed, designed, managed, and primarily implemented by Derek Wright (dww) of 3281d Consulting. Chad Phillips (hunmonk) and Michael Prashun (mikey_p) also helped with the design and implementation.
The work was made possible by the generous sponsorship of Phase2 Technology, Acquia, Node One, Pantheon, and Lullabot.
Additional thanks to:
TweenTribune,TeenTribuneand TTEspañol deliver the teen and tween audience with compelling stories kids won’t find anywhere else. Stories chosen for TweenTribune are selected by tweens working closely with professional journalists. Tweens can submit links to stories they'd like to share, submit their own stories and photos, and comment on the stories they read.
More than 53,000 teachers across the U.S use Tween Tribune in their classrooms.
Generates more than 5 million page views per month.
10,000 nodes are added every day
Brief History - From WordPress to Drupal
TweenTribune and its sister site, TeenTribune, work through schoolteachers across the U.S. Registered students log onto the site and post comments on selected stories of the day, and teachers review the responses for approval before making them “live” for other students to see.
During Christmas in 2008, Founder of Tweentribune, Mr. Alan Jacobson, decided to move its website from Wordpress to a more capable and flexible Content Management System Drupal. He contacted us in December 24th 2008 and worked with us to develop the application that would allow Tweens of ages 8 to 14 to read a variety of interesting content as well as comment on news for other Kids to see. Teachers can easily use Tween Tribune as a teaching tool. First, the site uses high-interest reading material to engage students with the news.
Teachers can register their classes on the site, which allows them access to special features like custom generated pages that show students comments or stories the class has commented on. Teachers can print out reports by student; these reports allow them to see which articles students have read and to access to individual student’s comments. In this way, teachers can easily grade or comment on students’ writing. There’s even a Faculty Lounge where teachers can interact with each other, sharing ideas and lesson plans.
Using Drupal 6 and a variety of excellent contributed modules, the site Tweentribune.com was launched in March, 2009. Modules used include Views, CCK (both core and imagefield), and Imagecache.
Codes were written for all the custom features of TweenTribune. This custom code was integrated into a Drupal Content Management System in the form of Drupal Modules.
Tweentribune is now a success story that has been featured in LAtimes, YPulse.com, KillerStartups, WeMedia, GoodHouseKeeping and getting
SCALING WITH CONFIDENCE
Tweentribune.com had couple of unique challenges. The traffic used to pick during US school hours with most users logged in and hence, creating making maximum connections to the database. The webserver and database were separated on 2 different machines in the same network (LAN).
Further Following measures were taken to improve drupal performance:
Memcache - way better than cash
Memcache, Squid, APC, etc were used to make Drupal scale. Memcache, APC and Squid were installed and configured on the server. Memcache was monitored and configuration of Memcache was changed with time as traffic improved and RAM of the server was changed.
LighttpdLighttpd is a web server that was used to serve static files (images, javascripts, css) to reduce burden on Apache webserver as lighttpd is faster at static contents.
Apache Solr vs DSS
Drupal Search Sucks as it doesn't deal with large amount of content, it doesn't scale and gets bogged down.Drupal Search is integrated - it runs and searches on the same database thus, slowing down the system. Apache Solr's advantage for Drupal is that it indexes nodes, not pages. This means it can have access to attributes of the node that are not readily parsable from the rendered page. These attributes can be used to filter the results. Apache Solr provides faster search experience than default Drupal search.
Varnish or Squid
But either is better than getting shellacked, and both are better than Boost.
InnoDB, instead MyISAM. - Who wants to get locked under a table?
InnoDB buffer pool. How big is too big? We know. .
The larger the buffer pool, the more InnoDB acts like an in-memory database, reading data from disk once and then accessing the data from memory during subsequent reads. The buffer pool even caches data changed by insert and update operations, so that disk writes can be grouped together for better performance.
KeepAlive on or off?Contact us and we'll tell you.
THE TEAM
HARDWARE The underlying hardware included 2 machines on the same Gigabit network:
Database server has following configuration:
HOW THE CHALLENGES WERE MET?
Solution: With our experience we found that couple of Drupal contributed modules are resource intensive and their optimization is necessary in order to scale the system. We monitored SQL queries using devel module and identified the queries that consumed most resources. Then we optimized those queries and monitored their performance and load on the system for couple of days. The results and improvements were captured in a performance report that was published for client’s review.
Solution: The Busted Page Issue was THE MOST important issue since the site had scaled to 2 million page views a month and we couldn’t risk this problem to survive any longer. Initial attempt was to disable BOOST module but to our surprise disabling Boost did not solve the problem. After 24 hours of rigours effort and monitoring it looked like menu paths were restructuring during CRON that was running every hour. The best of teams in the world were thinking on it but no one could get to the root. Finally, one of our best technical leads made the cron to run instead of every hour only at night at 12 am. This resolved the Busted page problem and was a GREAT success for us and Alan.
Solution: Drupal ad geoip module were customized to implement the feature whereby advertisements and headers can be displayed based on users location.
Solution: Drupal moderate module was customized and an interface was designed where teaches could see all the comments in a classroom and can approve or disapprove them.
Solution: Initially Watchlist module was recommended which automatically flags a node or comment if it contains any questionable content (these can be set in the Watchlist settings by adding regular expressions of words that are considered bad). But it flags the word and notifies admin AFTER the comment is posted, which is TOO LATE. Therefore Spam module was utilized to resolve this problem.
Solution: It was not feasible to put restriction on users to have an email to sign up on Tweentribune.com therefore team found a way for not letting users create their email and instead having system create their email automatically from their Full name. The contrib module that was modified for this purpose was “Localemail” and was made to create email ids automatically for each user and let them register directly on Tweentribune.
Solution: Team worked on a new workflow where:
TWEEN TRIBUNE APPLICATION AND DATABASE ARCHITECTURE
Tweentribune.com is a news site for Tweens and following are the cores around which it was built:
Taxonomy
Recent comments