Good morning Yeah, that works. So who is excited about the future who wants to learn something good. That's what we're here for So this session is about graphical react redux Apollo and our beloved Rupal. So To shortly introduce us. My name is Michael or people call me schnitzel. I'm the CTO of Amity labs and with me We have Brandon One of our developers from Amity labs Austin Amity labs does a lot of different things one of them is Drupal and recently We also do quite some react, but Actually, if we look a bit at the past Between 2013 when the whole idea of decoupled came up. We were actually a big big opponent of it Why there were a lot of different reasons and our lead developer in Zurich Sebastian or also called fooby. He actually wrote a blog post which you can see Let's fix that. Can you see it now? No? Yes. Okay, so he wrote a blog post about headless Drupal. The cake is a lie and So how he comes we never really implemented any decoupled sites because we saw a lot of issues if you want to read his blog post search for and headless Drupal the cake is lie. Basically, it's about accessibility Performance overheads that decoupled websites create so in October 2016 We had a client in the maze lap Zurich team that asked us We would like to build 12 Websites that look completely different from the front end But they want to use all the same back end Plus they're gonna be most probably 12 different teams that implement the different front ends But again, they still want to use the same Drupal back end So initially you think about okay Well, hmm, and then you maybe go into a phase of like what like why and like what the hell how could we even do that and Yeah, then we started thinking like it has to be possible, but we really thought like we don't just want to create 12 different themes for the same Drupal site because if you looked at the sites They were so vastly different and some of them worked completely different so We had an idea we had an idea to actually go back to the thing that we didn't like the decoupled Let's look at that again. Let's look what happened over the last three years and We did that and this morning Really this morning. I got up at 6 o'clock in the morning. We launched our first Fully decoupled react website with GraphQL Apollo and Redux that talks to a Drupal 8 and back end So what does it do? So we have a Drupal on the back end We have a react Apollo and Redux front end What all of them do we will go a bit deeper into and in between we have a GraphQL API That allows the front end react Apollo Redux talk to the back end in Drupal 8 So how do we feel today? Actually pretty happy It is right now for us the most exciting thing that's happening because we feel it is finally possible To do decoupled websites in a good way and I gonna show you together with Brandon today How we do that? What are the different components? How do they work? And yes, they're going to be quite some demos involved and we really hope that the demo God is Nice to us today that it works So the presentation is going to be about GraphQL What is it? GraphQL in Drupal Then we're going to talk about react as a front end and then we want to see all together working and We're going to do that But let's first go into GraphQL. What is GraphQL? So GraphQL has been introduced by Facebook and they are actually using it in all your mobile apps They're running with GraphQL since 2012 and they publicly Published the schema the idea that the specification behind it in 2015 and since then it has been Very vastly used by a lot of different people So let's look at that Who of you has seen the Star Wars API? Okay, so if you look at the Star Wars API You have an endpoint like here We have people one and we get back we get Luke Skywalker and we get whatever and the colors and we get the films But then we realize hmm like it now if I want to see the films I have to do another request and maybe in there There are all the directors and I want to have the birth date of the directors So let's say I want to show something which shows all the people plus their films with regular rest what that is We will end up in running a lot of different requests or I could go to the person that actually implemented me That back or that API endpoint and ask him Can you instead of like showing the URL or the the next endpoint? Can you just please and inject also the director's name? But then maybe Brandon wants to do something different and so you end up in a lot of different APIs So GraphQL fixes that GraphQL comes per default with a really nice UI that is called GraphQL and Idea is not only that you can write your queries in there You can actually learn how your API works There is no documentation that you have to read in order to understand how to query it So how does it work on the left side? I'm writing my query on the right side I have the output and You're gonna be a big fan of control space and comment space because if I press control space it shows me all The different fields I can request so I can say well, I want to have a person and I want to define the person so I just open and bracket and say okay person ID is one and I press comment enter and it gives me already an ID back while that ID is maybe not the cool stuff So I'm saying hmm. What can I get of that person? So it now shows me all the fields inside that person and I can say name and I press enter and I have school looks guy walker Not very fancy so far Everything we can do via REST API But now let's look at that So in there, I'm not only having fields, but I'm also having relationships to other objects there is a film connection relationship so I Can add film collect and add and now it auto completes me like you have to add some etches and some notes But GraphiQL does it automatically and I can see now if I control space here Now it shows me everything that is possible out of films and I can show the title or I can say show me the director and Now in here on the right side I have the person looks guy walker with their films when they the title and the director So the idea behind GraphiQL is that you're not just consuming API endpoints You are actually telling the API what you want and How it should be outputted if for example my My app and Expects the director to be let's say Something else I can just add Another name for that and now I'm getting back blah instead of the director So I can define to the endpoint what I really want and the best is it I can do multiple queries At the same time So right now I'm requesting the person and I'm crashing the films in there But I can just go down here and I can do another one and I can say By the way, and I would like to have all species as well So and of these species, please show me the language they're talking So on top I still have my request But at the bottom at the same time with one single API request I'm also getting all the species with all their languages So basically the idea is you give the power To the person that actually needs the data you're just exposing an API and The person that uses it can define what they need what they use how they use it So let's go back here. So GraphQL gives you exactly what you need You can run multiple resources at once you can query multiple things at once The graph and what I showed you it actually goes much further you have fragments You can inject variables that you can reuse. There's a lot of other things and The very interesting part is any schema is possible So all the fields we requested now You the person that writes the GraphQL API can define them completely your own You can create everything what you want there The next interesting part is we can not only request stuff. We can also create stuff We can change stuff you could use we have full mutation support and They were the very interesting part of it as well There is no version of a GraphQL API Because if you're adding another field You just add it and the person that is going to use it with their API can just request it and GraphQL is Based on a very strongly typed System if we actually go here and click on the right side on the documentations we can see all the different Queries we have and if we go into a person we can see that's typed person and we have different types But we also have like the regular types, but we also have a planets type So Who can tell me a CMS that is strongly typed? Drupal Drupal 8 the entity API is fully typed You have very strong types. You know exactly what was is so GraphQL Makes a lot of sense to run inside Drupal because we already do these things We already have relationships between objects. We call them entity references. You already have object with fields We see them again in GraphQL. So We said let's combine them. Let's try it and it works so we've built or the community built we were part of it a Drupal GraphQL module that gives you full GraphQL support and Because I said I want to actually see how somebody does I told Brandon roughly 48 hours ago or 24 hours ago You should try it and he did and he will show us now what he learned over using GraphQL in the roughly last 24 hours Thank you. So I Well, yeah, he gave me we have a talk to do you need to do some things So I've been using it for less than 24 hours. These are all the mistakes. I made aka New tips for you guys if you are interested in the stuff and you want to turn around and start using GraphQL in the next Hour or so this should help you out First of all the GraphQL module for Drupal. You should use Composer to install it Both branches require External PHP libraries. So just use Composer save yourself from trouble The second thing is which version should you use? There's a 2x branch and a 3x branch If you like all of the things that are said on the projects description page Use 2x it includes all of the default schema that will let you get all of the data out of Drupal and query all that stuff But it's the old version So if you want to experiment with GraphQL with a Drupal site that has data already and kind of see What queries can I run to get the data? I want the 2x branch is the best for that However, if you want to start building this for a production site or you think this is going to go live I would suggest using the 3x branch. It's the new stuff. It's been Re-architected has a much better object oriented style much easier to extend your own schema and Coming in May it will have full Drupal schema support just like the 2x branch So if you waited just just a little bit longer, you'll have everything that 2x has but it's a much better developer experience much more maintainable So usage basics This may seem obvious at first, but you should learn GraphQL first before you start using GraphQL Drupal if you think that you're going to install GraphQL and That gives you everything you need to know to start writing queries. That's not exactly correct, but the Syntax is simple. The concepts are simple. Just go to the graphql.org Slash learn you'll get all the basic concepts and that will give you all the necessary information you need to then Start using the GraphQL UI which Michael showed you in the demo the good news is this comes with both versions of the GraphQL module So if you install GraphQL module in Drupal, you will get the graphical user interface and with your basic understanding of queries You can use the autocomplete That the GraphQL module gives you to start autocompleting all of your Drupal stuff And that is a much better way to learn exactly how GraphQL module in Drupal works and what schema it provides So I have some examples if you use the 2x branch. This is the schema that The GraphQL module provides So one example is you can run node query type searches So on the left I'm saying give me all nodes with the title test article Return the node ID the status the rendered output and the user ID and on the right hand side It gives me all that information and that's just built in you install the module you go to GraphQL slash explore and You get your data and you can start querying that immediately for the 3x branch, it's much less out of the box friendly the Only things that are really easy to do is you can query an entity by ID and Then you can get the ID back and That's it So if you want more data than that from the 3x branch, you do have to actually write some code Fortunately like I said, it's being re-architected much better object-oriented programming style. It's actually Not that bad. There's a class for your schema There's a class for your fields and there's a class for your types You write a little bit of glue code. You extend all the base classes from GraphQL And all your autocomplete stuff starts working in the graphical and everything works well So my advice is in the 3x branch for a GraphQL module. There is a example Module it has if you also enable that you will get a lot more data out of your Drupal database by default, but it like replaces everything So you wouldn't want to use that example module in production You would just use it as an example for writing your own module. There's also a module in The deep Drupal decoupled app which Michael will demo a little bit later Called GraphQL underscore demo. It also has a lot more code to kind of tell you or give you an example Of how you should write your own stuff So for the 3x branch It's much nicer that you get this kind of base schema that the GraphQL module gives you But in your custom module you can extend the schema with anything you want So that gives you you can start writing your own custom GraphQL modules and stuff So I started writing the GraphQL back in for the Texas Camp website Which is built in React and we already had a Drupal site with Back in data in it. So this is the structure. It kind of looks like you first define the Root query field which here is sectioned by name That will return a type Which I have the section type and on the section type you define what fields are available And I said I want to return a body an image and a title so it's really just three classes a little schema glue and You've got data being returned out of your GraphQL API and So in just a couple hours After figuring out a few things which hopefully you now don't have to also I had a totally functioning GraphQL app In like 30 minutes I plugged in the Apollo stuff with react and I had react querying and getting data from Drupal And it's all up and running and I have a fully functional Drupal GraphQL and react app It's very easy Okay, you might wonder like okay. It's it looks or it sounds like not fully done Yeah things while we actually use it in production So the sites that you might be already queried is running that behind and and yes We will write a default schema for it So the idea is that when you download the GraphQL module there is a schema in there that you can enable It's going to be opinionated by us So based on like how the routes are called and things like that That's based on that if you don't like that or if you need a subset of it You can take it and you can disable parts of it But the idea is really that you can install a GraphQL module on the Drupal site and everything can be requested and I'm talking about everything. We're not only talking about config content entities We're also talking about config entities So everything that is within Drupal that is somehow accessible we will out we will be able to Do through GraphQL another thing is also we have full Drupal cache and cash tax support So everything that you load even though you go very deeply is using itself the Drupal caching in The cache interface with the cash tax. So if you if you make GraphQL requests with the Drupal module You see a huge amount of cash tax in there You can use them and stuff like that and we're also already supporting mutations So you can create entities via GraphQL. So basically you can do whatever you want directly and via GraphQL So let's now move from the back end and the GraphQL in between Let's move to the front end as I mentioned we're using react Apollo and Redux and So react is probably the thing that you already know That's the front-end library again by Facebook and that has is quite widely used right now Plus there is Apollo Apollo is a project of the GraphQL community and Apollo basically provides a very broad set of Liar tools that you can use GraphQL in almost every language. So there is a graph. There's a GraphQL for React, there's a GraphQL just for regular JavaScript, there's a GraphQL for Python for PHP things like that. So how do I communicate with a GraphQL endpoint? There's a GraphQL server implementation as well if you want to write your own GraphQL and all these things go to the Apollo and Website you will see there and we are using the GraphQL client for react that react can actually talk to the Drupal and Then for the people that already have used react Apollo uses Redux Redux is a state container which allows you to have different states of your react app So you can jump back and forward and you know exactly what happened. It makes it much easier for debugging and What exactly happens but also and for performance and things So if we go back to 2013 2016, I said Amazel apps was a big opponent of React or decoupled in general and one of the big problems that we saw was SEO and accessibility Why? Well, if you have a decoupled app and If you had one in the past all that was sent to the browser was an HTML structure with ten lines of code With maybe one JavaScript file in there that then loaded all the stuff And now please show that to a crawler that cannot run JavaScript Or show that to a screen reader that cannot show JavaScript run JavaScript So what happens is all these things cannot load it. So you had problems in SEO yet huge problem with accessibility Comes in isomorphic JavaScript So the idea behind isomorphic is your browser requests the first page and that request goes to a node.js server and that node.js server has the code That you run in the browser also running locally So the server pre-renders everything for you And inside the node.js So it makes like API requests to the Drupal and stuff like that and then it sends everything Renders the whole HTML with all the CSS like like it would not be a JavaScript app It sends it to the browser the browser displays it So that means a Crawler or something that cannot run JavaScript can display it. No problem. There's no JavaScript Then there is a tiny little piece of JavaScript in that response in that HTML and what happens the browser will execute that JavaScript and the JavaScript will slowly take over the whole site So every link gets like gets replaced by react links and things like that So it morphs into a full react app and After that every additional requests go to the API directly You're not talking to the node server anymore and the react app queries GraphQL directly and renders that Sounds complicated. It's actually not but let's look at it So we go to our website that we just launched today and it's www.meo.ch It's about food and it's German. Sorry, and but it will be translated to French and soon And but we also will have other languages. So and if I visit the website and the very first time and Actually, let me disable JavaScript because that's the best. So I'm disabling JavaScript in my browser right now And I'm refreshing the page and you can see that the whole page is loaded So everything is there that you would expect from a regular website And I can also click these things and it will load me another URL Still with JavaScript completely disabled. So what actually happens is on www.meo.ch is the node js server running and every request that goes in is Prerendered and sent back to the browser Now I enable JavaScript again and what we can actually see if we go to the network tab and Visit the site The page is loaded already and we do some additional GraphQL requests already to make sure that that is but we feel we go If I now let's say click on one of the articles and we look here in GraphQL It only makes two GraphQL requests The first one is actually a course check because we have different domains So do you not have to worry about that but the actual request happens in here? So we have a GraphQL request that tells the back end what we actually want and in the front end We have all the things the whole object everything given react gets that and will Render that and if I click now around if I go back to the star page if I go back in there You can see how fast it is and the reason is GraphQL or the react is actually caching all the requests So redux and comes into play and helps us caching all these things. So the site is Superfast after you have it done once on your and on your site And you can see they're not even any more graphical requests anymore So if I go if I'm on the side and go back to the star page There's no single graphical request because the react app already has that cash and will use it So the first request is completely non-htm and no JavaScript JavaScript will render will morph into a full react app and after that you have one if your browser does not support JavaScript it's never executed and the whole behavior is still the same so the site can be crawled It's accessibility wise. It can be read by screen readers and stuff like that So that was for us the first step that we really said, okay Now it gets interesting now we feel we can do decoupled apps because the problems of SEO and accessibility are addressed the next problem though that a lot of people said and Quite frankly correct was performance if you use a regular REST API to load stuff You will have a lot of different requests to the back end if we look at that site We have a menu with a with a flyout menu with a half a header. We have multiple Articles we have a footer down here. We have inject So usually these things are all separate end points and you would request them one by one Via REST so we could end up in having 10 this 10 to 15 different requests which takes very long as we learned though With GraphQL we can do multiple requests in a single one So react Apollo and Redux together keep an internal cache of everything that already has been loaded and Because GraphQL can do can request multiple resources in one single request Together they will figure out what do I still need and what do I not need? So let's look at that So we see here on the website We have a footer here and the footer is actually injected by Drupal So the the react has no idea what exactly is in that footer in there And we have another site that or another page that has a map. So the map allows you to like filter you can Sorry the map and you can filter for it You can you can scroll through it one of the things we will see if now my side loads The map does not have a footer. So right now. I'm visiting the whole site without never loading the footer and Because there is none like that design decides there is no footer there So if we now look at the inspector and see the network tab and we filter for GraphQL again Now I go to the star page The star page has a footer. So what happens and the star page obviously has also a lot of code about the star page itself So react will realize that the footer is missing and will also load the footer It will not though create a separate request for the footer It will request two resources at once once the star page and the footer together So I click here and you can see GraphQL loaded things and now we see in here We actually have within one GraphQL request. We have two replies one of them is the star page The other one is the footer here. So we see the footer primary menu. We see all the links in there And where do they link things like that all things given by Drupal and now let's say I'm visiting one of these articles and Now the footer is already loaded So I click on that and I can see the GraphQL response for that one does not have the footer anymore in there It's just some social feed stuff So that gives me the opportunity to really only load the things that I really need and if I need a lot of stuff I can put all of them in one single request Send them over Drupal can't generate all that stuff and send it back and you have only one single request that really happens So that was for us That's really took the decision that we said, okay We want to try it or we want to go forward We want to use it because the major two things as your next ability plus performance were fixed for us Interestingly after we started to implement and do some stuff we realized. Hey, we need to run node.js now And so you net not only like put some JavaScript files in Drupal and let Travis and let Drupal Output that you actually need a node server running and In your hosting environment. So how did we did that? Like that so the top part The top part is Drupal. It's as I said, there are multiple Drupal There are multiple frontends and there's one single Drupal site in there the Drupal itself And there is a GraphQL Drupal module in there So that's one and that's going to be the same at the bottom these orange things That's each of the sites as I mentioned they are completely separate So they are completely separate react apps that all talk by the same GraphQL API to the same Drupal and Of course, they share some libraries and we do some via npm or yarn We share libraries that we've built but at the end they're all separate So what happens is the browser at the front will make a single request to The node and as we learned before there and the node has to render that because the browser never visited the site So the browser makes a request and ends up on our docker hosting stack So the node.js is all hosted in docker and in there There is a node.js express server with the react everything running So that's the isomorphic part and what that thing will do it will actually make a GraphQL request to the Drupal So that's the pre-rendering part and after that is pre-rendered it sent back to the browser You can see in there. We have multiple CDNs and all these requests. They're all cached So and if the actual the star page is cached is also cached in a CDN So if somebody already visited that you're not even landing here You go directly to the CDN in the sense you the whole page back already cached and then the isomorphic happens and We are also caching the GraphQL requests because the GraphQL requests are very similar They have one URL and a lot of data in them. So we cached them as well There's a CDN in there as well that caches it and now the fun part comes if The browser can execute JavaScript and does isomorphic things and isomorphs itself in a full react and It actually makes now GraphQL requests directly to the Drupal the node part is completely Ignored from that point on because it's not necessary or it's runs in your browser now And but it goes still through the same CDN requests that that the that the node itself also goes through Now you might say well, that's a lot of CDN Yes, it is and and actually very interesting part is we have multiple cache layers in there So we're using cache tags to invalidate and so the Drupal here sends Cache tags back through GraphQL requests and the node itself will take these cache tags Add some more to them and send it back to the browser So the CDN that is in between will also cache them and if now like a node changes Drupal actually connects to all these CDNs and tells them hey Please remove that cache tag and remove that cache tag and at the same time all of the requests are fully Invalidated and the next person that goes in will request it The images itself they're completely bypassed by node and they're generated by Drupal They're cached as well. No big deal there and and if we now actually have multiple sites So let's say that is our Ugo Mio and we will launch 11 orders And we will just create just a front end will be replicated and so the front end can look completely different And then we actually do the same fun here as well If you have more questions about that and if you want to actually see I could talk two hours about that come and see me later And I can show you how exactly it works and But with that we have a really fast website that is completely cached and allows us to run node and Drupal in parallel And without needing to worry like I'm clearing too much things and stuff like that Okay, so now we only talked about GraphQL and we talked about react and Apollo and Redux and we talked about Drupal Wouldn't be cool to actually see everything running together So everything you need you will find on that github URL. I will tweet it later on Fubi he is the guy that actually wrote the blog post that the cake is a lie and he is one of our lead developers and he and Published that whole app and if you actually want to look at that thingy Let's go there So it is a full Drupal with GraphQL in there and it's also a full react and Redux and Apollo app. So we see here There is a back end and the front end and inside the front end We actually have in package chasen you can see that we are loading react react Apollo We are adding Redux and all these things And there is a read me that explained to you what to do you clone it you run composer install your run Yarn install or if you still want to use npm that also works And then the whole thing is actually hosted on the Maze EIO local development environment So you start the Docker containers you install the site and you enable the GraphQL module And that's here is the GraphQL demo module that Brandon before talked about that does some of the things that are currently Missing in the GraphQL. So if you want to see how that works go in there and then we run our front end So let's do that. I've already done it and so we're a bit faster here. So that is my Decobbled back end running on the Maze EIO Docker environment and and in here I created an article that is called hello Drupal con we can see it's node one and in there I've written hello in there and you can see that's a regular Drupal. There's nothing else. That's just and the whole thing and now if I Open the front end. So the front end is running inside the node.js express server And that is listening to port 3000. I started that with just yarn start So that automatically boots everything and if I now go to that URL local of 3000 node slash one So the react will actually see that the URL is a path that tells me which nodes should be loaded And if I go here, I can see it tells me hello Drupal con It gives me back. Hello. And if we actually look at the code here, we can see there's no server side rendering enabled right now So it is completely and that's the ten lines of code I talked before about and so it just sends you back the react the whole react is booted the react actually and Then queries Drupal We're using Apollo Apollo has an awesome Chrome extension that you can see the actual queries so I can click on there and I can see that It requests Drupal with a variable node slash one and here is the whole query string So this already does some fragments and it's a bit extended things and of GraphQL what is possible, but you can see that and all these requests and There is actually also a GraphQL inside of that thing so I can click here and I can see The request that happens to the GraphQL of Drupal and also the return and that is just rendered inside react Regular react components and nothing special there and if I now let's say add another Content hello react with Drupal Hello, and I publish that I go back to my notes to and I Have that as well and because it's fun and because we usually like to have node overviews There is also an overview here if I refresh that here I can see there is an article overview that renders me the article I can click on it if we want to look at that query here. We can see that it's an article overview query and It it does also GraphQL So you can take that thing download it and start it and you can play around you can learn react in it You can learn Apollo in it. You can learn Drupal in it. You can learn GraphQL in it. It's really should be here for anybody that is interested in using it to get a very fast start Well, we already did that So overall if we look back of what we have done in the last six months It was a very high initial investment and to be honest There were also multiple doubts in bit while we were on it if it was the right decision because we had to build a GraphQL module. We had to we had to learn everything about react We had to do a lot of different things But we are as a company were committed to open source everything that we've done for that So you will find things on foobies and Get up you will find and stuff on ours. We will buy Brock post about it We're gonna continue also talk about we really believe that is one possible future how in the future Drupal can work with decoupled We don't say that every Drupal side needs to be decoupled But there are some cases where it makes a lot of sense and right now It's very complicated to do that because you have to learn a lot of things That's why we have like these decoupled and starting and packages for you to start and play around with it And the developers are obviously very happy because they can now and Use decoupled front ends the client is very happy because he's not gonna pay a lot of money for just a lot of different Drupal sites He did we just have to implement the front ends and overall I feel we're very excited about the future So that's it we have more than 50 minutes time for questions. So if you have some please hit us So two questions number one is why did you choose? Apollo over relay for instance and number two is that in the with the future Be such that you can take away that no JS server and it's possible to just have not have that and just you know Okay, so we actually initially implemented it with relay the first and the first Five months after six months. We use relay and And then just Apollo basically took the whole graph kill parting storm and Right now. It's just the best tool to use graph kill almost everywhere, especially in react and There were it's just much bigger support like the The Apollo dev tools and things like that. So that we just like that much more also Apollo actually the Multiple requests in once is something that you don't have to worry about So you just make multiple end point requests inside of react and Apollo will realize that you need multiple resources Smoosh them all together in one graph kill and sends it out and comes back and it will also take them apart again So there's nothing that you have to worry about especially if you need a lot of stuff and in relay It's just not that easy. So we actually took the time to refactor the whole thing into Apollo The second question you had about the no chair stuff do I still need a no chairs and server if you want to have server side Rendering. Yes, there is probably not going to be another solution than actually running no chairs on there If you don't have a no chair server You have two possibilities either you hope you find a hosting company that does or you can also just all the JavaScript files You can bundle them or you can build them in JavaScript and host them on the Drupal Like they're at the end. They're just JavaScript the thing that we will lose then is all the isomorphic and the server side rendering So and you have to think about SEO and and accessibility again But from a technical point of view It's not necessary for any of the react stuff to run that actually if you run it on local development Most of the server side rendering is anybody disabled because you want to have all the deaf tools in your browser So about Cash in validation in the browser. So for example, what happens if your footer changes and you're still browsing the site as a user Of course you have to refresh the page, but this is different Yes, so per default because it's cached It means yeah, if somebody changes the footer and you go to just click on the star page and it goes back You're not there and well what we basically gonna do is we gonna It's not really decided yet, but the idea is to have some kind of validation check So that when you load the page or it's already there that GraphQL makes like a request back to the Drupal and asks like did anything change and if yes It will only request what exactly has changed another way would also be to actually have a web socket open and Drupal pushes it directly in there So like you could have the star page open and there's like breaking news I'm not sure if a restaurant website has breaking news But that can be this possible and then it's like it's ultimately injected without you do anything and that will definitely something We will implement for the first option. You would basically request the footer every time only Wouldn't return every time That's a possibility. Yes, and or you just actually ask Drupal back What has changed and then request again, but yeah, there was a lot of different architectural ways how we could do that. Yes I'm sorry if I missed this because I joined late, but you were speaking about graphql and the ability to Get like requests with several things at the same time within the same request So correct you are streaming back the response. Is it actually streamed? No, it's a regular gets request. Okay, so if I'm if I'm Asking for some personalized information that takes time to render it basically will be sitting there until all Objects are rendered and then send back. It's not like with big pipe. You get streaming and see you yes, correct So what will happen inside of Drupal the caching the Drupal internal caching will Will not load everything so an actual graphql request is quite fast, but it's correct If you have let's say a request or if you have a resource in there, which Drupal takes let's say three seconds to load and You could if the whole graphql request takes three seconds But we already talked about or we already looked at it and technically will be possible to say that like you just send back what you already have from Drupal and tell And do things like big pipe to just have to have an actual stream and just send additional stuff So they're already implementations out there where graphql could be used through something like big pipe or so So it's coming soon I'm not sure about the soon, but it's coming. Okay. Thank you. Good morning.  I guess why did you pick Drupal as the back-end? implementation for the site and What were the strengths and weaknesses of Drupal? And if you could speak at a very high level like how you're gonna implement the multilingual component So the decision for Drupal a good question, and I don't know and So one of the big things that we needed as Drupal Drupal has to play Like a content distribution hub because that is a media company and so they actually have their own and tools for writing content and stuff like that so Drupal we have a lot of different migrations inside of Drupal to Like for example, one of the site we're gonna launch next and is a type of three website And so we have to migrate that constantly and incrementally over because while we are developing and they're editing the site So so we're using the migrate framework for Drupal Very heavy and extensively and so that was one of the things that we needed that no other CMS right now has that Really strong migration stuff. We're also using Search API to index all the content and Currently in solar maybe future in elastic search that is also just in Drupal You just click it together and it's there and and then the Drupal Because we are running multiple sites. We are using the groups module to assign content to different groups That's also already there. So it was just from a Part that Drupal really brought what it brought already to the table. Yes, the were thinking is about just using symphony for example But at the end Drupal made a lot of sense because like yeah things like migrate search API. It's all already there and The second question I forgot now Multilingual well, it's Like you would expect it and so in the in the request to the GraphQL there is just a path or a Language thick prefix in there or a language code and based on that Drupal loads the multilingual stuff and whenever you call an entity Drupal does it thing with the entity API in multilingual and just returns back and Yeah, and you will see it actually in URL in the header things like that. So nothing special Yeah, thanks for sharing all of this. It's a pretty fascinating I was wondering if you could talk a bit more about the hosting component like everything was I was like, yeah Yeah, that sounds awesome And then it's like we've got CDNs everywhere like how much of that are established patterns that are you know well documented that you can just like spin up a container with all those needs or hosting environments that sort of provide those things out of the box and how much of that is stuff that you had to configure yourself like on a AWS or something like that So we are just using the regular and easy IO stuff So running like a Drupal in AWS and running Docker containers that are actually given by a Docker file So each of the frontends have their own Docker file that defines what should be built and When this is pushed into the git repository We have our web book handlers that look at different sites and they will building they are building the Docker images locally They test them and that is pushed then to an open shift So the whole infrastructure runs an open shift on AWS and the open shift will then deploy the Docker containers and stuff like that So from a developer point of view Yeah, they only have to write the git repositories and or the code Do some Docker files in their push it and then our platform as a service will take over all of that and In terms of the CDN part I've not really seen what we're doing right now anywhere else except maybe the Facebook itself and It's definitely very complex in terms of That you have like in key CDN what we're using right now We're having like each website has like four to five different URLs Because the API is different cash than the frontend and stuff like that and We have an extensive documentation that explains everybody how it works We have graphs but there is not like just a key turn solution that I could tell you like go there But at the end it's all get requests We actually had a problem in the beginning that we had post requests for GraphQL because the problem is that at one point The requests get so big that they're too big for an HTTP head or like a parameter So you have to send them by a post None of the key see none of the CDNs out there can can Cash post except with what we fastly we were possible to do that. So now we move switch to get requests So that's no problem anymore, but it's definitely an Yeah, a customized solution I would say but again, it's not necessary and It's really because we know that we're gonna build a platform that runs 12 different websites with millions of requests per day So we're we're building or we're investing in that right now. Hey, great doc. It's it's good that you're sharing this I've worked at a major league soccer and we we use Drupal react and GraphQL Yes, not all together though, right? Okay, the node and the the Drupal parts separate So my question to you is like we're investigating, you know possible decoupled approach so can you talk a little bit about how the templating layout and overall Editorial experience is affected by the decoupled approach Where where are those responsibilities held in your application? I'm guessing it's on the react node. Yes, and So you're asking about how does an editor edit content sure or like do lay out in a home page or move You know blocks around and things like that. So currently it's just a plain Drupal old school Ottoman back-end and there is no Editorial GraphQL react system yet The reason for it is that most of the content is actually not written on the Drupal side because it comes from an editorial Workflow tool and it's just pushed or migrated via Drupal and So the actual part on the Drupal side is only that there are Editors in there that build these landing pages So they take a lot of different stuff and pull them together and we're using paragraphs for it so a lot of the things are like she paragraphs that you just like reference existing notes or your reference paragraphs So we have nested paragraphs that you can create these layouts and From a usability point of view, I would not say that we're very proud of how it works right now and it's just something that we said it's the front-end first and And We might actually also implement the GraphQL or a react back-end and but right now it's just plain Drupal cool Thanks. No problem. Hey, thanks for the talk. I'm working on the project with similar architecture and I'm wondering how do you exactly proxy request from browser to Drupal How do we proxy? Yeah, I saw in the architecture diagram you you bypass node GS. Yes We use different URLs or different Domains, so and if we go here that www.go.meo is the node so everything that goes there The CDN forwards that to the node site and all the GraphQL requests Let's create one well It's cash so the GraphQL actually goes to api.go.meo.ch and That's another key scene in front of it But the upstream for that CDN is then the Drupal. So that's how we bypass the Drupal we thought about having Like a system that the CDN has like some routes and looks like at the paths and then has different upstreams It's unfortunately not possible in in some of the CDN solutions So we just said okay, let's just use different API API and points and at the end We're very happy that we did that because now I can look I can develop locally And I can just point my local react to api.go.meo.ch and I will get The same response on the production side, but I can test local stuff So and yeah, so we basically just have for all the different Environments we have different the API domain and points Thank you so much on this. Thank you for sharing all the code a couple of questions To provision all these responses the JSON. Did you have to write lots of back-end Drupal Custom modules, or you were just using the JSON API module or something like that. We're using the GraphQL module to provision all the JSON What is provision JSON? Responses the JSON responses. Yes, that's the GraphQL module that does it.  We're using react with Apollo and Redux This one versus for example, can you speak a bit louder? I'm sorry Like react versus Angular versus You know ember those different libraries. Yes, so when would you make decision to choose one over the other? Oh The decision came just from the people that were involved in the project already had experience in react and we knew that Because we decided to use GraphQL for the Drupal part and at the time when we started the Implementation of react was the best with GraphQL together So that decision came like from there to say, okay, we want to use We want to use something that is very good Working with GraphQL and that's ended up being react and overall we just like the approach of the component-based Library of react. So that's the decision that we took there Hello. Hello. This is super cool. I'm wondering this might not have to do only with Reactor Redux, but these sites do they have stuff like commons or people that can log in? How do you handle all that? Yes? So We have two things right now that are a bit I would say complicated and so one of them is a comment functionality There's actually a whole forum for the next site. We're launching and that's completely done by GraphQL and and all implemented in In the react in the front end so unfortunately all the Drupal stuff that you're getting based on comments and all That thing we're throwing that completely away and we cannot use it That's one of the part of the high investments that we're talking about that's like everything that you usually have in the Drupal when you get into Like dynamic stuff you have to re-implement in In react, but we're using GraphQL mutations to create a comment and to display it and all that stuff and The other thing we're also doing is We want to do web forms so we want to have web forms on Drupal 8 on the back end that an editor can create their own web forms And that's why we need to expose config entities to the react So the react will have the GraphQL endpoint to the config entities of a web form look at the fields and based on the fields load they are mapped to react components and Then we'll do that and then the the submit handler of the form Then it actually goes back to GraphQL to the mutation to create a new web form submission. So That's the whole idea right now And we're working on it and it already looks like it But yeah, there is quite some things you have to do on the front end and but again We are really interested in in saying okay Like we maybe have a react component for Drupal web forms that we open source and then everybody can use it Thank you I've seen several GraphQL libraries Implementing complexity analysis on the queries so they can so no one can take your site down with a very complex GraphQL query that loads, I know 100,000 nodes at the same time is the GraphQL module for Drupal doing that as well So if you actually look at the query that GraphQL does here It's only a couple of only a couple of charts. So what we do there is a special thing in here that is called versions and There is another one that says ID and There is a path so one of the problems Yes, is that if you have the GraphQL API completely exposed to anybody and you don't like validate it Yes, you can take down a site with one single GraphQL request because you're just like you're loading it like let's say like If we go back to the Lou Skywalker like if you load the directors of a movie of the directors of a movie of the directors of a movie You will have a memory overflow at one point So what we're actually doing is and that's also done by Facebook. So we took their idea During the build process of the frontend There are scripts in there that look at all possible GraphQL requests that your react app can do and they hash them So instead and that hash table is sent to Drupal Via an endpoint So now and they saved inside of Drupal So now if the GraphQL or the react needs to do a request It actually does not tell Drupal which exactly query you want It just tells him give me the hash XYC because we already talked about that before So that's what the version is here and the ID and then Drupal looks at that sees which of the GraphQL requests does that actually refer to and Loads the whole thing in its own cache and then runs through the whole stuff. Oh, that's pretty amazing. Yeah so That gives you two advantages first of all you can use get requests again because it's just a couple of lines Plus it makes your GraphQL secure because all you can do is exactly that the request that you and Predefined before and the API itself is not fully open And that's a bit crazy and I would like to have something easier But right now that's the only way and we also see the other ones doing it and it works I think it's all fully automated. Okay, so we have like I think we can do you left and then we have to run out Well, yeah, one wonderful talk. Thank you and I guess I was just wanted to clarify our Y'all working on the GraphQL module Are y'all working on? Fubis yes repository. Yes, and that's where we should look in the future as As the module develops in May and three point X matures. Yes, so the development happens on here on Fubi and GraphQL something Where is it GraphQL Drupal? That's the module that is currently happening. That's mirror to Drupal.org and De-coupled app if you want to work on that and send us podcasts, please do so as well. Okay. Thanks Okay, I'm getting caked out. Sorry a quick one. Thank you for much for a presentation Thank you, Amanda Good question Not here, not here, but if you go down to the Amidst labs booth, you will find a car there Yes, and I also want to go Just like to here, but yeah, is this your dangle? What is your session about it's about Solving the same problem


Aphobia is an excessive fear of a seemingly harmless thing and those affected go to great lengths to avoid certain situations. If a situation cannot be avoided, they experience severe distress, panic attacks or even fainting. Phobias are less prevalent among children and older people and more common among teenagers and especially girls. They run in families or can be the result of a traumatic experience early in life. Phobias can be categorized into three types. A social phobia is when we fear others, especially their judgment. Agoraphobia is the fear of a situation we perceive to be unsafe or difficult to escape. Specific phobias include fears of certain things or situations, such as heights or injuries and seeing blood. Some phobias are especially complicated, such as the famous case of the button boy. It was a normal day at kindergarten when a six-year-old boy ran out of buttons to paste on his poster board and was asked to come to the front of the class to get some more. When he reached for the bowl, his hand slipped and all the buttons fell on him. For the boy, this was a deeply traumatic event. Not long after, he didn't want to dress himself anymore. He began to have difficulty concentrating in class due to an excessive preoccupation with not touching his school uniform and eventually he started avoiding people just to stay away from their buttons. Life became so difficult that four years after the incident, the boy and his mother decided to seek professional help. The psychiatrists Lissette Savedra and Wendy Silverman, who studied the case, were able to rule out obsessive-compulsive disorder, OCD, which is often confused with a phobia and concluded that the boy must have developed a specific phobia for buttons. To treat the boy, the doctors invited the mother and son to be part of a research project. To assess the child's progress throughout the treatment, they used a feelings thermometer, allowing the boy to grade each interaction from one, feeling happy, to nine, feeling angry. The big brass jeans buttons hardly bothered the boy, but small, clear plastic ones horrified him. After the boy's feelings were better understood, the doctors selected a treatment method. First, they tried behavioral exposure therapy, a form of classical conditioning. Whenever the boy touched a button successfully, he was rewarded. They then repeated the process in various forms. After four sessions, the boy completed all tasks and he was able to interact with way more buttons than before. However, he felt more distressed about buttons than ever. When the doctors talked to the boy again, he revealed that he found buttons disgusting and that they emitted a bad smell. And so they wondered, did the exposure therapy reduce his fear but increase his feeling of disgust? Next, they tried imagery exposure therapy. For the seven sessions that followed, the boy was prompted to just visualize buttons falling on him and imagine how they looked, felt and smelled. This time, the boy's self-reported levels of distress reduced dramatically. Even 12 months after the therapy, the boy reported minimal fear of buttons. So, why did the first treatment fail while the second one worked? The first treatment changed the mind's expectations of what harmless buttons may trigger, classical conditioning. The second therapy changed the mind's evaluation of buttons themselves, that they aren't actually that disgusting. In technical terms, expectancy learning failed, but evaluative learning succeeded. But treatment of a phobia may take many forms. Social and agoraphobia are often treated with counseling or even medication. Specific phobias are often treated by systematic desensitization, today often with the help of virtual reality. Humor is another serious therapy that often works. Activities that elicit humor with the feared situation can help reduce disgust, anxiety or whatever other uncovered feelings may be the cause of our phobia. What's your experience with phobia? Have you ever had one that you were able to overcome? And if so, how did you do it? Share your thoughts in the comments below. This and all other Sprouts videos are licensed under Creative Commons. That means teachers from all around the world can use them in classrooms, online courses or to start projects, and today, thousands already do. To learn how it works and download this video without ads or background music, check out our website or read the description below. If you want to support our mission and help change education, visit our Patreon. That's patreon.com slash sprouts.


Primate of the Church of Nigeria, Anglican Communion Reverend Henry Undukuba has urged all election petition tribunals not to disappoint God or man. Undukuba made a call at the ongoing 12th Synod of the Diocese of Abuja. We urge the government to address the infrastructural deficit of this nation. There is need for them to complete some strategic industries such as the steel-rolling mill at Ajokuta, put into function and production our refineries and also improve on power generation. It's extremely important as we proceed that the court processes now before the tribunals are handled with very sincere justice. There must not be manipulation. The judges should do their very best to ensure not just judgment, but justice. Everyone observes that after the elections there is a resurgence, a resurgence of killings and so on and so forth. So we don't know why this is so. So we are praying that it is not a signal about what is going on. Hello, hope you enjoyed the news. Please do subscribe to our YouTube channel and don't forget to hit the notification button so you get notified about fresh news updates.


Let's do a wrap. I just want to say it's been a great event. I really enjoyed working with you on this one, and I really appreciate HP for sponsoring us, and you've been watching their ads roll on our cube. This has been our first cube, our flagship telecaster. We've actually had advertising supported, so we really appreciate HP, and you'll see those cool ads on there in the rerun. That's a good model for the cube. I think congratulations on evolving it. We're going to see it again at Strada coming up. Next big event is Strada in February, and we're going to have a big year of cube events. So the cube's booking up fast, so if you're interested in the second half of the year, we get the first half booking up through, what do we book through April now? We've got June. Yeah, April. We're booking up fast. And maybe even May, yeah, so. May, yeah, so we're going to be out and about. You'll see a lot more cube events, not more editorial events like Node Summit. We did cover Node.js as part of the DevOps angle, and Node Summit was great. Exactly the kind of cubes we want to do. We're going to do meetups. We're going to do some entrepreneurial events at Silicon Valley, the Mall Borough, Boston, Massachusetts branch. We'll basically do a lot of interviews on the East Coast. If you're on the East Coast, contact the Wikibon.org. Yeah, stop in and see us for sure. Yeah, and we might have some big announcements coming up in the next quarter at siliconangle.com and wikibon.org. I know I can tell you that we might have an opening going on the East Coast, so we hear more about that. Silicon and Angle's going to have an office on the East Coast, so we're excited. Great event, and that's a wrap from HP's Gen 8. Smarter technology, everyone's excited. Great reviews from the analysts. We like it. If I may, so check out siliconangle.tv. That's where all these videos live on reruns. Check out siliconangle.com. Check out services angle, DevOps angle. We've got tons of blogs in this event, and also check out the Wikibon wiki. Jeff Kelly will be putting up what we call now the shock and awe page. It's all these videos in one place. We'll look for that under if you go to wikibon and check out Project Voyager. It's not up yet, because Jeff is out here running around at the TDWI conference, but that'll be up by tomorrow. So go there, ask a question, you got questions. Hopefully we got answers, so. Yeah, and I want to say thank you to Mark Hopkins who worked solo on this trip. Great job, Mark. And David Floyer came in, did a guest spot. Stu Miniman's been running around. Ezra. He's been to VMware and Ezra from HP. I want to say thank you to everyone else. I also want to thank Alex Williams, who's covering CloudConnect. Jeff Kelly, who's covering here in Vegas, the Data Warehouse Institute, sending in reports. Kristen Nicole, who's out in the anchor desk doing her thing. And all the writers that worked with Kristen on the news team, getting all these things. Art Lindsey. Art Lindsey doing the highlightings. Kit Dodson. Maria. John Casoretto. Clint Finley, who's back from vacation, blocking like a madman, which is great, and getting all the data. So Silicon Angle Wikibon will bring you all the action, and looking forward to the next cube.


Today I'm going to talk about something that has been a broken technology for decades, for almost 50 years. And this is the idea of how do we house people in emergencies. After World War II, there were about a million people that needed housing, and we formed the UNHCR. And it was a way that we can say, let's create dignified shelter on a short-term basis. Today, with the effects of climate issues, with the effects of conflict, with what's happening in Syria, we hit 16 million. So technically, those living in camps right now make up one of the largest cities in the world. About 50% of refugees live in Asia, and 28% live in Africa. Now this is a typical camp. This is a dietary camp in Jordan. And you look at it, it's huge. It's a huge, expansive city of about 130,000 people. They've just built a neighboring camp for 80,000 people. And these are the typical photos you see on television. Like, you know, look at this camp, we need to do something about it. What you don't see is when you dial down in, when you go from that CNN view to the reality he's working in a camp, this is a street view. And this is what tents look like. This is not the glamorous kind of, you know, celebrity flies in and shows you why we need to help. This is the reality of every day. This is the UN tent. Now the UN tent in it, in of itself is a systems failure. The new tent was introduced in 2006, and it happened after the tsunami. The reality is, is this $1,200 tent was designed in 1986. I was 13 years old when the UN tent was designed, and it hasn't evolved since then. Now I can build a house, a permanent house for a family for $1,000. So there's a price issue here that we're spending $1,200 on a tent that's pretty inhumane. This is a community bathroom, which is basically a vortex of sexual violence, right? You know, I wouldn't want any of my family to go in here to go to the bathroom at night. So you can see the camp itself has these issues. Now we've tried to break the status quo. We've tried to do incremental change, which is let's kind of allow camps to be much more spread out. So it's a much more rural setting. But the reality of this is these camps get left behind. They cut the school programs, they cut the health programs, they cut the nutrition programs. We're gonna hear in the next year of famine in South Sudan. The reality is most of the aid agencies cut their nutrition programs last year. And the fact that the famine doesn't have to do with issue of food security, it's just because we cut them. So programs begin to get cut year after year. Incremental change. This is a $10 million camp funded by the UAE for Syrian refugees. And as you can see, it's pretty inhumane when you consider that the average lifespan of a camp is between seven to 17 years. So now we've got into a situation that a lot of people are focused on. How do we design a new tent, a better tent, a better shelter for people to live in? And the fact is that these are communities, they're living working cities that go on for years and almost decades. And we need to think about a way that we don't just challenge the shelters that people live in, but the entire ecosystem of refugee camps. Why is it important? Because we're gonna be suffering from something that we've all been spending billions of dollars on, which is climate change and climate adaptation. And so while we're looking at 16 million people with our adequate and basic human shelter right now, we're gonna be seeing 50 million people in the coming decades. And how do we house them?  Right now we don't classify people that are affected by climate change as refugees, so they don't get help. So as we're looking to the future, if we wanna change the way nomadic communities move and how we live and work, when we're gonna have a huge increase of hurricanes and typhoons, both here in the US and Mexico, as well as in Asia, as well as desiccation, we need to rethink the way we do our sheltering systems. And if you're thinking that this is just a developing world problem, bear in mind that next year about 140,000 children will be crossing into the US border unaccompanied because of a variety of reasons. So we don't have the resources to shelter them. So when we're looking in 30, 40 years and we end up raising that number from 100 to a million, what happens here in the United States? So when you're thinking about prizes, I'd love you to figure out, how do we rethink the refugee system? And how do we rethink the way we house people in the short and long term? Thank you.


Okay, it's well it must be Friday and fortunately it's not April 1st because that would have been the opportunity for us to say it's our last show and we shall not be returning but since it's April 2nd of 2021 and since you're watching give the people what they want with Zoe and Prashant from People's Dispatch and me Vijay from Globetrotter. Since it's April 2nd there's no opportunity to play an April Fool's joke with you. We're back. Your favourite global half an hour news programme. Tell us how much you love us because we have very, very fragile egos. Zoe of course is in Ecuador. She is there covering the election, the second round of the elections. Let's go straight to Zoe, Keto Ecuador, beautiful, beautiful part of the world. What did your taxi driver from the airport to the home where you're living tell you Zoe, give us the latest? Yes, well I arrived yesterday in Keto. Very happy to be here. Very excited to cover the upcoming elections and also just generally the crisis that has been going on in Ecuador for the last couple of years. The thing that probably most struck me from my conversation with the taxi driver, we mostly focus on the conversation about COVID-19. So while in the imperialist core in the global north, we've seen in some respects maybe a decrease in numbers because of vaccination plans being rolled out. In South America this is not the tendency. This is not the trend that's happening right now. I mean we've talked a bunch about Brazil and the horrifying numbers there of increasing cases, increasing deaths. In Ecuador, similarly, of course last year in March, Ecuador had one of the worst moments of the COVID-19 pandemic with the horrible outbreak in Guayaquil, people putting bodies on the streets, awful scene. But right now the cases are rising. There's restrictions being imposed in a lot of cities and so above all it doesn't, there's not really the same kind of environment or climate of kind of pre-elections here. It's not really felt on the street. Mostly with my taxi driver we were talking about kind of how COVID has impacted life and you know this, I mean right now we're also in Semana Santa, which is the Holy Week. So there's a really kind of massive decrease in mobilization and kind of just generally people being out. What I can say is that yesterday, two days ago, no yesterday, sorry. A poll was the final day to release pre-elections polls and the poll by Omar Maluk was released. He is a leftist kind of political scientist and an analyst and he's released several polls throughout the electoral process. And his latest one was released yesterday talking about intention of vote and he also kind of released a series of the numbers that he's observed over the past couple of months. And what he says in this poll is that according to opinions right now, Andres Araus, who again is the progressive candidate from the Union of Hope, related to of course Rafael Correa in the Citizens Revolution. He, you know, served several positions in that government. He currently is polling at 53.8% and banker Guillermo Lasso is at 46.2%. So it's close. There's also very high index right now of calling for the blank vote. Abstention. We know Yaku Pérez is part of Pachacuti. A lot have been, there have been major calls for this. So right now, there's kind of a three-way division between Guillermo Lasso, Andres Araus. And then also, you know, the voting in blank is getting a lot of support, which is I think something that's concerning, not because, you know, they're not voting for Andres Araus, they're not voting for Lasso. But why are people feeling disinvested in this political process and why are they feeling like the only way they can express their political aspirations is through the blank vote. So, you know, we'll be talking to different people over the upcoming days from the Indigenous movement, you know, members of the Assembly. We've also seen some, you know, last desperate attempts by outgoing President Lenny Moreno, who just to add has one of the worst approval ratings in history. Because of all of these horrible neoliberal reforms that he has implemented, his complete, you know, betrayal of the citizens revolution, he's been trying to implement some last desperate moves, you know, including the privatization of the central banks. So we'll be talking to some legislators as well to see how they've been resisting these moves by Lenny Moreno to push through these reforms. And stay tuned, always follow People's Dispatch. We'll be updating from there with some good reports, hopefully. It's a very important election, Zoe. Andres Araus, aged 37, I believe, an economist trained at the National University in Mexico in a tight race with Guillermo Lasso, businessman, you know, with a far right agenda. I think there is, of course, a sense of both hope among a lot of people, but also disorientation. We're in the middle of a pandemic. It's disorienting. We're in the middle of a pandemic. Lots of people have shifted to buying their goods from platforms. We've seen during the course of this pandemic, owners of companies like Amazon making a enormous amount of money, looks like now workers at Amazon from the United States into the heart of Europe and elsewhere, not going to take it any longer. Prashant, they're on strike. They're threatening a strike over Easter. What's going on with Amazon and the Amazon workers? Right. So it's actually quite a dynamic moment as far as labor organizing in Amazon is concerned. In the United States, we saw, of course, the news from the Bessemer facility in Alabama, where there was a vote for 5,800 ballots to place and the counting is going on. And this is a very important vote, of course, because this could be a precedent for very similar unionization efforts. The vote was for, say, unionization efforts in that plant. And if this passes, this could have a domino effect, which is what a lot of observers are saying. And in the past few months, I've been really kind of crazy. We've seen Amazon pull out all stops, including some of the most weirdest stories about manipulating traffic lights or working towards that so that traffic lights are when union organizers get the opportunity to talk to workers. And Amazon has been apparently trying to manipulate that so there's less time. So that is the extent of the campaign. They spend tens of thousands of dollars, if not more on union busting efforts. Recently reports, of course, coming out that from 2018, Amazon has been organizing a program called Veritas. I believe Veritas means the truth, where they drafted employees to go out on social media, especially select employees and defend the company. And of course, a lot of these violations, this may not, of course, be a violation, but many other such incidents taking place also in the context of horrifying reports about work conditions emerging in Amazon, workers not getting the chance to even go to the loo, the insane workload that is taking place. And it's interesting because we recently talked to Juliano Granato of Pote Reale Popolo in Italy, he was talking about the Amazon workers strike there on March 22, which is again a very historic strike, mainly because the fact that for the first time, both Amazon employees and Amazon, those who drove delivering Amazon packages, who are often employed by third parties to part of the strike. And there is a moment of pivotal moment of unity and also showed I think a lot of promise in terms of organizing workers in the sector, which has really been quite difficult. And Juliano was of course telling us about how the strike was of course uneven, especially the industrialized north, there was a lot of support for the strike. The important thing to notice, notice that many of these drivers deliver close to 180 to 200 packages a day sometimes, that is the kind of load that is on them. And last year, according to at least one academic study, Amazon grew by 31%. So it's not this often the strikes and protests are not even really about salaries because the key thing is work conditions here because Amazon has become such a bare maw, there's a huge amount of automation taking place, workers are filling in the gaps, being put through huge amounts of stress. And there because there are no, there's no huge mass factory with tens of thousands of workers mobilizing and organizing can be difficult. And sometimes their concerns are not heard that often. We had the example of Chris Smalls, who also raised many issues like this at the height of the pandemic in the United States and faced action as well. So I think last one, two years, and especially since the pandemic began, there has been a great amount of attention paid to Amazon. We saw the campaign by the progressive international and labor organizations across the world on this issue. Of course, on March 29th in Germany, Amazon workers similarly took to protests again, protest went about the working conditions about fixed contracts. So I think across the world, there is a huge amount of pushback that is taking place against Jeff Bezos and against Amazon, specifically demanding that the situation where workers are treated as machines or workers are treated as dispensable, say elements in the large production or large distribution process be put an end and there be the possibility of organizing and working for the rights. You know, it's an ongoing story. It's Amazon, yes, but also it's workers in all platform industries. We've been looking carefully at Uber and Uber Eats, which delivers food to people's homes. Many of these platforms, the workers only income comes in tips. And this is of course not a guaranteed wage of any kind. It's a very difficult situation for a lot of people who have been forced into this kind of labor. You know, we're talking about workers having a difficult time surviving. We're talking about an election in Ecuador. Meanwhile, of course, in Europe, there's an enormous amount of pressure being put on the Russia-Ukraine border. The organization known as NATO, the North Atlantic Treaty Organization last year released a report, a very considerable important report where they talked about the expansion of NATO, the imagine a NATO in the Middle East, a NATO in Asia and so on. But really the expansion of NATO of great consequence has been the expansion within Europe itself. People may know that when the Berlin Wall fell and as a consequence of German reunification, the Russian government at the time made a deal with the United States saying NATO would stop at Russia's eastern border. NATO of course has moved further eastward and in this report came out last year, NATO talked about strengthening its opportunities in Ukraine and Georgia. Over the course of the last few days, there have been very disturbing developments on the Ukraine-Russia border. Russia had a military exercise on its own soil, not that close to the Ukraine border. NATO scrambled jets about 10 times to basically shadow the troop movements on the Russian side. NATO's Secretary General made, I thought, quite peculiar comments about what's happening there. And then of course, just in late March, the foreign ministers met in Brussels of the NATO countries and again Russia was much on the table. Well, there's now shooting at the Ukraine-Russia border. People have been killed. This is a matter of great, great concern. I think it's pretty important to recognize that this may not escalate out of control because I think both the Russians, the Ukrainians and particularly the Germans don't want a conflict. I want to put this on the table because the situation behind this is the development of a pipeline that the Russians and the Nord Stream consortium have been building to bypass Ukraine, go through the Baltic waters from Russia into Germany. And just in this period of the military buildup, the Nord Stream consortium has said they worry a lot about armed conflict in the Baltic region. They worry that the pipeline is going to be damaged. This is not something that I'm just speculating or that they've just speculated about. But Andrew Minin, who's a senior official at the Nord Stream 2 AG consortium, came out clearly and said that they feel that the fleet of the project that's building the pipeline is facing. And here's his direct quote. This is Andrew Minin said, we're facing regular provocations by the foreign civil and military vessels. When asked about this US Secretary of State, Anthony Blinken, he was asked about this on a television broadcast last Sunday. And he said, well, it's a responsibility of those who are building the Nord Stream 2 pipeline, whether they want to complete it or whether they want to take a position, whether they want to complete it despite opposition from Washington or do they want to give up? I mean, this is mafia tactics and it's got to be clear that the conflict on the Russia-Ukraine border is not really to do with the Crimea or the Donbas region where there is a conflict inside Ukraine. This has to do with Nord Stream 2 and the attempt by the United States to prevent the completion of the Nord Stream 2 pipeline. I'd like to have people look at this a little carefully. It's a very big story. It's hard to encapsulate this in a few minutes because it has a lot to do with the fact that Europe has been denied energy sources from Iran. There's a consequence of the nuclear blockade of Iran. It has been denied energy from Libya as a consequence of NATO's war there and now denied from Russia. So Germany desperate to complete the Nord Stream 2 pipeline. The United States eager not to have this pipeline completed and then you have military tension on the border. We're in a very difficult situation. I hope people are watching this carefully. You're listening to give the people what they want from people's dispatch from Globetrotter. You're watching us from China. You're watching us from Canada. You're watching us from India. You're watching us from Kenya. We're happy to have you. Border disputes, terrible things, very dangerous. There's a terrible border dispute ongoing now between Venezuela and Colombia. There had been a dispute between Venezuela and Guyana. Zoe, what's happening at that border? Well, thanks Vijay. It's a complicated moment right now. The Venezuelan-Columbia border is one of the hottest borders. It's one of the borders that's had historically a lot of conflict between state actors but also it's a heavy concentration of irregular armed groups. This is one of the key kind of corridors towards the Caribbean. There's a lot of illegal drug trafficking that happens in this area. There's a lot of mining operations. It's one of the most militarized regions in Colombia. Essentially right now there's been a dispute that's been going on because the Venezuelan Bolivarian National Forces of Venezuela carried out an operation in this state of Apure where they claimed that there was an attack coming from an irregular Colombian armed group. As I mentioned, this area is constantly occupied by illegal armed groups. There's a lot of movement. The civilian population has been suffered greatly throughout history. Currently what's happening is that there was an operation that was carried out. Sorry, I think my internet is not super strong. There was an operation that was carried out by Venezuela against these groups. In this confrontation, in this operation, two members of the Bolivarian Guard were killed. There have been dozens injured. But essentially it's kind of opened up, not a closed wound by any means, but tensions between Venezuela and Colombia. Colombia has been historically the ally of the United States in pushing an agenda of militarization and military operations against Venezuela. Colombia is taking advantage of the operation of the Venezuelan Army against this irregular group to kind of reactivate its plan of aggression against Venezuela. Iván Duque has given several declarations. There's been a massive media campaign deployed on social media through WhatsApp groups saying that these soldiers of the dictatorship of Venezuela are attacking Colombian soil. We're going to be publishing a report on this at People's Dispatch. Mission Verdad, the Corriente Revolucionario Bolivari Zamora have also published detailed accounts of what's happening because it's actually quite difficult to piece out what's happening. What are the lies that have been spread and kind of what's behind this operation? But I think beyond the specifics of this encounter in itself we have to understand the geopolitical importance of this, the historical importance of this and of course above all the impacts on the civilian population because any time there's some sort of armed confrontation, the first to suffer of course of the civilian population I think Venezuela has been trying to neutralize this threat that's been attacking them. They've been met with massive attacks from the Colombian government so it's a really complicated situation to encourage people to follow it and try to piece out what's happening beyond this media manipulation that Colombia loves to do against Venezuela using words like the dictatorship. They're attacking our country and so it's quite dicey at the moment. The interesting thing about give the people what they want is that we seem to report from all kinds of places in the world. We run zigzags from Ecuador to Europe to Nord Stream pipeline to back to the Venezuelan-Columbian border. Now we're going to go all the way out to the Philippines where it's been a long time since the Philippines has had a government of some sensible nature. Prashant, what is happening in the Philippines and why is it that we keep reporting things of violence and so on? What's the underlying story here? Absolutely, the most latest peg of course is the fact that three labor activists were targeted, two of them were arrested, one of them was declared at large, one was later released of course but this is part of a trend like you said, this is not one incident we're talking about here and just a few weeks ago there was an event which is now known as Bloody Sunday where nine people were killed, six were arrested and similarly all of these were people who were human rights defenders people fighting for the rights of the oppressed and basically the Duterte regime has clearly over the years it's not again a new phenomenon, over the years it has been unleashing a continuous wave of terror, there is this practice called red tagging which I think really needs to be examined properly really needs to be understood properly where anyone and everyone who opposes the government who's speaking about rights is automatically red tagged or identified with the banned communist party there and Duterte has been releasing, he's been making all kinds of speeches where he's been telling the army regularly that go ahead finish them off, kill all the communist insurgents in the country and he's been making those kind of statements and what has been happening is that it's not just the executive infrastructure it's also the judiciary so in the beginning of March during this whole Bloody Sunday issue activists had pointed out that a lot of the warrants that are being issued against those fighting for justice, those fighting for rights are basically copy based warrants so there's just one, there's just name and the address change and everything else remains the same so this is kind of what has been happening in the Philippines continuously and we had incident after incident, farmers leader shot say university professors or universities were attacked again accused of being involved with the Maoists last year we saw that there was an anti-terror law which was passed by the government, massively criticized there's a huge challenge that is being mounted in the Supreme Court right now against this law where academics, activists, human rights organizations all of them have come together to challenge it but at its heart it lies in the fact that the Philippine government Duterte has acted with immense impunity because we've also seen the so-called anti-drug operations a clear parallel is there so where in the name of anti-drug operations there's been massive violence, huge number of innocent skilled and now the government has actually admitted that that there have been lapses in procedures so to speak so when a government says lapses in procedures the reality on the ground is obviously much, much more dire and as of exactly in parallel we have red tagging where again people are accused of being Maoists or communists are either arrested or killed or there's complete impunity with which they're being treated so definitely a huge crisis and an ongoing crisis but like I said the sign of hope is in the fact that organizations, activists continuously fighting and international solidarity also take place on this you know you're talking about the Philippines but you could just as well have been talking about Colombia or Honduras you could just as well have been talking about the Gilgit-Baltistan region of Pakistan sometimes good things happen you know we didn't mention it but in December there was a release of the life imprisoned activist Baba Jan was released in Gilgit has been going this last two weeks traveling around Pakistan speaking about various issues a person of great dignity and composure Baba Jan, I think there are many Baba Jan sitting in prison in India of course we have Sudha Bhardwaj and you know Anantal Tumbe and so on in jail for I'm not sure what reason really honestly if we're honest and as journalists we read the record it's not clear what's going on well read the record I've been reading just released two days ago the World Economic Forum and you know I'll admit it publicly that I read the World Economic Forum documents this is the group synonymous with the Davos conference it's an interesting document it's about the global gender gap and what I found I found two things of interest one in general one about India that I wanted to highlight the thing in general is that they say as a consequence of the pandemic whereas previously they had calculated it would take at the pace at which the gender gap was being closed and you know they have a set of metrics and so on at the pace at which the gender gap is being closed they had previously said it will take 99.5 years to close the gender gap that's about a hundred years well because of the pandemic they now say at the pace at which the gender gap is being closed it'll take 135.6 years so an entire generation has been lost in terms of what is known as gender parity as a consequence of the pandemic and it's not really the pandemic's fault it's the consequence of the way society is organized so that women conduct the majority of care work in the world and because women conduct the majority of care work and during the lockdown because of the lockdown women have had to give up their jobs or cut back on their hours and so on this has an impact on the wages women make and so on and as a consequence of that really the consequence of patriarchy that we're now going to see an entire generation not be able to live with gender parity you know based on their report well the point in India that I was very stunned with and I want to mention this I noted this down as I was reading you know you imagine India where science in the world of science a large number of women in science in fact the data shows that women in science are only 14.3% of total scientists only 14.3% of Indian scientists are women that's extraordinary and in the industries of fire which is finance insurance and real estate you know these sort of the financialization industries women in India only occupy 13.4% of those jobs these are very high paying middle class jobs compared to other jobs this is extraordinary India is in very bad shape in terms of at least the global gender gap as understood by the World Economic Forum at Tri-Continental we've done a series of studies about this including recently a dossier on care work I ask you to go and take a look at that but you don't really need to take a look at those studies this is just something that you can see out the window or in fact you can't see it out of the window you have to see it inside the house because it's a consequence of the lockdown and the way there's a patriarchal form of gender relations in the home I'm bringing this up because somebody told me a little while ago that look this is a human interest story it's not news and I want to make this point you know that there is a way in which news is extraordinarily gendered that the news becomes news of border conflicts and news becomes things about you know strikes at workplaces and so on but here we're talking about an enormous number of human beings who are working to socially reproduce homes why is reports about their lives not news why is that a social story or human interest I think we really need to think about the patriarchal nature of how we understand news this is as much a news story as any story and I think it's quite scandalous that an entire generation based on the world economic forum numbers is going to miss out on gender parity I think that's a shame on humankind this is give the people what they want we come to you every Friday at the same time also as a podcast we come to you from people's dispatch Zoe and Prashant amazing reporters a great website make sure you go to it every day I'm always surprised when I meet people who don't read people's dispatch I tell everybody it's got to be your first port of call in the morning you can read it on your phone the website is excellent give the people what they want also comes to you from Globetrotter we're a syndication service you can read us in about 200 publications I hope you do I hope you tell people about both people's dispatch and Globetrotter Zoe Prashant anything else you'd like to say no, be good looking forward to seeing everyone see everybody next week and be careful in Ecuador Lenin Moreno has declared an emergency in a couple of districts I don't know what he's trying to do to the election but I hope the people get to exercise their franchise you've been listening to give the people what they want from people's dispatch in Globetrotter see you next Friday


Lane, how you doing? You're right, you're left. Good for the handle. That's good right there. Good? Yeah. That's the fourth. We went from one to two. Now we're going to the fourth.


It's an important game in the context of where both teams are on the table. We're very pleased with the win against Newcastle. We dominated for large periods away from home and in the end we had to defend well to keep the lead. So it was a good reaction after Brisbane defeat and we want to go on with it tomorrow. Every game is different, so it will be a different type of game to what last week was against Newcastle. We have to be prepared for that. Adelaide's having a fantastic season. They've been on a great run and we want to make sure that we're not the ones that are part of them getting back to winning ways.  I don't know in terms of them. They can only speak for us. I think we've been pretty consistent throughout the whole year. We've been challenging at the top pretty much the whole season. And now we're at the point where you want to get momentum, you want to make it consecutive wins and we have a chance to do that. So there's no guarantee of that happening. You've got to respect the opponent as well. But we're playing well enough to certainly be able to win tomorrow. I think it goes both ways. They haven't beaten us either. But we've had two very good games against them. Both sides have played well in both matches. And they've been exciting games. We expect that to happen again tomorrow. We've just got to trust our game. Our game plan. Trust each other out in the field. Trust it out. It can help us get over the line. We'll enjoy these last few games that we have here. But for now we'll just focus on our game tomorrow. Hopefully a huge crowd out here to support us tomorrow night. And we can all go home happy after the game.