Drupal https://www.tag1consulting.com/term/drupal en A Deep Dive Into Yjs Part 2- Tag1 Team Talk #005 https://www.tag1consulting.com/blog/deep-dive-yjs-part-2-tag1-team-talk-005 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Description Yjs, one of the most powerful and robust frameworks for real-time collaborative editing, enables developers to add shared editing capabilities to any application with relatively little effort. In order to make it so easy to use and extend Yjs, the framework abstracts all the complexities, many moving pieces, and deep technical concepts involved in empowering offline first, peer to peer, real time collaboration. In this Tag1 Team Talk, we continue our deep dive into Yjs with the founder and project lead of this collaborative editing framework to learn more about how it enables not only collaborative text editing but also collaborative drawing, collaborative 3D modeling, and other compelling use cases. In particular, we focus on the three core features that make up any great collaborative editing application: awareness, offline editing, and versioning with change histories. Join Kevin Jahns (Real-Time Collaboration Systems Lead at Tag1 Consulting and Founder and Project Lead of Yjs), Fabian Franz (Senior Technical Architect and Performance Lead at Tag1 Consulting), Michael Meyers (Managing Director at Tag1 Consulting), and moderator Preston So (Contributing Editor at Tag1 Consulting and Principal Product Manager at Gatsby) for the second part of our deep dive series on Yjs directly from its... <div class="more-link"><a href="/blog/deep-dive-yjs-part-2-tag1-team-talk-005" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/jeffrey-gilbert" typeof="schema:Person" property="schema:name" datatype="">jgilbert</span></span> <span>Wed, 11/13/2019 - 14:28</span> Wed, 13 Nov 2019 22:28:12 +0000 jgilbert 106 at https://www.tag1consulting.com A Deep Dive into Yjs part 1- Tag1 Team Talk #004 https://www.tag1consulting.com/blog/deep-dive-yjs-part-1-tag1-team-talk-004 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Description Yjs is a very compelling choice when it comes to building real-time collaborative applications. A powerful open-source, offline first, peer to peer, shared editing framework that is modular and extensible, Yjs enables developers to easily add real time collaborative capabilities to any type of application. Rich text editing, drawing, 3d modeling... the list of potential use cases for Yjs is lengthy and remarkable. But how did it get started, what is the algorithm it’s based on, and what does the future hold for Yjs? In this Tag1 Team Talk, hear directly from Kevin Jahns, the creator of Yjs, as we dive deeply into the foundations of Yjs and where it’s headed. Join moderator Preston So (Contributing Editor, Tag1 Consulting) and guests Kevin Jahns (Real Time Collaboration Systems Lead, Tag1; Creator of Yjs), Fabian Franz (Senior Technical Architect and Performance Lead, Tag1), and Michael Meyers (Managing Director, Tag1) for an insider’s perspective on the past, present, and future of Yjs. Related Content A Deep Dive into Yjs Part 2 Evaluating Real Time Collaborative Editing Solutions for a Top Fortune 50 Company Modern Rich Text Editors: How to Evaluate the Evolving Landscape<div class="more-link"><a href="/blog/deep-dive-yjs-part-1-tag1-team-talk-004" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/jeffrey-gilbert" typeof="schema:Person" property="schema:name" datatype="">jgilbert</span></span> <span>Tue, 11/12/2019 - 11:28</span> Tue, 12 Nov 2019 19:28:32 +0000 jgilbert 105 at https://www.tag1consulting.com Drupal Automatic Updates - TagTeamTalk #003 https://www.tag1consulting.com/blog/drupal-automatic-updates-tagteamtalk-003 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Automatic updates are coming to Drupal at the end of October! Long one of the most commonly requested features in the Drupal community, Drupal 7 and D8 will soon have an automatic updater that will allow Drupal installations to stay up-to-date more easily. How does Drupal's new auto updater work, and what do you need to know about it? In this Tag1 Team Talk, we dive into not only Drupal's new automatic updates feature itself but also its architecture, components, and roadmap, as well as why it's such an important part of Drupal's Core Strategic Initiatives. Join moderator Preston So (Contributing Editor, Tag1 Consulting) and guests Lucas Hedding (Senior Architect and Data and Application Migration Expert, Tag1), Tim Lehnen (CTO, Drupal Association), Fabian Franz (Senior Technical Architect and Performance Lead, Tag1), and Michael Meyers (Managing Director, Tag1) for a deep dive into the nuts and bolts of Drupal's groundbreaking automatic updates feature, directly from the module maintainer, and the strategic initiative sponsors including the Drupal Association, MTech, Tag1, and the European Commission. ------------------------------------ Further reading ------------------------------------ Automatic Update - Module https://www.drupal.org/project/automatic_updates Automatic Updates - D7 and D8 Documentation Pages https://www.drupal.org/docs/7/update/automatic-updates https://www.drupal.org/docs/8/update/automatic-updates Automatic Updates - Issue Queue https://drupal.org/project/issues/automatic_updates To provide your... <div class="more-link"><a href="/blog/drupal-automatic-updates-tagteamtalk-003" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/michael-meyers" typeof="schema:Person" property="schema:name" datatype="">michaelemeyers</span></span> <span>Mon, 09/30/2019 - 12:39</span> Mon, 30 Sep 2019 19:39:56 +0000 michaelemeyers 100 at https://www.tag1consulting.com A Deep Dive Into Rich Text Editors - TagTeamTalk #002 https://www.tag1consulting.com/blog/deep-dive-rich-text-editors-tagteamtalk-002 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Rich text editors are an integral part of content creation and content management workflows, but they can often present challenges for developers when it comes to robustness, extensibility, flexibility, and accessibility. What are some of the considerations you should keep in mind when evaluating rich text editors, especially for mission-critical systems like the application Tag1 is building for a top Fortune 50 company? In this Tag1 Team Talk, we explore the new generation of rich text editors, which are based on a well defined data-structure rather than HTML, but still can export to Markdown or HTML. This allows us to tackle new requirements organizations have, including video embedding, cross-device support, and keyboard-navigable editors. After diving into some of the open-source solutions available in the market, such as Draft.js, CKEditor 5, Quill, Slate, and TapTap, join moderator Preston So (Contributing Editor) and guests Nik Graf (Senior Software Engineer), Kevin Jahns (Real-time Collaboration Systems Lead, Yjs creator), Fabian Franz (Senior Technical Architect and Performance Lead), and Michael Meyers (Managing Director) for an in-depth conversation about why ProseMirror is the best tool for our client’s project requirements. Be sure to check out our related #TagTeamTalk, A Deep Dive Into Real Time Collaborative Editing... <div class="more-link"><a href="/blog/deep-dive-rich-text-editors-tagteamtalk-002" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/michael-meyers" typeof="schema:Person" property="schema:name" datatype="">michaelemeyers</span></span> <span>Thu, 09/26/2019 - 15:31</span> Thu, 26 Sep 2019 22:31:40 +0000 michaelemeyers 99 at https://www.tag1consulting.com A Deep Dive Into Real Time Collaborative Editing Solutions - TagTeamTalk #001 https://www.tag1consulting.com/blog/deep-dive-real-time-collaborative-editing-solutions-tagteamtalk-001-0 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">What is real-time collaborative editing, and what are some of the most compelling technologies available in the space? In the inaugural TAG Team Talk, hosted by Preston So (Contributing Editor, Tag1 Consulting), we conduct a wide-ranging discussion about both the business prerogatives and technical ins-and-outs of real-time collaborative editing and its landscape today, with our guests Kevin Jahns (creator of Yjs and collaborative editing expert at Tag1 Consulting), Fabian Franz (Senior Technical Architect and Performance Lead, Tag1 Consulting), and Michael Meyers (Managing Director, Tag1 Consulting). In this talk, we explore collaborative editing, diving into how it works and some of the challenges borne by shared editing. Through the lens of Yjs, a real-time collaboration framework that supports not just text but also collaborating on drawings and 3-D models, we take a look at Operational Transformation (OT) and how implementing Conflict-free Replicated Data Types (CRDT) drives decentralized server approaches in collaborative editing and supports more robust distributed applications with true real-time support. Yjs: https://github.com/yjs/yjs ProseMirror: https://prosemirror.net Great Overview of CRDT https://conclave-team.github.io/conclave-site/#conflict-free-replicated-data-type-crdt Deep dive int CRDT by the author of Automerge: https://www.youtube.com/watch?v=yCcWpzY8dIA Yjs was inspired by: Sharedb https://github.com/share/sharedb DerbyJS https://derbyjs.com/ Text Transcript - Hello, good morning or good evening, wherever you are.... <div class="more-link"><a href="/blog/deep-dive-real-time-collaborative-editing-solutions-tagteamtalk-001-0" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/michael-meyers" typeof="schema:Person" property="schema:name" datatype="">michaelemeyers</span></span> <span>Wed, 09/18/2019 - 11:34</span> Wed, 18 Sep 2019 18:34:35 +0000 michaelemeyers 98 at https://www.tag1consulting.com git rebase --onto - The Simple One-Minute Explanation https://www.tag1consulting.com/blog/git-rebase-simple-one-minute-explanation <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">TL;DR the command you want is: git rebase --onto [the new HEAD base] [the old head base - check git log] [the-branch-to-rebase-from-one-base-to-another] And my main motivation to putting it here is to easily find it again in the future as I always forget the syntax. (This is a re-post from my old blog on drupalgardens, but it is still helpful.) Mental model To make all of this simpler think of: You have: Two red dishes on top of two blue dishes One yellow dish You want: Those two red dishes on top of the one yellow dish You do: Carefully go with the finger down to the bottom of the two red dishes, which is the first blue dish Take the two red dishes Transfer them over to the one yellow dish That is what rebase --onto does: git rebase --onto [yellow dish] [from: first blue dish] [the two red dishes] Note: The following is meant for an intermediate audience that is familiar with general rebasing in GIT Longer explanation It happened! A branch - you had based your work - on has diverged upstream, but you still have work in progress, which you want to preserve. So it looks... <div class="more-link"><a href="/blog/git-rebase-simple-one-minute-explanation" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/fabian-franz" typeof="schema:Person" property="schema:name" datatype="">fabian</span></span> <span>Tue, 04/17/2018 - 02:24</span> Tue, 17 Apr 2018 09:24:44 +0000 fabian 92 at https://www.tag1consulting.com Michael Meyers Joins Tag1 As Managing Director https://www.tag1consulting.com/blog/michael-meyers-joins-tag1-managing-director <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">I’m excited to announce that Michael Meyers has joined the Tag1 team as Managing Director. Michael was one of our very first clients 10 years ago, we’ve worked together on many projects over the years, and we look forward to working even more closely with him now that he’s a part of the Tag1 team. Michael has extensive experience building market leading high-growth technology companies and is particularly well known in the Drupal Community for his role in driving innovation of the Drupal platform. Michael brings over 20 years of experience managing global technology teams building high traffic, high performance mobile and web applications. Tag1 recently celebrated our 10th anniversary, in that time we’ve established ourselves as the leading provider of highly available, scalable, secure, high performance systems and as the organization other agencies and the users of Drupal turn to for help with their most challenging problems. We will be working with Michael to expand on our success to date and to help lead Tag1 into the future. Roots in Success Michael joins Tag1 from Acquia, where he spent the last 5 years on the leadership team as VP of Developer Relations, Developer Marketing, and helped launch the Developer... <div class="more-link"><a href="/blog/michael-meyers-joins-tag1-managing-director" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/jeremy-andrews" typeof="schema:Person" property="schema:name" datatype="">Jeremy</span></span> <span>Mon, 03/26/2018 - 08:05</span> Mon, 26 Mar 2018 15:05:12 +0000 Jeremy 90 at https://www.tag1consulting.com Background Image - A New Drupal 8 Module https://www.tag1consulting.com/blog/background-image-new-drupal-8-module <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Introducing a new, easy to use, Drupal 8 module for background images: https://www.drupal.org/project/background_image If your site is designed around utilizing background images, then this module is for you! Whether you need a surgical implementation that only administrators/developers can implement or provide the ability to allow users to attach their own background images to entities, this module has you covered.<div class="more-link"><a href="/blog/background-image-new-drupal-8-module" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/mark-carver" typeof="schema:Person" property="schema:name" datatype="">markcarver</span></span> <span>Tue, 11/28/2017 - 17:00</span> Wed, 29 Nov 2017 01:00:00 +0000 markcarver 87 at https://www.tag1consulting.com Distributed Load Testing With Locust.io https://www.tag1consulting.com/blog/distributed-load-testing-locust <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Locust.io is a great tool for applying load in a controlled manner and measuring response. However, historically speaking nobody has really cared about a solo locust. They just aren't that concerning in the singular. Likewise, load applied from a single point to a moderately complicated infrastructure is both easy to block (or rate limit) and also not very representative of a real world situation. (Aside from the people you inevitably end up talking to who archive entire sites so they can have a local copy.) So, to make your test more accurate and to differentiate yourself from that friend who keeps adding disks to their personal server so they can have a local copy of the internet, it is important to have a distributed test. In this article, I am going to cover one way to automate this process, using SaltStack and Locust.io. They are both written in Python, both very cool tools, and by combining their powers you can absolutely ensure nothing grows in a field. First, let us address where we ended up in our previous article. We have a simple loadtest that hits some logged in pages and some anonymous pages. Is it a good load test?... <div class="more-link"><a href="/blog/distributed-load-testing-locust" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/narayan-newton" typeof="schema:Person" property="schema:name" datatype="">nnewton</span></span> <span>Wed, 05/10/2017 - 20:57</span> Thu, 11 May 2017 03:57:28 +0000 nnewton 80 at https://www.tag1consulting.com Drupal Load Testing with Locust.io https://www.tag1consulting.com/blog/drupal-loadtest-locust <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Apache JMeter and I have a long and complicated relationship. It is definitely a trusted and valuable tool, but I am also quite confident that certain parts of it will make an appearance in my particular circle of hell. Due to this somewhat uncomfortable partnership, I am always interested in new tools for applying load to an infrastructure and monitoring the results. Locust.io is not exactly a new tool, but I have only recently begun to use it for testing. What Is Locust? Locust is a load-testing framework which allows you to write your load plan in regular Python. This is a welcome experience if you have ever had to manually edit a JMeter JMX file. Not only is it a more pleasant experience, but writing executors in Python makes it easy to create a very flexible load plan. Idea For A Circle Of Hell: Given a slightly corrupted JMX file that must be loadable and cannot easily be replaced, attempt to look through it to find the error preventing loading. Every time you save the file, some other tag corrupts slightly. Who needs eternal damnation, give me a large JMX file and some failing drives… The other advantage of... <div class="more-link"><a href="/blog/drupal-loadtest-locust" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/narayan-newton" typeof="schema:Person" property="schema:name" datatype="">nnewton</span></span> <span>Thu, 04/13/2017 - 08:48</span> Thu, 13 Apr 2017 15:48:24 +0000 nnewton 79 at https://www.tag1consulting.com