March 2017 Meetup Summary and Notes

tmanhollan's picture

Northeast Ohio Drupal User Group Meetup

March 8, 2017 - Cleveland State University

Our March 2017 meetup was our first in more than two years and brought together an enthusiastic group of Drupal users from northeastern Ohio for an open roundtable discussion. We reviewed difficulties and success stories of those in attendance and discussed the future of the group.

Meeting Details

Location: 11th Floor Conference Room, Rhodes Tower
Date and Time: March 8, 2017 7:00 p.m.
Topic: General Drupal Discussion and Get Acquainted
Format: Roundtable Discussion
Event Information: Meetup | GDO | Facebook

Attendance

Introductions

  • There was a mix of Drupal experience level represented at the meeting, with most present having a moderate level of experience. Novice and deep experience levels were represented as well.
  • Role representation skewed toward the developer side but also included a content creator, site administrators/maintainers, site builders (hobbyist and non-profit), and project manager.
  • The audience at this meeting was predominantly technical, but not entirely and there was some discussion of a non-technical nature.
  • Drupal was used by attendees for: Higher Ed, Non-profit, GIS, Personal, and Client Websites

Discussion of Drupal Problems, Q&A

How does one include custom code in a Drupal-based project?

In WordPress, there's a PHP file where you can just write code, but where does it belong in Drupal?

  • Discussion here centered around a complicated project with detailed and particular requirements and how to meet them. Should custom code be used, e.g. to build a database table and where would that go?
  • Members encouraged finding contributed modules that would provide some or all of the functionality. It was suggested that a single contrib project may not exist that would meet all of the requirements, but combining multiple modules to address individual requirements would likely reduce or eliminate the need for custom code.
  • In general, custom code was discouraged, as was altering or hacking Drupal.
  • Custom code could be used as glue for the various individual pieces provided by the assemblage of contributed modules.
  • The Drupal API* and the hook system were discussed. Where custom code is necessary, it is important to place it in the proper hook for its function. In the example given in the question, when a database table is required by the module, one should use various elements of the Schema API. hook_schema would create the table and there a host of other functions within the API that will read and write data to and from the resulting table(s).
    **N.B. References here document the API for version 7 of Drupal core only, not contributed projects. Other versions can be selected on the documentation site. There are a number of other places where one can find API documentation for contrib projects. One example is DrupalContrib*

Content created doesn't display as expected.

File attachments (specifically PDFs) display as links rather than embedded content or previews. Attempts to improve the display (e.g. by coding an iframe into the body and other more advanced markup) do not work.

  • In this case, it seems there are restrictions imposed upon the input field to strip potentially harmful HTML and/or to constrain use to match the style of the site.
  • Suggestions were made on how to work within the confines and how to use the fields available to improve the output of the content.
  • Suggestions for adjustments the site administrators could make to accommodate the content. There is a PDF preview plugin provided by an external service. The site has implemented it in another department and it could be implemented here upon request.

Backups made with the Backup and Migrate module are incomplete or are not performed as expected.

Some database tables were missing from the backup and in general, the reliability is questionable.

  • No specific error messages or configuration parameters were available for the discussion, but some ideas were presented based on speculation about what might be happening.
    • Because this is a Drupal module performing these operations, they are performed from within a bootstrapped Drupal codebase with the full weight of that stack on top of an already resource-intense operation (database dumps, large-scale filesystem operations). Suspect that something is exceeding limited hosting parameters.
    • The module likely has configuration options that allow for certain components to be selected for inclusion in the backup. It's possible that components were inadvertently omitted.
  • Alternative methods were suggested
    • Contacting the hosting provider to set up an automatic full nightly database dump.
    • The hosting provider makes a nightly snapshot of everything, but it only retains one snapshot. Suggested automating a process to archive the snapshots offsite.
  • Because hosting resource limitations were suspected, discussion continued around hosting options, more robust and particularly suited to Drupal hosting.

What's a good development environment?

Currently on a Windows-based laptop. Is it necessary to create a dual-boot setup with a Linux distro with a full LAMP stack?

  • Several options were suggested by users involving pre-packaged Web-MySQL-PHP stacks and/or virtual machines.
    • Drupal Pro - Virtualized environment with all the necessary components
    • WAMP - Adds the stack to Windows
    • Vagrant - Repeatable, scripted, virtualized development environments that integrate into the host machine to make some things like file and network access seem local. There are various projects and helpers to get an environment specifically suited for Drupal (e.g. VDD), but it's not difficult to create your own, customized to your needs and mirroring your hosting environment.
    • Some more advanced hosting providers like Acquia and Pantheon include multiple environments for dev/staging/production, etc. and have a workflow for moving content and code between them. They offer some level of use for free during the dev phase.

How to deal with hacks, how to avoid them, and general security issues.

This discussion centered around good quality hosting, proper setup to avoid problems, mitigate risks, reduce attack surface, etc. The importance of keeping on top of security releases was also stressed. We discussed the Drupal Security Team and their release cycle, what to pay attention to, etc.

  • Security advisories/releases happen on Wednesdays (except in extreme/unusual circumstances). They are done on this predictable schedule to allow admins to plan on addressing security concerns in a timely way.
  • If you run a Drupal site and there's no one else you can pass the buck to on keeping your site safe, you absolutely should pay attention to security announcements.
  • You can find a list of advisories and releases at drupal.org/security
  • There, you can also subscribe to receive security announcements via email (you can also do this from your profile page on drupal.org).
  • You can subscribe to an rss feed of security announcements at drupal.org/security
  • Follow @DrupalSecurity on Twitter
  • The Security Team also occasional makes Public Service Announcements about security issues that are related to (but not necessarily directly affecting) Drupal.
  • There are a lot of good suggestions on the security team page for how to avoid and deal with security problems. But since this topic of discussion was prompted by an attendee who had been hacked before, Your Drupal site got hacked. Now what? is a useful resource that directly addresses that question in a way that we did not during our discussion.

D7 or D8: where to focus and pro/con in selecting a version.

  • Primary concern regarding adoption of D8 that was expressed in the discussion was completeness and availability of the contrib projects necessary to build what's needed.
  • Primary concern regarding building a new site in D7 was obsolescence.
  • No one in the group had anything in production in 8 yet, but some had some success in experimenting with it.
  • When building a new site that requires features not available yet in d8, there is an opportunity to contribute to the project to complete those features.

Future Plans for this Group

There was discussion about when and where to hold meetings. There is interest in this group from throughout Northeast Ohio and meeting in Cleveland presents an obstacle for some members coming from farther out.

  • Locations represented in attendance at this meeting include: Cleveland (several who work in the city), Lakewood and other areas on the west side, Broadview Heights, Streetsboro, and Youngstown.
  • The consensus of those in attendance was that this is a good central location and CSU provides a good meeting space, but the group is open to meeting elsewhere in the future.
  • For those in attendance, Wednesday evenings are a good time to meet, but open to varying the time to allow others with regular conflicts to attend.
  • Parking at this meeting may have presented a problem due to a special event on campus. There were reports of higher than published rates for parking at the campus garages and confusion about whether those garages were actually open. Some were able to park there at the normal rate. Others found parking on the street nearby. In the future, we will try to avoid special events when scheduling and try to advise members of unforeseen changes.

The format for future meetings was also discussed. Traditionally the format of the monthly meetings has taken the formal presentation mode with a predefined topic, sometimes followed by a social event at a nearby bar. In the past, the group held a second meeting each month at the Cleveland library for a code sprint or other hands-on activity. This was typically a Saturday.

  • There was interest in reviving the hands-on/code-sprint type of meeting.
  • There was interest among the attendees to take on a project that we could work on together as a group; perhaps adopting a worthy project at drupal.org that needs some attention.
  • The Drupal Ladder was suggested as a way for more experienced members of the group to mentor novices and help contribute back to Drupal.

The meeting was adjourned with a plan to meet sometime in mid-April. The date will be selected after reviewing other organizations' calendars for conflicts. There will be a presentation, but the topic and presenter are up for grabs. If you have a suggestion or would like to present, please contact the organizers or post on the group's page at GDO or meetup.com. We might schedule a workshop in the meantime as well.

Comments

:)

jeffschuler's picture

:)

Nice CLE and NE/OHio Drupal PPL

darrell_ulm's picture

Glad the meetup is still going in spite of inclement weather!

:)