Feeds

Author

Oct 25 2019
Oct 25

I had the pleasure of presenting on PWAs (Progresivei Web Applications) at DrupalCamp Atlanta 2019. I focused on the overall benefits of PWAs and how to set them up with GatsbyJS and Create React App. It turned out that Drupal PWAs were completely covered in the presentation Meet the Progressive Web App module by Christoph Weber and Alex Borsody. It was great to see so much attention given to the importance of PWAs!

I hope you checkout these PWA talks and related implementation techniques. There are big wins around making sure all of our websites and web applications utilize PWA related technology.

Below you will find my DrupalCamp Atlanta presentation deck and video:

[embedded content]
Oct 24 2019
Oct 24

I had a great time presenting and taking part in the Flutter Developers Charlotte meetup last night. My talk was on the work I am doing around Flutter, Firebase, and Decoupled Drupal. Thanks to everyone who made it out and I appreciate the chance to share and learn!

Flutter and Firebase are a great match for rapid prototyping and full on production ready redeployment for native mobile applications. This talk included a demo of a Flutter application that reads content from a Contenta CMS API (Drupal distribution) and reads/saves related data to a Firebase Firestore. The application is a companion application for a pseudo Recipe Magazine, Unami.

Below are the links I referenced in the presentation for convenience:

Jan 21 2019
Jan 21

After three successful Charlotte Drupal Drive-in events in 2014, 2015, and 2018, the Charlotte Drupal User Group (CharDUG) is bringing it back on March 2nd, 2019. The format of the event is unconference style, allowing for a relaxed atmosphere where beginner and seasoned Drupalers alike are able discuss their projects, ideas, and ask questions.Charlotte Drupal Drive-in

Whether you want to discuss your projects with others, have an impromptu talk you would like to give, or a polished slide-deck presentation, you will be given the chance to pitch your idea(s). Once the pitches are made, every attendee will get to vote on the ones they find most interesting. This setup makes the event informal, the schedule fluid, and the topics dynamic. Most of all we have a lot of fun!

While Drupal is the focus, we will also welcome talks on other topics!

Suggested topics ideas:

  • Drupal 8 experimental modules and future of Drupal 9
  • React, React Native, GatsbyJS, and other JavaScript technologies
  • Decoupled Drupal
  • Contributing to open source
  • SEO and Marketing
  • Development tools (IDEs, text editors, Drush, Composer, terminal, etc.)
  • DevOps, deployments, continuous integration, etc.
  • QA and automated testing
  • Show and tell your web or application project
  • Your idea goes here!

Bring a talk idea or just come and hangout! This year’s event will be at Charlotte North Carolina’s awesome Hygge Coworking West at Hygge Coworking West 2128 Remount Rd, Charlotte, NC 28208. Thanks to our sponsors, we will have door prizes, beverages, and snacks provided free of charge! Did I tell you the event is free? Yep, it is!

Register for the March 2nd Charlotte Drupal Drive-in today! Hope to see you there!

Thank you to our fine sponsors!

Classic Graphics DesignHammer Hoists Direct Hygge Coworking

If you want to learn more about the origins of the Charlotte Drupal Drive-in and what others think of past events, check out the links below!

Jul 17 2018
Jul 17

It was a pleasure to present "Demystifying Decoupled Drupal with Contenta CMS" with Bayo Fodeke at Drupal Camp Asheville 2018 on July 14th, 2018. I want to thank the organizers, volunteers, attendees, presenters, and sponsors for making another awesome year in the beautiful North Carolina mountains. This is one great camp that gets better and better each year.

Below you will find the video for my talk and slide deck:

[embedded content]

Related code repositories:

May 22 2018
May 22

CharDUG logoDuring the past few CharDUG (Charlotte Drupal User Group) meetings, I realized that we have a real need to help our existing Charlotte area Drupalers using Drupal 7 to move on to Drupal 8. There is also a huge opportunity to train those completely new to web development and Drupall. Out of some recent conversations, I have put together a training series that will span the next 6 months and become the focus for each of our monthly meetings on the 2nd Wednesday of each month.

The CharDUG Drupal 8 Training Series is a comprehensive set of training workshops to get attendees up to speed with all aspects of Drupal 8. Whether you are brand new to Drupal, focused on content management, a frontend or backend developer, or devops engineer, this series contains what you will need to utilize Drupal 8 to its potential. Attendees should bring friends, laptops, and questions. There is no need to attend all sessions, though recommended for those new to Drupal. An outline of what to expect is provided below. If you have questions or suggestions, don’t hesitate to reach out on meetup.com or @chardug.

  • June 2018
    • What is Drupal?
      • Community
      • Open Source
      • Contributing to Drupal
    • How to install Drupal 8
    • Important features of note
    • Changes since Drupal 7
    • Drupal release schedule
  • July 2018
    • Installing Drupal 8
    • Using Composer with Drupal
    • How to build a site without any development
      • Installing modules and themes
    • Top Drupal 8 contributed modules
    • Users, roles, and permissions
    • Configuring Drupal
  • August 2018
    • Content management concepts
      • Content types
      • Content authoring experience
      • Content moderations
      • Permissions and roles
      • Content scheduling
    • Creating and editing content
    • Blocks
    • Layout Builder
    • Paragraphs
  • September 2018
    • Layout options
    • Responsive design
    • Images and media
    • Developing a Drupal theme
    • Drupal and responsive layouts
    • Decoupled Drupal frontends
  • October 2018
    • Developing a module
      • Menus and routes
      • Permissions
      • Creating pages and admin forms
      • Event subscribers
    • Writing and running tests
  • November 2018
    • Deploying to production
      • Development workflows
      • Security
      • SEO
    • Next steps for Drupal
      • Drupal 9
      • New initiatives
      • Decoupled Drupal
Jan 31 2018
Jan 31

Charlotte Drupal Drive-inAfter two successful Charlotte Drupal Drive-in events in 2014 and 2015, the Charlotte Drupal User Group (CharDUG) is bringing it back on March 3rd, 2018. The format of the event is unconference style, allowing for a relaxed atmosphere where beginner and seasoned Drupalers alike are able discuss their projects, ideas, and ask questions.

Whether you want to discuss your projects with others, have an impromptu talk you would like to give, or a polished slide-deck presentation, you will be given the chance to pitch your idea(s). Once the pitches are made, every attendee will get to vote on the ones they find most interesting. This setup makes the event informal, the schedule fluid, and the topics dynamic. Most of all we have a lot of fun!

While Drupal is the focus, we will also welcome talks on development tools, JavaScript frameworks, decoupled Drupal, SEO, web marketing, hosting, and more. Bring a talk idea or just come and hangout! This year’s event will be at Charlotte North Carolina’s awesome Hygge Coworking at Camp North End. Thanks to our sponsors, we will have door prizes, coffee, snacks, and lunch provided free of charge! Did I tell you the event is free? Yep, it is!

Register for the March 3rd Charlotte Drupal Drive-in today! Hope to see you there!

Thank you to our fine sponsors!

CharDUG Classic Graphics Hoists Direct Hygge Coworking

If you want to learn more about the origins of the Charlotte Drupal Drive-in and what others think of past events, check out the links below!

Jan 11 2018
Jan 11

I had a great time talking general and Drupal SEO at last night's CharDUG meetup! Just wanted to drop my slide deck here for reference. There are a lot of fantastic links in the deck.

Thanks to Mediacurrent for having a great culture for internal training. They invested in a large group of staff to go through the SEO Olympian program. I also want to thank the Mediacurrent Digital Strategy team for putting this training together. This training inspired me to dig more into SEO and put together this presentation and live demo of Drupal SEO modules.

I hope to present this talk again in the future.

Jul 17 2017
Jul 17

What an honor it was to be selected to present at Drupal Camp Asheville again! This event just gets better and better each year. I want to thank the organizers, volunteers, attendees, and sponsors for making it so awesome!

Below you will find the video for my talk, slide deck, and related git repo for:

"Live Demo: How to Create a Winning Website with Drupal Best Practice".

[embedded content]

Git repo: https://github.com/shrop/dcavl2017-livedemo

Dec 16 2016
Dec 16

I had the pleasure of attending DrupalCamp Atlanta 2016 in October. It was great to catch up with old friends, meet new people, and checkout some excellent presentations. I would like to thank the organizers and sponsors for making this event happen.

If you missed the event, I encourage you to checkout the session videos that were just posted. I also want to mention my presentation "The Story of an Insecure Module". I have included the abstract, video, and slide deck below. I am especially excited about the sandbox project Security Examples, which I hope will be something that the community can develop to show good and bad Drupal secure coding practices.

Abstract

There once was a Drupal module who wanted so badly to have a stable release, but they were insecure. As a useful and promising module to the Drupal community, they were so afraid that poor coding standards and lack of community reviews could lead to XSS, information disclosure, sql injection, and other vulnerabilities for their users.

The Drupal community is one of sharing and support. As a result, the module in this story takes the opportunity to learn and grow from the lessons of other modules and contributors to become much more secure and confident. The module becomes capable of being promoted to a full project and having a stable release. The community rejoices!

Come take a journey through this module's security audit and how their developer resolved each and every finding, following Drupal best practices for writing secure code.

Related drupal.org Security Examples sandbox https://www.drupal.org/sandbox/shrop/2821723

Video

[embedded content]

Slide deck

Jun 22 2016
Jun 22

Drush logo I use drush aliases between Drupal VM and Drupal hosting services quite a bit. It was great to learn that drush site-set allows me to set the alias to use for the current session, so I don't have to type the alias name over and over again. For instance, I can set an alias like this: $ drush site-set @drupalvm.drupal8.dev, allowing me to check the status of the site on the Drupal VM with $ drush status. To make it even easier, use is an alias for site-set. Example: $ drush use @drupalvm.drupal8.dev.

Drush site-set has some other useful options beyond setting drush aliases. Check out the options available at the link below:

https://drushcommands.com/drush-8x/core/site-set/

Apr 08 2016
Apr 08

Drush logo There is no doubt that Drush is a magical tool in the Drupal community. Two very useful tools in the Drush "Swiss Army Knife" include drush sql-sync and drush core-rsync. These tools allow copying databases and files between Drupal instances.

If you need to have access to run Drush commands on a production server or via a Drush alias for a production server, policy.drush.inc can help prevent some devastating mistakes. Accidentally overwriting production databases and files can impact you and your clients negatively. The Github gist below shows how the built-in Drush policy functionality can prevent sql-sync and core-rsync from running against any Drupal instance that has a destination with prod in the name. This works for Drush aliases too.

Place the policy.drush.inc file in ~/.drush on the machine you use to run Drush. The code in the gist above prevents operations like drush sql-sync @dev @prod and drush core-rync @dev:%files @prod:%files

Drush's policy.drush.inc allows for a few other functions for validation and alters. It is worth reviewing the options and implementing changes to prevent accidents that can be prevented.

While the above works well, the best way to prevent accidental production issues due to developer mistakes is to have a policy implementing separation of duties. In this sort of policy, developers would not have access to production servers. Devops engineers would handle deploys manually or manage the automation that handles deployments.

Thank you to all of those who have worked so hard to make Drush a fantastic tool that I depend on daily.

Apr 01 2016
Apr 01

PuPHPet logo As a long time maintainer of the brewStack project, I have been spending time evaluating better ways to develop Drupal projects locally. Using VM based tools is a huge win because if you mess up a system configuration or setup, you can just throw away the VM and and start over. brewStack has been a great toolset, but you are altering your local Macs setup. Using Vagrant makes that much easier since you don't have to maintain VM snapshots or backups.

I started using Hobo on my Mac because it is super simple, but it will not allow me to use puppet manifests in its portable .hobo files. While looking at some options, I came back across PuPHPet, which allows you to use a web UI to create the exact Vagrant development setup you want. It even allows you to deploy the setup to a number of hosting providers. PuPHPet has improved a lot since the last time I used it. It now supports a number of Linux distributions, nodejs, and plenty of configuration options. Vagrant and as result, PuPHPet now support multi-machine setups. This is a great way to separate services and create additional related machines within the same PuPHPet configuration.

I have setup a repo for my current Drupal 7 PuPHPet configuration. I encourage you to give it a go and contribute any improvements as pull requests. There seem is so much more than can be improved on this starter setup.

Want to give it a go? Here is how:

  • Requirements
  • $ git clone [email protected]:shrop/drupal7-puphpet.git
  • $ cd drupal7-puphpet
  • $ vagrant up
  • After the install/setup, you can browse to http://192.168.56.101 and see Apache is running.
  • Back at the command line, you can download drush into the html folder
    • $ drush dl drupal-7 --drupal-project-rename="html" -y
  • You can optionally add a hosts entry in /etc/hosts so you don't have to remember the IP address.
  • Now just browse to http://drupal7.dev and install Drupal 7
  • The root password for MySQL is drupal

There are some other really nice Drupal development environments worth checking out. I have included a couple that I have come across. Please add comments with your other findings.

What's next? Docker-based local Drupal development. Look for an upcoming blog post.

Feb 23 2015
Feb 23

Charlotte Drupal Drive-in logo Last Saturday (February 21st, 2015), thirty-five Drupalers joined together at Classic Graphics for the sencond annual Charlotte Drupal Drive-in. The day was full of presentations, BOFs, and general chatting about Drupal and related web technologies.

The day-long, un-conference-style event was the brainchild of Thomas Lattimore. After CharDUG wasn't able to pull together the human resources to repeat the success of DrupalCamp Charlotte 2012, Thomas mentioned that he had an idea. Since he knew organizers had limited time to commit to planning and he wanted to host an un-conference-style event, allowing for simpler planning than a full-blown Drupal camp. You can learn more about his concept on the DruaplEasy Podcast.

The event started with breakfast goodies, a welcome to the event, a thank you to our sponsors, and session pitches. The list of pitched ideas quickly grew to enough items to easily fill the day with sessions. The organic nature of the event and Classic's space allowed for sessions to split into multiple rooms so individuals had great session options.

The session schedule was planned for the day after all the ideas were pitched. The scheduled sessions included the following:

Lunch allowed attendees to chat about the morning sessions and meeting each other. Also, Design Hammer provided a $50 Amazon gift card to giveaway during the lunch break.

From my perspective, the event was a success. The format allowed for a relaxed atmosphere where beginner and seasoned Drupalers alike were able discuss their projects, ideas, and questions. While much of the group was from the Charlotte metro area, we also had attendees from Asheville and the Raleigh/Durham, NC area. I also count this event as a success when all of the event volunteers were able to attend the sessions and enjoy the event. Keeping the event simple is key to this success!

I would like to thank Classic Graphics, Design Hammer, and our individual sponsors (@bayofodeke, @deetergp, and @shrop for supporting the Charlotte Drupal Drive-in. Also, thanks to all those who attended and led sessions. Looking forward to Charlotte Drupal Drive-in 2016!

Oct 08 2014
Oct 08

As expected, I had a great time at DrupalCamp Atlanta 2014 last weekend. While I enjoy attending sessions, it is the chance to catch up with old friends and make new ones that I love.

I want to thank all of those who made this camp a great one (sponsors, ADUG, presenters, volunteers, and attendees)!

Some of my session notes can be found below (unedited):

Sessions

Aug 29 2014
Aug 29

I had a great time at this year's Drupal Camp Asheville. This year's camp was held at the beautiful Crowne Plaza Resort on Saturday, August 23rd. Amenities included coffee, breakfast foods, a ping-pong table, and a great lunch (surprisingly good for a conferenc center). Thanks to Matthew Connerton, the Asheville Drupal User Group, and all of the sponsors, presenters, and attendees for making this a great camp! I attended a few sessions and hung out in the hallways chatting with long time Drupal friends and meeting new ones. I really enjoyed the presentations I attended:

I am looking forward to having the presentation videos posted to the Drupal Camp Asheville website so I can catch up on the ones I missed.

I had the pleasure of presenting "Digital Signage with Drupal and Metoer". A good number of session attendees were interested in Meteor, so I am glad to spend a bit of time talking about what Meteor is all about and how it works. The session was well attended and the questions from the attendees really made it a lot of fun!

Check out the slide deck below. I have also attached a PDF version so links in the presentation can be followed.

Jul 10 2014
Jul 10

Spectacle is an open source digital signage publishing system for displaying content on any screen. The content is administered by Drupal and displayed using Meteor.

Classic Graphics, SUAR IT at UNC Charlotte, CharDUG, and Meteor Charlotte are sponsoring a Spectacle sprint on July 25th form 9am-4pm ET at Classic Graphics. While the project is well underway, there is still a lot to do. We will be updating the Trello board with ideas and tasks which need to be completed. We will also spend time demoing the current work completed and discussing Spectacle architecture concepts.

No matter what your skill level is with Drupal and Meteor, bring your laptop and we will get you up to speed to contribute in some fashion. We have tasks involving Drupal and Meteor site building, configuration, and development. We also have documentation and design needs. Some come on out and enjoy the fun of working together on a fantastic open source project.

Lunch will be provided by Classic Graphics.

Related links:

RSVP here or here. Either way, we want to know if you are coming so we know how much lunch to provide. :)

Contact Mark Shropshire with any questions

Mar 17 2014
Mar 17

When I first heard that the a number of Drupalers in South Carolina were planning a camp, I was excited, but knee deep in organizing the Charlotte Drupal-Drive with Thomas Lattimore. All I could do at the time was mentally commit to going.

Now that Drupalcamp South Carolina is a little more than a month away, I am getting very excited about it. It is nice to have a local camp to tide me over until Drupalcon Austin.

The camp is happening on Saturday, April 19th at IT-oLogy in Columbia, SC. Pre-camp training will occur on Friday, April 18th, featuring beginner Drupal and Commerce Kickstart classes.

Drupalcamp South Carolina will feature a keynote by Ryan Szrama, of Commerce Guys, and a day of sessions covering a wide range of Drupal related topics. Session tracks include, beginner, design/ theming/usability, and development & performance. Following a full day of sessions, attendees are invited to the after party, which will be held at Five Points. If you can allocate time Sunday, there will be an after-camp outdoor adventure (more details to come).

Session proposals are now in full swing. Make sure to register for the camp and propose a session. Presenting at a camp is a great way to share your passion for Drupal.

If you want to attend Drupalcamp South Carolina, register today while early bird registration is still $20. If you have interest in sponsoring the camp or have any other questions, contact the camp organizers on the Drupalcamp South Carolina contact form. As always, thanks to the fine sponsors for helping make the camp happen.

I hope to see and meet you at Drupalcamp South Carolina!

Mar 04 2014
Mar 04

CharDUG Bumble Hornet Thanks to hard work by the folks at the SouthEast LinuxFest, many of the 2012 DrupalCamp Charlotte presentations have been released on video. Two of the tracks are now represented in Youtube playlists below. Watch the southeastlinuxfest YouTube channel for more videos in the near future.

[embedded content]

Hot Drupal Track Playlist

[embedded content]

Classic Track Playlist

Feb 25 2014
Feb 25

Charlotte Drupal Drive-in logo Last Saturday (February 22nd, 2014), thirty-one Drupalers joined together at Classic Graphics for the Charlotte Drupal Drive-in. The day was full of presentations, BOFs, and general chatting about Drupal and related web technologies.

The day-long, un-conference-style event was the brainchild of Thomas Lattimore. After CharDUG wasn't able to pull together the human resources to repeat the success of DrupalCamp Charlotte 2012, Thomas mentioned that he had an idea. Since he knew organizers had limited time to commit to planning, he wanted to host an un-conference-style event, allowing for simpler planning than a full-blown Drupal camp. You can learn more about his concept on the DruaplEasy Podcast.

The event started with breakfast goodies, a welcome to the event, a thank you to our sponsors, and session pitches. The list of pitched ideas quickly grew to enough items to easily fill the day with sessions in two rooms. The group decided to plan the morning sessions by splitting beginner and advanced topics in separate rooms. The organic nature of the event and Classic's space allowed for the beginner session to split into two rooms when it was clear the group had different needs and questions.

Morning session topics included, contributing to Drupal, beginning site building and theming, integrating Drupal and Meteor.js, and a combined talk about options for dev, staging, production workflows.

During lunch (sponsored by the Drupal Association, attendees enjoyed chatting about the previous sessions and meeting each other.

Command Partners provided a $100 iTunes gift card to giveaway after lunch. Thanks to deekayen for using his Randomizer module to determine the winner!

Next, we planned sessions for the afternoon. Most attendees stayed in our larger room where we had a number of great topics, including Aegir, Acquia Lift, the Demo Framework, and Features. In addition to the main sessions, a group started talking about Open Atrium 2 in small conference room.

The event ended with a wrap-up to talk about what we learned and any lingering questions. Everyone I heard from during the wrap-up and following the event had great things to say about the format. They really liked the organic nature of the event.

From my perspective, the event was a success. The format allowed for a relaxed atmosphere where beginner and seasoned Drupalers alike were able discuss their projects, ideas, and questions. While much of the group was from the Charlotte metro area, we also had attendees from the Atlanta metro area, Boone, NC, Tryon, NC, and High Point, NC.

Some kudos from attendees:

"I really liked the splinter rooms.. it was nice to even start a session in one room and split from there based on what." - Angel Cox

"Awesome. I liked that we built an agenda on the fly using feedback from the group, and that many of the sessions came from users who had pretty specific "how do I do X?" type questions. My favorite presentation ended up being a sort-of group lead discussion on how different people are doing dev-staging-prod release cycles within their organizations. Having a local Acquia employee give (the first!) presentation on Lift was amazing." - Jeremy Edgell

I would like to thank Classic Graphics, the Drupal Association, and Command Partners for supporting the Charlotte Drupal Drive-in. Also, thanks to all those who attended and led sessions. I see a repeat of Charlotte Drupal Drive-in in 2015 in our future!

Thanks to Josh Lockhart for the photos. See more here.

Feb 12 2014
Feb 12

The Charlotte Drupal Drive-in is coming up on February 22nd. I just wanted to take a moment and highlight ours sponsors and the value they are bringing to making this event happen.

Classic Graphics is providing us with a fantastic facility with a large training room and four smaller conferences rooms. Each with projectors. Classic is also providing print marketing materials and access to their talented creative department for the event.

Drupal Association is providing a community cultivation grant which is funding all catering needs for this event so our attendees never have to leave the facility for food.

Command Partners is providing a $100 Apple iTunes card to giveaway and marketing skills to help promote the event.

Thanks to these sponsors for their generosity. Without them, the event just wouldn't happen. There is still time to register for the event. Head over to http://charlottedrupaldrive.in and register today!

Feb 10 2014
Feb 10

Update: I had the filename as drush.autocomplete.sh, but the filename should now be drush.complete.sh. Brent noticed this. The info below as been updated as such.

Brent Dunn pointed me to drush.complete.sh, which I didn't even know existed. Brent and I both wanted to give this a go in Zsh since we use oh-my-zsh, but drush.autocomplete.sh is setup for bash.

I was able to get drush autocompletes working with Zsh thanks to this stack exchange post

  1. Save drush.complete.sh to your local file system
  2. Add the following to your ~/.zshrc file

    autoload bashcompinit
    bashcompinit
    source /path/to/your/drush.complete.sh

  3. Source the changes: $ source ~/.zshrc

Now you can enjoy drush autocompletions in zsh style! For example, $ drush sql followed by tab will give you a browsable list of all the drush sql related commands.

1.%20zsh

Feb 06 2014
Feb 06

I presented "Is Drupal Right for You?" at the Feb 5th, 2014 CharDUG meetup.

Many web development firms, non-profits, and individuals wonder if Drupal is the right platform for their websites and web applications. Drupal has a fantastic community and rich eco-system, but how can one know if Drupal is the right fit?

Mark Shropshire brings his Drupal consulting experience to help you understand the good, the bad, and the ugly in the Drupal world.

Jan 03 2014
Jan 03

Charlotte Drupal Drive-in logo The CharDUG (Charlotte Drupal User Group) is hosting the Charlotte Drupal Drive-in on February 22nd at Classic Graphics in Charlotte, North Carolina.

What is a Drupal Drive-in? The idea is to have an un-conference-style one day event where attendees have the opportunity to propose topics from group discussions to fully prepared presentations. Each attendee will get to vote on the topics presented during the event.

If you want to learn more about the concepts and inspirations behind Drupal drive-in type events, check out the recent DrupalEasy podcast 119. Our very own Thomas Lattimore discusses his concept behind the Charlotte Drupal Drive-in event.

Whether you have a topic idea for the drive-in or not, you are invited to register today!.

I am really looking forward to seeing old Drupal friends and meeting new ones at the event. It will be a blast.

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web