You are listening to the podcast of the Alexander von Humboldt Institute for Internet and Society. We report on the leading role that new technologies play in the context of the Global Information Society, interviewing academics and industry leaders. Rebecca McKinnon, you are a person with one foot in journalism and another foot in academia. How did you get there where you are right now? Was that a sort of choice to do both? Well, it was a long process. It's sort of a long answer. I worked for CNN for 12 years. I was in China for nine years and in Japan for three years. And in 2004, I just went on leave from my job at CNN. I thought it would just be a semester to spend some time as a fellow at Harvard. And I just became very fascinated with what was happening on the internet at that time in 2004 with citizen journalism and blogging really emerging and having real impact challenging both conventional media and governments and sort of political power and so on. And I was very interested to follow that more, particularly on the international side. And I had spent a lot of time in China, so I was very interested to see what was happening with the internet in China. So for a lot of reasons that we probably don't have time to go into, I was also getting a bit frustrated with my job at CNN, feeling that there was less and less opportunity to do in-depth journalism there. So I thought it was a good time to, you know, explore other things. So I ended up staying at Harvard for three years, mainly at the Berkman Center for Internet and Society, and began to do research on the Chinese internet, on free expression issues, the role of corporations in censorship and surveillance. And also was also kind of an NGO activist at the same time. I started Global Voices, which is a citizen media platform and community, which I'm still somewhat involved with. And then I went to Hong Kong for a couple of years to teach and then sort of did some more independent research. And now I'm sort of got one foot in policy, one foot in journalism, maybe a third foot in academia or something. So I'm not really a traditional academic in any kind of sense, but I found that I wasn't able to do the kind of work that I wanted to do if I stayed at a traditional news organization. And that I wanted to get more in depth both in terms of research, but I also had a point of view that I thought, you know, I couldn't be neutral, I guess I had to say. I had to take a more advocacy stance. And so for those reasons, I sort of moved away from mainstream journalism. So do you think the Internet makes it easier to shift and reinterpret one's role? Is it easier to sort of do policy, academic work and journalism at the same time? To some extent, I think that's true. I mean, certainly with the Internet, it's possible to kind of develop credibility just as yourself. So I think in the pre-Internet world, Rebecca McKinnon without an institution would not have much legitimacy or credibility. But I would have to have a university or a brand media or something where people are like, who are you?  But I think because of the Internet, people find my writing, they see my work. I'm more sort of kind of an individual player and I've been switching institutional affiliations quite frequently. On the other hand, it's certainly, you know, just on a more practical level for young people starting out, just, you know, kind of word of warning and all of this, it also leads to a lot less job security. So I'm currently, I have a fellowship right now. It ends in August. I have no idea how I will pay my rent after that. So I go from year to year or, you know, contract to contract without any particular long-term stability. So that's the case for people who seem to think that they have long-term employment. So in this age, I think, you know, we kind of create our own platforms and we're constantly having to be entrepreneurial also to figure out how do I support the work I'm going to do, both institutionally and just, you know, much more practically. Now there is one issue I wanted to get into and that is the relationship between private and public censorship, sort of governmental and corporate censorship. You've been working on that. How do you see the interplay between the two? Yeah, yeah. Well, the interplay can vary and is sometimes very blatant and sometimes quite subtle, sort of depending on where it's taking place. On the country?  So in a place like China, of course, you have the most kind of blatant situation where the government expects companies to take responsibility for the political behavior of their users and if the users are using their platform to conduct political activities that the government does not want happening, the company can potentially lose its business license if they're not quick enough to address this problem. And so the censorship is quite direct. But there are many other situations, for instance, Apple. Apple Computer with its iPhone apps and iPad apps and so on. It will do kind of both. So for instance, it's App Store in China. They, at the Chinese government demand, they censor many apps, you know, the Dalai Lama app, you know, anything that might be politically controversial and prevent them from doing business in China. But they also conduct a lot of their censorship just of their own volition. So for instance, Staring Magazine was, their app was censored, their political cartoons in the United States that are censored by Apple just because the company is afraid of controversy. So is it preemptive censorship? It's basically preemptive censorship. They're trying to enforce a certain environment or set of values. And you also have different, so for instance, in more indirect ways, for instance, Facebook requires that its users register with their real names. And while it's not enforced consistently, you can lose your account if you are reported to not be using your real name. And so that's kind of, in effect, ends up being a kind of censorship on people who are too vulnerable to be using their real identities. Right. The intention, however, is to create a pleasant environment and, you know, prevent children from being harassed and make it easy to try to encourage accountable behavior. And also, I think, prevent liability for the company. And it's also much easier to commercialize the service if people are using their real names. So there are a lot of commercial reasons why companies end up censoring or preventing certain applications or just kind of constraining certain kinds of applications which are not their preferred business partners and giving preference to some things over another, which may be for commercial reasons, but it ends up having an effect on freedom of expression and freedom of assembly as well as more and more people are reliant on these. So the two sometimes combine in a very direct way. Sometimes they combine in a more indirect way. And again, the issue is how does the citizen navigate all these things and hold the companies more accountable while still also holding governments accountable? I've been wondering, social networks such as Facebook, they seem to form a hybrid. On the one hand, one could say it's a commercial corporate space and why shouldn't Facebook be allowed to set the rules on its private premises? Right. So on the other hand, somebody recently said that they become similar to utilities, public utilities. So they seem to be in between and what we see from a free speech perspective. It's not really clear to what kind of rules they should actually respond. So we use public pressure to make them more like public entities that have to follow basic democratic rules but they probably think rather this as their private premise. Absolutely. They feel that they should not... their right to operate as a private business should not be interfered with. And there is a question about often, I think, whether legislation is the best way to address this problem or whether there needs to be some other kind of solution worked out that's kind of between the public, the users and the service that provides accountability and trust and ensures that the service is not operating in a manner that is curtailing people's rights. But we don't have good mechanisms for that. And part of the problem is, too, then you end up having legislation, some of which is quite good, but others of which end up constraining the innovation. And so we don't sort of have the right structures and mechanisms and institutions. What is your take on it? What do you think and what direction will it develop? I think that really depends on how much people get involved with us. How aware people become, how active people become in asserting really their netizenship of the internet. If people don't care about their physical city and who is running it and how they run it and they don't actively get involved with the civic life of the city, then they may perhaps have only themselves to blame if it's being run by people who are not running it very well. And so similarly with the internet, I think people increasingly need to assert netizenship within the internet. So one of the open questions would be the division of labor between social movements and governmental regulation. Is that how you would see it? That if there is enough social movement pushing for basic standards, then we don't need governmental intervention. Is that how you see it? Well, it's probably even more complicated than that because, you know, as the speaker after me, Mr. Mueller was talking about, it's more about governance rather than government. And it may be that governmental institutions as we've come to know them may not actually work so well in the internet age in a globally networked world. And so there's absolutely a role for governance but how that is exercised and how it works through corporate networks and whether that goes through, you know, elected public body or whether there's governance that's happening directly between the users and the company. I think there's going to have to be a lot of innovation worked out. I mean, you know, I think we're we're entering a period perhaps again as one of the other speakers mentioned perhaps the next hundred years ago where we're really going to have to be rethinking a lot of things fundamentally. So it means the way we have to imagine governance is sort of several triangles. Civil society, governments and corporations and civil society can push towards better rules towards governments but also can try to influence providers directly. Yeah, I think so. I think that's... So it's a mighty stakeholder approach but we don't know really how it will play out in what context and what country. Yeah, because of course, you know, we're not going for one world government here. You know, it's going to have to be a much more multi-layered thing but on the other hand, how do we ensure the public interest is served? We need to sort of push for democratic rights to ensure... Absolutely, yeah. We need to be involved with what our governments are doing and really try to understand the broader issues. So let me finish with a personal question. What do you think you will do next? What will be your next topic now that you've finished your book? Yeah, that's a good question. Well, one of the big issues that I see is that there's just not enough public awareness, I think, about many of the things that are happening, I think in part. That's just because the way the media is structured is kind of not part of the type of thing they normally cover. I think the internet governance battles that are happening is largely unreported. Yes, that's true. And so one of the things, and again, I'm not sure how I'm still figuring out kind of where to go practically, but find a way to provide better public information. So not only on an academic level, but how can we make... Whether it's an information platform that needs to be built or just kind of push for more coverage in different ways, how to build much broader public awareness and get more people involved in these discussions. Because I think the more that these discussions are happening amongst political and business elites and only academic elites in language that, you know, acronyms and so on that ordinary people don't understand, I think that's dangerous. So that would be the efficacy perspective. And in terms of research, do you have any ideas what you would like to do? Yeah, that's a good question. I'm going to have to sort of see going forward. I think a lot of it has to do, again, with how to sort of looking at this interface between where government power and corporate power intersect and finding ways to help people understand that better and to understand a little better how the two kinds of power interplay. I see a beautiful, comparative project here to look at how it happens in the US, how it happens in various European countries. That would be a very good thing to do. That would be very interesting. Yeah, absolutely.


So I'm curious who here is at their first-ever Drupal con? Whoa, yeah Now anyone here their first time in France? Yeah For me, it's both. It's my first time at a Drupal con EU though I've been to the ones in North America. It's my first time in France and It's been an absolute trip of a week So I hope everyone else who's having those firsts are feeling the same way about their time here So hello, you're here. Hopefully to hear about our architecture decision records and our journey with them at Lullabot And if you don't know me, my name is Andrew Berry and I'm the director of technology at Lullabot you can find me on Drupal doc community and You know as far as like other tech passions I also love home automation home assistants big V2. I'm QTT all these different tools out there And if you wish I was talking about those instead of ADRs, that's totally okay You just got to find me after the session and we can get together and nerd out so I want to frame this conversation with this quote and just read it over let it sit in your mind and Think about coming back to this as we we walk through this journey Do you remember 2021? I mean yes and no, you know, it was an interesting year for a variety of reasons At Lullabot, we had our even though we're a distributed company We all work from home wherever we may be in the States or I'm in Canada or you know in the EU You know, we had our first ever virtual retreat and our CEO had a goal for us as a company He wanted us to Standardize and simplify our processes our ways of working our communication all of these sorts of things But what did that mean? I mean, these are two great words You can put them in bold and they look good on a slide But you can probably twist them into any goal you want So we had to think about how we were going to approach this challenge that he had laid forth for the team So when we talked amongst our Leadership and our engineers and our developers and everyone on sort of the technical side We thought about it in a couple of different ways one was we knew that we wanted to improve knowledge transfer across project teams that we saw that there were rough edges when Different teams sort of mixed who was within them and they didn't all have the same perceptions of the types of work that we should be delivering We definitely knew that we wanted to standardize and simplify the onboarding experience for new developers Whether that was someone who already worked at Lullabot What was joining a team where they hadn't happened to have worked with any of those people before or when we hired at Lullabot and There was this underlying sense that we were spending too much time Solving the same problems over and over again that were functionally equivalent But just happened to be different had either, you know a code or a user interface level or something like that So as we thought about these challenges, we thought okay Well, let's observe and think about how our projects and how our teams are currently working today So, you know in 2021 we had a couple of those such as Team members often were moving as a group between projects So if you're not familiar with Lullabot, we're a digital Drupal agency been around since final 2006 or something like that and the way our teams work is that You know you join a project you work on the project You hopefully finish the project and then the team becomes free and we can sell them for a new project So it wasn't always happening this way But often they ended up moving as a group from one project to the next with minimal change between those teams Part of this is also because we fully dedicate our developers to a single project at a time Which meant that they weren't being exposed to different teams on a on a daily basis unless they made an effort to expose themselves To the work that other teams were doing and so what this meant was that we had lots of great best practices but they were team-based not company or project-based and so They would sort of shift with those teams as they move between different projects But if there have been three projects done by team a and three projects done by team B They might actually have fairly different technical implementations for similar functionality Now what was really interesting about this is when we started to evaluate the solutions these teams are coming up with It was actually a real challenge because they all had good solutions You couldn't look at them and say like oh, you're really hacking Drupal in some horrifying way We should not do that in any of these projects. They were just they were different not even for the sake of being different They were just really trying to optimize their solutions very specifically to the clients that we were working with and This really does mirror the Drupal community the open-source community where you might say that different open-source CMS is our Multiple good solutions to the same problem space. You can't necessarily go Hugely wrong by choosing any one of these best of breed Software platforms that are out there like I don't know from a developer perspective if you're choosing Symphony or Lara vol you might have preferences for each one, but they're both going to let you get the job done and get the job done well So was this a problem of communication could we solve this by Thinking about how we talked and shared information with one another Well, think about all of the places where we communicate so We are all here. We all have to go to Drupal.org to buy our tickets We have some sense of how that works, but you know, there's issues And all of the work in the Drupal core space contrib modules that our teams were working with You know, we used to use IRC for those of you who've been around forever There was a system called Freenow. There's kind of like slack for super nerds and you know, I mean, I loved it It was great but you know, we had all these decisions and discussions taking place in chat on that system where even out of the box it didn't have any way to Store the history of what those decisions were unless someone made an effort to put them somewhere else Imagine a lot of you are familiar with Jira and you know, Jira is a project that has been around for a product That's been around for what 20 years now And so, you know, you might have decisions made for your internal work or for your client projects there Of course, we're all familiar with github. You have decisions and communication happening there And then Freenote actually died if you weren't around for that like it the ownership completely fell apart They there was a huge mess and like that entire system of communication is gone And I couldn't tell you how to easily find a decision that was made That was really important to Drupal core if all it was talked about was in IRC Even though I was like living and breathing that for I don't know 10 years And then, you know, of course, we've got confluence for wikis. We've got slack today So there's so many different places that we make decisions So communication like if anything our problem was that we had too much communication, right? Like we had all these different places we could talk to each other, but no place to say Here's where the decision was so if Improving our team communication couldn't let us standardize and simplify Maybe we could do this with documentation. So let's think though about some of the challenges of documentation in technical teams This is a real request from a client we were wrapping up a project with them and They were gonna have this gap where our team was rolling off because we were done our time on it But they didn't have any engineers or developers in house And they wouldn't for several months because of their hiring processes And so their project managers were then going to be responsible for managing the site And they were obviously nervous about like what to do if the site stops working now You know this really isn't a documentation problem The problem was they didn't have the staff to properly support it Or they didn't have the budget to hire any sort of agency to do, you know long-term support for them But just think about all the things that can go wrong during an outage You know it could be your hosting provider is down It could be you try to do a droop droop will upgrade and something broke it could just be that the internet is having a bad day and Packets are going off to you know, nowhere It could be that your site is just getting a new bug could be a security issue a DDoS attack Any of these things and what they wanted was documentation that was understandable and that was There's those two non technical project managers could feel confident They understood what all those steps were so that they could direct future in-house developers But when it came down to it This really was a bad documentation request because it didn't have a clear audience The audience was essentially anyone who might be freaking out because our website is down And when you have such a large problem space, how do you turn those into actionable next steps of? What to do you have to kind of be a little bit of an expert to just narrow down where the problems could be and those steps are not Necessarily repeatable or testable. What are you gonna do like DDoS your own site so you can practice the steps for bringing it back? I mean some might but only if you have those engineers and developers which they didn't have and you know There's also they weren't asking for the documentation in a tool fit for the purpose because a lot of those sorts of action items that you might try and Write down are tied to the current state of your code if you upgrade Drupal if you change a contributed module If you change a content type all of those things could change what your steps are so You know in the end. That's where we landed with this And you know we knew that going back to standardize and simplify We were getting this feeling that we needed to do documentation But we weren't sure how we could avoid these pitfalls and when we look back there actually were prior documentation efforts at Lullabot, but they all kind of sputtered out after two or three months and It was at least my hypothesis. The reason they did is because we didn't clearly define audience or scope for those documentation So like I said, this was early 2021 and I'm from Canada and in Ontario and everything was locked down that January and it was really sad because we had viewed A full snow we had heaps and heaps of snow and all the ski hills were closed so I was stuck at home and You know needing something to do. I started to set up home assistant, which is a home automation tool It's a lot of fun. Well, you know, we can talk about that later But you know, I had a question about how I could set it up and get it running and so I'm reading their documentation which is pretty good and I found this in the home assistant documentation and I wanted to run it on Ubuntu because that's what my server was already running and it very clearly said not not No, there's two supported operating systems use one of these two and I was like, but that means kind You know Debbie and Ubuntu. They're very similar. Like maybe I can just make it work the way they want it to and What was really interesting was they had this make it compliant with ADR 0014 and There was no more information just a link, but I had to click that like, you know, what was this some upstream standard or something? And that took me to a different github repository that started to blow my mind because here we have a record of Exactly what they consider to be in a supported installation method for this open source software and We can see that there's the date the decision was made We can see a status which just looking at this implies there must be other kinds of statuses Otherwise, why would you have everything this thing except accepted? They had a link to a previous document that explained why they had to make the decision and then this is just you know, I've zoomed in a bit here But this is just the very beginning of it because if you scroll down It's got all the information about from a technical level what you need to do to have this This this installation method supported so I'm really curious because I'm also thinking about standardized and simplified standardized and simplified What are we gonna do here?  Let's see what else is in here and We can see there's more of them Than this but we've got some, you know, very clear like hey, what's the minimum Python version? Web scraping is a fun one for all the you know developers in the audience where they basically ban code that parses HTML Because they're like we had so much support problem so many support problems with it We're just we're not doing this anymore, but what's this first one that says record architecture decisions? Well, again, this one is actually really short. I've got the entire thing listed here And it's got a link to we will use architecture decision records as described by Michael Nagard Okay, let's walk this chain one more time and we get to a blog post and Look at the date on this now I was doing this in 2021 and this was November 2011 when it was published and This was really fascinating because they were referencing something outside of open source They were referencing something outside of home automation and it was nearly a decade old How many blog posts have been written ten years ago that are still valuable, right? That are worth linking to that haven't aged to a point where it's just not worth having anymore and that's where This line came from so, you know when we think about valuable types of documentation Even though it wasn't an architecture decision record that blog post was Really valuable documentation. It was standing the test of time. So what is an architecture decision record exactly? It's those three headings really Context decision consequences you want to document why you need to make the decision How many times have you had a two hour long group call with team members where you're talking about some issue? And you're just thinking in the back of your mind Do we even actually need to do this like can we just sidestep this entire problem? Do we need to make a decision now well the context forces you to Describe to your reader why the decision was worth making in the first place and then the decision What you're actually deciding to do how to implement it any references those sorts of things and then finally and this is I think are really the sort of genius of Architecture decision records is the consequences and the consequences Can be and should be both the good outcomes and possibly the bad outcomes What will be helped by making this decision and who will possibly have a harder time because you've made this decision And it also allows you to look back at those older decisions and see how good you were at predicting the future, right? But there's several things that an architecture decision record is not So an ADR is not a choose your own adventure You don't want to be reading through an ADR and left with questions about how to implement the decision What the decision means you don't want to have to make any choices in an ADR? It should be very straightforward. Here's the context. Here's the thing to do You could have debate about An ADR itself as to whether or not it applies to a given situation But not necessarily once you've determined that it applies what the action items should be An ADR should also have a reasonably long life We use the the guideline of months to years at Lullabot because if you are going through the effort of Thinking about a decision writing an ADR and then you know two months later It's no longer worth it then you've just burned a bunch of time and you're not getting the value of that It's kind of like automated testing right like you spend weeks or months creating a bunch of automated tests And then you throw them all out because you're changing your website so much like the only way you get the real value from them Is when you're running those tests for months or years at a time You know it's also one of those things where if you in expect an ADR to change then is it really a decision, right? Like you're kind of just masquerading a debate as a decision And you really are then just thinking about the state of your project not the the direction you want to go in But likewise technology changes and so can ADRs ADRs can be updated in place if you don't change the substance of the decision So for example in home assistant when they bump their Python version that is the minimum that's required they don't go through a whole process of Deprecating the old ADR filing a new one getting it reviewed They just change the version number in that ADR because really that's just going to keep going up over time You don't want to end up with like a hundred old ADRs just saying hey, we're on Python 2.8 And now we're on 3.1 or whatever it is No, we use this at Lullabot for decisions where maybe a Module changed a little bit between say Drupal 9 and Drupal 10 and we might just update the guidance like use this Drush command instead of that Drush command But there are times when an ADR is going to be past its prime You can imagine that if you had a bunch of ADRs and you could have because this whole System existed just because you know I didn't know about it or we didn't know about it in the Drupal community there was probably somebody out there who has a library of ADRs all about a Drupal 7 website and You can imagine most of those don't apply when they get that upgraded to modern Drupal, right? And so that's fine. You can mark them as deprecated. You still leave them accessible But you change that status so that if someone needs to understand the old historical Decisions and context they can but if they don't they just know to skip over it So, you know the other part about ADRs is that they don't replace all your documentation They should only document decisions. They don't replace the read me in your github repository They don't replace your setup instructions for how to get the site up and running They don't replace test plans or QA plans or anything like that. They don't necessarily teach you anything new They don't say how to run automated tests on this project or how to pull down the database so that you have a new version of that You know, it's really about the decisions and then all the work whether that's tickets or pull requests or however You're managing that would flow out from that So this made me wonder like our ADRs the battery powered can opener that's gonna let us Unstick all of our previous documentation efforts. Is this something that we could bring into Lullabot to Really solve this problem of standardized and simplified So we Wanted to get started kind of on easy mode We knew that if we went straight to the most contentious the most difficult decisions the ones that our team was not Clearly an alignment on we would stall out and not get anywhere so one of my colleagues Darren Peterson came up with this idea of invisible standards and We call these or we consider these standards that everyone is doing anyways Without question, but we haven't written down at all We don't talk about we just expect and when we go back to our goals around say hiring new developers This is like the worst kind of standard you can have Because they spend their first week working on a project and they do some work And maybe they have some other ideas from previous jobs previous projects They've been on and they might clash and they came, you know, you don't want to be in a situation Where like your first three pull requests are You know have lots of needs changes and reviews and so on you want those people to be successful So, you know, we wanted to figure out what our invisible standards were and get into the habit of writing ADRs around them because that should theoretically be easy so here is our first ADR environment indicator and This one is all about the environment indicator module anyone here who's here familiar with environment indicator See, there's almost a standard in this room for using it So if you're not familiar with it What it does is it tells you which copy of a site you are working on up in the admin toolbar at the top of the screen So you can imagine you've got your production website Where you might be if you're if you're someone who works on content logged in making changes Whatever you might be doing there. You might also have a dev or a qa server running a copy of your site You might have a pull request environment such as through tugboat or Any solution like that where every single change is getting its own dedicated environment and you don't want to get confused like You know, I've definitely done things like there's a bug report And so I delete or start changing content with you know cat pictures or whatever and that was on production That would not be a good day So, you know, this was something we were already doing on all our projects and we started to document the decision And one of the things we want to do getting back to that like don't have any questions Is it shouldn't be install environment indicator and then ask your your technical lead or your project manager? How should we configure it? It should tell you how to do that already and so we knew the real Configuration that was important was what the color schemes were which in this module you actually configure in settings dot PHP And here's what we ended up with but we discovered something Interesting and kind of horrifying as we were talking to our teams about what they had some of our teams had red as live like we've got here and Gray as your local environment Some of our teams had them reversed where gray was live and red was local like and can you imagine you're changing Projects and you think you're on your local and you screw something up like that's really a challenge We also discovered that Our colors actually failed accessibility contrast checks based off of the size of the text that environment indicator was using for the words That would say whether you were live or dev or whatever environment that you had And so we were able to do the work figure out what made the most sense Standardize on that we even contributed some upstream Documentation changes where we saw that there were also other examples environment indicator failing accessibility checks and then you know in the ADR You know we have this copy and paste snippet. That's just like throw this into your settings file And you know you're following it along with all of those different environments and It really turned this from a decision from a debate from a discussion into something You don't have to think about if you're kicking off a brand new Drupal site or you've inherited a project that you're doing a rebuild on you've all of a sudden got like your first week or first two weeks of tickets sorted out and You can just knock through them one after the other depending on how many of these ADRs actually apply to your given project So where are we at right now? This is the homepage of architecture dot lullabot.com you can go to that It's a completely public website all of the content on it is licensed under the creative creative commons for dotto license you can even download the markdown source files and use them in your own projects and The majority of our engineering team has taken part in at least 180 are which is I think something that's really neat to see Let's take a look at another example of an ADR Probably want to give me hands it who's familiar with the simple add more module Yeah, but you work at lullabot or work with us. It's not the quite the same but this is a module one of my co-workers created which helps improve the user interface of cardinality fields anything that has like a set number of values and It's pretty great because there's literally no configuration. You just download and install it So in the ADR we don't have to say how to configure it. It's just turn it on and you're good to go One of the reasons I wanted to highlight this ADR is that we added an alternatives considered section, right? What did we think about and decide not to do and in this case? There's actually a Drupal core issue that has sort of the same goals same type of implementation But it's using client side JS instead of doing its server side. Oh, no, sorry. I've got that backwards The yes the solution that is in the module uses client side JS and I think core maybe doesn't but anyways The point doesn't really matter What's important about this is we've got a breadcrumb as to what would make this ADR not Valid in the future that issue that we're linking to gets merged Then we can deprecate this once we know our sites are updated to the latest version of Drupal and in this case We don't have any bad consequences and you know, luckily I mean we've had this ADR for a while now and there haven't been any but it's also because it's pretty simple So it turns out that the answer to that question of this a documentation problem or a communication problem Like all good engineering problems. The answer was both So, you know in practice most of our ADRs start in slack Which I think most of us are familiar with so, you know in slack We're having lots of sentences timely responses I have a problem right now and would really like an answer in the next hour if possible And slack is also one of those mediums where it's kind of okay to lose the conversation in the back scroll You know if you work at a larger organization and you take two weeks off You're not going to read every single slack message that was posted. That's just asking for a bad way to get back But when these conversations happen, they usually don't start out by saying. Oh, I've got an idea for an ADR They usually start out with I have a problem can someone help me with it or I'm working on this task But once they grow once people start to you know, press shift enter and use paragraphs and it becomes a real discussion We now use Discourse which is an open source form software. You can self-host it But we are we are happily paying for the hosted version because it's exactly the same as the Self-hosted code and we like to support companies that do open source that way and they have a plug-in for slack That lets you take a thread or a range of messages and push them to a discussion in Your discourse instance, which is great because we can then when we see those discussions when they get to that point Where it's like oh if someone's on vacation and they should probably read this and catch up It makes it a lot easier for them to do by going to that that site so They grow and we push that over and then as we you know have those discussions We use github issues specifically for you know, there's a task to do like we have decided to write the ADR someone needs to do it or There is a you know a change to an existing ADR that we we need to make so Let's take a look at a couple of examples of you know some of those discussions. So like here Andy at Lullabot. He asked You didn't even ask a question. He's just like hey storybook has default telemetry on What do we think about that and we had a conversation about what that meant? But then we realized again like this is bigger than just storybook right like I think yarn has default on telemetry I know Gatsby does you know a lot of sort of the more JS tools are starting to do that and Regardless of your position as to whether or not that's an okay thing to do It's still a discussion to have in this case We did realize that we couldn't necessarily have an ADR that described if we Would universally opt in or out of telemetry because what if it's an open source project where they are Publishing all of their telemetry for the benefit of the community. What about Drupal org data, right? You know modules installed all of that and so because it was something that really was more of a case-by-case basis You know we didn't make a decision and that's fine You know the cheapest decisions to make are the ones that you decide hey We can put this discussion to bed for a while and come back and re-evaluate it But because it's in discuss if two years from now You know next JS does something awful with telemetry and people are really wondering what our policy is They can at least search in discuss and hopefully find this thread Here's another one where Some of our projects were using npm for a JavaScript package management somewhere using yarn and I was doing an investigation on it for a client And I was like hey should we use both should we not use them like you know is a project specific and again We didn't really come up with a final decision on this We determined there was too many variables in place to be able to Standardize on one tool or the other But Here is an ADR that actually was accepted an example of an issue So we you know we always try to link back and forth If you are familiar with Drupal's Multilingual UI One of the things that it does is that by default it shows a drop-down with the language searcher of And it's sorry. It's not the language switcher for like what site Language I'm not using it's for what this piece of content is and we kept discovering that Our clients our editors would go to translate a page But they wouldn't go to the list of languages and click the link that says add a translation for French or whatever language They would just edit the English version Delete all the content and then put in their translated copy and change that drop-down from English to French or whatever language They were using which meant they were losing that page and that You know caused a lot of pain and so you know, this is something we realized That whenever we're doing a translated website, we really need to fix this and so you know, we had this Discussion we described what need to be done and you can find the ADR on architecture dot lullabot.com right now So to Accept a lullabot ADR we have a couple of guidelines for that one is we don't document what is already a default in Upstream software or communities, you know, if it's Drupal coding standards, for example There's no point for us to say hey, we use those because everyone should be using those we don't want to duplicate Documentation that is well written that exists elsewhere We also Expect our decisions to be able to be written as a single title and our guideline for that is if someone is an expert in The domain that the ADR is written in they should be able to read just the title And nothing else and be able to implement that decision. So for example, we have a bunch of ADRs around composer There's an ADR that says When you use the composer patches plug-in always include the patches References inlining composer.json never use a separate file and I don't have the title right there But you know, if you understand composer if you've used composer patches even again if you don't necessarily Agree with that as a new lullabot employee or team member You can read that one line and go on to the ADRs that you maybe don't understand it immediately We also expect any ADRs that we accept to be in effect for at least one year And we actually have another guideline that once we accept an ADR We are going to stick with it for at least three months We haven't yet run into a situation where we've accepted an ADR and like two weeks later had real You know choice regret about what you know what we've done But our thinking is that if we've gone through all this effort if the team has agreed that an ADR is the way to go It could just be a problem on the project, right? It could be something very specific that causes it to not work in that one case And we need to give an ADR at least you know a second or a third time to realize that we've made a mistake But maybe we'll never need to do that. I mean, I'm sure it'll happen at some point But we'll see and then likewise an ADR needs to be a baseline for all projects that we start or inherit And what I mean by that is we are very collaborative with our clients We do work in agreement with them, you know at a sprint level on a ticket level however We're running the project, but these are decisions that we will implement without asking the client, right? Like they get environment indicator. It just shows up. We don't ask them Hey, is that worth putting into a sprint? It means these are decisions that are so key to our work that if we have to do it As unbuild time we will do it because it saves us so much in terms of team consistency over the long run A Lullabot ADR is also a list of deciders We include the names of every team member who participated in Slack discussions discuss discussions phone calls anything like that So that if five years from now someone thinks that there's some missing context or they have questions about an ADR There's a hopefully at least someone who has that background that they can reach out to and honestly You want to be clear that this is not, you know me Andrew Barry director of technology making decisions This is really, you know about laying out the framework for how we make the decisions But then empowering the team to do that together Our ADRs are written in markdown and stored in git and they're rendered with a Gatsby theme plug-in that one of my Colleagues put together and they're released under creative commons license, you know these Four items may be different for you for your project your team your company You may decide that your flavor of an ADR is different and that's fine You know a lot of these like I do think markdown and git is a good way to go But you know, I don't know if we we probably and we might use next j s if we were starting a new Implementation of the front end or you know me you're like, oh, let's do a Drupal site like that's fine You know, you want to do something that works not something that Ends up being a project on itself So I gave a version of this presentation in 2021 and I gay had these next steps for you know goals for the the year and You know at the time we hadn't implemented discourse. So we did We wanted to make the ADRs public and we did and we wanted to move on to Documenting decisions for higher cost problems. We did I think probably one of the Most in-depth decisions we made was around local environments at Lullabot We very much believe in people using the tools that they feel make them empowered and the most efficient and that meant for Until I guess 2021 2022. We didn't have a standard local development environment It was do what works best on your operating system your way of working So we had a working group and that working group concluded that we should standardize on D dev for local environments And we documented that as an ADR And using ADRs on client projects, which we have where you have to make a project specific decision is this site using layout builder or layout paragraphs or some other way to do landing pages is this site How is the site handling multilingual or menu management or any of those sorts of things? but again, those should be things that are specific just as we don't want to duplicate the Open source communities documentation best practices and Lullabot ADRs. We don't want to duplicate Lullabot ADRs in client projects So moving ahead to 2023. I think these numbers are probably stale now But we have 30 at least 35 accepted ADRs We have two or maybe three deprecated ADRs many many participants We have ADRs in place on client projects We reference our public ADRs in sales proposals and upstream issues as a way to say hey this bug fix is important our team is standardized on your software in this way and You know, this is how it affects us or when a sales proposal asks for technical details about how we implement a Drupal site Often we can reference those ADRs ADRs have been conceived and moved fully through the process without manager involvement at Lullabot You get a sabbatical at 10 years with basically an extra month of vacation I took mine this summer and it was wonderful and in that time an entire ADR happened I came back to work and like the discussion the Genesis all the way through to being approved and merged was done And I was really excited to see the team take the lead that way And you know, there's been some considerations on using ADRs in the broader Drupal community There was at a great blog post about decision record keeping in the schema.org blueprints module and You know, it was neat to see sort of other people taking this idea and run with it So, you know, we've got a couple of things we need to work on we need to deal with our backlog We've got like 30 open issues on GitHub right now Some of them are probably 18 months old and you know that I need to like do some gardening there We had a slowdown after the initial burst of ADRs We're getting a new one in probably every two to three months and we don't have any as many public ADRs on front-end decisions And that could be because it's harder to standardize the front-end because our the designs are, you know Be spoke and unique and there's a lot that you can't necessarily standardize on or maybe it reflects the bias in the way We are managing and directing our teams that's pushing them more towards, you know Back-end focus instead of front-end focus and that's something to work on So perhaps you see this this could be a way to get involved in a Drupal project even if you're not a coder, right? You know, I think some of these have already happened But you know, maybe there's a community or contrib project You're working on where you're making decisions right here right now and that are of architectural significance Nothing stops you from throwing a markdown file in a doc slash ADR folder in your Drupal project containing these But you may be wondering how to get started So really just start writing, you know, the act of writing an ADR often by the time you get to the end of it You're like, oh, this is a really bad idea. Let's go back and rethink things But the act of writing it can really help crystallize your decision-making Probably just use markdown and git because it's what we all use for our day-to-day work Your developers will be much happier using that and we're participating in the decision process than using a tool like Confluence and it's okay to take your time like really, you know, some of our ADRs They take two or three months to get to that end state and that's okay because we want to make sure we're making the right decision Well, not the wrong decision fast So I'd like to thank everyone for attending. I'll leave you with this last ADR But otherwise, I think we can open it up for questions. So thank you I don't know if you can hear me yet. So there's one question as a decision is only as good As the knowledge and facts at the time, how do you decide when an ADR is ready for review and see if it's still valid? So you when you're thinking about ADRs that have already been published Usually the way that happens is because we're constantly Implementing these ADRs on our projects because it's a baseline There's a natural review process happening there where you know, especially as it was happening with our Drupal 9 to Drupal 10 upgrades For example, there was some changes in our Drupal deployment steps. I think there might have been one or two changes in the composer ADRs so, you know, the best way to review your ADRs is to use them to keep them front of mind if You know, you write them and then no one is thinking about them using them on your projects Then they are going to go stale It's gonna feel like a chore when you have to review them and it's gonna rapidly lead to your repository going to an archive state What was the biggest challenge to getting this process implemented? Yeah, um, I'll I'll say two challenges well, no, so like the biggest challenge from the process side was really getting the team used to the idea that we make decisions together and sort of Coming to terms with losing a little bit of autonomy that way, right? like that's just something that we had baked into our culture and You know, I don't think this would have worked if we had had a small group of people making all of the decisions We needed to give people a voice But then make it so that they felt like they were involved and listened to and considered so that even if a Decision didn't go the way that they would have preferred they feel like they are supporting the rest of their team in those decisions Right like it may mean, you know in those consequences a decision may make my life a little bit harder But if it makes things easier for another 20 engineers on the team Then that is a good decision to make for the for the health of your your team in your project I'll also say, you know one thing that's a little bit different that happened at all about during this period of time as we became an ESOP which is a form of employee ownership and I think that also really was pushing people towards this mindset of What we are doing is both good for the company as a whole and good for me because if we can make all our projects better That will pay off for every employee in the long run And how do you you know if there's already an existing ADR for current problems? If there are hundreds of ADR hundreds of ADRs, there's a search box at the top of the ADR website Highly recommend using it and also because it's in git like you know, if you're a super nerd like I am You can just run git grep something and you'll probably find it And how do you measure success velocity adoption number of participants? Yeah, I mean I think the the biggest risk that I saw is that we would make decisions And then those decisions would grind our projects to a halt right? what if we had a bunch of onboarding ADRs and all of a sudden it was adding six weeks of development to every project that we weren't really considering so I would say our success is measured in the fact that that hasn't happened that it's improved our you know per project velocity that way and Yeah, you know for me It's like the success is not the fact that we created an initial library of ADRs But it's that the team is you know working on them that many in the team are proposing them I mean even people from our strategy and design teams are involved and sometimes have proposed ADRs for things around editorial experience and so to me at least I think that's a really good marker of you know success and collaboration Thanks, and what other documentation are you creating and how do these other types of documentation work with ADRs? Yeah, so I mean from a technical level most of our documentation ends up being markdown files and github And so they're easy to link to easy to reference one way or another We will reference the ADRs and client tickets, you know, we are doing this because of this decision You know, I would say that some of our projects do have internal wikis confluence SharePoint, you know, whatever they're using but one of our reasons for making the bulk of our ADRs public is Because then we can reference them from internal private tools, right? We didn't want to leave our clients in the dark about why we made a decision if they were taking maintenance or a development of their site in-house Cool makes sense And I mean two more questions, but they're very similar Is there an ultimate decision maker if devs can't agree on a single decision? And if there's no consensus, do you put step put your foot down essentially? Yeah, yeah, absolutely And so we do have a couple of team members who have volunteered to be maintainers of ADRs And we have some of our back-end expertise some of our front-end expertise you know they Their their role and honestly my role is less around putting our foot down and more about unblocking decisions, right? So, you know, if you see a lot of back-and-forth in Dis in our disgust form, for example, we will say hey, we're gonna put our foot down Not in a we're gonna stop this conversation We need to actually like have a synchronous call do a zoom chat or do zoom call or something like that I will say that because we have this heuristic that it needs to apply to all of our projects We do do a lot of checking with our support team to make sure that we're not making decisions that they feel like they would have to undo So they are equal and valid participants, and I think that really helps You know ensure that the decisions we make are valid for a project over the whole life cycle Thank you Okay, I don't even know why I went to write this question So this seem to be mostly the examples I mentioned are like linear things but that happen in every project Examples, but I can think more of things where you find a problem that you're crossing every second project at some point and then Based on some condition you need to make some choice, and then you still want to Write it down. Maybe right. It's not so simple So in those cases we try to include the condition in the title, right? so, you know for example if you're doing a project that Is next j s you're not using composer those decisions don't apply We have tags on all of our ADRs so you can filter them if you want to say I want to know everything related to JavaScript or DevOps or Drupal You can filter that list down fairly easily to get what you're looking at But if it's something that's every other project if those projects have the same technical base Then that means it's not ready for an ADR right that means we would probably stop at the discussion level and have They're the heuristics for how different teams made different decisions another question Sometimes you have this problem solution thing and you when you search you only know the problem But you don't know the solution and the ADR title would be the solution and not the problem So that I was thinking that should be some separate thing where you record the quest the problem in one place and the solution linked so the the ADR title is the summary of the decision not necessarily the problem or The solution if that makes sense. So like if the problem is Drupal.org is down for maintenance and you can't run builds because all of your patches are referencing Get dot Drupal.org like that's your problem, right? But the decision is You know always download the patch put it in your local repository and that just happens to be the solution So because we have search right if you search for patches or Drupal.org or Composer you're gonna find that because we are indexing more than just the title. We're indexing the whole thing I think that's everything Yeah, okay. Well, thanks everyone feel free to come on up and it's glad to see everyone here


Hello, everyone. My name is Chris Anizic. I am the CTO of the Cloud Native Computing Foundation. I'm here today as one of the program committee members of our first Cloud Native WASM day. I'm excited to be here to kind of show up and present a new conference to our wonderful Cloud Native community. I'm here with my other program committee member, Colin, who will talk a little bit about history of WASM and how it's relevant these days in our Cloud Native ecosystem. Cool. Thanks again, intro, Chris. My name is Colin Eberhardt, and I'm the Technology Director of a company called Scott Logic, which is a small UK-based software consultancy. And I'm also, as people who know me, they all know I'm a complete WebAssembly enthusiast. Now, to give you a little bit of historical context, WebAssembly is quite a new and fast-moving technology. It was originally born in the browser and addressed the age-old problem of how you bring other languages to the browser. For those of you who've been around for a while, I'm sure you remember Flash, or if you're as old as me, things like Java Applets. It's always been a challenge. The plug-in model caused some significant tensions. WebAssembly itself was developed really quite rapidly over a period of a few years, building primarily on the work of Mozilla and ASMJS, and it was launched relatively recently in 2019. And at around that time, it also moved under W3C alongside CSS, JavaScript, and HTML. And for me, this was a real landmark for the Web. It's the first time in the 25-year history that there has now been another language that you can use, another language which is a first-class citizen of the Web, rather than the plug-in model where they are effectively a second-class citizen. So it's hard to understate the significance of that event. So WebAssembly is a fantastic technology, but unfortunately I think the name is a little bit wrong in some regards. Firstly, it's not really an assembly language, but you'd only be a pedant if you pointed that out. But more importantly, it's not just for the Web. So the WebAssembly runtime itself is secure and sandboxed, which was a must for the Web browser. The Web is probably one of the most attacked platforms there is, so it had to be secure. It also has a very lightweight and platform-independent instruction set. And it's these features that make it a very desirable runtime for many other use cases. So since the inception of the technology, people have been using it for various different non-browser-based applications. So for example, in the blockchain world, WebAssembly makes quite an ideal smart contract engine. In the past, Ethereum had used their own proprietary language, Solidity. In the future, through WebAssembly, they'll be bringing a range of modern programming languages to blockchain. Also, IoT, again, it allows us through being platform-agnostic to create a much broader ecosystem. And finally, at Cloud Native, the reason many of you are here, WebAssembly gives, again, a lightweight and secure isolation model. It's ideal for running cloud functions or running code on the edge or running code within proxies. It's an ideal runtime for those scenarios. And finally, I guess on a personal note, I think WebAssembly could have a greater impact beyond the Web than it does within the browser. So I think it has a great history within Cloud Native. Thank you, Colin, for that quick synopsis and history of WebAssembly. Personally, very excited. Within the CNCF, we've already had some early adoption of WASM-related technologies in the Envoy project, which is one of our fancy service proxies. They've been basically ripping out and replacing their existing kind of extension mechanisms, which was powered by Lua, which is a lightweight scripting engine, but fairly heavyweight. And from them moving from Lua to WASM, it has helped make Envoy lighter weight and a little bit more flexible in dealing with different languages for you to write filters that support Envoy. We also have a lot of experimentation in the wider Cloud Native community. Folks in Microsoft have been working on a new kubelet Kubernetes engine called Crustlet, which basically allows you to take advantage of running WASM within a Kubernetes context. So to me, like all this innovation is happening kind of at the perfect time where I think over the next couple of years, you're going to see WASM stretched in new environments from the edge to cloud-based environments such as Kubernetes. Colin and I are both glad to welcome you to our first Cloud Native WASM day, and hopefully you could use this occasion to learn more about the technology of how it's being used both inside and outside the browser. And we hope to do many of more of these events in the future. So from Colin and I, thank you for attending, and we hope you learned something new. Thank you. Enjoy.


First question came from my guy Nazarene. He said, hey, what's good, bro? As a critic of your takes, okay, I like that. And your fellow Ravens fan, now I'm just showing love and I appreciate you for your consistency. It's the boring off-season and you make it fun no matter what. Hey, man, thank you for that, I appreciate that. Thank you, man. So look, I have a solution. Me and some other Ravens fans were beefing. What's new? About my take on Anquan Bolton because I said he was the number two receiver when we got him. Now, before we go further, technically you're right, but he was the number two receiver only because the Cardinals also had Larry Fitzgerald. But it's all about the situation. The situation with him and the Ravens, he was the number one. He gave them exactly what they needed as the top target for Joe Flacco. He became the number one at the Ravens, but with the Cardinals, he was the number two. So two things can be right. Even though, you know, when people say that, that's so annoying. Oh, well, two things can be right. Anyway, and the conversation started off rocky, but at the end, a lot of knowledge was shared. Someone pointed out how Baltimore's version of Anquan wasn't the same as Arizona or even San Fran's Anquan that he wasn't all that with us. Hmm, I disagree to an extent because with the Ravens, Anquan Bowden, he wasn't gonna get the same numbers that he was getting with the Cardinals, but he was perfect for what the Ravens did. He was perfect for what the Ravens needed. They needed that reliable go-to on third down the reliable guy who not the tallest in the world, but Joe Flacco could throw the ball up and he would go get it. He would go get it. And they were like, Hey, y'all know Flacco's my guy, man, but there'll be some times when Flacco would just be like, man, just launch it up, whether it be the Tory Smith, hope to get that pass interference, like, oh man, they perfected that, man. They perfected that. We gotta get Lamar and Hollywood to get on that, man. But you know, Ravens, they don't really get no pass interference calls anyway. But man, and then with Bowden, there'll be times when Bowden would save a lot of them. Anyway, let's keep it moving. He said, someone pointed out how Baltimore's version of Anquan wasn't the same as Arizona or even San Fran's Anquan, and that he wasn't all that with us. They used stats and stuff to make the point, and I agreed after seeing the stats. My whole point was that the Ravens don't need a proven number one receiver, but an emerging number one, who is the number two with another team? Landry isn't the number one in my eyes, but you plug him in with Hollywood, Bateman, and the rest of the gang, we would have an Anquan Bowden type of presence again, and I think he's cheap to be honest. Landry would be straight. I don't feel like he's an emerging number one. He would be straight. Yeah, he'd be straight. I would just look for somebody a bit more explosive. I wouldn't be mad if they got Landry, but I would just rather somebody with more explosiveness. But anyway, he said, yeah, Landry isn't the number one, but if you plug him in with Hollywood, Bateman, and the rest of the gang, we would have an Anquan Bowden type of presence again, and I think he's cheap. What do you think? I would even look at Julio. No, he's not a number two. I know because Watkins did some good damage with us this past season, even though he was kind of injured the whole season. Julio won't get that crazy money anymore, so I think we signed him with Landry or O'Dell. The money that we was gonna give Bobby Wagner is definitely enough to get what you and other Ravens fans want. That's my solution. By the way, I think Bateman is elite. He's a chain mover. He does elite things 90% of the time. He was given a chance. Peace and blessings. Woo, it's a loaded one right here to start us off, but the perfect wide receiver for the Baltimore Ravens. Sounds like that's what you're trying to describe and hoping that they get. Now, Julio, the Ravens signing Julio would be a very Ravens move, but it seems like Eric D'Costa has been slowly trying to get away from that. Signing the older washed up receivers. It seems that maybe, even though he did sign this, right? So, whoa, but, and as far as Sammy, Sammy wasn't, I mean, he wasn't older. It seemed like he was older. Like a lot of us last year, when we found out that he was 27, I was like, what? Sammy Watkins, 27? But Julio Jones, again, I said this before, I wouldn't mind Julio Jones, but only if he could be like their third or fourth option. I would, if they got a Julio Jones, I would want them to trade for an up and coming guy. Like you said, or they draft a guy early. They draft the receiver early. Second round at the latest, at the absolute latest. First or second round, it cannot be any later because if they don't draft them in the first or second round, the investment won't be there. They won't care about them. They won't work with them. They won't put them on the field that much. It'd just be doing special to, again, recent third and after guys, Devin Duvenay, Miles Boykin, James Proshe, Tyler and Wally. And Tyler and Wally, his situation was a little tougher than the rest of them, but look at the rest of them. So, I just, again, Landry would be straight. But I just wouldn't want that to be it. I wouldn't want that to be it. I would want them to do more. Speaking of receivers, next question came from my guy, Cody, he said, engraving with Sammy Watkins signing with the Packers, does that make it more likely that we take a receiver in the first round? No, it doesn't. I don't think Sammy Watkins, him signing with the Packers has, I think it has zero impact on the Ravens whatsoever. We knew that Sammy Watkins wasn't coming back. All indications were that Sammy Watkins wasn't coming back. So, nothing that happened with him has any impact on the Ravens whatsoever. I know a lot of people, they've been saying, oh man, it's Bateman's time now. And then somebody was responding to that. They're like, uh, no, it's actually Patrick Ricard's time at Wyris.  He said, I feel like we have way more prominent needs and free agency would suffice, but I wouldn't be exactly opposed to us drafting an exciting new receiver. And as always, I hope you're doing well. Hey, I appreciate you, Cody. I wouldn't be opposed to it either. But I don't think Sammy Watkins, I don't think he changes anything as far as free agency to draft whatsoever. Next question came from my guy, Ma, and he said, if you could trade two firsts, a second and a third for any one player in the league, except quarterback, who would it be from? I would choose Nick Bosa or AJ Brown. Two firsts and a second and a third. Boy, if you trading that for somebody, boy, they better be on point. They better be right. They better be a game changer. Give me the Andre Hopkins. Next question came from my guy, Phil. He said, I understand a lot of fans want to see a trade for a wide receiver, like Scary Terry, Debo Samuel, DK Metcalf, which Lamar recruited on social media. And I would love to see it happen also. But my main question is, does everyone understand? And I know all three only have one year left on their rookie contracts. Well, once 2023 free agency comes around, the contracts of Lamar and Jews, and either one of those receivers will cost around a combined 80 to 85 mil, which means the front office will probably have to give up Brown's 15 mil, fifth year option. I know the cap is supposed to rise around 20 mil next season, but you can't afford to pay 100 mil between four players and then try to fit 49 other roster players within 130 mil. What are your thoughts on it if you get my point? So you are saying that fans, that we want a wide receiver and a wide receiver that's going into the last year, the last years of his rookie contracts. So you are saying that he will have to be paid. My thoughts on that, Ravens do it on defense. They could do it on offense now. They can shift. It will be a philosophy shift because Ravens, they will be quick to give out the bread on defense. They'll be quick to spend it on defense. Why not take that same philosophy but just switch it to the side of the ball that scores? It makes sense to me, and I think it makes sense to a lot of other people too. But, and that's the thing. I know a lot of Ravens fans, they think that way like, oh, no, it's not worth it. Ravens shouldn't do it.  You gotta pay people.  And with a lot of these receivers, you would have to end up paying whoever you traded for too. They wouldn't necessarily have to pay them. I mean, we would want them. I would want them to pay them, especially if they came on and they look good. But, see, this is why you have that trial period. Yeah, you give up whatever assets for whatever receiver. And depending on who it is, you may have to give up a little more. Sometimes you may have to give up a little bit less. But you give them that trial period. Hey, if it works, it works. If it doesn't work, hey, you try it. But hopefully it will work. So hopefully you could be in a situation where it's like, damn, we gotta pay this guy because he helped us out so much. We still gotta keep Hollywood because he helps us out so much. Obviously gotta keep Lamar because he is everything. And then Mark Andrews, he already got his bread. So I don't have a problem that it could be a potential problem with having receivers that you have to pay. Because if you feel like you have to pay them, then that means that you played them and they did well for you. You know what? We didn't even do the intro. Yeah, this feels like a dream. You too, team, keep it clean. You see my boy, he like got him made it. Got him made it. Boy, that's my homie. Team Keep It Clean, welcome to another episode of Question From Souls, where you can ask me any question and we answer it in a video just like this. If you wanna be a part of it, for the patrons, you can send your question directly on Patreon. If you wanna become a Team Keep It Clean patron, you can go to patreon.com slash engravingvids. And if you don't want to, then you can just send your question on teamkeepitclean at gmail.com. I appreciate y'all. I love y'all so much. I thank you so much for supporting. I thank you for all the positive messages. I thank you for all the great fun questions like always. Thank you for always bringing a different perspective. Even if you agree with the stuff that I say, if you don't agree with stuff that I say, it's fine. But I always appreciate you all's different perspectives on whatever it is that we're talking about. Thank you for shedding a different light on different subjects. Thank you for providing a different point of view. Thank you for coming with this like outlandish stuff that nobody was even thinking about. Cause we appreciate it. I appreciate it. I love when y'all bring stuff that nobody was thinking about and y'all presented because that makes it so much fun. We got some great questions. We got some crazy questions. We got some fun questions. Let's get to them. Next question came from Z. What's up in Graven? I hope everything's going well with you and the fam. I had a quick question. How would you feel if the Ravens got a little creative and ran a 4-3 defense and make a few trades? Here are a few examples. Ravens trade the round 300 pick and round 696 pick. I can't even talk for charges. Jerry Tillery or Eagles, Josh Sweat. Oh, example. Left end would be Adolfi away. Defensive tackle, Michael Pierce. Defensive tackle, Khaledis Campbell. And they're right in Jerry or Josh or somebody who they could end up drafting too. That's another possibility. I think they will do a bit of that. I think they will. Shout out to my guy JT because he pointed me to an article about Michael Pierce and the fact that with him being released, he said that when he did get released, he wanted to play for a team that would run the 4-3 a bit more. That's more his style. And then what did he end up signing with the Ravens?  We'll see. Next question came from my boy Antwin. He said, hope you and yours are well. Is it me or does the media seem to want the Ravens to trade big trust Lamar Jackson? The guy they say is not a quarterback and he can't throw. Am I the only one to catch it? No, you're not. Definitely not. I think with the media, they want something because Lamar's not giving them anything. And when you don't have an agent, they will try to spin whatever narrative on you because they don't have one. They don't have any leaks. They don't have any sources. They don't have anything. So it drives them crazy.  And I love how Rich Eisen put it in the interview that he did with Harbaugh when he talked about Lamar Jackson. He said, it's not a you thing. In regards to Lamar Jackson, he said it's a me thing and me regarding the media because there's never been anything like this that's happened before. So since this is new territory for them, they don't know how to act with it. That's why everybody's been going crazy. Next question came from drumdrum. He said, I have loved all the content you've been putting out since I found your channel after week 18. Oh yeah, week 18, I'm still getting used to hearing that because it's so weird because we used 17 weeks for so long but I appreciate you. So shout out to the NFL for providing that extra week because that put drumdrum onto the channel. So thank you NFL. Anyway, he said, I love coming home, playing Madden and listening to your videos. Yeah, some of them be even longer than a Madden game. You can put it on 15 minute quarters and you still be on the same video. Anyway, this is my first question submission and I hope it makes a video. If the Ravens were to trade for DK Metcalf and Huntley was included in the trade, what would the Ravens do for backup after John Harbaugh's comments about not drafting a quarterback? Would they sign an undrafted quarterback or pick up some random quarterback and free agency or go back on his word? I know this question relies on the DK trade actually happening but I would like to get your thoughts. That would be interesting if they did that. I think that that could, if they traded Tyler Huntley, that could obviously change some of their plans as far as drafting a quarterback. They could take one late like fifth, sixth, seventh round, something like that. And I don't even think they have a seventh round pick right now, but they could obviously trade back get some more picks and da, da, da, da. They could sign, there's always Kenji Bahar because he's old reliable. Trace McStorley, I'm not sure what his status is.  Cause he got drafted in I think 2019, but they would have options. Again, you can sign an undrafted, God, there's that option too. Tyler Huntley was undrafted. You could sign a Cam Newton.  That was an accident. My mic wasn't feeling that idea too much. You have options. I'm trying to think who else is out there as a backup. I can't think of nobody else off the top of my head, but I don't think it would be like this crazy thing where Ravens are like tripping out anything to get a backup quarterback. They'd be able to find somebody, but I'm sure it would be somebody that could move. It ain't gonna be no statue quarterback. It's gonna be had to be somebody that can move a little bit. They could use that on, but they could also use them legs too. Just to be the backup for Lamar Justin Case. Next question came from my guy Matthew. He said, hey, how's it going? Hope all is well with Junior Family. Sorry if this message is a little long. I can't help but notice JC Treader, unless I'm mistaken, is still available in free agency. He is, and I don't think the Ravens are gonna sign him, but let's keep going. He said, I think he'll stay a free agent until after the draft for teams to see what they can get, which works out for the Ravens because I believe we could possibly be in another Vian Waiver situation. Hopefully you're talking about just being able to sign somebody after the draft and not the quality of their play. Anyway, and with the AFC North rival, wants to get their get back at their team. And if the market says Lamar doesn't attract wide receivers, which to be honest makes very little sense, like one-on-ones galore due to needing full 1111 on football to account for Lamar. But anyway, he definitely attracts Lyman. I feel like this could be a possibility at center and really see Patrick McCary is paid extra. The same reason Pat Ricardo was signed extra because they love extra blockers and he might be the contingency plan for Ronnie if he's not ready. That's a good point too. That's a really good point. Patrick McCary could be just that too. I do believe he'll be the Ravens starting center, but the way Eric D'Costa was talking, he made it sound like he gone draft Tyler Lindenbaum because he was like, yeah, there's some centers that we really like in the later rounds. Oh yeah, okay, I don't believe you will see though. But Patrick McCary, he could be that just, that ultimate backup plan, that ultimate option. Now hopefully Ronnie Stanley comes back healthy, but again, stay ready so you ain't gotta get ready. Maybe they try Patrick McCary at left tackle. Morgan Moses, you got Joanne James. Hopefully you'll have Ronnie Stanley, but yeah, let's just keep going on first. He said, I think JC Trader might be one of those where we want you, but we want our Compex first type guys. Now, Ravens ain't getting no Compex this year. Compex is out the window this year. They are getting zero. You see all these Ravens signing all these one year deals, these one year cheap deals? Ravens ain't getting no Compex with nobody this year. But he said, if we do get them, I hope the comparison ends at the signing because we all know Villanueva still was playing for the Steelers and all those first down and momentum builders, he stopped, let alone leaving Lamar out to the Wolves. Let me know your thoughts and keep up the great work and go Ravens. Appreciate you, Matthew. Yeah, I don't think they're gonna sign JC Trader. I wouldn't be mad if they did. I wouldn't be mad at all. But I just, I don't think he's gonna go down. Next question came from my guy, Jake. He said, hope you and the family are doing well. Also hope the viewers are well. Hey, appreciate that. I've been saying, excuse me, I've been having this huge obsession of trading up this year. This is based on the fact that the Ravens have so many picks. I want the Ravens to get into the top six and get tippet-o. He idolized Ray Lewis and said, I'd love to be a Raven. I know this isn't Ravens like at all. Yeah, you're right. But I want them to make a big move, making a statement and showing the Ravens aren't messing around anymore. What do you think? Oh yeah, that is not a Ravens move at all, but it would be moving up for a defensive player. So that would be a Ravens move. It would give somebody opposite Adafi away. A game changer on defense. And as long as they got that interior right, and maybe this could be Mada Bique's year where he steps up Michael Pierce of Kalea's Campbell. So you got some solid guys in the middle. You're just waiting for that guy and the guy who's really gonna get after and provide that interior pressure. And like I said, maybe this is Mada Bique's year where, cause you know Kalea's Campbell, he ain't gonna be out on the field 24-7. Mada Bique gonna have his opportunities, but how are they gonna do that rotation? Are they gonna really let guys get into a rhythm? Are they gonna be doing flip flopping rotation just to try to keep guys extra fresh? I just wonder how that's gonna go. But I wouldn't be mad if they did this. Now to move from 14 to six, that's eight spots. That's, oh yeah, I had to make sure my math was right. That's eight spots up in the first round. That's a lot. Now, if all it took was a couple of them fourth round picks or something, okay, cool, whatever. But that could take a lot, that could take a lot, man. Cause you ain't moving one spot. You moving eight spots into, ooh, ooh, ooh. Oh, and you said into the top six. You didn't even say it's six. You said the top six. So that's one through six. So yeah, that could take even more. Now as far as him saying he idolized Ray Lewis and he loves to be a Raven, he would love to go anywhere, really. He would just love to get drafted. He's gonna love wherever he goes. Of course, you probably got some preferences and whatnot. But I did see that interview that he did where he was sitting at the table and talking about the, I think, wasn't Ray Lewis there? I think Ray Lewis was there. But I mean, I don't really, really, not that I don't buy and talk that, but I don't really get all super hyped off of that. Like, it's like, I remember Michael Crabtree when the Raven signed Michael Crabtree back in 2018. And he was like, oh man, it was always my dream to play for the Ravens. And I'm like, okay, yeah. All right. And when people say stuff like that, it's cool, but I don't really think it means much. I remember, was it last year or the year before last? There was some past Russia. I forgot who he was. And he was working out and he had on like a Raven shirt.  Yeah, okay. It doesn't mean much to me at least, but they got him, that'd be cool though. That'd be cool. Will he be drafted that high? Ooh, we gonna see. Draft only a couple of weeks away. But, oh, speaking of away. Away, because again, this would impact away. All of our edge guys, all of our edge past Russia's guys, they all coming off an injury, something more significant than others. They either coming off an injury or they gone. Adolfi away coming off an injury.  Jaylen Ferguson, I have question marks there. So I just, I'm not sure that he's even gonna be on the team. So I don't know, man, I don't know what happened with that. I don't know what happened with Jaylen Ferguson. It's like this guy leads college in sex, leads the NCAA in sex, and it's like, what happened? Did the Ravens just mess up on Jaylen Ferguson or what happened there? Cause I initially, usually when, oh man, he was terrible, he was this, he was that. But then I think like, hold up now. Did the Ravens just slip up? Did they not play him to his full potential? Did they not put him in positions to succeed? I don't know, cause it's, it's weird. You don't just go from balling out in college and then you get to the pros and it's like, ooh, yikes. So I don't know, man, it's just something to think about. But as far as KT, yeah, I wouldn't be mad if the Ravens got him. Cause it would be an immediate help to an area where you've been lacking consistency at for a while. Next question came from my guy, Cage. He said, A, engraving hope everything as well. It's my first time sending the question. So I've been thinking recently, since all of the free agents that left us recently only got small one year deals. This means that we most likely won't get any compics next year, correct? At first I was disappointed, then it just hit me. Shout out to Will Smith. If we don't have any compics, then what will stop us from signing big name free agents next year if we have no picks to lose? Just something to think about. Well, actually this year, that will be this year because with the compic formula, it's based off of any players that qualify for compics, like the way that it works. Say for instance, Bradley Bozeman, if he signed a big deal and it qualified the Ravens for like a third or fourth round compic, but if they signed somebody to a big deal like Marcus Williams, that signing will cancel out the compic that they would have gotten for Bradley Bozeman. But if they didn't sign a Marcus Williams and Bradley Bozeman got signed by somebody else to a big deal, then they would get the compic for Bradley Bozeman unless they signed somebody before the compic period ended. So the compic, you get it next year, but it's all about what happens this year. It's all about what happens this off season. And then next year's off season will impact the following year's compics. So bottom line, they ain't getting none this year. Ain't none of those little small deals that these Ravens free agents got, none of them are qualifying for no compic. So the only thing stopping the Ravens from signing a big free agent is the Ravens. Our next question came from my guy, Hoodie Cammy. He said, ain't Raven, how's the fam? We should push for Debo or DK or even AJ Brown. Ooh, ooh, ooh, like DK or AJ Brown, I would love either one. Debo don't know, not at all. He said, the Ravens need that trust, that number one guy, and I think Debo should come because he's a good fit. He did it all last season. Just imagine if we put Debo and running back, the Ravens would be a problem. But what you thinking? Nope, I'm a no for Debo. Not because he's not a good player because he's a great, phenomenal player. Difference maker on offense, but I just feel like if the Ravens would get him, G-Roll would overthink everything with him. He would overthink and overcomplicate everything. I would much rather a more traditional wide receiver, like a DK Metcalf, not a weapon guy like Debo Samuel. Debo Samuel with the right offensive coordinator. Oh my goodness, amazing. But not, Greg Roman, I just feel like he would be trying to do too much. He already tries to do too much with Lamar Jackson. With Devon Duvenay, they don't know what they're doing with him. That's all they do with him is Jet Sweeps. That's it, he's a Jet Sweep King. That's all they do with him. So that's why I would much rather a traditional wide receiver. Like you mentioned AJ Brown, you mentioned DK Metcalf. I would much rather somebody like that rather than a guy who's a baller now. Again, Debo Samuel is nice, nice. But Ravens and they would just overcomplicate everything. Next question came from my guy Quentin. He said, Aang, do you think the Ravens would draft the linebacker in the first round? If so, who do you think would be best? I think Devin Lloyd. And he's somebody that can play literally everywhere. Every linebacker's about Mike, Sam, Will, everything. Do I think they would do it? It could be a sneaky pick, but I don't think they would. Yeah, I don't think they would. They have, they got some options at linebacker now. And obviously with Josh Bynes, he's not the future. With Patrick Queen, I think the Ravens, they wanted him to be the future, but right now he's not their future. Well, he is technically in their future plans, but I don't think he's their long-term answer for the future.  So that's gonna be something. So he, a lot of pressure on Patrick Queen, man. You still got Malik Harrison there. So that's somebody who could possibly step up too and get it. And Ravens, like the thing with them, they'll give their linebackers a shot. They, it don't matter what round you was drafted in, even if you undrafted. If you show you could play, you will get a shot. Guarantee it, it never fails. And that's rounds one through seven. And if you wasn't even drafted, you can get a shot. You show out in training camp and pre-season and all that. Oh, yeah. They gonna find you a spot on the roster if you like that. So they, as far as the first round, I don't think it happens, but I don't even think it needs to.


While with many people starting to tackle their new year's resolutions this week, yoga classes are welcoming new members. Sarah Winkleman takes us to a lakes area yoga association class to see why this option is becoming more popular. It's one way to burn calories and build muscle, all while focusing on breathing. Learn to deep breathe, that's a process that really gradually calms the body. It's a practice that has become increasingly popular due to the stress relief that it provides. As you breathe in, and if you breathe in a little bit deeper, the connection between the diaphragm and the heart is stimulated. In other words, that connection is reminded of its job and its job is to slow the heartbeat down. Breathe into the shoulders, breathe into the kidneys. For those looking to start off 2018 with a clear body and mind, the first step is on the mat. All these poses are designed to support the true shape of the spine. It's really very, very much about true posture. No matter your age. It's maybe much younger and much more flexible and I consider it anti-aging. By practicing a more personal form of exercise. It really is bringing together your body, mind, spirit, you know, so it's not just going out and exercising like going running or anything else. It's really an integrative practice. That students take with them throughout their day. If I can be more centered, then I just am more successful in my work life, my relationships, and feel better overall. And for Rob, who has been a yoga instructor for over 20 years, his classes focus on pain relief and healing. I had some lower back pain and as I started going to class, pain went away, but then I kind of got hooked in on a different angle, the mind, body, spirit connection. But no matter your reason for giving yoga a try, Rob says there's a style for everyone. No one should feel like there isn't some flavor of yoga that they can't partake in. Reporting in Niswa, Sarah Winkleman, Lakeland News. Lake Seria Yoga Association offers a variety of classes in Niswa and Brainerd. If you've enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland Public Television.