Development https://www.tag1consulting.com/ en What's in your open source toolbox? https://www.tag1consulting.com/blog/whats-your-open-source-toolbox <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <p>Many of us in open source communities tend to be proponents of not only the primary project we’re working with (like Drupal), we also tend to be pretty big proponents of other types of open source software. These may be projects that benefit us in our day to day work, libraries that we leverage to build on our main project, or software we end up using in our personal lives, for projects that we do strictly for our own purposes. Tag1, being a company based on using open source software, uses a variety of software based on the day to day work of our team, and the needs of our clients. This software ranges from Drupal itself, to the underlying software it uses, to the testing software, and IDEs and plugins we use to help create quality code and content. ## Drupal We all know Drupal is open source, and one of the largest CMS projects out there. It relies on a variety of other open source software as well - MySQL, PHP, Composer, Symfony, and so on. Some parts of Drupal make use of additional libraries that fulfill needs that would otherwise go unmet. ## Load testing No well-trafficked...</p> <div class="more-link"><a href="/blog/whats-your-open-source-toolbox" class="more-link" aria-label="Read more about What&amp;#039;s in your open source toolbox?" hreflang="en">Read more</a></div> </div> <span><a title="View user profile." href="/user/lynette-miles">lynette@tag1co…</a></span> <span><time datetime="2021-08-10T11:36:22-07:00" title="Tuesday, August 10, 2021 - 11:36">Tue, 08/10/2021 - 11:36</time> </span> Tue, 10 Aug 2021 18:36:22 +0000 lynette@tag1consulting.com 389 at https://www.tag1consulting.com Looking at the past, present, and future of Drupal https://www.tag1consulting.com/blog/looking-past-present-and-future-drupal <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <p>As part of our Core Confidential series, Preston So, Editor in Chief here at Tag1 Consulting sat down with Angie Byron (webchick), Senior Director of Product and Community Development at Acquia, to talk about her many years of experience as a Drupal core committer, community manager, and where Drupal is going in the future.</p> <div class="more-link"><a href="/blog/looking-past-present-and-future-drupal" class="more-link" aria-label="Read more about Looking at the past, present, and future of Drupal" hreflang="en">Read more</a></div> </div> <span><a title="View user profile." href="/user/lynette-miles">lynette@tag1co…</a></span> <span><time datetime="2021-01-25T07:30:41-08:00" title="Monday, January 25, 2021 - 07:30">Mon, 01/25/2021 - 07:30</time> </span> Mon, 25 Jan 2021 15:30:41 +0000 lynette@tag1consulting.com 257 at https://www.tag1consulting.com Improvements to Goose - The Locust-inspired Load Testing Framework written in Rust https://www.tag1consulting.com/blog/improvements-goose-locust-inspired-load-testing-framework-written-rust <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <p>In our blog, we’ve previously had a Tag1 Team Talk about <a href="https://www.tag1consulting.com/blog/introducing-goose-highly-scalable-load-testing-framework-written-rust">Goose</a>, by Tag1 CEO <a href="https://www.drupal.org/u/Jeremy">Jeremy Andrews</a>. Goose is <a href="https://www.tag1consulting.com/blog/goose-locust-inspired-load-testing-tool-rust">a Locust-inspired load testing tool In Rust</a>. Goose has been effective in helping Tag1 support its clients by ensuring their websites hold up under stress.</p> <div class="more-link"><a href="/blog/improvements-goose-locust-inspired-load-testing-framework-written-rust" class="more-link" aria-label="Read more about Improvements to Goose - The Locust-inspired Load Testing Framework written in Rust" hreflang="en">Read more</a></div> </div> <span><a title="View user profile." href="/user/lynette-miles">lynette@tag1co…</a></span> <span><time datetime="2020-10-07T05:29:48-07:00" title="Wednesday, October 7, 2020 - 05:29">Wed, 10/07/2020 - 05:29</time> </span> Wed, 07 Oct 2020 12:29:48 +0000 lynette@tag1consulting.com 223 at https://www.tag1consulting.com A brief history of Drush (part 1) https://www.tag1consulting.com/blog/brief-history-drush-part-1 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <p>If you’ve touched a Drupal site at any point in the last ten years, it’s very likely you came into contact with Drush (a portmanteau of “Drupal shell”), the command-line interface (CLI) used by countless developers to work with Drupal without touching the administrative interface. Drush has a long and storied trajectory in the Drupal community. Though many other Drupal-associated projects have since been forgotten and relegated to the annals of Drupal history, Drush remains well-loved and leveraged by thousands of Drupal professionals. In fact, the newest and most powerful version of Drush, Drush 10, is being released jointly with Drupal 8.8.0.</p> <div class="more-link"><a href="/blog/brief-history-drush-part-1" class="more-link" aria-label="Read more about A brief history of Drush (part 1)" hreflang="en">Read more</a></div> </div> <span><a title="View user profile." href="/user/preston-so">preston</a></span> <span><time datetime="2020-02-11T10:32:48-08:00" title="Tuesday, February 11, 2020 - 10:32">Tue, 02/11/2020 - 10:32</time> </span> Tue, 11 Feb 2020 18:32:48 +0000 preston 122 at https://www.tag1consulting.com Nedjo Rogers https://www.tag1consulting.com/blog/nedjo-rogers <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> Nedjo Rogers is a Senior Performance Engineer with Tag1 based out of Victoria, Canada. He’s been an active Drupal contributor since 2003, has served as an advisory board member of the Drupal Association, and has led Drupal development projects for clients including Sony Music, the Smithsonian Institute, the Linux Foundation, and a number of nonprofit organizations. He’s also the co-founder of Chocolate Lily, where he builds web tools for nonprofits, including the Drupal distribution Open Outreach. <div class="more-link"><a href="/blog/nedjo-rogers" class="more-link" aria-label="Read more about Nedjo Rogers" hreflang="en">Read more</a></div> </div> <span><a title="View user profile." href="/user/dylan-clear">dylanclear</a></span> <span><time datetime="2015-04-22T10:24:55-07:00" title="Wednesday, April 22, 2015 - 10:24">Wed, 04/22/2015 - 10:24</time> </span> Wed, 22 Apr 2015 17:24:55 +0000 dylanclear 53 at https://www.tag1consulting.com Drupal Changed My Life - Will You Take My Drupal Commit Challenge https://www.tag1consulting.com/blog/drupal-changed-my-life-will-you-take-my-drupal-commit-challenge <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <p>I want to share two stories with you. I started with Drupal in 2005. I started my first Drupal job in 2006 at $40/hr which was a pay cut. I quickly got a raise to $50/hr. I released Coder module in late 2006 and talked at OSCMS (the predecessor to DrupalCon) in 2007 and I began to be known in the Drupal community. Sometime in 2008 I started working on search. And because of my contributed work and reputation I was offered a 2 week job. I was asked how much I wanted. I remember I was making $50/hr. I said I'd like $100/hr. The client was the New York Observer and the person hiring me was Jeff Robbins of Lullabot. He knew my ask was low. He said, how about $110? Wow! The second story is from DrupalCon San Francisco. In Dries' keynote he said, "if Drupal has changed your life, please stand up." I stood up and so did hundreds of others. I felt chills. Drupal changed my life because of this great career I now have. I work from home. I work with teams of smart, kind, diverse people. I work for interesting and great clients. And...</p> <div class="more-link"><a href="/blog/drupal-changed-my-life-will-you-take-my-drupal-commit-challenge" class="more-link" aria-label="Read more about Drupal Changed My Life - Will You Take My Drupal Commit Challenge" hreflang="en">Read more</a></div> </div> <span><a title="View user profile." href="/user/doug-green">douggreen</a></span> <span><time datetime="2015-04-14T06:00:14-07:00" title="Tuesday, April 14, 2015 - 06:00">Tue, 04/14/2015 - 06:00</time> </span> Tue, 14 Apr 2015 13:00:14 +0000 douggreen 55 at https://www.tag1consulting.com How to Maintain Contrib Modules for Drupal and Backdrop at the Same Time - Part 3 https://www.tag1consulting.com/blog/how-maintain-contrib-modules-drupal-and-backdrop-same-time-part-3 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> This is the third in a series of blog posts about the relationship between Drupal and Backdrop CMS , a recently-released fork of Drupal. The goal of the series is to explain how a module (or theme) developer can take a Drupal project they currently maintain and support it for Backdrop as well, while keeping duplicate work to a minimum. In part 1 , I introduced the series and showed how for some modules, the exact same code can be used with both Drupal and Backdrop. In part 2 , I showed what to do when you want to port a Drupal module to a separate Backdrop version and get it up and running on GitHub. In part 3 (this post), I'll wrap up the series by explaining how to link the Backdrop module to the Drupal.org version and maintain them simultaneously. Linking the Backdrop Module to the Drupal.org Version and Maintaining Them Simultaneously In part 2 I took a small Drupal module that I maintain ( User Cancel Password Confirm ) and ported it to Backdrop. In the end, I wound up with two codebases for the same module, one on Drupal.org for Drupal 7, and one on GitHub... <div class="more-link"><a href="/blog/how-maintain-contrib-modules-drupal-and-backdrop-same-time-part-3" class="more-link" aria-label="Read more about How to Maintain Contrib Modules for Drupal and Backdrop at the Same Time - Part 3" hreflang="en">Read more</a></div> </div> <span><span>david</span></span> <span><time datetime="2015-02-26T06:54:26-08:00" title="Thursday, February 26, 2015 - 06:54">Thu, 02/26/2015 - 06:54</time> </span> Thu, 26 Feb 2015 14:54:26 +0000 david 58 at https://www.tag1consulting.com How to Maintain Contrib Modules for Drupal and Backdrop at the Same Time - Part 2 https://www.tag1consulting.com/blog/how-maintain-contrib-modules-drupal-and-backdrop-same-time-part-2 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> This is the second in a series of blog posts about the relationship between Drupal and Backdrop CMS , a recently-released fork of Drupal. The goal of the series is to explain how a module (or theme) developer can take a Drupal project they currently maintain and support it for Backdrop as well, while keeping duplicate work to a minimum. In part 1 , I introduced the series and showed how for some modules, the exact same code can be used with both Drupal and Backdrop. In part 2 (this post), I'll explain what to do when you want to port a Drupal module to a separate Backdrop version and get it up and running on GitHub. In part 3 , I'll explain how to link the Backdrop module to the Drupal.org version and maintain them simultaneously. Porting a Drupal Module to Backdrop and Getting it Up and Running on GitHub For this post I’ll be looking at User Cancel Password Confirm , a very small Drupal 7 module I wrote for a client a couple years back to allow users who are canceling their accounts to confirm the cancellation by typing in their password rather than having to go... <div class="more-link"><a href="/blog/how-maintain-contrib-modules-drupal-and-backdrop-same-time-part-2" class="more-link" aria-label="Read more about How to Maintain Contrib Modules for Drupal and Backdrop at the Same Time - Part 2" hreflang="en">Read more</a></div> </div> <span><span>david</span></span> <span><time datetime="2015-02-17T08:00:00-08:00" title="Tuesday, February 17, 2015 - 08:00">Tue, 02/17/2015 - 08:00</time> </span> Tue, 17 Feb 2015 16:00:00 +0000 david 57 at https://www.tag1consulting.com When All Else Fails, Reflect on the Fail https://www.tag1consulting.com/blog/when-all-else-fails-reflect-fail <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> While coding the MongoDB integration for Drupal 8 I hit a wall first with the InstallerKernel which was easy to remedy with a simple core patch but then a similar problem occurred with the TestRunnerKernel and that one is not so simple to fix: these things were not made with extensibility in mind. You might hit some other walls -- the code below is not MongoDB specific. But note how unusual this is: you won’t hit similar problems often. Drupal 8 very extensible but it has its limits. But when you need to bypass those limits, PHP has a solution for you to extend classes (to some extent) that were not meant to be extended. Yes, it’s a hack. But when all else fails... Be very careful because the next version of Drupal core or other software you are commando-extending might not work the same internally and so your hack will break. With that caveat, let me introduce you to reflection . While some might think it was only meant to investigate objects, already in PHP 5 there was a ReflectionProperty::setValue method. In PHP 5.3 ReflectionProperty::setAccessible was added. $r = new \ReflectionObject($kernel); $services = $r-&gt;getProperty('serviceYamls'); $services-&gt;setAccessible(TRUE); $value = $services-&gt;getValue($kernel); $value['app'][]... <div class="more-link"><a href="/blog/when-all-else-fails-reflect-fail" class="more-link" aria-label="Read more about When All Else Fails, Reflect on the Fail" hreflang="en">Read more</a></div> </div> <span><span>ChX</span></span> <span><time datetime="2015-02-09T08:49:39-08:00" title="Monday, February 9, 2015 - 08:49">Mon, 02/09/2015 - 08:49</time> </span> Mon, 09 Feb 2015 16:49:39 +0000 ChX 56 at https://www.tag1consulting.com How to Maintain Contrib Modules for Drupal and Backdrop at the Same Time https://www.tag1consulting.com/blog/how-maintain-contrib-modules-drupal-and-backdrop-same-time <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> Part 1 - Reuse the Same Code In mid-January, the first version of Backdrop CMS was released. Backdrop is a fork of Drupal that adds some highly-anticipated features and API improvements to the core Drupal platform while focusing on performance, usability, and developer experience. When an open-source fork makes the news, it's often because it was born from a fierce, acrimonious battle (example: Joomla forking from Mambo ); the resulting projects compete with each other on the exact same turf and developers are forced to choose sides. Backdrop's goal, however, is not to destroy or replace the original Drupal project. Rather, it aims to be a "friendly fork" that focuses on Drupal's traditional audience of site builders and developers, an audience which the Backdrop founders believe are being slowly left behind by the Drupal project itself. Because of this, I expect that many existing Drupal developers will not want to choose between the platforms, but instead will continue working with Drupal while also beginning to use Backdrop. In this series of blog posts, I will explain how a module (or theme) developer can take a Drupal project they currently maintain and support it for Backdrop as well, while keeping duplicate... <div class="more-link"><a href="/blog/how-maintain-contrib-modules-drupal-and-backdrop-same-time" class="more-link" aria-label="Read more about How to Maintain Contrib Modules for Drupal and Backdrop at the Same Time" hreflang="en">Read more</a></div> </div> <span><span>david</span></span> <span><time datetime="2015-02-05T08:22:40-08:00" title="Thursday, February 5, 2015 - 08:22">Thu, 02/05/2015 - 08:22</time> </span> Thu, 05 Feb 2015 16:22:40 +0000 david 48 at https://www.tag1consulting.com